Files

Return to Package Diff Home.
Brought to you by Intrinsic.

Package Diff: @angular/platform-browser @ 7.2.7 .. 7.2.8

animations.d.ts

@@ -1,5 +1,5 @@
/**
- * @license Angular v7.2.7
+ * @license Angular v7.2.8
* (c) 2010-2019 Google LLC. https://angular.io/
* License: MIT
*/

bundles/platform-browser-animations.umd.js

@@ -1,5 +1,5 @@
/**
- * @license Angular v7.2.7
+ * @license Angular v7.2.8
* (c) 2010-2019 Google LLC. https://angular.io/
* License: MIT
*/

bundles/platform-browser-animations.umd.min.js

@@ -1,5 +1,5 @@
/**
- * @license Angular v7.2.7
+ * @license Angular v7.2.8
* (c) 2010-2019 Google LLC. https://angular.io/
* License: MIT
*/

bundles/platform-browser-animations.umd.min.js.map

@@ -1 +1 @@
-{"version":3,"sources":["packages/platform-browser/platform-browser-animations.umd.js"],"names":["global","factory","exports","module","require","define","amd","self","ng","platformBrowser","animations","core","browser","common","this","extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__extends","__","constructor","prototype","create","__decorate","decorators","target","key","desc","c","arguments","length","r","getOwnPropertyDescriptor","Reflect","decorate","i","defineProperty","__param","paramIndex","decorator","__metadata","metadataKey","metadataValue","metadata","__read","o","n","m","Symbol","iterator","e","call","ar","next","done","push","value","error","__spread","concat","BrowserAnimationBuilder","_super","rootRenderer","doc","_this","_nextAnimationId","_renderer","createRenderer","body","id","encapsulation","ViewEncapsulation","None","styles","data","animation","build","toString","entry","isArray","sequence","issueAnimationCommand","BrowserAnimationFactory","Injectable","Inject","DOCUMENT","RendererFactory2","AnimationBuilder","_id","element","options","RendererAnimationPlayer","AnimationFactory","parentPlayer","_started","totalTime","_command","_listen","eventName","callback","listen","command","args","_i","onDone","fn","onStart","onDestroy","init","hasStarted","play","pause","restart","finish","destroy","reset","setPosition","getPosition","renderer","setProperty","AnimationRendererFactory","delegate","engine","_zone","_currentId","_microtaskId","_animationCallbacksBuffer","_rendererCache","Map","_cdRecurDepth","promise","Promise","resolve","onRemovalComplete","parentNode","removeChild","hostElement","type","get","BaseAnimationRenderer","set","componentId","namespaceId","register","forEach","trigger","registerTrigger","name","AnimationRenderer","begin","_scheduleCountTask","then","scheduleListenerCallback","count","run","tuple","_a","end","runOutsideAngular","flush","whenRenderingDone","ɵAnimationEngine","NgZone","destroyNode","enumerable","configurable","createElement","namespace","createComment","createText","appendChild","parent","newChild","onInsert","insertBefore","refChild","oldChild","onRemove","selectRootElement","selectorOrNode","preserveContent","node","nextSibling","setAttribute","el","removeAttribute","addClass","removeClass","setStyle","style","flags","removeStyle","charAt","disableAnimations","setValue","undefined","process","substr","resolveElementFromTarget","document","window","name_1","phase","parseTriggerCallbackName","triggerName","dotIndex","indexOf","substring","event","InjectableAnimationEngine","driver","normalizer","AnimationDriver","ɵAnimationStyleNormalizer","instantiateSupportedAnimationDriver","ɵsupportsWebAnimations","ɵWebAnimationsDriver","ɵCssKeyframesDriver","instantiateDefaultStyleNormalizer","ɵWebAnimationsStyleNormalizer","instantiateRendererFactory","zone","ANIMATION_MODULE_TYPE","InjectionToken","SHARED_ANIMATION_PROVIDERS","provide","useClass","useFactory","deps","ɵDomRendererFactory2","BROWSER_ANIMATIONS_PROVIDERS","useValue","BROWSER_NOOP_ANIMATIONS_PROVIDERS","ɵNoopAnimationDriver","BrowserAnimationsModule","NgModule","BrowserModule","providers","NoopAnimationsModule","ɵangular_packages_platform_browser_animations_animations_f","ɵangular_packages_platform_browser_animations_animations_d","ɵangular_packages_platform_browser_animations_animations_e","ɵangular_packages_platform_browser_animations_animations_b","ɵangular_packages_platform_browser_animations_animations_c","ɵangular_packages_platform_browser_animations_animations_a","ɵBrowserAnimationBuilder","ɵBrowserAnimationFactory","ɵAnimationRenderer","ɵAnimationRendererFactory","ɵInjectableAnimationEngine"],"mappings":"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","sourcesContent":["/**\n * @license Angular v7.2.7\n * (c) 2010-2019 Google LLC. https://angular.io/\n * License: MIT\n */\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@angular/platform-browser'), require('@angular/animations'), require('@angular/animations/browser'), require('@angular/common')) :\n typeof define === 'function' && define.amd ? define('@angular/platform-browser/animations', ['exports', '@angular/core', '@angular/platform-browser', '@angular/animations', '@angular/animations/browser', '@angular/common'], factory) :\n (global = global || self, factory((global.ng = global.ng || {}, global.ng.platformBrowser = global.ng.platformBrowser || {}, global.ng.platformBrowser.animations = {}), global.ng.core, global.ng.platformBrowser, global.ng.animations, global.ng.animations.browser, global.ng.common));\n}(this, function (exports, core, platformBrowser, animations, browser, common) { '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 function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n }\r\n\r\n function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n }\r\n\r\n function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n }\r\n\r\n function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n }\r\n\r\n function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n }\n\n var BrowserAnimationBuilder = /** @class */ (function (_super) {\n __extends(BrowserAnimationBuilder, _super);\n function BrowserAnimationBuilder(rootRenderer, doc) {\n var _this = _super.call(this) || this;\n _this._nextAnimationId = 0;\n var typeData = {\n id: '0',\n encapsulation: core.ViewEncapsulation.None,\n styles: [],\n data: { animation: [] }\n };\n _this._renderer = rootRenderer.createRenderer(doc.body, typeData);\n return _this;\n }\n BrowserAnimationBuilder.prototype.build = function (animation) {\n var id = this._nextAnimationId.toString();\n this._nextAnimationId++;\n var entry = Array.isArray(animation) ? animations.sequence(animation) : animation;\n issueAnimationCommand(this._renderer, null, id, 'register', [entry]);\n return new BrowserAnimationFactory(id, this._renderer);\n };\n BrowserAnimationBuilder = __decorate([\n core.Injectable(),\n __param(1, core.Inject(platformBrowser.DOCUMENT)),\n __metadata(\"design:paramtypes\", [core.RendererFactory2, Object])\n ], BrowserAnimationBuilder);\n return BrowserAnimationBuilder;\n }(animations.AnimationBuilder));\n var BrowserAnimationFactory = /** @class */ (function (_super) {\n __extends(BrowserAnimationFactory, _super);\n function BrowserAnimationFactory(_id, _renderer) {\n var _this = _super.call(this) || this;\n _this._id = _id;\n _this._renderer = _renderer;\n return _this;\n }\n BrowserAnimationFactory.prototype.create = function (element, options) {\n return new RendererAnimationPlayer(this._id, element, options || {}, this._renderer);\n };\n return BrowserAnimationFactory;\n }(animations.AnimationFactory));\n var RendererAnimationPlayer = /** @class */ (function () {\n function RendererAnimationPlayer(id, element, options, _renderer) {\n this.id = id;\n this.element = element;\n this._renderer = _renderer;\n this.parentPlayer = null;\n this._started = false;\n this.totalTime = 0;\n this._command('create', options);\n }\n RendererAnimationPlayer.prototype._listen = function (eventName, callback) {\n return this._renderer.listen(this.element, \"@@\" + this.id + \":\" + eventName, callback);\n };\n RendererAnimationPlayer.prototype._command = function (command) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n return issueAnimationCommand(this._renderer, this.element, this.id, command, args);\n };\n RendererAnimationPlayer.prototype.onDone = function (fn) { this._listen('done', fn); };\n RendererAnimationPlayer.prototype.onStart = function (fn) { this._listen('start', fn); };\n RendererAnimationPlayer.prototype.onDestroy = function (fn) { this._listen('destroy', fn); };\n RendererAnimationPlayer.prototype.init = function () { this._command('init'); };\n RendererAnimationPlayer.prototype.hasStarted = function () { return this._started; };\n RendererAnimationPlayer.prototype.play = function () {\n this._command('play');\n this._started = true;\n };\n RendererAnimationPlayer.prototype.pause = function () { this._command('pause'); };\n RendererAnimationPlayer.prototype.restart = function () { this._command('restart'); };\n RendererAnimationPlayer.prototype.finish = function () { this._command('finish'); };\n RendererAnimationPlayer.prototype.destroy = function () { this._command('destroy'); };\n RendererAnimationPlayer.prototype.reset = function () { this._command('reset'); };\n RendererAnimationPlayer.prototype.setPosition = function (p) { this._command('setPosition', p); };\n RendererAnimationPlayer.prototype.getPosition = function () { return 0; };\n return RendererAnimationPlayer;\n }());\n function issueAnimationCommand(renderer, element, id, command, args) {\n return renderer.setProperty(element, \"@@\" + id + \":\" + command, args);\n }\n\n var ANIMATION_PREFIX = '@';\n var DISABLE_ANIMATIONS_FLAG = '@.disabled';\n var AnimationRendererFactory = /** @class */ (function () {\n function AnimationRendererFactory(delegate, engine, _zone) {\n this.delegate = delegate;\n this.engine = engine;\n this._zone = _zone;\n this._currentId = 0;\n this._microtaskId = 1;\n this._animationCallbacksBuffer = [];\n this._rendererCache = new Map();\n this._cdRecurDepth = 0;\n this.promise = Promise.resolve(0);\n engine.onRemovalComplete = function (element, delegate) {\n // Note: if an component element has a leave animation, and the component\n // a host leave animation, the view engine will call `removeChild` for the parent\n // component renderer as well as for the child component renderer.\n // Therefore, we need to check if we already removed the element.\n if (delegate && delegate.parentNode(element)) {\n delegate.removeChild(element.parentNode, element);\n }\n };\n }\n AnimationRendererFactory.prototype.createRenderer = function (hostElement, type) {\n var _this = this;\n var EMPTY_NAMESPACE_ID = '';\n // cache the delegates to find out which cached delegate can\n // be used by which cached renderer\n var delegate = this.delegate.createRenderer(hostElement, type);\n if (!hostElement || !type || !type.data || !type.data['animation']) {\n var renderer = this._rendererCache.get(delegate);\n if (!renderer) {\n renderer = new BaseAnimationRenderer(EMPTY_NAMESPACE_ID, delegate, this.engine);\n // only cache this result when the base renderer is used\n this._rendererCache.set(delegate, renderer);\n }\n return renderer;\n }\n var componentId = type.id;\n var namespaceId = type.id + '-' + this._currentId;\n this._currentId++;\n this.engine.register(namespaceId, hostElement);\n var animationTriggers = type.data['animation'];\n animationTriggers.forEach(function (trigger) { return _this.engine.registerTrigger(componentId, namespaceId, hostElement, trigger.name, trigger); });\n return new AnimationRenderer(this, namespaceId, delegate, this.engine);\n };\n AnimationRendererFactory.prototype.begin = function () {\n this._cdRecurDepth++;\n if (this.delegate.begin) {\n this.delegate.begin();\n }\n };\n AnimationRendererFactory.prototype._scheduleCountTask = function () {\n var _this = this;\n // always use promise to schedule microtask instead of use Zone\n this.promise.then(function () { _this._microtaskId++; });\n };\n /** @internal */\n AnimationRendererFactory.prototype.scheduleListenerCallback = function (count, fn, data) {\n var _this = this;\n if (count >= 0 && count < this._microtaskId) {\n this._zone.run(function () { return fn(data); });\n return;\n }\n if (this._animationCallbacksBuffer.length == 0) {\n Promise.resolve(null).then(function () {\n _this._zone.run(function () {\n _this._animationCallbacksBuffer.forEach(function (tuple) {\n var _a = __read(tuple, 2), fn = _a[0], data = _a[1];\n fn(data);\n });\n _this._animationCallbacksBuffer = [];\n });\n });\n }\n this._animationCallbacksBuffer.push([fn, data]);\n };\n AnimationRendererFactory.prototype.end = function () {\n var _this = this;\n this._cdRecurDepth--;\n // this is to prevent animations from running twice when an inner\n // component does CD when a parent component instead has inserted it\n if (this._cdRecurDepth == 0) {\n this._zone.runOutsideAngular(function () {\n _this._scheduleCountTask();\n _this.engine.flush(_this._microtaskId);\n });\n }\n if (this.delegate.end) {\n this.delegate.end();\n }\n };\n AnimationRendererFactory.prototype.whenRenderingDone = function () { return this.engine.whenRenderingDone(); };\n AnimationRendererFactory = __decorate([\n core.Injectable(),\n __metadata(\"design:paramtypes\", [core.RendererFactory2, browser.ɵAnimationEngine, core.NgZone])\n ], AnimationRendererFactory);\n return AnimationRendererFactory;\n }());\n var BaseAnimationRenderer = /** @class */ (function () {\n function BaseAnimationRenderer(namespaceId, delegate, engine) {\n this.namespaceId = namespaceId;\n this.delegate = delegate;\n this.engine = engine;\n this.destroyNode = this.delegate.destroyNode ? function (n) { return delegate.destroyNode(n); } : null;\n }\n Object.defineProperty(BaseAnimationRenderer.prototype, \"data\", {\n get: function () { return this.delegate.data; },\n enumerable: true,\n configurable: true\n });\n BaseAnimationRenderer.prototype.destroy = function () {\n this.engine.destroy(this.namespaceId, this.delegate);\n this.delegate.destroy();\n };\n BaseAnimationRenderer.prototype.createElement = function (name, namespace) {\n return this.delegate.createElement(name, namespace);\n };\n BaseAnimationRenderer.prototype.createComment = function (value) { return this.delegate.createComment(value); };\n BaseAnimationRenderer.prototype.createText = function (value) { return this.delegate.createText(value); };\n BaseAnimationRenderer.prototype.appendChild = function (parent, newChild) {\n this.delegate.appendChild(parent, newChild);\n this.engine.onInsert(this.namespaceId, newChild, parent, false);\n };\n BaseAnimationRenderer.prototype.insertBefore = function (parent, newChild, refChild) {\n this.delegate.insertBefore(parent, newChild, refChild);\n this.engine.onInsert(this.namespaceId, newChild, parent, true);\n };\n BaseAnimationRenderer.prototype.removeChild = function (parent, oldChild) {\n this.engine.onRemove(this.namespaceId, oldChild, this.delegate);\n };\n BaseAnimationRenderer.prototype.selectRootElement = function (selectorOrNode, preserveContent) {\n return this.delegate.selectRootElement(selectorOrNode, preserveContent);\n };\n BaseAnimationRenderer.prototype.parentNode = function (node) { return this.delegate.parentNode(node); };\n BaseAnimationRenderer.prototype.nextSibling = function (node) { return this.delegate.nextSibling(node); };\n BaseAnimationRenderer.prototype.setAttribute = function (el, name, value, namespace) {\n this.delegate.setAttribute(el, name, value, namespace);\n };\n BaseAnimationRenderer.prototype.removeAttribute = function (el, name, namespace) {\n this.delegate.removeAttribute(el, name, namespace);\n };\n BaseAnimationRenderer.prototype.addClass = function (el, name) { this.delegate.addClass(el, name); };\n BaseAnimationRenderer.prototype.removeClass = function (el, name) { this.delegate.removeClass(el, name); };\n BaseAnimationRenderer.prototype.setStyle = function (el, style, value, flags) {\n this.delegate.setStyle(el, style, value, flags);\n };\n BaseAnimationRenderer.prototype.removeStyle = function (el, style, flags) {\n this.delegate.removeStyle(el, style, flags);\n };\n BaseAnimationRenderer.prototype.setProperty = function (el, name, value) {\n if (name.charAt(0) == ANIMATION_PREFIX && name == DISABLE_ANIMATIONS_FLAG) {\n this.disableAnimations(el, !!value);\n }\n else {\n this.delegate.setProperty(el, name, value);\n }\n };\n BaseAnimationRenderer.prototype.setValue = function (node, value) { this.delegate.setValue(node, value); };\n BaseAnimationRenderer.prototype.listen = function (target, eventName, callback) {\n return this.delegate.listen(target, eventName, callback);\n };\n BaseAnimationRenderer.prototype.disableAnimations = function (element, value) {\n this.engine.disableAnimations(element, value);\n };\n return BaseAnimationRenderer;\n }());\n var AnimationRenderer = /** @class */ (function (_super) {\n __extends(AnimationRenderer, _super);\n function AnimationRenderer(factory, namespaceId, delegate, engine) {\n var _this = _super.call(this, namespaceId, delegate, engine) || this;\n _this.factory = factory;\n _this.namespaceId = namespaceId;\n return _this;\n }\n AnimationRenderer.prototype.setProperty = function (el, name, value) {\n if (name.charAt(0) == ANIMATION_PREFIX) {\n if (name.charAt(1) == '.' && name == DISABLE_ANIMATIONS_FLAG) {\n value = value === undefined ? true : !!value;\n this.disableAnimations(el, value);\n }\n else {\n this.engine.process(this.namespaceId, el, name.substr(1), value);\n }\n }\n else {\n this.delegate.setProperty(el, name, value);\n }\n };\n AnimationRenderer.prototype.listen = function (target, eventName, callback) {\n var _this = this;\n var _a;\n if (eventName.charAt(0) == ANIMATION_PREFIX) {\n var element = resolveElementFromTarget(target);\n var name_1 = eventName.substr(1);\n var phase = '';\n // @listener.phase is for trigger animation callbacks\n // @@listener is for animation builder callbacks\n if (name_1.charAt(0) != ANIMATION_PREFIX) {\n _a = __read(parseTriggerCallbackName(name_1), 2), name_1 = _a[0], phase = _a[1];\n }\n return this.engine.listen(this.namespaceId, element, name_1, phase, function (event) {\n var countId = event['_data'] || -1;\n _this.factory.scheduleListenerCallback(countId, callback, event);\n });\n }\n return this.delegate.listen(target, eventName, callback);\n };\n return AnimationRenderer;\n }(BaseAnimationRenderer));\n function resolveElementFromTarget(target) {\n switch (target) {\n case 'body':\n return document.body;\n case 'document':\n return document;\n case 'window':\n return window;\n default:\n return target;\n }\n }\n function parseTriggerCallbackName(triggerName) {\n var dotIndex = triggerName.indexOf('.');\n var trigger = triggerName.substring(0, dotIndex);\n var phase = triggerName.substr(dotIndex + 1);\n return [trigger, phase];\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 InjectableAnimationEngine = /** @class */ (function (_super) {\n __extends(InjectableAnimationEngine, _super);\n function InjectableAnimationEngine(doc, driver, normalizer) {\n return _super.call(this, doc.body, driver, normalizer) || this;\n }\n InjectableAnimationEngine = __decorate([\n core.Injectable(),\n __param(0, core.Inject(common.DOCUMENT)),\n __metadata(\"design:paramtypes\", [Object, browser.AnimationDriver, browser.ɵAnimationStyleNormalizer])\n ], InjectableAnimationEngine);\n return InjectableAnimationEngine;\n }(browser.ɵAnimationEngine));\n function instantiateSupportedAnimationDriver() {\n return browser.ɵsupportsWebAnimations() ? new browser.ɵWebAnimationsDriver() : new browser.ɵCssKeyframesDriver();\n }\n function instantiateDefaultStyleNormalizer() {\n return new browser.ɵWebAnimationsStyleNormalizer();\n }\n function instantiateRendererFactory(renderer, engine, zone) {\n return new AnimationRendererFactory(renderer, engine, zone);\n }\n /**\n * @publicApi\n */\n var ANIMATION_MODULE_TYPE = new core.InjectionToken('AnimationModuleType');\n var SHARED_ANIMATION_PROVIDERS = [\n { provide: animations.AnimationBuilder, useClass: BrowserAnimationBuilder },\n { provide: browser.ɵAnimationStyleNormalizer, useFactory: instantiateDefaultStyleNormalizer },\n { provide: browser.ɵAnimationEngine, useClass: InjectableAnimationEngine }, {\n provide: core.RendererFactory2,\n useFactory: instantiateRendererFactory,\n deps: [platformBrowser.ɵDomRendererFactory2, browser.ɵAnimationEngine, core.NgZone]\n }\n ];\n /**\n * Separate providers from the actual module so that we can do a local modification in Google3 to\n * include them in the BrowserModule.\n */\n var BROWSER_ANIMATIONS_PROVIDERS = __spread([\n { provide: browser.AnimationDriver, useFactory: instantiateSupportedAnimationDriver },\n { provide: ANIMATION_MODULE_TYPE, useValue: 'BrowserAnimations' }\n ], SHARED_ANIMATION_PROVIDERS);\n /**\n * Separate providers from the actual module so that we can do a local modification in Google3 to\n * include them in the BrowserTestingModule.\n */\n var BROWSER_NOOP_ANIMATIONS_PROVIDERS = __spread([\n { provide: browser.AnimationDriver, useClass: browser.ɵNoopAnimationDriver },\n { provide: ANIMATION_MODULE_TYPE, useValue: 'NoopAnimations' }\n ], SHARED_ANIMATION_PROVIDERS);\n\n /**\n * Exports `BrowserModule` with additional [dependency-injection providers](guide/glossary#provider)\n * for use with animations. See [Animations](guide/animations).\n * @publicApi\n */\n var BrowserAnimationsModule = /** @class */ (function () {\n function BrowserAnimationsModule() {\n }\n BrowserAnimationsModule = __decorate([\n core.NgModule({\n exports: [platformBrowser.BrowserModule],\n providers: BROWSER_ANIMATIONS_PROVIDERS,\n })\n ], BrowserAnimationsModule);\n return BrowserAnimationsModule;\n }());\n /**\n * A null player that must be imported to allow disabling of animations.\n * @publicApi\n */\n var NoopAnimationsModule = /** @class */ (function () {\n function NoopAnimationsModule() {\n }\n NoopAnimationsModule = __decorate([\n core.NgModule({\n exports: [platformBrowser.BrowserModule],\n providers: BROWSER_NOOP_ANIMATIONS_PROVIDERS,\n })\n ], NoopAnimationsModule);\n return NoopAnimationsModule;\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 /**\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 /**\n * Generated bundle index. Do not edit.\n */\n\n exports.ɵangular_packages_platform_browser_animations_animations_f = BaseAnimationRenderer;\n exports.ɵangular_packages_platform_browser_animations_animations_d = BROWSER_ANIMATIONS_PROVIDERS;\n exports.ɵangular_packages_platform_browser_animations_animations_e = BROWSER_NOOP_ANIMATIONS_PROVIDERS;\n exports.ɵangular_packages_platform_browser_animations_animations_b = instantiateDefaultStyleNormalizer;\n exports.ɵangular_packages_platform_browser_animations_animations_c = instantiateRendererFactory;\n exports.ɵangular_packages_platform_browser_animations_animations_a = instantiateSupportedAnimationDriver;\n exports.BrowserAnimationsModule = BrowserAnimationsModule;\n exports.NoopAnimationsModule = NoopAnimationsModule;\n exports.ANIMATION_MODULE_TYPE = ANIMATION_MODULE_TYPE;\n exports.ɵBrowserAnimationBuilder = BrowserAnimationBuilder;\n exports.ɵBrowserAnimationFactory = BrowserAnimationFactory;\n exports.ɵAnimationRenderer = AnimationRenderer;\n exports.ɵAnimationRendererFactory = AnimationRendererFactory;\n exports.ɵInjectableAnimationEngine = InjectableAnimationEngine;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n}));\n//# sourceMappingURL=platform-browser-animations.umd.js.map\n"]}
\ No newline at end of file
+{"version":3,"sources":["packages/platform-browser/platform-browser-animations.umd.js"],"names":["global","factory","exports","module","require","define","amd","self","ng","platformBrowser","animations","core","browser","common","this","extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__extends","__","constructor","prototype","create","__decorate","decorators","target","key","desc","c","arguments","length","r","getOwnPropertyDescriptor","Reflect","decorate","i","defineProperty","__param","paramIndex","decorator","__metadata","metadataKey","metadataValue","metadata","__read","o","n","m","Symbol","iterator","e","call","ar","next","done","push","value","error","__spread","concat","BrowserAnimationBuilder","_super","rootRenderer","doc","_this","_nextAnimationId","_renderer","createRenderer","body","id","encapsulation","ViewEncapsulation","None","styles","data","animation","build","toString","entry","isArray","sequence","issueAnimationCommand","BrowserAnimationFactory","Injectable","Inject","DOCUMENT","RendererFactory2","AnimationBuilder","_id","element","options","RendererAnimationPlayer","AnimationFactory","parentPlayer","_started","totalTime","_command","_listen","eventName","callback","listen","command","args","_i","onDone","fn","onStart","onDestroy","init","hasStarted","play","pause","restart","finish","destroy","reset","setPosition","getPosition","renderer","setProperty","AnimationRendererFactory","delegate","engine","_zone","_currentId","_microtaskId","_animationCallbacksBuffer","_rendererCache","Map","_cdRecurDepth","promise","Promise","resolve","onRemovalComplete","parentNode","removeChild","hostElement","type","get","BaseAnimationRenderer","set","componentId","namespaceId","register","forEach","trigger","registerTrigger","name","AnimationRenderer","begin","_scheduleCountTask","then","scheduleListenerCallback","count","run","tuple","_a","end","runOutsideAngular","flush","whenRenderingDone","ɵAnimationEngine","NgZone","destroyNode","enumerable","configurable","createElement","namespace","createComment","createText","appendChild","parent","newChild","onInsert","insertBefore","refChild","oldChild","onRemove","selectRootElement","selectorOrNode","preserveContent","node","nextSibling","setAttribute","el","removeAttribute","addClass","removeClass","setStyle","style","flags","removeStyle","charAt","disableAnimations","setValue","undefined","process","substr","resolveElementFromTarget","document","window","name_1","phase","parseTriggerCallbackName","triggerName","dotIndex","indexOf","substring","event","InjectableAnimationEngine","driver","normalizer","AnimationDriver","ɵAnimationStyleNormalizer","instantiateSupportedAnimationDriver","ɵsupportsWebAnimations","ɵWebAnimationsDriver","ɵCssKeyframesDriver","instantiateDefaultStyleNormalizer","ɵWebAnimationsStyleNormalizer","instantiateRendererFactory","zone","ANIMATION_MODULE_TYPE","InjectionToken","SHARED_ANIMATION_PROVIDERS","provide","useClass","useFactory","deps","ɵDomRendererFactory2","BROWSER_ANIMATIONS_PROVIDERS","useValue","BROWSER_NOOP_ANIMATIONS_PROVIDERS","ɵNoopAnimationDriver","BrowserAnimationsModule","NgModule","BrowserModule","providers","NoopAnimationsModule","ɵangular_packages_platform_browser_animations_animations_f","ɵangular_packages_platform_browser_animations_animations_d","ɵangular_packages_platform_browser_animations_animations_e","ɵangular_packages_platform_browser_animations_animations_b","ɵangular_packages_platform_browser_animations_animations_c","ɵangular_packages_platform_browser_animations_animations_a","ɵBrowserAnimationBuilder","ɵBrowserAnimationFactory","ɵAnimationRenderer","ɵAnimationRendererFactory","ɵInjectableAnimationEngine"],"mappings":";;;;;CAMC,SAAUA,EAAQC,GACI,iBAAZC,SAA0C,oBAAXC,OAAyBF,EAAQC,QAASE,QAAQ,iBAAkBA,QAAQ,6BAA8BA,QAAQ,uBAAwBA,QAAQ,+BAAgCA,QAAQ,oBAC9M,mBAAXC,QAAyBA,OAAOC,IAAMD,OAAO,wCAAyC,UAAW,gBAAiB,4BAA6B,sBAAuB,8BAA+B,mBAAoBJ,GACtMA,IAAzBD,EAASA,GAAUO,MAAsBC,GAAKR,EAAOQ,OAAUR,EAAOQ,GAAGC,gBAAkBT,EAAOQ,GAAGC,oBAAuBT,EAAOQ,GAAGC,gBAAgBC,eAAkBV,EAAOQ,GAAGG,KAAMX,EAAOQ,GAAGC,gBAAiBT,EAAOQ,GAAGE,WAAYV,EAAOQ,GAAGE,WAAWE,QAASZ,EAAOQ,GAAGK,QAHtR,CAIEC,KAAM,SAAUZ,EAASS,EAAMF,EAAiBC,EAAYE,EAASC,GAAU,aAkB7E,IAAIE,EAAgB,SAASC,EAAGC,GAI5B,OAHAF,EAAgBG,OAAOC,iBAChBC,wBAA2BC,OAAS,SAAUL,EAAGC,GAAKD,EAAEI,UAAYH,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIK,KAAKL,EAAOA,EAAEM,eAAeD,KAAIN,EAAEM,GAAKL,EAAEK,MACpDN,EAAGC,IAG5B,SAASO,EAAUR,EAAGC,GAElB,SAASQ,IAAOX,KAAKY,YAAcV,EADnCD,EAAcC,EAAGC,GAEjBD,EAAEW,UAAkB,OAANV,EAAaC,OAAOU,OAAOX,IAAMQ,EAAGE,UAAYV,EAAEU,UAAW,IAAIF,GAGnF,SAASI,EAAWC,EAAYC,EAAQC,EAAKC,GACzC,IAA2HjB,EAAvHkB,EAAIC,UAAUC,OAAQC,EAAIH,EAAI,EAAIH,EAAkB,OAATE,EAAgBA,EAAOf,OAAOoB,yBAAyBP,EAAQC,GAAOC,EACrH,GAAuB,iBAAZM,SAAoD,mBAArBA,QAAQC,SAAyBH,EAAIE,QAAQC,SAASV,EAAYC,EAAQC,EAAKC,QACpH,IAAK,IAAIQ,EAAIX,EAAWM,OAAS,EAAGK,GAAK,EAAGA,KAASzB,EAAIc,EAAWW,MAAIJ,GAAKH,EAAI,EAAIlB,EAAEqB,GAAKH,EAAI,EAAIlB,EAAEe,EAAQC,EAAKK,GAAKrB,EAAEe,EAAQC,KAASK,GAChJ,OAAOH,EAAI,GAAKG,GAAKnB,OAAOwB,eAAeX,EAAQC,EAAKK,GAAIA,EAGhE,SAASM,EAAQC,EAAYC,GACzB,OAAO,SAAUd,EAAQC,GAAOa,EAAUd,EAAQC,EAAKY,IAG3D,SAASE,EAAWC,EAAaC,GAC7B,GAAuB,iBAAZT,SAAoD,mBAArBA,QAAQU,SAAyB,OAAOV,QAAQU,SAASF,EAAaC,GAGpH,SAASE,EAAOC,EAAGC,GACf,IAAIC,EAAsB,mBAAXC,QAAyBH,EAAEG,OAAOC,UACjD,IAAKF,EAAG,OAAOF,EACf,IAAmBd,EAAYmB,EAA3Bf,EAAIY,EAAEI,KAAKN,GAAOO,KACtB,IACI,WAAc,IAANN,GAAgBA,KAAM,MAAQf,EAAII,EAAEkB,QAAQC,MAAMF,EAAGG,KAAKxB,EAAEyB,OAExE,MAAOC,GAASP,GAAMO,MAAOA,GAC7B,QACI,IACQ1B,IAAMA,EAAEuB,OAASP,EAAIZ,EAAU,SAAIY,EAAEI,KAAKhB,GAElD,QAAU,GAAIe,EAAG,MAAMA,EAAEO,OAE7B,OAAOL,EAGX,SAASM,IACL,IAAK,IAAIN,KAASjB,EAAI,EAAGA,EAAIN,UAAUC,OAAQK,IAC3CiB,EAAKA,EAAGO,OAAOf,EAAOf,UAAUM,KACpC,OAAOiB,EAGX,IAAIQ,EAAyC,SAAUC,GAEnD,SAASD,EAAwBE,EAAcC,GAC3C,IAAIC,EAAQH,EAAOV,KAAK3C,OAASA,KASjC,OARAwD,EAAMC,iBAAmB,EAOzBD,EAAME,UAAYJ,EAAaK,eAAeJ,EAAIK,MAL9CC,GAAI,IACJC,cAAejE,EAAKkE,kBAAkBC,KACtCC,UACAC,MAAQC,gBAGLX,EAcX,OAzBA9C,EAAU0C,EAAyBC,GAanCD,EAAwBvC,UAAUuD,MAAQ,SAAUD,GAChD,IAAIN,EAAK7D,KAAKyD,iBAAiBY,WAC/BrE,KAAKyD,mBACL,IAAIa,EAAQ/D,MAAMgE,QAAQJ,GAAavE,EAAW4E,SAASL,GAAaA,EAExE,OADAM,EAAsBzE,KAAK0D,UAAW,KAAMG,EAAI,YAAaS,IACtD,IAAII,EAAwBb,EAAI7D,KAAK0D,YAEtB3C,GACtBlB,EAAK8E,aACL9C,EAAQ,EAAGhC,EAAK+E,OAAOjF,EAAgBkF,WACvC7C,EAAW,qBAAsBnC,EAAKiF,iBAAkB1E,UACzDgD,GAzBqC,CA2B1CxD,EAAWmF,kBACTL,EAAyC,SAAUrB,GAEnD,SAASqB,EAAwBM,EAAKtB,GAClC,IAAIF,EAAQH,EAAOV,KAAK3C,OAASA,KAGjC,OAFAwD,EAAMwB,IAAMA,EACZxB,EAAME,UAAYA,EACXF,EAKX,OAVA9C,EAAUgE,EAAyBrB,GAOnCqB,EAAwB7D,UAAUC,OAAS,SAAUmE,EAASC,GAC1D,OAAO,IAAIC,EAAwBnF,KAAKgF,IAAKC,EAASC,MAAelF,KAAK0D,YAEvEgB,EAXiC,CAY1C9E,EAAWwF,kBACTD,EAAyC,WACzC,SAASA,EAAwBtB,EAAIoB,EAASC,EAASxB,GACnD1D,KAAK6D,GAAKA,EACV7D,KAAKiF,QAAUA,EACfjF,KAAK0D,UAAYA,EACjB1D,KAAKqF,aAAe,KACpBrF,KAAKsF,UAAW,EAChBtF,KAAKuF,UAAY,EACjBvF,KAAKwF,SAAS,SAAUN,GA4B5B,OA1BAC,EAAwBtE,UAAU4E,QAAU,SAAUC,EAAWC,GAC7D,OAAO3F,KAAK0D,UAAUkC,OAAO5F,KAAKiF,QAAS,KAAOjF,KAAK6D,GAAK,IAAM6B,EAAWC,IAEjFR,EAAwBtE,UAAU2E,SAAW,SAAUK,GAEnD,IADA,IAAIC,KACKC,EAAK,EAAGA,EAAK1E,UAAUC,OAAQyE,IACpCD,EAAKC,EAAK,GAAK1E,UAAU0E,GAE7B,OAAOtB,EAAsBzE,KAAK0D,UAAW1D,KAAKiF,QAASjF,KAAK6D,GAAIgC,EAASC,IAEjFX,EAAwBtE,UAAUmF,OAAS,SAAUC,GAAMjG,KAAKyF,QAAQ,OAAQQ,IAChFd,EAAwBtE,UAAUqF,QAAU,SAAUD,GAAMjG,KAAKyF,QAAQ,QAASQ,IAClFd,EAAwBtE,UAAUsF,UAAY,SAAUF,GAAMjG,KAAKyF,QAAQ,UAAWQ,IACtFd,EAAwBtE,UAAUuF,KAAO,WAAcpG,KAAKwF,SAAS,SACrEL,EAAwBtE,UAAUwF,WAAa,WAAc,OAAOrG,KAAKsF,UACzEH,EAAwBtE,UAAUyF,KAAO,WACrCtG,KAAKwF,SAAS,QACdxF,KAAKsF,UAAW,GAEpBH,EAAwBtE,UAAU0F,MAAQ,WAAcvG,KAAKwF,SAAS,UACtEL,EAAwBtE,UAAU2F,QAAU,WAAcxG,KAAKwF,SAAS,YACxEL,EAAwBtE,UAAU4F,OAAS,WAAczG,KAAKwF,SAAS,WACvEL,EAAwBtE,UAAU6F,QAAU,WAAc1G,KAAKwF,SAAS,YACxEL,EAAwBtE,UAAU8F,MAAQ,WAAc3G,KAAKwF,SAAS,UACtEL,EAAwBtE,UAAU+F,YAAc,SAAUpG,GAAKR,KAAKwF,SAAS,cAAehF,IAC5F2E,EAAwBtE,UAAUgG,YAAc,WAAc,OAAO,GAC9D1B,EApCiC,GAsC5C,SAASV,EAAsBqC,EAAU7B,EAASpB,EAAIgC,EAASC,GAC3D,OAAOgB,EAASC,YAAY9B,EAAS,KAAOpB,EAAK,IAAMgC,EAASC,GAGpE,IAEIkB,EAA0C,WAC1C,SAASA,EAAyBC,EAAUC,EAAQC,GAChDnH,KAAKiH,SAAWA,EAChBjH,KAAKkH,OAASA,EACdlH,KAAKmH,MAAQA,EACbnH,KAAKoH,WAAa,EAClBpH,KAAKqH,aAAe,EACpBrH,KAAKsH,6BACLtH,KAAKuH,eAAiB,IAAIC,IAC1BxH,KAAKyH,cAAgB,EACrBzH,KAAK0H,QAAUC,QAAQC,QAAQ,GAC/BV,EAAOW,kBAAoB,SAAU5C,EAASgC,GAKtCA,GAAYA,EAASa,WAAW7C,IAChCgC,EAASc,YAAY9C,EAAQ6C,WAAY7C,IA8ErD,OA1EA+B,EAAyBnG,UAAU8C,eAAiB,SAAUqE,EAAaC,GACvE,IAAIzE,EAAQxD,KAIRiH,EAAWjH,KAAKiH,SAAStD,eAAeqE,EAAaC,GACzD,KAAKD,GAAgBC,GAASA,EAAK/D,MAAS+D,EAAK/D,KAAgB,WAAG,CAChE,IAAI4C,EAAW9G,KAAKuH,eAAeW,IAAIjB,GAMvC,OALKH,IACDA,EAAW,IAAIqB,EAPE,GAOwClB,EAAUjH,KAAKkH,QAExElH,KAAKuH,eAAea,IAAInB,EAAUH,IAE/BA,EAEX,IAAIuB,EAAcJ,EAAKpE,GACnByE,EAAcL,EAAKpE,GAAK,IAAM7D,KAAKoH,WAKvC,OAJApH,KAAKoH,aACLpH,KAAKkH,OAAOqB,SAASD,EAAaN,GACVC,EAAK/D,KAAgB,UAC3BsE,QAAQ,SAAUC,GAAW,OAAOjF,EAAM0D,OAAOwB,gBAAgBL,EAAaC,EAAaN,EAAaS,EAAQE,KAAMF,KACjI,IAAIG,EAAkB5I,KAAMsI,EAAarB,EAAUjH,KAAKkH,SAEnEF,EAAyBnG,UAAUgI,MAAQ,WACvC7I,KAAKyH,gBACDzH,KAAKiH,SAAS4B,OACd7I,KAAKiH,SAAS4B,SAGtB7B,EAAyBnG,UAAUiI,mBAAqB,WACpD,IAAItF,EAAQxD,KAEZA,KAAK0H,QAAQqB,KAAK,WAAcvF,EAAM6D,kBAG1CL,EAAyBnG,UAAUmI,yBAA2B,SAAUC,EAAOhD,EAAI/B,GAC/E,IAAIV,EAAQxD,KACRiJ,GAAS,GAAKA,EAAQjJ,KAAKqH,aAC3BrH,KAAKmH,MAAM+B,IAAI,WAAc,OAAOjD,EAAG/B,MAGE,GAAzClE,KAAKsH,0BAA0BhG,QAC/BqG,QAAQC,QAAQ,MAAMmB,KAAK,WACvBvF,EAAM2D,MAAM+B,IAAI,WACZ1F,EAAM8D,0BAA0BkB,QAAQ,SAAUW,GAC9C,IAAIC,EAAKhH,EAAO+G,EAAO,IACvBlD,EADgCmD,EAAG,IAAWA,EAAG,MAGrD5F,EAAM8D,iCAIlBtH,KAAKsH,0BAA0BvE,MAAMkD,EAAI/B,MAE7C8C,EAAyBnG,UAAUwI,IAAM,WACrC,IAAI7F,EAAQxD,KACZA,KAAKyH,gBAGqB,GAAtBzH,KAAKyH,eACLzH,KAAKmH,MAAMmC,kBAAkB,WACzB9F,EAAMsF,qBACNtF,EAAM0D,OAAOqC,MAAM/F,EAAM6D,gBAG7BrH,KAAKiH,SAASoC,KACdrJ,KAAKiH,SAASoC,OAGtBrC,EAAyBnG,UAAU2I,kBAAoB,WAAc,OAAOxJ,KAAKkH,OAAOsC,qBAC7DzI,GACvBlB,EAAK8E,aACL3C,EAAW,qBAAsBnC,EAAKiF,iBAAkBhF,EAAQ2J,iBAAkB5J,EAAK6J,UACxF1C,GA9FsC,GAiGzCmB,EAAuC,WACvC,SAASA,EAAsBG,EAAarB,EAAUC,GAClDlH,KAAKsI,YAAcA,EACnBtI,KAAKiH,SAAWA,EAChBjH,KAAKkH,OAASA,EACdlH,KAAK2J,YAAc3J,KAAKiH,SAAS0C,YAAc,SAAUrH,GAAK,OAAO2E,EAAS0C,YAAYrH,IAAQ,KA6DtG,OA3DAlC,OAAOwB,eAAeuG,EAAsBtH,UAAW,QACnDqH,IAAK,WAAc,OAAOlI,KAAKiH,SAAS/C,MACxC0F,YAAY,EACZC,cAAc,IAElB1B,EAAsBtH,UAAU6F,QAAU,WACtC1G,KAAKkH,OAAOR,QAAQ1G,KAAKsI,YAAatI,KAAKiH,UAC3CjH,KAAKiH,SAASP,WAElByB,EAAsBtH,UAAUiJ,cAAgB,SAAUnB,EAAMoB,GAC5D,OAAO/J,KAAKiH,SAAS6C,cAAcnB,EAAMoB,IAE7C5B,EAAsBtH,UAAUmJ,cAAgB,SAAUhH,GAAS,OAAOhD,KAAKiH,SAAS+C,cAAchH,IACtGmF,EAAsBtH,UAAUoJ,WAAa,SAAUjH,GAAS,OAAOhD,KAAKiH,SAASgD,WAAWjH,IAChGmF,EAAsBtH,UAAUqJ,YAAc,SAAUC,EAAQC,GAC5DpK,KAAKiH,SAASiD,YAAYC,EAAQC,GAClCpK,KAAKkH,OAAOmD,SAASrK,KAAKsI,YAAa8B,EAAUD,GAAQ,IAE7DhC,EAAsBtH,UAAUyJ,aAAe,SAAUH,EAAQC,EAAUG,GACvEvK,KAAKiH,SAASqD,aAAaH,EAAQC,EAAUG,GAC7CvK,KAAKkH,OAAOmD,SAASrK,KAAKsI,YAAa8B,EAAUD,GAAQ,IAE7DhC,EAAsBtH,UAAUkH,YAAc,SAAUoC,EAAQK,GAC5DxK,KAAKkH,OAAOuD,SAASzK,KAAKsI,YAAakC,EAAUxK,KAAKiH,WAE1DkB,EAAsBtH,UAAU6J,kBAAoB,SAAUC,EAAgBC,GAC1E,OAAO5K,KAAKiH,SAASyD,kBAAkBC,EAAgBC,IAE3DzC,EAAsBtH,UAAUiH,WAAa,SAAU+C,GAAQ,OAAO7K,KAAKiH,SAASa,WAAW+C,IAC/F1C,EAAsBtH,UAAUiK,YAAc,SAAUD,GAAQ,OAAO7K,KAAKiH,SAAS6D,YAAYD,IACjG1C,EAAsBtH,UAAUkK,aAAe,SAAUC,EAAIrC,EAAM3F,EAAO+G,GACtE/J,KAAKiH,SAAS8D,aAAaC,EAAIrC,EAAM3F,EAAO+G,IAEhD5B,EAAsBtH,UAAUoK,gBAAkB,SAAUD,EAAIrC,EAAMoB,GAClE/J,KAAKiH,SAASgE,gBAAgBD,EAAIrC,EAAMoB,IAE5C5B,EAAsBtH,UAAUqK,SAAW,SAAUF,EAAIrC,GAAQ3I,KAAKiH,SAASiE,SAASF,EAAIrC,IAC5FR,EAAsBtH,UAAUsK,YAAc,SAAUH,EAAIrC,GAAQ3I,KAAKiH,SAASkE,YAAYH,EAAIrC,IAClGR,EAAsBtH,UAAUuK,SAAW,SAAUJ,EAAIK,EAAOrI,EAAOsI,GACnEtL,KAAKiH,SAASmE,SAASJ,EAAIK,EAAOrI,EAAOsI,IAE7CnD,EAAsBtH,UAAU0K,YAAc,SAAUP,EAAIK,EAAOC,GAC/DtL,KAAKiH,SAASsE,YAAYP,EAAIK,EAAOC,IAEzCnD,EAAsBtH,UAAUkG,YAAc,SAAUiE,EAAIrC,EAAM3F,GAtJ/C,KAuJX2F,EAAK6C,OAAO,IAtJM,cAsJoB7C,EACtC3I,KAAKyL,kBAAkBT,IAAMhI,GAG7BhD,KAAKiH,SAASF,YAAYiE,EAAIrC,EAAM3F,IAG5CmF,EAAsBtH,UAAU6K,SAAW,SAAUb,EAAM7H,GAAShD,KAAKiH,SAASyE,SAASb,EAAM7H,IACjGmF,EAAsBtH,UAAU+E,OAAS,SAAU3E,EAAQyE,EAAWC,GAClE,OAAO3F,KAAKiH,SAASrB,OAAO3E,EAAQyE,EAAWC,IAEnDwC,EAAsBtH,UAAU4K,kBAAoB,SAAUxG,EAASjC,GACnEhD,KAAKkH,OAAOuE,kBAAkBxG,EAASjC,IAEpCmF,EAlE+B,GAoEtCS,EAAmC,SAAUvF,GAE7C,SAASuF,EAAkBzJ,EAASmJ,EAAarB,EAAUC,GACvD,IAAI1D,EAAQH,EAAOV,KAAK3C,KAAMsI,EAAarB,EAAUC,IAAWlH,KAGhE,OAFAwD,EAAMrE,QAAUA,EAChBqE,EAAM8E,YAAcA,EACb9E,EAmCX,OAxCA9C,EAAUkI,EAAmBvF,GAO7BuF,EAAkB/H,UAAUkG,YAAc,SAAUiE,EAAIrC,EAAM3F,GA/K3C,KAgLX2F,EAAK6C,OAAO,GACU,KAAlB7C,EAAK6C,OAAO,IAhLE,cAgLW7C,EAEzB3I,KAAKyL,kBAAkBT,EADvBhI,OAAkB2I,IAAV3I,KAA+BA,GAIvChD,KAAKkH,OAAO0E,QAAQ5L,KAAKsI,YAAa0C,EAAIrC,EAAKkD,OAAO,GAAI7I,GAI9DhD,KAAKiH,SAASF,YAAYiE,EAAIrC,EAAM3F,IAG5C4F,EAAkB/H,UAAU+E,OAAS,SAAU3E,EAAQyE,EAAWC,GAC9D,IACIyD,EADA5F,EAAQxD,KAEZ,GAhMe,KAgMX0F,EAAU8F,OAAO,GAAwB,CACzC,IAAIvG,EAiBhB,SAAS6G,EAAyB7K,GAC9B,OAAQA,GACJ,IAAK,OACD,OAAO8K,SAASnI,KACpB,IAAK,WACD,OAAOmI,SACX,IAAK,SACD,OAAOC,OACX,QACI,OAAO/K,GA1BO6K,CAAyB7K,GACnCgL,EAASvG,EAAUmG,OAAO,GAC1BK,EAAQ,GAMZ,MAzMW,KAsMPD,EAAOT,OAAO,KACoCS,GAAlD7C,EAAKhH,EAuBrB,SAAS+J,EAAyBC,GAC9B,IAAIC,EAAWD,EAAYE,QAAQ,KAGnC,OAFcF,EAAYG,UAAU,EAAGF,GAC3BD,EAAYP,OAAOQ,EAAW;;;;;;;OA1BlBF,CAAyBF,GAAS,IAAgB,GAAIC,EAAQ9C,EAAG,IAE1EpJ,KAAKkH,OAAOtB,OAAO5F,KAAKsI,YAAarD,EAASgH,EAAQC,EAAO,SAAUM,GAE1EhJ,EAAMrE,QAAQ6J,yBADAwD,EAAa,QAAM,EACe7G,EAAU6G,KAGlE,OAAOxM,KAAKiH,SAASrB,OAAO3E,EAAQyE,EAAWC,IAE5CiD,EAzC2B,CA0CpCT,GA2BEsE,EAA2C,SAAUpJ,GAErD,SAASoJ,EAA0BlJ,EAAKmJ,EAAQC,GAC5C,OAAOtJ,EAAOV,KAAK3C,KAAMuD,EAAIK,KAAM8I,EAAQC,IAAe3M,KAO9D,OATAU,EAAU+L,EAA2BpJ,GAITtC,GACxBlB,EAAK8E,aACL9C,EAAQ,EAAGhC,EAAK+E,OAAO7E,EAAO8E,WAC9B7C,EAAW,qBAAsB5B,OAAQN,EAAQ8M,gBAAiB9M,EAAQ+M,6BAC3EJ,GATuC,CAW5C3M,EAAQ2J,kBACV,SAASqD,IACL,OAAOhN,EAAQiN,yBAA2B,IAAIjN,EAAQkN,qBAAyB,IAAIlN,EAAQmN,oBAE/F,SAASC,IACL,OAAO,IAAIpN,EAAQqN,8BAEvB,SAASC,EAA2BtG,EAAUI,EAAQmG,GAClD,OAAO,IAAIrG,EAAyBF,EAAUI,EAAQmG,GAK1D,IAAIC,EAAwB,IAAIzN,EAAK0N,eAAe,uBAChDC,IACEC,QAAS7N,EAAWmF,iBAAkB2I,SAAUtK,IAChDqK,QAAS3N,EAAQ+M,0BAA2Bc,WAAYT,IACxDO,QAAS3N,EAAQ2J,iBAAkBiE,SAAUjB,IAC3CgB,QAAS5N,EAAKiF,iBACd6I,WAAYP,EACZQ,MAAOjO,EAAgBkO,qBAAsB/N,EAAQ2J,iBAAkB5J,EAAK6J,UAOhFoE,EAA+B5K,IAC7BuK,QAAS3N,EAAQ8M,gBAAiBe,WAAYb,IAC9CW,QAASH,EAAuBS,SAAU,sBAC7CP,GAKCQ,EAAoC9K,IAClCuK,QAAS3N,EAAQ8M,gBAAiBc,SAAU5N,EAAQmO,uBACpDR,QAASH,EAAuBS,SAAU,mBAC7CP,GAOCU,EAAyC,WASzC,OAN0BnN,GACtBlB,EAAKsO,UACD/O,SAAUO,EAAgByO,eAC1BC,UAAWP,KALnB,SAASI,OAD+B,GAexCI,EAAsC,WAStC,OANuBvN,GACnBlB,EAAKsO,UACD/O,SAAUO,EAAgByO,eAC1BC,UAAWL,KALnB,SAASM,OAD4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgDzClP,EAAQmP,2DAA6DpG,EACrE/I,EAAQoP,2DAA6DV,EACrE1O,EAAQqP,2DAA6DT,EACrE5O,EAAQsP,2DAA6DxB,EACrE9N,EAAQuP,2DAA6DvB,EACrEhO,EAAQwP,2DAA6D9B,EACrE1N,EAAQ8O,wBAA0BA,EAClC9O,EAAQkP,qBAAuBA,EAC/BlP,EAAQkO,sBAAwBA,EAChClO,EAAQyP,yBAA2BzL,EACnChE,EAAQ0P,yBAA2BpK,EACnCtF,EAAQ2P,mBAAqBnG,EAC7BxJ,EAAQ4P,0BAA4BhI,EACpC5H,EAAQ6P,2BAA6BxC,EAErCrM,OAAOwB,eAAexC,EAAS,cAAgB4D,OAAO","sourcesContent":["/**\n * @license Angular v7.2.8\n * (c) 2010-2019 Google LLC. https://angular.io/\n * License: MIT\n */\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@angular/platform-browser'), require('@angular/animations'), require('@angular/animations/browser'), require('@angular/common')) :\n typeof define === 'function' && define.amd ? define('@angular/platform-browser/animations', ['exports', '@angular/core', '@angular/platform-browser', '@angular/animations', '@angular/animations/browser', '@angular/common'], factory) :\n (global = global || self, factory((global.ng = global.ng || {}, global.ng.platformBrowser = global.ng.platformBrowser || {}, global.ng.platformBrowser.animations = {}), global.ng.core, global.ng.platformBrowser, global.ng.animations, global.ng.animations.browser, global.ng.common));\n}(this, function (exports, core, platformBrowser, animations, browser, common) { '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 function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n }\r\n\r\n function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n }\r\n\r\n function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n }\r\n\r\n function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n }\r\n\r\n function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n }\n\n var BrowserAnimationBuilder = /** @class */ (function (_super) {\n __extends(BrowserAnimationBuilder, _super);\n function BrowserAnimationBuilder(rootRenderer, doc) {\n var _this = _super.call(this) || this;\n _this._nextAnimationId = 0;\n var typeData = {\n id: '0',\n encapsulation: core.ViewEncapsulation.None,\n styles: [],\n data: { animation: [] }\n };\n _this._renderer = rootRenderer.createRenderer(doc.body, typeData);\n return _this;\n }\n BrowserAnimationBuilder.prototype.build = function (animation) {\n var id = this._nextAnimationId.toString();\n this._nextAnimationId++;\n var entry = Array.isArray(animation) ? animations.sequence(animation) : animation;\n issueAnimationCommand(this._renderer, null, id, 'register', [entry]);\n return new BrowserAnimationFactory(id, this._renderer);\n };\n BrowserAnimationBuilder = __decorate([\n core.Injectable(),\n __param(1, core.Inject(platformBrowser.DOCUMENT)),\n __metadata(\"design:paramtypes\", [core.RendererFactory2, Object])\n ], BrowserAnimationBuilder);\n return BrowserAnimationBuilder;\n }(animations.AnimationBuilder));\n var BrowserAnimationFactory = /** @class */ (function (_super) {\n __extends(BrowserAnimationFactory, _super);\n function BrowserAnimationFactory(_id, _renderer) {\n var _this = _super.call(this) || this;\n _this._id = _id;\n _this._renderer = _renderer;\n return _this;\n }\n BrowserAnimationFactory.prototype.create = function (element, options) {\n return new RendererAnimationPlayer(this._id, element, options || {}, this._renderer);\n };\n return BrowserAnimationFactory;\n }(animations.AnimationFactory));\n var RendererAnimationPlayer = /** @class */ (function () {\n function RendererAnimationPlayer(id, element, options, _renderer) {\n this.id = id;\n this.element = element;\n this._renderer = _renderer;\n this.parentPlayer = null;\n this._started = false;\n this.totalTime = 0;\n this._command('create', options);\n }\n RendererAnimationPlayer.prototype._listen = function (eventName, callback) {\n return this._renderer.listen(this.element, \"@@\" + this.id + \":\" + eventName, callback);\n };\n RendererAnimationPlayer.prototype._command = function (command) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n return issueAnimationCommand(this._renderer, this.element, this.id, command, args);\n };\n RendererAnimationPlayer.prototype.onDone = function (fn) { this._listen('done', fn); };\n RendererAnimationPlayer.prototype.onStart = function (fn) { this._listen('start', fn); };\n RendererAnimationPlayer.prototype.onDestroy = function (fn) { this._listen('destroy', fn); };\n RendererAnimationPlayer.prototype.init = function () { this._command('init'); };\n RendererAnimationPlayer.prototype.hasStarted = function () { return this._started; };\n RendererAnimationPlayer.prototype.play = function () {\n this._command('play');\n this._started = true;\n };\n RendererAnimationPlayer.prototype.pause = function () { this._command('pause'); };\n RendererAnimationPlayer.prototype.restart = function () { this._command('restart'); };\n RendererAnimationPlayer.prototype.finish = function () { this._command('finish'); };\n RendererAnimationPlayer.prototype.destroy = function () { this._command('destroy'); };\n RendererAnimationPlayer.prototype.reset = function () { this._command('reset'); };\n RendererAnimationPlayer.prototype.setPosition = function (p) { this._command('setPosition', p); };\n RendererAnimationPlayer.prototype.getPosition = function () { return 0; };\n return RendererAnimationPlayer;\n }());\n function issueAnimationCommand(renderer, element, id, command, args) {\n return renderer.setProperty(element, \"@@\" + id + \":\" + command, args);\n }\n\n var ANIMATION_PREFIX = '@';\n var DISABLE_ANIMATIONS_FLAG = '@.disabled';\n var AnimationRendererFactory = /** @class */ (function () {\n function AnimationRendererFactory(delegate, engine, _zone) {\n this.delegate = delegate;\n this.engine = engine;\n this._zone = _zone;\n this._currentId = 0;\n this._microtaskId = 1;\n this._animationCallbacksBuffer = [];\n this._rendererCache = new Map();\n this._cdRecurDepth = 0;\n this.promise = Promise.resolve(0);\n engine.onRemovalComplete = function (element, delegate) {\n // Note: if an component element has a leave animation, and the component\n // a host leave animation, the view engine will call `removeChild` for the parent\n // component renderer as well as for the child component renderer.\n // Therefore, we need to check if we already removed the element.\n if (delegate && delegate.parentNode(element)) {\n delegate.removeChild(element.parentNode, element);\n }\n };\n }\n AnimationRendererFactory.prototype.createRenderer = function (hostElement, type) {\n var _this = this;\n var EMPTY_NAMESPACE_ID = '';\n // cache the delegates to find out which cached delegate can\n // be used by which cached renderer\n var delegate = this.delegate.createRenderer(hostElement, type);\n if (!hostElement || !type || !type.data || !type.data['animation']) {\n var renderer = this._rendererCache.get(delegate);\n if (!renderer) {\n renderer = new BaseAnimationRenderer(EMPTY_NAMESPACE_ID, delegate, this.engine);\n // only cache this result when the base renderer is used\n this._rendererCache.set(delegate, renderer);\n }\n return renderer;\n }\n var componentId = type.id;\n var namespaceId = type.id + '-' + this._currentId;\n this._currentId++;\n this.engine.register(namespaceId, hostElement);\n var animationTriggers = type.data['animation'];\n animationTriggers.forEach(function (trigger) { return _this.engine.registerTrigger(componentId, namespaceId, hostElement, trigger.name, trigger); });\n return new AnimationRenderer(this, namespaceId, delegate, this.engine);\n };\n AnimationRendererFactory.prototype.begin = function () {\n this._cdRecurDepth++;\n if (this.delegate.begin) {\n this.delegate.begin();\n }\n };\n AnimationRendererFactory.prototype._scheduleCountTask = function () {\n var _this = this;\n // always use promise to schedule microtask instead of use Zone\n this.promise.then(function () { _this._microtaskId++; });\n };\n /** @internal */\n AnimationRendererFactory.prototype.scheduleListenerCallback = function (count, fn, data) {\n var _this = this;\n if (count >= 0 && count < this._microtaskId) {\n this._zone.run(function () { return fn(data); });\n return;\n }\n if (this._animationCallbacksBuffer.length == 0) {\n Promise.resolve(null).then(function () {\n _this._zone.run(function () {\n _this._animationCallbacksBuffer.forEach(function (tuple) {\n var _a = __read(tuple, 2), fn = _a[0], data = _a[1];\n fn(data);\n });\n _this._animationCallbacksBuffer = [];\n });\n });\n }\n this._animationCallbacksBuffer.push([fn, data]);\n };\n AnimationRendererFactory.prototype.end = function () {\n var _this = this;\n this._cdRecurDepth--;\n // this is to prevent animations from running twice when an inner\n // component does CD when a parent component instead has inserted it\n if (this._cdRecurDepth == 0) {\n this._zone.runOutsideAngular(function () {\n _this._scheduleCountTask();\n _this.engine.flush(_this._microtaskId);\n });\n }\n if (this.delegate.end) {\n this.delegate.end();\n }\n };\n AnimationRendererFactory.prototype.whenRenderingDone = function () { return this.engine.whenRenderingDone(); };\n AnimationRendererFactory = __decorate([\n core.Injectable(),\n __metadata(\"design:paramtypes\", [core.RendererFactory2, browser.ɵAnimationEngine, core.NgZone])\n ], AnimationRendererFactory);\n return AnimationRendererFactory;\n }());\n var BaseAnimationRenderer = /** @class */ (function () {\n function BaseAnimationRenderer(namespaceId, delegate, engine) {\n this.namespaceId = namespaceId;\n this.delegate = delegate;\n this.engine = engine;\n this.destroyNode = this.delegate.destroyNode ? function (n) { return delegate.destroyNode(n); } : null;\n }\n Object.defineProperty(BaseAnimationRenderer.prototype, \"data\", {\n get: function () { return this.delegate.data; },\n enumerable: true,\n configurable: true\n });\n BaseAnimationRenderer.prototype.destroy = function () {\n this.engine.destroy(this.namespaceId, this.delegate);\n this.delegate.destroy();\n };\n BaseAnimationRenderer.prototype.createElement = function (name, namespace) {\n return this.delegate.createElement(name, namespace);\n };\n BaseAnimationRenderer.prototype.createComment = function (value) { return this.delegate.createComment(value); };\n BaseAnimationRenderer.prototype.createText = function (value) { return this.delegate.createText(value); };\n BaseAnimationRenderer.prototype.appendChild = function (parent, newChild) {\n this.delegate.appendChild(parent, newChild);\n this.engine.onInsert(this.namespaceId, newChild, parent, false);\n };\n BaseAnimationRenderer.prototype.insertBefore = function (parent, newChild, refChild) {\n this.delegate.insertBefore(parent, newChild, refChild);\n this.engine.onInsert(this.namespaceId, newChild, parent, true);\n };\n BaseAnimationRenderer.prototype.removeChild = function (parent, oldChild) {\n this.engine.onRemove(this.namespaceId, oldChild, this.delegate);\n };\n BaseAnimationRenderer.prototype.selectRootElement = function (selectorOrNode, preserveContent) {\n return this.delegate.selectRootElement(selectorOrNode, preserveContent);\n };\n BaseAnimationRenderer.prototype.parentNode = function (node) { return this.delegate.parentNode(node); };\n BaseAnimationRenderer.prototype.nextSibling = function (node) { return this.delegate.nextSibling(node); };\n BaseAnimationRenderer.prototype.setAttribute = function (el, name, value, namespace) {\n this.delegate.setAttribute(el, name, value, namespace);\n };\n BaseAnimationRenderer.prototype.removeAttribute = function (el, name, namespace) {\n this.delegate.removeAttribute(el, name, namespace);\n };\n BaseAnimationRenderer.prototype.addClass = function (el, name) { this.delegate.addClass(el, name); };\n BaseAnimationRenderer.prototype.removeClass = function (el, name) { this.delegate.removeClass(el, name); };\n BaseAnimationRenderer.prototype.setStyle = function (el, style, value, flags) {\n this.delegate.setStyle(el, style, value, flags);\n };\n BaseAnimationRenderer.prototype.removeStyle = function (el, style, flags) {\n this.delegate.removeStyle(el, style, flags);\n };\n BaseAnimationRenderer.prototype.setProperty = function (el, name, value) {\n if (name.charAt(0) == ANIMATION_PREFIX && name == DISABLE_ANIMATIONS_FLAG) {\n this.disableAnimations(el, !!value);\n }\n else {\n this.delegate.setProperty(el, name, value);\n }\n };\n BaseAnimationRenderer.prototype.setValue = function (node, value) { this.delegate.setValue(node, value); };\n BaseAnimationRenderer.prototype.listen = function (target, eventName, callback) {\n return this.delegate.listen(target, eventName, callback);\n };\n BaseAnimationRenderer.prototype.disableAnimations = function (element, value) {\n this.engine.disableAnimations(element, value);\n };\n return BaseAnimationRenderer;\n }());\n var AnimationRenderer = /** @class */ (function (_super) {\n __extends(AnimationRenderer, _super);\n function AnimationRenderer(factory, namespaceId, delegate, engine) {\n var _this = _super.call(this, namespaceId, delegate, engine) || this;\n _this.factory = factory;\n _this.namespaceId = namespaceId;\n return _this;\n }\n AnimationRenderer.prototype.setProperty = function (el, name, value) {\n if (name.charAt(0) == ANIMATION_PREFIX) {\n if (name.charAt(1) == '.' && name == DISABLE_ANIMATIONS_FLAG) {\n value = value === undefined ? true : !!value;\n this.disableAnimations(el, value);\n }\n else {\n this.engine.process(this.namespaceId, el, name.substr(1), value);\n }\n }\n else {\n this.delegate.setProperty(el, name, value);\n }\n };\n AnimationRenderer.prototype.listen = function (target, eventName, callback) {\n var _this = this;\n var _a;\n if (eventName.charAt(0) == ANIMATION_PREFIX) {\n var element = resolveElementFromTarget(target);\n var name_1 = eventName.substr(1);\n var phase = '';\n // @listener.phase is for trigger animation callbacks\n // @@listener is for animation builder callbacks\n if (name_1.charAt(0) != ANIMATION_PREFIX) {\n _a = __read(parseTriggerCallbackName(name_1), 2), name_1 = _a[0], phase = _a[1];\n }\n return this.engine.listen(this.namespaceId, element, name_1, phase, function (event) {\n var countId = event['_data'] || -1;\n _this.factory.scheduleListenerCallback(countId, callback, event);\n });\n }\n return this.delegate.listen(target, eventName, callback);\n };\n return AnimationRenderer;\n }(BaseAnimationRenderer));\n function resolveElementFromTarget(target) {\n switch (target) {\n case 'body':\n return document.body;\n case 'document':\n return document;\n case 'window':\n return window;\n default:\n return target;\n }\n }\n function parseTriggerCallbackName(triggerName) {\n var dotIndex = triggerName.indexOf('.');\n var trigger = triggerName.substring(0, dotIndex);\n var phase = triggerName.substr(dotIndex + 1);\n return [trigger, phase];\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 InjectableAnimationEngine = /** @class */ (function (_super) {\n __extends(InjectableAnimationEngine, _super);\n function InjectableAnimationEngine(doc, driver, normalizer) {\n return _super.call(this, doc.body, driver, normalizer) || this;\n }\n InjectableAnimationEngine = __decorate([\n core.Injectable(),\n __param(0, core.Inject(common.DOCUMENT)),\n __metadata(\"design:paramtypes\", [Object, browser.AnimationDriver, browser.ɵAnimationStyleNormalizer])\n ], InjectableAnimationEngine);\n return InjectableAnimationEngine;\n }(browser.ɵAnimationEngine));\n function instantiateSupportedAnimationDriver() {\n return browser.ɵsupportsWebAnimations() ? new browser.ɵWebAnimationsDriver() : new browser.ɵCssKeyframesDriver();\n }\n function instantiateDefaultStyleNormalizer() {\n return new browser.ɵWebAnimationsStyleNormalizer();\n }\n function instantiateRendererFactory(renderer, engine, zone) {\n return new AnimationRendererFactory(renderer, engine, zone);\n }\n /**\n * @publicApi\n */\n var ANIMATION_MODULE_TYPE = new core.InjectionToken('AnimationModuleType');\n var SHARED_ANIMATION_PROVIDERS = [\n { provide: animations.AnimationBuilder, useClass: BrowserAnimationBuilder },\n { provide: browser.ɵAnimationStyleNormalizer, useFactory: instantiateDefaultStyleNormalizer },\n { provide: browser.ɵAnimationEngine, useClass: InjectableAnimationEngine }, {\n provide: core.RendererFactory2,\n useFactory: instantiateRendererFactory,\n deps: [platformBrowser.ɵDomRendererFactory2, browser.ɵAnimationEngine, core.NgZone]\n }\n ];\n /**\n * Separate providers from the actual module so that we can do a local modification in Google3 to\n * include them in the BrowserModule.\n */\n var BROWSER_ANIMATIONS_PROVIDERS = __spread([\n { provide: browser.AnimationDriver, useFactory: instantiateSupportedAnimationDriver },\n { provide: ANIMATION_MODULE_TYPE, useValue: 'BrowserAnimations' }\n ], SHARED_ANIMATION_PROVIDERS);\n /**\n * Separate providers from the actual module so that we can do a local modification in Google3 to\n * include them in the BrowserTestingModule.\n */\n var BROWSER_NOOP_ANIMATIONS_PROVIDERS = __spread([\n { provide: browser.AnimationDriver, useClass: browser.ɵNoopAnimationDriver },\n { provide: ANIMATION_MODULE_TYPE, useValue: 'NoopAnimations' }\n ], SHARED_ANIMATION_PROVIDERS);\n\n /**\n * Exports `BrowserModule` with additional [dependency-injection providers](guide/glossary#provider)\n * for use with animations. See [Animations](guide/animations).\n * @publicApi\n */\n var BrowserAnimationsModule = /** @class */ (function () {\n function BrowserAnimationsModule() {\n }\n BrowserAnimationsModule = __decorate([\n core.NgModule({\n exports: [platformBrowser.BrowserModule],\n providers: BROWSER_ANIMATIONS_PROVIDERS,\n })\n ], BrowserAnimationsModule);\n return BrowserAnimationsModule;\n }());\n /**\n * A null player that must be imported to allow disabling of animations.\n * @publicApi\n */\n var NoopAnimationsModule = /** @class */ (function () {\n function NoopAnimationsModule() {\n }\n NoopAnimationsModule = __decorate([\n core.NgModule({\n exports: [platformBrowser.BrowserModule],\n providers: BROWSER_NOOP_ANIMATIONS_PROVIDERS,\n })\n ], NoopAnimationsModule);\n return NoopAnimationsModule;\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 /**\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 /**\n * Generated bundle index. Do not edit.\n */\n\n exports.ɵangular_packages_platform_browser_animations_animations_f = BaseAnimationRenderer;\n exports.ɵangular_packages_platform_browser_animations_animations_d = BROWSER_ANIMATIONS_PROVIDERS;\n exports.ɵangular_packages_platform_browser_animations_animations_e = BROWSER_NOOP_ANIMATIONS_PROVIDERS;\n exports.ɵangular_packages_platform_browser_animations_animations_b = instantiateDefaultStyleNormalizer;\n exports.ɵangular_packages_platform_browser_animations_animations_c = instantiateRendererFactory;\n exports.ɵangular_packages_platform_browser_animations_animations_a = instantiateSupportedAnimationDriver;\n exports.BrowserAnimationsModule = BrowserAnimationsModule;\n exports.NoopAnimationsModule = NoopAnimationsModule;\n exports.ANIMATION_MODULE_TYPE = ANIMATION_MODULE_TYPE;\n exports.ɵBrowserAnimationBuilder = BrowserAnimationBuilder;\n exports.ɵBrowserAnimationFactory = BrowserAnimationFactory;\n exports.ɵAnimationRenderer = AnimationRenderer;\n exports.ɵAnimationRendererFactory = AnimationRendererFactory;\n exports.ɵInjectableAnimationEngine = InjectableAnimationEngine;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n}));\n//# sourceMappingURL=platform-browser-animations.umd.js.map\n"]}
\ No newline at end of file

bundles/platform-browser-testing.umd.js

@@ -1,5 +1,5 @@
/**
- * @license Angular v7.2.7
+ * @license Angular v7.2.8
* (c) 2010-2019 Google LLC. https://angular.io/
* License: MIT
*/

bundles/platform-browser-testing.umd.min.js

@@ -1,5 +1,5 @@
/**
- * @license Angular v7.2.7
+ * @license Angular v7.2.8
* (c) 2010-2019 Google LLC. https://angular.io/
* License: MIT
*/

bundles/platform-browser-testing.umd.min.js.map

@@ -1 +1 @@
-{"version":3,"sources":["packages/platform-browser/platform-browser-testing.umd.js"],"names":["global","factory","exports","module","require","define","amd","self","ng","platformBrowser","testing","core","this","BrowserDetection","ua","_overrideUa","Object","defineProperty","prototype","get","ɵgetDOM","getUserAgent","enumerable","configurable","setup","_ua","indexOf","isAndroid","isIE","isIOS7","ɵglobal","Intl","IntlPolyfill","customElements","document","registerElement","RegExp","hasOwnProperty","createElement","attachShadow","createShadowRoot","createNgZone","NgZone","enableLongStackTrace","platformBrowserTesting","createPlatformFactory","platformCore","provide","PLATFORM_INITIALIZER","useValue","initBrowserTests","ɵBrowserDomAdapter","makeCurrent","multi","ɵ0","BrowserTestingModule","__decorate","decorators","target","key","desc","d","c","arguments","length","r","getOwnPropertyDescriptor","Reflect","decorate","i","NgModule","BrowserModule","providers","APP_ID","ɵELEMENT_PROBE_PROVIDERS","useFactory","ɵangular_packages_platform_browser_testing_testing_a","value"],"mappings":"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","sourcesContent":["/**\n * @license Angular v7.2.7\n * (c) 2010-2019 Google LLC. https://angular.io/\n * License: MIT\n */\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@angular/platform-browser')) :\n typeof define === 'function' && define.amd ? define('@angular/platform-browser/testing', ['exports', '@angular/core', '@angular/platform-browser'], factory) :\n (global = global || self, factory((global.ng = global.ng || {}, global.ng.platformBrowser = global.ng.platformBrowser || {}, global.ng.platformBrowser.testing = {}), global.ng.core, global.ng.platformBrowser));\n}(this, function (exports, core, platformBrowser) { '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\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 }\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 BrowserDetection = /** @class */ (function () {\n function BrowserDetection(ua) {\n this._overrideUa = ua;\n }\n Object.defineProperty(BrowserDetection.prototype, \"_ua\", {\n get: function () {\n if (typeof this._overrideUa === 'string') {\n return this._overrideUa;\n }\n return platformBrowser.ɵgetDOM() ? platformBrowser.ɵgetDOM().getUserAgent() : '';\n },\n enumerable: true,\n configurable: true\n });\n BrowserDetection.setup = function () { };\n Object.defineProperty(BrowserDetection.prototype, \"isFirefox\", {\n get: function () { return this._ua.indexOf('Firefox') > -1; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BrowserDetection.prototype, \"isAndroid\", {\n get: function () {\n return this._ua.indexOf('Mozilla/5.0') > -1 && this._ua.indexOf('Android') > -1 &&\n this._ua.indexOf('AppleWebKit') > -1 && this._ua.indexOf('Chrome') == -1 &&\n this._ua.indexOf('IEMobile') == -1;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BrowserDetection.prototype, \"isEdge\", {\n get: function () { return this._ua.indexOf('Edge') > -1; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BrowserDetection.prototype, \"isIE\", {\n get: function () { return this._ua.indexOf('Trident') > -1; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BrowserDetection.prototype, \"isWebkit\", {\n get: function () {\n return this._ua.indexOf('AppleWebKit') > -1 && this._ua.indexOf('Edge') == -1 &&\n this._ua.indexOf('IEMobile') == -1;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BrowserDetection.prototype, \"isIOS7\", {\n get: function () {\n return (this._ua.indexOf('iPhone OS 7') > -1 || this._ua.indexOf('iPad OS 7') > -1) &&\n this._ua.indexOf('IEMobile') == -1;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BrowserDetection.prototype, \"isSlow\", {\n get: function () { return this.isAndroid || this.isIE || this.isIOS7; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BrowserDetection.prototype, \"supportsNativeIntlApi\", {\n // The Intl API is only natively supported in Chrome, Firefox, IE11 and Edge.\n // This detector is needed in tests to make the difference between:\n // 1) IE11/Edge: they have a native Intl API, but with some discrepancies\n // 2) IE9/IE10: they use the polyfill, and so no discrepancies\n get: function () {\n return !!core.ɵglobal.Intl && core.ɵglobal.Intl !== core.ɵglobal.IntlPolyfill;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BrowserDetection.prototype, \"isChromeDesktop\", {\n get: function () {\n return this._ua.indexOf('Chrome') > -1 && this._ua.indexOf('Mobile Safari') == -1 &&\n this._ua.indexOf('Edge') == -1;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BrowserDetection.prototype, \"isOldChrome\", {\n // \"Old Chrome\" means Chrome 3X, where there are some discrepancies in the Intl API.\n // Android 4.4 and 5.X have such browsers by default (respectively 30 and 39).\n get: function () {\n return this._ua.indexOf('Chrome') > -1 && this._ua.indexOf('Chrome/3') > -1 &&\n this._ua.indexOf('Edge') == -1;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BrowserDetection.prototype, \"supportsCustomElements\", {\n get: function () { return (typeof core.ɵglobal.customElements !== 'undefined'); },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BrowserDetection.prototype, \"supportsDeprecatedCustomCustomElementsV0\", {\n get: function () {\n return (typeof document.registerElement !== 'undefined');\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BrowserDetection.prototype, \"supportsRegExUnicodeFlag\", {\n get: function () { return RegExp.prototype.hasOwnProperty('unicode'); },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BrowserDetection.prototype, \"supportsShadowDom\", {\n get: function () {\n var testEl = document.createElement('div');\n return (typeof testEl.attachShadow !== 'undefined');\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BrowserDetection.prototype, \"supportsDeprecatedShadowDomV0\", {\n get: function () {\n var testEl = document.createElement('div');\n return (typeof testEl.createShadowRoot !== 'undefined');\n },\n enumerable: true,\n configurable: true\n });\n return BrowserDetection;\n }());\n BrowserDetection.setup();\n function createNgZone() {\n return new core.NgZone({ enableLongStackTrace: true });\n }\n\n function initBrowserTests() {\n platformBrowser.ɵBrowserDomAdapter.makeCurrent();\n BrowserDetection.setup();\n }\n var _TEST_BROWSER_PLATFORM_PROVIDERS = [{ provide: core.PLATFORM_INITIALIZER, useValue: initBrowserTests, multi: true }];\n /**\n * Platform for testing\n *\n * @publicApi\n */\n var platformBrowserTesting = core.createPlatformFactory(core.platformCore, 'browserTesting', _TEST_BROWSER_PLATFORM_PROVIDERS);\n var ɵ0 = createNgZone;\n /**\n * NgModule for testing.\n *\n * @publicApi\n */\n var BrowserTestingModule = /** @class */ (function () {\n function BrowserTestingModule() {\n }\n BrowserTestingModule = __decorate([\n core.NgModule({\n exports: [platformBrowser.BrowserModule],\n providers: [\n { provide: core.APP_ID, useValue: 'a' },\n platformBrowser.ɵELEMENT_PROBE_PROVIDERS,\n { provide: core.NgZone, useFactory: ɵ0 },\n ]\n })\n ], BrowserTestingModule);\n return BrowserTestingModule;\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 /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n /**\n * Generated bundle index. Do not edit.\n */\n\n exports.ɵangular_packages_platform_browser_testing_testing_a = createNgZone;\n exports.platformBrowserTesting = platformBrowserTesting;\n exports.BrowserTestingModule = BrowserTestingModule;\n exports.ɵ0 = ɵ0;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n}));\n//# sourceMappingURL=platform-browser-testing.umd.js.map\n"]}
\ No newline at end of file
+{"version":3,"sources":["packages/platform-browser/platform-browser-testing.umd.js"],"names":["global","factory","exports","module","require","define","amd","self","ng","platformBrowser","testing","core","this","BrowserDetection","ua","_overrideUa","Object","defineProperty","prototype","get","ɵgetDOM","getUserAgent","enumerable","configurable","setup","_ua","indexOf","isAndroid","isIE","isIOS7","ɵglobal","Intl","IntlPolyfill","customElements","document","registerElement","RegExp","hasOwnProperty","createElement","attachShadow","createShadowRoot","createNgZone","NgZone","enableLongStackTrace","platformBrowserTesting","createPlatformFactory","platformCore","provide","PLATFORM_INITIALIZER","useValue","initBrowserTests","ɵBrowserDomAdapter","makeCurrent","multi","ɵ0","BrowserTestingModule","__decorate","decorators","target","key","desc","d","c","arguments","length","r","getOwnPropertyDescriptor","Reflect","decorate","i","NgModule","BrowserModule","providers","APP_ID","ɵELEMENT_PROBE_PROVIDERS","useFactory","ɵangular_packages_platform_browser_testing_testing_a","value"],"mappings":"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","sourcesContent":["/**\n * @license Angular v7.2.8\n * (c) 2010-2019 Google LLC. https://angular.io/\n * License: MIT\n */\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@angular/platform-browser')) :\n typeof define === 'function' && define.amd ? define('@angular/platform-browser/testing', ['exports', '@angular/core', '@angular/platform-browser'], factory) :\n (global = global || self, factory((global.ng = global.ng || {}, global.ng.platformBrowser = global.ng.platformBrowser || {}, global.ng.platformBrowser.testing = {}), global.ng.core, global.ng.platformBrowser));\n}(this, function (exports, core, platformBrowser) { '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\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 }\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 BrowserDetection = /** @class */ (function () {\n function BrowserDetection(ua) {\n this._overrideUa = ua;\n }\n Object.defineProperty(BrowserDetection.prototype, \"_ua\", {\n get: function () {\n if (typeof this._overrideUa === 'string') {\n return this._overrideUa;\n }\n return platformBrowser.ɵgetDOM() ? platformBrowser.ɵgetDOM().getUserAgent() : '';\n },\n enumerable: true,\n configurable: true\n });\n BrowserDetection.setup = function () { };\n Object.defineProperty(BrowserDetection.prototype, \"isFirefox\", {\n get: function () { return this._ua.indexOf('Firefox') > -1; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BrowserDetection.prototype, \"isAndroid\", {\n get: function () {\n return this._ua.indexOf('Mozilla/5.0') > -1 && this._ua.indexOf('Android') > -1 &&\n this._ua.indexOf('AppleWebKit') > -1 && this._ua.indexOf('Chrome') == -1 &&\n this._ua.indexOf('IEMobile') == -1;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BrowserDetection.prototype, \"isEdge\", {\n get: function () { return this._ua.indexOf('Edge') > -1; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BrowserDetection.prototype, \"isIE\", {\n get: function () { return this._ua.indexOf('Trident') > -1; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BrowserDetection.prototype, \"isWebkit\", {\n get: function () {\n return this._ua.indexOf('AppleWebKit') > -1 && this._ua.indexOf('Edge') == -1 &&\n this._ua.indexOf('IEMobile') == -1;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BrowserDetection.prototype, \"isIOS7\", {\n get: function () {\n return (this._ua.indexOf('iPhone OS 7') > -1 || this._ua.indexOf('iPad OS 7') > -1) &&\n this._ua.indexOf('IEMobile') == -1;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BrowserDetection.prototype, \"isSlow\", {\n get: function () { return this.isAndroid || this.isIE || this.isIOS7; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BrowserDetection.prototype, \"supportsNativeIntlApi\", {\n // The Intl API is only natively supported in Chrome, Firefox, IE11 and Edge.\n // This detector is needed in tests to make the difference between:\n // 1) IE11/Edge: they have a native Intl API, but with some discrepancies\n // 2) IE9/IE10: they use the polyfill, and so no discrepancies\n get: function () {\n return !!core.ɵglobal.Intl && core.ɵglobal.Intl !== core.ɵglobal.IntlPolyfill;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BrowserDetection.prototype, \"isChromeDesktop\", {\n get: function () {\n return this._ua.indexOf('Chrome') > -1 && this._ua.indexOf('Mobile Safari') == -1 &&\n this._ua.indexOf('Edge') == -1;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BrowserDetection.prototype, \"isOldChrome\", {\n // \"Old Chrome\" means Chrome 3X, where there are some discrepancies in the Intl API.\n // Android 4.4 and 5.X have such browsers by default (respectively 30 and 39).\n get: function () {\n return this._ua.indexOf('Chrome') > -1 && this._ua.indexOf('Chrome/3') > -1 &&\n this._ua.indexOf('Edge') == -1;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BrowserDetection.prototype, \"supportsCustomElements\", {\n get: function () { return (typeof core.ɵglobal.customElements !== 'undefined'); },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BrowserDetection.prototype, \"supportsDeprecatedCustomCustomElementsV0\", {\n get: function () {\n return (typeof document.registerElement !== 'undefined');\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BrowserDetection.prototype, \"supportsRegExUnicodeFlag\", {\n get: function () { return RegExp.prototype.hasOwnProperty('unicode'); },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BrowserDetection.prototype, \"supportsShadowDom\", {\n get: function () {\n var testEl = document.createElement('div');\n return (typeof testEl.attachShadow !== 'undefined');\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BrowserDetection.prototype, \"supportsDeprecatedShadowDomV0\", {\n get: function () {\n var testEl = document.createElement('div');\n return (typeof testEl.createShadowRoot !== 'undefined');\n },\n enumerable: true,\n configurable: true\n });\n return BrowserDetection;\n }());\n BrowserDetection.setup();\n function createNgZone() {\n return new core.NgZone({ enableLongStackTrace: true });\n }\n\n function initBrowserTests() {\n platformBrowser.ɵBrowserDomAdapter.makeCurrent();\n BrowserDetection.setup();\n }\n var _TEST_BROWSER_PLATFORM_PROVIDERS = [{ provide: core.PLATFORM_INITIALIZER, useValue: initBrowserTests, multi: true }];\n /**\n * Platform for testing\n *\n * @publicApi\n */\n var platformBrowserTesting = core.createPlatformFactory(core.platformCore, 'browserTesting', _TEST_BROWSER_PLATFORM_PROVIDERS);\n var ɵ0 = createNgZone;\n /**\n * NgModule for testing.\n *\n * @publicApi\n */\n var BrowserTestingModule = /** @class */ (function () {\n function BrowserTestingModule() {\n }\n BrowserTestingModule = __decorate([\n core.NgModule({\n exports: [platformBrowser.BrowserModule],\n providers: [\n { provide: core.APP_ID, useValue: 'a' },\n platformBrowser.ɵELEMENT_PROBE_PROVIDERS,\n { provide: core.NgZone, useFactory: ɵ0 },\n ]\n })\n ], BrowserTestingModule);\n return BrowserTestingModule;\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 /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n /**\n * Generated bundle index. Do not edit.\n */\n\n exports.ɵangular_packages_platform_browser_testing_testing_a = createNgZone;\n exports.platformBrowserTesting = platformBrowserTesting;\n exports.BrowserTestingModule = BrowserTestingModule;\n exports.ɵ0 = ɵ0;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n}));\n//# sourceMappingURL=platform-browser-testing.umd.js.map\n"]}
\ No newline at end of file

bundles/platform-browser.umd.js

@@ -1,5 +1,5 @@
/**
- * @license Angular v7.2.7
+ * @license Angular v7.2.8
* (c) 2010-2019 Google LLC. https://angular.io/
* License: MIT
*/
@@ -2552,7 +2552,7 @@
/**
* @publicApi
*/
- var VERSION = new core.Version('7.2.7');
+ var VERSION = new core.Version('7.2.8');
/**
* @license

bundles/platform-browser.umd.js.map

@@ -1 +1 @@
-{"version":3,"file":"platform-browser.umd.js","sources":["../../../../../../../../../../external/ngdeps/node_modules/tslib/tslib.es6.js","../../../../../packages/platform-browser/src/dom/dom_adapter.ts","../../../../../packages/platform-browser/src/browser/generic_browser_adapter.ts","../../../../../packages/platform-browser/src/browser/browser_adapter.ts","../../../../../packages/platform-browser/src/dom/dom_tokens.ts","../../../../../packages/platform-browser/src/browser/location/history.ts","../../../../../packages/platform-browser/src/browser/location/browser_platform_location.ts","../../../../../packages/platform-browser/src/browser/server-transition.ts","../../../../../packages/platform-browser/src/browser/testability.ts","../../../../../packages/platform-browser/src/dom/util.ts","../../../../../packages/platform-browser/src/dom/debug/ng_probe.ts","../../../../../packages/platform-browser/src/dom/events/event_manager.ts","../../../../../packages/platform-browser/src/dom/shared_styles_host.ts","../../../../../packages/platform-browser/src/dom/dom_renderer.ts","../../../../../packages/platform-browser/src/dom/events/dom_events.ts","../../../../../packages/platform-browser/src/dom/events/hammer_gestures.ts","../../../../../packages/platform-browser/src/dom/events/key_events.ts","../../../../../packages/platform-browser/src/security/dom_sanitization_service.ts","../../../../../packages/platform-browser/src/browser.ts","../../../../../packages/platform-browser/src/browser/meta.ts","../../../../../packages/platform-browser/src/browser/title.ts","../../../../../packages/platform-browser/src/browser/tools/browser.ts","../../../../../packages/platform-browser/src/browser/tools/common_tools.ts","../../../../../packages/platform-browser/src/browser/tools/tools.ts","../../../../../packages/platform-browser/src/browser/transfer_state.ts","../../../../../packages/platform-browser/src/dom/debug/by.ts","../../../../../packages/platform-browser/src/private_export.ts","../../../../../packages/platform-browser/src/version.ts","../../../../../packages/platform-browser/src/platform-browser.ts","../../../../../packages/platform-browser/public_api.ts","../../../../../packages/platform-browser/index.ts","../../../../../packages/platform-browser/platform-browser.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0)\r\n t[p[i]] = s[p[i]];\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Type} from '@angular/core';\n\nlet _DOM: DomAdapter = null !;\n\nexport function getDOM() {\n return _DOM;\n}\n\nexport function setDOM(adapter: DomAdapter) {\n _DOM = adapter;\n}\n\nexport function setRootDomAdapter(adapter: DomAdapter) {\n if (!_DOM) {\n _DOM = adapter;\n }\n}\n\n/* tslint:disable:requireParameterType */\n/**\n * Provides DOM operations in an environment-agnostic way.\n *\n * @security Tread carefully! Interacting with the DOM directly is dangerous and\n * can introduce XSS risks.\n */\nexport abstract class DomAdapter {\n public resourceLoaderType: Type<any> = null !;\n abstract hasProperty(element: any, name: string): boolean;\n abstract setProperty(el: Element, name: string, value: any): any;\n abstract getProperty(el: Element, name: string): any;\n abstract invoke(el: Element, methodName: string, args: any[]): any;\n\n abstract logError(error: any): any;\n abstract log(error: any): any;\n abstract logGroup(error: any): any;\n abstract logGroupEnd(): any;\n\n /**\n * Maps attribute names to their corresponding property names for cases\n * where attribute name doesn't match property name.\n */\n get attrToPropMap(): {[key: string]: string} { return this._attrToPropMap; }\n set attrToPropMap(value: {[key: string]: string}) { this._attrToPropMap = value; }\n /** @internal */\n // TODO(issue/24571): remove '!'.\n _attrToPropMap !: {[key: string]: string};\n\n abstract contains(nodeA: any, nodeB: any): boolean;\n abstract parse(templateHtml: string): any;\n abstract querySelector(el: any, selector: string): any;\n abstract querySelectorAll(el: any, selector: string): any[];\n abstract on(el: any, evt: any, listener: any): any;\n abstract onAndCancel(el: any, evt: any, listener: any): Function;\n abstract dispatchEvent(el: any, evt: any): any;\n abstract createMouseEvent(eventType: any): any;\n abstract createEvent(eventType: string): any;\n abstract preventDefault(evt: any): any;\n abstract isPrevented(evt: any): boolean;\n abstract getInnerHTML(el: any): string;\n /** Returns content if el is a <template> element, null otherwise. */\n abstract getTemplateContent(el: any): any;\n abstract getOuterHTML(el: any): string;\n abstract nodeName(node: any): string;\n abstract nodeValue(node: any): string|null;\n abstract type(node: any): string;\n abstract content(node: any): any;\n abstract firstChild(el: any): Node|null;\n abstract nextSibling(el: any): Node|null;\n abstract parentElement(el: any): Node|null;\n abstract childNodes(el: any): Node[];\n abstract childNodesAsList(el: any): Node[];\n abstract clearNodes(el: any): any;\n abstract appendChild(el: any, node: any): any;\n abstract removeChild(el: any, node: any): any;\n abstract replaceChild(el: any, newNode: any, oldNode: any): any;\n abstract remove(el: any): Node;\n abstract insertBefore(parent: any, ref: any, node: any): any;\n abstract insertAllBefore(parent: any, ref: any, nodes: any): any;\n abstract insertAfter(parent: any, el: any, node: any): any;\n abstract setInnerHTML(el: any, value: any): any;\n abstract getText(el: any): string|null;\n abstract setText(el: any, value: string): any;\n abstract getValue(el: any): string;\n abstract setValue(el: any, value: string): any;\n abstract getChecked(el: any): boolean;\n abstract setChecked(el: any, value: boolean): any;\n abstract createComment(text: string): any;\n abstract createTemplate(html: any): HTMLElement;\n abstract createElement(tagName: any, doc?: any): HTMLElement;\n abstract createElementNS(ns: string, tagName: string, doc?: any): Element;\n abstract createTextNode(text: string, doc?: any): Text;\n abstract createScriptTag(attrName: string, attrValue: string, doc?: any): HTMLElement;\n abstract createStyleElement(css: string, doc?: any): HTMLStyleElement;\n abstract createShadowRoot(el: any): any;\n abstract getShadowRoot(el: any): any;\n abstract getHost(el: any): any;\n abstract getDistributedNodes(el: any): Node[];\n abstract clone /*<T extends Node>*/ (node: Node /*T*/): Node /*T*/;\n abstract getElementsByClassName(element: any, name: string): HTMLElement[];\n abstract getElementsByTagName(element: any, name: string): HTMLElement[];\n abstract classList(element: any): any[];\n abstract addClass(element: any, className: string): any;\n abstract removeClass(element: any, className: string): any;\n abstract hasClass(element: any, className: string): boolean;\n abstract setStyle(element: any, styleName: string, styleValue: string): any;\n abstract removeStyle(element: any, styleName: string): any;\n abstract getStyle(element: any, styleName: string): string;\n abstract hasStyle(element: any, styleName: string, styleValue?: string): boolean;\n abstract tagName(element: any): string;\n abstract attributeMap(element: any): Map<string, string>;\n abstract hasAttribute(element: any, attribute: string): boolean;\n abstract hasAttributeNS(element: any, ns: string, attribute: string): boolean;\n abstract getAttribute(element: any, attribute: string): string|null;\n abstract getAttributeNS(element: any, ns: string, attribute: string): string|null;\n abstract setAttribute(element: any, name: string, value: string): any;\n abstract setAttributeNS(element: any, ns: string, name: string, value: string): any;\n abstract removeAttribute(element: any, attribute: string): any;\n abstract removeAttributeNS(element: any, ns: string, attribute: string): any;\n abstract templateAwareRoot(el: any): any;\n abstract createHtmlDocument(): HTMLDocument;\n abstract getDefaultDocument(): Document;\n abstract getBoundingClientRect(el: any): any;\n abstract getTitle(doc: Document): string;\n abstract setTitle(doc: Document, newTitle: string): any;\n abstract elementMatches(n: any, selector: string): boolean;\n abstract isTemplateElement(el: any): boolean;\n abstract isTextNode(node: any): boolean;\n abstract isCommentNode(node: any): boolean;\n abstract isElementNode(node: any): boolean;\n abstract hasShadowRoot(node: any): boolean;\n abstract isShadowRoot(node: any): boolean;\n abstract importIntoDoc /*<T extends Node>*/ (node: Node /*T*/): Node /*T*/;\n abstract adoptNode /*<T extends Node>*/ (node: Node /*T*/): Node /*T*/;\n abstract getHref(element: any): string;\n abstract getEventKey(event: any): string;\n abstract resolveAndSetHref(element: any, baseUrl: string, href: string): any;\n abstract supportsDOMEvents(): boolean;\n abstract supportsNativeShadowDOM(): boolean;\n abstract getGlobalEventTarget(doc: Document, target: string): any;\n abstract getHistory(): History;\n abstract getLocation(): Location;\n abstract getBaseHref(doc: Document): string|null;\n abstract resetBaseElement(): void;\n abstract getUserAgent(): string;\n abstract setData(element: any, name: string, value: string): any;\n abstract getComputedStyle(element: any): any;\n abstract getData(element: any, name: string): string|null;\n abstract supportsWebAnimation(): boolean;\n abstract performanceNow(): number;\n abstract getAnimationPrefix(): string;\n abstract getTransitionEnd(): string;\n abstract supportsAnimation(): boolean;\n\n abstract supportsCookies(): boolean;\n abstract getCookie(name: string): string|null;\n abstract setCookie(name: string, value: string): any;\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {DomAdapter} from '../dom/dom_adapter';\n\n\n\n/**\n * Provides DOM operations in any browser environment.\n *\n * @security Tread carefully! Interacting with the DOM directly is dangerous and\n * can introduce XSS risks.\n */\nexport abstract class GenericBrowserDomAdapter extends DomAdapter {\n private _animationPrefix: string|null = null;\n private _transitionEnd: string|null = null;\n constructor() {\n super();\n try {\n const element = this.createElement('div', document);\n if (this.getStyle(element, 'animationName') != null) {\n this._animationPrefix = '';\n } else {\n const domPrefixes = ['Webkit', 'Moz', 'O', 'ms'];\n\n for (let i = 0; i < domPrefixes.length; i++) {\n if (this.getStyle(element, domPrefixes[i] + 'AnimationName') != null) {\n this._animationPrefix = '-' + domPrefixes[i].toLowerCase() + '-';\n break;\n }\n }\n }\n\n const transEndEventNames: {[key: string]: string} = {\n WebkitTransition: 'webkitTransitionEnd',\n MozTransition: 'transitionend',\n OTransition: 'oTransitionEnd otransitionend',\n transition: 'transitionend'\n };\n\n Object.keys(transEndEventNames).forEach((key: string) => {\n if (this.getStyle(element, key) != null) {\n this._transitionEnd = transEndEventNames[key];\n }\n });\n } catch {\n this._animationPrefix = null;\n this._transitionEnd = null;\n }\n }\n\n getDistributedNodes(el: HTMLElement): Node[] { return (<any>el).getDistributedNodes(); }\n resolveAndSetHref(el: HTMLAnchorElement, baseUrl: string, href: string) {\n el.href = href == null ? baseUrl : baseUrl + '/../' + href;\n }\n supportsDOMEvents(): boolean { return true; }\n supportsNativeShadowDOM(): boolean {\n return typeof(<any>document.body).createShadowRoot === 'function';\n }\n getAnimationPrefix(): string { return this._animationPrefix ? this._animationPrefix : ''; }\n getTransitionEnd(): string { return this._transitionEnd ? this._transitionEnd : ''; }\n supportsAnimation(): boolean {\n return this._animationPrefix != null && this._transitionEnd != null;\n }\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {ɵparseCookieValue as parseCookieValue} from '@angular/common';\nimport {ɵglobal as global} from '@angular/core';\n\nimport {setRootDomAdapter} from '../dom/dom_adapter';\n\nimport {GenericBrowserDomAdapter} from './generic_browser_adapter';\n\nconst _attrToPropMap = {\n 'class': 'className',\n 'innerHtml': 'innerHTML',\n 'readonly': 'readOnly',\n 'tabindex': 'tabIndex',\n};\n\nconst DOM_KEY_LOCATION_NUMPAD = 3;\n\n// Map to convert some key or keyIdentifier values to what will be returned by getEventKey\nconst _keyMap: {[k: string]: string} = {\n // The following values are here for cross-browser compatibility and to match the W3C standard\n // cf http://www.w3.org/TR/DOM-Level-3-Events-key/\n '\\b': 'Backspace',\n '\\t': 'Tab',\n '\\x7F': 'Delete',\n '\\x1B': 'Escape',\n 'Del': 'Delete',\n 'Esc': 'Escape',\n 'Left': 'ArrowLeft',\n 'Right': 'ArrowRight',\n 'Up': 'ArrowUp',\n 'Down': 'ArrowDown',\n 'Menu': 'ContextMenu',\n 'Scroll': 'ScrollLock',\n 'Win': 'OS'\n};\n\n// There is a bug in Chrome for numeric keypad keys:\n// https://code.google.com/p/chromium/issues/detail?id=155654\n// 1, 2, 3 ... are reported as A, B, C ...\nconst _chromeNumKeyPadMap = {\n 'A': '1',\n 'B': '2',\n 'C': '3',\n 'D': '4',\n 'E': '5',\n 'F': '6',\n 'G': '7',\n 'H': '8',\n 'I': '9',\n 'J': '*',\n 'K': '+',\n 'M': '-',\n 'N': '.',\n 'O': '/',\n '\\x60': '0',\n '\\x90': 'NumLock'\n};\n\nlet nodeContains: (a: any, b: any) => boolean;\n\nif (global['Node']) {\n nodeContains = global['Node'].prototype.contains || function(node) {\n return !!(this.compareDocumentPosition(node) & 16);\n };\n}\n\n/**\n * A `DomAdapter` powered by full browser DOM APIs.\n *\n * @security Tread carefully! Interacting with the DOM directly is dangerous and\n * can introduce XSS risks.\n */\n/* tslint:disable:requireParameterType no-console */\nexport class BrowserDomAdapter extends GenericBrowserDomAdapter {\n parse(templateHtml: string) { throw new Error('parse not implemented'); }\n static makeCurrent() { setRootDomAdapter(new BrowserDomAdapter()); }\n hasProperty(element: Node, name: string): boolean { return name in element; }\n setProperty(el: Node, name: string, value: any) { (<any>el)[name] = value; }\n getProperty(el: Node, name: string): any { return (<any>el)[name]; }\n invoke(el: Node, methodName: string, args: any[]): any { (<any>el)[methodName](...args); }\n\n // TODO(tbosch): move this into a separate environment class once we have it\n logError(error: string): void {\n if (window.console) {\n if (console.error) {\n console.error(error);\n } else {\n console.log(error);\n }\n }\n }\n\n log(error: string): void {\n if (window.console) {\n window.console.log && window.console.log(error);\n }\n }\n\n logGroup(error: string): void {\n if (window.console) {\n window.console.group && window.console.group(error);\n }\n }\n\n logGroupEnd(): void {\n if (window.console) {\n window.console.groupEnd && window.console.groupEnd();\n }\n }\n\n get attrToPropMap(): any { return _attrToPropMap; }\n\n contains(nodeA: any, nodeB: any): boolean { return nodeContains.call(nodeA, nodeB); }\n querySelector(el: HTMLElement, selector: string): any { return el.querySelector(selector); }\n querySelectorAll(el: any, selector: string): any[] { return el.querySelectorAll(selector); }\n on(el: Node, evt: any, listener: any) { el.addEventListener(evt, listener, false); }\n onAndCancel(el: Node, evt: any, listener: any): Function {\n el.addEventListener(evt, listener, false);\n // Needed to follow Dart's subscription semantic, until fix of\n // https://code.google.com/p/dart/issues/detail?id=17406\n return () => { el.removeEventListener(evt, listener, false); };\n }\n dispatchEvent(el: Node, evt: any) { el.dispatchEvent(evt); }\n createMouseEvent(eventType: string): MouseEvent {\n const evt: MouseEvent = this.getDefaultDocument().createEvent('MouseEvent');\n evt.initEvent(eventType, true, true);\n return evt;\n }\n createEvent(eventType: any): Event {\n const evt: Event = this.getDefaultDocument().createEvent('Event');\n evt.initEvent(eventType, true, true);\n return evt;\n }\n preventDefault(evt: Event) {\n evt.preventDefault();\n evt.returnValue = false;\n }\n isPrevented(evt: Event): boolean {\n return evt.defaultPrevented || evt.returnValue != null && !evt.returnValue;\n }\n getInnerHTML(el: HTMLElement): string { return el.innerHTML; }\n getTemplateContent(el: Node): Node|null {\n return 'content' in el && this.isTemplateElement(el) ? (<any>el).content : null;\n }\n getOuterHTML(el: HTMLElement): string { return el.outerHTML; }\n nodeName(node: Node): string { return node.nodeName; }\n nodeValue(node: Node): string|null { return node.nodeValue; }\n type(node: HTMLInputElement): string { return node.type; }\n content(node: Node): Node {\n if (this.hasProperty(node, 'content')) {\n return (<any>node).content;\n } else {\n return node;\n }\n }\n firstChild(el: Node): Node|null { return el.firstChild; }\n nextSibling(el: Node): Node|null { return el.nextSibling; }\n parentElement(el: Node): Node|null { return el.parentNode; }\n childNodes(el: any): Node[] { return el.childNodes; }\n childNodesAsList(el: Node): any[] {\n const childNodes = el.childNodes;\n const res = new Array(childNodes.length);\n for (let i = 0; i < childNodes.length; i++) {\n res[i] = childNodes[i];\n }\n return res;\n }\n clearNodes(el: Node) {\n while (el.firstChild) {\n el.removeChild(el.firstChild);\n }\n }\n appendChild(el: Node, node: Node) { el.appendChild(node); }\n removeChild(el: Node, node: Node) { el.removeChild(node); }\n replaceChild(el: Node, newChild: Node, oldChild: Node) { el.replaceChild(newChild, oldChild); }\n remove(node: Node): Node {\n if (node.parentNode) {\n node.parentNode.removeChild(node);\n }\n return node;\n }\n insertBefore(parent: Node, ref: Node, node: Node) { parent.insertBefore(node, ref); }\n insertAllBefore(parent: Node, ref: Node, nodes: Node[]) {\n nodes.forEach((n: any) => parent.insertBefore(n, ref));\n }\n insertAfter(parent: Node, ref: Node, node: any) { parent.insertBefore(node, ref.nextSibling); }\n setInnerHTML(el: Element, value: string) { el.innerHTML = value; }\n getText(el: Node): string|null { return el.textContent; }\n setText(el: Node, value: string) { el.textContent = value; }\n getValue(el: any): string { return el.value; }\n setValue(el: any, value: string) { el.value = value; }\n getChecked(el: any): boolean { return el.checked; }\n setChecked(el: any, value: boolean) { el.checked = value; }\n createComment(text: string): Comment { return this.getDefaultDocument().createComment(text); }\n createTemplate(html: any): HTMLElement {\n const t = this.getDefaultDocument().createElement('template');\n t.innerHTML = html;\n return t;\n }\n createElement(tagName: string, doc?: Document): HTMLElement {\n doc = doc || this.getDefaultDocument();\n return doc.createElement(tagName);\n }\n createElementNS(ns: string, tagName: string, doc?: Document): Element {\n doc = doc || this.getDefaultDocument();\n return doc.createElementNS(ns, tagName);\n }\n createTextNode(text: string, doc?: Document): Text {\n doc = doc || this.getDefaultDocument();\n return doc.createTextNode(text);\n }\n createScriptTag(attrName: string, attrValue: string, doc?: Document): HTMLScriptElement {\n doc = doc || this.getDefaultDocument();\n const el = <HTMLScriptElement>doc.createElement('SCRIPT');\n el.setAttribute(attrName, attrValue);\n return el;\n }\n createStyleElement(css: string, doc?: Document): HTMLStyleElement {\n doc = doc || this.getDefaultDocument();\n const style = <HTMLStyleElement>doc.createElement('style');\n this.appendChild(style, this.createTextNode(css, doc));\n return style;\n }\n createShadowRoot(el: HTMLElement): DocumentFragment { return (<any>el).createShadowRoot(); }\n getShadowRoot(el: HTMLElement): DocumentFragment { return (<any>el).shadowRoot; }\n getHost(el: HTMLElement): HTMLElement { return (<any>el).host; }\n clone(node: Node): Node { return node.cloneNode(true); }\n getElementsByClassName(element: any, name: string): HTMLElement[] {\n return element.getElementsByClassName(name);\n }\n getElementsByTagName(element: any, name: string): HTMLElement[] {\n return element.getElementsByTagName(name);\n }\n classList(element: any): any[] { return Array.prototype.slice.call(element.classList, 0); }\n addClass(element: any, className: string) { element.classList.add(className); }\n removeClass(element: any, className: string) { element.classList.remove(className); }\n hasClass(element: any, className: string): boolean {\n return element.classList.contains(className);\n }\n setStyle(element: any, styleName: string, styleValue: string) {\n element.style[styleName] = styleValue;\n }\n removeStyle(element: any, stylename: string) {\n // IE requires '' instead of null\n // see https://github.com/angular/angular/issues/7916\n element.style[stylename] = '';\n }\n getStyle(element: any, stylename: string): string { return element.style[stylename]; }\n hasStyle(element: any, styleName: string, styleValue?: string|null): boolean {\n const value = this.getStyle(element, styleName) || '';\n return styleValue ? value == styleValue : value.length > 0;\n }\n tagName(element: any): string { return element.tagName; }\n attributeMap(element: any): Map<string, string> {\n const res = new Map<string, string>();\n const elAttrs = element.attributes;\n for (let i = 0; i < elAttrs.length; i++) {\n const attrib = elAttrs.item(i);\n res.set(attrib.name, attrib.value);\n }\n return res;\n }\n hasAttribute(element: Element, attribute: string): boolean {\n return element.hasAttribute(attribute);\n }\n hasAttributeNS(element: Element, ns: string, attribute: string): boolean {\n return element.hasAttributeNS(ns, attribute);\n }\n getAttribute(element: Element, attribute: string): string|null {\n return element.getAttribute(attribute);\n }\n getAttributeNS(element: Element, ns: string, name: string): string|null {\n return element.getAttributeNS(ns, name);\n }\n setAttribute(element: Element, name: string, value: string) { element.setAttribute(name, value); }\n setAttributeNS(element: Element, ns: string, name: string, value: string) {\n element.setAttributeNS(ns, name, value);\n }\n removeAttribute(element: Element, attribute: string) { element.removeAttribute(attribute); }\n removeAttributeNS(element: Element, ns: string, name: string) {\n element.removeAttributeNS(ns, name);\n }\n templateAwareRoot(el: Node): any { return this.isTemplateElement(el) ? this.content(el) : el; }\n createHtmlDocument(): HTMLDocument {\n return document.implementation.createHTMLDocument('fakeTitle');\n }\n getDefaultDocument(): Document { return document; }\n getBoundingClientRect(el: Element): any {\n try {\n return el.getBoundingClientRect();\n } catch {\n return {top: 0, bottom: 0, left: 0, right: 0, width: 0, height: 0};\n }\n }\n getTitle(doc: Document): string { return doc.title; }\n setTitle(doc: Document, newTitle: string) { doc.title = newTitle || ''; }\n elementMatches(n: any, selector: string): boolean {\n if (this.isElementNode(n)) {\n return n.matches && n.matches(selector) ||\n n.msMatchesSelector && n.msMatchesSelector(selector) ||\n n.webkitMatchesSelector && n.webkitMatchesSelector(selector);\n }\n\n return false;\n }\n isTemplateElement(el: Node): boolean {\n return this.isElementNode(el) && el.nodeName === 'TEMPLATE';\n }\n isTextNode(node: Node): boolean { return node.nodeType === Node.TEXT_NODE; }\n isCommentNode(node: Node): boolean { return node.nodeType === Node.COMMENT_NODE; }\n isElementNode(node: Node): boolean { return node.nodeType === Node.ELEMENT_NODE; }\n hasShadowRoot(node: any): boolean {\n return node.shadowRoot != null && node instanceof HTMLElement;\n }\n isShadowRoot(node: any): boolean { return node instanceof DocumentFragment; }\n importIntoDoc(node: Node): any { return document.importNode(this.templateAwareRoot(node), true); }\n adoptNode(node: Node): any { return document.adoptNode(node); }\n getHref(el: Element): string { return el.getAttribute('href') !; }\n\n getEventKey(event: any): string {\n let key = event.key;\n if (key == null) {\n key = event.keyIdentifier;\n // keyIdentifier is defined in the old draft of DOM Level 3 Events implemented by Chrome and\n // Safari cf\n // http://www.w3.org/TR/2007/WD-DOM-Level-3-Events-20071221/events.html#Events-KeyboardEvents-Interfaces\n if (key == null) {\n return 'Unidentified';\n }\n if (key.startsWith('U+')) {\n key = String.fromCharCode(parseInt(key.substring(2), 16));\n if (event.location === DOM_KEY_LOCATION_NUMPAD && _chromeNumKeyPadMap.hasOwnProperty(key)) {\n // There is a bug in Chrome for numeric keypad keys:\n // https://code.google.com/p/chromium/issues/detail?id=155654\n // 1, 2, 3 ... are reported as A, B, C ...\n key = (_chromeNumKeyPadMap as any)[key];\n }\n }\n }\n\n return _keyMap[key] || key;\n }\n getGlobalEventTarget(doc: Document, target: string): EventTarget|null {\n if (target === 'window') {\n return window;\n }\n if (target === 'document') {\n return doc;\n }\n if (target === 'body') {\n return doc.body;\n }\n return null;\n }\n getHistory(): History { return window.history; }\n getLocation(): Location { return window.location; }\n getBaseHref(doc: Document): string|null {\n const href = getBaseElementHref();\n return href == null ? null : relativePath(href);\n }\n resetBaseElement(): void { baseElement = null; }\n getUserAgent(): string { return window.navigator.userAgent; }\n setData(element: Element, name: string, value: string) {\n this.setAttribute(element, 'data-' + name, value);\n }\n getData(element: Element, name: string): string|null {\n return this.getAttribute(element, 'data-' + name);\n }\n getComputedStyle(element: any): any { return getComputedStyle(element); }\n // TODO(tbosch): move this into a separate environment class once we have it\n supportsWebAnimation(): boolean {\n return typeof(<any>Element).prototype['animate'] === 'function';\n }\n performanceNow(): number {\n // performance.now() is not available in all browsers, see\n // http://caniuse.com/#search=performance.now\n return window.performance && window.performance.now ? window.performance.now() :\n new Date().getTime();\n }\n\n supportsCookies(): boolean { return true; }\n\n getCookie(name: string): string|null { return parseCookieValue(document.cookie, name); }\n\n setCookie(name: string, value: string) {\n // document.cookie is magical, assigning into it assigns/overrides one cookie value, but does\n // not clear other cookies.\n document.cookie = encodeURIComponent(name) + '=' + encodeURIComponent(value);\n }\n}\n\nlet baseElement: HTMLElement|null = null;\nfunction getBaseElementHref(): string|null {\n if (!baseElement) {\n baseElement = document.querySelector('base') !;\n if (!baseElement) {\n return null;\n }\n }\n return baseElement.getAttribute('href');\n}\n\n// based on urlUtils.js in AngularJS 1\nlet urlParsingNode: any;\nfunction relativePath(url: any): string {\n if (!urlParsingNode) {\n urlParsingNode = document.createElement('a');\n }\n urlParsingNode.setAttribute('href', url);\n return (urlParsingNode.pathname.charAt(0) === '/') ? urlParsingNode.pathname :\n '/' + urlParsingNode.pathname;\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {DOCUMENT as commonDOCUMENT} from '@angular/common';\nimport {InjectionToken} from '@angular/core';\n\n\n/**\n * A DI Token representing the main rendering context. In a browser this is the DOM Document.\n *\n * Note: Document might not be available in the Application Context when Application and Rendering\n * Contexts are not the same (e.g. when running the application into a Web Worker).\n *\n * @deprecated import from `@angular/common` instead.\n * @publicApi\n */\nexport const DOCUMENT = commonDOCUMENT;\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nexport function supportsState(): boolean {\n return !!window.history.pushState;\n}","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {LocationChangeListener, PlatformLocation} from '@angular/common';\nimport {Inject, Injectable} from '@angular/core';\n\nimport {getDOM} from '../../dom/dom_adapter';\nimport {DOCUMENT} from '../../dom/dom_tokens';\n\nimport {supportsState} from './history';\n\n\n\n/**\n * `PlatformLocation` encapsulates all of the direct calls to platform APIs.\n * This class should not be used directly by an application developer. Instead, use\n * {@link Location}.\n */\n@Injectable()\nexport class BrowserPlatformLocation extends PlatformLocation {\n // TODO(issue/24571): remove '!'.\n public readonly location !: Location;\n // TODO(issue/24571): remove '!'.\n private _history !: History;\n\n constructor(@Inject(DOCUMENT) private _doc: any) {\n super();\n this._init();\n }\n\n // This is moved to its own method so that `MockPlatformLocationStrategy` can overwrite it\n /** @internal */\n _init() {\n (this as{location: Location}).location = getDOM().getLocation();\n this._history = getDOM().getHistory();\n }\n\n getBaseHrefFromDOM(): string { return getDOM().getBaseHref(this._doc) !; }\n\n onPopState(fn: LocationChangeListener): void {\n getDOM().getGlobalEventTarget(this._doc, 'window').addEventListener('popstate', fn, false);\n }\n\n onHashChange(fn: LocationChangeListener): void {\n getDOM().getGlobalEventTarget(this._doc, 'window').addEventListener('hashchange', fn, false);\n }\n\n get pathname(): string { return this.location.pathname; }\n get search(): string { return this.location.search; }\n get hash(): string { return this.location.hash; }\n set pathname(newPath: string) { this.location.pathname = newPath; }\n\n pushState(state: any, title: string, url: string): void {\n if (supportsState()) {\n this._history.pushState(state, title, url);\n } else {\n this.location.hash = url;\n }\n }\n\n replaceState(state: any, title: string, url: string): void {\n if (supportsState()) {\n this._history.replaceState(state, title, url);\n } else {\n this.location.hash = url;\n }\n }\n\n forward(): void { this._history.forward(); }\n\n back(): void { this._history.back(); }\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {APP_INITIALIZER, ApplicationInitStatus, Inject, InjectionToken, Injector, StaticProvider} from '@angular/core';\n\nimport {getDOM} from '../dom/dom_adapter';\nimport {DOCUMENT} from '../dom/dom_tokens';\n\n/**\n * An id that identifies a particular application being bootstrapped, that should\n * match across the client/server boundary.\n */\nexport const TRANSITION_ID = new InjectionToken('TRANSITION_ID');\n\nexport function appInitializerFactory(transitionId: string, document: any, injector: Injector) {\n return () => {\n // Wait for all application initializers to be completed before removing the styles set by\n // the server.\n injector.get(ApplicationInitStatus).donePromise.then(() => {\n const dom = getDOM();\n const styles: any[] =\n Array.prototype.slice.apply(dom.querySelectorAll(document, `style[ng-transition]`));\n styles.filter(el => dom.getAttribute(el, 'ng-transition') === transitionId)\n .forEach(el => dom.remove(el));\n });\n };\n}\n\nexport const SERVER_TRANSITION_PROVIDERS: StaticProvider[] = [\n {\n provide: APP_INITIALIZER,\n useFactory: appInitializerFactory,\n deps: [TRANSITION_ID, DOCUMENT, Injector],\n multi: true\n },\n];\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {GetTestability, Testability, TestabilityRegistry, setTestabilityGetter, ɵglobal as global} from '@angular/core';\n\nimport {getDOM} from '../dom/dom_adapter';\n\nexport class BrowserGetTestability implements GetTestability {\n static init() { setTestabilityGetter(new BrowserGetTestability()); }\n\n addToWindow(registry: TestabilityRegistry): void {\n global['getAngularTestability'] = (elem: any, findInAncestors: boolean = true) => {\n const testability = registry.findTestabilityInTree(elem, findInAncestors);\n if (testability == null) {\n throw new Error('Could not find testability for element.');\n }\n return testability;\n };\n\n global['getAllAngularTestabilities'] = () => registry.getAllTestabilities();\n\n global['getAllAngularRootElements'] = () => registry.getAllRootElements();\n\n const whenAllStable = (callback: any /** TODO #9100 */) => {\n const testabilities = global['getAllAngularTestabilities']();\n let count = testabilities.length;\n let didWork = false;\n const decrement = function(didWork_: any /** TODO #9100 */) {\n didWork = didWork || didWork_;\n count--;\n if (count == 0) {\n callback(didWork);\n }\n };\n testabilities.forEach(function(testability: any /** TODO #9100 */) {\n testability.whenStable(decrement);\n });\n };\n\n if (!global['frameworkStabilizers']) {\n global['frameworkStabilizers'] = [];\n }\n global['frameworkStabilizers'].push(whenAllStable);\n }\n\n findTestabilityInTree(registry: TestabilityRegistry, elem: any, findInAncestors: boolean):\n Testability|null {\n if (elem == null) {\n return null;\n }\n const t = registry.getTestability(elem);\n if (t != null) {\n return t;\n } else if (!findInAncestors) {\n return null;\n }\n if (getDOM().isShadowRoot(elem)) {\n return this.findTestabilityInTree(registry, getDOM().getHost(elem), true);\n }\n return this.findTestabilityInTree(registry, getDOM().parentElement(elem), true);\n }\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {ɵglobal as global} from '@angular/core';\n\nconst CAMEL_CASE_REGEXP = /([A-Z])/g;\nconst DASH_CASE_REGEXP = /-([a-z])/g;\n\n\nexport function camelCaseToDashCase(input: string): string {\n return input.replace(CAMEL_CASE_REGEXP, (...m: string[]) => '-' + m[1].toLowerCase());\n}\n\nexport function dashCaseToCamelCase(input: string): string {\n return input.replace(DASH_CASE_REGEXP, (...m: string[]) => m[1].toUpperCase());\n}\n\n/**\n * Exports the value under a given `name` in the global property `ng`. For example `ng.probe` if\n * `name` is `'probe'`.\n * @param name Name under which it will be exported. Keep in mind this will be a property of the\n * global `ng` object.\n * @param value The value to export.\n */\nexport function exportNgVar(name: string, value: any): void {\n if (typeof COMPILED === 'undefined' || !COMPILED) {\n // Note: we can't export `ng` when using closure enhanced optimization as:\n // - closure declares globals itself for minified names, which sometimes clobber our `ng` global\n // - we can't declare a closure extern as the namespace `ng` is already used within Google\n // for typings for angularJS (via `goog.provide('ng....')`).\n const ng = global['ng'] = (global['ng'] as{[key: string]: any} | undefined) || {};\n ng[name] = value;\n }\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport * as core from '@angular/core';\nimport {exportNgVar} from '../util';\n\nconst CORE_TOKENS = {\n 'ApplicationRef': core.ApplicationRef,\n 'NgZone': core.NgZone,\n};\n\nconst INSPECT_GLOBAL_NAME = 'probe';\nconst CORE_TOKENS_GLOBAL_NAME = 'coreTokens';\n\n/**\n * Returns a {@link DebugElement} for the given native DOM element, or\n * null if the given native element does not have an Angular view associated\n * with it.\n */\nexport function inspectNativeElement(element: any): core.DebugNode|null {\n return core.getDebugNode(element);\n}\n\nexport function _createNgProbe(coreTokens: core.NgProbeToken[]): any {\n exportNgVar(INSPECT_GLOBAL_NAME, inspectNativeElement);\n exportNgVar(CORE_TOKENS_GLOBAL_NAME, {...CORE_TOKENS, ..._ngProbeTokensToMap(coreTokens || [])});\n return () => inspectNativeElement;\n}\n\nfunction _ngProbeTokensToMap(tokens: core.NgProbeToken[]): {[name: string]: any} {\n return tokens.reduce((prev: any, t: any) => (prev[t.name] = t.token, prev), {});\n}\n\n/**\n * Providers which support debugging Angular applications (e.g. via `ng.probe`).\n */\nexport const ELEMENT_PROBE_PROVIDERS: core.Provider[] = [\n {\n provide: core.APP_INITIALIZER,\n useFactory: _createNgProbe,\n deps: [\n [core.NgProbeToken, new core.Optional()],\n ],\n multi: true,\n },\n];\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Inject, Injectable, InjectionToken, NgZone} from '@angular/core';\n\nimport {getDOM} from '../dom_adapter';\n\n/**\n * The injection token for the event-manager plug-in service.\n *\n * @publicApi\n */\nexport const EVENT_MANAGER_PLUGINS =\n new InjectionToken<EventManagerPlugin[]>('EventManagerPlugins');\n\n/**\n * An injectable service that provides event management for Angular\n * through a browser plug-in.\n *\n * @publicApi\n */\n@Injectable()\nexport class EventManager {\n private _plugins: EventManagerPlugin[];\n private _eventNameToPlugin = new Map<string, EventManagerPlugin>();\n\n /**\n * Initializes an instance of the event-manager service.\n */\n constructor(@Inject(EVENT_MANAGER_PLUGINS) plugins: EventManagerPlugin[], private _zone: NgZone) {\n plugins.forEach(p => p.manager = this);\n this._plugins = plugins.slice().reverse();\n }\n\n /**\n * Registers a handler for a specific element and event.\n *\n * @param element The HTML element to receive event notifications.\n * @param eventName The name of the event to listen for.\n * @param handler A function to call when the notification occurs. Receives the\n * event object as an argument.\n * @returns A callback function that can be used to remove the handler.\n */\n addEventListener(element: HTMLElement, eventName: string, handler: Function): Function {\n const plugin = this._findPluginFor(eventName);\n return plugin.addEventListener(element, eventName, handler);\n }\n\n /**\n * Registers a global handler for an event in a target view.\n *\n * @param target A target for global event notifications. One of \"window\", \"document\", or \"body\".\n * @param eventName The name of the event to listen for.\n * @param handler A function to call when the notification occurs. Receives the\n * event object as an argument.\n * @returns A callback function that can be used to remove the handler.\n */\n addGlobalEventListener(target: string, eventName: string, handler: Function): Function {\n const plugin = this._findPluginFor(eventName);\n return plugin.addGlobalEventListener(target, eventName, handler);\n }\n\n /**\n * Retrieves the compilation zone in which event listeners are registered.\n */\n getZone(): NgZone { return this._zone; }\n\n /** @internal */\n _findPluginFor(eventName: string): EventManagerPlugin {\n const plugin = this._eventNameToPlugin.get(eventName);\n if (plugin) {\n return plugin;\n }\n\n const plugins = this._plugins;\n for (let i = 0; i < plugins.length; i++) {\n const plugin = plugins[i];\n if (plugin.supports(eventName)) {\n this._eventNameToPlugin.set(eventName, plugin);\n return plugin;\n }\n }\n throw new Error(`No event manager plugin found for event ${eventName}`);\n }\n}\n\nexport abstract class EventManagerPlugin {\n constructor(private _doc: any) {}\n\n // TODO(issue/24571): remove '!'.\n manager !: EventManager;\n\n abstract supports(eventName: string): boolean;\n\n abstract addEventListener(element: HTMLElement, eventName: string, handler: Function): Function;\n\n addGlobalEventListener(element: string, eventName: string, handler: Function): Function {\n const target: HTMLElement = getDOM().getGlobalEventTarget(this._doc, element);\n if (!target) {\n throw new Error(`Unsupported event target ${target} for event ${eventName}`);\n }\n return this.addEventListener(target, eventName, handler);\n }\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Inject, Injectable, OnDestroy} from '@angular/core';\nimport {getDOM} from './dom_adapter';\nimport {DOCUMENT} from './dom_tokens';\n\n@Injectable()\nexport class SharedStylesHost {\n /** @internal */\n protected _stylesSet = new Set<string>();\n\n addStyles(styles: string[]): void {\n const additions = new Set<string>();\n styles.forEach(style => {\n if (!this._stylesSet.has(style)) {\n this._stylesSet.add(style);\n additions.add(style);\n }\n });\n this.onStylesAdded(additions);\n }\n\n onStylesAdded(additions: Set<string>): void {}\n\n getAllStyles(): string[] { return Array.from(this._stylesSet); }\n}\n\n@Injectable()\nexport class DomSharedStylesHost extends SharedStylesHost implements OnDestroy {\n private _hostNodes = new Set<Node>();\n private _styleNodes = new Set<Node>();\n constructor(@Inject(DOCUMENT) private _doc: any) {\n super();\n this._hostNodes.add(_doc.head);\n }\n\n private _addStylesToHost(styles: Set<string>, host: Node): void {\n styles.forEach((style: string) => {\n const styleEl = this._doc.createElement('style');\n styleEl.textContent = style;\n this._styleNodes.add(host.appendChild(styleEl));\n });\n }\n\n addHost(hostNode: Node): void {\n this._addStylesToHost(this._stylesSet, hostNode);\n this._hostNodes.add(hostNode);\n }\n\n removeHost(hostNode: Node): void { this._hostNodes.delete(hostNode); }\n\n onStylesAdded(additions: Set<string>): void {\n this._hostNodes.forEach(hostNode => this._addStylesToHost(additions, hostNode));\n }\n\n ngOnDestroy(): void { this._styleNodes.forEach(styleNode => getDOM().remove(styleNode)); }\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Injectable, Renderer2, RendererFactory2, RendererStyleFlags2, RendererType2, ViewEncapsulation} from '@angular/core';\n\nimport {EventManager} from './events/event_manager';\nimport {DomSharedStylesHost} from './shared_styles_host';\n\nexport const NAMESPACE_URIS: {[ns: string]: string} = {\n 'svg': 'http://www.w3.org/2000/svg',\n 'xhtml': 'http://www.w3.org/1999/xhtml',\n 'xlink': 'http://www.w3.org/1999/xlink',\n 'xml': 'http://www.w3.org/XML/1998/namespace',\n 'xmlns': 'http://www.w3.org/2000/xmlns/',\n};\n\nconst COMPONENT_REGEX = /%COMP%/g;\nexport const COMPONENT_VARIABLE = '%COMP%';\nexport const HOST_ATTR = `_nghost-${COMPONENT_VARIABLE}`;\nexport const CONTENT_ATTR = `_ngcontent-${COMPONENT_VARIABLE}`;\n\nexport function shimContentAttribute(componentShortId: string): string {\n return CONTENT_ATTR.replace(COMPONENT_REGEX, componentShortId);\n}\n\nexport function shimHostAttribute(componentShortId: string): string {\n return HOST_ATTR.replace(COMPONENT_REGEX, componentShortId);\n}\n\nexport function flattenStyles(\n compId: string, styles: Array<any|any[]>, target: string[]): string[] {\n for (let i = 0; i < styles.length; i++) {\n let style = styles[i];\n\n if (Array.isArray(style)) {\n flattenStyles(compId, style, target);\n } else {\n style = style.replace(COMPONENT_REGEX, compId);\n target.push(style);\n }\n }\n return target;\n}\n\nfunction decoratePreventDefault(eventHandler: Function): Function {\n return (event: any) => {\n const allowDefaultBehavior = eventHandler(event);\n if (allowDefaultBehavior === false) {\n // TODO(tbosch): move preventDefault into event plugins...\n event.preventDefault();\n event.returnValue = false;\n }\n };\n}\n\n@Injectable()\nexport class DomRendererFactory2 implements RendererFactory2 {\n private rendererByCompId = new Map<string, Renderer2>();\n private defaultRenderer: Renderer2;\n\n constructor(private eventManager: EventManager, private sharedStylesHost: DomSharedStylesHost) {\n this.defaultRenderer = new DefaultDomRenderer2(eventManager);\n }\n\n createRenderer(element: any, type: RendererType2|null): Renderer2 {\n if (!element || !type) {\n return this.defaultRenderer;\n }\n switch (type.encapsulation) {\n case ViewEncapsulation.Emulated: {\n let renderer = this.rendererByCompId.get(type.id);\n if (!renderer) {\n renderer =\n new EmulatedEncapsulationDomRenderer2(this.eventManager, this.sharedStylesHost, type);\n this.rendererByCompId.set(type.id, renderer);\n }\n (<EmulatedEncapsulationDomRenderer2>renderer).applyToHost(element);\n return renderer;\n }\n case ViewEncapsulation.Native:\n case ViewEncapsulation.ShadowDom:\n return new ShadowDomRenderer(this.eventManager, this.sharedStylesHost, element, type);\n default: {\n if (!this.rendererByCompId.has(type.id)) {\n const styles = flattenStyles(type.id, type.styles, []);\n this.sharedStylesHost.addStyles(styles);\n this.rendererByCompId.set(type.id, this.defaultRenderer);\n }\n return this.defaultRenderer;\n }\n }\n }\n\n begin() {}\n end() {}\n}\n\nclass DefaultDomRenderer2 implements Renderer2 {\n data: {[key: string]: any} = Object.create(null);\n\n constructor(private eventManager: EventManager) {}\n\n destroy(): void {}\n\n destroyNode: null;\n\n createElement(name: string, namespace?: string): any {\n if (namespace) {\n return document.createElementNS(NAMESPACE_URIS[namespace], name);\n }\n\n return document.createElement(name);\n }\n\n createComment(value: string): any { return document.createComment(value); }\n\n createText(value: string): any { return document.createTextNode(value); }\n\n appendChild(parent: any, newChild: any): void { parent.appendChild(newChild); }\n\n insertBefore(parent: any, newChild: any, refChild: any): void {\n if (parent) {\n parent.insertBefore(newChild, refChild);\n }\n }\n\n removeChild(parent: any, oldChild: any): void {\n if (parent) {\n parent.removeChild(oldChild);\n }\n }\n\n selectRootElement(selectorOrNode: string|any, preserveContent?: boolean): any {\n let el: any = typeof selectorOrNode === 'string' ? document.querySelector(selectorOrNode) :\n selectorOrNode;\n if (!el) {\n throw new Error(`The selector \"${selectorOrNode}\" did not match any elements`);\n }\n if (!preserveContent) {\n el.textContent = '';\n }\n return el;\n }\n\n parentNode(node: any): any { return node.parentNode; }\n\n nextSibling(node: any): any { return node.nextSibling; }\n\n setAttribute(el: any, name: string, value: string, namespace?: string): void {\n if (namespace) {\n name = `${namespace}:${name}`;\n const namespaceUri = NAMESPACE_URIS[namespace];\n if (namespaceUri) {\n el.setAttributeNS(namespaceUri, name, value);\n } else {\n el.setAttribute(name, value);\n }\n } else {\n el.setAttribute(name, value);\n }\n }\n\n removeAttribute(el: any, name: string, namespace?: string): void {\n if (namespace) {\n const namespaceUri = NAMESPACE_URIS[namespace];\n if (namespaceUri) {\n el.removeAttributeNS(namespaceUri, name);\n } else {\n el.removeAttribute(`${namespace}:${name}`);\n }\n } else {\n el.removeAttribute(name);\n }\n }\n\n addClass(el: any, name: string): void { el.classList.add(name); }\n\n removeClass(el: any, name: string): void { el.classList.remove(name); }\n\n setStyle(el: any, style: string, value: any, flags: RendererStyleFlags2): void {\n if (flags & RendererStyleFlags2.DashCase) {\n el.style.setProperty(\n style, value, !!(flags & RendererStyleFlags2.Important) ? 'important' : '');\n } else {\n el.style[style] = value;\n }\n }\n\n removeStyle(el: any, style: string, flags: RendererStyleFlags2): void {\n if (flags & RendererStyleFlags2.DashCase) {\n el.style.removeProperty(style);\n } else {\n // IE requires '' instead of null\n // see https://github.com/angular/angular/issues/7916\n el.style[style] = '';\n }\n }\n\n setProperty(el: any, name: string, value: any): void {\n checkNoSyntheticProp(name, 'property');\n el[name] = value;\n }\n\n setValue(node: any, value: string): void { node.nodeValue = value; }\n\n listen(target: 'window'|'document'|'body'|any, event: string, callback: (event: any) => boolean):\n () => void {\n checkNoSyntheticProp(event, 'listener');\n if (typeof target === 'string') {\n return <() => void>this.eventManager.addGlobalEventListener(\n target, event, decoratePreventDefault(callback));\n }\n return <() => void>this.eventManager.addEventListener(\n target, event, decoratePreventDefault(callback)) as() => void;\n }\n}\n\nconst AT_CHARCODE = '@'.charCodeAt(0);\nfunction checkNoSyntheticProp(name: string, nameKind: string) {\n if (name.charCodeAt(0) === AT_CHARCODE) {\n throw new Error(\n `Found the synthetic ${nameKind} ${name}. Please include either \"BrowserAnimationsModule\" or \"NoopAnimationsModule\" in your application.`);\n }\n}\n\nclass EmulatedEncapsulationDomRenderer2 extends DefaultDomRenderer2 {\n private contentAttr: string;\n private hostAttr: string;\n\n constructor(\n eventManager: EventManager, sharedStylesHost: DomSharedStylesHost,\n private component: RendererType2) {\n super(eventManager);\n const styles = flattenStyles(component.id, component.styles, []);\n sharedStylesHost.addStyles(styles);\n\n this.contentAttr = shimContentAttribute(component.id);\n this.hostAttr = shimHostAttribute(component.id);\n }\n\n applyToHost(element: any) { super.setAttribute(element, this.hostAttr, ''); }\n\n createElement(parent: any, name: string): Element {\n const el = super.createElement(parent, name);\n super.setAttribute(el, this.contentAttr, '');\n return el;\n }\n}\n\nclass ShadowDomRenderer extends DefaultDomRenderer2 {\n private shadowRoot: any;\n\n constructor(\n eventManager: EventManager, private sharedStylesHost: DomSharedStylesHost,\n private hostEl: any, private component: RendererType2) {\n super(eventManager);\n if (component.encapsulation === ViewEncapsulation.ShadowDom) {\n this.shadowRoot = (hostEl as any).attachShadow({mode: 'open'});\n } else {\n this.shadowRoot = (hostEl as any).createShadowRoot();\n }\n this.sharedStylesHost.addHost(this.shadowRoot);\n const styles = flattenStyles(component.id, component.styles, []);\n for (let i = 0; i < styles.length; i++) {\n const styleEl = document.createElement('style');\n styleEl.textContent = styles[i];\n this.shadowRoot.appendChild(styleEl);\n }\n }\n\n private nodeOrShadowRoot(node: any): any { return node === this.hostEl ? this.shadowRoot : node; }\n\n destroy() { this.sharedStylesHost.removeHost(this.shadowRoot); }\n\n appendChild(parent: any, newChild: any): void {\n return super.appendChild(this.nodeOrShadowRoot(parent), newChild);\n }\n insertBefore(parent: any, newChild: any, refChild: any): void {\n return super.insertBefore(this.nodeOrShadowRoot(parent), newChild, refChild);\n }\n removeChild(parent: any, oldChild: any): void {\n return super.removeChild(this.nodeOrShadowRoot(parent), oldChild);\n }\n parentNode(node: any): any {\n return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(node)));\n }\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {isPlatformServer} from '@angular/common';\nimport {Inject, Injectable, NgZone, Optional, PLATFORM_ID} from '@angular/core';\n\n\nimport {DOCUMENT} from '../dom_tokens';\n\nimport {EventManagerPlugin} from './event_manager';\n\n/**\n * Detect if Zone is present. If it is then use simple zone aware 'addEventListener'\n * since Angular can do much more\n * efficient bookkeeping than Zone can, because we have additional information. This speeds up\n * addEventListener by 3x.\n */\nconst __symbol__ =\n (typeof Zone !== 'undefined') && (Zone as any)['__symbol__'] || function(v: string): string {\n return '__zone_symbol__' + v;\n };\nconst ADD_EVENT_LISTENER: 'addEventListener' = __symbol__('addEventListener');\nconst REMOVE_EVENT_LISTENER: 'removeEventListener' = __symbol__('removeEventListener');\n\nconst symbolNames: {[key: string]: string} = {};\n\nconst FALSE = 'FALSE';\nconst ANGULAR = 'ANGULAR';\nconst NATIVE_ADD_LISTENER = 'addEventListener';\nconst NATIVE_REMOVE_LISTENER = 'removeEventListener';\n\n// use the same symbol string which is used in zone.js\nconst stopSymbol = '__zone_symbol__propagationStopped';\nconst stopMethodSymbol = '__zone_symbol__stopImmediatePropagation';\n\nconst blackListedEvents: string[] =\n (typeof Zone !== 'undefined') && (Zone as any)[__symbol__('BLACK_LISTED_EVENTS')];\nlet blackListedMap: {[eventName: string]: string};\nif (blackListedEvents) {\n blackListedMap = {};\n blackListedEvents.forEach(eventName => { blackListedMap[eventName] = eventName; });\n}\n\nconst isBlackListedEvent = function(eventName: string) {\n if (!blackListedMap) {\n return false;\n }\n return blackListedMap.hasOwnProperty(eventName);\n};\n\ninterface TaskData {\n zone: any;\n handler: Function;\n}\n\n// a global listener to handle all dom event,\n// so we do not need to create a closure every time\nconst globalListener = function(event: Event) {\n const symbolName = symbolNames[event.type];\n if (!symbolName) {\n return;\n }\n const taskDatas: TaskData[] = this[symbolName];\n if (!taskDatas) {\n return;\n }\n const args: any = [event];\n if (taskDatas.length === 1) {\n // if taskDatas only have one element, just invoke it\n const taskData = taskDatas[0];\n if (taskData.zone !== Zone.current) {\n // only use Zone.run when Zone.current not equals to stored zone\n return taskData.zone.run(taskData.handler, this, args);\n } else {\n return taskData.handler.apply(this, args);\n }\n } else {\n // copy tasks as a snapshot to avoid event handlers remove\n // itself or others\n const copiedTasks = taskDatas.slice();\n for (let i = 0; i < copiedTasks.length; i++) {\n // if other listener call event.stopImmediatePropagation\n // just break\n if ((event as any)[stopSymbol] === true) {\n break;\n }\n const taskData = copiedTasks[i];\n if (taskData.zone !== Zone.current) {\n // only use Zone.run when Zone.current not equals to stored zone\n taskData.zone.run(taskData.handler, this, args);\n } else {\n taskData.handler.apply(this, args);\n }\n }\n }\n};\n\n@Injectable()\nexport class DomEventsPlugin extends EventManagerPlugin {\n constructor(\n @Inject(DOCUMENT) doc: any, private ngZone: NgZone,\n @Optional() @Inject(PLATFORM_ID) platformId: {}|null) {\n super(doc);\n\n if (!platformId || !isPlatformServer(platformId)) {\n this.patchEvent();\n }\n }\n\n private patchEvent() {\n if (typeof Event === 'undefined' || !Event || !Event.prototype) {\n return;\n }\n if ((Event.prototype as any)[stopMethodSymbol]) {\n // already patched by zone.js\n return;\n }\n const delegate = (Event.prototype as any)[stopMethodSymbol] =\n Event.prototype.stopImmediatePropagation;\n Event.prototype.stopImmediatePropagation = function() {\n if (this) {\n this[stopSymbol] = true;\n }\n\n // should call native delegate in case\n // in some environment part of the application\n // will not use the patched Event\n delegate && delegate.apply(this, arguments);\n };\n }\n\n // This plugin should come last in the list of plugins, because it accepts all\n // events.\n supports(eventName: string): boolean { return true; }\n\n addEventListener(element: HTMLElement, eventName: string, handler: Function): Function {\n /**\n * This code is about to add a listener to the DOM. If Zone.js is present, than\n * `addEventListener` has been patched. The patched code adds overhead in both\n * memory and speed (3x slower) than native. For this reason if we detect that\n * Zone.js is present we use a simple version of zone aware addEventListener instead.\n * The result is faster registration and the zone will be restored.\n * But ZoneSpec.onScheduleTask, ZoneSpec.onInvokeTask, ZoneSpec.onCancelTask\n * will not be invoked\n * We also do manual zone restoration in element.ts renderEventHandlerClosure method.\n *\n * NOTE: it is possible that the element is from different iframe, and so we\n * have to check before we execute the method.\n */\n const self = this;\n const zoneJsLoaded = element[ADD_EVENT_LISTENER];\n let callback: EventListener = handler as EventListener;\n // if zonejs is loaded and current zone is not ngZone\n // we keep Zone.current on target for later restoration.\n if (zoneJsLoaded && (!NgZone.isInAngularZone() || isBlackListedEvent(eventName))) {\n let symbolName = symbolNames[eventName];\n if (!symbolName) {\n symbolName = symbolNames[eventName] = __symbol__(ANGULAR + eventName + FALSE);\n }\n let taskDatas: TaskData[] = (element as any)[symbolName];\n const globalListenerRegistered = taskDatas && taskDatas.length > 0;\n if (!taskDatas) {\n taskDatas = (element as any)[symbolName] = [];\n }\n\n const zone = isBlackListedEvent(eventName) ? Zone.root : Zone.current;\n if (taskDatas.length === 0) {\n taskDatas.push({zone: zone, handler: callback});\n } else {\n let callbackRegistered = false;\n for (let i = 0; i < taskDatas.length; i++) {\n if (taskDatas[i].handler === callback) {\n callbackRegistered = true;\n break;\n }\n }\n if (!callbackRegistered) {\n taskDatas.push({zone: zone, handler: callback});\n }\n }\n\n if (!globalListenerRegistered) {\n element[ADD_EVENT_LISTENER](eventName, globalListener, false);\n }\n } else {\n element[NATIVE_ADD_LISTENER](eventName, callback, false);\n }\n return () => this.removeEventListener(element, eventName, callback);\n }\n\n removeEventListener(target: any, eventName: string, callback: Function): void {\n let underlyingRemove = target[REMOVE_EVENT_LISTENER];\n // zone.js not loaded, use native removeEventListener\n if (!underlyingRemove) {\n return target[NATIVE_REMOVE_LISTENER].apply(target, [eventName, callback, false]);\n }\n let symbolName = symbolNames[eventName];\n let taskDatas: TaskData[] = symbolName && target[symbolName];\n if (!taskDatas) {\n // addEventListener not using patched version\n // just call native removeEventListener\n return target[NATIVE_REMOVE_LISTENER].apply(target, [eventName, callback, false]);\n }\n // fix issue 20532, should be able to remove\n // listener which was added inside of ngZone\n let found = false;\n for (let i = 0; i < taskDatas.length; i++) {\n // remove listener from taskDatas if the callback equals\n if (taskDatas[i].handler === callback) {\n found = true;\n taskDatas.splice(i, 1);\n break;\n }\n }\n if (found) {\n if (taskDatas.length === 0) {\n // all listeners are removed, we can remove the globalListener from target\n underlyingRemove.apply(target, [eventName, globalListener, false]);\n }\n } else {\n // not found in taskDatas, the callback may be added inside of ngZone\n // use native remove listener to remove the callback\n target[NATIVE_REMOVE_LISTENER].apply(target, [eventName, callback, false]);\n }\n }\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Inject, Injectable, InjectionToken, Optional, ɵConsole as Console} from '@angular/core';\n\nimport {DOCUMENT} from '../dom_tokens';\n\nimport {EventManagerPlugin} from './event_manager';\n\n/**\n * Supported HammerJS recognizer event names.\n */\nconst EVENT_NAMES = {\n // pan\n 'pan': true,\n 'panstart': true,\n 'panmove': true,\n 'panend': true,\n 'pancancel': true,\n 'panleft': true,\n 'panright': true,\n 'panup': true,\n 'pandown': true,\n // pinch\n 'pinch': true,\n 'pinchstart': true,\n 'pinchmove': true,\n 'pinchend': true,\n 'pinchcancel': true,\n 'pinchin': true,\n 'pinchout': true,\n // press\n 'press': true,\n 'pressup': true,\n // rotate\n 'rotate': true,\n 'rotatestart': true,\n 'rotatemove': true,\n 'rotateend': true,\n 'rotatecancel': true,\n // swipe\n 'swipe': true,\n 'swipeleft': true,\n 'swiperight': true,\n 'swipeup': true,\n 'swipedown': true,\n // tap\n 'tap': true,\n};\n\n/**\n * DI token for providing [HammerJS](http://hammerjs.github.io/) support to Angular.\n * @see `HammerGestureConfig`\n *\n * @publicApi\n */\nexport const HAMMER_GESTURE_CONFIG = new InjectionToken<HammerGestureConfig>('HammerGestureConfig');\n\n\n/**\n * Function that loads HammerJS, returning a promise that is resolved once HammerJs is loaded.\n *\n * @publicApi\n */\nexport type HammerLoader = () => Promise<void>;\n\n/**\n * Injection token used to provide a {@link HammerLoader} to Angular.\n *\n * @publicApi\n */\nexport const HAMMER_LOADER = new InjectionToken<HammerLoader>('HammerLoader');\n\nexport interface HammerInstance {\n on(eventName: string, callback?: Function): void;\n off(eventName: string, callback?: Function): void;\n destroy?(): void;\n}\n\n/**\n * An injectable [HammerJS Manager](http://hammerjs.github.io/api/#hammer.manager)\n * for gesture recognition. Configures specific event recognition.\n * @publicApi\n */\n@Injectable()\nexport class HammerGestureConfig {\n /**\n * A set of supported event names for gestures to be used in Angular.\n * Angular supports all built-in recognizers, as listed in\n * [HammerJS documentation](http://hammerjs.github.io/).\n */\n events: string[] = [];\n\n /**\n * Maps gesture event names to a set of configuration options\n * that specify overrides to the default values for specific properties.\n *\n * The key is a supported event name to be configured,\n * and the options object contains a set of properties, with override values\n * to be applied to the named recognizer event.\n * For example, to disable recognition of the rotate event, specify\n * `{\"rotate\": {\"enable\": false}}`.\n *\n * Properties that are not present take the HammerJS default values.\n * For information about which properties are supported for which events,\n * and their allowed and default values, see\n * [HammerJS documentation](http://hammerjs.github.io/).\n *\n */\n overrides: {[key: string]: Object} = {};\n\n /**\n * Properties whose default values can be overridden for a given event.\n * Different sets of properties apply to different events.\n * For information about which properties are supported for which events,\n * and their allowed and default values, see\n * [HammerJS documentation](http://hammerjs.github.io/).\n */\n options?: {\n cssProps?: any; domEvents?: boolean; enable?: boolean | ((manager: any) => boolean);\n preset?: any[];\n touchAction?: string;\n recognizers?: any[];\n inputClass?: any;\n inputTarget?: EventTarget;\n };\n\n /**\n * Creates a [HammerJS Manager](http://hammerjs.github.io/api/#hammer.manager)\n * and attaches it to a given HTML element.\n * @param element The element that will recognize gestures.\n * @returns A HammerJS event-manager object.\n */\n buildHammer(element: HTMLElement): HammerInstance {\n const mc = new Hammer !(element, this.options);\n\n mc.get('pinch').set({enable: true});\n mc.get('rotate').set({enable: true});\n\n for (const eventName in this.overrides) {\n mc.get(eventName).set(this.overrides[eventName]);\n }\n\n return mc;\n }\n}\n\n@Injectable()\nexport class HammerGesturesPlugin extends EventManagerPlugin {\n constructor(\n @Inject(DOCUMENT) doc: any,\n @Inject(HAMMER_GESTURE_CONFIG) private _config: HammerGestureConfig, private console: Console,\n @Optional() @Inject(HAMMER_LOADER) private loader?: HammerLoader|null) {\n super(doc);\n }\n\n supports(eventName: string): boolean {\n if (!EVENT_NAMES.hasOwnProperty(eventName.toLowerCase()) && !this.isCustomEvent(eventName)) {\n return false;\n }\n\n if (!(window as any).Hammer && !this.loader) {\n this.console.warn(\n `The \"${eventName}\" event cannot be bound because Hammer.JS is not ` +\n `loaded and no custom loader has been specified.`);\n return false;\n }\n\n return true;\n }\n\n addEventListener(element: HTMLElement, eventName: string, handler: Function): Function {\n const zone = this.manager.getZone();\n eventName = eventName.toLowerCase();\n\n // If Hammer is not present but a loader is specified, we defer adding the event listener\n // until Hammer is loaded.\n if (!(window as any).Hammer && this.loader) {\n // This `addEventListener` method returns a function to remove the added listener.\n // Until Hammer is loaded, the returned function needs to *cancel* the registration rather\n // than remove anything.\n let cancelRegistration = false;\n let deregister: Function = () => { cancelRegistration = true; };\n\n this.loader()\n .then(() => {\n // If Hammer isn't actually loaded when the custom loader resolves, give up.\n if (!(window as any).Hammer) {\n this.console.warn(\n `The custom HAMMER_LOADER completed, but Hammer.JS is not present.`);\n deregister = () => {};\n return;\n }\n\n if (!cancelRegistration) {\n // Now that Hammer is loaded and the listener is being loaded for real,\n // the deregistration function changes from canceling registration to removal.\n deregister = this.addEventListener(element, eventName, handler);\n }\n })\n .catch(() => {\n this.console.warn(\n `The \"${eventName}\" event cannot be bound because the custom ` +\n `Hammer.JS loader failed.`);\n deregister = () => {};\n });\n\n // Return a function that *executes* `deregister` (and not `deregister` itself) so that we\n // can change the behavior of `deregister` once the listener is added. Using a closure in\n // this way allows us to avoid any additional data structures to track listener removal.\n return () => { deregister(); };\n }\n\n return zone.runOutsideAngular(() => {\n // Creating the manager bind events, must be done outside of angular\n const mc = this._config.buildHammer(element);\n const callback = function(eventObj: HammerInput) {\n zone.runGuarded(function() { handler(eventObj); });\n };\n mc.on(eventName, callback);\n return () => {\n mc.off(eventName, callback);\n // destroy mc to prevent memory leak\n if (typeof mc.destroy === 'function') {\n mc.destroy();\n }\n };\n });\n }\n\n isCustomEvent(eventName: string): boolean { return this._config.events.indexOf(eventName) > -1; }\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Inject, Injectable, NgZone} from '@angular/core';\n\nimport {getDOM} from '../dom_adapter';\nimport {DOCUMENT} from '../dom_tokens';\n\nimport {EventManagerPlugin} from './event_manager';\n\n/**\n * Defines supported modifiers for key events.\n */\nconst MODIFIER_KEYS = ['alt', 'control', 'meta', 'shift'];\n\n/**\n * Retrieves modifiers from key-event objects.\n */\nconst MODIFIER_KEY_GETTERS: {[key: string]: (event: KeyboardEvent) => boolean} = {\n 'alt': (event: KeyboardEvent) => event.altKey,\n 'control': (event: KeyboardEvent) => event.ctrlKey,\n 'meta': (event: KeyboardEvent) => event.metaKey,\n 'shift': (event: KeyboardEvent) => event.shiftKey\n};\n\n/**\n * @publicApi\n * A browser plug-in that provides support for handling of key events in Angular.\n */\n@Injectable()\nexport class KeyEventsPlugin extends EventManagerPlugin {\n /**\n * Initializes an instance of the browser plug-in.\n * @param doc The document in which key events will be detected.\n */\n constructor(@Inject(DOCUMENT) doc: any) { super(doc); }\n\n /**\n * Reports whether a named key event is supported.\n * @param eventName The event name to query.\n * @return True if the named key event is supported.\n */\n supports(eventName: string): boolean { return KeyEventsPlugin.parseEventName(eventName) != null; }\n\n /**\n * Registers a handler for a specific element and key event.\n * @param element The HTML element to receive event notifications.\n * @param eventName The name of the key event to listen for.\n * @param handler A function to call when the notification occurs. Receives the\n * event object as an argument.\n * @returns The key event that was registered.\n */\n addEventListener(element: HTMLElement, eventName: string, handler: Function): Function {\n const parsedEvent = KeyEventsPlugin.parseEventName(eventName) !;\n\n const outsideHandler =\n KeyEventsPlugin.eventCallback(parsedEvent['fullKey'], handler, this.manager.getZone());\n\n return this.manager.getZone().runOutsideAngular(() => {\n return getDOM().onAndCancel(element, parsedEvent['domEventName'], outsideHandler);\n });\n }\n\n static parseEventName(eventName: string): {[key: string]: string}|null {\n const parts: string[] = eventName.toLowerCase().split('.');\n\n const domEventName = parts.shift();\n if ((parts.length === 0) || !(domEventName === 'keydown' || domEventName === 'keyup')) {\n return null;\n }\n\n const key = KeyEventsPlugin._normalizeKey(parts.pop() !);\n\n let fullKey = '';\n MODIFIER_KEYS.forEach(modifierName => {\n const index: number = parts.indexOf(modifierName);\n if (index > -1) {\n parts.splice(index, 1);\n fullKey += modifierName + '.';\n }\n });\n fullKey += key;\n\n if (parts.length != 0 || key.length === 0) {\n // returning null instead of throwing to let another plugin process the event\n return null;\n }\n\n const result: {[k: string]: string} = {};\n result['domEventName'] = domEventName;\n result['fullKey'] = fullKey;\n return result;\n }\n\n static getEventFullKey(event: KeyboardEvent): string {\n let fullKey = '';\n let key = getDOM().getEventKey(event);\n key = key.toLowerCase();\n if (key === ' ') {\n key = 'space'; // for readability\n } else if (key === '.') {\n key = 'dot'; // because '.' is used as a separator in event names\n }\n MODIFIER_KEYS.forEach(modifierName => {\n if (modifierName != key) {\n const modifierGetter = MODIFIER_KEY_GETTERS[modifierName];\n if (modifierGetter(event)) {\n fullKey += modifierName + '.';\n }\n }\n });\n fullKey += key;\n return fullKey;\n }\n\n /**\n * Configures a handler callback for a key event.\n * @param fullKey The event name that combines all simultaneous keystrokes.\n * @param handler The function that responds to the key event.\n * @param zone The zone in which the event occurred.\n * @returns A callback function.\n */\n static eventCallback(fullKey: any, handler: Function, zone: NgZone): Function {\n return (event: any /** TODO #9100 */) => {\n if (KeyEventsPlugin.getEventFullKey(event) === fullKey) {\n zone.runGuarded(() => handler(event));\n }\n };\n }\n\n /** @internal */\n static _normalizeKey(keyName: string): string {\n // TODO: switch to a Map if the mapping grows too much\n switch (keyName) {\n case 'esc':\n return 'escape';\n default:\n return keyName;\n }\n }\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Inject, Injectable, Sanitizer, SecurityContext, ɵ_sanitizeHtml as _sanitizeHtml, ɵ_sanitizeStyle as _sanitizeStyle, ɵ_sanitizeUrl as _sanitizeUrl} from '@angular/core';\n\nimport {DOCUMENT} from '../dom/dom_tokens';\n\nexport {SecurityContext};\n\n\n\n/**\n * Marker interface for a value that's safe to use in a particular context.\n *\n * @publicApi\n */\nexport interface SafeValue {}\n\n/**\n * Marker interface for a value that's safe to use as HTML.\n *\n * @publicApi\n */\nexport interface SafeHtml extends SafeValue {}\n\n/**\n * Marker interface for a value that's safe to use as style (CSS).\n *\n * @publicApi\n */\nexport interface SafeStyle extends SafeValue {}\n\n/**\n * Marker interface for a value that's safe to use as JavaScript.\n *\n * @publicApi\n */\nexport interface SafeScript extends SafeValue {}\n\n/**\n * Marker interface for a value that's safe to use as a URL linking to a document.\n *\n * @publicApi\n */\nexport interface SafeUrl extends SafeValue {}\n\n/**\n * Marker interface for a value that's safe to use as a URL to load executable code from.\n *\n * @publicApi\n */\nexport interface SafeResourceUrl extends SafeValue {}\n\n/**\n * DomSanitizer helps preventing Cross Site Scripting Security bugs (XSS) by sanitizing\n * values to be safe to use in the different DOM contexts.\n *\n * For example, when binding a URL in an `<a [href]=\"someValue\">` hyperlink, `someValue` will be\n * sanitized so that an attacker cannot inject e.g. a `javascript:` URL that would execute code on\n * the website.\n *\n * In specific situations, it might be necessary to disable sanitization, for example if the\n * application genuinely needs to produce a `javascript:` style link with a dynamic value in it.\n * Users can bypass security by constructing a value with one of the `bypassSecurityTrust...`\n * methods, and then binding to that value from the template.\n *\n * These situations should be very rare, and extraordinary care must be taken to avoid creating a\n * Cross Site Scripting (XSS) security bug!\n *\n * When using `bypassSecurityTrust...`, make sure to call the method as early as possible and as\n * close as possible to the source of the value, to make it easy to verify no security bug is\n * created by its use.\n *\n * It is not required (and not recommended) to bypass security if the value is safe, e.g. a URL that\n * does not start with a suspicious protocol, or an HTML snippet that does not contain dangerous\n * code. The sanitizer leaves safe values intact.\n *\n * @security Calling any of the `bypassSecurityTrust...` APIs disables Angular's built-in\n * sanitization for the value passed in. Carefully check and audit all values and code paths going\n * into this call. Make sure any user data is appropriately escaped for this security context.\n * For more detail, see the [Security Guide](http://g.co/ng/security).\n *\n * @publicApi\n */\nexport abstract class DomSanitizer implements Sanitizer {\n /**\n * Sanitizes a value for use in the given SecurityContext.\n *\n * If value is trusted for the context, this method will unwrap the contained safe value and use\n * it directly. Otherwise, value will be sanitized to be safe in the given context, for example\n * by replacing URLs that have an unsafe protocol part (such as `javascript:`). The implementation\n * is responsible to make sure that the value can definitely be safely used in the given context.\n */\n abstract sanitize(context: SecurityContext, value: SafeValue|string|null): string|null;\n\n /**\n * Bypass security and trust the given value to be safe HTML. Only use this when the bound HTML\n * is unsafe (e.g. contains `<script>` tags) and the code should be executed. The sanitizer will\n * leave safe HTML intact, so in most situations this method should not be used.\n *\n * **WARNING:** calling this method with untrusted user data exposes your application to XSS\n * security risks!\n */\n abstract bypassSecurityTrustHtml(value: string): SafeHtml;\n\n /**\n * Bypass security and trust the given value to be safe style value (CSS).\n *\n * **WARNING:** calling this method with untrusted user data exposes your application to XSS\n * security risks!\n */\n abstract bypassSecurityTrustStyle(value: string): SafeStyle;\n\n /**\n * Bypass security and trust the given value to be safe JavaScript.\n *\n * **WARNING:** calling this method with untrusted user data exposes your application to XSS\n * security risks!\n */\n abstract bypassSecurityTrustScript(value: string): SafeScript;\n\n /**\n * Bypass security and trust the given value to be a safe style URL, i.e. a value that can be used\n * in hyperlinks or `<img src>`.\n *\n * **WARNING:** calling this method with untrusted user data exposes your application to XSS\n * security risks!\n */\n abstract bypassSecurityTrustUrl(value: string): SafeUrl;\n\n /**\n * Bypass security and trust the given value to be a safe resource URL, i.e. a location that may\n * be used to load executable code from, like `<script src>`, or `<iframe src>`.\n *\n * **WARNING:** calling this method with untrusted user data exposes your application to XSS\n * security risks!\n */\n abstract bypassSecurityTrustResourceUrl(value: string): SafeResourceUrl;\n}\n\n\n@Injectable()\nexport class DomSanitizerImpl extends DomSanitizer {\n constructor(@Inject(DOCUMENT) private _doc: any) { super(); }\n\n sanitize(ctx: SecurityContext, value: SafeValue|string|null): string|null {\n if (value == null) return null;\n switch (ctx) {\n case SecurityContext.NONE:\n return value as string;\n case SecurityContext.HTML:\n if (value instanceof SafeHtmlImpl) return value.changingThisBreaksApplicationSecurity;\n this.checkNotSafeValue(value, 'HTML');\n return _sanitizeHtml(this._doc, String(value));\n case SecurityContext.STYLE:\n if (value instanceof SafeStyleImpl) return value.changingThisBreaksApplicationSecurity;\n this.checkNotSafeValue(value, 'Style');\n return _sanitizeStyle(value as string);\n case SecurityContext.SCRIPT:\n if (value instanceof SafeScriptImpl) return value.changingThisBreaksApplicationSecurity;\n this.checkNotSafeValue(value, 'Script');\n throw new Error('unsafe value used in a script context');\n case SecurityContext.URL:\n if (value instanceof SafeResourceUrlImpl || value instanceof SafeUrlImpl) {\n // Allow resource URLs in URL contexts, they are strictly more trusted.\n return value.changingThisBreaksApplicationSecurity;\n }\n this.checkNotSafeValue(value, 'URL');\n return _sanitizeUrl(String(value));\n case SecurityContext.RESOURCE_URL:\n if (value instanceof SafeResourceUrlImpl) {\n return value.changingThisBreaksApplicationSecurity;\n }\n this.checkNotSafeValue(value, 'ResourceURL');\n throw new Error(\n 'unsafe value used in a resource URL context (see http://g.co/ng/security#xss)');\n default:\n throw new Error(`Unexpected SecurityContext ${ctx} (see http://g.co/ng/security#xss)`);\n }\n }\n\n private checkNotSafeValue(value: any, expectedType: string) {\n if (value instanceof SafeValueImpl) {\n throw new Error(\n `Required a safe ${expectedType}, got a ${value.getTypeName()} ` +\n `(see http://g.co/ng/security#xss)`);\n }\n }\n\n bypassSecurityTrustHtml(value: string): SafeHtml { return new SafeHtmlImpl(value); }\n bypassSecurityTrustStyle(value: string): SafeStyle { return new SafeStyleImpl(value); }\n bypassSecurityTrustScript(value: string): SafeScript { return new SafeScriptImpl(value); }\n bypassSecurityTrustUrl(value: string): SafeUrl { return new SafeUrlImpl(value); }\n bypassSecurityTrustResourceUrl(value: string): SafeResourceUrl {\n return new SafeResourceUrlImpl(value);\n }\n}\n\nabstract class SafeValueImpl implements SafeValue {\n constructor(public changingThisBreaksApplicationSecurity: string) {\n // empty\n }\n\n abstract getTypeName(): string;\n\n toString() {\n return `SafeValue must use [property]=binding: ${this.changingThisBreaksApplicationSecurity}` +\n ` (see http://g.co/ng/security#xss)`;\n }\n}\n\nclass SafeHtmlImpl extends SafeValueImpl implements SafeHtml {\n getTypeName() { return 'HTML'; }\n}\nclass SafeStyleImpl extends SafeValueImpl implements SafeStyle {\n getTypeName() { return 'Style'; }\n}\nclass SafeScriptImpl extends SafeValueImpl implements SafeScript {\n getTypeName() { return 'Script'; }\n}\nclass SafeUrlImpl extends SafeValueImpl implements SafeUrl {\n getTypeName() { return 'URL'; }\n}\nclass SafeResourceUrlImpl extends SafeValueImpl implements SafeResourceUrl {\n getTypeName() { return 'ResourceURL'; }\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {CommonModule, PlatformLocation, ɵPLATFORM_BROWSER_ID as PLATFORM_BROWSER_ID} from '@angular/common';\nimport {APP_ID, ApplicationModule, ErrorHandler, Inject, ModuleWithProviders, NgModule, NgZone, Optional, PLATFORM_ID, PLATFORM_INITIALIZER, PlatformRef, RendererFactory2, Sanitizer, SkipSelf, StaticProvider, Testability, createPlatformFactory, platformCore, ɵAPP_ROOT as APP_ROOT, ɵConsole as Console} from '@angular/core';\n\nimport {BrowserDomAdapter} from './browser/browser_adapter';\nimport {BrowserPlatformLocation} from './browser/location/browser_platform_location';\nimport {SERVER_TRANSITION_PROVIDERS, TRANSITION_ID} from './browser/server-transition';\nimport {BrowserGetTestability} from './browser/testability';\nimport {ELEMENT_PROBE_PROVIDERS} from './dom/debug/ng_probe';\nimport {DomRendererFactory2} from './dom/dom_renderer';\nimport {DOCUMENT} from './dom/dom_tokens';\nimport {DomEventsPlugin} from './dom/events/dom_events';\nimport {EVENT_MANAGER_PLUGINS, EventManager} from './dom/events/event_manager';\nimport {HAMMER_GESTURE_CONFIG, HAMMER_LOADER, HammerGestureConfig, HammerGesturesPlugin} from './dom/events/hammer_gestures';\nimport {KeyEventsPlugin} from './dom/events/key_events';\nimport {DomSharedStylesHost, SharedStylesHost} from './dom/shared_styles_host';\nimport {DomSanitizer, DomSanitizerImpl} from './security/dom_sanitization_service';\n\nexport const INTERNAL_BROWSER_PLATFORM_PROVIDERS: StaticProvider[] = [\n {provide: PLATFORM_ID, useValue: PLATFORM_BROWSER_ID},\n {provide: PLATFORM_INITIALIZER, useValue: initDomAdapter, multi: true},\n {provide: PlatformLocation, useClass: BrowserPlatformLocation, deps: [DOCUMENT]},\n {provide: DOCUMENT, useFactory: _document, deps: []},\n];\n\n/**\n * @security Replacing built-in sanitization providers exposes the application to XSS risks.\n * Attacker-controlled data introduced by an unsanitized provider could expose your\n * application to XSS risks. For more detail, see the [Security Guide](http://g.co/ng/security).\n * @publicApi\n */\nexport const BROWSER_SANITIZATION_PROVIDERS: StaticProvider[] = [\n {provide: Sanitizer, useExisting: DomSanitizer},\n {provide: DomSanitizer, useClass: DomSanitizerImpl, deps: [DOCUMENT]},\n];\n\n/**\n * @publicApi\n */\nexport const platformBrowser: (extraProviders?: StaticProvider[]) => PlatformRef =\n createPlatformFactory(platformCore, 'browser', INTERNAL_BROWSER_PLATFORM_PROVIDERS);\n\nexport function initDomAdapter() {\n BrowserDomAdapter.makeCurrent();\n BrowserGetTestability.init();\n}\n\nexport function errorHandler(): ErrorHandler {\n return new ErrorHandler();\n}\n\nexport function _document(): any {\n return document;\n}\n\nexport const BROWSER_MODULE_PROVIDERS: StaticProvider[] = [\n BROWSER_SANITIZATION_PROVIDERS,\n {provide: APP_ROOT, useValue: true},\n {provide: ErrorHandler, useFactory: errorHandler, deps: []},\n {\n provide: EVENT_MANAGER_PLUGINS,\n useClass: DomEventsPlugin,\n multi: true,\n deps: [DOCUMENT, NgZone, PLATFORM_ID]\n },\n {provide: EVENT_MANAGER_PLUGINS, useClass: KeyEventsPlugin, multi: true, deps: [DOCUMENT]},\n {\n provide: EVENT_MANAGER_PLUGINS,\n useClass: HammerGesturesPlugin,\n multi: true,\n deps: [DOCUMENT, HAMMER_GESTURE_CONFIG, Console, [new Optional(), HAMMER_LOADER]]\n },\n {provide: HAMMER_GESTURE_CONFIG, useClass: HammerGestureConfig, deps: []},\n {\n provide: DomRendererFactory2,\n useClass: DomRendererFactory2,\n deps: [EventManager, DomSharedStylesHost]\n },\n {provide: RendererFactory2, useExisting: DomRendererFactory2},\n {provide: SharedStylesHost, useExisting: DomSharedStylesHost},\n {provide: DomSharedStylesHost, useClass: DomSharedStylesHost, deps: [DOCUMENT]},\n {provide: Testability, useClass: Testability, deps: [NgZone]},\n {provide: EventManager, useClass: EventManager, deps: [EVENT_MANAGER_PLUGINS, NgZone]},\n ELEMENT_PROBE_PROVIDERS,\n];\n\n/**\n * Exports required infrastructure for all Angular apps.\n * Included by default in all Angular apps created with the CLI\n * `new` command.\n * Re-exports `CommonModule` and `ApplicationModule`, making their\n * exports and providers available to all apps.\n *\n * @publicApi\n */\n@NgModule({providers: BROWSER_MODULE_PROVIDERS, exports: [CommonModule, ApplicationModule]})\nexport class BrowserModule {\n constructor(@Optional() @SkipSelf() @Inject(BrowserModule) parentModule: BrowserModule|null) {\n if (parentModule) {\n throw new Error(\n `BrowserModule has already been loaded. If you need access to common directives such as NgIf and NgFor from a lazy loaded module, import CommonModule instead.`);\n }\n }\n\n /**\n * Configures a browser-based app to transition from a server-rendered app, if\n * one is present on the page.\n *\n * @param params An object containing an identifier for the app to transition.\n * The ID must match between the client and server versions of the app.\n * @returns The reconfigured `BrowserModule` to import into the app's root `AppModule`.\n */\n static withServerTransition(params: {appId: string}): ModuleWithProviders<BrowserModule> {\n return {\n ngModule: BrowserModule,\n providers: [\n {provide: APP_ID, useValue: params.appId},\n {provide: TRANSITION_ID, useExisting: APP_ID},\n SERVER_TRANSITION_PROVIDERS,\n ],\n };\n }\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Inject, Injectable, inject} from '@angular/core';\n\nimport {DomAdapter, getDOM} from '../dom/dom_adapter';\nimport {DOCUMENT} from '../dom/dom_tokens';\n\n\n\n/**\n * Represents a meta element.\n *\n * @publicApi\n */\nexport type MetaDefinition = {\n charset?: string; content?: string; httpEquiv?: string; id?: string; itemprop?: string;\n name?: string;\n property?: string;\n scheme?: string;\n url?: string;\n} &\n{\n // TODO(IgorMinar): this type looks wrong\n [prop: string]: string;\n};\n\n/**\n * Factory to create Meta service.\n */\nexport function createMeta() {\n return new Meta(inject(DOCUMENT));\n}\n\n/**\n * A service that can be used to get and add meta tags.\n *\n * @publicApi\n */\n@Injectable({providedIn: 'root', useFactory: createMeta, deps: []})\nexport class Meta {\n private _dom: DomAdapter;\n constructor(@Inject(DOCUMENT) private _doc: any) { this._dom = getDOM(); }\n\n addTag(tag: MetaDefinition, forceCreation: boolean = false): HTMLMetaElement|null {\n if (!tag) return null;\n return this._getOrCreateElement(tag, forceCreation);\n }\n\n addTags(tags: MetaDefinition[], forceCreation: boolean = false): HTMLMetaElement[] {\n if (!tags) return [];\n return tags.reduce((result: HTMLMetaElement[], tag: MetaDefinition) => {\n if (tag) {\n result.push(this._getOrCreateElement(tag, forceCreation));\n }\n return result;\n }, []);\n }\n\n getTag(attrSelector: string): HTMLMetaElement|null {\n if (!attrSelector) return null;\n return this._dom.querySelector(this._doc, `meta[${attrSelector}]`) || null;\n }\n\n getTags(attrSelector: string): HTMLMetaElement[] {\n if (!attrSelector) return [];\n const list /*NodeList*/ = this._dom.querySelectorAll(this._doc, `meta[${attrSelector}]`);\n return list ? [].slice.call(list) : [];\n }\n\n updateTag(tag: MetaDefinition, selector?: string): HTMLMetaElement|null {\n if (!tag) return null;\n selector = selector || this._parseSelector(tag);\n const meta: HTMLMetaElement = this.getTag(selector) !;\n if (meta) {\n return this._setMetaElementAttributes(tag, meta);\n }\n return this._getOrCreateElement(tag, true);\n }\n\n removeTag(attrSelector: string): void { this.removeTagElement(this.getTag(attrSelector) !); }\n\n removeTagElement(meta: HTMLMetaElement): void {\n if (meta) {\n this._dom.remove(meta);\n }\n }\n\n private _getOrCreateElement(meta: MetaDefinition, forceCreation: boolean = false):\n HTMLMetaElement {\n if (!forceCreation) {\n const selector: string = this._parseSelector(meta);\n const elem: HTMLMetaElement = this.getTag(selector) !;\n // It's allowed to have multiple elements with the same name so it's not enough to\n // just check that element with the same name already present on the page. We also need to\n // check if element has tag attributes\n if (elem && this._containsAttributes(meta, elem)) return elem;\n }\n const element: HTMLMetaElement = this._dom.createElement('meta') as HTMLMetaElement;\n this._setMetaElementAttributes(meta, element);\n const head = this._dom.getElementsByTagName(this._doc, 'head')[0];\n this._dom.appendChild(head, element);\n return element;\n }\n\n private _setMetaElementAttributes(tag: MetaDefinition, el: HTMLMetaElement): HTMLMetaElement {\n Object.keys(tag).forEach((prop: string) => this._dom.setAttribute(el, prop, tag[prop]));\n return el;\n }\n\n private _parseSelector(tag: MetaDefinition): string {\n const attr: string = tag.name ? 'name' : 'property';\n return `${attr}=\"${tag[attr]}\"`;\n }\n\n private _containsAttributes(tag: MetaDefinition, elem: HTMLMetaElement): boolean {\n return Object.keys(tag).every((key: string) => this._dom.getAttribute(elem, key) === tag[key]);\n }\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Inject, Injectable, inject} from '@angular/core';\n\nimport {getDOM} from '../dom/dom_adapter';\nimport {DOCUMENT} from '../dom/dom_tokens';\n\n/**\n * Factory to create Title service.\n */\nexport function createTitle() {\n return new Title(inject(DOCUMENT));\n}\n\n/**\n * A service that can be used to get and set the title of a current HTML document.\n *\n * Since an Angular application can't be bootstrapped on the entire HTML document (`<html>` tag)\n * it is not possible to bind to the `text` property of the `HTMLTitleElement` elements\n * (representing the `<title>` tag). Instead, this service can be used to set and get the current\n * title value.\n *\n * @publicApi\n */\n@Injectable({providedIn: 'root', useFactory: createTitle, deps: []})\nexport class Title {\n constructor(@Inject(DOCUMENT) private _doc: any) {}\n /**\n * Get the title of the current HTML document.\n */\n getTitle(): string { return getDOM().getTitle(this._doc); }\n\n /**\n * Set the title of the current HTML document.\n * @param newTitle\n */\n setTitle(newTitle: string) { getDOM().setTitle(this._doc, newTitle); }\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nconst win = typeof window !== 'undefined' && window || <any>{};\nexport {win as window};\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {ApplicationRef, ComponentRef} from '@angular/core';\nimport {getDOM} from '../../dom/dom_adapter';\nimport {window} from './browser';\n\nexport class ChangeDetectionPerfRecord {\n constructor(public msPerTick: number, public numTicks: number) {}\n}\n\n/**\n * Entry point for all Angular profiling-related debug tools. This object\n * corresponds to the `ng.profiler` in the dev console.\n */\nexport class AngularProfiler {\n appRef: ApplicationRef;\n\n constructor(ref: ComponentRef<any>) { this.appRef = ref.injector.get(ApplicationRef); }\n\n // tslint:disable:no-console\n /**\n * Exercises change detection in a loop and then prints the average amount of\n * time in milliseconds how long a single round of change detection takes for\n * the current state of the UI. It runs a minimum of 5 rounds for a minimum\n * of 500 milliseconds.\n *\n * Optionally, a user may pass a `config` parameter containing a map of\n * options. Supported options are:\n *\n * `record` (boolean) - causes the profiler to record a CPU profile while\n * it exercises the change detector. Example:\n *\n * ```\n * ng.profiler.timeChangeDetection({record: true})\n * ```\n */\n timeChangeDetection(config: any): ChangeDetectionPerfRecord {\n const record = config && config['record'];\n const profileName = 'Change Detection';\n // Profiler is not available in Android browsers, nor in IE 9 without dev tools opened\n const isProfilerAvailable = window.console.profile != null;\n if (record && isProfilerAvailable) {\n window.console.profile(profileName);\n }\n const start = getDOM().performanceNow();\n let numTicks = 0;\n while (numTicks < 5 || (getDOM().performanceNow() - start) < 500) {\n this.appRef.tick();\n numTicks++;\n }\n const end = getDOM().performanceNow();\n if (record && isProfilerAvailable) {\n window.console.profileEnd(profileName);\n }\n const msPerTick = (end - start) / numTicks;\n window.console.log(`ran ${numTicks} change detection cycles`);\n window.console.log(`${msPerTick.toFixed(2)} ms per check`);\n\n return new ChangeDetectionPerfRecord(msPerTick, numTicks);\n }\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {ComponentRef} from '@angular/core';\nimport {exportNgVar} from '../../dom/util';\nimport {AngularProfiler} from './common_tools';\n\nconst PROFILER_GLOBAL_NAME = 'profiler';\n\n/**\n * Enabled Angular debug tools that are accessible via your browser's\n * developer console.\n *\n * Usage:\n *\n * 1. Open developer console (e.g. in Chrome Ctrl + Shift + j)\n * 1. Type `ng.` (usually the console will show auto-complete suggestion)\n * 1. Try the change detection profiler `ng.profiler.timeChangeDetection()`\n * then hit Enter.\n *\n * @publicApi\n */\nexport function enableDebugTools<T>(ref: ComponentRef<T>): ComponentRef<T> {\n exportNgVar(PROFILER_GLOBAL_NAME, new AngularProfiler(ref));\n return ref;\n}\n\n/**\n * Disables Angular tools.\n *\n * @publicApi\n */\nexport function disableDebugTools(): void {\n exportNgVar(PROFILER_GLOBAL_NAME, null);\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {APP_ID, Injectable, NgModule} from '@angular/core';\nimport {DOCUMENT} from '../dom/dom_tokens';\n\nexport function escapeHtml(text: string): string {\n const escapedText: {[k: string]: string} = {\n '&': '&a;',\n '\"': '&q;',\n '\\'': '&s;',\n '<': '&l;',\n '>': '&g;',\n };\n return text.replace(/[&\"'<>]/g, s => escapedText[s]);\n}\n\nexport function unescapeHtml(text: string): string {\n const unescapedText: {[k: string]: string} = {\n '&a;': '&',\n '&q;': '\"',\n '&s;': '\\'',\n '&l;': '<',\n '&g;': '>',\n };\n return text.replace(/&[^;]+;/g, s => unescapedText[s]);\n}\n\n/**\n * A type-safe key to use with `TransferState`.\n *\n * Example:\n *\n * ```\n * const COUNTER_KEY = makeStateKey<number>('counter');\n * let value = 10;\n *\n * transferState.set(COUNTER_KEY, value);\n * ```\n *\n * @publicApi\n */\nexport type StateKey<T> = string & {__not_a_string: never};\n\n/**\n * Create a `StateKey<T>` that can be used to store value of type T with `TransferState`.\n *\n * Example:\n *\n * ```\n * const COUNTER_KEY = makeStateKey<number>('counter');\n * let value = 10;\n *\n * transferState.set(COUNTER_KEY, value);\n * ```\n *\n * @publicApi\n */\nexport function makeStateKey<T = void>(key: string): StateKey<T> {\n return key as StateKey<T>;\n}\n\n/**\n * A key value store that is transferred from the application on the server side to the application\n * on the client side.\n *\n * `TransferState` will be available as an injectable token. To use it import\n * `ServerTransferStateModule` on the server and `BrowserTransferStateModule` on the client.\n *\n * The values in the store are serialized/deserialized using JSON.stringify/JSON.parse. So only\n * boolean, number, string, null and non-class objects will be serialized and deserialzied in a\n * non-lossy manner.\n *\n * @publicApi\n */\n@Injectable()\nexport class TransferState {\n private store: {[k: string]: {} | undefined} = {};\n private onSerializeCallbacks: {[k: string]: () => {} | undefined} = {};\n\n /** @internal */\n static init(initState: {}) {\n const transferState = new TransferState();\n transferState.store = initState;\n return transferState;\n }\n\n /**\n * Get the value corresponding to a key. Return `defaultValue` if key is not found.\n */\n get<T>(key: StateKey<T>, defaultValue: T): T {\n return this.store[key] !== undefined ? this.store[key] as T : defaultValue;\n }\n\n /**\n * Set the value corresponding to a key.\n */\n set<T>(key: StateKey<T>, value: T): void { this.store[key] = value; }\n\n /**\n * Remove a key from the store.\n */\n remove<T>(key: StateKey<T>): void { delete this.store[key]; }\n\n /**\n * Test whether a key exists in the store.\n */\n hasKey<T>(key: StateKey<T>) { return this.store.hasOwnProperty(key); }\n\n /**\n * Register a callback to provide the value for a key when `toJson` is called.\n */\n onSerialize<T>(key: StateKey<T>, callback: () => T): void {\n this.onSerializeCallbacks[key] = callback;\n }\n\n /**\n * Serialize the current state of the store to JSON.\n */\n toJson(): string {\n // Call the onSerialize callbacks and put those values into the store.\n for (const key in this.onSerializeCallbacks) {\n if (this.onSerializeCallbacks.hasOwnProperty(key)) {\n try {\n this.store[key] = this.onSerializeCallbacks[key]();\n } catch (e) {\n console.warn('Exception in onSerialize callback: ', e);\n }\n }\n }\n return JSON.stringify(this.store);\n }\n}\n\nexport function initTransferState(doc: Document, appId: string) {\n // Locate the script tag with the JSON data transferred from the server.\n // The id of the script tag is set to the Angular appId + 'state'.\n const script = doc.getElementById(appId + '-state');\n let initialState = {};\n if (script && script.textContent) {\n try {\n initialState = JSON.parse(unescapeHtml(script.textContent));\n } catch (e) {\n console.warn('Exception while restoring TransferState for app ' + appId, e);\n }\n }\n return TransferState.init(initialState);\n}\n\n/**\n * NgModule to install on the client side while using the `TransferState` to transfer state from\n * server to client.\n *\n * @publicApi\n */\n@NgModule({\n providers: [{provide: TransferState, useFactory: initTransferState, deps: [DOCUMENT, APP_ID]}],\n})\nexport class BrowserTransferStateModule {\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {DebugElement, Predicate, Type} from '@angular/core';\nimport {getDOM} from '../../dom/dom_adapter';\n\n\n\n/**\n * Predicates for use with {@link DebugElement}'s query functions.\n *\n * @publicApi\n */\nexport class By {\n /**\n * Match all elements.\n *\n * @usageNotes\n * ### Example\n *\n * {@example platform-browser/dom/debug/ts/by/by.ts region='by_all'}\n */\n static all(): Predicate<DebugElement> { return (debugElement) => true; }\n\n /**\n * Match elements by the given CSS selector.\n *\n * @usageNotes\n * ### Example\n *\n * {@example platform-browser/dom/debug/ts/by/by.ts region='by_css'}\n */\n static css(selector: string): Predicate<DebugElement> {\n return (debugElement) => {\n return debugElement.nativeElement != null ?\n getDOM().elementMatches(debugElement.nativeElement, selector) :\n false;\n };\n }\n\n /**\n * Match elements that have the given directive present.\n *\n * @usageNotes\n * ### Example\n *\n * {@example platform-browser/dom/debug/ts/by/by.ts region='by_directive'}\n */\n static directive(type: Type<any>): Predicate<DebugElement> {\n return (debugElement) => debugElement.providerTokens !.indexOf(type) !== -1;\n }\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nexport {BROWSER_SANITIZATION_PROVIDERS as ɵBROWSER_SANITIZATION_PROVIDERS, INTERNAL_BROWSER_PLATFORM_PROVIDERS as ɵINTERNAL_BROWSER_PLATFORM_PROVIDERS, initDomAdapter as ɵinitDomAdapter} from './browser';\nexport {BrowserDomAdapter as ɵBrowserDomAdapter} from './browser/browser_adapter';\nexport {BrowserPlatformLocation as ɵBrowserPlatformLocation} from './browser/location/browser_platform_location';\nexport {TRANSITION_ID as ɵTRANSITION_ID} from './browser/server-transition';\nexport {BrowserGetTestability as ɵBrowserGetTestability} from './browser/testability';\nexport {escapeHtml as ɵescapeHtml} from './browser/transfer_state';\nexport {ELEMENT_PROBE_PROVIDERS as ɵELEMENT_PROBE_PROVIDERS} from './dom/debug/ng_probe';\nexport {DomAdapter as ɵDomAdapter, getDOM as ɵgetDOM, setRootDomAdapter as ɵsetRootDomAdapter} from './dom/dom_adapter';\nexport {DomRendererFactory2 as ɵDomRendererFactory2, NAMESPACE_URIS as ɵNAMESPACE_URIS, flattenStyles as ɵflattenStyles, shimContentAttribute as ɵshimContentAttribute, shimHostAttribute as ɵshimHostAttribute} from './dom/dom_renderer';\nexport {DomEventsPlugin as ɵDomEventsPlugin} from './dom/events/dom_events';\nexport {HammerGesturesPlugin as ɵHammerGesturesPlugin} from './dom/events/hammer_gestures';\nexport {KeyEventsPlugin as ɵKeyEventsPlugin} from './dom/events/key_events';\nexport {DomSharedStylesHost as ɵDomSharedStylesHost, SharedStylesHost as ɵSharedStylesHost} from './dom/shared_styles_host';\nexport {DomSanitizerImpl as ɵDomSanitizerImpl} from './security/dom_sanitization_service';\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * @module\n * @description\n * Entry point for all public APIs of the common package.\n */\n\nimport {Version} from '@angular/core';\n\n/**\n * @publicApi\n */\nexport const VERSION = new Version('7.2.7');\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nexport {BrowserModule, platformBrowser} from './browser';\nexport {Meta, MetaDefinition} from './browser/meta';\nexport {Title} from './browser/title';\nexport {disableDebugTools, enableDebugTools} from './browser/tools/tools';\nexport {BrowserTransferStateModule, StateKey, TransferState, makeStateKey} from './browser/transfer_state';\nexport {By} from './dom/debug/by';\nexport {DOCUMENT} from './dom/dom_tokens';\nexport {EVENT_MANAGER_PLUGINS, EventManager} from './dom/events/event_manager';\nexport {HAMMER_GESTURE_CONFIG, HAMMER_LOADER, HammerGestureConfig, HammerLoader} from './dom/events/hammer_gestures';\nexport {DomSanitizer, SafeHtml, SafeResourceUrl, SafeScript, SafeStyle, SafeUrl, SafeValue} from './security/dom_sanitization_service';\n\nexport * from './private_export';\nexport {VERSION} from './version';\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * @module\n * @description\n * Entry point for all public APIs of this package.\n */\nexport * from './src/platform-browser';\n// This file only reexports content of the `src` folder. Keep it that way.\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n// This file is not used to build this module. It is only used during editing\n// by the TypeScript language service and during build for verification. `ngc`\n// replaces this file with production index.ts when it rewrites private symbol\n// names.\n\nexport * from './public_api';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n\nexport {BROWSER_MODULE_PROVIDERS as ɵangular_packages_platform_browser_platform_browser_c,_document as ɵangular_packages_platform_browser_platform_browser_b,errorHandler as ɵangular_packages_platform_browser_platform_browser_a} from './src/browser';\nexport {GenericBrowserDomAdapter as ɵangular_packages_platform_browser_platform_browser_k} from './src/browser/generic_browser_adapter';\nexport {createMeta as ɵangular_packages_platform_browser_platform_browser_d} from './src/browser/meta';\nexport {SERVER_TRANSITION_PROVIDERS as ɵangular_packages_platform_browser_platform_browser_i,appInitializerFactory as ɵangular_packages_platform_browser_platform_browser_h} from './src/browser/server-transition';\nexport {createTitle as ɵangular_packages_platform_browser_platform_browser_e} from './src/browser/title';\nexport {initTransferState as ɵangular_packages_platform_browser_platform_browser_f} from './src/browser/transfer_state';\nexport {_createNgProbe as ɵangular_packages_platform_browser_platform_browser_j} from './src/dom/debug/ng_probe';\nexport {EventManagerPlugin as ɵangular_packages_platform_browser_platform_browser_g} from './src/dom/events/event_manager';"],"names":["tslib_1.__extends","global","parseCookieValue","commonDOCUMENT","Injectable","tslib_1.__param","Inject","PlatformLocation","InjectionToken","ApplicationInitStatus","APP_INITIALIZER","Injector","setTestabilityGetter","core.ApplicationRef","core.NgZone","core.getDebugNode","core.APP_INITIALIZER","core.NgProbeToken","core.Optional","NgZone","ViewEncapsulation","RendererStyleFlags2","isPlatformServer","Optional","PLATFORM_ID","Console","SecurityContext","_sanitizeHtml","_sanitizeStyle","_sanitizeUrl","PLATFORM_BROWSER_ID","PLATFORM_INITIALIZER","Sanitizer","createPlatformFactory","platformCore","ErrorHandler","APP_ROOT","RendererFactory2","Testability","APP_ID","NgModule","CommonModule","ApplicationModule","SkipSelf","inject","ApplicationRef","window","Version"],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"platform-browser.umd.js","sources":["../../../../../../../../../../external/ngdeps/node_modules/tslib/tslib.es6.js","../../../../../packages/platform-browser/src/dom/dom_adapter.ts","../../../../../packages/platform-browser/src/browser/generic_browser_adapter.ts","../../../../../packages/platform-browser/src/browser/browser_adapter.ts","../../../../../packages/platform-browser/src/dom/dom_tokens.ts","../../../../../packages/platform-browser/src/browser/location/history.ts","../../../../../packages/platform-browser/src/browser/location/browser_platform_location.ts","../../../../../packages/platform-browser/src/browser/server-transition.ts","../../../../../packages/platform-browser/src/browser/testability.ts","../../../../../packages/platform-browser/src/dom/util.ts","../../../../../packages/platform-browser/src/dom/debug/ng_probe.ts","../../../../../packages/platform-browser/src/dom/events/event_manager.ts","../../../../../packages/platform-browser/src/dom/shared_styles_host.ts","../../../../../packages/platform-browser/src/dom/dom_renderer.ts","../../../../../packages/platform-browser/src/dom/events/dom_events.ts","../../../../../packages/platform-browser/src/dom/events/hammer_gestures.ts","../../../../../packages/platform-browser/src/dom/events/key_events.ts","../../../../../packages/platform-browser/src/security/dom_sanitization_service.ts","../../../../../packages/platform-browser/src/browser.ts","../../../../../packages/platform-browser/src/browser/meta.ts","../../../../../packages/platform-browser/src/browser/title.ts","../../../../../packages/platform-browser/src/browser/tools/browser.ts","../../../../../packages/platform-browser/src/browser/tools/common_tools.ts","../../../../../packages/platform-browser/src/browser/tools/tools.ts","../../../../../packages/platform-browser/src/browser/transfer_state.ts","../../../../../packages/platform-browser/src/dom/debug/by.ts","../../../../../packages/platform-browser/src/private_export.ts","../../../../../packages/platform-browser/src/version.ts","../../../../../packages/platform-browser/src/platform-browser.ts","../../../../../packages/platform-browser/public_api.ts","../../../../../packages/platform-browser/index.ts","../../../../../packages/platform-browser/platform-browser.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0)\r\n t[p[i]] = s[p[i]];\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Type} from '@angular/core';\n\nlet _DOM: DomAdapter = null !;\n\nexport function getDOM() {\n return _DOM;\n}\n\nexport function setDOM(adapter: DomAdapter) {\n _DOM = adapter;\n}\n\nexport function setRootDomAdapter(adapter: DomAdapter) {\n if (!_DOM) {\n _DOM = adapter;\n }\n}\n\n/* tslint:disable:requireParameterType */\n/**\n * Provides DOM operations in an environment-agnostic way.\n *\n * @security Tread carefully! Interacting with the DOM directly is dangerous and\n * can introduce XSS risks.\n */\nexport abstract class DomAdapter {\n public resourceLoaderType: Type<any> = null !;\n abstract hasProperty(element: any, name: string): boolean;\n abstract setProperty(el: Element, name: string, value: any): any;\n abstract getProperty(el: Element, name: string): any;\n abstract invoke(el: Element, methodName: string, args: any[]): any;\n\n abstract logError(error: any): any;\n abstract log(error: any): any;\n abstract logGroup(error: any): any;\n abstract logGroupEnd(): any;\n\n /**\n * Maps attribute names to their corresponding property names for cases\n * where attribute name doesn't match property name.\n */\n get attrToPropMap(): {[key: string]: string} { return this._attrToPropMap; }\n set attrToPropMap(value: {[key: string]: string}) { this._attrToPropMap = value; }\n /** @internal */\n // TODO(issue/24571): remove '!'.\n _attrToPropMap !: {[key: string]: string};\n\n abstract contains(nodeA: any, nodeB: any): boolean;\n abstract parse(templateHtml: string): any;\n abstract querySelector(el: any, selector: string): any;\n abstract querySelectorAll(el: any, selector: string): any[];\n abstract on(el: any, evt: any, listener: any): any;\n abstract onAndCancel(el: any, evt: any, listener: any): Function;\n abstract dispatchEvent(el: any, evt: any): any;\n abstract createMouseEvent(eventType: any): any;\n abstract createEvent(eventType: string): any;\n abstract preventDefault(evt: any): any;\n abstract isPrevented(evt: any): boolean;\n abstract getInnerHTML(el: any): string;\n /** Returns content if el is a <template> element, null otherwise. */\n abstract getTemplateContent(el: any): any;\n abstract getOuterHTML(el: any): string;\n abstract nodeName(node: any): string;\n abstract nodeValue(node: any): string|null;\n abstract type(node: any): string;\n abstract content(node: any): any;\n abstract firstChild(el: any): Node|null;\n abstract nextSibling(el: any): Node|null;\n abstract parentElement(el: any): Node|null;\n abstract childNodes(el: any): Node[];\n abstract childNodesAsList(el: any): Node[];\n abstract clearNodes(el: any): any;\n abstract appendChild(el: any, node: any): any;\n abstract removeChild(el: any, node: any): any;\n abstract replaceChild(el: any, newNode: any, oldNode: any): any;\n abstract remove(el: any): Node;\n abstract insertBefore(parent: any, ref: any, node: any): any;\n abstract insertAllBefore(parent: any, ref: any, nodes: any): any;\n abstract insertAfter(parent: any, el: any, node: any): any;\n abstract setInnerHTML(el: any, value: any): any;\n abstract getText(el: any): string|null;\n abstract setText(el: any, value: string): any;\n abstract getValue(el: any): string;\n abstract setValue(el: any, value: string): any;\n abstract getChecked(el: any): boolean;\n abstract setChecked(el: any, value: boolean): any;\n abstract createComment(text: string): any;\n abstract createTemplate(html: any): HTMLElement;\n abstract createElement(tagName: any, doc?: any): HTMLElement;\n abstract createElementNS(ns: string, tagName: string, doc?: any): Element;\n abstract createTextNode(text: string, doc?: any): Text;\n abstract createScriptTag(attrName: string, attrValue: string, doc?: any): HTMLElement;\n abstract createStyleElement(css: string, doc?: any): HTMLStyleElement;\n abstract createShadowRoot(el: any): any;\n abstract getShadowRoot(el: any): any;\n abstract getHost(el: any): any;\n abstract getDistributedNodes(el: any): Node[];\n abstract clone /*<T extends Node>*/ (node: Node /*T*/): Node /*T*/;\n abstract getElementsByClassName(element: any, name: string): HTMLElement[];\n abstract getElementsByTagName(element: any, name: string): HTMLElement[];\n abstract classList(element: any): any[];\n abstract addClass(element: any, className: string): any;\n abstract removeClass(element: any, className: string): any;\n abstract hasClass(element: any, className: string): boolean;\n abstract setStyle(element: any, styleName: string, styleValue: string): any;\n abstract removeStyle(element: any, styleName: string): any;\n abstract getStyle(element: any, styleName: string): string;\n abstract hasStyle(element: any, styleName: string, styleValue?: string): boolean;\n abstract tagName(element: any): string;\n abstract attributeMap(element: any): Map<string, string>;\n abstract hasAttribute(element: any, attribute: string): boolean;\n abstract hasAttributeNS(element: any, ns: string, attribute: string): boolean;\n abstract getAttribute(element: any, attribute: string): string|null;\n abstract getAttributeNS(element: any, ns: string, attribute: string): string|null;\n abstract setAttribute(element: any, name: string, value: string): any;\n abstract setAttributeNS(element: any, ns: string, name: string, value: string): any;\n abstract removeAttribute(element: any, attribute: string): any;\n abstract removeAttributeNS(element: any, ns: string, attribute: string): any;\n abstract templateAwareRoot(el: any): any;\n abstract createHtmlDocument(): HTMLDocument;\n abstract getDefaultDocument(): Document;\n abstract getBoundingClientRect(el: any): any;\n abstract getTitle(doc: Document): string;\n abstract setTitle(doc: Document, newTitle: string): any;\n abstract elementMatches(n: any, selector: string): boolean;\n abstract isTemplateElement(el: any): boolean;\n abstract isTextNode(node: any): boolean;\n abstract isCommentNode(node: any): boolean;\n abstract isElementNode(node: any): boolean;\n abstract hasShadowRoot(node: any): boolean;\n abstract isShadowRoot(node: any): boolean;\n abstract importIntoDoc /*<T extends Node>*/ (node: Node /*T*/): Node /*T*/;\n abstract adoptNode /*<T extends Node>*/ (node: Node /*T*/): Node /*T*/;\n abstract getHref(element: any): string;\n abstract getEventKey(event: any): string;\n abstract resolveAndSetHref(element: any, baseUrl: string, href: string): any;\n abstract supportsDOMEvents(): boolean;\n abstract supportsNativeShadowDOM(): boolean;\n abstract getGlobalEventTarget(doc: Document, target: string): any;\n abstract getHistory(): History;\n abstract getLocation(): Location;\n abstract getBaseHref(doc: Document): string|null;\n abstract resetBaseElement(): void;\n abstract getUserAgent(): string;\n abstract setData(element: any, name: string, value: string): any;\n abstract getComputedStyle(element: any): any;\n abstract getData(element: any, name: string): string|null;\n abstract supportsWebAnimation(): boolean;\n abstract performanceNow(): number;\n abstract getAnimationPrefix(): string;\n abstract getTransitionEnd(): string;\n abstract supportsAnimation(): boolean;\n\n abstract supportsCookies(): boolean;\n abstract getCookie(name: string): string|null;\n abstract setCookie(name: string, value: string): any;\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {DomAdapter} from '../dom/dom_adapter';\n\n\n\n/**\n * Provides DOM operations in any browser environment.\n *\n * @security Tread carefully! Interacting with the DOM directly is dangerous and\n * can introduce XSS risks.\n */\nexport abstract class GenericBrowserDomAdapter extends DomAdapter {\n private _animationPrefix: string|null = null;\n private _transitionEnd: string|null = null;\n constructor() {\n super();\n try {\n const element = this.createElement('div', document);\n if (this.getStyle(element, 'animationName') != null) {\n this._animationPrefix = '';\n } else {\n const domPrefixes = ['Webkit', 'Moz', 'O', 'ms'];\n\n for (let i = 0; i < domPrefixes.length; i++) {\n if (this.getStyle(element, domPrefixes[i] + 'AnimationName') != null) {\n this._animationPrefix = '-' + domPrefixes[i].toLowerCase() + '-';\n break;\n }\n }\n }\n\n const transEndEventNames: {[key: string]: string} = {\n WebkitTransition: 'webkitTransitionEnd',\n MozTransition: 'transitionend',\n OTransition: 'oTransitionEnd otransitionend',\n transition: 'transitionend'\n };\n\n Object.keys(transEndEventNames).forEach((key: string) => {\n if (this.getStyle(element, key) != null) {\n this._transitionEnd = transEndEventNames[key];\n }\n });\n } catch {\n this._animationPrefix = null;\n this._transitionEnd = null;\n }\n }\n\n getDistributedNodes(el: HTMLElement): Node[] { return (<any>el).getDistributedNodes(); }\n resolveAndSetHref(el: HTMLAnchorElement, baseUrl: string, href: string) {\n el.href = href == null ? baseUrl : baseUrl + '/../' + href;\n }\n supportsDOMEvents(): boolean { return true; }\n supportsNativeShadowDOM(): boolean {\n return typeof(<any>document.body).createShadowRoot === 'function';\n }\n getAnimationPrefix(): string { return this._animationPrefix ? this._animationPrefix : ''; }\n getTransitionEnd(): string { return this._transitionEnd ? this._transitionEnd : ''; }\n supportsAnimation(): boolean {\n return this._animationPrefix != null && this._transitionEnd != null;\n }\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {ɵparseCookieValue as parseCookieValue} from '@angular/common';\nimport {ɵglobal as global} from '@angular/core';\n\nimport {setRootDomAdapter} from '../dom/dom_adapter';\n\nimport {GenericBrowserDomAdapter} from './generic_browser_adapter';\n\nconst _attrToPropMap = {\n 'class': 'className',\n 'innerHtml': 'innerHTML',\n 'readonly': 'readOnly',\n 'tabindex': 'tabIndex',\n};\n\nconst DOM_KEY_LOCATION_NUMPAD = 3;\n\n// Map to convert some key or keyIdentifier values to what will be returned by getEventKey\nconst _keyMap: {[k: string]: string} = {\n // The following values are here for cross-browser compatibility and to match the W3C standard\n // cf http://www.w3.org/TR/DOM-Level-3-Events-key/\n '\\b': 'Backspace',\n '\\t': 'Tab',\n '\\x7F': 'Delete',\n '\\x1B': 'Escape',\n 'Del': 'Delete',\n 'Esc': 'Escape',\n 'Left': 'ArrowLeft',\n 'Right': 'ArrowRight',\n 'Up': 'ArrowUp',\n 'Down': 'ArrowDown',\n 'Menu': 'ContextMenu',\n 'Scroll': 'ScrollLock',\n 'Win': 'OS'\n};\n\n// There is a bug in Chrome for numeric keypad keys:\n// https://code.google.com/p/chromium/issues/detail?id=155654\n// 1, 2, 3 ... are reported as A, B, C ...\nconst _chromeNumKeyPadMap = {\n 'A': '1',\n 'B': '2',\n 'C': '3',\n 'D': '4',\n 'E': '5',\n 'F': '6',\n 'G': '7',\n 'H': '8',\n 'I': '9',\n 'J': '*',\n 'K': '+',\n 'M': '-',\n 'N': '.',\n 'O': '/',\n '\\x60': '0',\n '\\x90': 'NumLock'\n};\n\nlet nodeContains: (a: any, b: any) => boolean;\n\nif (global['Node']) {\n nodeContains = global['Node'].prototype.contains || function(node) {\n return !!(this.compareDocumentPosition(node) & 16);\n };\n}\n\n/**\n * A `DomAdapter` powered by full browser DOM APIs.\n *\n * @security Tread carefully! Interacting with the DOM directly is dangerous and\n * can introduce XSS risks.\n */\n/* tslint:disable:requireParameterType no-console */\nexport class BrowserDomAdapter extends GenericBrowserDomAdapter {\n parse(templateHtml: string) { throw new Error('parse not implemented'); }\n static makeCurrent() { setRootDomAdapter(new BrowserDomAdapter()); }\n hasProperty(element: Node, name: string): boolean { return name in element; }\n setProperty(el: Node, name: string, value: any) { (<any>el)[name] = value; }\n getProperty(el: Node, name: string): any { return (<any>el)[name]; }\n invoke(el: Node, methodName: string, args: any[]): any { (<any>el)[methodName](...args); }\n\n // TODO(tbosch): move this into a separate environment class once we have it\n logError(error: string): void {\n if (window.console) {\n if (console.error) {\n console.error(error);\n } else {\n console.log(error);\n }\n }\n }\n\n log(error: string): void {\n if (window.console) {\n window.console.log && window.console.log(error);\n }\n }\n\n logGroup(error: string): void {\n if (window.console) {\n window.console.group && window.console.group(error);\n }\n }\n\n logGroupEnd(): void {\n if (window.console) {\n window.console.groupEnd && window.console.groupEnd();\n }\n }\n\n get attrToPropMap(): any { return _attrToPropMap; }\n\n contains(nodeA: any, nodeB: any): boolean { return nodeContains.call(nodeA, nodeB); }\n querySelector(el: HTMLElement, selector: string): any { return el.querySelector(selector); }\n querySelectorAll(el: any, selector: string): any[] { return el.querySelectorAll(selector); }\n on(el: Node, evt: any, listener: any) { el.addEventListener(evt, listener, false); }\n onAndCancel(el: Node, evt: any, listener: any): Function {\n el.addEventListener(evt, listener, false);\n // Needed to follow Dart's subscription semantic, until fix of\n // https://code.google.com/p/dart/issues/detail?id=17406\n return () => { el.removeEventListener(evt, listener, false); };\n }\n dispatchEvent(el: Node, evt: any) { el.dispatchEvent(evt); }\n createMouseEvent(eventType: string): MouseEvent {\n const evt: MouseEvent = this.getDefaultDocument().createEvent('MouseEvent');\n evt.initEvent(eventType, true, true);\n return evt;\n }\n createEvent(eventType: any): Event {\n const evt: Event = this.getDefaultDocument().createEvent('Event');\n evt.initEvent(eventType, true, true);\n return evt;\n }\n preventDefault(evt: Event) {\n evt.preventDefault();\n evt.returnValue = false;\n }\n isPrevented(evt: Event): boolean {\n return evt.defaultPrevented || evt.returnValue != null && !evt.returnValue;\n }\n getInnerHTML(el: HTMLElement): string { return el.innerHTML; }\n getTemplateContent(el: Node): Node|null {\n return 'content' in el && this.isTemplateElement(el) ? (<any>el).content : null;\n }\n getOuterHTML(el: HTMLElement): string { return el.outerHTML; }\n nodeName(node: Node): string { return node.nodeName; }\n nodeValue(node: Node): string|null { return node.nodeValue; }\n type(node: HTMLInputElement): string { return node.type; }\n content(node: Node): Node {\n if (this.hasProperty(node, 'content')) {\n return (<any>node).content;\n } else {\n return node;\n }\n }\n firstChild(el: Node): Node|null { return el.firstChild; }\n nextSibling(el: Node): Node|null { return el.nextSibling; }\n parentElement(el: Node): Node|null { return el.parentNode; }\n childNodes(el: any): Node[] { return el.childNodes; }\n childNodesAsList(el: Node): any[] {\n const childNodes = el.childNodes;\n const res = new Array(childNodes.length);\n for (let i = 0; i < childNodes.length; i++) {\n res[i] = childNodes[i];\n }\n return res;\n }\n clearNodes(el: Node) {\n while (el.firstChild) {\n el.removeChild(el.firstChild);\n }\n }\n appendChild(el: Node, node: Node) { el.appendChild(node); }\n removeChild(el: Node, node: Node) { el.removeChild(node); }\n replaceChild(el: Node, newChild: Node, oldChild: Node) { el.replaceChild(newChild, oldChild); }\n remove(node: Node): Node {\n if (node.parentNode) {\n node.parentNode.removeChild(node);\n }\n return node;\n }\n insertBefore(parent: Node, ref: Node, node: Node) { parent.insertBefore(node, ref); }\n insertAllBefore(parent: Node, ref: Node, nodes: Node[]) {\n nodes.forEach((n: any) => parent.insertBefore(n, ref));\n }\n insertAfter(parent: Node, ref: Node, node: any) { parent.insertBefore(node, ref.nextSibling); }\n setInnerHTML(el: Element, value: string) { el.innerHTML = value; }\n getText(el: Node): string|null { return el.textContent; }\n setText(el: Node, value: string) { el.textContent = value; }\n getValue(el: any): string { return el.value; }\n setValue(el: any, value: string) { el.value = value; }\n getChecked(el: any): boolean { return el.checked; }\n setChecked(el: any, value: boolean) { el.checked = value; }\n createComment(text: string): Comment { return this.getDefaultDocument().createComment(text); }\n createTemplate(html: any): HTMLElement {\n const t = this.getDefaultDocument().createElement('template');\n t.innerHTML = html;\n return t;\n }\n createElement(tagName: string, doc?: Document): HTMLElement {\n doc = doc || this.getDefaultDocument();\n return doc.createElement(tagName);\n }\n createElementNS(ns: string, tagName: string, doc?: Document): Element {\n doc = doc || this.getDefaultDocument();\n return doc.createElementNS(ns, tagName);\n }\n createTextNode(text: string, doc?: Document): Text {\n doc = doc || this.getDefaultDocument();\n return doc.createTextNode(text);\n }\n createScriptTag(attrName: string, attrValue: string, doc?: Document): HTMLScriptElement {\n doc = doc || this.getDefaultDocument();\n const el = <HTMLScriptElement>doc.createElement('SCRIPT');\n el.setAttribute(attrName, attrValue);\n return el;\n }\n createStyleElement(css: string, doc?: Document): HTMLStyleElement {\n doc = doc || this.getDefaultDocument();\n const style = <HTMLStyleElement>doc.createElement('style');\n this.appendChild(style, this.createTextNode(css, doc));\n return style;\n }\n createShadowRoot(el: HTMLElement): DocumentFragment { return (<any>el).createShadowRoot(); }\n getShadowRoot(el: HTMLElement): DocumentFragment { return (<any>el).shadowRoot; }\n getHost(el: HTMLElement): HTMLElement { return (<any>el).host; }\n clone(node: Node): Node { return node.cloneNode(true); }\n getElementsByClassName(element: any, name: string): HTMLElement[] {\n return element.getElementsByClassName(name);\n }\n getElementsByTagName(element: any, name: string): HTMLElement[] {\n return element.getElementsByTagName(name);\n }\n classList(element: any): any[] { return Array.prototype.slice.call(element.classList, 0); }\n addClass(element: any, className: string) { element.classList.add(className); }\n removeClass(element: any, className: string) { element.classList.remove(className); }\n hasClass(element: any, className: string): boolean {\n return element.classList.contains(className);\n }\n setStyle(element: any, styleName: string, styleValue: string) {\n element.style[styleName] = styleValue;\n }\n removeStyle(element: any, stylename: string) {\n // IE requires '' instead of null\n // see https://github.com/angular/angular/issues/7916\n element.style[stylename] = '';\n }\n getStyle(element: any, stylename: string): string { return element.style[stylename]; }\n hasStyle(element: any, styleName: string, styleValue?: string|null): boolean {\n const value = this.getStyle(element, styleName) || '';\n return styleValue ? value == styleValue : value.length > 0;\n }\n tagName(element: any): string { return element.tagName; }\n attributeMap(element: any): Map<string, string> {\n const res = new Map<string, string>();\n const elAttrs = element.attributes;\n for (let i = 0; i < elAttrs.length; i++) {\n const attrib = elAttrs.item(i);\n res.set(attrib.name, attrib.value);\n }\n return res;\n }\n hasAttribute(element: Element, attribute: string): boolean {\n return element.hasAttribute(attribute);\n }\n hasAttributeNS(element: Element, ns: string, attribute: string): boolean {\n return element.hasAttributeNS(ns, attribute);\n }\n getAttribute(element: Element, attribute: string): string|null {\n return element.getAttribute(attribute);\n }\n getAttributeNS(element: Element, ns: string, name: string): string|null {\n return element.getAttributeNS(ns, name);\n }\n setAttribute(element: Element, name: string, value: string) { element.setAttribute(name, value); }\n setAttributeNS(element: Element, ns: string, name: string, value: string) {\n element.setAttributeNS(ns, name, value);\n }\n removeAttribute(element: Element, attribute: string) { element.removeAttribute(attribute); }\n removeAttributeNS(element: Element, ns: string, name: string) {\n element.removeAttributeNS(ns, name);\n }\n templateAwareRoot(el: Node): any { return this.isTemplateElement(el) ? this.content(el) : el; }\n createHtmlDocument(): HTMLDocument {\n return document.implementation.createHTMLDocument('fakeTitle');\n }\n getDefaultDocument(): Document { return document; }\n getBoundingClientRect(el: Element): any {\n try {\n return el.getBoundingClientRect();\n } catch {\n return {top: 0, bottom: 0, left: 0, right: 0, width: 0, height: 0};\n }\n }\n getTitle(doc: Document): string { return doc.title; }\n setTitle(doc: Document, newTitle: string) { doc.title = newTitle || ''; }\n elementMatches(n: any, selector: string): boolean {\n if (this.isElementNode(n)) {\n return n.matches && n.matches(selector) ||\n n.msMatchesSelector && n.msMatchesSelector(selector) ||\n n.webkitMatchesSelector && n.webkitMatchesSelector(selector);\n }\n\n return false;\n }\n isTemplateElement(el: Node): boolean {\n return this.isElementNode(el) && el.nodeName === 'TEMPLATE';\n }\n isTextNode(node: Node): boolean { return node.nodeType === Node.TEXT_NODE; }\n isCommentNode(node: Node): boolean { return node.nodeType === Node.COMMENT_NODE; }\n isElementNode(node: Node): boolean { return node.nodeType === Node.ELEMENT_NODE; }\n hasShadowRoot(node: any): boolean {\n return node.shadowRoot != null && node instanceof HTMLElement;\n }\n isShadowRoot(node: any): boolean { return node instanceof DocumentFragment; }\n importIntoDoc(node: Node): any { return document.importNode(this.templateAwareRoot(node), true); }\n adoptNode(node: Node): any { return document.adoptNode(node); }\n getHref(el: Element): string { return el.getAttribute('href') !; }\n\n getEventKey(event: any): string {\n let key = event.key;\n if (key == null) {\n key = event.keyIdentifier;\n // keyIdentifier is defined in the old draft of DOM Level 3 Events implemented by Chrome and\n // Safari cf\n // http://www.w3.org/TR/2007/WD-DOM-Level-3-Events-20071221/events.html#Events-KeyboardEvents-Interfaces\n if (key == null) {\n return 'Unidentified';\n }\n if (key.startsWith('U+')) {\n key = String.fromCharCode(parseInt(key.substring(2), 16));\n if (event.location === DOM_KEY_LOCATION_NUMPAD && _chromeNumKeyPadMap.hasOwnProperty(key)) {\n // There is a bug in Chrome for numeric keypad keys:\n // https://code.google.com/p/chromium/issues/detail?id=155654\n // 1, 2, 3 ... are reported as A, B, C ...\n key = (_chromeNumKeyPadMap as any)[key];\n }\n }\n }\n\n return _keyMap[key] || key;\n }\n getGlobalEventTarget(doc: Document, target: string): EventTarget|null {\n if (target === 'window') {\n return window;\n }\n if (target === 'document') {\n return doc;\n }\n if (target === 'body') {\n return doc.body;\n }\n return null;\n }\n getHistory(): History { return window.history; }\n getLocation(): Location { return window.location; }\n getBaseHref(doc: Document): string|null {\n const href = getBaseElementHref();\n return href == null ? null : relativePath(href);\n }\n resetBaseElement(): void { baseElement = null; }\n getUserAgent(): string { return window.navigator.userAgent; }\n setData(element: Element, name: string, value: string) {\n this.setAttribute(element, 'data-' + name, value);\n }\n getData(element: Element, name: string): string|null {\n return this.getAttribute(element, 'data-' + name);\n }\n getComputedStyle(element: any): any { return getComputedStyle(element); }\n // TODO(tbosch): move this into a separate environment class once we have it\n supportsWebAnimation(): boolean {\n return typeof(<any>Element).prototype['animate'] === 'function';\n }\n performanceNow(): number {\n // performance.now() is not available in all browsers, see\n // http://caniuse.com/#search=performance.now\n return window.performance && window.performance.now ? window.performance.now() :\n new Date().getTime();\n }\n\n supportsCookies(): boolean { return true; }\n\n getCookie(name: string): string|null { return parseCookieValue(document.cookie, name); }\n\n setCookie(name: string, value: string) {\n // document.cookie is magical, assigning into it assigns/overrides one cookie value, but does\n // not clear other cookies.\n document.cookie = encodeURIComponent(name) + '=' + encodeURIComponent(value);\n }\n}\n\nlet baseElement: HTMLElement|null = null;\nfunction getBaseElementHref(): string|null {\n if (!baseElement) {\n baseElement = document.querySelector('base') !;\n if (!baseElement) {\n return null;\n }\n }\n return baseElement.getAttribute('href');\n}\n\n// based on urlUtils.js in AngularJS 1\nlet urlParsingNode: any;\nfunction relativePath(url: any): string {\n if (!urlParsingNode) {\n urlParsingNode = document.createElement('a');\n }\n urlParsingNode.setAttribute('href', url);\n return (urlParsingNode.pathname.charAt(0) === '/') ? urlParsingNode.pathname :\n '/' + urlParsingNode.pathname;\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {DOCUMENT as commonDOCUMENT} from '@angular/common';\nimport {InjectionToken} from '@angular/core';\n\n\n/**\n * A DI Token representing the main rendering context. In a browser this is the DOM Document.\n *\n * Note: Document might not be available in the Application Context when Application and Rendering\n * Contexts are not the same (e.g. when running the application into a Web Worker).\n *\n * @deprecated import from `@angular/common` instead.\n * @publicApi\n */\nexport const DOCUMENT = commonDOCUMENT;\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nexport function supportsState(): boolean {\n return !!window.history.pushState;\n}","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {LocationChangeListener, PlatformLocation} from '@angular/common';\nimport {Inject, Injectable} from '@angular/core';\n\nimport {getDOM} from '../../dom/dom_adapter';\nimport {DOCUMENT} from '../../dom/dom_tokens';\n\nimport {supportsState} from './history';\n\n\n\n/**\n * `PlatformLocation` encapsulates all of the direct calls to platform APIs.\n * This class should not be used directly by an application developer. Instead, use\n * {@link Location}.\n */\n@Injectable()\nexport class BrowserPlatformLocation extends PlatformLocation {\n // TODO(issue/24571): remove '!'.\n public readonly location !: Location;\n // TODO(issue/24571): remove '!'.\n private _history !: History;\n\n constructor(@Inject(DOCUMENT) private _doc: any) {\n super();\n this._init();\n }\n\n // This is moved to its own method so that `MockPlatformLocationStrategy` can overwrite it\n /** @internal */\n _init() {\n (this as{location: Location}).location = getDOM().getLocation();\n this._history = getDOM().getHistory();\n }\n\n getBaseHrefFromDOM(): string { return getDOM().getBaseHref(this._doc) !; }\n\n onPopState(fn: LocationChangeListener): void {\n getDOM().getGlobalEventTarget(this._doc, 'window').addEventListener('popstate', fn, false);\n }\n\n onHashChange(fn: LocationChangeListener): void {\n getDOM().getGlobalEventTarget(this._doc, 'window').addEventListener('hashchange', fn, false);\n }\n\n get pathname(): string { return this.location.pathname; }\n get search(): string { return this.location.search; }\n get hash(): string { return this.location.hash; }\n set pathname(newPath: string) { this.location.pathname = newPath; }\n\n pushState(state: any, title: string, url: string): void {\n if (supportsState()) {\n this._history.pushState(state, title, url);\n } else {\n this.location.hash = url;\n }\n }\n\n replaceState(state: any, title: string, url: string): void {\n if (supportsState()) {\n this._history.replaceState(state, title, url);\n } else {\n this.location.hash = url;\n }\n }\n\n forward(): void { this._history.forward(); }\n\n back(): void { this._history.back(); }\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {APP_INITIALIZER, ApplicationInitStatus, Inject, InjectionToken, Injector, StaticProvider} from '@angular/core';\n\nimport {getDOM} from '../dom/dom_adapter';\nimport {DOCUMENT} from '../dom/dom_tokens';\n\n/**\n * An id that identifies a particular application being bootstrapped, that should\n * match across the client/server boundary.\n */\nexport const TRANSITION_ID = new InjectionToken('TRANSITION_ID');\n\nexport function appInitializerFactory(transitionId: string, document: any, injector: Injector) {\n return () => {\n // Wait for all application initializers to be completed before removing the styles set by\n // the server.\n injector.get(ApplicationInitStatus).donePromise.then(() => {\n const dom = getDOM();\n const styles: any[] =\n Array.prototype.slice.apply(dom.querySelectorAll(document, `style[ng-transition]`));\n styles.filter(el => dom.getAttribute(el, 'ng-transition') === transitionId)\n .forEach(el => dom.remove(el));\n });\n };\n}\n\nexport const SERVER_TRANSITION_PROVIDERS: StaticProvider[] = [\n {\n provide: APP_INITIALIZER,\n useFactory: appInitializerFactory,\n deps: [TRANSITION_ID, DOCUMENT, Injector],\n multi: true\n },\n];\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {GetTestability, Testability, TestabilityRegistry, setTestabilityGetter, ɵglobal as global} from '@angular/core';\n\nimport {getDOM} from '../dom/dom_adapter';\n\nexport class BrowserGetTestability implements GetTestability {\n static init() { setTestabilityGetter(new BrowserGetTestability()); }\n\n addToWindow(registry: TestabilityRegistry): void {\n global['getAngularTestability'] = (elem: any, findInAncestors: boolean = true) => {\n const testability = registry.findTestabilityInTree(elem, findInAncestors);\n if (testability == null) {\n throw new Error('Could not find testability for element.');\n }\n return testability;\n };\n\n global['getAllAngularTestabilities'] = () => registry.getAllTestabilities();\n\n global['getAllAngularRootElements'] = () => registry.getAllRootElements();\n\n const whenAllStable = (callback: any /** TODO #9100 */) => {\n const testabilities = global['getAllAngularTestabilities']();\n let count = testabilities.length;\n let didWork = false;\n const decrement = function(didWork_: any /** TODO #9100 */) {\n didWork = didWork || didWork_;\n count--;\n if (count == 0) {\n callback(didWork);\n }\n };\n testabilities.forEach(function(testability: any /** TODO #9100 */) {\n testability.whenStable(decrement);\n });\n };\n\n if (!global['frameworkStabilizers']) {\n global['frameworkStabilizers'] = [];\n }\n global['frameworkStabilizers'].push(whenAllStable);\n }\n\n findTestabilityInTree(registry: TestabilityRegistry, elem: any, findInAncestors: boolean):\n Testability|null {\n if (elem == null) {\n return null;\n }\n const t = registry.getTestability(elem);\n if (t != null) {\n return t;\n } else if (!findInAncestors) {\n return null;\n }\n if (getDOM().isShadowRoot(elem)) {\n return this.findTestabilityInTree(registry, getDOM().getHost(elem), true);\n }\n return this.findTestabilityInTree(registry, getDOM().parentElement(elem), true);\n }\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {ɵglobal as global} from '@angular/core';\n\nconst CAMEL_CASE_REGEXP = /([A-Z])/g;\nconst DASH_CASE_REGEXP = /-([a-z])/g;\n\n\nexport function camelCaseToDashCase(input: string): string {\n return input.replace(CAMEL_CASE_REGEXP, (...m: string[]) => '-' + m[1].toLowerCase());\n}\n\nexport function dashCaseToCamelCase(input: string): string {\n return input.replace(DASH_CASE_REGEXP, (...m: string[]) => m[1].toUpperCase());\n}\n\n/**\n * Exports the value under a given `name` in the global property `ng`. For example `ng.probe` if\n * `name` is `'probe'`.\n * @param name Name under which it will be exported. Keep in mind this will be a property of the\n * global `ng` object.\n * @param value The value to export.\n */\nexport function exportNgVar(name: string, value: any): void {\n if (typeof COMPILED === 'undefined' || !COMPILED) {\n // Note: we can't export `ng` when using closure enhanced optimization as:\n // - closure declares globals itself for minified names, which sometimes clobber our `ng` global\n // - we can't declare a closure extern as the namespace `ng` is already used within Google\n // for typings for angularJS (via `goog.provide('ng....')`).\n const ng = global['ng'] = (global['ng'] as{[key: string]: any} | undefined) || {};\n ng[name] = value;\n }\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport * as core from '@angular/core';\nimport {exportNgVar} from '../util';\n\nconst CORE_TOKENS = {\n 'ApplicationRef': core.ApplicationRef,\n 'NgZone': core.NgZone,\n};\n\nconst INSPECT_GLOBAL_NAME = 'probe';\nconst CORE_TOKENS_GLOBAL_NAME = 'coreTokens';\n\n/**\n * Returns a {@link DebugElement} for the given native DOM element, or\n * null if the given native element does not have an Angular view associated\n * with it.\n */\nexport function inspectNativeElement(element: any): core.DebugNode|null {\n return core.getDebugNode(element);\n}\n\nexport function _createNgProbe(coreTokens: core.NgProbeToken[]): any {\n exportNgVar(INSPECT_GLOBAL_NAME, inspectNativeElement);\n exportNgVar(CORE_TOKENS_GLOBAL_NAME, {...CORE_TOKENS, ..._ngProbeTokensToMap(coreTokens || [])});\n return () => inspectNativeElement;\n}\n\nfunction _ngProbeTokensToMap(tokens: core.NgProbeToken[]): {[name: string]: any} {\n return tokens.reduce((prev: any, t: any) => (prev[t.name] = t.token, prev), {});\n}\n\n/**\n * Providers which support debugging Angular applications (e.g. via `ng.probe`).\n */\nexport const ELEMENT_PROBE_PROVIDERS: core.Provider[] = [\n {\n provide: core.APP_INITIALIZER,\n useFactory: _createNgProbe,\n deps: [\n [core.NgProbeToken, new core.Optional()],\n ],\n multi: true,\n },\n];\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Inject, Injectable, InjectionToken, NgZone} from '@angular/core';\n\nimport {getDOM} from '../dom_adapter';\n\n/**\n * The injection token for the event-manager plug-in service.\n *\n * @publicApi\n */\nexport const EVENT_MANAGER_PLUGINS =\n new InjectionToken<EventManagerPlugin[]>('EventManagerPlugins');\n\n/**\n * An injectable service that provides event management for Angular\n * through a browser plug-in.\n *\n * @publicApi\n */\n@Injectable()\nexport class EventManager {\n private _plugins: EventManagerPlugin[];\n private _eventNameToPlugin = new Map<string, EventManagerPlugin>();\n\n /**\n * Initializes an instance of the event-manager service.\n */\n constructor(@Inject(EVENT_MANAGER_PLUGINS) plugins: EventManagerPlugin[], private _zone: NgZone) {\n plugins.forEach(p => p.manager = this);\n this._plugins = plugins.slice().reverse();\n }\n\n /**\n * Registers a handler for a specific element and event.\n *\n * @param element The HTML element to receive event notifications.\n * @param eventName The name of the event to listen for.\n * @param handler A function to call when the notification occurs. Receives the\n * event object as an argument.\n * @returns A callback function that can be used to remove the handler.\n */\n addEventListener(element: HTMLElement, eventName: string, handler: Function): Function {\n const plugin = this._findPluginFor(eventName);\n return plugin.addEventListener(element, eventName, handler);\n }\n\n /**\n * Registers a global handler for an event in a target view.\n *\n * @param target A target for global event notifications. One of \"window\", \"document\", or \"body\".\n * @param eventName The name of the event to listen for.\n * @param handler A function to call when the notification occurs. Receives the\n * event object as an argument.\n * @returns A callback function that can be used to remove the handler.\n */\n addGlobalEventListener(target: string, eventName: string, handler: Function): Function {\n const plugin = this._findPluginFor(eventName);\n return plugin.addGlobalEventListener(target, eventName, handler);\n }\n\n /**\n * Retrieves the compilation zone in which event listeners are registered.\n */\n getZone(): NgZone { return this._zone; }\n\n /** @internal */\n _findPluginFor(eventName: string): EventManagerPlugin {\n const plugin = this._eventNameToPlugin.get(eventName);\n if (plugin) {\n return plugin;\n }\n\n const plugins = this._plugins;\n for (let i = 0; i < plugins.length; i++) {\n const plugin = plugins[i];\n if (plugin.supports(eventName)) {\n this._eventNameToPlugin.set(eventName, plugin);\n return plugin;\n }\n }\n throw new Error(`No event manager plugin found for event ${eventName}`);\n }\n}\n\nexport abstract class EventManagerPlugin {\n constructor(private _doc: any) {}\n\n // TODO(issue/24571): remove '!'.\n manager !: EventManager;\n\n abstract supports(eventName: string): boolean;\n\n abstract addEventListener(element: HTMLElement, eventName: string, handler: Function): Function;\n\n addGlobalEventListener(element: string, eventName: string, handler: Function): Function {\n const target: HTMLElement = getDOM().getGlobalEventTarget(this._doc, element);\n if (!target) {\n throw new Error(`Unsupported event target ${target} for event ${eventName}`);\n }\n return this.addEventListener(target, eventName, handler);\n }\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Inject, Injectable, OnDestroy} from '@angular/core';\nimport {getDOM} from './dom_adapter';\nimport {DOCUMENT} from './dom_tokens';\n\n@Injectable()\nexport class SharedStylesHost {\n /** @internal */\n protected _stylesSet = new Set<string>();\n\n addStyles(styles: string[]): void {\n const additions = new Set<string>();\n styles.forEach(style => {\n if (!this._stylesSet.has(style)) {\n this._stylesSet.add(style);\n additions.add(style);\n }\n });\n this.onStylesAdded(additions);\n }\n\n onStylesAdded(additions: Set<string>): void {}\n\n getAllStyles(): string[] { return Array.from(this._stylesSet); }\n}\n\n@Injectable()\nexport class DomSharedStylesHost extends SharedStylesHost implements OnDestroy {\n private _hostNodes = new Set<Node>();\n private _styleNodes = new Set<Node>();\n constructor(@Inject(DOCUMENT) private _doc: any) {\n super();\n this._hostNodes.add(_doc.head);\n }\n\n private _addStylesToHost(styles: Set<string>, host: Node): void {\n styles.forEach((style: string) => {\n const styleEl = this._doc.createElement('style');\n styleEl.textContent = style;\n this._styleNodes.add(host.appendChild(styleEl));\n });\n }\n\n addHost(hostNode: Node): void {\n this._addStylesToHost(this._stylesSet, hostNode);\n this._hostNodes.add(hostNode);\n }\n\n removeHost(hostNode: Node): void { this._hostNodes.delete(hostNode); }\n\n onStylesAdded(additions: Set<string>): void {\n this._hostNodes.forEach(hostNode => this._addStylesToHost(additions, hostNode));\n }\n\n ngOnDestroy(): void { this._styleNodes.forEach(styleNode => getDOM().remove(styleNode)); }\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Injectable, Renderer2, RendererFactory2, RendererStyleFlags2, RendererType2, ViewEncapsulation} from '@angular/core';\n\nimport {EventManager} from './events/event_manager';\nimport {DomSharedStylesHost} from './shared_styles_host';\n\nexport const NAMESPACE_URIS: {[ns: string]: string} = {\n 'svg': 'http://www.w3.org/2000/svg',\n 'xhtml': 'http://www.w3.org/1999/xhtml',\n 'xlink': 'http://www.w3.org/1999/xlink',\n 'xml': 'http://www.w3.org/XML/1998/namespace',\n 'xmlns': 'http://www.w3.org/2000/xmlns/',\n};\n\nconst COMPONENT_REGEX = /%COMP%/g;\nexport const COMPONENT_VARIABLE = '%COMP%';\nexport const HOST_ATTR = `_nghost-${COMPONENT_VARIABLE}`;\nexport const CONTENT_ATTR = `_ngcontent-${COMPONENT_VARIABLE}`;\n\nexport function shimContentAttribute(componentShortId: string): string {\n return CONTENT_ATTR.replace(COMPONENT_REGEX, componentShortId);\n}\n\nexport function shimHostAttribute(componentShortId: string): string {\n return HOST_ATTR.replace(COMPONENT_REGEX, componentShortId);\n}\n\nexport function flattenStyles(\n compId: string, styles: Array<any|any[]>, target: string[]): string[] {\n for (let i = 0; i < styles.length; i++) {\n let style = styles[i];\n\n if (Array.isArray(style)) {\n flattenStyles(compId, style, target);\n } else {\n style = style.replace(COMPONENT_REGEX, compId);\n target.push(style);\n }\n }\n return target;\n}\n\nfunction decoratePreventDefault(eventHandler: Function): Function {\n return (event: any) => {\n const allowDefaultBehavior = eventHandler(event);\n if (allowDefaultBehavior === false) {\n // TODO(tbosch): move preventDefault into event plugins...\n event.preventDefault();\n event.returnValue = false;\n }\n };\n}\n\n@Injectable()\nexport class DomRendererFactory2 implements RendererFactory2 {\n private rendererByCompId = new Map<string, Renderer2>();\n private defaultRenderer: Renderer2;\n\n constructor(private eventManager: EventManager, private sharedStylesHost: DomSharedStylesHost) {\n this.defaultRenderer = new DefaultDomRenderer2(eventManager);\n }\n\n createRenderer(element: any, type: RendererType2|null): Renderer2 {\n if (!element || !type) {\n return this.defaultRenderer;\n }\n switch (type.encapsulation) {\n case ViewEncapsulation.Emulated: {\n let renderer = this.rendererByCompId.get(type.id);\n if (!renderer) {\n renderer =\n new EmulatedEncapsulationDomRenderer2(this.eventManager, this.sharedStylesHost, type);\n this.rendererByCompId.set(type.id, renderer);\n }\n (<EmulatedEncapsulationDomRenderer2>renderer).applyToHost(element);\n return renderer;\n }\n case ViewEncapsulation.Native:\n case ViewEncapsulation.ShadowDom:\n return new ShadowDomRenderer(this.eventManager, this.sharedStylesHost, element, type);\n default: {\n if (!this.rendererByCompId.has(type.id)) {\n const styles = flattenStyles(type.id, type.styles, []);\n this.sharedStylesHost.addStyles(styles);\n this.rendererByCompId.set(type.id, this.defaultRenderer);\n }\n return this.defaultRenderer;\n }\n }\n }\n\n begin() {}\n end() {}\n}\n\nclass DefaultDomRenderer2 implements Renderer2 {\n data: {[key: string]: any} = Object.create(null);\n\n constructor(private eventManager: EventManager) {}\n\n destroy(): void {}\n\n destroyNode: null;\n\n createElement(name: string, namespace?: string): any {\n if (namespace) {\n return document.createElementNS(NAMESPACE_URIS[namespace], name);\n }\n\n return document.createElement(name);\n }\n\n createComment(value: string): any { return document.createComment(value); }\n\n createText(value: string): any { return document.createTextNode(value); }\n\n appendChild(parent: any, newChild: any): void { parent.appendChild(newChild); }\n\n insertBefore(parent: any, newChild: any, refChild: any): void {\n if (parent) {\n parent.insertBefore(newChild, refChild);\n }\n }\n\n removeChild(parent: any, oldChild: any): void {\n if (parent) {\n parent.removeChild(oldChild);\n }\n }\n\n selectRootElement(selectorOrNode: string|any, preserveContent?: boolean): any {\n let el: any = typeof selectorOrNode === 'string' ? document.querySelector(selectorOrNode) :\n selectorOrNode;\n if (!el) {\n throw new Error(`The selector \"${selectorOrNode}\" did not match any elements`);\n }\n if (!preserveContent) {\n el.textContent = '';\n }\n return el;\n }\n\n parentNode(node: any): any { return node.parentNode; }\n\n nextSibling(node: any): any { return node.nextSibling; }\n\n setAttribute(el: any, name: string, value: string, namespace?: string): void {\n if (namespace) {\n name = `${namespace}:${name}`;\n const namespaceUri = NAMESPACE_URIS[namespace];\n if (namespaceUri) {\n el.setAttributeNS(namespaceUri, name, value);\n } else {\n el.setAttribute(name, value);\n }\n } else {\n el.setAttribute(name, value);\n }\n }\n\n removeAttribute(el: any, name: string, namespace?: string): void {\n if (namespace) {\n const namespaceUri = NAMESPACE_URIS[namespace];\n if (namespaceUri) {\n el.removeAttributeNS(namespaceUri, name);\n } else {\n el.removeAttribute(`${namespace}:${name}`);\n }\n } else {\n el.removeAttribute(name);\n }\n }\n\n addClass(el: any, name: string): void { el.classList.add(name); }\n\n removeClass(el: any, name: string): void { el.classList.remove(name); }\n\n setStyle(el: any, style: string, value: any, flags: RendererStyleFlags2): void {\n if (flags & RendererStyleFlags2.DashCase) {\n el.style.setProperty(\n style, value, !!(flags & RendererStyleFlags2.Important) ? 'important' : '');\n } else {\n el.style[style] = value;\n }\n }\n\n removeStyle(el: any, style: string, flags: RendererStyleFlags2): void {\n if (flags & RendererStyleFlags2.DashCase) {\n el.style.removeProperty(style);\n } else {\n // IE requires '' instead of null\n // see https://github.com/angular/angular/issues/7916\n el.style[style] = '';\n }\n }\n\n setProperty(el: any, name: string, value: any): void {\n checkNoSyntheticProp(name, 'property');\n el[name] = value;\n }\n\n setValue(node: any, value: string): void { node.nodeValue = value; }\n\n listen(target: 'window'|'document'|'body'|any, event: string, callback: (event: any) => boolean):\n () => void {\n checkNoSyntheticProp(event, 'listener');\n if (typeof target === 'string') {\n return <() => void>this.eventManager.addGlobalEventListener(\n target, event, decoratePreventDefault(callback));\n }\n return <() => void>this.eventManager.addEventListener(\n target, event, decoratePreventDefault(callback)) as() => void;\n }\n}\n\nconst AT_CHARCODE = '@'.charCodeAt(0);\nfunction checkNoSyntheticProp(name: string, nameKind: string) {\n if (name.charCodeAt(0) === AT_CHARCODE) {\n throw new Error(\n `Found the synthetic ${nameKind} ${name}. Please include either \"BrowserAnimationsModule\" or \"NoopAnimationsModule\" in your application.`);\n }\n}\n\nclass EmulatedEncapsulationDomRenderer2 extends DefaultDomRenderer2 {\n private contentAttr: string;\n private hostAttr: string;\n\n constructor(\n eventManager: EventManager, sharedStylesHost: DomSharedStylesHost,\n private component: RendererType2) {\n super(eventManager);\n const styles = flattenStyles(component.id, component.styles, []);\n sharedStylesHost.addStyles(styles);\n\n this.contentAttr = shimContentAttribute(component.id);\n this.hostAttr = shimHostAttribute(component.id);\n }\n\n applyToHost(element: any) { super.setAttribute(element, this.hostAttr, ''); }\n\n createElement(parent: any, name: string): Element {\n const el = super.createElement(parent, name);\n super.setAttribute(el, this.contentAttr, '');\n return el;\n }\n}\n\nclass ShadowDomRenderer extends DefaultDomRenderer2 {\n private shadowRoot: any;\n\n constructor(\n eventManager: EventManager, private sharedStylesHost: DomSharedStylesHost,\n private hostEl: any, private component: RendererType2) {\n super(eventManager);\n if (component.encapsulation === ViewEncapsulation.ShadowDom) {\n this.shadowRoot = (hostEl as any).attachShadow({mode: 'open'});\n } else {\n this.shadowRoot = (hostEl as any).createShadowRoot();\n }\n this.sharedStylesHost.addHost(this.shadowRoot);\n const styles = flattenStyles(component.id, component.styles, []);\n for (let i = 0; i < styles.length; i++) {\n const styleEl = document.createElement('style');\n styleEl.textContent = styles[i];\n this.shadowRoot.appendChild(styleEl);\n }\n }\n\n private nodeOrShadowRoot(node: any): any { return node === this.hostEl ? this.shadowRoot : node; }\n\n destroy() { this.sharedStylesHost.removeHost(this.shadowRoot); }\n\n appendChild(parent: any, newChild: any): void {\n return super.appendChild(this.nodeOrShadowRoot(parent), newChild);\n }\n insertBefore(parent: any, newChild: any, refChild: any): void {\n return super.insertBefore(this.nodeOrShadowRoot(parent), newChild, refChild);\n }\n removeChild(parent: any, oldChild: any): void {\n return super.removeChild(this.nodeOrShadowRoot(parent), oldChild);\n }\n parentNode(node: any): any {\n return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(node)));\n }\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {isPlatformServer} from '@angular/common';\nimport {Inject, Injectable, NgZone, Optional, PLATFORM_ID} from '@angular/core';\n\n\nimport {DOCUMENT} from '../dom_tokens';\n\nimport {EventManagerPlugin} from './event_manager';\n\n/**\n * Detect if Zone is present. If it is then use simple zone aware 'addEventListener'\n * since Angular can do much more\n * efficient bookkeeping than Zone can, because we have additional information. This speeds up\n * addEventListener by 3x.\n */\nconst __symbol__ =\n (typeof Zone !== 'undefined') && (Zone as any)['__symbol__'] || function(v: string): string {\n return '__zone_symbol__' + v;\n };\nconst ADD_EVENT_LISTENER: 'addEventListener' = __symbol__('addEventListener');\nconst REMOVE_EVENT_LISTENER: 'removeEventListener' = __symbol__('removeEventListener');\n\nconst symbolNames: {[key: string]: string} = {};\n\nconst FALSE = 'FALSE';\nconst ANGULAR = 'ANGULAR';\nconst NATIVE_ADD_LISTENER = 'addEventListener';\nconst NATIVE_REMOVE_LISTENER = 'removeEventListener';\n\n// use the same symbol string which is used in zone.js\nconst stopSymbol = '__zone_symbol__propagationStopped';\nconst stopMethodSymbol = '__zone_symbol__stopImmediatePropagation';\n\nconst blackListedEvents: string[] =\n (typeof Zone !== 'undefined') && (Zone as any)[__symbol__('BLACK_LISTED_EVENTS')];\nlet blackListedMap: {[eventName: string]: string};\nif (blackListedEvents) {\n blackListedMap = {};\n blackListedEvents.forEach(eventName => { blackListedMap[eventName] = eventName; });\n}\n\nconst isBlackListedEvent = function(eventName: string) {\n if (!blackListedMap) {\n return false;\n }\n return blackListedMap.hasOwnProperty(eventName);\n};\n\ninterface TaskData {\n zone: any;\n handler: Function;\n}\n\n// a global listener to handle all dom event,\n// so we do not need to create a closure every time\nconst globalListener = function(event: Event) {\n const symbolName = symbolNames[event.type];\n if (!symbolName) {\n return;\n }\n const taskDatas: TaskData[] = this[symbolName];\n if (!taskDatas) {\n return;\n }\n const args: any = [event];\n if (taskDatas.length === 1) {\n // if taskDatas only have one element, just invoke it\n const taskData = taskDatas[0];\n if (taskData.zone !== Zone.current) {\n // only use Zone.run when Zone.current not equals to stored zone\n return taskData.zone.run(taskData.handler, this, args);\n } else {\n return taskData.handler.apply(this, args);\n }\n } else {\n // copy tasks as a snapshot to avoid event handlers remove\n // itself or others\n const copiedTasks = taskDatas.slice();\n for (let i = 0; i < copiedTasks.length; i++) {\n // if other listener call event.stopImmediatePropagation\n // just break\n if ((event as any)[stopSymbol] === true) {\n break;\n }\n const taskData = copiedTasks[i];\n if (taskData.zone !== Zone.current) {\n // only use Zone.run when Zone.current not equals to stored zone\n taskData.zone.run(taskData.handler, this, args);\n } else {\n taskData.handler.apply(this, args);\n }\n }\n }\n};\n\n@Injectable()\nexport class DomEventsPlugin extends EventManagerPlugin {\n constructor(\n @Inject(DOCUMENT) doc: any, private ngZone: NgZone,\n @Optional() @Inject(PLATFORM_ID) platformId: {}|null) {\n super(doc);\n\n if (!platformId || !isPlatformServer(platformId)) {\n this.patchEvent();\n }\n }\n\n private patchEvent() {\n if (typeof Event === 'undefined' || !Event || !Event.prototype) {\n return;\n }\n if ((Event.prototype as any)[stopMethodSymbol]) {\n // already patched by zone.js\n return;\n }\n const delegate = (Event.prototype as any)[stopMethodSymbol] =\n Event.prototype.stopImmediatePropagation;\n Event.prototype.stopImmediatePropagation = function() {\n if (this) {\n this[stopSymbol] = true;\n }\n\n // should call native delegate in case\n // in some environment part of the application\n // will not use the patched Event\n delegate && delegate.apply(this, arguments);\n };\n }\n\n // This plugin should come last in the list of plugins, because it accepts all\n // events.\n supports(eventName: string): boolean { return true; }\n\n addEventListener(element: HTMLElement, eventName: string, handler: Function): Function {\n /**\n * This code is about to add a listener to the DOM. If Zone.js is present, than\n * `addEventListener` has been patched. The patched code adds overhead in both\n * memory and speed (3x slower) than native. For this reason if we detect that\n * Zone.js is present we use a simple version of zone aware addEventListener instead.\n * The result is faster registration and the zone will be restored.\n * But ZoneSpec.onScheduleTask, ZoneSpec.onInvokeTask, ZoneSpec.onCancelTask\n * will not be invoked\n * We also do manual zone restoration in element.ts renderEventHandlerClosure method.\n *\n * NOTE: it is possible that the element is from different iframe, and so we\n * have to check before we execute the method.\n */\n const self = this;\n const zoneJsLoaded = element[ADD_EVENT_LISTENER];\n let callback: EventListener = handler as EventListener;\n // if zonejs is loaded and current zone is not ngZone\n // we keep Zone.current on target for later restoration.\n if (zoneJsLoaded && (!NgZone.isInAngularZone() || isBlackListedEvent(eventName))) {\n let symbolName = symbolNames[eventName];\n if (!symbolName) {\n symbolName = symbolNames[eventName] = __symbol__(ANGULAR + eventName + FALSE);\n }\n let taskDatas: TaskData[] = (element as any)[symbolName];\n const globalListenerRegistered = taskDatas && taskDatas.length > 0;\n if (!taskDatas) {\n taskDatas = (element as any)[symbolName] = [];\n }\n\n const zone = isBlackListedEvent(eventName) ? Zone.root : Zone.current;\n if (taskDatas.length === 0) {\n taskDatas.push({zone: zone, handler: callback});\n } else {\n let callbackRegistered = false;\n for (let i = 0; i < taskDatas.length; i++) {\n if (taskDatas[i].handler === callback) {\n callbackRegistered = true;\n break;\n }\n }\n if (!callbackRegistered) {\n taskDatas.push({zone: zone, handler: callback});\n }\n }\n\n if (!globalListenerRegistered) {\n element[ADD_EVENT_LISTENER](eventName, globalListener, false);\n }\n } else {\n element[NATIVE_ADD_LISTENER](eventName, callback, false);\n }\n return () => this.removeEventListener(element, eventName, callback);\n }\n\n removeEventListener(target: any, eventName: string, callback: Function): void {\n let underlyingRemove = target[REMOVE_EVENT_LISTENER];\n // zone.js not loaded, use native removeEventListener\n if (!underlyingRemove) {\n return target[NATIVE_REMOVE_LISTENER].apply(target, [eventName, callback, false]);\n }\n let symbolName = symbolNames[eventName];\n let taskDatas: TaskData[] = symbolName && target[symbolName];\n if (!taskDatas) {\n // addEventListener not using patched version\n // just call native removeEventListener\n return target[NATIVE_REMOVE_LISTENER].apply(target, [eventName, callback, false]);\n }\n // fix issue 20532, should be able to remove\n // listener which was added inside of ngZone\n let found = false;\n for (let i = 0; i < taskDatas.length; i++) {\n // remove listener from taskDatas if the callback equals\n if (taskDatas[i].handler === callback) {\n found = true;\n taskDatas.splice(i, 1);\n break;\n }\n }\n if (found) {\n if (taskDatas.length === 0) {\n // all listeners are removed, we can remove the globalListener from target\n underlyingRemove.apply(target, [eventName, globalListener, false]);\n }\n } else {\n // not found in taskDatas, the callback may be added inside of ngZone\n // use native remove listener to remove the callback\n target[NATIVE_REMOVE_LISTENER].apply(target, [eventName, callback, false]);\n }\n }\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Inject, Injectable, InjectionToken, Optional, ɵConsole as Console} from '@angular/core';\n\nimport {DOCUMENT} from '../dom_tokens';\n\nimport {EventManagerPlugin} from './event_manager';\n\n/**\n * Supported HammerJS recognizer event names.\n */\nconst EVENT_NAMES = {\n // pan\n 'pan': true,\n 'panstart': true,\n 'panmove': true,\n 'panend': true,\n 'pancancel': true,\n 'panleft': true,\n 'panright': true,\n 'panup': true,\n 'pandown': true,\n // pinch\n 'pinch': true,\n 'pinchstart': true,\n 'pinchmove': true,\n 'pinchend': true,\n 'pinchcancel': true,\n 'pinchin': true,\n 'pinchout': true,\n // press\n 'press': true,\n 'pressup': true,\n // rotate\n 'rotate': true,\n 'rotatestart': true,\n 'rotatemove': true,\n 'rotateend': true,\n 'rotatecancel': true,\n // swipe\n 'swipe': true,\n 'swipeleft': true,\n 'swiperight': true,\n 'swipeup': true,\n 'swipedown': true,\n // tap\n 'tap': true,\n};\n\n/**\n * DI token for providing [HammerJS](http://hammerjs.github.io/) support to Angular.\n * @see `HammerGestureConfig`\n *\n * @publicApi\n */\nexport const HAMMER_GESTURE_CONFIG = new InjectionToken<HammerGestureConfig>('HammerGestureConfig');\n\n\n/**\n * Function that loads HammerJS, returning a promise that is resolved once HammerJs is loaded.\n *\n * @publicApi\n */\nexport type HammerLoader = () => Promise<void>;\n\n/**\n * Injection token used to provide a {@link HammerLoader} to Angular.\n *\n * @publicApi\n */\nexport const HAMMER_LOADER = new InjectionToken<HammerLoader>('HammerLoader');\n\nexport interface HammerInstance {\n on(eventName: string, callback?: Function): void;\n off(eventName: string, callback?: Function): void;\n destroy?(): void;\n}\n\n/**\n * An injectable [HammerJS Manager](http://hammerjs.github.io/api/#hammer.manager)\n * for gesture recognition. Configures specific event recognition.\n * @publicApi\n */\n@Injectable()\nexport class HammerGestureConfig {\n /**\n * A set of supported event names for gestures to be used in Angular.\n * Angular supports all built-in recognizers, as listed in\n * [HammerJS documentation](http://hammerjs.github.io/).\n */\n events: string[] = [];\n\n /**\n * Maps gesture event names to a set of configuration options\n * that specify overrides to the default values for specific properties.\n *\n * The key is a supported event name to be configured,\n * and the options object contains a set of properties, with override values\n * to be applied to the named recognizer event.\n * For example, to disable recognition of the rotate event, specify\n * `{\"rotate\": {\"enable\": false}}`.\n *\n * Properties that are not present take the HammerJS default values.\n * For information about which properties are supported for which events,\n * and their allowed and default values, see\n * [HammerJS documentation](http://hammerjs.github.io/).\n *\n */\n overrides: {[key: string]: Object} = {};\n\n /**\n * Properties whose default values can be overridden for a given event.\n * Different sets of properties apply to different events.\n * For information about which properties are supported for which events,\n * and their allowed and default values, see\n * [HammerJS documentation](http://hammerjs.github.io/).\n */\n options?: {\n cssProps?: any; domEvents?: boolean; enable?: boolean | ((manager: any) => boolean);\n preset?: any[];\n touchAction?: string;\n recognizers?: any[];\n inputClass?: any;\n inputTarget?: EventTarget;\n };\n\n /**\n * Creates a [HammerJS Manager](http://hammerjs.github.io/api/#hammer.manager)\n * and attaches it to a given HTML element.\n * @param element The element that will recognize gestures.\n * @returns A HammerJS event-manager object.\n */\n buildHammer(element: HTMLElement): HammerInstance {\n const mc = new Hammer !(element, this.options);\n\n mc.get('pinch').set({enable: true});\n mc.get('rotate').set({enable: true});\n\n for (const eventName in this.overrides) {\n mc.get(eventName).set(this.overrides[eventName]);\n }\n\n return mc;\n }\n}\n\n@Injectable()\nexport class HammerGesturesPlugin extends EventManagerPlugin {\n constructor(\n @Inject(DOCUMENT) doc: any,\n @Inject(HAMMER_GESTURE_CONFIG) private _config: HammerGestureConfig, private console: Console,\n @Optional() @Inject(HAMMER_LOADER) private loader?: HammerLoader|null) {\n super(doc);\n }\n\n supports(eventName: string): boolean {\n if (!EVENT_NAMES.hasOwnProperty(eventName.toLowerCase()) && !this.isCustomEvent(eventName)) {\n return false;\n }\n\n if (!(window as any).Hammer && !this.loader) {\n this.console.warn(\n `The \"${eventName}\" event cannot be bound because Hammer.JS is not ` +\n `loaded and no custom loader has been specified.`);\n return false;\n }\n\n return true;\n }\n\n addEventListener(element: HTMLElement, eventName: string, handler: Function): Function {\n const zone = this.manager.getZone();\n eventName = eventName.toLowerCase();\n\n // If Hammer is not present but a loader is specified, we defer adding the event listener\n // until Hammer is loaded.\n if (!(window as any).Hammer && this.loader) {\n // This `addEventListener` method returns a function to remove the added listener.\n // Until Hammer is loaded, the returned function needs to *cancel* the registration rather\n // than remove anything.\n let cancelRegistration = false;\n let deregister: Function = () => { cancelRegistration = true; };\n\n this.loader()\n .then(() => {\n // If Hammer isn't actually loaded when the custom loader resolves, give up.\n if (!(window as any).Hammer) {\n this.console.warn(\n `The custom HAMMER_LOADER completed, but Hammer.JS is not present.`);\n deregister = () => {};\n return;\n }\n\n if (!cancelRegistration) {\n // Now that Hammer is loaded and the listener is being loaded for real,\n // the deregistration function changes from canceling registration to removal.\n deregister = this.addEventListener(element, eventName, handler);\n }\n })\n .catch(() => {\n this.console.warn(\n `The \"${eventName}\" event cannot be bound because the custom ` +\n `Hammer.JS loader failed.`);\n deregister = () => {};\n });\n\n // Return a function that *executes* `deregister` (and not `deregister` itself) so that we\n // can change the behavior of `deregister` once the listener is added. Using a closure in\n // this way allows us to avoid any additional data structures to track listener removal.\n return () => { deregister(); };\n }\n\n return zone.runOutsideAngular(() => {\n // Creating the manager bind events, must be done outside of angular\n const mc = this._config.buildHammer(element);\n const callback = function(eventObj: HammerInput) {\n zone.runGuarded(function() { handler(eventObj); });\n };\n mc.on(eventName, callback);\n return () => {\n mc.off(eventName, callback);\n // destroy mc to prevent memory leak\n if (typeof mc.destroy === 'function') {\n mc.destroy();\n }\n };\n });\n }\n\n isCustomEvent(eventName: string): boolean { return this._config.events.indexOf(eventName) > -1; }\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Inject, Injectable, NgZone} from '@angular/core';\n\nimport {getDOM} from '../dom_adapter';\nimport {DOCUMENT} from '../dom_tokens';\n\nimport {EventManagerPlugin} from './event_manager';\n\n/**\n * Defines supported modifiers for key events.\n */\nconst MODIFIER_KEYS = ['alt', 'control', 'meta', 'shift'];\n\n/**\n * Retrieves modifiers from key-event objects.\n */\nconst MODIFIER_KEY_GETTERS: {[key: string]: (event: KeyboardEvent) => boolean} = {\n 'alt': (event: KeyboardEvent) => event.altKey,\n 'control': (event: KeyboardEvent) => event.ctrlKey,\n 'meta': (event: KeyboardEvent) => event.metaKey,\n 'shift': (event: KeyboardEvent) => event.shiftKey\n};\n\n/**\n * @publicApi\n * A browser plug-in that provides support for handling of key events in Angular.\n */\n@Injectable()\nexport class KeyEventsPlugin extends EventManagerPlugin {\n /**\n * Initializes an instance of the browser plug-in.\n * @param doc The document in which key events will be detected.\n */\n constructor(@Inject(DOCUMENT) doc: any) { super(doc); }\n\n /**\n * Reports whether a named key event is supported.\n * @param eventName The event name to query.\n * @return True if the named key event is supported.\n */\n supports(eventName: string): boolean { return KeyEventsPlugin.parseEventName(eventName) != null; }\n\n /**\n * Registers a handler for a specific element and key event.\n * @param element The HTML element to receive event notifications.\n * @param eventName The name of the key event to listen for.\n * @param handler A function to call when the notification occurs. Receives the\n * event object as an argument.\n * @returns The key event that was registered.\n */\n addEventListener(element: HTMLElement, eventName: string, handler: Function): Function {\n const parsedEvent = KeyEventsPlugin.parseEventName(eventName) !;\n\n const outsideHandler =\n KeyEventsPlugin.eventCallback(parsedEvent['fullKey'], handler, this.manager.getZone());\n\n return this.manager.getZone().runOutsideAngular(() => {\n return getDOM().onAndCancel(element, parsedEvent['domEventName'], outsideHandler);\n });\n }\n\n static parseEventName(eventName: string): {[key: string]: string}|null {\n const parts: string[] = eventName.toLowerCase().split('.');\n\n const domEventName = parts.shift();\n if ((parts.length === 0) || !(domEventName === 'keydown' || domEventName === 'keyup')) {\n return null;\n }\n\n const key = KeyEventsPlugin._normalizeKey(parts.pop() !);\n\n let fullKey = '';\n MODIFIER_KEYS.forEach(modifierName => {\n const index: number = parts.indexOf(modifierName);\n if (index > -1) {\n parts.splice(index, 1);\n fullKey += modifierName + '.';\n }\n });\n fullKey += key;\n\n if (parts.length != 0 || key.length === 0) {\n // returning null instead of throwing to let another plugin process the event\n return null;\n }\n\n const result: {[k: string]: string} = {};\n result['domEventName'] = domEventName;\n result['fullKey'] = fullKey;\n return result;\n }\n\n static getEventFullKey(event: KeyboardEvent): string {\n let fullKey = '';\n let key = getDOM().getEventKey(event);\n key = key.toLowerCase();\n if (key === ' ') {\n key = 'space'; // for readability\n } else if (key === '.') {\n key = 'dot'; // because '.' is used as a separator in event names\n }\n MODIFIER_KEYS.forEach(modifierName => {\n if (modifierName != key) {\n const modifierGetter = MODIFIER_KEY_GETTERS[modifierName];\n if (modifierGetter(event)) {\n fullKey += modifierName + '.';\n }\n }\n });\n fullKey += key;\n return fullKey;\n }\n\n /**\n * Configures a handler callback for a key event.\n * @param fullKey The event name that combines all simultaneous keystrokes.\n * @param handler The function that responds to the key event.\n * @param zone The zone in which the event occurred.\n * @returns A callback function.\n */\n static eventCallback(fullKey: any, handler: Function, zone: NgZone): Function {\n return (event: any /** TODO #9100 */) => {\n if (KeyEventsPlugin.getEventFullKey(event) === fullKey) {\n zone.runGuarded(() => handler(event));\n }\n };\n }\n\n /** @internal */\n static _normalizeKey(keyName: string): string {\n // TODO: switch to a Map if the mapping grows too much\n switch (keyName) {\n case 'esc':\n return 'escape';\n default:\n return keyName;\n }\n }\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Inject, Injectable, Sanitizer, SecurityContext, ɵ_sanitizeHtml as _sanitizeHtml, ɵ_sanitizeStyle as _sanitizeStyle, ɵ_sanitizeUrl as _sanitizeUrl} from '@angular/core';\n\nimport {DOCUMENT} from '../dom/dom_tokens';\n\nexport {SecurityContext};\n\n\n\n/**\n * Marker interface for a value that's safe to use in a particular context.\n *\n * @publicApi\n */\nexport interface SafeValue {}\n\n/**\n * Marker interface for a value that's safe to use as HTML.\n *\n * @publicApi\n */\nexport interface SafeHtml extends SafeValue {}\n\n/**\n * Marker interface for a value that's safe to use as style (CSS).\n *\n * @publicApi\n */\nexport interface SafeStyle extends SafeValue {}\n\n/**\n * Marker interface for a value that's safe to use as JavaScript.\n *\n * @publicApi\n */\nexport interface SafeScript extends SafeValue {}\n\n/**\n * Marker interface for a value that's safe to use as a URL linking to a document.\n *\n * @publicApi\n */\nexport interface SafeUrl extends SafeValue {}\n\n/**\n * Marker interface for a value that's safe to use as a URL to load executable code from.\n *\n * @publicApi\n */\nexport interface SafeResourceUrl extends SafeValue {}\n\n/**\n * DomSanitizer helps preventing Cross Site Scripting Security bugs (XSS) by sanitizing\n * values to be safe to use in the different DOM contexts.\n *\n * For example, when binding a URL in an `<a [href]=\"someValue\">` hyperlink, `someValue` will be\n * sanitized so that an attacker cannot inject e.g. a `javascript:` URL that would execute code on\n * the website.\n *\n * In specific situations, it might be necessary to disable sanitization, for example if the\n * application genuinely needs to produce a `javascript:` style link with a dynamic value in it.\n * Users can bypass security by constructing a value with one of the `bypassSecurityTrust...`\n * methods, and then binding to that value from the template.\n *\n * These situations should be very rare, and extraordinary care must be taken to avoid creating a\n * Cross Site Scripting (XSS) security bug!\n *\n * When using `bypassSecurityTrust...`, make sure to call the method as early as possible and as\n * close as possible to the source of the value, to make it easy to verify no security bug is\n * created by its use.\n *\n * It is not required (and not recommended) to bypass security if the value is safe, e.g. a URL that\n * does not start with a suspicious protocol, or an HTML snippet that does not contain dangerous\n * code. The sanitizer leaves safe values intact.\n *\n * @security Calling any of the `bypassSecurityTrust...` APIs disables Angular's built-in\n * sanitization for the value passed in. Carefully check and audit all values and code paths going\n * into this call. Make sure any user data is appropriately escaped for this security context.\n * For more detail, see the [Security Guide](http://g.co/ng/security).\n *\n * @publicApi\n */\nexport abstract class DomSanitizer implements Sanitizer {\n /**\n * Sanitizes a value for use in the given SecurityContext.\n *\n * If value is trusted for the context, this method will unwrap the contained safe value and use\n * it directly. Otherwise, value will be sanitized to be safe in the given context, for example\n * by replacing URLs that have an unsafe protocol part (such as `javascript:`). The implementation\n * is responsible to make sure that the value can definitely be safely used in the given context.\n */\n abstract sanitize(context: SecurityContext, value: SafeValue|string|null): string|null;\n\n /**\n * Bypass security and trust the given value to be safe HTML. Only use this when the bound HTML\n * is unsafe (e.g. contains `<script>` tags) and the code should be executed. The sanitizer will\n * leave safe HTML intact, so in most situations this method should not be used.\n *\n * **WARNING:** calling this method with untrusted user data exposes your application to XSS\n * security risks!\n */\n abstract bypassSecurityTrustHtml(value: string): SafeHtml;\n\n /**\n * Bypass security and trust the given value to be safe style value (CSS).\n *\n * **WARNING:** calling this method with untrusted user data exposes your application to XSS\n * security risks!\n */\n abstract bypassSecurityTrustStyle(value: string): SafeStyle;\n\n /**\n * Bypass security and trust the given value to be safe JavaScript.\n *\n * **WARNING:** calling this method with untrusted user data exposes your application to XSS\n * security risks!\n */\n abstract bypassSecurityTrustScript(value: string): SafeScript;\n\n /**\n * Bypass security and trust the given value to be a safe style URL, i.e. a value that can be used\n * in hyperlinks or `<img src>`.\n *\n * **WARNING:** calling this method with untrusted user data exposes your application to XSS\n * security risks!\n */\n abstract bypassSecurityTrustUrl(value: string): SafeUrl;\n\n /**\n * Bypass security and trust the given value to be a safe resource URL, i.e. a location that may\n * be used to load executable code from, like `<script src>`, or `<iframe src>`.\n *\n * **WARNING:** calling this method with untrusted user data exposes your application to XSS\n * security risks!\n */\n abstract bypassSecurityTrustResourceUrl(value: string): SafeResourceUrl;\n}\n\n\n@Injectable()\nexport class DomSanitizerImpl extends DomSanitizer {\n constructor(@Inject(DOCUMENT) private _doc: any) { super(); }\n\n sanitize(ctx: SecurityContext, value: SafeValue|string|null): string|null {\n if (value == null) return null;\n switch (ctx) {\n case SecurityContext.NONE:\n return value as string;\n case SecurityContext.HTML:\n if (value instanceof SafeHtmlImpl) return value.changingThisBreaksApplicationSecurity;\n this.checkNotSafeValue(value, 'HTML');\n return _sanitizeHtml(this._doc, String(value));\n case SecurityContext.STYLE:\n if (value instanceof SafeStyleImpl) return value.changingThisBreaksApplicationSecurity;\n this.checkNotSafeValue(value, 'Style');\n return _sanitizeStyle(value as string);\n case SecurityContext.SCRIPT:\n if (value instanceof SafeScriptImpl) return value.changingThisBreaksApplicationSecurity;\n this.checkNotSafeValue(value, 'Script');\n throw new Error('unsafe value used in a script context');\n case SecurityContext.URL:\n if (value instanceof SafeResourceUrlImpl || value instanceof SafeUrlImpl) {\n // Allow resource URLs in URL contexts, they are strictly more trusted.\n return value.changingThisBreaksApplicationSecurity;\n }\n this.checkNotSafeValue(value, 'URL');\n return _sanitizeUrl(String(value));\n case SecurityContext.RESOURCE_URL:\n if (value instanceof SafeResourceUrlImpl) {\n return value.changingThisBreaksApplicationSecurity;\n }\n this.checkNotSafeValue(value, 'ResourceURL');\n throw new Error(\n 'unsafe value used in a resource URL context (see http://g.co/ng/security#xss)');\n default:\n throw new Error(`Unexpected SecurityContext ${ctx} (see http://g.co/ng/security#xss)`);\n }\n }\n\n private checkNotSafeValue(value: any, expectedType: string) {\n if (value instanceof SafeValueImpl) {\n throw new Error(\n `Required a safe ${expectedType}, got a ${value.getTypeName()} ` +\n `(see http://g.co/ng/security#xss)`);\n }\n }\n\n bypassSecurityTrustHtml(value: string): SafeHtml { return new SafeHtmlImpl(value); }\n bypassSecurityTrustStyle(value: string): SafeStyle { return new SafeStyleImpl(value); }\n bypassSecurityTrustScript(value: string): SafeScript { return new SafeScriptImpl(value); }\n bypassSecurityTrustUrl(value: string): SafeUrl { return new SafeUrlImpl(value); }\n bypassSecurityTrustResourceUrl(value: string): SafeResourceUrl {\n return new SafeResourceUrlImpl(value);\n }\n}\n\nabstract class SafeValueImpl implements SafeValue {\n constructor(public changingThisBreaksApplicationSecurity: string) {\n // empty\n }\n\n abstract getTypeName(): string;\n\n toString() {\n return `SafeValue must use [property]=binding: ${this.changingThisBreaksApplicationSecurity}` +\n ` (see http://g.co/ng/security#xss)`;\n }\n}\n\nclass SafeHtmlImpl extends SafeValueImpl implements SafeHtml {\n getTypeName() { return 'HTML'; }\n}\nclass SafeStyleImpl extends SafeValueImpl implements SafeStyle {\n getTypeName() { return 'Style'; }\n}\nclass SafeScriptImpl extends SafeValueImpl implements SafeScript {\n getTypeName() { return 'Script'; }\n}\nclass SafeUrlImpl extends SafeValueImpl implements SafeUrl {\n getTypeName() { return 'URL'; }\n}\nclass SafeResourceUrlImpl extends SafeValueImpl implements SafeResourceUrl {\n getTypeName() { return 'ResourceURL'; }\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {CommonModule, PlatformLocation, ɵPLATFORM_BROWSER_ID as PLATFORM_BROWSER_ID} from '@angular/common';\nimport {APP_ID, ApplicationModule, ErrorHandler, Inject, ModuleWithProviders, NgModule, NgZone, Optional, PLATFORM_ID, PLATFORM_INITIALIZER, PlatformRef, RendererFactory2, Sanitizer, SkipSelf, StaticProvider, Testability, createPlatformFactory, platformCore, ɵAPP_ROOT as APP_ROOT, ɵConsole as Console} from '@angular/core';\n\nimport {BrowserDomAdapter} from './browser/browser_adapter';\nimport {BrowserPlatformLocation} from './browser/location/browser_platform_location';\nimport {SERVER_TRANSITION_PROVIDERS, TRANSITION_ID} from './browser/server-transition';\nimport {BrowserGetTestability} from './browser/testability';\nimport {ELEMENT_PROBE_PROVIDERS} from './dom/debug/ng_probe';\nimport {DomRendererFactory2} from './dom/dom_renderer';\nimport {DOCUMENT} from './dom/dom_tokens';\nimport {DomEventsPlugin} from './dom/events/dom_events';\nimport {EVENT_MANAGER_PLUGINS, EventManager} from './dom/events/event_manager';\nimport {HAMMER_GESTURE_CONFIG, HAMMER_LOADER, HammerGestureConfig, HammerGesturesPlugin} from './dom/events/hammer_gestures';\nimport {KeyEventsPlugin} from './dom/events/key_events';\nimport {DomSharedStylesHost, SharedStylesHost} from './dom/shared_styles_host';\nimport {DomSanitizer, DomSanitizerImpl} from './security/dom_sanitization_service';\n\nexport const INTERNAL_BROWSER_PLATFORM_PROVIDERS: StaticProvider[] = [\n {provide: PLATFORM_ID, useValue: PLATFORM_BROWSER_ID},\n {provide: PLATFORM_INITIALIZER, useValue: initDomAdapter, multi: true},\n {provide: PlatformLocation, useClass: BrowserPlatformLocation, deps: [DOCUMENT]},\n {provide: DOCUMENT, useFactory: _document, deps: []},\n];\n\n/**\n * @security Replacing built-in sanitization providers exposes the application to XSS risks.\n * Attacker-controlled data introduced by an unsanitized provider could expose your\n * application to XSS risks. For more detail, see the [Security Guide](http://g.co/ng/security).\n * @publicApi\n */\nexport const BROWSER_SANITIZATION_PROVIDERS: StaticProvider[] = [\n {provide: Sanitizer, useExisting: DomSanitizer},\n {provide: DomSanitizer, useClass: DomSanitizerImpl, deps: [DOCUMENT]},\n];\n\n/**\n * @publicApi\n */\nexport const platformBrowser: (extraProviders?: StaticProvider[]) => PlatformRef =\n createPlatformFactory(platformCore, 'browser', INTERNAL_BROWSER_PLATFORM_PROVIDERS);\n\nexport function initDomAdapter() {\n BrowserDomAdapter.makeCurrent();\n BrowserGetTestability.init();\n}\n\nexport function errorHandler(): ErrorHandler {\n return new ErrorHandler();\n}\n\nexport function _document(): any {\n return document;\n}\n\nexport const BROWSER_MODULE_PROVIDERS: StaticProvider[] = [\n BROWSER_SANITIZATION_PROVIDERS,\n {provide: APP_ROOT, useValue: true},\n {provide: ErrorHandler, useFactory: errorHandler, deps: []},\n {\n provide: EVENT_MANAGER_PLUGINS,\n useClass: DomEventsPlugin,\n multi: true,\n deps: [DOCUMENT, NgZone, PLATFORM_ID]\n },\n {provide: EVENT_MANAGER_PLUGINS, useClass: KeyEventsPlugin, multi: true, deps: [DOCUMENT]},\n {\n provide: EVENT_MANAGER_PLUGINS,\n useClass: HammerGesturesPlugin,\n multi: true,\n deps: [DOCUMENT, HAMMER_GESTURE_CONFIG, Console, [new Optional(), HAMMER_LOADER]]\n },\n {provide: HAMMER_GESTURE_CONFIG, useClass: HammerGestureConfig, deps: []},\n {\n provide: DomRendererFactory2,\n useClass: DomRendererFactory2,\n deps: [EventManager, DomSharedStylesHost]\n },\n {provide: RendererFactory2, useExisting: DomRendererFactory2},\n {provide: SharedStylesHost, useExisting: DomSharedStylesHost},\n {provide: DomSharedStylesHost, useClass: DomSharedStylesHost, deps: [DOCUMENT]},\n {provide: Testability, useClass: Testability, deps: [NgZone]},\n {provide: EventManager, useClass: EventManager, deps: [EVENT_MANAGER_PLUGINS, NgZone]},\n ELEMENT_PROBE_PROVIDERS,\n];\n\n/**\n * Exports required infrastructure for all Angular apps.\n * Included by default in all Angular apps created with the CLI\n * `new` command.\n * Re-exports `CommonModule` and `ApplicationModule`, making their\n * exports and providers available to all apps.\n *\n * @publicApi\n */\n@NgModule({providers: BROWSER_MODULE_PROVIDERS, exports: [CommonModule, ApplicationModule]})\nexport class BrowserModule {\n constructor(@Optional() @SkipSelf() @Inject(BrowserModule) parentModule: BrowserModule|null) {\n if (parentModule) {\n throw new Error(\n `BrowserModule has already been loaded. If you need access to common directives such as NgIf and NgFor from a lazy loaded module, import CommonModule instead.`);\n }\n }\n\n /**\n * Configures a browser-based app to transition from a server-rendered app, if\n * one is present on the page.\n *\n * @param params An object containing an identifier for the app to transition.\n * The ID must match between the client and server versions of the app.\n * @returns The reconfigured `BrowserModule` to import into the app's root `AppModule`.\n */\n static withServerTransition(params: {appId: string}): ModuleWithProviders<BrowserModule> {\n return {\n ngModule: BrowserModule,\n providers: [\n {provide: APP_ID, useValue: params.appId},\n {provide: TRANSITION_ID, useExisting: APP_ID},\n SERVER_TRANSITION_PROVIDERS,\n ],\n };\n }\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Inject, Injectable, inject} from '@angular/core';\n\nimport {DomAdapter, getDOM} from '../dom/dom_adapter';\nimport {DOCUMENT} from '../dom/dom_tokens';\n\n\n\n/**\n * Represents a meta element.\n *\n * @publicApi\n */\nexport type MetaDefinition = {\n charset?: string; content?: string; httpEquiv?: string; id?: string; itemprop?: string;\n name?: string;\n property?: string;\n scheme?: string;\n url?: string;\n} &\n{\n // TODO(IgorMinar): this type looks wrong\n [prop: string]: string;\n};\n\n/**\n * Factory to create Meta service.\n */\nexport function createMeta() {\n return new Meta(inject(DOCUMENT));\n}\n\n/**\n * A service that can be used to get and add meta tags.\n *\n * @publicApi\n */\n@Injectable({providedIn: 'root', useFactory: createMeta, deps: []})\nexport class Meta {\n private _dom: DomAdapter;\n constructor(@Inject(DOCUMENT) private _doc: any) { this._dom = getDOM(); }\n\n addTag(tag: MetaDefinition, forceCreation: boolean = false): HTMLMetaElement|null {\n if (!tag) return null;\n return this._getOrCreateElement(tag, forceCreation);\n }\n\n addTags(tags: MetaDefinition[], forceCreation: boolean = false): HTMLMetaElement[] {\n if (!tags) return [];\n return tags.reduce((result: HTMLMetaElement[], tag: MetaDefinition) => {\n if (tag) {\n result.push(this._getOrCreateElement(tag, forceCreation));\n }\n return result;\n }, []);\n }\n\n getTag(attrSelector: string): HTMLMetaElement|null {\n if (!attrSelector) return null;\n return this._dom.querySelector(this._doc, `meta[${attrSelector}]`) || null;\n }\n\n getTags(attrSelector: string): HTMLMetaElement[] {\n if (!attrSelector) return [];\n const list /*NodeList*/ = this._dom.querySelectorAll(this._doc, `meta[${attrSelector}]`);\n return list ? [].slice.call(list) : [];\n }\n\n updateTag(tag: MetaDefinition, selector?: string): HTMLMetaElement|null {\n if (!tag) return null;\n selector = selector || this._parseSelector(tag);\n const meta: HTMLMetaElement = this.getTag(selector) !;\n if (meta) {\n return this._setMetaElementAttributes(tag, meta);\n }\n return this._getOrCreateElement(tag, true);\n }\n\n removeTag(attrSelector: string): void { this.removeTagElement(this.getTag(attrSelector) !); }\n\n removeTagElement(meta: HTMLMetaElement): void {\n if (meta) {\n this._dom.remove(meta);\n }\n }\n\n private _getOrCreateElement(meta: MetaDefinition, forceCreation: boolean = false):\n HTMLMetaElement {\n if (!forceCreation) {\n const selector: string = this._parseSelector(meta);\n const elem: HTMLMetaElement = this.getTag(selector) !;\n // It's allowed to have multiple elements with the same name so it's not enough to\n // just check that element with the same name already present on the page. We also need to\n // check if element has tag attributes\n if (elem && this._containsAttributes(meta, elem)) return elem;\n }\n const element: HTMLMetaElement = this._dom.createElement('meta') as HTMLMetaElement;\n this._setMetaElementAttributes(meta, element);\n const head = this._dom.getElementsByTagName(this._doc, 'head')[0];\n this._dom.appendChild(head, element);\n return element;\n }\n\n private _setMetaElementAttributes(tag: MetaDefinition, el: HTMLMetaElement): HTMLMetaElement {\n Object.keys(tag).forEach((prop: string) => this._dom.setAttribute(el, prop, tag[prop]));\n return el;\n }\n\n private _parseSelector(tag: MetaDefinition): string {\n const attr: string = tag.name ? 'name' : 'property';\n return `${attr}=\"${tag[attr]}\"`;\n }\n\n private _containsAttributes(tag: MetaDefinition, elem: HTMLMetaElement): boolean {\n return Object.keys(tag).every((key: string) => this._dom.getAttribute(elem, key) === tag[key]);\n }\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Inject, Injectable, inject} from '@angular/core';\n\nimport {getDOM} from '../dom/dom_adapter';\nimport {DOCUMENT} from '../dom/dom_tokens';\n\n/**\n * Factory to create Title service.\n */\nexport function createTitle() {\n return new Title(inject(DOCUMENT));\n}\n\n/**\n * A service that can be used to get and set the title of a current HTML document.\n *\n * Since an Angular application can't be bootstrapped on the entire HTML document (`<html>` tag)\n * it is not possible to bind to the `text` property of the `HTMLTitleElement` elements\n * (representing the `<title>` tag). Instead, this service can be used to set and get the current\n * title value.\n *\n * @publicApi\n */\n@Injectable({providedIn: 'root', useFactory: createTitle, deps: []})\nexport class Title {\n constructor(@Inject(DOCUMENT) private _doc: any) {}\n /**\n * Get the title of the current HTML document.\n */\n getTitle(): string { return getDOM().getTitle(this._doc); }\n\n /**\n * Set the title of the current HTML document.\n * @param newTitle\n */\n setTitle(newTitle: string) { getDOM().setTitle(this._doc, newTitle); }\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nconst win = typeof window !== 'undefined' && window || <any>{};\nexport {win as window};\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {ApplicationRef, ComponentRef} from '@angular/core';\nimport {getDOM} from '../../dom/dom_adapter';\nimport {window} from './browser';\n\nexport class ChangeDetectionPerfRecord {\n constructor(public msPerTick: number, public numTicks: number) {}\n}\n\n/**\n * Entry point for all Angular profiling-related debug tools. This object\n * corresponds to the `ng.profiler` in the dev console.\n */\nexport class AngularProfiler {\n appRef: ApplicationRef;\n\n constructor(ref: ComponentRef<any>) { this.appRef = ref.injector.get(ApplicationRef); }\n\n // tslint:disable:no-console\n /**\n * Exercises change detection in a loop and then prints the average amount of\n * time in milliseconds how long a single round of change detection takes for\n * the current state of the UI. It runs a minimum of 5 rounds for a minimum\n * of 500 milliseconds.\n *\n * Optionally, a user may pass a `config` parameter containing a map of\n * options. Supported options are:\n *\n * `record` (boolean) - causes the profiler to record a CPU profile while\n * it exercises the change detector. Example:\n *\n * ```\n * ng.profiler.timeChangeDetection({record: true})\n * ```\n */\n timeChangeDetection(config: any): ChangeDetectionPerfRecord {\n const record = config && config['record'];\n const profileName = 'Change Detection';\n // Profiler is not available in Android browsers, nor in IE 9 without dev tools opened\n const isProfilerAvailable = window.console.profile != null;\n if (record && isProfilerAvailable) {\n window.console.profile(profileName);\n }\n const start = getDOM().performanceNow();\n let numTicks = 0;\n while (numTicks < 5 || (getDOM().performanceNow() - start) < 500) {\n this.appRef.tick();\n numTicks++;\n }\n const end = getDOM().performanceNow();\n if (record && isProfilerAvailable) {\n window.console.profileEnd(profileName);\n }\n const msPerTick = (end - start) / numTicks;\n window.console.log(`ran ${numTicks} change detection cycles`);\n window.console.log(`${msPerTick.toFixed(2)} ms per check`);\n\n return new ChangeDetectionPerfRecord(msPerTick, numTicks);\n }\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {ComponentRef} from '@angular/core';\nimport {exportNgVar} from '../../dom/util';\nimport {AngularProfiler} from './common_tools';\n\nconst PROFILER_GLOBAL_NAME = 'profiler';\n\n/**\n * Enabled Angular debug tools that are accessible via your browser's\n * developer console.\n *\n * Usage:\n *\n * 1. Open developer console (e.g. in Chrome Ctrl + Shift + j)\n * 1. Type `ng.` (usually the console will show auto-complete suggestion)\n * 1. Try the change detection profiler `ng.profiler.timeChangeDetection()`\n * then hit Enter.\n *\n * @publicApi\n */\nexport function enableDebugTools<T>(ref: ComponentRef<T>): ComponentRef<T> {\n exportNgVar(PROFILER_GLOBAL_NAME, new AngularProfiler(ref));\n return ref;\n}\n\n/**\n * Disables Angular tools.\n *\n * @publicApi\n */\nexport function disableDebugTools(): void {\n exportNgVar(PROFILER_GLOBAL_NAME, null);\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {APP_ID, Injectable, NgModule} from '@angular/core';\nimport {DOCUMENT} from '../dom/dom_tokens';\n\nexport function escapeHtml(text: string): string {\n const escapedText: {[k: string]: string} = {\n '&': '&a;',\n '\"': '&q;',\n '\\'': '&s;',\n '<': '&l;',\n '>': '&g;',\n };\n return text.replace(/[&\"'<>]/g, s => escapedText[s]);\n}\n\nexport function unescapeHtml(text: string): string {\n const unescapedText: {[k: string]: string} = {\n '&a;': '&',\n '&q;': '\"',\n '&s;': '\\'',\n '&l;': '<',\n '&g;': '>',\n };\n return text.replace(/&[^;]+;/g, s => unescapedText[s]);\n}\n\n/**\n * A type-safe key to use with `TransferState`.\n *\n * Example:\n *\n * ```\n * const COUNTER_KEY = makeStateKey<number>('counter');\n * let value = 10;\n *\n * transferState.set(COUNTER_KEY, value);\n * ```\n *\n * @publicApi\n */\nexport type StateKey<T> = string & {__not_a_string: never};\n\n/**\n * Create a `StateKey<T>` that can be used to store value of type T with `TransferState`.\n *\n * Example:\n *\n * ```\n * const COUNTER_KEY = makeStateKey<number>('counter');\n * let value = 10;\n *\n * transferState.set(COUNTER_KEY, value);\n * ```\n *\n * @publicApi\n */\nexport function makeStateKey<T = void>(key: string): StateKey<T> {\n return key as StateKey<T>;\n}\n\n/**\n * A key value store that is transferred from the application on the server side to the application\n * on the client side.\n *\n * `TransferState` will be available as an injectable token. To use it import\n * `ServerTransferStateModule` on the server and `BrowserTransferStateModule` on the client.\n *\n * The values in the store are serialized/deserialized using JSON.stringify/JSON.parse. So only\n * boolean, number, string, null and non-class objects will be serialized and deserialzied in a\n * non-lossy manner.\n *\n * @publicApi\n */\n@Injectable()\nexport class TransferState {\n private store: {[k: string]: {} | undefined} = {};\n private onSerializeCallbacks: {[k: string]: () => {} | undefined} = {};\n\n /** @internal */\n static init(initState: {}) {\n const transferState = new TransferState();\n transferState.store = initState;\n return transferState;\n }\n\n /**\n * Get the value corresponding to a key. Return `defaultValue` if key is not found.\n */\n get<T>(key: StateKey<T>, defaultValue: T): T {\n return this.store[key] !== undefined ? this.store[key] as T : defaultValue;\n }\n\n /**\n * Set the value corresponding to a key.\n */\n set<T>(key: StateKey<T>, value: T): void { this.store[key] = value; }\n\n /**\n * Remove a key from the store.\n */\n remove<T>(key: StateKey<T>): void { delete this.store[key]; }\n\n /**\n * Test whether a key exists in the store.\n */\n hasKey<T>(key: StateKey<T>) { return this.store.hasOwnProperty(key); }\n\n /**\n * Register a callback to provide the value for a key when `toJson` is called.\n */\n onSerialize<T>(key: StateKey<T>, callback: () => T): void {\n this.onSerializeCallbacks[key] = callback;\n }\n\n /**\n * Serialize the current state of the store to JSON.\n */\n toJson(): string {\n // Call the onSerialize callbacks and put those values into the store.\n for (const key in this.onSerializeCallbacks) {\n if (this.onSerializeCallbacks.hasOwnProperty(key)) {\n try {\n this.store[key] = this.onSerializeCallbacks[key]();\n } catch (e) {\n console.warn('Exception in onSerialize callback: ', e);\n }\n }\n }\n return JSON.stringify(this.store);\n }\n}\n\nexport function initTransferState(doc: Document, appId: string) {\n // Locate the script tag with the JSON data transferred from the server.\n // The id of the script tag is set to the Angular appId + 'state'.\n const script = doc.getElementById(appId + '-state');\n let initialState = {};\n if (script && script.textContent) {\n try {\n initialState = JSON.parse(unescapeHtml(script.textContent));\n } catch (e) {\n console.warn('Exception while restoring TransferState for app ' + appId, e);\n }\n }\n return TransferState.init(initialState);\n}\n\n/**\n * NgModule to install on the client side while using the `TransferState` to transfer state from\n * server to client.\n *\n * @publicApi\n */\n@NgModule({\n providers: [{provide: TransferState, useFactory: initTransferState, deps: [DOCUMENT, APP_ID]}],\n})\nexport class BrowserTransferStateModule {\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {DebugElement, Predicate, Type} from '@angular/core';\nimport {getDOM} from '../../dom/dom_adapter';\n\n\n\n/**\n * Predicates for use with {@link DebugElement}'s query functions.\n *\n * @publicApi\n */\nexport class By {\n /**\n * Match all elements.\n *\n * @usageNotes\n * ### Example\n *\n * {@example platform-browser/dom/debug/ts/by/by.ts region='by_all'}\n */\n static all(): Predicate<DebugElement> { return (debugElement) => true; }\n\n /**\n * Match elements by the given CSS selector.\n *\n * @usageNotes\n * ### Example\n *\n * {@example platform-browser/dom/debug/ts/by/by.ts region='by_css'}\n */\n static css(selector: string): Predicate<DebugElement> {\n return (debugElement) => {\n return debugElement.nativeElement != null ?\n getDOM().elementMatches(debugElement.nativeElement, selector) :\n false;\n };\n }\n\n /**\n * Match elements that have the given directive present.\n *\n * @usageNotes\n * ### Example\n *\n * {@example platform-browser/dom/debug/ts/by/by.ts region='by_directive'}\n */\n static directive(type: Type<any>): Predicate<DebugElement> {\n return (debugElement) => debugElement.providerTokens !.indexOf(type) !== -1;\n }\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nexport {BROWSER_SANITIZATION_PROVIDERS as ɵBROWSER_SANITIZATION_PROVIDERS, INTERNAL_BROWSER_PLATFORM_PROVIDERS as ɵINTERNAL_BROWSER_PLATFORM_PROVIDERS, initDomAdapter as ɵinitDomAdapter} from './browser';\nexport {BrowserDomAdapter as ɵBrowserDomAdapter} from './browser/browser_adapter';\nexport {BrowserPlatformLocation as ɵBrowserPlatformLocation} from './browser/location/browser_platform_location';\nexport {TRANSITION_ID as ɵTRANSITION_ID} from './browser/server-transition';\nexport {BrowserGetTestability as ɵBrowserGetTestability} from './browser/testability';\nexport {escapeHtml as ɵescapeHtml} from './browser/transfer_state';\nexport {ELEMENT_PROBE_PROVIDERS as ɵELEMENT_PROBE_PROVIDERS} from './dom/debug/ng_probe';\nexport {DomAdapter as ɵDomAdapter, getDOM as ɵgetDOM, setRootDomAdapter as ɵsetRootDomAdapter} from './dom/dom_adapter';\nexport {DomRendererFactory2 as ɵDomRendererFactory2, NAMESPACE_URIS as ɵNAMESPACE_URIS, flattenStyles as ɵflattenStyles, shimContentAttribute as ɵshimContentAttribute, shimHostAttribute as ɵshimHostAttribute} from './dom/dom_renderer';\nexport {DomEventsPlugin as ɵDomEventsPlugin} from './dom/events/dom_events';\nexport {HammerGesturesPlugin as ɵHammerGesturesPlugin} from './dom/events/hammer_gestures';\nexport {KeyEventsPlugin as ɵKeyEventsPlugin} from './dom/events/key_events';\nexport {DomSharedStylesHost as ɵDomSharedStylesHost, SharedStylesHost as ɵSharedStylesHost} from './dom/shared_styles_host';\nexport {DomSanitizerImpl as ɵDomSanitizerImpl} from './security/dom_sanitization_service';\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * @module\n * @description\n * Entry point for all public APIs of the common package.\n */\n\nimport {Version} from '@angular/core';\n\n/**\n * @publicApi\n */\nexport const VERSION = new Version('7.2.8');\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nexport {BrowserModule, platformBrowser} from './browser';\nexport {Meta, MetaDefinition} from './browser/meta';\nexport {Title} from './browser/title';\nexport {disableDebugTools, enableDebugTools} from './browser/tools/tools';\nexport {BrowserTransferStateModule, StateKey, TransferState, makeStateKey} from './browser/transfer_state';\nexport {By} from './dom/debug/by';\nexport {DOCUMENT} from './dom/dom_tokens';\nexport {EVENT_MANAGER_PLUGINS, EventManager} from './dom/events/event_manager';\nexport {HAMMER_GESTURE_CONFIG, HAMMER_LOADER, HammerGestureConfig, HammerLoader} from './dom/events/hammer_gestures';\nexport {DomSanitizer, SafeHtml, SafeResourceUrl, SafeScript, SafeStyle, SafeUrl, SafeValue} from './security/dom_sanitization_service';\n\nexport * from './private_export';\nexport {VERSION} from './version';\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * @module\n * @description\n * Entry point for all public APIs of this package.\n */\nexport * from './src/platform-browser';\n// This file only reexports content of the `src` folder. Keep it that way.\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n// This file is not used to build this module. It is only used during editing\n// by the TypeScript language service and during build for verification. `ngc`\n// replaces this file with production index.ts when it rewrites private symbol\n// names.\n\nexport * from './public_api';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n\nexport {BROWSER_MODULE_PROVIDERS as ɵangular_packages_platform_browser_platform_browser_c,_document as ɵangular_packages_platform_browser_platform_browser_b,errorHandler as ɵangular_packages_platform_browser_platform_browser_a} from './src/browser';\nexport {GenericBrowserDomAdapter as ɵangular_packages_platform_browser_platform_browser_k} from './src/browser/generic_browser_adapter';\nexport {createMeta as ɵangular_packages_platform_browser_platform_browser_d} from './src/browser/meta';\nexport {SERVER_TRANSITION_PROVIDERS as ɵangular_packages_platform_browser_platform_browser_i,appInitializerFactory as ɵangular_packages_platform_browser_platform_browser_h} from './src/browser/server-transition';\nexport {createTitle as ɵangular_packages_platform_browser_platform_browser_e} from './src/browser/title';\nexport {initTransferState as ɵangular_packages_platform_browser_platform_browser_f} from './src/browser/transfer_state';\nexport {_createNgProbe as ɵangular_packages_platform_browser_platform_browser_j} from './src/dom/debug/ng_probe';\nexport {EventManagerPlugin as ɵangular_packages_platform_browser_platform_browser_g} from './src/dom/events/event_manager';"],"names":["tslib_1.__extends","global","parseCookieValue","commonDOCUMENT","Injectable","tslib_1.__param","Inject","PlatformLocation","InjectionToken","ApplicationInitStatus","APP_INITIALIZER","Injector","setTestabilityGetter","core.ApplicationRef","core.NgZone","core.getDebugNode","core.APP_INITIALIZER","core.NgProbeToken","core.Optional","NgZone","ViewEncapsulation","RendererStyleFlags2","isPlatformServer","Optional","PLATFORM_ID","Console","SecurityContext","_sanitizeHtml","_sanitizeStyle","_sanitizeUrl","PLATFORM_BROWSER_ID","PLATFORM_INITIALIZER","Sanitizer","createPlatformFactory","platformCore","ErrorHandler","APP_ROOT","RendererFactory2","Testability","APP_ID","NgModule","CommonModule","ApplicationModule","SkipSelf","inject","ApplicationRef","window","Version"],"mappings":"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"}
\ No newline at end of file

bundles/platform-browser.umd.min.js

@@ -1,5 +1,5 @@
/**
- * @license Angular v7.2.7
+ * @license Angular v7.2.8
* (c) 2010-2019 Google LLC. https://angular.io/
* License: MIT
*/
@@ -83,7 +83,7 @@
*
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://angular.io/license
- */function Ut(t,e){var n=t.getElementById(e+"-state"),o={};if(n&&n.textContent)try{o=JSON.parse(function r(t){var e={"&a;":"&","&q;":'"',"&s;":"'","&l;":"<","&g;":">"};return t.replace(/&[^;]+;/g,function(t){return e[t]})}(n.textContent))}catch(t){console.warn("Exception while restoring TransferState for app "+e,t)}return Ft.init(o)}var Zt=function(){return a([n.NgModule({providers:[{provide:Ft,useFactory:Ut,deps:[E,n.APP_ID]}]})],function t(){})}(),Gt=function(){function t(){}return t.all=function(){return function(t){return!0}},t.css=function(t){return function(e){return null!=e.nativeElement&&l().elementMatches(e.nativeElement,t)}},t.directive=function(t){return function(e){return-1!==e.providerTokens.indexOf(t)}},t}(),Kt=new n.Version("7.2.7");
+ */function Ut(t,e){var n=t.getElementById(e+"-state"),o={};if(n&&n.textContent)try{o=JSON.parse(function r(t){var e={"&a;":"&","&q;":'"',"&s;":"'","&l;":"<","&g;":">"};return t.replace(/&[^;]+;/g,function(t){return e[t]})}(n.textContent))}catch(t){console.warn("Exception while restoring TransferState for app "+e,t)}return Ft.init(o)}var Zt=function(){return a([n.NgModule({providers:[{provide:Ft,useFactory:Ut,deps:[E,n.APP_ID]}]})],function t(){})}(),Gt=function(){function t(){}return t.all=function(){return function(t){return!0}},t.css=function(t){return function(e){return null!=e.nativeElement&&l().elementMatches(e.nativeElement,t)}},t.directive=function(t){return function(e){return-1!==e.providerTokens.indexOf(t)}},t}(),Kt=new n.Version("7.2.8");
/**
* @license
* Copyright Google Inc. All Rights Reserved.

bundles/platform-browser.umd.min.js.map

@@ -1 +1 @@
-{"version":3,"sources":["packages/platform-browser/platform-browser.umd.js"],"names":["global","factory","exports","module","require","define","amd","self","ng","platformBrowser","common","core","this","extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__extends","__","constructor","prototype","create","__assign","assign","t","s","i","n","arguments","length","call","apply","__decorate","decorators","target","key","desc","c","r","getOwnPropertyDescriptor","Reflect","decorate","defineProperty","__param","paramIndex","decorator","__metadata","metadataKey","metadataValue","metadata","__read","o","m","Symbol","iterator","e","ar","next","done","push","value","error","_DOM","getDOM","setRootDomAdapter","adapter","nodeContains","DomAdapter","resourceLoaderType","get","_attrToPropMap","set","enumerable","configurable","GenericBrowserDomAdapter","_super","_this","_animationPrefix","_transitionEnd","element_1","createElement","document","getStyle","domPrefixes","toLowerCase","transEndEventNames_1","WebkitTransition","MozTransition","OTransition","transition","keys","forEach","_a","getDistributedNodes","el","resolveAndSetHref","baseUrl","href","supportsDOMEvents","supportsNativeShadowDOM","body","createShadowRoot","getAnimationPrefix","getTransitionEnd","supportsAnimation","class","innerHtml","readonly","tabindex","_keyMap","\b","\t","","\u001b","Del","Esc","Left","Right","Up","Down","Menu","Scroll","Win","_chromeNumKeyPadMap","A","B","C","D","E","F","G","H","I","J","K","M","N","O","`","","ɵglobal","contains","node","compareDocumentPosition","urlParsingNode","BrowserDomAdapter","parse","templateHtml","Error","makeCurrent","hasProperty","element","name","setProperty","getProperty","invoke","methodName","args","__spread","concat","logError","window","console","log","logGroup","group","logGroupEnd","groupEnd","nodeA","nodeB","querySelector","selector","querySelectorAll","on","evt","listener","addEventListener","onAndCancel","removeEventListener","dispatchEvent","createMouseEvent","eventType","getDefaultDocument","createEvent","initEvent","preventDefault","returnValue","isPrevented","defaultPrevented","getInnerHTML","innerHTML","getTemplateContent","isTemplateElement","content","getOuterHTML","outerHTML","nodeName","nodeValue","type","firstChild","nextSibling","parentElement","parentNode","childNodes","childNodesAsList","res","clearNodes","removeChild","appendChild","replaceChild","newChild","oldChild","remove","insertBefore","parent","ref","insertAllBefore","nodes","insertAfter","setInnerHTML","getText","textContent","setText","getValue","setValue","getChecked","checked","setChecked","createComment","text","createTemplate","html","tagName","doc","createElementNS","ns","createTextNode","createScriptTag","attrName","attrValue","setAttribute","createStyleElement","css","style","getShadowRoot","shadowRoot","getHost","host","clone","cloneNode","getElementsByClassName","getElementsByTagName","classList","slice","addClass","className","add","removeClass","hasClass","setStyle","styleName","styleValue","removeStyle","stylename","hasStyle","attributeMap","Map","elAttrs","attributes","attrib","item","hasAttribute","attribute","hasAttributeNS","getAttribute","getAttributeNS","setAttributeNS","removeAttribute","removeAttributeNS","templateAwareRoot","createHtmlDocument","implementation","createHTMLDocument","getBoundingClientRect","top","bottom","left","right","width","height","getTitle","title","setTitle","newTitle","elementMatches","isElementNode","matches","msMatchesSelector","webkitMatchesSelector","isTextNode","nodeType","Node","TEXT_NODE","isCommentNode","COMMENT_NODE","ELEMENT_NODE","hasShadowRoot","HTMLElement","isShadowRoot","DocumentFragment","importIntoDoc","importNode","adoptNode","getHref","getEventKey","event","keyIdentifier","startsWith","String","fromCharCode","parseInt","substring","location","getGlobalEventTarget","getHistory","history","getLocation","getBaseHref","getBaseElementHref","baseElement","relativePath","url","pathname","charAt","resetBaseElement","getUserAgent","navigator","userAgent","setData","getData","getComputedStyle","supportsWebAnimation","Element","performanceNow","performance","now","Date","getTime","supportsCookies","getCookie","ɵparseCookieValue","cookie","setCookie","encodeURIComponent","DOCUMENT","supportsState","pushState","BrowserPlatformLocation","_doc","_init","_history","getBaseHrefFromDOM","onPopState","fn","onHashChange","newPath","search","hash","state","replaceState","forward","back","Injectable","Inject","PlatformLocation","TRANSITION_ID","InjectionToken","appInitializerFactory","transitionId","injector","ApplicationInitStatus","donePromise","then","dom","filter","SERVER_TRANSITION_PROVIDERS","provide","APP_INITIALIZER","useFactory","deps","Injector","multi","BrowserGetTestability","init","setTestabilityGetter","addToWindow","registry","elem","findInAncestors","testability","findTestabilityInTree","getAllTestabilities","getAllRootElements","callback","testabilities","count","didWork","decrement","didWork_","whenStable","getTestability","exportNgVar","COMPILED","CORE_TOKENS","ApplicationRef","NgZone","INSPECT_GLOBAL_NAME","CORE_TOKENS_GLOBAL_NAME","inspectNativeElement","getDebugNode","_createNgProbe","coreTokens","_ngProbeTokensToMap","tokens","reduce","prev","token","ELEMENT_PROBE_PROVIDERS","NgProbeToken","Optional","EVENT_MANAGER_PLUGINS","EventManager","plugins","_zone","_eventNameToPlugin","manager","_plugins","reverse","eventName","handler","_findPluginFor","addGlobalEventListener","getZone","plugin","plugin_1","supports","EventManagerPlugin","SharedStylesHost","_stylesSet","Set","addStyles","styles","additions","has","onStylesAdded","getAllStyles","from","DomSharedStylesHost","_hostNodes","_styleNodes","head","_addStylesToHost","styleEl","addHost","hostNode","removeHost","delete","ngOnDestroy","styleNode","NAMESPACE_URIS","svg","xhtml","xlink","xml","xmlns","COMPONENT_REGEX","HOST_ATTR","CONTENT_ATTR","shimContentAttribute","componentShortId","replace","shimHostAttribute","flattenStyles","compId","isArray","decoratePreventDefault","eventHandler","DomRendererFactory2","eventManager","sharedStylesHost","rendererByCompId","defaultRenderer","DefaultDomRenderer2","createRenderer","encapsulation","ViewEncapsulation","Emulated","renderer","id","EmulatedEncapsulationDomRenderer2","applyToHost","Native","ShadowDom","ShadowDomRenderer","begin","end","data","destroy","namespace","createText","refChild","selectRootElement","selectorOrNode","preserveContent","namespaceUri","flags","RendererStyleFlags2","DashCase","Important","removeProperty","checkNoSyntheticProp","listen","AT_CHARCODE","charCodeAt","nameKind","blackListedMap","component","contentAttr","hostAttr","hostEl","attachShadow","mode","nodeOrShadowRoot","__symbol__","Zone","v","ADD_EVENT_LISTENER","REMOVE_EVENT_LISTENER","symbolNames","stopSymbol","blackListedEvents","DomSanitizer","isBlackListedEvent","globalListener","symbolName","taskDatas","taskData","zone","current","run","copiedTasks","DomEventsPlugin","ngZone","platformId","isPlatformServer","patchEvent","Event","delegate","stopImmediatePropagation","isInAngularZone","globalListenerRegistered","root","callbackRegistered","underlyingRemove","found","splice","PLATFORM_ID","EVENT_NAMES","pan","panstart","panmove","panend","pancancel","panleft","panright","panup","pandown","pinch","pinchstart","pinchmove","pinchend","pinchcancel","pinchin","pinchout","press","pressup","rotate","rotatestart","rotatemove","rotateend","rotatecancel","swipe","swipeleft","swiperight","swipeup","swipedown","tap","HAMMER_GESTURE_CONFIG","HAMMER_LOADER","HammerGestureConfig","events","overrides","buildHammer","mc","Hammer","options","enable","HammerGesturesPlugin","_config","loader","isCustomEvent","warn","cancelRegistration_1","deregister_1","catch","runOutsideAngular","eventObj","runGuarded","off","indexOf","ɵConsole","MODIFIER_KEYS","MODIFIER_KEY_GETTERS","alt","altKey","control","ctrlKey","meta","metaKey","shift","shiftKey","KeyEventsPlugin","KeyEventsPlugin_1","parseEventName","parsedEvent","outsideHandler","eventCallback","parts","split","domEventName","_normalizeKey","pop","fullKey","modifierName","index","result","getEventFullKey","modifierGetter","keyName","DomSanitizerImpl","sanitize","ctx","SecurityContext","NONE","HTML","SafeHtmlImpl","changingThisBreaksApplicationSecurity","checkNotSafeValue","ɵ_sanitizeHtml","STYLE","SafeStyleImpl","ɵ_sanitizeStyle","SCRIPT","SafeScriptImpl","URL","SafeResourceUrlImpl","SafeUrlImpl","ɵ_sanitizeUrl","RESOURCE_URL","expectedType","SafeValueImpl","getTypeName","bypassSecurityTrustHtml","bypassSecurityTrustStyle","bypassSecurityTrustScript","bypassSecurityTrustUrl","bypassSecurityTrustResourceUrl","toString","INTERNAL_BROWSER_PLATFORM_PROVIDERS","useValue","ɵPLATFORM_BROWSER_ID","PLATFORM_INITIALIZER","initDomAdapter","useClass","_document","BROWSER_SANITIZATION_PROVIDERS","Sanitizer","useExisting","createPlatformFactory","platformCore","errorHandler","ErrorHandler","BROWSER_MODULE_PROVIDERS","ɵAPP_ROOT","RendererFactory2","Testability","BrowserModule","parentModule","BrowserModule_1","withServerTransition","params","ngModule","providers","APP_ID","appId","NgModule","CommonModule","ApplicationModule","SkipSelf","createMeta","Meta","inject","_dom","addTag","tag","forceCreation","_getOrCreateElement","addTags","tags","getTag","attrSelector","getTags","list","updateTag","_parseSelector","_setMetaElementAttributes","removeTag","removeTagElement","_containsAttributes","prop","attr","every","ngInjectableDef","defineInjectable","providedIn","createTitle","Title","win","ChangeDetectionPerfRecord","msPerTick","numTicks","AngularProfiler","appRef","timeChangeDetection","config","record","isProfilerAvailable","profile","start","tick","profileEnd","toFixed","TransferState","store","onSerializeCallbacks","TransferState_1","initState","transferState","defaultValue","undefined","hasKey","onSerialize","toJson","JSON","stringify","initTransferState","script","getElementById","initialState","unescapeHtml","unescapedText","&a;","&q;","&s;","&l;","&g;","BrowserTransferStateModule","By","all","debugElement","nativeElement","directive","providerTokens","VERSION","Version","ɵangular_packages_platform_browser_platform_browser_c","ɵangular_packages_platform_browser_platform_browser_b","ɵangular_packages_platform_browser_platform_browser_a","ɵangular_packages_platform_browser_platform_browser_k","ɵangular_packages_platform_browser_platform_browser_d","ɵangular_packages_platform_browser_platform_browser_i","ɵangular_packages_platform_browser_platform_browser_h","ɵangular_packages_platform_browser_platform_browser_e","ɵangular_packages_platform_browser_platform_browser_f","ɵangular_packages_platform_browser_platform_browser_j","ɵangular_packages_platform_browser_platform_browser_g","disableDebugTools","enableDebugTools","makeStateKey","ɵBROWSER_SANITIZATION_PROVIDERS","ɵINTERNAL_BROWSER_PLATFORM_PROVIDERS","ɵinitDomAdapter","ɵBrowserDomAdapter","ɵBrowserPlatformLocation","ɵTRANSITION_ID","ɵBrowserGetTestability","ɵescapeHtml","escapeHtml","escapedText","&","\"","'","<",">","ɵELEMENT_PROBE_PROVIDERS","ɵDomAdapter","ɵgetDOM","ɵsetRootDomAdapter","ɵDomRendererFactory2","ɵNAMESPACE_URIS","ɵflattenStyles","ɵshimContentAttribute","ɵshimHostAttribute","ɵDomEventsPlugin","ɵHammerGesturesPlugin","ɵKeyEventsPlugin","ɵDomSharedStylesHost","ɵSharedStylesHost","ɵDomSanitizerImpl"],"mappings":"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","sourcesContent":["/**\n * @license Angular v7.2.7\n * (c) 2010-2019 Google LLC. https://angular.io/\n * License: MIT\n */\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/common'), require('@angular/core')) :\n typeof define === 'function' && define.amd ? define('@angular/platform-browser', ['exports', '@angular/common', '@angular/core'], factory) :\n (global = global || self, factory((global.ng = global.ng || {}, global.ng.platformBrowser = {}), global.ng.common, global.ng.core));\n}(this, function (exports, common, core) { 'use strict';\n\n /*! *****************************************************************************\r\n Copyright (c) Microsoft Corporation. All rights reserved.\r\n Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\n this file except in compliance with the License. You may obtain a copy of the\r\n License at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\n THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\n KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\n WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\n MERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\n See the Apache Version 2.0 License for specific language governing permissions\r\n and limitations under the License.\r\n ***************************************************************************** */\r\n /* global Reflect, Promise */\r\n\r\n var extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n\r\n function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n }\r\n\r\n var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n };\r\n\r\n function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n }\r\n\r\n function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n }\r\n\r\n function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n }\r\n\r\n function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n }\r\n\r\n function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n }\n\n /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n var _DOM = null;\n function getDOM() {\n return _DOM;\n }\n function setRootDomAdapter(adapter) {\n if (!_DOM) {\n _DOM = adapter;\n }\n }\n /* tslint:disable:requireParameterType */\n /**\n * Provides DOM operations in an environment-agnostic way.\n *\n * @security Tread carefully! Interacting with the DOM directly is dangerous and\n * can introduce XSS risks.\n */\n var DomAdapter = /** @class */ (function () {\n function DomAdapter() {\n this.resourceLoaderType = null;\n }\n Object.defineProperty(DomAdapter.prototype, \"attrToPropMap\", {\n /**\n * Maps attribute names to their corresponding property names for cases\n * where attribute name doesn't match property name.\n */\n get: function () { return this._attrToPropMap; },\n set: function (value) { this._attrToPropMap = value; },\n enumerable: true,\n configurable: true\n });\n return DomAdapter;\n }());\n\n /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n /**\n * Provides DOM operations in any browser environment.\n *\n * @security Tread carefully! Interacting with the DOM directly is dangerous and\n * can introduce XSS risks.\n */\n var GenericBrowserDomAdapter = /** @class */ (function (_super) {\n __extends(GenericBrowserDomAdapter, _super);\n function GenericBrowserDomAdapter() {\n var _this = _super.call(this) || this;\n _this._animationPrefix = null;\n _this._transitionEnd = null;\n try {\n var element_1 = _this.createElement('div', document);\n if (_this.getStyle(element_1, 'animationName') != null) {\n _this._animationPrefix = '';\n }\n else {\n var domPrefixes = ['Webkit', 'Moz', 'O', 'ms'];\n for (var i = 0; i < domPrefixes.length; i++) {\n if (_this.getStyle(element_1, domPrefixes[i] + 'AnimationName') != null) {\n _this._animationPrefix = '-' + domPrefixes[i].toLowerCase() + '-';\n break;\n }\n }\n }\n var transEndEventNames_1 = {\n WebkitTransition: 'webkitTransitionEnd',\n MozTransition: 'transitionend',\n OTransition: 'oTransitionEnd otransitionend',\n transition: 'transitionend'\n };\n Object.keys(transEndEventNames_1).forEach(function (key) {\n if (_this.getStyle(element_1, key) != null) {\n _this._transitionEnd = transEndEventNames_1[key];\n }\n });\n }\n catch (_a) {\n _this._animationPrefix = null;\n _this._transitionEnd = null;\n }\n return _this;\n }\n GenericBrowserDomAdapter.prototype.getDistributedNodes = function (el) { return el.getDistributedNodes(); };\n GenericBrowserDomAdapter.prototype.resolveAndSetHref = function (el, baseUrl, href) {\n el.href = href == null ? baseUrl : baseUrl + '/../' + href;\n };\n GenericBrowserDomAdapter.prototype.supportsDOMEvents = function () { return true; };\n GenericBrowserDomAdapter.prototype.supportsNativeShadowDOM = function () {\n return typeof document.body.createShadowRoot === 'function';\n };\n GenericBrowserDomAdapter.prototype.getAnimationPrefix = function () { return this._animationPrefix ? this._animationPrefix : ''; };\n GenericBrowserDomAdapter.prototype.getTransitionEnd = function () { return this._transitionEnd ? this._transitionEnd : ''; };\n GenericBrowserDomAdapter.prototype.supportsAnimation = function () {\n return this._animationPrefix != null && this._transitionEnd != null;\n };\n return GenericBrowserDomAdapter;\n }(DomAdapter));\n\n /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n var _attrToPropMap = {\n 'class': 'className',\n 'innerHtml': 'innerHTML',\n 'readonly': 'readOnly',\n 'tabindex': 'tabIndex',\n };\n var DOM_KEY_LOCATION_NUMPAD = 3;\n // Map to convert some key or keyIdentifier values to what will be returned by getEventKey\n var _keyMap = {\n // The following values are here for cross-browser compatibility and to match the W3C standard\n // cf http://www.w3.org/TR/DOM-Level-3-Events-key/\n '\\b': 'Backspace',\n '\\t': 'Tab',\n '\\x7F': 'Delete',\n '\\x1B': 'Escape',\n 'Del': 'Delete',\n 'Esc': 'Escape',\n 'Left': 'ArrowLeft',\n 'Right': 'ArrowRight',\n 'Up': 'ArrowUp',\n 'Down': 'ArrowDown',\n 'Menu': 'ContextMenu',\n 'Scroll': 'ScrollLock',\n 'Win': 'OS'\n };\n // There is a bug in Chrome for numeric keypad keys:\n // https://code.google.com/p/chromium/issues/detail?id=155654\n // 1, 2, 3 ... are reported as A, B, C ...\n var _chromeNumKeyPadMap = {\n 'A': '1',\n 'B': '2',\n 'C': '3',\n 'D': '4',\n 'E': '5',\n 'F': '6',\n 'G': '7',\n 'H': '8',\n 'I': '9',\n 'J': '*',\n 'K': '+',\n 'M': '-',\n 'N': '.',\n 'O': '/',\n '\\x60': '0',\n '\\x90': 'NumLock'\n };\n var nodeContains;\n if (core.ɵglobal['Node']) {\n nodeContains = core.ɵglobal['Node'].prototype.contains || function (node) {\n return !!(this.compareDocumentPosition(node) & 16);\n };\n }\n /**\n * A `DomAdapter` powered by full browser DOM APIs.\n *\n * @security Tread carefully! Interacting with the DOM directly is dangerous and\n * can introduce XSS risks.\n */\n /* tslint:disable:requireParameterType no-console */\n var BrowserDomAdapter = /** @class */ (function (_super) {\n __extends(BrowserDomAdapter, _super);\n function BrowserDomAdapter() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n BrowserDomAdapter.prototype.parse = function (templateHtml) { throw new Error('parse not implemented'); };\n BrowserDomAdapter.makeCurrent = function () { setRootDomAdapter(new BrowserDomAdapter()); };\n BrowserDomAdapter.prototype.hasProperty = function (element, name) { return name in element; };\n BrowserDomAdapter.prototype.setProperty = function (el, name, value) { el[name] = value; };\n BrowserDomAdapter.prototype.getProperty = function (el, name) { return el[name]; };\n BrowserDomAdapter.prototype.invoke = function (el, methodName, args) {\n var _a;\n (_a = el)[methodName].apply(_a, __spread(args));\n };\n // TODO(tbosch): move this into a separate environment class once we have it\n BrowserDomAdapter.prototype.logError = function (error) {\n if (window.console) {\n if (console.error) {\n console.error(error);\n }\n else {\n console.log(error);\n }\n }\n };\n BrowserDomAdapter.prototype.log = function (error) {\n if (window.console) {\n window.console.log && window.console.log(error);\n }\n };\n BrowserDomAdapter.prototype.logGroup = function (error) {\n if (window.console) {\n window.console.group && window.console.group(error);\n }\n };\n BrowserDomAdapter.prototype.logGroupEnd = function () {\n if (window.console) {\n window.console.groupEnd && window.console.groupEnd();\n }\n };\n Object.defineProperty(BrowserDomAdapter.prototype, \"attrToPropMap\", {\n get: function () { return _attrToPropMap; },\n enumerable: true,\n configurable: true\n });\n BrowserDomAdapter.prototype.contains = function (nodeA, nodeB) { return nodeContains.call(nodeA, nodeB); };\n BrowserDomAdapter.prototype.querySelector = function (el, selector) { return el.querySelector(selector); };\n BrowserDomAdapter.prototype.querySelectorAll = function (el, selector) { return el.querySelectorAll(selector); };\n BrowserDomAdapter.prototype.on = function (el, evt, listener) { el.addEventListener(evt, listener, false); };\n BrowserDomAdapter.prototype.onAndCancel = function (el, evt, listener) {\n el.addEventListener(evt, listener, false);\n // Needed to follow Dart's subscription semantic, until fix of\n // https://code.google.com/p/dart/issues/detail?id=17406\n return function () { el.removeEventListener(evt, listener, false); };\n };\n BrowserDomAdapter.prototype.dispatchEvent = function (el, evt) { el.dispatchEvent(evt); };\n BrowserDomAdapter.prototype.createMouseEvent = function (eventType) {\n var evt = this.getDefaultDocument().createEvent('MouseEvent');\n evt.initEvent(eventType, true, true);\n return evt;\n };\n BrowserDomAdapter.prototype.createEvent = function (eventType) {\n var evt = this.getDefaultDocument().createEvent('Event');\n evt.initEvent(eventType, true, true);\n return evt;\n };\n BrowserDomAdapter.prototype.preventDefault = function (evt) {\n evt.preventDefault();\n evt.returnValue = false;\n };\n BrowserDomAdapter.prototype.isPrevented = function (evt) {\n return evt.defaultPrevented || evt.returnValue != null && !evt.returnValue;\n };\n BrowserDomAdapter.prototype.getInnerHTML = function (el) { return el.innerHTML; };\n BrowserDomAdapter.prototype.getTemplateContent = function (el) {\n return 'content' in el && this.isTemplateElement(el) ? el.content : null;\n };\n BrowserDomAdapter.prototype.getOuterHTML = function (el) { return el.outerHTML; };\n BrowserDomAdapter.prototype.nodeName = function (node) { return node.nodeName; };\n BrowserDomAdapter.prototype.nodeValue = function (node) { return node.nodeValue; };\n BrowserDomAdapter.prototype.type = function (node) { return node.type; };\n BrowserDomAdapter.prototype.content = function (node) {\n if (this.hasProperty(node, 'content')) {\n return node.content;\n }\n else {\n return node;\n }\n };\n BrowserDomAdapter.prototype.firstChild = function (el) { return el.firstChild; };\n BrowserDomAdapter.prototype.nextSibling = function (el) { return el.nextSibling; };\n BrowserDomAdapter.prototype.parentElement = function (el) { return el.parentNode; };\n BrowserDomAdapter.prototype.childNodes = function (el) { return el.childNodes; };\n BrowserDomAdapter.prototype.childNodesAsList = function (el) {\n var childNodes = el.childNodes;\n var res = new Array(childNodes.length);\n for (var i = 0; i < childNodes.length; i++) {\n res[i] = childNodes[i];\n }\n return res;\n };\n BrowserDomAdapter.prototype.clearNodes = function (el) {\n while (el.firstChild) {\n el.removeChild(el.firstChild);\n }\n };\n BrowserDomAdapter.prototype.appendChild = function (el, node) { el.appendChild(node); };\n BrowserDomAdapter.prototype.removeChild = function (el, node) { el.removeChild(node); };\n BrowserDomAdapter.prototype.replaceChild = function (el, newChild, oldChild) { el.replaceChild(newChild, oldChild); };\n BrowserDomAdapter.prototype.remove = function (node) {\n if (node.parentNode) {\n node.parentNode.removeChild(node);\n }\n return node;\n };\n BrowserDomAdapter.prototype.insertBefore = function (parent, ref, node) { parent.insertBefore(node, ref); };\n BrowserDomAdapter.prototype.insertAllBefore = function (parent, ref, nodes) {\n nodes.forEach(function (n) { return parent.insertBefore(n, ref); });\n };\n BrowserDomAdapter.prototype.insertAfter = function (parent, ref, node) { parent.insertBefore(node, ref.nextSibling); };\n BrowserDomAdapter.prototype.setInnerHTML = function (el, value) { el.innerHTML = value; };\n BrowserDomAdapter.prototype.getText = function (el) { return el.textContent; };\n BrowserDomAdapter.prototype.setText = function (el, value) { el.textContent = value; };\n BrowserDomAdapter.prototype.getValue = function (el) { return el.value; };\n BrowserDomAdapter.prototype.setValue = function (el, value) { el.value = value; };\n BrowserDomAdapter.prototype.getChecked = function (el) { return el.checked; };\n BrowserDomAdapter.prototype.setChecked = function (el, value) { el.checked = value; };\n BrowserDomAdapter.prototype.createComment = function (text) { return this.getDefaultDocument().createComment(text); };\n BrowserDomAdapter.prototype.createTemplate = function (html) {\n var t = this.getDefaultDocument().createElement('template');\n t.innerHTML = html;\n return t;\n };\n BrowserDomAdapter.prototype.createElement = function (tagName, doc) {\n doc = doc || this.getDefaultDocument();\n return doc.createElement(tagName);\n };\n BrowserDomAdapter.prototype.createElementNS = function (ns, tagName, doc) {\n doc = doc || this.getDefaultDocument();\n return doc.createElementNS(ns, tagName);\n };\n BrowserDomAdapter.prototype.createTextNode = function (text, doc) {\n doc = doc || this.getDefaultDocument();\n return doc.createTextNode(text);\n };\n BrowserDomAdapter.prototype.createScriptTag = function (attrName, attrValue, doc) {\n doc = doc || this.getDefaultDocument();\n var el = doc.createElement('SCRIPT');\n el.setAttribute(attrName, attrValue);\n return el;\n };\n BrowserDomAdapter.prototype.createStyleElement = function (css, doc) {\n doc = doc || this.getDefaultDocument();\n var style = doc.createElement('style');\n this.appendChild(style, this.createTextNode(css, doc));\n return style;\n };\n BrowserDomAdapter.prototype.createShadowRoot = function (el) { return el.createShadowRoot(); };\n BrowserDomAdapter.prototype.getShadowRoot = function (el) { return el.shadowRoot; };\n BrowserDomAdapter.prototype.getHost = function (el) { return el.host; };\n BrowserDomAdapter.prototype.clone = function (node) { return node.cloneNode(true); };\n BrowserDomAdapter.prototype.getElementsByClassName = function (element, name) {\n return element.getElementsByClassName(name);\n };\n BrowserDomAdapter.prototype.getElementsByTagName = function (element, name) {\n return element.getElementsByTagName(name);\n };\n BrowserDomAdapter.prototype.classList = function (element) { return Array.prototype.slice.call(element.classList, 0); };\n BrowserDomAdapter.prototype.addClass = function (element, className) { element.classList.add(className); };\n BrowserDomAdapter.prototype.removeClass = function (element, className) { element.classList.remove(className); };\n BrowserDomAdapter.prototype.hasClass = function (element, className) {\n return element.classList.contains(className);\n };\n BrowserDomAdapter.prototype.setStyle = function (element, styleName, styleValue) {\n element.style[styleName] = styleValue;\n };\n BrowserDomAdapter.prototype.removeStyle = function (element, stylename) {\n // IE requires '' instead of null\n // see https://github.com/angular/angular/issues/7916\n element.style[stylename] = '';\n };\n BrowserDomAdapter.prototype.getStyle = function (element, stylename) { return element.style[stylename]; };\n BrowserDomAdapter.prototype.hasStyle = function (element, styleName, styleValue) {\n var value = this.getStyle(element, styleName) || '';\n return styleValue ? value == styleValue : value.length > 0;\n };\n BrowserDomAdapter.prototype.tagName = function (element) { return element.tagName; };\n BrowserDomAdapter.prototype.attributeMap = function (element) {\n var res = new Map();\n var elAttrs = element.attributes;\n for (var i = 0; i < elAttrs.length; i++) {\n var attrib = elAttrs.item(i);\n res.set(attrib.name, attrib.value);\n }\n return res;\n };\n BrowserDomAdapter.prototype.hasAttribute = function (element, attribute) {\n return element.hasAttribute(attribute);\n };\n BrowserDomAdapter.prototype.hasAttributeNS = function (element, ns, attribute) {\n return element.hasAttributeNS(ns, attribute);\n };\n BrowserDomAdapter.prototype.getAttribute = function (element, attribute) {\n return element.getAttribute(attribute);\n };\n BrowserDomAdapter.prototype.getAttributeNS = function (element, ns, name) {\n return element.getAttributeNS(ns, name);\n };\n BrowserDomAdapter.prototype.setAttribute = function (element, name, value) { element.setAttribute(name, value); };\n BrowserDomAdapter.prototype.setAttributeNS = function (element, ns, name, value) {\n element.setAttributeNS(ns, name, value);\n };\n BrowserDomAdapter.prototype.removeAttribute = function (element, attribute) { element.removeAttribute(attribute); };\n BrowserDomAdapter.prototype.removeAttributeNS = function (element, ns, name) {\n element.removeAttributeNS(ns, name);\n };\n BrowserDomAdapter.prototype.templateAwareRoot = function (el) { return this.isTemplateElement(el) ? this.content(el) : el; };\n BrowserDomAdapter.prototype.createHtmlDocument = function () {\n return document.implementation.createHTMLDocument('fakeTitle');\n };\n BrowserDomAdapter.prototype.getDefaultDocument = function () { return document; };\n BrowserDomAdapter.prototype.getBoundingClientRect = function (el) {\n try {\n return el.getBoundingClientRect();\n }\n catch (_a) {\n return { top: 0, bottom: 0, left: 0, right: 0, width: 0, height: 0 };\n }\n };\n BrowserDomAdapter.prototype.getTitle = function (doc) { return doc.title; };\n BrowserDomAdapter.prototype.setTitle = function (doc, newTitle) { doc.title = newTitle || ''; };\n BrowserDomAdapter.prototype.elementMatches = function (n, selector) {\n if (this.isElementNode(n)) {\n return n.matches && n.matches(selector) ||\n n.msMatchesSelector && n.msMatchesSelector(selector) ||\n n.webkitMatchesSelector && n.webkitMatchesSelector(selector);\n }\n return false;\n };\n BrowserDomAdapter.prototype.isTemplateElement = function (el) {\n return this.isElementNode(el) && el.nodeName === 'TEMPLATE';\n };\n BrowserDomAdapter.prototype.isTextNode = function (node) { return node.nodeType === Node.TEXT_NODE; };\n BrowserDomAdapter.prototype.isCommentNode = function (node) { return node.nodeType === Node.COMMENT_NODE; };\n BrowserDomAdapter.prototype.isElementNode = function (node) { return node.nodeType === Node.ELEMENT_NODE; };\n BrowserDomAdapter.prototype.hasShadowRoot = function (node) {\n return node.shadowRoot != null && node instanceof HTMLElement;\n };\n BrowserDomAdapter.prototype.isShadowRoot = function (node) { return node instanceof DocumentFragment; };\n BrowserDomAdapter.prototype.importIntoDoc = function (node) { return document.importNode(this.templateAwareRoot(node), true); };\n BrowserDomAdapter.prototype.adoptNode = function (node) { return document.adoptNode(node); };\n BrowserDomAdapter.prototype.getHref = function (el) { return el.getAttribute('href'); };\n BrowserDomAdapter.prototype.getEventKey = function (event) {\n var key = event.key;\n if (key == null) {\n key = event.keyIdentifier;\n // keyIdentifier is defined in the old draft of DOM Level 3 Events implemented by Chrome and\n // Safari cf\n // http://www.w3.org/TR/2007/WD-DOM-Level-3-Events-20071221/events.html#Events-KeyboardEvents-Interfaces\n if (key == null) {\n return 'Unidentified';\n }\n if (key.startsWith('U+')) {\n key = String.fromCharCode(parseInt(key.substring(2), 16));\n if (event.location === DOM_KEY_LOCATION_NUMPAD && _chromeNumKeyPadMap.hasOwnProperty(key)) {\n // There is a bug in Chrome for numeric keypad keys:\n // https://code.google.com/p/chromium/issues/detail?id=155654\n // 1, 2, 3 ... are reported as A, B, C ...\n key = _chromeNumKeyPadMap[key];\n }\n }\n }\n return _keyMap[key] || key;\n };\n BrowserDomAdapter.prototype.getGlobalEventTarget = function (doc, target) {\n if (target === 'window') {\n return window;\n }\n if (target === 'document') {\n return doc;\n }\n if (target === 'body') {\n return doc.body;\n }\n return null;\n };\n BrowserDomAdapter.prototype.getHistory = function () { return window.history; };\n BrowserDomAdapter.prototype.getLocation = function () { return window.location; };\n BrowserDomAdapter.prototype.getBaseHref = function (doc) {\n var href = getBaseElementHref();\n return href == null ? null : relativePath(href);\n };\n BrowserDomAdapter.prototype.resetBaseElement = function () { baseElement = null; };\n BrowserDomAdapter.prototype.getUserAgent = function () { return window.navigator.userAgent; };\n BrowserDomAdapter.prototype.setData = function (element, name, value) {\n this.setAttribute(element, 'data-' + name, value);\n };\n BrowserDomAdapter.prototype.getData = function (element, name) {\n return this.getAttribute(element, 'data-' + name);\n };\n BrowserDomAdapter.prototype.getComputedStyle = function (element) { return getComputedStyle(element); };\n // TODO(tbosch): move this into a separate environment class once we have it\n BrowserDomAdapter.prototype.supportsWebAnimation = function () {\n return typeof Element.prototype['animate'] === 'function';\n };\n BrowserDomAdapter.prototype.performanceNow = function () {\n // performance.now() is not available in all browsers, see\n // http://caniuse.com/#search=performance.now\n return window.performance && window.performance.now ? window.performance.now() :\n new Date().getTime();\n };\n BrowserDomAdapter.prototype.supportsCookies = function () { return true; };\n BrowserDomAdapter.prototype.getCookie = function (name) { return common.ɵparseCookieValue(document.cookie, name); };\n BrowserDomAdapter.prototype.setCookie = function (name, value) {\n // document.cookie is magical, assigning into it assigns/overrides one cookie value, but does\n // not clear other cookies.\n document.cookie = encodeURIComponent(name) + '=' + encodeURIComponent(value);\n };\n return BrowserDomAdapter;\n }(GenericBrowserDomAdapter));\n var baseElement = null;\n function getBaseElementHref() {\n if (!baseElement) {\n baseElement = document.querySelector('base');\n if (!baseElement) {\n return null;\n }\n }\n return baseElement.getAttribute('href');\n }\n // based on urlUtils.js in AngularJS 1\n var urlParsingNode;\n function relativePath(url) {\n if (!urlParsingNode) {\n urlParsingNode = document.createElement('a');\n }\n urlParsingNode.setAttribute('href', url);\n return (urlParsingNode.pathname.charAt(0) === '/') ? urlParsingNode.pathname :\n '/' + urlParsingNode.pathname;\n }\n\n /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n /**\n * A DI Token representing the main rendering context. In a browser this is the DOM Document.\n *\n * Note: Document might not be available in the Application Context when Application and Rendering\n * Contexts are not the same (e.g. when running the application into a Web Worker).\n *\n * @deprecated import from `@angular/common` instead.\n * @publicApi\n */\n var DOCUMENT = common.DOCUMENT;\n\n /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n function supportsState() {\n return !!window.history.pushState;\n }\n\n /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n /**\n * `PlatformLocation` encapsulates all of the direct calls to platform APIs.\n * This class should not be used directly by an application developer. Instead, use\n * {@link Location}.\n */\n var BrowserPlatformLocation = /** @class */ (function (_super) {\n __extends(BrowserPlatformLocation, _super);\n function BrowserPlatformLocation(_doc) {\n var _this = _super.call(this) || this;\n _this._doc = _doc;\n _this._init();\n return _this;\n }\n // This is moved to its own method so that `MockPlatformLocationStrategy` can overwrite it\n /** @internal */\n BrowserPlatformLocation.prototype._init = function () {\n this.location = getDOM().getLocation();\n this._history = getDOM().getHistory();\n };\n BrowserPlatformLocation.prototype.getBaseHrefFromDOM = function () { return getDOM().getBaseHref(this._doc); };\n BrowserPlatformLocation.prototype.onPopState = function (fn) {\n getDOM().getGlobalEventTarget(this._doc, 'window').addEventListener('popstate', fn, false);\n };\n BrowserPlatformLocation.prototype.onHashChange = function (fn) {\n getDOM().getGlobalEventTarget(this._doc, 'window').addEventListener('hashchange', fn, false);\n };\n Object.defineProperty(BrowserPlatformLocation.prototype, \"pathname\", {\n get: function () { return this.location.pathname; },\n set: function (newPath) { this.location.pathname = newPath; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BrowserPlatformLocation.prototype, \"search\", {\n get: function () { return this.location.search; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BrowserPlatformLocation.prototype, \"hash\", {\n get: function () { return this.location.hash; },\n enumerable: true,\n configurable: true\n });\n BrowserPlatformLocation.prototype.pushState = function (state, title, url) {\n if (supportsState()) {\n this._history.pushState(state, title, url);\n }\n else {\n this.location.hash = url;\n }\n };\n BrowserPlatformLocation.prototype.replaceState = function (state, title, url) {\n if (supportsState()) {\n this._history.replaceState(state, title, url);\n }\n else {\n this.location.hash = url;\n }\n };\n BrowserPlatformLocation.prototype.forward = function () { this._history.forward(); };\n BrowserPlatformLocation.prototype.back = function () { this._history.back(); };\n BrowserPlatformLocation = __decorate([\n core.Injectable(),\n __param(0, core.Inject(DOCUMENT)),\n __metadata(\"design:paramtypes\", [Object])\n ], BrowserPlatformLocation);\n return BrowserPlatformLocation;\n }(common.PlatformLocation));\n\n /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n /**\n * An id that identifies a particular application being bootstrapped, that should\n * match across the client/server boundary.\n */\n var TRANSITION_ID = new core.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(core.ApplicationInitStatus).donePromise.then(function () {\n var dom = getDOM();\n var styles = Array.prototype.slice.apply(dom.querySelectorAll(document, \"style[ng-transition]\"));\n styles.filter(function (el) { return dom.getAttribute(el, 'ng-transition') === transitionId; })\n .forEach(function (el) { return dom.remove(el); });\n });\n };\n }\n var SERVER_TRANSITION_PROVIDERS = [\n {\n provide: core.APP_INITIALIZER,\n useFactory: appInitializerFactory,\n deps: [TRANSITION_ID, DOCUMENT, core.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 () { core.setTestabilityGetter(new BrowserGetTestability()); };\n BrowserGetTestability.prototype.addToWindow = function (registry) {\n core.ɵ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 core.ɵglobal['getAllAngularTestabilities'] = function () { return registry.getAllTestabilities(); };\n core.ɵglobal['getAllAngularRootElements'] = function () { return registry.getAllRootElements(); };\n var whenAllStable = function (callback /** TODO #9100 */) {\n var testabilities = core.ɵ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 (!core.ɵglobal['frameworkStabilizers']) {\n core.ɵglobal['frameworkStabilizers'] = [];\n }\n core.ɵglobal['frameworkStabilizers'].push(whenAllStable);\n };\n BrowserGetTestability.prototype.findTestabilityInTree = function (registry, elem, findInAncestors) {\n if (elem == null) {\n return null;\n }\n var t = registry.getTestability(elem);\n if (t != null) {\n return t;\n }\n else if (!findInAncestors) {\n return null;\n }\n if (getDOM().isShadowRoot(elem)) {\n return this.findTestabilityInTree(registry, getDOM().getHost(elem), true);\n }\n return this.findTestabilityInTree(registry, getDOM().parentElement(elem), true);\n };\n return BrowserGetTestability;\n }());\n\n /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n /**\n * Exports the value under a given `name` in the global property `ng`. For example `ng.probe` if\n * `name` is `'probe'`.\n * @param name Name under which it will be exported. Keep in mind this will be a property of the\n * global `ng` object.\n * @param value The value to export.\n */\n function exportNgVar(name, value) {\n if (typeof COMPILED === 'undefined' || !COMPILED) {\n // Note: we can't export `ng` when using closure enhanced optimization as:\n // - closure declares globals itself for minified names, which sometimes clobber our `ng` global\n // - we can't declare a closure extern as the namespace `ng` is already used within Google\n // for typings for angularJS (via `goog.provide('ng....')`).\n var ng = core.ɵglobal['ng'] = core.ɵ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 CORE_TOKENS = {\n 'ApplicationRef': core.ApplicationRef,\n 'NgZone': core.NgZone,\n };\n var INSPECT_GLOBAL_NAME = 'probe';\n var CORE_TOKENS_GLOBAL_NAME = 'coreTokens';\n /**\n * Returns a {@link DebugElement} for the given native DOM element, or\n * null if the given native element does not have an Angular view associated\n * with it.\n */\n function inspectNativeElement(element) {\n return core.getDebugNode(element);\n }\n function _createNgProbe(coreTokens) {\n exportNgVar(INSPECT_GLOBAL_NAME, inspectNativeElement);\n exportNgVar(CORE_TOKENS_GLOBAL_NAME, __assign({}, CORE_TOKENS, _ngProbeTokensToMap(coreTokens || [])));\n return function () { return inspectNativeElement; };\n }\n function _ngProbeTokensToMap(tokens) {\n return tokens.reduce(function (prev, t) { return (prev[t.name] = t.token, prev); }, {});\n }\n /**\n * Providers which support debugging Angular applications (e.g. via `ng.probe`).\n */\n var ELEMENT_PROBE_PROVIDERS = [\n {\n provide: core.APP_INITIALIZER,\n useFactory: _createNgProbe,\n deps: [\n [core.NgProbeToken, new core.Optional()],\n ],\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 /**\n * The injection token for the event-manager plug-in service.\n *\n * @publicApi\n */\n var EVENT_MANAGER_PLUGINS = new core.InjectionToken('EventManagerPlugins');\n /**\n * An injectable service that provides event management for Angular\n * through a browser plug-in.\n *\n * @publicApi\n */\n var EventManager = /** @class */ (function () {\n /**\n * Initializes an instance of the event-manager service.\n */\n function EventManager(plugins, _zone) {\n var _this = this;\n this._zone = _zone;\n this._eventNameToPlugin = new Map();\n plugins.forEach(function (p) { return p.manager = _this; });\n this._plugins = plugins.slice().reverse();\n }\n /**\n * Registers a handler for a specific element and event.\n *\n * @param element The HTML element to receive event notifications.\n * @param eventName The name of the event to listen for.\n * @param handler A function to call when the notification occurs. Receives the\n * event object as an argument.\n * @returns A callback function that can be used to remove the handler.\n */\n EventManager.prototype.addEventListener = function (element, eventName, handler) {\n var plugin = this._findPluginFor(eventName);\n return plugin.addEventListener(element, eventName, handler);\n };\n /**\n * Registers a global handler for an event in a target view.\n *\n * @param target A target for global event notifications. One of \"window\", \"document\", or \"body\".\n * @param eventName The name of the event to listen for.\n * @param handler A function to call when the notification occurs. Receives the\n * event object as an argument.\n * @returns A callback function that can be used to remove the handler.\n */\n EventManager.prototype.addGlobalEventListener = function (target, eventName, handler) {\n var plugin = this._findPluginFor(eventName);\n return plugin.addGlobalEventListener(target, eventName, handler);\n };\n /**\n * Retrieves the compilation zone in which event listeners are registered.\n */\n EventManager.prototype.getZone = function () { return this._zone; };\n /** @internal */\n EventManager.prototype._findPluginFor = function (eventName) {\n var plugin = this._eventNameToPlugin.get(eventName);\n if (plugin) {\n return plugin;\n }\n var plugins = this._plugins;\n for (var i = 0; i < plugins.length; i++) {\n var plugin_1 = plugins[i];\n if (plugin_1.supports(eventName)) {\n this._eventNameToPlugin.set(eventName, plugin_1);\n return plugin_1;\n }\n }\n throw new Error(\"No event manager plugin found for event \" + eventName);\n };\n EventManager = __decorate([\n core.Injectable(),\n __param(0, core.Inject(EVENT_MANAGER_PLUGINS)),\n __metadata(\"design:paramtypes\", [Array, core.NgZone])\n ], EventManager);\n return EventManager;\n }());\n var EventManagerPlugin = /** @class */ (function () {\n function EventManagerPlugin(_doc) {\n this._doc = _doc;\n }\n EventManagerPlugin.prototype.addGlobalEventListener = function (element, eventName, handler) {\n var target = getDOM().getGlobalEventTarget(this._doc, element);\n if (!target) {\n throw new Error(\"Unsupported event target \" + target + \" for event \" + eventName);\n }\n return this.addEventListener(target, eventName, handler);\n };\n return EventManagerPlugin;\n }());\n\n /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n var SharedStylesHost = /** @class */ (function () {\n function SharedStylesHost() {\n /** @internal */\n this._stylesSet = new Set();\n }\n SharedStylesHost.prototype.addStyles = function (styles) {\n var _this = this;\n var additions = new Set();\n styles.forEach(function (style) {\n if (!_this._stylesSet.has(style)) {\n _this._stylesSet.add(style);\n additions.add(style);\n }\n });\n this.onStylesAdded(additions);\n };\n SharedStylesHost.prototype.onStylesAdded = function (additions) { };\n SharedStylesHost.prototype.getAllStyles = function () { return Array.from(this._stylesSet); };\n SharedStylesHost = __decorate([\n core.Injectable()\n ], SharedStylesHost);\n return SharedStylesHost;\n }());\n var DomSharedStylesHost = /** @class */ (function (_super) {\n __extends(DomSharedStylesHost, _super);\n function DomSharedStylesHost(_doc) {\n var _this = _super.call(this) || this;\n _this._doc = _doc;\n _this._hostNodes = new Set();\n _this._styleNodes = new Set();\n _this._hostNodes.add(_doc.head);\n return _this;\n }\n DomSharedStylesHost.prototype._addStylesToHost = function (styles, host) {\n var _this = this;\n styles.forEach(function (style) {\n var styleEl = _this._doc.createElement('style');\n styleEl.textContent = style;\n _this._styleNodes.add(host.appendChild(styleEl));\n });\n };\n DomSharedStylesHost.prototype.addHost = function (hostNode) {\n this._addStylesToHost(this._stylesSet, hostNode);\n this._hostNodes.add(hostNode);\n };\n DomSharedStylesHost.prototype.removeHost = function (hostNode) { this._hostNodes.delete(hostNode); };\n DomSharedStylesHost.prototype.onStylesAdded = function (additions) {\n var _this = this;\n this._hostNodes.forEach(function (hostNode) { return _this._addStylesToHost(additions, hostNode); });\n };\n DomSharedStylesHost.prototype.ngOnDestroy = function () { this._styleNodes.forEach(function (styleNode) { return getDOM().remove(styleNode); }); };\n DomSharedStylesHost = __decorate([\n core.Injectable(),\n __param(0, core.Inject(DOCUMENT)),\n __metadata(\"design:paramtypes\", [Object])\n ], DomSharedStylesHost);\n return DomSharedStylesHost;\n }(SharedStylesHost));\n\n /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n var NAMESPACE_URIS = {\n 'svg': 'http://www.w3.org/2000/svg',\n 'xhtml': 'http://www.w3.org/1999/xhtml',\n 'xlink': 'http://www.w3.org/1999/xlink',\n 'xml': 'http://www.w3.org/XML/1998/namespace',\n 'xmlns': 'http://www.w3.org/2000/xmlns/',\n };\n var COMPONENT_REGEX = /%COMP%/g;\n var COMPONENT_VARIABLE = '%COMP%';\n var HOST_ATTR = \"_nghost-\" + COMPONENT_VARIABLE;\n var CONTENT_ATTR = \"_ngcontent-\" + COMPONENT_VARIABLE;\n function shimContentAttribute(componentShortId) {\n return CONTENT_ATTR.replace(COMPONENT_REGEX, componentShortId);\n }\n function shimHostAttribute(componentShortId) {\n return HOST_ATTR.replace(COMPONENT_REGEX, componentShortId);\n }\n function flattenStyles(compId, styles, target) {\n for (var i = 0; i < styles.length; i++) {\n var style = styles[i];\n if (Array.isArray(style)) {\n flattenStyles(compId, style, target);\n }\n else {\n style = style.replace(COMPONENT_REGEX, compId);\n target.push(style);\n }\n }\n return target;\n }\n function decoratePreventDefault(eventHandler) {\n return function (event) {\n var allowDefaultBehavior = eventHandler(event);\n if (allowDefaultBehavior === false) {\n // TODO(tbosch): move preventDefault into event plugins...\n event.preventDefault();\n event.returnValue = false;\n }\n };\n }\n var DomRendererFactory2 = /** @class */ (function () {\n function DomRendererFactory2(eventManager, sharedStylesHost) {\n this.eventManager = eventManager;\n this.sharedStylesHost = sharedStylesHost;\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 core.ViewEncapsulation.Emulated: {\n var renderer = this.rendererByCompId.get(type.id);\n if (!renderer) {\n renderer =\n new EmulatedEncapsulationDomRenderer2(this.eventManager, this.sharedStylesHost, type);\n this.rendererByCompId.set(type.id, renderer);\n }\n renderer.applyToHost(element);\n return renderer;\n }\n case core.ViewEncapsulation.Native:\n case core.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 core.Injectable(),\n __metadata(\"design:paramtypes\", [EventManager, DomSharedStylesHost])\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 return document.createElementNS(NAMESPACE_URIS[namespace], name);\n }\n return document.createElement(name);\n };\n DefaultDomRenderer2.prototype.createComment = function (value) { return document.createComment(value); };\n DefaultDomRenderer2.prototype.createText = function (value) { return document.createTextNode(value); };\n DefaultDomRenderer2.prototype.appendChild = function (parent, newChild) { parent.appendChild(newChild); };\n DefaultDomRenderer2.prototype.insertBefore = function (parent, newChild, refChild) {\n if (parent) {\n parent.insertBefore(newChild, refChild);\n }\n };\n DefaultDomRenderer2.prototype.removeChild = function (parent, oldChild) {\n if (parent) {\n parent.removeChild(oldChild);\n }\n };\n DefaultDomRenderer2.prototype.selectRootElement = function (selectorOrNode, preserveContent) {\n var el = typeof selectorOrNode === 'string' ? document.querySelector(selectorOrNode) :\n selectorOrNode;\n if (!el) {\n throw new Error(\"The selector \\\"\" + selectorOrNode + \"\\\" did not match any elements\");\n }\n if (!preserveContent) {\n el.textContent = '';\n }\n return el;\n };\n DefaultDomRenderer2.prototype.parentNode = function (node) { return node.parentNode; };\n DefaultDomRenderer2.prototype.nextSibling = function (node) { return node.nextSibling; };\n DefaultDomRenderer2.prototype.setAttribute = function (el, name, value, namespace) {\n if (namespace) {\n name = namespace + \":\" + name;\n 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 var namespaceUri = NAMESPACE_URIS[namespace];\n if (namespaceUri) {\n el.removeAttributeNS(namespaceUri, name);\n }\n else {\n el.removeAttribute(namespace + \":\" + name);\n }\n }\n else {\n el.removeAttribute(name);\n }\n };\n DefaultDomRenderer2.prototype.addClass = function (el, name) { el.classList.add(name); };\n DefaultDomRenderer2.prototype.removeClass = function (el, name) { el.classList.remove(name); };\n DefaultDomRenderer2.prototype.setStyle = function (el, style, value, flags) {\n if (flags & core.RendererStyleFlags2.DashCase) {\n el.style.setProperty(style, value, !!(flags & core.RendererStyleFlags2.Important) ? 'important' : '');\n }\n else {\n el.style[style] = value;\n }\n };\n DefaultDomRenderer2.prototype.removeStyle = function (el, style, flags) {\n if (flags & core.RendererStyleFlags2.DashCase) {\n el.style.removeProperty(style);\n }\n else {\n // IE requires '' instead of null\n // see https://github.com/angular/angular/issues/7916\n el.style[style] = '';\n }\n };\n DefaultDomRenderer2.prototype.setProperty = function (el, name, value) {\n checkNoSyntheticProp(name, 'property');\n el[name] = value;\n };\n DefaultDomRenderer2.prototype.setValue = function (node, value) { node.nodeValue = value; };\n DefaultDomRenderer2.prototype.listen = function (target, event, callback) {\n checkNoSyntheticProp(event, 'listener');\n if (typeof target === 'string') {\n return this.eventManager.addGlobalEventListener(target, event, decoratePreventDefault(callback));\n }\n return this.eventManager.addEventListener(target, event, decoratePreventDefault(callback));\n };\n return DefaultDomRenderer2;\n }());\n var AT_CHARCODE = '@'.charCodeAt(0);\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) {\n var _this = _super.call(this, eventManager) || this;\n _this.component = component;\n var styles = flattenStyles(component.id, component.styles, []);\n sharedStylesHost.addStyles(styles);\n _this.contentAttr = shimContentAttribute(component.id);\n _this.hostAttr = shimHostAttribute(component.id);\n return _this;\n }\n EmulatedEncapsulationDomRenderer2.prototype.applyToHost = function (element) { _super.prototype.setAttribute.call(this, element, this.hostAttr, ''); };\n EmulatedEncapsulationDomRenderer2.prototype.createElement = function (parent, name) {\n var el = _super.prototype.createElement.call(this, parent, name);\n _super.prototype.setAttribute.call(this, el, this.contentAttr, '');\n return el;\n };\n return EmulatedEncapsulationDomRenderer2;\n }(DefaultDomRenderer2));\n var ShadowDomRenderer = /** @class */ (function (_super) {\n __extends(ShadowDomRenderer, _super);\n function ShadowDomRenderer(eventManager, sharedStylesHost, hostEl, component) {\n var _this = _super.call(this, eventManager) || this;\n _this.sharedStylesHost = sharedStylesHost;\n _this.hostEl = hostEl;\n _this.component = component;\n if (component.encapsulation === core.ViewEncapsulation.ShadowDom) {\n _this.shadowRoot = hostEl.attachShadow({ mode: 'open' });\n }\n else {\n _this.shadowRoot = hostEl.createShadowRoot();\n }\n _this.sharedStylesHost.addHost(_this.shadowRoot);\n var styles = flattenStyles(component.id, component.styles, []);\n for (var i = 0; i < styles.length; i++) {\n var styleEl = document.createElement('style');\n styleEl.textContent = styles[i];\n _this.shadowRoot.appendChild(styleEl);\n }\n return _this;\n }\n ShadowDomRenderer.prototype.nodeOrShadowRoot = function (node) { return node === this.hostEl ? this.shadowRoot : node; };\n ShadowDomRenderer.prototype.destroy = function () { this.sharedStylesHost.removeHost(this.shadowRoot); };\n ShadowDomRenderer.prototype.appendChild = function (parent, newChild) {\n return _super.prototype.appendChild.call(this, this.nodeOrShadowRoot(parent), newChild);\n };\n ShadowDomRenderer.prototype.insertBefore = function (parent, newChild, refChild) {\n return _super.prototype.insertBefore.call(this, this.nodeOrShadowRoot(parent), newChild, refChild);\n };\n ShadowDomRenderer.prototype.removeChild = function (parent, oldChild) {\n return _super.prototype.removeChild.call(this, this.nodeOrShadowRoot(parent), oldChild);\n };\n ShadowDomRenderer.prototype.parentNode = function (node) {\n return this.nodeOrShadowRoot(_super.prototype.parentNode.call(this, this.nodeOrShadowRoot(node)));\n };\n return ShadowDomRenderer;\n }(DefaultDomRenderer2));\n\n /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n var ɵ0 = function (v) {\n return '__zone_symbol__' + v;\n };\n /**\n * Detect if Zone is present. If it is then use simple zone aware 'addEventListener'\n * since Angular can do much more\n * efficient bookkeeping than Zone can, because we have additional information. This speeds up\n * addEventListener by 3x.\n */\n var __symbol__ = (typeof Zone !== 'undefined') && Zone['__symbol__'] || ɵ0;\n var ADD_EVENT_LISTENER = __symbol__('addEventListener');\n var REMOVE_EVENT_LISTENER = __symbol__('removeEventListener');\n var symbolNames = {};\n var FALSE = 'FALSE';\n var ANGULAR = 'ANGULAR';\n var NATIVE_ADD_LISTENER = 'addEventListener';\n var NATIVE_REMOVE_LISTENER = 'removeEventListener';\n // use the same symbol string which is used in zone.js\n var stopSymbol = '__zone_symbol__propagationStopped';\n var stopMethodSymbol = '__zone_symbol__stopImmediatePropagation';\n var blackListedEvents = (typeof Zone !== 'undefined') && Zone[__symbol__('BLACK_LISTED_EVENTS')];\n var blackListedMap;\n if (blackListedEvents) {\n blackListedMap = {};\n blackListedEvents.forEach(function (eventName) { blackListedMap[eventName] = eventName; });\n }\n var isBlackListedEvent = function (eventName) {\n if (!blackListedMap) {\n return false;\n }\n return blackListedMap.hasOwnProperty(eventName);\n };\n // a global listener to handle all dom event,\n // so we do not need to create a closure every time\n var globalListener = function (event) {\n var symbolName = symbolNames[event.type];\n if (!symbolName) {\n return;\n }\n var taskDatas = this[symbolName];\n if (!taskDatas) {\n return;\n }\n var args = [event];\n if (taskDatas.length === 1) {\n // if taskDatas only have one element, just invoke it\n var taskData = taskDatas[0];\n if (taskData.zone !== Zone.current) {\n // only use Zone.run when Zone.current not equals to stored zone\n return taskData.zone.run(taskData.handler, this, args);\n }\n else {\n return taskData.handler.apply(this, args);\n }\n }\n else {\n // copy tasks as a snapshot to avoid event handlers remove\n // itself or others\n var copiedTasks = taskDatas.slice();\n for (var i = 0; i < copiedTasks.length; i++) {\n // if other listener call event.stopImmediatePropagation\n // just break\n if (event[stopSymbol] === true) {\n break;\n }\n var taskData = copiedTasks[i];\n if (taskData.zone !== Zone.current) {\n // only use Zone.run when Zone.current not equals to stored zone\n taskData.zone.run(taskData.handler, this, args);\n }\n else {\n taskData.handler.apply(this, args);\n }\n }\n }\n };\n var DomEventsPlugin = /** @class */ (function (_super) {\n __extends(DomEventsPlugin, _super);\n function DomEventsPlugin(doc, ngZone, platformId) {\n var _this = _super.call(this, doc) || this;\n _this.ngZone = ngZone;\n if (!platformId || !common.isPlatformServer(platformId)) {\n _this.patchEvent();\n }\n return _this;\n }\n DomEventsPlugin.prototype.patchEvent = function () {\n if (typeof Event === 'undefined' || !Event || !Event.prototype) {\n return;\n }\n if (Event.prototype[stopMethodSymbol]) {\n // already patched by zone.js\n return;\n }\n var delegate = Event.prototype[stopMethodSymbol] =\n Event.prototype.stopImmediatePropagation;\n Event.prototype.stopImmediatePropagation = function () {\n if (this) {\n this[stopSymbol] = true;\n }\n // should call native delegate in case\n // in some environment part of the application\n // will not use the patched Event\n delegate && delegate.apply(this, arguments);\n };\n };\n // This plugin should come last in the list of plugins, because it accepts all\n // events.\n DomEventsPlugin.prototype.supports = function (eventName) { return true; };\n DomEventsPlugin.prototype.addEventListener = function (element, eventName, handler) {\n var _this = this;\n var zoneJsLoaded = element[ADD_EVENT_LISTENER];\n var callback = handler;\n // if zonejs is loaded and current zone is not ngZone\n // we keep Zone.current on target for later restoration.\n if (zoneJsLoaded && (!core.NgZone.isInAngularZone() || isBlackListedEvent(eventName))) {\n var symbolName = symbolNames[eventName];\n if (!symbolName) {\n symbolName = symbolNames[eventName] = __symbol__(ANGULAR + eventName + FALSE);\n }\n var taskDatas = element[symbolName];\n var globalListenerRegistered = taskDatas && taskDatas.length > 0;\n if (!taskDatas) {\n taskDatas = element[symbolName] = [];\n }\n var zone = isBlackListedEvent(eventName) ? Zone.root : Zone.current;\n if (taskDatas.length === 0) {\n taskDatas.push({ zone: zone, handler: callback });\n }\n else {\n var callbackRegistered = false;\n for (var i = 0; i < taskDatas.length; i++) {\n if (taskDatas[i].handler === callback) {\n callbackRegistered = true;\n break;\n }\n }\n if (!callbackRegistered) {\n taskDatas.push({ zone: zone, handler: callback });\n }\n }\n if (!globalListenerRegistered) {\n element[ADD_EVENT_LISTENER](eventName, globalListener, false);\n }\n }\n else {\n element[NATIVE_ADD_LISTENER](eventName, callback, false);\n }\n return function () { return _this.removeEventListener(element, eventName, callback); };\n };\n DomEventsPlugin.prototype.removeEventListener = function (target, eventName, callback) {\n var underlyingRemove = target[REMOVE_EVENT_LISTENER];\n // zone.js not loaded, use native removeEventListener\n if (!underlyingRemove) {\n return target[NATIVE_REMOVE_LISTENER].apply(target, [eventName, callback, false]);\n }\n var symbolName = symbolNames[eventName];\n var taskDatas = symbolName && target[symbolName];\n if (!taskDatas) {\n // addEventListener not using patched version\n // just call native removeEventListener\n return target[NATIVE_REMOVE_LISTENER].apply(target, [eventName, callback, false]);\n }\n // fix issue 20532, should be able to remove\n // listener which was added inside of ngZone\n var found = false;\n for (var i = 0; i < taskDatas.length; i++) {\n // remove listener from taskDatas if the callback equals\n if (taskDatas[i].handler === callback) {\n found = true;\n taskDatas.splice(i, 1);\n break;\n }\n }\n if (found) {\n if (taskDatas.length === 0) {\n // all listeners are removed, we can remove the globalListener from target\n underlyingRemove.apply(target, [eventName, globalListener, false]);\n }\n }\n else {\n // not found in taskDatas, the callback may be added inside of ngZone\n // use native remove listener to remove the callback\n target[NATIVE_REMOVE_LISTENER].apply(target, [eventName, callback, false]);\n }\n };\n DomEventsPlugin = __decorate([\n core.Injectable(),\n __param(0, core.Inject(DOCUMENT)),\n __param(2, core.Optional()), __param(2, core.Inject(core.PLATFORM_ID)),\n __metadata(\"design:paramtypes\", [Object, core.NgZone, Object])\n ], DomEventsPlugin);\n return DomEventsPlugin;\n }(EventManagerPlugin));\n\n /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n /**\n * Supported HammerJS recognizer event names.\n */\n var EVENT_NAMES = {\n // pan\n 'pan': true,\n 'panstart': true,\n 'panmove': true,\n 'panend': true,\n 'pancancel': true,\n 'panleft': true,\n 'panright': true,\n 'panup': true,\n 'pandown': true,\n // pinch\n 'pinch': true,\n 'pinchstart': true,\n 'pinchmove': true,\n 'pinchend': true,\n 'pinchcancel': true,\n 'pinchin': true,\n 'pinchout': true,\n // press\n 'press': true,\n 'pressup': true,\n // rotate\n 'rotate': true,\n 'rotatestart': true,\n 'rotatemove': true,\n 'rotateend': true,\n 'rotatecancel': true,\n // swipe\n 'swipe': true,\n 'swipeleft': true,\n 'swiperight': true,\n 'swipeup': true,\n 'swipedown': true,\n // tap\n 'tap': true,\n };\n /**\n * DI token for providing [HammerJS](http://hammerjs.github.io/) support to Angular.\n * @see `HammerGestureConfig`\n *\n * @publicApi\n */\n var HAMMER_GESTURE_CONFIG = new core.InjectionToken('HammerGestureConfig');\n /**\n * Injection token used to provide a {@link HammerLoader} to Angular.\n *\n * @publicApi\n */\n var HAMMER_LOADER = new core.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 core.Injectable()\n ], HammerGestureConfig);\n return HammerGestureConfig;\n }());\n var HammerGesturesPlugin = /** @class */ (function (_super) {\n __extends(HammerGesturesPlugin, _super);\n function HammerGesturesPlugin(doc, _config, console, loader) {\n var _this = _super.call(this, doc) || this;\n _this._config = _config;\n _this.console = console;\n _this.loader = loader;\n return _this;\n }\n HammerGesturesPlugin.prototype.supports = function (eventName) {\n if (!EVENT_NAMES.hasOwnProperty(eventName.toLowerCase()) && !this.isCustomEvent(eventName)) {\n return false;\n }\n if (!window.Hammer && !this.loader) {\n this.console.warn(\"The \\\"\" + eventName + \"\\\" event cannot be bound because Hammer.JS is not \" +\n \"loaded and no custom loader has been specified.\");\n return false;\n }\n return true;\n };\n HammerGesturesPlugin.prototype.addEventListener = function (element, eventName, handler) {\n var _this = this;\n var zone = this.manager.getZone();\n eventName = eventName.toLowerCase();\n // If Hammer is not present but a loader is specified, we defer adding the event listener\n // until Hammer is loaded.\n if (!window.Hammer && this.loader) {\n // This `addEventListener` method returns a function to remove the added listener.\n // Until Hammer is loaded, the returned function needs to *cancel* the registration rather\n // than remove anything.\n var cancelRegistration_1 = false;\n var deregister_1 = function () { cancelRegistration_1 = true; };\n this.loader()\n .then(function () {\n // If Hammer isn't actually loaded when the custom loader resolves, give up.\n if (!window.Hammer) {\n _this.console.warn(\"The custom HAMMER_LOADER completed, but Hammer.JS is not present.\");\n deregister_1 = function () { };\n return;\n }\n if (!cancelRegistration_1) {\n // Now that Hammer is loaded and the listener is being loaded for real,\n // the deregistration function changes from canceling registration to removal.\n deregister_1 = _this.addEventListener(element, eventName, handler);\n }\n })\n .catch(function () {\n _this.console.warn(\"The \\\"\" + eventName + \"\\\" event cannot be bound because the custom \" +\n \"Hammer.JS loader failed.\");\n deregister_1 = function () { };\n });\n // Return a function that *executes* `deregister` (and not `deregister` itself) so that we\n // can change the behavior of `deregister` once the listener is added. Using a closure in\n // this way allows us to avoid any additional data structures to track listener removal.\n return function () { deregister_1(); };\n }\n return zone.runOutsideAngular(function () {\n // Creating the manager bind events, must be done outside of angular\n var mc = _this._config.buildHammer(element);\n var callback = function (eventObj) {\n zone.runGuarded(function () { handler(eventObj); });\n };\n mc.on(eventName, callback);\n return function () {\n mc.off(eventName, callback);\n // destroy mc to prevent memory leak\n if (typeof mc.destroy === 'function') {\n mc.destroy();\n }\n };\n });\n };\n HammerGesturesPlugin.prototype.isCustomEvent = function (eventName) { return this._config.events.indexOf(eventName) > -1; };\n HammerGesturesPlugin = __decorate([\n core.Injectable(),\n __param(0, core.Inject(DOCUMENT)),\n __param(1, core.Inject(HAMMER_GESTURE_CONFIG)),\n __param(3, core.Optional()), __param(3, core.Inject(HAMMER_LOADER)),\n __metadata(\"design:paramtypes\", [Object, HammerGestureConfig, core.ɵConsole, Object])\n ], HammerGesturesPlugin);\n return HammerGesturesPlugin;\n }(EventManagerPlugin));\n\n /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n /**\n * Defines supported modifiers for key events.\n */\n var MODIFIER_KEYS = ['alt', 'control', 'meta', 'shift'];\n var ɵ0$1 = function (event) { return event.altKey; }, ɵ1$1 = function (event) { return event.ctrlKey; }, ɵ2$1 = 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$1,\n 'control': ɵ1$1,\n 'meta': ɵ2$1,\n 'shift': ɵ3\n };\n /**\n * @publicApi\n * A browser plug-in that provides support for handling of key events in Angular.\n */\n var KeyEventsPlugin = /** @class */ (function (_super) {\n __extends(KeyEventsPlugin, _super);\n /**\n * Initializes an instance of the browser plug-in.\n * @param doc The document in which key events will be detected.\n */\n function KeyEventsPlugin(doc) {\n return _super.call(this, doc) || this;\n }\n KeyEventsPlugin_1 = KeyEventsPlugin;\n /**\n * Reports whether a named key event is supported.\n * @param eventName The event name to query.\n * @return True if the named key event is supported.\n */\n KeyEventsPlugin.prototype.supports = function (eventName) { return KeyEventsPlugin_1.parseEventName(eventName) != null; };\n /**\n * Registers a handler for a specific element and key event.\n * @param element The HTML element to receive event notifications.\n * @param eventName The name of the key event to listen for.\n * @param handler A function to call when the notification occurs. Receives the\n * event object as an argument.\n * @returns The key event that was registered.\n */\n KeyEventsPlugin.prototype.addEventListener = function (element, eventName, handler) {\n var parsedEvent = KeyEventsPlugin_1.parseEventName(eventName);\n var outsideHandler = KeyEventsPlugin_1.eventCallback(parsedEvent['fullKey'], handler, this.manager.getZone());\n return this.manager.getZone().runOutsideAngular(function () {\n return getDOM().onAndCancel(element, parsedEvent['domEventName'], outsideHandler);\n });\n };\n KeyEventsPlugin.parseEventName = function (eventName) {\n var parts = eventName.toLowerCase().split('.');\n var domEventName = parts.shift();\n if ((parts.length === 0) || !(domEventName === 'keydown' || domEventName === 'keyup')) {\n return null;\n }\n var key = KeyEventsPlugin_1._normalizeKey(parts.pop());\n var fullKey = '';\n MODIFIER_KEYS.forEach(function (modifierName) {\n var index = parts.indexOf(modifierName);\n if (index > -1) {\n parts.splice(index, 1);\n fullKey += modifierName + '.';\n }\n });\n fullKey += key;\n if (parts.length != 0 || key.length === 0) {\n // returning null instead of throwing to let another plugin process the event\n return null;\n }\n var result = {};\n result['domEventName'] = domEventName;\n result['fullKey'] = fullKey;\n return result;\n };\n KeyEventsPlugin.getEventFullKey = function (event) {\n var fullKey = '';\n var key = getDOM().getEventKey(event);\n key = key.toLowerCase();\n if (key === ' ') {\n key = 'space'; // for readability\n }\n else if (key === '.') {\n key = 'dot'; // because '.' is used as a separator in event names\n }\n MODIFIER_KEYS.forEach(function (modifierName) {\n if (modifierName != key) {\n var modifierGetter = MODIFIER_KEY_GETTERS[modifierName];\n if (modifierGetter(event)) {\n fullKey += modifierName + '.';\n }\n }\n });\n fullKey += key;\n return fullKey;\n };\n /**\n * Configures a handler callback for a key event.\n * @param fullKey The event name that combines all simultaneous keystrokes.\n * @param handler The function that responds to the key event.\n * @param zone The zone in which the event occurred.\n * @returns A callback function.\n */\n KeyEventsPlugin.eventCallback = function (fullKey, handler, zone) {\n return function (event /** TODO #9100 */) {\n if (KeyEventsPlugin_1.getEventFullKey(event) === fullKey) {\n zone.runGuarded(function () { return handler(event); });\n }\n };\n };\n /** @internal */\n KeyEventsPlugin._normalizeKey = function (keyName) {\n // TODO: switch to a Map if the mapping grows too much\n switch (keyName) {\n case 'esc':\n return 'escape';\n default:\n return keyName;\n }\n };\n var KeyEventsPlugin_1;\n KeyEventsPlugin = KeyEventsPlugin_1 = __decorate([\n core.Injectable(),\n __param(0, core.Inject(DOCUMENT)),\n __metadata(\"design:paramtypes\", [Object])\n ], KeyEventsPlugin);\n return KeyEventsPlugin;\n }(EventManagerPlugin));\n\n /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n /**\n * DomSanitizer helps preventing Cross Site Scripting Security bugs (XSS) by sanitizing\n * values to be safe to use in the different DOM contexts.\n *\n * For example, when binding a URL in an `<a [href]=\"someValue\">` hyperlink, `someValue` will be\n * sanitized so that an attacker cannot inject e.g. a `javascript:` URL that would execute code on\n * the website.\n *\n * In specific situations, it might be necessary to disable sanitization, for example if the\n * application genuinely needs to produce a `javascript:` style link with a dynamic value in it.\n * Users can bypass security by constructing a value with one of the `bypassSecurityTrust...`\n * methods, and then binding to that value from the template.\n *\n * These situations should be very rare, and extraordinary care must be taken to avoid creating a\n * Cross Site Scripting (XSS) security bug!\n *\n * When using `bypassSecurityTrust...`, make sure to call the method as early as possible and as\n * close as possible to the source of the value, to make it easy to verify no security bug is\n * created by its use.\n *\n * It is not required (and not recommended) to bypass security if the value is safe, e.g. a URL that\n * does not start with a suspicious protocol, or an HTML snippet that does not contain dangerous\n * code. The sanitizer leaves safe values intact.\n *\n * @security Calling any of the `bypassSecurityTrust...` APIs disables Angular's built-in\n * sanitization for the value passed in. Carefully check and audit all values and code paths going\n * into this call. Make sure any user data is appropriately escaped for this security context.\n * For more detail, see the [Security Guide](http://g.co/ng/security).\n *\n * @publicApi\n */\n var DomSanitizer = /** @class */ (function () {\n function DomSanitizer() {\n }\n return DomSanitizer;\n }());\n var DomSanitizerImpl = /** @class */ (function (_super) {\n __extends(DomSanitizerImpl, _super);\n function DomSanitizerImpl(_doc) {\n var _this = _super.call(this) || this;\n _this._doc = _doc;\n return _this;\n }\n DomSanitizerImpl.prototype.sanitize = function (ctx, value) {\n if (value == null)\n return null;\n switch (ctx) {\n case core.SecurityContext.NONE:\n return value;\n case core.SecurityContext.HTML:\n if (value instanceof SafeHtmlImpl)\n return value.changingThisBreaksApplicationSecurity;\n this.checkNotSafeValue(value, 'HTML');\n return core.ɵ_sanitizeHtml(this._doc, String(value));\n case core.SecurityContext.STYLE:\n if (value instanceof SafeStyleImpl)\n return value.changingThisBreaksApplicationSecurity;\n this.checkNotSafeValue(value, 'Style');\n return core.ɵ_sanitizeStyle(value);\n case core.SecurityContext.SCRIPT:\n if (value instanceof SafeScriptImpl)\n return value.changingThisBreaksApplicationSecurity;\n this.checkNotSafeValue(value, 'Script');\n throw new Error('unsafe value used in a script context');\n case core.SecurityContext.URL:\n if (value instanceof SafeResourceUrlImpl || value instanceof SafeUrlImpl) {\n // Allow resource URLs in URL contexts, they are strictly more trusted.\n return value.changingThisBreaksApplicationSecurity;\n }\n this.checkNotSafeValue(value, 'URL');\n return core.ɵ_sanitizeUrl(String(value));\n case core.SecurityContext.RESOURCE_URL:\n if (value instanceof SafeResourceUrlImpl) {\n return value.changingThisBreaksApplicationSecurity;\n }\n this.checkNotSafeValue(value, 'ResourceURL');\n throw new Error('unsafe value used in a resource URL context (see http://g.co/ng/security#xss)');\n default:\n throw new Error(\"Unexpected SecurityContext \" + ctx + \" (see http://g.co/ng/security#xss)\");\n }\n };\n DomSanitizerImpl.prototype.checkNotSafeValue = function (value, expectedType) {\n if (value instanceof SafeValueImpl) {\n throw new Error(\"Required a safe \" + expectedType + \", got a \" + value.getTypeName() + \" \" +\n \"(see http://g.co/ng/security#xss)\");\n }\n };\n DomSanitizerImpl.prototype.bypassSecurityTrustHtml = function (value) { return new SafeHtmlImpl(value); };\n DomSanitizerImpl.prototype.bypassSecurityTrustStyle = function (value) { return new SafeStyleImpl(value); };\n DomSanitizerImpl.prototype.bypassSecurityTrustScript = function (value) { return new SafeScriptImpl(value); };\n DomSanitizerImpl.prototype.bypassSecurityTrustUrl = function (value) { return new SafeUrlImpl(value); };\n DomSanitizerImpl.prototype.bypassSecurityTrustResourceUrl = function (value) {\n return new SafeResourceUrlImpl(value);\n };\n DomSanitizerImpl = __decorate([\n core.Injectable(),\n __param(0, core.Inject(DOCUMENT)),\n __metadata(\"design:paramtypes\", [Object])\n ], DomSanitizerImpl);\n return DomSanitizerImpl;\n }(DomSanitizer));\n var SafeValueImpl = /** @class */ (function () {\n function SafeValueImpl(changingThisBreaksApplicationSecurity) {\n this.changingThisBreaksApplicationSecurity = changingThisBreaksApplicationSecurity;\n // empty\n }\n SafeValueImpl.prototype.toString = function () {\n return \"SafeValue must use [property]=binding: \" + this.changingThisBreaksApplicationSecurity +\n \" (see http://g.co/ng/security#xss)\";\n };\n return SafeValueImpl;\n }());\n var SafeHtmlImpl = /** @class */ (function (_super) {\n __extends(SafeHtmlImpl, _super);\n function SafeHtmlImpl() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n SafeHtmlImpl.prototype.getTypeName = function () { return 'HTML'; };\n return SafeHtmlImpl;\n }(SafeValueImpl));\n var SafeStyleImpl = /** @class */ (function (_super) {\n __extends(SafeStyleImpl, _super);\n function SafeStyleImpl() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n SafeStyleImpl.prototype.getTypeName = function () { return 'Style'; };\n return SafeStyleImpl;\n }(SafeValueImpl));\n var SafeScriptImpl = /** @class */ (function (_super) {\n __extends(SafeScriptImpl, _super);\n function SafeScriptImpl() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n SafeScriptImpl.prototype.getTypeName = function () { return 'Script'; };\n return SafeScriptImpl;\n }(SafeValueImpl));\n var SafeUrlImpl = /** @class */ (function (_super) {\n __extends(SafeUrlImpl, _super);\n function SafeUrlImpl() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n SafeUrlImpl.prototype.getTypeName = function () { return 'URL'; };\n return SafeUrlImpl;\n }(SafeValueImpl));\n var SafeResourceUrlImpl = /** @class */ (function (_super) {\n __extends(SafeResourceUrlImpl, _super);\n function SafeResourceUrlImpl() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n SafeResourceUrlImpl.prototype.getTypeName = function () { return 'ResourceURL'; };\n return SafeResourceUrlImpl;\n }(SafeValueImpl));\n\n /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n var INTERNAL_BROWSER_PLATFORM_PROVIDERS = [\n { provide: core.PLATFORM_ID, useValue: common.ɵPLATFORM_BROWSER_ID },\n { provide: core.PLATFORM_INITIALIZER, useValue: initDomAdapter, multi: true },\n { provide: common.PlatformLocation, useClass: BrowserPlatformLocation, deps: [DOCUMENT] },\n { provide: DOCUMENT, useFactory: _document, deps: [] },\n ];\n /**\n * @security Replacing built-in sanitization providers exposes the application to XSS risks.\n * Attacker-controlled data introduced by an unsanitized provider could expose your\n * application to XSS risks. For more detail, see the [Security Guide](http://g.co/ng/security).\n * @publicApi\n */\n var BROWSER_SANITIZATION_PROVIDERS = [\n { provide: core.Sanitizer, useExisting: DomSanitizer },\n { provide: DomSanitizer, useClass: DomSanitizerImpl, deps: [DOCUMENT] },\n ];\n /**\n * @publicApi\n */\n var platformBrowser = core.createPlatformFactory(core.platformCore, 'browser', INTERNAL_BROWSER_PLATFORM_PROVIDERS);\n function initDomAdapter() {\n BrowserDomAdapter.makeCurrent();\n BrowserGetTestability.init();\n }\n function errorHandler() {\n return new core.ErrorHandler();\n }\n function _document() {\n return document;\n }\n var BROWSER_MODULE_PROVIDERS = [\n BROWSER_SANITIZATION_PROVIDERS,\n { provide: core.ɵAPP_ROOT, useValue: true },\n { provide: core.ErrorHandler, useFactory: errorHandler, deps: [] },\n {\n provide: EVENT_MANAGER_PLUGINS,\n useClass: DomEventsPlugin,\n multi: true,\n deps: [DOCUMENT, core.NgZone, core.PLATFORM_ID]\n },\n { provide: EVENT_MANAGER_PLUGINS, useClass: KeyEventsPlugin, multi: true, deps: [DOCUMENT] },\n {\n provide: EVENT_MANAGER_PLUGINS,\n useClass: HammerGesturesPlugin,\n multi: true,\n deps: [DOCUMENT, HAMMER_GESTURE_CONFIG, core.ɵConsole, [new core.Optional(), HAMMER_LOADER]]\n },\n { provide: HAMMER_GESTURE_CONFIG, useClass: HammerGestureConfig, deps: [] },\n {\n provide: DomRendererFactory2,\n useClass: DomRendererFactory2,\n deps: [EventManager, DomSharedStylesHost]\n },\n { provide: core.RendererFactory2, useExisting: DomRendererFactory2 },\n { provide: SharedStylesHost, useExisting: DomSharedStylesHost },\n { provide: DomSharedStylesHost, useClass: DomSharedStylesHost, deps: [DOCUMENT] },\n { provide: core.Testability, useClass: core.Testability, deps: [core.NgZone] },\n { provide: EventManager, useClass: EventManager, deps: [EVENT_MANAGER_PLUGINS, core.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: core.APP_ID, useValue: params.appId },\n { provide: TRANSITION_ID, useExisting: core.APP_ID },\n SERVER_TRANSITION_PROVIDERS,\n ],\n };\n };\n var BrowserModule_1;\n BrowserModule = BrowserModule_1 = __decorate([\n core.NgModule({ providers: BROWSER_MODULE_PROVIDERS, exports: [common.CommonModule, core.ApplicationModule] }),\n __param(0, core.Optional()), __param(0, core.SkipSelf()), __param(0, core.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(core.inject(DOCUMENT));\n }\n /**\n * A service that can be used to get and add meta tags.\n *\n * @publicApi\n */\n var Meta = /** @class */ (function () {\n function Meta(_doc) {\n this._doc = _doc;\n this._dom = getDOM();\n }\n Meta.prototype.addTag = function (tag, forceCreation) {\n if (forceCreation === void 0) { forceCreation = false; }\n if (!tag)\n return null;\n return this._getOrCreateElement(tag, forceCreation);\n };\n Meta.prototype.addTags = function (tags, forceCreation) {\n var _this = this;\n if (forceCreation === void 0) { forceCreation = false; }\n if (!tags)\n return [];\n return tags.reduce(function (result, tag) {\n if (tag) {\n result.push(_this._getOrCreateElement(tag, forceCreation));\n }\n return result;\n }, []);\n };\n Meta.prototype.getTag = function (attrSelector) {\n if (!attrSelector)\n return null;\n return this._dom.querySelector(this._doc, \"meta[\" + attrSelector + \"]\") || null;\n };\n Meta.prototype.getTags = function (attrSelector) {\n if (!attrSelector)\n return [];\n var list /*NodeList*/ = this._dom.querySelectorAll(this._doc, \"meta[\" + attrSelector + \"]\");\n return list ? [].slice.call(list) : [];\n };\n Meta.prototype.updateTag = function (tag, selector) {\n if (!tag)\n return null;\n selector = selector || this._parseSelector(tag);\n var meta = this.getTag(selector);\n if (meta) {\n return this._setMetaElementAttributes(tag, meta);\n }\n return this._getOrCreateElement(tag, true);\n };\n Meta.prototype.removeTag = function (attrSelector) { this.removeTagElement(this.getTag(attrSelector)); };\n Meta.prototype.removeTagElement = function (meta) {\n if (meta) {\n this._dom.remove(meta);\n }\n };\n Meta.prototype._getOrCreateElement = function (meta, forceCreation) {\n if (forceCreation === void 0) { forceCreation = false; }\n if (!forceCreation) {\n var selector = this._parseSelector(meta);\n var elem = this.getTag(selector);\n // It's allowed to have multiple elements with the same name so it's not enough to\n // just check that element with the same name already present on the page. We also need to\n // check if element has tag attributes\n if (elem && this._containsAttributes(meta, elem))\n return elem;\n }\n var element = this._dom.createElement('meta');\n this._setMetaElementAttributes(meta, element);\n var head = this._dom.getElementsByTagName(this._doc, 'head')[0];\n this._dom.appendChild(head, element);\n return element;\n };\n Meta.prototype._setMetaElementAttributes = function (tag, el) {\n var _this = this;\n Object.keys(tag).forEach(function (prop) { return _this._dom.setAttribute(el, prop, tag[prop]); });\n return el;\n };\n Meta.prototype._parseSelector = function (tag) {\n var attr = tag.name ? 'name' : 'property';\n return attr + \"=\\\"\" + tag[attr] + \"\\\"\";\n };\n Meta.prototype._containsAttributes = function (tag, elem) {\n var _this = this;\n return Object.keys(tag).every(function (key) { return _this._dom.getAttribute(elem, key) === tag[key]; });\n };\n Meta.ngInjectableDef = core.defineInjectable({ factory: createMeta, token: Meta, providedIn: \"root\" });\n Meta = __decorate([\n core.Injectable({ providedIn: 'root', useFactory: createMeta, deps: [] }),\n __param(0, core.Inject(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(core.inject(DOCUMENT));\n }\n /**\n * A service that can be used to get and set the title of a current HTML document.\n *\n * Since an Angular application can't be bootstrapped on the entire HTML document (`<html>` tag)\n * it is not possible to bind to the `text` property of the `HTMLTitleElement` elements\n * (representing the `<title>` tag). Instead, this service can be used to set and get the current\n * title value.\n *\n * @publicApi\n */\n var Title = /** @class */ (function () {\n function Title(_doc) {\n this._doc = _doc;\n }\n /**\n * Get the title of the current HTML document.\n */\n Title.prototype.getTitle = function () { return getDOM().getTitle(this._doc); };\n /**\n * Set the title of the current HTML document.\n * @param newTitle\n */\n Title.prototype.setTitle = function (newTitle) { getDOM().setTitle(this._doc, newTitle); };\n Title.ngInjectableDef = core.defineInjectable({ factory: createTitle, token: Title, providedIn: \"root\" });\n Title = __decorate([\n core.Injectable({ providedIn: 'root', useFactory: createTitle, deps: [] }),\n __param(0, core.Inject(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(core.ApplicationRef);\n }\n // tslint:disable:no-console\n /**\n * Exercises change detection in a loop and then prints the average amount of\n * time in milliseconds how long a single round of change detection takes for\n * the current state of the UI. It runs a minimum of 5 rounds for a minimum\n * of 500 milliseconds.\n *\n * Optionally, a user may pass a `config` parameter containing a map of\n * options. Supported options are:\n *\n * `record` (boolean) - causes the profiler to record a CPU profile while\n * it exercises the change detector. Example:\n *\n * ```\n * ng.profiler.timeChangeDetection({record: true})\n * ```\n */\n AngularProfiler.prototype.timeChangeDetection = function (config) {\n var record = config && config['record'];\n var profileName = 'Change Detection';\n // Profiler is not available in Android browsers, nor in IE 9 without dev tools opened\n var isProfilerAvailable = win.console.profile != null;\n if (record && isProfilerAvailable) {\n win.console.profile(profileName);\n }\n var start = getDOM().performanceNow();\n var numTicks = 0;\n while (numTicks < 5 || (getDOM().performanceNow() - start) < 500) {\n this.appRef.tick();\n numTicks++;\n }\n var end = getDOM().performanceNow();\n if (record && isProfilerAvailable) {\n win.console.profileEnd(profileName);\n }\n var msPerTick = (end - start) / numTicks;\n win.console.log(\"ran \" + numTicks + \" change detection cycles\");\n win.console.log(msPerTick.toFixed(2) + \" ms per check\");\n return new ChangeDetectionPerfRecord(msPerTick, numTicks);\n };\n return AngularProfiler;\n }());\n\n /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n var PROFILER_GLOBAL_NAME = 'profiler';\n /**\n * Enabled Angular debug tools that are accessible via your browser's\n * developer console.\n *\n * Usage:\n *\n * 1. Open developer console (e.g. in Chrome Ctrl + Shift + j)\n * 1. Type `ng.` (usually the console will show auto-complete suggestion)\n * 1. Try the change detection profiler `ng.profiler.timeChangeDetection()`\n * then hit Enter.\n *\n * @publicApi\n */\n function enableDebugTools(ref) {\n exportNgVar(PROFILER_GLOBAL_NAME, new AngularProfiler(ref));\n return ref;\n }\n /**\n * Disables Angular tools.\n *\n * @publicApi\n */\n function disableDebugTools() {\n exportNgVar(PROFILER_GLOBAL_NAME, null);\n }\n\n /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n function escapeHtml(text) {\n var escapedText = {\n '&': '&a;',\n '\"': '&q;',\n '\\'': '&s;',\n '<': '&l;',\n '>': '&g;',\n };\n return text.replace(/[&\"'<>]/g, function (s) { return escapedText[s]; });\n }\n function unescapeHtml(text) {\n var unescapedText = {\n '&a;': '&',\n '&q;': '\"',\n '&s;': '\\'',\n '&l;': '<',\n '&g;': '>',\n };\n return text.replace(/&[^;]+;/g, function (s) { return unescapedText[s]; });\n }\n /**\n * Create a `StateKey<T>` that can be used to store value of type T with `TransferState`.\n *\n * Example:\n *\n * ```\n * const COUNTER_KEY = makeStateKey<number>('counter');\n * let value = 10;\n *\n * transferState.set(COUNTER_KEY, value);\n * ```\n *\n * @publicApi\n */\n function makeStateKey(key) {\n return key;\n }\n /**\n * A key value store that is transferred from the application on the server side to the application\n * on the client side.\n *\n * `TransferState` will be available as an injectable token. To use it import\n * `ServerTransferStateModule` on the server and `BrowserTransferStateModule` on the client.\n *\n * The values in the store are serialized/deserialized using JSON.stringify/JSON.parse. So only\n * boolean, number, string, null and non-class objects will be serialized and deserialzied in a\n * non-lossy manner.\n *\n * @publicApi\n */\n var TransferState = /** @class */ (function () {\n function TransferState() {\n this.store = {};\n this.onSerializeCallbacks = {};\n }\n TransferState_1 = TransferState;\n /** @internal */\n TransferState.init = function (initState) {\n var transferState = new TransferState_1();\n transferState.store = initState;\n return transferState;\n };\n /**\n * Get the value corresponding to a key. Return `defaultValue` if key is not found.\n */\n TransferState.prototype.get = function (key, defaultValue) {\n return this.store[key] !== undefined ? this.store[key] : defaultValue;\n };\n /**\n * Set the value corresponding to a key.\n */\n TransferState.prototype.set = function (key, value) { this.store[key] = value; };\n /**\n * Remove a key from the store.\n */\n TransferState.prototype.remove = function (key) { delete this.store[key]; };\n /**\n * Test whether a key exists in the store.\n */\n TransferState.prototype.hasKey = function (key) { return this.store.hasOwnProperty(key); };\n /**\n * Register a callback to provide the value for a key when `toJson` is called.\n */\n TransferState.prototype.onSerialize = function (key, callback) {\n this.onSerializeCallbacks[key] = callback;\n };\n /**\n * Serialize the current state of the store to JSON.\n */\n TransferState.prototype.toJson = function () {\n // Call the onSerialize callbacks and put those values into the store.\n for (var key in this.onSerializeCallbacks) {\n if (this.onSerializeCallbacks.hasOwnProperty(key)) {\n try {\n this.store[key] = this.onSerializeCallbacks[key]();\n }\n catch (e) {\n console.warn('Exception in onSerialize callback: ', e);\n }\n }\n }\n return JSON.stringify(this.store);\n };\n var TransferState_1;\n TransferState = TransferState_1 = __decorate([\n core.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 core.NgModule({\n providers: [{ provide: TransferState, useFactory: initTransferState, deps: [DOCUMENT, core.APP_ID] }],\n })\n ], BrowserTransferStateModule);\n return BrowserTransferStateModule;\n }());\n\n /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n /**\n * Predicates for use with {@link DebugElement}'s query functions.\n *\n * @publicApi\n */\n var By = /** @class */ (function () {\n function By() {\n }\n /**\n * Match all elements.\n *\n * @usageNotes\n * ### Example\n *\n * {@example platform-browser/dom/debug/ts/by/by.ts region='by_all'}\n */\n By.all = function () { return function (debugElement) { return true; }; };\n /**\n * Match elements by the given CSS selector.\n *\n * @usageNotes\n * ### Example\n *\n * {@example platform-browser/dom/debug/ts/by/by.ts region='by_css'}\n */\n By.css = function (selector) {\n return function (debugElement) {\n return debugElement.nativeElement != null ?\n getDOM().elementMatches(debugElement.nativeElement, selector) :\n false;\n };\n };\n /**\n * Match elements that have the given directive present.\n *\n * @usageNotes\n * ### Example\n *\n * {@example platform-browser/dom/debug/ts/by/by.ts region='by_directive'}\n */\n By.directive = function (type) {\n return function (debugElement) { return debugElement.providerTokens.indexOf(type) !== -1; };\n };\n return By;\n }());\n\n /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n /**\n * @publicApi\n */\n var VERSION = new core.Version('7.2.7');\n\n /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n // This file only reexports content of the `src` folder. Keep it that way.\n\n /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n /**\n * Generated bundle index. Do not edit.\n */\n\n exports.ɵangular_packages_platform_browser_platform_browser_c = BROWSER_MODULE_PROVIDERS;\n exports.ɵangular_packages_platform_browser_platform_browser_b = _document;\n exports.ɵangular_packages_platform_browser_platform_browser_a = errorHandler;\n exports.ɵangular_packages_platform_browser_platform_browser_k = GenericBrowserDomAdapter;\n exports.ɵangular_packages_platform_browser_platform_browser_d = createMeta;\n exports.ɵangular_packages_platform_browser_platform_browser_i = SERVER_TRANSITION_PROVIDERS;\n exports.ɵangular_packages_platform_browser_platform_browser_h = appInitializerFactory;\n exports.ɵangular_packages_platform_browser_platform_browser_e = createTitle;\n exports.ɵangular_packages_platform_browser_platform_browser_f = initTransferState;\n exports.ɵangular_packages_platform_browser_platform_browser_j = _createNgProbe;\n exports.ɵangular_packages_platform_browser_platform_browser_g = EventManagerPlugin;\n exports.BrowserModule = BrowserModule;\n exports.platformBrowser = platformBrowser;\n exports.Meta = Meta;\n exports.Title = Title;\n exports.disableDebugTools = disableDebugTools;\n exports.enableDebugTools = enableDebugTools;\n exports.BrowserTransferStateModule = BrowserTransferStateModule;\n exports.TransferState = TransferState;\n exports.makeStateKey = makeStateKey;\n exports.By = By;\n exports.DOCUMENT = DOCUMENT;\n exports.EVENT_MANAGER_PLUGINS = EVENT_MANAGER_PLUGINS;\n exports.EventManager = EventManager;\n exports.HAMMER_GESTURE_CONFIG = HAMMER_GESTURE_CONFIG;\n exports.HAMMER_LOADER = HAMMER_LOADER;\n exports.HammerGestureConfig = HammerGestureConfig;\n exports.DomSanitizer = DomSanitizer;\n exports.VERSION = VERSION;\n exports.ɵBROWSER_SANITIZATION_PROVIDERS = BROWSER_SANITIZATION_PROVIDERS;\n exports.ɵINTERNAL_BROWSER_PLATFORM_PROVIDERS = INTERNAL_BROWSER_PLATFORM_PROVIDERS;\n exports.ɵinitDomAdapter = initDomAdapter;\n exports.ɵBrowserDomAdapter = BrowserDomAdapter;\n exports.ɵBrowserPlatformLocation = BrowserPlatformLocation;\n exports.ɵTRANSITION_ID = TRANSITION_ID;\n exports.ɵBrowserGetTestability = BrowserGetTestability;\n exports.ɵescapeHtml = escapeHtml;\n exports.ɵELEMENT_PROBE_PROVIDERS = ELEMENT_PROBE_PROVIDERS;\n exports.ɵDomAdapter = DomAdapter;\n exports.ɵgetDOM = getDOM;\n exports.ɵsetRootDomAdapter = setRootDomAdapter;\n exports.ɵDomRendererFactory2 = DomRendererFactory2;\n exports.ɵNAMESPACE_URIS = NAMESPACE_URIS;\n exports.ɵflattenStyles = flattenStyles;\n exports.ɵshimContentAttribute = shimContentAttribute;\n exports.ɵshimHostAttribute = shimHostAttribute;\n exports.ɵDomEventsPlugin = DomEventsPlugin;\n exports.ɵHammerGesturesPlugin = HammerGesturesPlugin;\n exports.ɵKeyEventsPlugin = KeyEventsPlugin;\n exports.ɵDomSharedStylesHost = DomSharedStylesHost;\n exports.ɵSharedStylesHost = SharedStylesHost;\n exports.ɵDomSanitizerImpl = DomSanitizerImpl;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n}));\n//# sourceMappingURL=platform-browser.umd.js.map\n"]}
\ No newline at end of file
+{"version":3,"sources":["packages/platform-browser/platform-browser.umd.js"],"names":["global","factory","exports","module","require","define","amd","self","ng","platformBrowser","common","core","this","extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__extends","__","constructor","prototype","create","__assign","assign","t","s","i","n","arguments","length","call","apply","__decorate","decorators","target","key","desc","c","r","getOwnPropertyDescriptor","Reflect","decorate","defineProperty","__param","paramIndex","decorator","__metadata","metadataKey","metadataValue","metadata","__read","o","m","Symbol","iterator","e","ar","next","done","push","value","error","_DOM","getDOM","setRootDomAdapter","adapter","nodeContains","DomAdapter","resourceLoaderType","get","_attrToPropMap","set","enumerable","configurable","GenericBrowserDomAdapter","_super","_this","_animationPrefix","_transitionEnd","element_1","createElement","document","getStyle","domPrefixes","toLowerCase","transEndEventNames_1","WebkitTransition","MozTransition","OTransition","transition","keys","forEach","_a","getDistributedNodes","el","resolveAndSetHref","baseUrl","href","supportsDOMEvents","supportsNativeShadowDOM","body","createShadowRoot","getAnimationPrefix","getTransitionEnd","supportsAnimation","class","innerHtml","readonly","tabindex","_keyMap","\b","\t","","\u001b","Del","Esc","Left","Right","Up","Down","Menu","Scroll","Win","_chromeNumKeyPadMap","A","B","C","D","E","F","G","H","I","J","K","M","N","O","`","","ɵglobal","contains","node","compareDocumentPosition","urlParsingNode","BrowserDomAdapter","parse","templateHtml","Error","makeCurrent","hasProperty","element","name","setProperty","getProperty","invoke","methodName","args","__spread","concat","logError","window","console","log","logGroup","group","logGroupEnd","groupEnd","nodeA","nodeB","querySelector","selector","querySelectorAll","on","evt","listener","addEventListener","onAndCancel","removeEventListener","dispatchEvent","createMouseEvent","eventType","getDefaultDocument","createEvent","initEvent","preventDefault","returnValue","isPrevented","defaultPrevented","getInnerHTML","innerHTML","getTemplateContent","isTemplateElement","content","getOuterHTML","outerHTML","nodeName","nodeValue","type","firstChild","nextSibling","parentElement","parentNode","childNodes","childNodesAsList","res","clearNodes","removeChild","appendChild","replaceChild","newChild","oldChild","remove","insertBefore","parent","ref","insertAllBefore","nodes","insertAfter","setInnerHTML","getText","textContent","setText","getValue","setValue","getChecked","checked","setChecked","createComment","text","createTemplate","html","tagName","doc","createElementNS","ns","createTextNode","createScriptTag","attrName","attrValue","setAttribute","createStyleElement","css","style","getShadowRoot","shadowRoot","getHost","host","clone","cloneNode","getElementsByClassName","getElementsByTagName","classList","slice","addClass","className","add","removeClass","hasClass","setStyle","styleName","styleValue","removeStyle","stylename","hasStyle","attributeMap","Map","elAttrs","attributes","attrib","item","hasAttribute","attribute","hasAttributeNS","getAttribute","getAttributeNS","setAttributeNS","removeAttribute","removeAttributeNS","templateAwareRoot","createHtmlDocument","implementation","createHTMLDocument","getBoundingClientRect","top","bottom","left","right","width","height","getTitle","title","setTitle","newTitle","elementMatches","isElementNode","matches","msMatchesSelector","webkitMatchesSelector","isTextNode","nodeType","Node","TEXT_NODE","isCommentNode","COMMENT_NODE","ELEMENT_NODE","hasShadowRoot","HTMLElement","isShadowRoot","DocumentFragment","importIntoDoc","importNode","adoptNode","getHref","getEventKey","event","keyIdentifier","startsWith","String","fromCharCode","parseInt","substring","location","getGlobalEventTarget","getHistory","history","getLocation","getBaseHref","getBaseElementHref","baseElement","relativePath","url","pathname","charAt","resetBaseElement","getUserAgent","navigator","userAgent","setData","getData","getComputedStyle","supportsWebAnimation","Element","performanceNow","performance","now","Date","getTime","supportsCookies","getCookie","ɵparseCookieValue","cookie","setCookie","encodeURIComponent","DOCUMENT","supportsState","pushState","BrowserPlatformLocation","_doc","_init","_history","getBaseHrefFromDOM","onPopState","fn","onHashChange","newPath","search","hash","state","replaceState","forward","back","Injectable","Inject","PlatformLocation","TRANSITION_ID","InjectionToken","appInitializerFactory","transitionId","injector","ApplicationInitStatus","donePromise","then","dom","filter","SERVER_TRANSITION_PROVIDERS","provide","APP_INITIALIZER","useFactory","deps","Injector","multi","BrowserGetTestability","init","setTestabilityGetter","addToWindow","registry","elem","findInAncestors","testability","findTestabilityInTree","getAllTestabilities","getAllRootElements","callback","testabilities","count","didWork","decrement","didWork_","whenStable","getTestability","exportNgVar","COMPILED","CORE_TOKENS","ApplicationRef","NgZone","INSPECT_GLOBAL_NAME","CORE_TOKENS_GLOBAL_NAME","inspectNativeElement","getDebugNode","_createNgProbe","coreTokens","_ngProbeTokensToMap","tokens","reduce","prev","token","ELEMENT_PROBE_PROVIDERS","NgProbeToken","Optional","EVENT_MANAGER_PLUGINS","EventManager","plugins","_zone","_eventNameToPlugin","manager","_plugins","reverse","eventName","handler","_findPluginFor","addGlobalEventListener","getZone","plugin","plugin_1","supports","EventManagerPlugin","SharedStylesHost","_stylesSet","Set","addStyles","styles","additions","has","onStylesAdded","getAllStyles","from","DomSharedStylesHost","_hostNodes","_styleNodes","head","_addStylesToHost","styleEl","addHost","hostNode","removeHost","delete","ngOnDestroy","styleNode","NAMESPACE_URIS","svg","xhtml","xlink","xml","xmlns","COMPONENT_REGEX","HOST_ATTR","CONTENT_ATTR","shimContentAttribute","componentShortId","replace","shimHostAttribute","flattenStyles","compId","isArray","decoratePreventDefault","eventHandler","DomRendererFactory2","eventManager","sharedStylesHost","rendererByCompId","defaultRenderer","DefaultDomRenderer2","createRenderer","encapsulation","ViewEncapsulation","Emulated","renderer","id","EmulatedEncapsulationDomRenderer2","applyToHost","Native","ShadowDom","ShadowDomRenderer","begin","end","data","destroy","namespace","createText","refChild","selectRootElement","selectorOrNode","preserveContent","namespaceUri","flags","RendererStyleFlags2","DashCase","Important","removeProperty","checkNoSyntheticProp","listen","AT_CHARCODE","charCodeAt","nameKind","blackListedMap","component","contentAttr","hostAttr","hostEl","attachShadow","mode","nodeOrShadowRoot","__symbol__","Zone","v","ADD_EVENT_LISTENER","REMOVE_EVENT_LISTENER","symbolNames","stopSymbol","blackListedEvents","DomSanitizer","isBlackListedEvent","globalListener","symbolName","taskDatas","taskData","zone","current","run","copiedTasks","DomEventsPlugin","ngZone","platformId","isPlatformServer","patchEvent","Event","delegate","stopImmediatePropagation","isInAngularZone","globalListenerRegistered","root","callbackRegistered","underlyingRemove","found","splice","PLATFORM_ID","EVENT_NAMES","pan","panstart","panmove","panend","pancancel","panleft","panright","panup","pandown","pinch","pinchstart","pinchmove","pinchend","pinchcancel","pinchin","pinchout","press","pressup","rotate","rotatestart","rotatemove","rotateend","rotatecancel","swipe","swipeleft","swiperight","swipeup","swipedown","tap","HAMMER_GESTURE_CONFIG","HAMMER_LOADER","HammerGestureConfig","events","overrides","buildHammer","mc","Hammer","options","enable","HammerGesturesPlugin","_config","loader","isCustomEvent","warn","cancelRegistration_1","deregister_1","catch","runOutsideAngular","eventObj","runGuarded","off","indexOf","ɵConsole","MODIFIER_KEYS","MODIFIER_KEY_GETTERS","alt","altKey","control","ctrlKey","meta","metaKey","shift","shiftKey","KeyEventsPlugin","KeyEventsPlugin_1","parseEventName","parsedEvent","outsideHandler","eventCallback","parts","split","domEventName","_normalizeKey","pop","fullKey","modifierName","index","result","getEventFullKey","modifierGetter","keyName","DomSanitizerImpl","sanitize","ctx","SecurityContext","NONE","HTML","SafeHtmlImpl","changingThisBreaksApplicationSecurity","checkNotSafeValue","ɵ_sanitizeHtml","STYLE","SafeStyleImpl","ɵ_sanitizeStyle","SCRIPT","SafeScriptImpl","URL","SafeResourceUrlImpl","SafeUrlImpl","ɵ_sanitizeUrl","RESOURCE_URL","expectedType","SafeValueImpl","getTypeName","bypassSecurityTrustHtml","bypassSecurityTrustStyle","bypassSecurityTrustScript","bypassSecurityTrustUrl","bypassSecurityTrustResourceUrl","toString","INTERNAL_BROWSER_PLATFORM_PROVIDERS","useValue","ɵPLATFORM_BROWSER_ID","PLATFORM_INITIALIZER","initDomAdapter","useClass","_document","BROWSER_SANITIZATION_PROVIDERS","Sanitizer","useExisting","createPlatformFactory","platformCore","errorHandler","ErrorHandler","BROWSER_MODULE_PROVIDERS","ɵAPP_ROOT","RendererFactory2","Testability","BrowserModule","parentModule","BrowserModule_1","withServerTransition","params","ngModule","providers","APP_ID","appId","NgModule","CommonModule","ApplicationModule","SkipSelf","createMeta","Meta","inject","_dom","addTag","tag","forceCreation","_getOrCreateElement","addTags","tags","getTag","attrSelector","getTags","list","updateTag","_parseSelector","_setMetaElementAttributes","removeTag","removeTagElement","_containsAttributes","prop","attr","every","ngInjectableDef","defineInjectable","providedIn","createTitle","Title","win","ChangeDetectionPerfRecord","msPerTick","numTicks","AngularProfiler","appRef","timeChangeDetection","config","record","isProfilerAvailable","profile","start","tick","profileEnd","toFixed","TransferState","store","onSerializeCallbacks","TransferState_1","initState","transferState","defaultValue","undefined","hasKey","onSerialize","toJson","JSON","stringify","initTransferState","script","getElementById","initialState","unescapeHtml","unescapedText","&a;","&q;","&s;","&l;","&g;","BrowserTransferStateModule","By","all","debugElement","nativeElement","directive","providerTokens","VERSION","Version","ɵangular_packages_platform_browser_platform_browser_c","ɵangular_packages_platform_browser_platform_browser_b","ɵangular_packages_platform_browser_platform_browser_a","ɵangular_packages_platform_browser_platform_browser_k","ɵangular_packages_platform_browser_platform_browser_d","ɵangular_packages_platform_browser_platform_browser_i","ɵangular_packages_platform_browser_platform_browser_h","ɵangular_packages_platform_browser_platform_browser_e","ɵangular_packages_platform_browser_platform_browser_f","ɵangular_packages_platform_browser_platform_browser_j","ɵangular_packages_platform_browser_platform_browser_g","disableDebugTools","enableDebugTools","makeStateKey","ɵBROWSER_SANITIZATION_PROVIDERS","ɵINTERNAL_BROWSER_PLATFORM_PROVIDERS","ɵinitDomAdapter","ɵBrowserDomAdapter","ɵBrowserPlatformLocation","ɵTRANSITION_ID","ɵBrowserGetTestability","ɵescapeHtml","escapeHtml","escapedText","&","\"","'","<",">","ɵELEMENT_PROBE_PROVIDERS","ɵDomAdapter","ɵgetDOM","ɵsetRootDomAdapter","ɵDomRendererFactory2","ɵNAMESPACE_URIS","ɵflattenStyles","ɵshimContentAttribute","ɵshimHostAttribute","ɵDomEventsPlugin","ɵHammerGesturesPlugin","ɵKeyEventsPlugin","ɵDomSharedStylesHost","ɵSharedStylesHost","ɵDomSanitizerImpl"],"mappings":";;;;;CAMC,SAAUA,EAAQC,GACI,iBAAZC,SAA0C,oBAAXC,OAAyBF,EAAQC,QAASE,QAAQ,mBAAoBA,QAAQ,kBAClG,mBAAXC,QAAyBA,OAAOC,IAAMD,OAAO,6BAA8B,UAAW,kBAAmB,iBAAkBJ,GACxGA,IAAzBD,EAASA,GAAUO,MAAsBC,GAAKR,EAAOQ,OAAUR,EAAOQ,GAAGC,oBAAuBT,EAAOQ,GAAGE,OAAQV,EAAOQ,GAAGG,MAHjI,CAIEC,KAAM,SAAUV,EAASQ,EAAQC,GAAQ,aAkBvC,IAAIE,EAAgB,SAASC,EAAGC,GAI5B,OAHAF,EAAgBG,OAAOC,iBAChBC,wBAA2BC,OAAS,SAAUL,EAAGC,GAAKD,EAAEI,UAAYH,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIK,KAAKL,EAAOA,EAAEM,eAAeD,KAAIN,EAAEM,GAAKL,EAAEK,MACpDN,EAAGC,IAG5B,SAASO,EAAUR,EAAGC,GAElB,SAASQ,IAAOX,KAAKY,YAAcV,EADnCD,EAAcC,EAAGC,GAEjBD,EAAEW,UAAkB,OAANV,EAAaC,OAAOU,OAAOX,IAAMQ,EAAGE,UAAYV,EAAEU,UAAW,IAAIF,GAGnF,IAAII,EAAW,WAQX,OAPAA,EAAWX,OAAOY,QAAU,SAASD,EAASE,GAC1C,IAAK,IAAIC,EAAGC,EAAI,EAAGC,EAAIC,UAAUC,OAAQH,EAAIC,EAAGD,IAE5C,IAAK,IAAIX,KADTU,EAAIG,UAAUF,GACOf,OAAOS,UAAUJ,eAAec,KAAKL,EAAGV,KAAIS,EAAET,GAAKU,EAAEV,IAE9E,OAAOS,IAEKO,MAAMxB,KAAMqB,YAGhC,SAASI,EAAWC,EAAYC,EAAQC,EAAKC,GACzC,IAA2H3B,EAAvH4B,EAAIT,UAAUC,OAAQS,EAAID,EAAI,EAAIH,EAAkB,OAATE,EAAgBA,EAAOzB,OAAO4B,yBAAyBL,EAAQC,GAAOC,EACrH,GAAuB,iBAAZI,SAAoD,mBAArBA,QAAQC,SAAyBH,EAAIE,QAAQC,SAASR,EAAYC,EAAQC,EAAKC,QACpH,IAAK,IAAIV,EAAIO,EAAWJ,OAAS,EAAGH,GAAK,EAAGA,KAASjB,EAAIwB,EAAWP,MAAIY,GAAKD,EAAI,EAAI5B,EAAE6B,GAAKD,EAAI,EAAI5B,EAAEyB,EAAQC,EAAKG,GAAK7B,EAAEyB,EAAQC,KAASG,GAChJ,OAAOD,EAAI,GAAKC,GAAK3B,OAAO+B,eAAeR,EAAQC,EAAKG,GAAIA,EAGhE,SAASK,EAAQC,EAAYC,GACzB,OAAO,SAAUX,EAAQC,GAAOU,EAAUX,EAAQC,EAAKS,IAG3D,SAASE,EAAWC,EAAaC,GAC7B,GAAuB,iBAAZR,SAAoD,mBAArBA,QAAQS,SAAyB,OAAOT,QAAQS,SAASF,EAAaC,GAGpH,SAASE,EAAOC,EAAGxB,GACf,IAAIyB,EAAsB,mBAAXC,QAAyBF,EAAEE,OAAOC,UACjD,IAAKF,EAAG,OAAOD,EACf,IAAmBb,EAAYiB,EAA3B7B,EAAI0B,EAAEtB,KAAKqB,GAAOK,KACtB,IACI,WAAc,IAAN7B,GAAgBA,KAAM,MAAQW,EAAIZ,EAAE+B,QAAQC,MAAMF,EAAGG,KAAKrB,EAAEsB,OAExE,MAAOC,GAASN,GAAMM,MAAOA,GAC7B,QACI,IACQvB,IAAMA,EAAEoB,OAASN,EAAI1B,EAAU,SAAI0B,EAAEtB,KAAKJ,GAElD,QAAU,GAAI6B,EAAG,MAAMA,EAAEM,OAE7B,OAAOL;;;;;;;;AAgBX,IAAIM,EAAO,KACX,SAASC,IACL,OAAOD,EAEX,SAASE,EAAkBC,GAClBH,IACDA,EAAOG,GAUf,IAyIIC,EAzIAC,EAA4B,WAC5B,SAASA,IACL5D,KAAK6D,mBAAqB,KAY9B,OAVAzD,OAAO+B,eAAeyB,EAAW/C,UAAW,iBAKxCiD,IAAK,WAAc,OAAO9D,KAAK+D,gBAC/BC,IAAK,SAAUX,GAASrD,KAAK+D,eAAiBV,GAC9CY,YAAY,EACZC,cAAc,IAEXN,EAdoB,GA8B3BO,EAA0C,SAAUC,GAEpD,SAASD,IACL,IAAIE,EAAQD,EAAO7C,KAAKvB,OAASA,KACjCqE,EAAMC,iBAAmB,KACzBD,EAAME,eAAiB,KACvB,IACI,IAAIC,EAAYH,EAAMI,cAAc,MAAOC,UAC3C,GAAkD,MAA9CL,EAAMM,SAASH,EAAW,iBAC1BH,EAAMC,iBAAmB,QAIzB,IADA,IAAIM,GAAe,SAAU,MAAO,IAAK,MAChCzD,EAAI,EAAGA,EAAIyD,EAAYtD,OAAQH,IACpC,GAAmE,MAA/DkD,EAAMM,SAASH,EAAWI,EAAYzD,GAAK,iBAA0B,CACrEkD,EAAMC,iBAAmB,IAAMM,EAAYzD,GAAG0D,cAAgB,IAC9D,MAIZ,IAAIC,GACAC,iBAAkB,sBAClBC,cAAe,gBACfC,YAAa,gCACbC,WAAY,iBAEhB9E,OAAO+E,KAAKL,GAAsBM,QAAQ,SAAUxD,GACV,MAAlCyC,EAAMM,SAASH,EAAW5C,KAC1ByC,EAAME,eAAiBO,EAAqBlD,MAIxD,MAAOyD,GACHhB,EAAMC,iBAAmB,KACzBD,EAAME,eAAiB,KAE3B,OAAOF,EAeX,OAlDA3D,EAAUyD,EAA0BC,GAqCpCD,EAAyBtD,UAAUyE,oBAAsB,SAAUC,GAAM,OAAOA,EAAGD,uBACnFnB,EAAyBtD,UAAU2E,kBAAoB,SAAUD,EAAIE,EAASC,GAC1EH,EAAGG,KAAe,MAARA,EAAeD,EAAUA,EAAU,OAASC,GAE1DvB,EAAyBtD,UAAU8E,kBAAoB,WAAc,OAAO,GAC5ExB,EAAyBtD,UAAU+E,wBAA0B,WACzD,MAAiD,mBAAnClB,SAASmB,KAAKC,kBAEhC3B,EAAyBtD,UAAUkF,mBAAqB,WAAc,OAAO/F,KAAKsE,iBAAmBtE,KAAKsE,iBAAmB,IAC7HH,EAAyBtD,UAAUmF,iBAAmB,WAAc,OAAOhG,KAAKuE,eAAiBvE,KAAKuE,eAAiB,IACvHJ,EAAyBtD,UAAUoF,kBAAoB,WACnD,OAAgC,MAAzBjG,KAAKsE,kBAAmD,MAAvBtE,KAAKuE,gBAE1CJ,EAnDkC,CAoD3CP,GASEG,GACAmC,MAAS,YACTC,UAAa,YACbC,SAAY,WACZC,SAAY,YAIZC,GAGAC,KAAM,YACNC,KAAM,MACNC,IAAQ,SACRC,IAAQ,SACRC,IAAO,SACPC,IAAO,SACPC,KAAQ,YACRC,MAAS,aACTC,GAAM,UACNC,KAAQ,YACRC,KAAQ,cACRC,OAAU,aACVC,IAAO,MAKPC,GACAC,EAAK,IACLC,EAAK,IACLC,EAAK,IACLC,EAAK,IACLC,EAAK,IACLC,EAAK,IACLC,EAAK,IACLC,EAAK,IACLC,EAAK,IACLC,EAAK,IACLC,EAAK,IACLC,EAAK,IACLC,EAAK,IACLC,EAAK,IACLC,IAAQ,IACRC,IAAQ;;;;;;;OAGRrI,EAAKsI,QAAc,OACnB1E,EAAe5D,EAAKsI,QAAc,KAAExH,UAAUyH,UAAY,SAAUC,GAChE,SAA+C,GAArCvI,KAAKwI,wBAAwBD,MAU/C,IA2UIE,EA3UAC,EAAmC,SAAUtE,GAE7C,SAASsE,IACL,OAAkB,OAAXtE,GAAmBA,EAAO5C,MAAMxB,KAAMqB,YAAcrB,KA2T/D,OA7TAU,EAAUgI,EAAmBtE,GAI7BsE,EAAkB7H,UAAU8H,MAAQ,SAAUC,GAAgB,MAAM,IAAIC,MAAM,0BAC9EH,EAAkBI,YAAc,WAAcrF,EAAkB,IAAIiF,IACpEA,EAAkB7H,UAAUkI,YAAc,SAAUC,EAASC,GAAQ,OAAOA,KAAQD,GACpFN,EAAkB7H,UAAUqI,YAAc,SAAU3D,EAAI0D,EAAM5F,GAASkC,EAAG0D,GAAQ5F,GAClFqF,EAAkB7H,UAAUsI,YAAc,SAAU5D,EAAI0D,GAAQ,OAAO1D,EAAG0D,IAC1EP,EAAkB7H,UAAUuI,OAAS,SAAU7D,EAAI8D,EAAYC,GAC3D,IAAIjE,GACHA,EAAKE,GAAI8D,GAAY7H,MAAM6D,EA/LpC,SAASkE,IACL,IAAK,IAAItG,KAAS9B,EAAI,EAAGA,EAAIE,UAAUC,OAAQH,IAC3C8B,EAAKA,EAAGuG,OAAO7G,EAAOtB,UAAUF,KACpC,OAAO8B,EA4L6BsG,CAASD,KAG7CZ,EAAkB7H,UAAU4I,SAAW,SAAUnG,GACzCoG,OAAOC,UACHA,QAAQrG,MACRqG,QAAQrG,MAAMA,GAGdqG,QAAQC,IAAItG,KAIxBoF,EAAkB7H,UAAU+I,IAAM,SAAUtG,GACpCoG,OAAOC,SACPD,OAAOC,QAAQC,KAAOF,OAAOC,QAAQC,IAAItG,IAGjDoF,EAAkB7H,UAAUgJ,SAAW,SAAUvG,GACzCoG,OAAOC,SACPD,OAAOC,QAAQG,OAASJ,OAAOC,QAAQG,MAAMxG,IAGrDoF,EAAkB7H,UAAUkJ,YAAc,WAClCL,OAAOC,SACPD,OAAOC,QAAQK,UAAYN,OAAOC,QAAQK,YAGlD5J,OAAO+B,eAAeuG,EAAkB7H,UAAW,iBAC/CiD,IAAK,WAAc,OAAOC,GAC1BE,YAAY,EACZC,cAAc,IAElBwE,EAAkB7H,UAAUyH,SAAW,SAAU2B,EAAOC,GAAS,OAAOvG,EAAapC,KAAK0I,EAAOC,IACjGxB,EAAkB7H,UAAUsJ,cAAgB,SAAU5E,EAAI6E,GAAY,OAAO7E,EAAG4E,cAAcC,IAC9F1B,EAAkB7H,UAAUwJ,iBAAmB,SAAU9E,EAAI6E,GAAY,OAAO7E,EAAG8E,iBAAiBD,IACpG1B,EAAkB7H,UAAUyJ,GAAK,SAAU/E,EAAIgF,EAAKC,GAAYjF,EAAGkF,iBAAiBF,EAAKC,GAAU,IACnG9B,EAAkB7H,UAAU6J,YAAc,SAAUnF,EAAIgF,EAAKC,GAIzD,OAHAjF,EAAGkF,iBAAiBF,EAAKC,GAAU,GAG5B,WAAcjF,EAAGoF,oBAAoBJ,EAAKC,GAAU,KAE/D9B,EAAkB7H,UAAU+J,cAAgB,SAAUrF,EAAIgF,GAAOhF,EAAGqF,cAAcL,IAClF7B,EAAkB7H,UAAUgK,iBAAmB,SAAUC,GACrD,IAAIP,EAAMvK,KAAK+K,qBAAqBC,YAAY,cAEhD,OADAT,EAAIU,UAAUH,GAAW,GAAM,GACxBP,GAEX7B,EAAkB7H,UAAUmK,YAAc,SAAUF,GAChD,IAAIP,EAAMvK,KAAK+K,qBAAqBC,YAAY,SAEhD,OADAT,EAAIU,UAAUH,GAAW,GAAM,GACxBP,GAEX7B,EAAkB7H,UAAUqK,eAAiB,SAAUX,GACnDA,EAAIW,iBACJX,EAAIY,aAAc,GAEtBzC,EAAkB7H,UAAUuK,YAAc,SAAUb,GAChD,OAAOA,EAAIc,kBAAuC,MAAnBd,EAAIY,cAAwBZ,EAAIY,aAEnEzC,EAAkB7H,UAAUyK,aAAe,SAAU/F,GAAM,OAAOA,EAAGgG,WACrE7C,EAAkB7H,UAAU2K,mBAAqB,SAAUjG,GACvD,MAAO,YAAaA,GAAMvF,KAAKyL,kBAAkBlG,GAAMA,EAAGmG,QAAU,MAExEhD,EAAkB7H,UAAU8K,aAAe,SAAUpG,GAAM,OAAOA,EAAGqG,WACrElD,EAAkB7H,UAAUgL,SAAW,SAAUtD,GAAQ,OAAOA,EAAKsD,UACrEnD,EAAkB7H,UAAUiL,UAAY,SAAUvD,GAAQ,OAAOA,EAAKuD,WACtEpD,EAAkB7H,UAAUkL,KAAO,SAAUxD,GAAQ,OAAOA,EAAKwD,MACjErD,EAAkB7H,UAAU6K,QAAU,SAAUnD,GAC5C,OAAIvI,KAAK+I,YAAYR,EAAM,WAChBA,EAAKmD,QAGLnD,GAGfG,EAAkB7H,UAAUmL,WAAa,SAAUzG,GAAM,OAAOA,EAAGyG,YACnEtD,EAAkB7H,UAAUoL,YAAc,SAAU1G,GAAM,OAAOA,EAAG0G,aACpEvD,EAAkB7H,UAAUqL,cAAgB,SAAU3G,GAAM,OAAOA,EAAG4G,YACtEzD,EAAkB7H,UAAUuL,WAAa,SAAU7G,GAAM,OAAOA,EAAG6G,YACnE1D,EAAkB7H,UAAUwL,iBAAmB,SAAU9G,GAGrD,IAFA,IAAI6G,EAAa7G,EAAG6G,WAChBE,EAAM,IAAI/L,MAAM6L,EAAW9K,QACtBH,EAAI,EAAGA,EAAIiL,EAAW9K,OAAQH,IACnCmL,EAAInL,GAAKiL,EAAWjL,GAExB,OAAOmL,GAEX5D,EAAkB7H,UAAU0L,WAAa,SAAUhH,GAC/C,KAAOA,EAAGyG,YACNzG,EAAGiH,YAAYjH,EAAGyG,aAG1BtD,EAAkB7H,UAAU4L,YAAc,SAAUlH,EAAIgD,GAAQhD,EAAGkH,YAAYlE,IAC/EG,EAAkB7H,UAAU2L,YAAc,SAAUjH,EAAIgD,GAAQhD,EAAGiH,YAAYjE,IAC/EG,EAAkB7H,UAAU6L,aAAe,SAAUnH,EAAIoH,EAAUC,GAAYrH,EAAGmH,aAAaC,EAAUC,IACzGlE,EAAkB7H,UAAUgM,OAAS,SAAUtE,GAI3C,OAHIA,EAAK4D,YACL5D,EAAK4D,WAAWK,YAAYjE,GAEzBA,GAEXG,EAAkB7H,UAAUiM,aAAe,SAAUC,EAAQC,EAAKzE,GAAQwE,EAAOD,aAAavE,EAAMyE,IACpGtE,EAAkB7H,UAAUoM,gBAAkB,SAAUF,EAAQC,EAAKE,GACjEA,EAAM9H,QAAQ,SAAUhE,GAAK,OAAO2L,EAAOD,aAAa1L,EAAG4L,MAE/DtE,EAAkB7H,UAAUsM,YAAc,SAAUJ,EAAQC,EAAKzE,GAAQwE,EAAOD,aAAavE,EAAMyE,EAAIf,cACvGvD,EAAkB7H,UAAUuM,aAAe,SAAU7H,EAAIlC,GAASkC,EAAGgG,UAAYlI,GACjFqF,EAAkB7H,UAAUwM,QAAU,SAAU9H,GAAM,OAAOA,EAAG+H,aAChE5E,EAAkB7H,UAAU0M,QAAU,SAAUhI,EAAIlC,GAASkC,EAAG+H,YAAcjK,GAC9EqF,EAAkB7H,UAAU2M,SAAW,SAAUjI,GAAM,OAAOA,EAAGlC,OACjEqF,EAAkB7H,UAAU4M,SAAW,SAAUlI,EAAIlC,GAASkC,EAAGlC,MAAQA,GACzEqF,EAAkB7H,UAAU6M,WAAa,SAAUnI,GAAM,OAAOA,EAAGoI,SACnEjF,EAAkB7H,UAAU+M,WAAa,SAAUrI,EAAIlC,GAASkC,EAAGoI,QAAUtK,GAC7EqF,EAAkB7H,UAAUgN,cAAgB,SAAUC,GAAQ,OAAO9N,KAAK+K,qBAAqB8C,cAAcC,IAC7GpF,EAAkB7H,UAAUkN,eAAiB,SAAUC,GACnD,IAAI/M,EAAIjB,KAAK+K,qBAAqBtG,cAAc,YAEhD,OADAxD,EAAEsK,UAAYyC,EACP/M,GAEXyH,EAAkB7H,UAAU4D,cAAgB,SAAUwJ,EAASC,GAE3D,OADAA,EAAMA,GAAOlO,KAAK+K,sBACPtG,cAAcwJ,IAE7BvF,EAAkB7H,UAAUsN,gBAAkB,SAAUC,EAAIH,EAASC,GAEjE,OADAA,EAAMA,GAAOlO,KAAK+K,sBACPoD,gBAAgBC,EAAIH,IAEnCvF,EAAkB7H,UAAUwN,eAAiB,SAAUP,EAAMI,GAEzD,OADAA,EAAMA,GAAOlO,KAAK+K,sBACPsD,eAAeP,IAE9BpF,EAAkB7H,UAAUyN,gBAAkB,SAAUC,EAAUC,EAAWN,GAEzE,IAAI3I,GADJ2I,EAAMA,GAAOlO,KAAK+K,sBACLtG,cAAc,UAE3B,OADAc,EAAGkJ,aAAaF,EAAUC,GACnBjJ,GAEXmD,EAAkB7H,UAAU6N,mBAAqB,SAAUC,EAAKT,GAE5D,IAAIU,GADJV,EAAMA,GAAOlO,KAAK+K,sBACFtG,cAAc,SAE9B,OADAzE,KAAKyM,YAAYmC,EAAO5O,KAAKqO,eAAeM,EAAKT,IAC1CU,GAEXlG,EAAkB7H,UAAUiF,iBAAmB,SAAUP,GAAM,OAAOA,EAAGO,oBACzE4C,EAAkB7H,UAAUgO,cAAgB,SAAUtJ,GAAM,OAAOA,EAAGuJ,YACtEpG,EAAkB7H,UAAUkO,QAAU,SAAUxJ,GAAM,OAAOA,EAAGyJ,MAChEtG,EAAkB7H,UAAUoO,MAAQ,SAAU1G,GAAQ,OAAOA,EAAK2G,WAAU,IAC5ExG,EAAkB7H,UAAUsO,uBAAyB,SAAUnG,EAASC,GACpE,OAAOD,EAAQmG,uBAAuBlG,IAE1CP,EAAkB7H,UAAUuO,qBAAuB,SAAUpG,EAASC,GAClE,OAAOD,EAAQoG,qBAAqBnG,IAExCP,EAAkB7H,UAAUwO,UAAY,SAAUrG,GAAW,OAAOzI,MAAMM,UAAUyO,MAAM/N,KAAKyH,EAAQqG,UAAW,IAClH3G,EAAkB7H,UAAU0O,SAAW,SAAUvG,EAASwG,GAAaxG,EAAQqG,UAAUI,IAAID,IAC7F9G,EAAkB7H,UAAU6O,YAAc,SAAU1G,EAASwG,GAAaxG,EAAQqG,UAAUxC,OAAO2C,IACnG9G,EAAkB7H,UAAU8O,SAAW,SAAU3G,EAASwG,GACtD,OAAOxG,EAAQqG,UAAU/G,SAASkH,IAEtC9G,EAAkB7H,UAAU+O,SAAW,SAAU5G,EAAS6G,EAAWC,GACjE9G,EAAQ4F,MAAMiB,GAAaC,GAE/BpH,EAAkB7H,UAAUkP,YAAc,SAAU/G,EAASgH,GAGzDhH,EAAQ4F,MAAMoB,GAAa,IAE/BtH,EAAkB7H,UAAU8D,SAAW,SAAUqE,EAASgH,GAAa,OAAOhH,EAAQ4F,MAAMoB,IAC5FtH,EAAkB7H,UAAUoP,SAAW,SAAUjH,EAAS6G,EAAWC,GACjE,IAAIzM,EAAQrD,KAAK2E,SAASqE,EAAS6G,IAAc,GACjD,OAAOC,EAAazM,GAASyM,EAAazM,EAAM/B,OAAS,GAE7DoH,EAAkB7H,UAAUoN,QAAU,SAAUjF,GAAW,OAAOA,EAAQiF,SAC1EvF,EAAkB7H,UAAUqP,aAAe,SAAUlH,GAGjD,IAFA,IAAIsD,EAAM,IAAI6D,IACVC,EAAUpH,EAAQqH,WACblP,EAAI,EAAGA,EAAIiP,EAAQ9O,OAAQH,IAAK,CACrC,IAAImP,EAASF,EAAQG,KAAKpP,GAC1BmL,EAAItI,IAAIsM,EAAOrH,KAAMqH,EAAOjN,OAEhC,OAAOiJ,GAEX5D,EAAkB7H,UAAU2P,aAAe,SAAUxH,EAASyH,GAC1D,OAAOzH,EAAQwH,aAAaC,IAEhC/H,EAAkB7H,UAAU6P,eAAiB,SAAU1H,EAASoF,EAAIqC,GAChE,OAAOzH,EAAQ0H,eAAetC,EAAIqC,IAEtC/H,EAAkB7H,UAAU8P,aAAe,SAAU3H,EAASyH,GAC1D,OAAOzH,EAAQ2H,aAAaF,IAEhC/H,EAAkB7H,UAAU+P,eAAiB,SAAU5H,EAASoF,EAAInF,GAChE,OAAOD,EAAQ4H,eAAexC,EAAInF,IAEtCP,EAAkB7H,UAAU4N,aAAe,SAAUzF,EAASC,EAAM5F,GAAS2F,EAAQyF,aAAaxF,EAAM5F,IACxGqF,EAAkB7H,UAAUgQ,eAAiB,SAAU7H,EAASoF,EAAInF,EAAM5F,GACtE2F,EAAQ6H,eAAezC,EAAInF,EAAM5F,IAErCqF,EAAkB7H,UAAUiQ,gBAAkB,SAAU9H,EAASyH,GAAazH,EAAQ8H,gBAAgBL,IACtG/H,EAAkB7H,UAAUkQ,kBAAoB,SAAU/H,EAASoF,EAAInF,GACnED,EAAQ+H,kBAAkB3C,EAAInF,IAElCP,EAAkB7H,UAAUmQ,kBAAoB,SAAUzL,GAAM,OAAOvF,KAAKyL,kBAAkBlG,GAAMvF,KAAK0L,QAAQnG,GAAMA,GACvHmD,EAAkB7H,UAAUoQ,mBAAqB,WAC7C,OAAOvM,SAASwM,eAAeC,mBAAmB,cAEtDzI,EAAkB7H,UAAUkK,mBAAqB,WAAc,OAAOrG,UACtEgE,EAAkB7H,UAAUuQ,sBAAwB,SAAU7L,GAC1D,IACI,OAAOA,EAAG6L,wBAEd,MAAO/L,GACH,OAASgM,IAAK,EAAGC,OAAQ,EAAGC,KAAM,EAAGC,MAAO,EAAGC,MAAO,EAAGC,OAAQ,KAGzEhJ,EAAkB7H,UAAU8Q,SAAW,SAAUzD,GAAO,OAAOA,EAAI0D,OACnElJ,EAAkB7H,UAAUgR,SAAW,SAAU3D,EAAK4D,GAAY5D,EAAI0D,MAAQE,GAAY,IAC1FpJ,EAAkB7H,UAAUkR,eAAiB,SAAU3Q,EAAGgJ,GACtD,QAAIpK,KAAKgS,cAAc5Q,KACZA,EAAE6Q,SAAW7Q,EAAE6Q,QAAQ7H,IAC1BhJ,EAAE8Q,mBAAqB9Q,EAAE8Q,kBAAkB9H,IAC3ChJ,EAAE+Q,uBAAyB/Q,EAAE+Q,sBAAsB/H,KAI/D1B,EAAkB7H,UAAU4K,kBAAoB,SAAUlG,GACtD,OAAOvF,KAAKgS,cAAczM,IAAuB,aAAhBA,EAAGsG,UAExCnD,EAAkB7H,UAAUuR,WAAa,SAAU7J,GAAQ,OAAOA,EAAK8J,WAAaC,KAAKC,WACzF7J,EAAkB7H,UAAU2R,cAAgB,SAAUjK,GAAQ,OAAOA,EAAK8J,WAAaC,KAAKG,cAC5F/J,EAAkB7H,UAAUmR,cAAgB,SAAUzJ,GAAQ,OAAOA,EAAK8J,WAAaC,KAAKI,cAC5FhK,EAAkB7H,UAAU8R,cAAgB,SAAUpK,GAClD,OAA0B,MAAnBA,EAAKuG,YAAsBvG,aAAgBqK,aAEtDlK,EAAkB7H,UAAUgS,aAAe,SAAUtK,GAAQ,OAAOA,aAAgBuK,kBACpFpK,EAAkB7H,UAAUkS,cAAgB,SAAUxK,GAAQ,OAAO7D,SAASsO,WAAWhT,KAAKgR,kBAAkBzI,IAAO,IACvHG,EAAkB7H,UAAUoS,UAAY,SAAU1K,GAAQ,OAAO7D,SAASuO,UAAU1K,IACpFG,EAAkB7H,UAAUqS,QAAU,SAAU3N,GAAM,OAAOA,EAAGoL,aAAa,SAC7EjI,EAAkB7H,UAAUsS,YAAc,SAAUC,GAChD,IAAIxR,EAAMwR,EAAMxR,IAChB,GAAW,MAAPA,EAAa,CAKb,GAAW,OAJXA,EAAMwR,EAAMC,eAKR,MAAO,eAEPzR,EAAI0R,WAAW,QACf1R,EAAM2R,OAAOC,aAAaC,SAAS7R,EAAI8R,UAAU,GAAI,KA5TvC,IA6TVN,EAAMO,UAAwCvM,EAAoB3G,eAAemB,KAIjFA,EAAMwF,EAAoBxF,KAItC,OAAO0E,EAAQ1E,IAAQA,GAE3B8G,EAAkB7H,UAAU+S,qBAAuB,SAAU1F,EAAKvM,GAC9D,MAAe,WAAXA,EACO+H,OAEI,aAAX/H,EACOuM,EAEI,SAAXvM,EACOuM,EAAIrI,KAER,MAEX6C,EAAkB7H,UAAUgT,WAAa,WAAc,OAAOnK,OAAOoK,SACrEpL,EAAkB7H,UAAUkT,YAAc,WAAc,OAAOrK,OAAOiK,UACtEjL,EAAkB7H,UAAUmT,YAAc,SAAU9F,GAChD,IAAIxI,EAgCZ,SAASuO,IACL,OAAKC,IACDA,EAAcxP,SAASyF,cAAc,SAKlC+J,EAAYvD,aAAa,QAHjB,KApCAsD,GACX,OAAe,MAARvO,EAAe,KA0C9B,SAASyO,EAAaC,GAKlB,OAJK3L,IACDA,EAAiB/D,SAASD,cAAc,MAE5CgE,EAAegG,aAAa,OAAQ2F,GACU,MAAtC3L,EAAe4L,SAASC,OAAO,GAAc7L,EAAe4L,SAChE,IAAM5L,EAAe4L;;;;;;;OAhDQF,CAAazO,IAE9CgD,EAAkB7H,UAAU0T,iBAAmB,WAAcL,EAAc,MAC3ExL,EAAkB7H,UAAU2T,aAAe,WAAc,OAAO9K,OAAO+K,UAAUC,WACjFhM,EAAkB7H,UAAU8T,QAAU,SAAU3L,EAASC,EAAM5F,GAC3DrD,KAAKyO,aAAazF,EAAS,QAAUC,EAAM5F,IAE/CqF,EAAkB7H,UAAU+T,QAAU,SAAU5L,EAASC,GACrD,OAAOjJ,KAAK2Q,aAAa3H,EAAS,QAAUC,IAEhDP,EAAkB7H,UAAUgU,iBAAmB,SAAU7L,GAAW,OAAO6L,iBAAiB7L,IAE5FN,EAAkB7H,UAAUiU,qBAAuB,WAC/C,MAA+C,mBAAjCC,QAAQlU,UAAmB,SAE7C6H,EAAkB7H,UAAUmU,eAAiB,WAGzC,OAAOtL,OAAOuL,aAAevL,OAAOuL,YAAYC,IAAMxL,OAAOuL,YAAYC,OACrE,IAAIC,MAAOC,WAEnB1M,EAAkB7H,UAAUwU,gBAAkB,WAAc,OAAO,GACnE3M,EAAkB7H,UAAUyU,UAAY,SAAUrM,GAAQ,OAAOnJ,EAAOyV,kBAAkB7Q,SAAS8Q,OAAQvM,IAC3GP,EAAkB7H,UAAU4U,UAAY,SAAUxM,EAAM5F,GAGpDqB,SAAS8Q,OAASE,mBAAmBzM,GAAQ,IAAMyM,mBAAmBrS,IAEnEqF,EA9T2B,CA+TpCvE,GACE+P,EAAc,KAqCdyB,EAAW7V,EAAO6V;;;;;;;;AAStB,SAASC,IACL,QAASlM,OAAOoK,QAAQ+B;;;;;;;OAe5B,IAAIC,EAAyC,SAAU1R,GAEnD,SAAS0R,EAAwBC,GAC7B,IAAI1R,EAAQD,EAAO7C,KAAKvB,OAASA,KAGjC,OAFAqE,EAAM0R,KAAOA,EACb1R,EAAM2R,QACC3R,EAsDX,OA3DA3D,EAAUoV,EAAyB1R,GASnC0R,EAAwBjV,UAAUmV,MAAQ,WACtChW,KAAK2T,SAAWnQ,IAASuQ,cACzB/T,KAAKiW,SAAWzS,IAASqQ,cAE7BiC,EAAwBjV,UAAUqV,mBAAqB,WAAc,OAAO1S,IAASwQ,YAAYhU,KAAK+V,OACtGD,EAAwBjV,UAAUsV,WAAa,SAAUC,GACrD5S,IAASoQ,qBAAqB5T,KAAK+V,KAAM,UAAUtL,iBAAiB,WAAY2L,GAAI,IAExFN,EAAwBjV,UAAUwV,aAAe,SAAUD,GACvD5S,IAASoQ,qBAAqB5T,KAAK+V,KAAM,UAAUtL,iBAAiB,aAAc2L,GAAI,IAE1FhW,OAAO+B,eAAe2T,EAAwBjV,UAAW,YACrDiD,IAAK,WAAc,OAAO9D,KAAK2T,SAASU,UACxCrQ,IAAK,SAAUsS,GAAWtW,KAAK2T,SAASU,SAAWiC,GACnDrS,YAAY,EACZC,cAAc,IAElB9D,OAAO+B,eAAe2T,EAAwBjV,UAAW,UACrDiD,IAAK,WAAc,OAAO9D,KAAK2T,SAAS4C,QACxCtS,YAAY,EACZC,cAAc,IAElB9D,OAAO+B,eAAe2T,EAAwBjV,UAAW,QACrDiD,IAAK,WAAc,OAAO9D,KAAK2T,SAAS6C,MACxCvS,YAAY,EACZC,cAAc,IAElB4R,EAAwBjV,UAAUgV,UAAY,SAAUY,EAAO7E,EAAOwC,GAC9DwB,IACA5V,KAAKiW,SAASJ,UAAUY,EAAO7E,EAAOwC,GAGtCpU,KAAK2T,SAAS6C,KAAOpC,GAG7B0B,EAAwBjV,UAAU6V,aAAe,SAAUD,EAAO7E,EAAOwC,GACjEwB,IACA5V,KAAKiW,SAASS,aAAaD,EAAO7E,EAAOwC,GAGzCpU,KAAK2T,SAAS6C,KAAOpC,GAG7B0B,EAAwBjV,UAAU8V,QAAU,WAAc3W,KAAKiW,SAASU,WACxEb,EAAwBjV,UAAU+V,KAAO,WAAc5W,KAAKiW,SAASW,QAC3CnV,GACtB1B,EAAK8W,aACLzU,EAAQ,EAAGrC,EAAK+W,OAAOnB,IACvBpT,EAAW,qBAAsBnC,UAClC0V,GA3DqC,CA6D1ChW,EAAOiX,kBAaLC,EAAgB,IAAIjX,EAAKkX,eAAe;;;;;;;OAC5C,SAASC,EAAsBC,EAAczS,EAAU0S,GACnD,OAAO,WAGHA,EAAStT,IAAI/D,EAAKsX,uBAAuBC,YAAYC,KAAK,WACtD,IAAIC,EAAMhU,IACGjD,MAAMM,UAAUyO,MAAM9N,MAAMgW,EAAInN,iBAAiB3F,EAAU,yBACjE+S,OAAO,SAAUlS,GAAM,OAAOiS,EAAI7G,aAAapL,EAAI,mBAAqB4R,IAC1E/R,QAAQ,SAAUG,GAAM,OAAOiS,EAAI3K,OAAOtH,QAI3D,IAAImS,IAEIC,QAAS5X,EAAK6X,gBACdC,WAAYX,EACZY,MAAOd,EAAerB,EAAU5V,EAAKgY,UACrCC,OAAO,IAWXC,EAAuC,WACvC,SAASA,KAkDT,OAhDAA,EAAsBC,KAAO,WAAcnY,EAAKoY,qBAAqB,IAAIF,IACzEA,EAAsBpX,UAAUuX,YAAc,SAAUC,GACpDtY,EAAKsI,QAA+B,sBAAI,SAAUiQ,EAAMC,QAC5B,IAApBA,IAA8BA,GAAkB,GACpD,IAAIC,EAAcH,EAASI,sBAAsBH,EAAMC,GACvD,GAAmB,MAAfC,EACA,MAAM,IAAI3P,MAAM,2CAEpB,OAAO2P,GAEXzY,EAAKsI,QAAoC,2BAAI,WAAc,OAAOgQ,EAASK,uBAC3E3Y,EAAKsI,QAAmC,0BAAI,WAAc,OAAOgQ,EAASM,sBAgBrE5Y,EAAKsI,QAA8B,uBACpCtI,EAAKsI,QAA8B,yBAEvCtI,EAAKsI,QAA8B,qBAAEjF,KAlBjB,SAAUwV,GAC1B,IAAIC,EAAgB9Y,EAAKsI,QAAoC,6BACzDyQ,EAAQD,EAAcvX,OACtByX,GAAU,EACVC,EAAY,SAAUC,GACtBF,EAAUA,GAAWE,EAER,KADbH,GAEIF,EAASG,IAGjBF,EAAczT,QAAQ,SAAUoT,GAC5BA,EAAYU,WAAWF,QAQnCf,EAAsBpX,UAAU4X,sBAAwB,SAAUJ,EAAUC,EAAMC,GAC9E,GAAY,MAARD,EACA,OAAO,KAEX,IAAIrX,EAAIoX,EAASc,eAAeb,GAChC,OAAS,MAALrX,EACOA,EAEDsX,EAGN/U,IAASqP,aAAayF,GACftY,KAAKyY,sBAAsBJ,EAAU7U,IAASuL,QAAQuJ,IAAO,GAEjEtY,KAAKyY,sBAAsBJ,EAAU7U,IAAS0I,cAAcoM,IAAO,GAL/D,MAORL,EAnD+B;;;;;;;;;;;;;;;AAoE1C,SAASmB,EAAYnQ,EAAM5F,GACC,oBAAbgW,UAA6BA,YAK3BtZ,EAAKsI,QAAY,GAAItI,EAAKsI,QAAY,QAC5CY,GAAQ5F;;;;;;;OAWnB,IAAIiW,GACAC,eAAkBxZ,EAAKwZ,eACvBC,OAAUzZ,EAAKyZ,QAEfC,EAAsB,QACtBC,EAA0B,aAM9B,SAASC,EAAqB3Q,GAC1B,OAAOjJ,EAAK6Z,aAAa5Q,GAE7B,SAAS6Q,EAAeC,GAGpB,OAFAV,EAAYK,EAAqBE,GACjCP,EAAYM,EAAyB3Y,KAAauY,EAGtD,SAASS,EAAoBC,GACzB,OAAOA,EAAOC,OAAO,SAAUC,EAAMjZ,GAAK,OAAQiZ,EAAKjZ,EAAEgI,MAAQhI,EAAEkZ,MAAOD,OAJXH,CAAoBD,SAC5E,WAAc,OAAOH,GAQhC,IAAIS,IAEIzC,QAAS5X,EAAK6X,gBACdC,WAAYgC,EACZ/B,OACK/X,EAAKsa,aAAc,IAAIta,EAAKua,WAEjCtC,OAAO,IAgBXuC,EAAwB,IAAIxa,EAAKkX,eAAe,uBAOhDuD,EAA8B,WAI9B,SAASA,EAAaC,EAASC,GAC3B,IAAIrW,EAAQrE,KACZA,KAAK0a,MAAQA,EACb1a,KAAK2a,mBAAqB,IAAIxK,IAC9BsK,EAAQrV,QAAQ,SAAU5E,GAAK,OAAOA,EAAEoa,QAAUvW,IAClDrE,KAAK6a,SAAWJ,EAAQnL,QAAQwL,UAqDpC,OA1CAN,EAAa3Z,UAAU4J,iBAAmB,SAAUzB,EAAS+R,EAAWC,GAEpE,OADahb,KAAKib,eAAeF,GACnBtQ,iBAAiBzB,EAAS+R,EAAWC,IAWvDR,EAAa3Z,UAAUqa,uBAAyB,SAAUvZ,EAAQoZ,EAAWC,GAEzE,OADahb,KAAKib,eAAeF,GACnBG,uBAAuBvZ,EAAQoZ,EAAWC,IAK5DR,EAAa3Z,UAAUsa,QAAU,WAAc,OAAOnb,KAAK0a,OAE3DF,EAAa3Z,UAAUoa,eAAiB,SAAUF,GAC9C,IAAIK,EAASpb,KAAK2a,mBAAmB7W,IAAIiX,GACzC,GAAIK,EACA,OAAOA,EAGX,IADA,IAAIX,EAAUza,KAAK6a,SACV1Z,EAAI,EAAGA,EAAIsZ,EAAQnZ,OAAQH,IAAK,CACrC,IAAIka,EAAWZ,EAAQtZ,GACvB,GAAIka,EAASC,SAASP,GAElB,OADA/a,KAAK2a,mBAAmB3W,IAAI+W,EAAWM,GAChCA,EAGf,MAAM,IAAIxS,MAAM,2CAA6CkS,IAElDtZ,GACX1B,EAAK8W,aACLzU,EAAQ,EAAGrC,EAAK+W,OAAOyD,IACvBhY,EAAW,qBAAsBhC,MAAOR,EAAKyZ,UAC9CgB,GA7D0B,GAgE7Be,EAAoC,WACpC,SAASA,EAAmBxF,GACxB/V,KAAK+V,KAAOA,EAShB,OAPAwF,EAAmB1a,UAAUqa,uBAAyB,SAAUlS,EAAS+R,EAAWC,GAChF,IAAIrZ,EAAS6B,IAASoQ,qBAAqB5T,KAAK+V,KAAM/M,GACtD,IAAKrH,EACD,MAAM,IAAIkH,MAAM,4BAA8BlH,EAAS,cAAgBoZ,GAE3E,OAAO/a,KAAKyK,iBAAiB9I,EAAQoZ,EAAWC,IAE7CO,EAX4B,GAqBnCC,EAAkC,WAClC,SAASA,IAELxb,KAAKyb,WAAa,IAAIC,IAkB1B,OAhBAF,EAAiB3a,UAAU8a,UAAY,SAAUC,GAC7C,IAAIvX,EAAQrE,KACR6b,EAAY,IAAIH,IACpBE,EAAOxW,QAAQ,SAAUwJ,GAChBvK,EAAMoX,WAAWK,IAAIlN,KACtBvK,EAAMoX,WAAWhM,IAAIb,GACrBiN,EAAUpM,IAAIb,MAGtB5O,KAAK+b,cAAcF,IAEvBL,EAAiB3a,UAAUkb,cAAgB,SAAUF,KACrDL,EAAiB3a,UAAUmb,aAAe,WAAc,OAAOzb,MAAM0b,KAAKjc,KAAKyb,aAC5Dha,GACf1B,EAAK8W,cACN2E,GApB8B,GAuBjCU,EAAqC,SAAU9X,GAE/C,SAAS8X,EAAoBnG,GACzB,IAAI1R,EAAQD,EAAO7C,KAAKvB,OAASA,KAKjC,OAJAqE,EAAM0R,KAAOA,EACb1R,EAAM8X,WAAa,IAAIT,IACvBrX,EAAM+X,YAAc,IAAIV,IACxBrX,EAAM8X,WAAW1M,IAAIsG,EAAKsG,MACnBhY,EAyBX,OAhCA3D,EAAUwb,EAAqB9X,GAS/B8X,EAAoBrb,UAAUyb,iBAAmB,SAAUV,EAAQ5M,GAC/D,IAAI3K,EAAQrE,KACZ4b,EAAOxW,QAAQ,SAAUwJ,GACrB,IAAI2N,EAAUlY,EAAM0R,KAAKtR,cAAc,SACvC8X,EAAQjP,YAAcsB,EACtBvK,EAAM+X,YAAY3M,IAAIT,EAAKvC,YAAY8P,OAG/CL,EAAoBrb,UAAU2b,QAAU,SAAUC,GAC9Czc,KAAKsc,iBAAiBtc,KAAKyb,WAAYgB,GACvCzc,KAAKmc,WAAW1M,IAAIgN,IAExBP,EAAoBrb,UAAU6b,WAAa,SAAUD,GAAYzc,KAAKmc,WAAWQ,OAAOF,IACxFP,EAAoBrb,UAAUkb,cAAgB,SAAUF,GACpD,IAAIxX,EAAQrE,KACZA,KAAKmc,WAAW/W,QAAQ,SAAUqX,GAAY,OAAOpY,EAAMiY,iBAAiBT,EAAWY,MAE3FP,EAAoBrb,UAAU+b,YAAc,WAAc5c,KAAKoc,YAAYhX,QAAQ,SAAUyX,GAAa,OAAOrZ,IAASqJ,OAAOgQ,MAC3Gpb,GAClB1B,EAAK8W,aACLzU,EAAQ,EAAGrC,EAAK+W,OAAOnB,IACvBpT,EAAW,qBAAsBnC,UAClC8b,GAhCiC,CAkCtCV,GASEsB,GACAC,IAAO,6BACPC,MAAS,+BACTC,MAAS,+BACTC,IAAO,uCACPC,MAAS,iCAETC,EAAkB,UAElBC,EAAY,iBACZC,EAAe;;;;;;;OACnB,SAASC,EAAqBC,GAC1B,OAAOF,EAAaG,QAAQL,EAAiBI,GAEjD,SAASE,EAAkBF,GACvB,OAAOH,EAAUI,QAAQL,EAAiBI,GAE9C,SAASG,EAAcC,EAAQhC,EAAQja,GACnC,IAAK,IAAIR,EAAI,EAAGA,EAAIya,EAAOta,OAAQH,IAAK,CACpC,IAAIyN,EAAQgN,EAAOza,GACfZ,MAAMsd,QAAQjP,GACd+O,EAAcC,EAAQhP,EAAOjN,IAG7BiN,EAAQA,EAAM6O,QAAQL,EAAiBQ,GACvCjc,EAAOyB,KAAKwL,IAGpB,OAAOjN,EAEX,SAASmc,EAAuBC,GAC5B,OAAO,SAAU3K,IAEgB,IADF2K,EAAa3K,KAGpCA,EAAMlI,iBACNkI,EAAMjI,aAAc,IAIhC,IAAI6S,EAAqC,WACrC,SAASA,EAAoBC,EAAcC,GACvCle,KAAKie,aAAeA,EACpBje,KAAKke,iBAAmBA,EACxBle,KAAKme,iBAAmB,IAAIhO,IAC5BnQ,KAAKoe,gBAAkB,IAAIC,EAAoBJ,GAoCnD,OAlCAD,EAAoBnd,UAAUyd,eAAiB,SAAUtV,EAAS+C,GAC9D,IAAK/C,IAAY+C,EACb,OAAO/L,KAAKoe,gBAEhB,OAAQrS,EAAKwS,eACT,KAAKxe,EAAKye,kBAAkBC,SACxB,IAAIC,EAAW1e,KAAKme,iBAAiBra,IAAIiI,EAAK4S,IAO9C,OANKD,IACDA,EACI,IAAIE,GAAkC5e,KAAKie,aAAcje,KAAKke,iBAAkBnS,GACpF/L,KAAKme,iBAAiBna,IAAI+H,EAAK4S,GAAID,IAEvCA,EAASG,YAAY7V,GACd0V,EAEX,KAAK3e,EAAKye,kBAAkBM,OAC5B,KAAK/e,EAAKye,kBAAkBO,UACxB,OAAO,IAAIC,GAAkBhf,KAAKie,aAAcje,KAAKke,iBAAkBlV,EAAS+C,GACpF,QACI,IAAK/L,KAAKme,iBAAiBrC,IAAI/P,EAAK4S,IAAK,CACrC,IAAI/C,EAAS+B,EAAc5R,EAAK4S,GAAI5S,EAAK6P,WACzC5b,KAAKke,iBAAiBvC,UAAUC,GAChC5b,KAAKme,iBAAiBna,IAAI+H,EAAK4S,GAAI3e,KAAKoe,iBAE5C,OAAOpe,KAAKoe,kBAIxBJ,EAAoBnd,UAAUoe,MAAQ,aACtCjB,EAAoBnd,UAAUqe,IAAM,aACdzd,GAClB1B,EAAK8W,aACLtU,EAAW,qBAAsBiY,EAAc0B,KAChD8B,GAxCiC,GA2CpCK,EAAqC,WACrC,SAASA,EAAoBJ,GACzBje,KAAKie,aAAeA,EACpBje,KAAKmf,KAAO/e,OAAOU,OAAO,MAgG9B,OA9FAud,EAAoBxd,UAAUue,QAAU,aACxCf,EAAoBxd,UAAU4D,cAAgB,SAAUwE,EAAMoW,GAC1D,OAAIA,EACO3a,SAASyJ,gBAAgB2O,EAAeuC,GAAYpW,GAExDvE,SAASD,cAAcwE,IAElCoV,EAAoBxd,UAAUgN,cAAgB,SAAUxK,GAAS,OAAOqB,SAASmJ,cAAcxK,IAC/Fgb,EAAoBxd,UAAUye,WAAa,SAAUjc,GAAS,OAAOqB,SAAS2J,eAAehL,IAC7Fgb,EAAoBxd,UAAU4L,YAAc,SAAUM,EAAQJ,GAAYI,EAAON,YAAYE,IAC7F0R,EAAoBxd,UAAUiM,aAAe,SAAUC,EAAQJ,EAAU4S,GACjExS,GACAA,EAAOD,aAAaH,EAAU4S,IAGtClB,EAAoBxd,UAAU2L,YAAc,SAAUO,EAAQH,GACtDG,GACAA,EAAOP,YAAYI,IAG3ByR,EAAoBxd,UAAU2e,kBAAoB,SAAUC,EAAgBC,GACxE,IAAIna,EAA+B,iBAAnBka,EAA8B/a,SAASyF,cAAcsV,GACjEA,EACJ,IAAKla,EACD,MAAM,IAAIsD,MAAM,iBAAoB4W,EAAiB,gCAKzD,OAHKC,IACDna,EAAG+H,YAAc,IAEd/H,GAEX8Y,EAAoBxd,UAAUsL,WAAa,SAAU5D,GAAQ,OAAOA,EAAK4D,YACzEkS,EAAoBxd,UAAUoL,YAAc,SAAU1D,GAAQ,OAAOA,EAAK0D,aAC1EoS,EAAoBxd,UAAU4N,aAAe,SAAUlJ,EAAI0D,EAAM5F,EAAOgc,GACpE,GAAIA,EAAW,CACXpW,EAAOoW,EAAY,IAAMpW,EACzB,IAAI0W,EAAe7C,EAAeuC,GAC9BM,EACApa,EAAGsL,eAAe8O,EAAc1W,EAAM5F,GAGtCkC,EAAGkJ,aAAaxF,EAAM5F,QAI1BkC,EAAGkJ,aAAaxF,EAAM5F,IAG9Bgb,EAAoBxd,UAAUiQ,gBAAkB,SAAUvL,EAAI0D,EAAMoW,GAChE,GAAIA,EAAW,CACX,IAAIM,EAAe7C,EAAeuC,GAC9BM,EACApa,EAAGwL,kBAAkB4O,EAAc1W,GAGnC1D,EAAGuL,gBAAgBuO,EAAY,IAAMpW,QAIzC1D,EAAGuL,gBAAgB7H,IAG3BoV,EAAoBxd,UAAU0O,SAAW,SAAUhK,EAAI0D,GAAQ1D,EAAG8J,UAAUI,IAAIxG,IAChFoV,EAAoBxd,UAAU6O,YAAc,SAAUnK,EAAI0D,GAAQ1D,EAAG8J,UAAUxC,OAAO5D,IACtFoV,EAAoBxd,UAAU+O,SAAW,SAAUrK,EAAIqJ,EAAOvL,EAAOuc,GAC7DA,EAAQ7f,EAAK8f,oBAAoBC,SACjCva,EAAGqJ,MAAM1F,YAAY0F,EAAOvL,EAAUuc,EAAQ7f,EAAK8f,oBAAoBE,UAAa,YAAc,IAGlGxa,EAAGqJ,MAAMA,GAASvL,GAG1Bgb,EAAoBxd,UAAUkP,YAAc,SAAUxK,EAAIqJ,EAAOgR,GACzDA,EAAQ7f,EAAK8f,oBAAoBC,SACjCva,EAAGqJ,MAAMoR,eAAepR,GAKxBrJ,EAAGqJ,MAAMA,GAAS,IAG1ByP,EAAoBxd,UAAUqI,YAAc,SAAU3D,EAAI0D,EAAM5F,GAC5D4c,EAAqBhX,EAAM,YAC3B1D,EAAG0D,GAAQ5F,GAEfgb,EAAoBxd,UAAU4M,SAAW,SAAUlF,EAAMlF,GAASkF,EAAKuD,UAAYzI,GACnFgb,EAAoBxd,UAAUqf,OAAS,SAAUve,EAAQyR,EAAOwF,GAE5D,OADAqH,EAAqB7M,EAAO,YACN,iBAAXzR,EACA3B,KAAKie,aAAa/C,uBAAuBvZ,EAAQyR,EAAO0K,EAAuBlF,IAEnF5Y,KAAKie,aAAaxT,iBAAiB9I,EAAQyR,EAAO0K,EAAuBlF,KAE7EyF,EAnG6B,GAqGpC8B,EAAc,IAAIC,WAAW,GACjC,SAASH,EAAqBhX,EAAMoX,GAChC,GAAIpX,EAAKmX,WAAW,KAAOD,EACvB,MAAM,IAAItX,MAAM,uBAAyBwX,EAAW,IAAMpX,EAAO,oGAGzE,IAsFIqX,EAtFA1B,GAAmD,SAAUxa,GAE7D,SAASwa,EAAkCX,EAAcC,EAAkBqC,GACvE,IAAIlc,EAAQD,EAAO7C,KAAKvB,KAAMie,IAAiBje,KAC/CqE,EAAMkc,UAAYA,EAClB,IAAI3E,EAAS+B,EAAc4C,EAAU5B,GAAI4B,EAAU3E,WAInD,OAHAsC,EAAiBvC,UAAUC,GAC3BvX,EAAMmc,YAAcjD,EAAqBgD,EAAU5B,IACnDta,EAAMoc,SAAW/C,EAAkB6C,EAAU5B,IACtCta,EAQX,OAhBA3D,EAAUke,EAAmCxa,GAU7Cwa,EAAkC/d,UAAUge,YAAc,SAAU7V,GAAW5E,EAAOvD,UAAU4N,aAAalN,KAAKvB,KAAMgJ,EAAShJ,KAAKygB,SAAU,KAChJ7B,EAAkC/d,UAAU4D,cAAgB,SAAUsI,EAAQ9D,GAC1E,IAAI1D,EAAKnB,EAAOvD,UAAU4D,cAAclD,KAAKvB,KAAM+M,EAAQ9D,GAE3D,OADA7E,EAAOvD,UAAU4N,aAAalN,KAAKvB,KAAMuF,EAAIvF,KAAKwgB,YAAa,IACxDjb,GAEJqZ,EAjB2C,CAkBpDP,GACEW,GAAmC,SAAU5a,GAE7C,SAAS4a,EAAkBf,EAAcC,EAAkBwC,EAAQH,GAC/D,IAAIlc,EAAQD,EAAO7C,KAAKvB,KAAMie,IAAiBje,KAC/CqE,EAAM6Z,iBAAmBA,EACzB7Z,EAAMqc,OAASA,EACfrc,EAAMkc,UAAYA,EAEdlc,EAAMyK,WADNyR,EAAUhC,gBAAkBxe,EAAKye,kBAAkBO,UAChC2B,EAAOC,cAAeC,KAAM,SAG5BF,EAAO5a,mBAE9BzB,EAAM6Z,iBAAiB1B,QAAQnY,EAAMyK,YAErC,IADA,IAAI8M,EAAS+B,EAAc4C,EAAU5B,GAAI4B,EAAU3E,WAC1Cza,EAAI,EAAGA,EAAIya,EAAOta,OAAQH,IAAK,CACpC,IAAIob,EAAU7X,SAASD,cAAc,SACrC8X,EAAQjP,YAAcsO,EAAOza,GAC7BkD,EAAMyK,WAAWrC,YAAY8P,GAEjC,OAAOlY,EAgBX,OAnCA3D,EAAUse,EAAmB5a,GAqB7B4a,EAAkBne,UAAUggB,iBAAmB,SAAUtY,GAAQ,OAAOA,IAASvI,KAAK0gB,OAAS1gB,KAAK8O,WAAavG,GACjHyW,EAAkBne,UAAUue,QAAU,WAAcpf,KAAKke,iBAAiBxB,WAAW1c,KAAK8O,aAC1FkQ,EAAkBne,UAAU4L,YAAc,SAAUM,EAAQJ,GACxD,OAAOvI,EAAOvD,UAAU4L,YAAYlL,KAAKvB,KAAMA,KAAK6gB,iBAAiB9T,GAASJ,IAElFqS,EAAkBne,UAAUiM,aAAe,SAAUC,EAAQJ,EAAU4S,GACnE,OAAOnb,EAAOvD,UAAUiM,aAAavL,KAAKvB,KAAMA,KAAK6gB,iBAAiB9T,GAASJ,EAAU4S,IAE7FP,EAAkBne,UAAU2L,YAAc,SAAUO,EAAQH,GACxD,OAAOxI,EAAOvD,UAAU2L,YAAYjL,KAAKvB,KAAMA,KAAK6gB,iBAAiB9T,GAASH,IAElFoS,EAAkBne,UAAUsL,WAAa,SAAU5D,GAC/C,OAAOvI,KAAK6gB,iBAAiBzc,EAAOvD,UAAUsL,WAAW5K,KAAKvB,KAAMA,KAAK6gB,iBAAiBtY,MAEvFyW,EApC2B,CAqCpCX,GAkBEyC,GAA8B,oBAATC,MAAyBA,KAAiB,YAT1D,SAAUC,GACf,MAAO,kBAAoBA,GAS3BC,GAAqBH,GAAW,oBAChCI,GAAwBJ,GAAW,uBACnCK,MAMAC,GAAa,oCAEbC,GAAqC,oBAATN,MAAyBA,KAAKD,GAAW,wBAErEO,KACAf,KACAe,GAAkBjc,QAAQ,SAAU2V,GAAauF,EAAevF,GAAaA,KAEjF,IAwhBIuG,GAxhBAC,GAAqB,SAAUxG,GAC/B,QAAKuF,GAGEA,EAAe7f,eAAesa,IAIrCyG,GAAiB,SAAUpO,GAC3B,IAAIqO,EAAaN,GAAY/N,EAAMrH,MACnC,GAAK0V,EAAL,CAGA,IAAIC,EAAY1hB,KAAKyhB,GACrB,GAAKC,EAAL,CAGA,IAAIpY,GAAQ8J,GACZ,GAAyB,IAArBsO,EAAUpgB,OAGV,OADIqgB,EAAWD,EAAU,IACZE,OAASb,KAAKc,QAEhBF,EAASC,KAAKE,IAAIH,EAAS3G,QAAShb,KAAMsJ,GAG1CqY,EAAS3G,QAAQxZ,MAAMxB,KAAMsJ,GAOxC,IADA,IAAIyY,EAAcL,EAAUpS,QACnBnO,EAAI,EAAGA,EAAI4gB,EAAYzgB,SAGF,IAAtB8R,EAAMgO,IAH0BjgB,IAAK,CAMzC,IAAIwgB,GAAAA,EAAWI,EAAY5gB,IACdygB,OAASb,KAAKc,QAEvBF,EAASC,KAAKE,IAAIH,EAAS3G,QAAShb,KAAMsJ,GAG1CqY,EAAS3G,QAAQxZ,MAAMxB,KAAMsJ,OAKzC0Y,GAAiC,SAAU5d,GAE3C,SAAS4d,EAAgB9T,EAAK+T,EAAQC,GAClC,IAAI7d,EAAQD,EAAO7C,KAAKvB,KAAMkO,IAAQlO,KAKtC,OAJAqE,EAAM4d,OAASA,EACVC,GAAepiB,EAAOqiB,iBAAiBD,IACxC7d,EAAM+d,aAEH/d,EA4GX,OAnHA3D,EAAUshB,EAAiB5d,GAS3B4d,EAAgBnhB,UAAUuhB,WAAa,WACnC,GAAqB,oBAAVC,OAA0BA,OAAUA,MAAMxhB,YAGjDwhB,MAAMxhB,UAA0B,wCAApC,CAIA,IAAIyhB,EAAWD,MAAMxhB,UAA0B,wCAC3CwhB,MAAMxhB,UAAU0hB,yBACpBF,MAAMxhB,UAAU0hB,yBAA2B,WACnCviB,OACAA,KAAKohB,KAAc,GAKvBkB,GAAYA,EAAS9gB,MAAMxB,KAAMqB,cAKzC2gB,EAAgBnhB,UAAUya,SAAW,SAAUP,GAAa,OAAO,GACnEiH,EAAgBnhB,UAAU4J,iBAAmB,SAAUzB,EAAS+R,EAAWC,GACvE,IAAI3W,EAAQrE,KAER4Y,EAAWoC,EAGf,IAJmBhS,EAAQiY,KAILlhB,EAAKyZ,OAAOgJ,oBAAqBjB,GAAmBxG,GA+BtE/R,EAA2B,iBAAE+R,EAAWnC,GAAU,OA/BiC,CACnF,IAAI6I,EAAaN,GAAYpG,GACxB0G,IACDA,EAAaN,GAAYpG,GAAa+F,GAxGxC,UAwG6D/F,EAzG/D,UA2GA,IAAI2G,EAAY1Y,EAAQyY,GACpBgB,EAA2Bf,GAAaA,EAAUpgB,OAAS,EAC1DogB,IACDA,EAAY1Y,EAAQyY,OAExB,IAAIG,EAAOL,GAAmBxG,GAAagG,KAAK2B,KAAO3B,KAAKc,QAC5D,GAAyB,IAArBH,EAAUpgB,OACVogB,EAAUte,MAAOwe,KAAMA,EAAM5G,QAASpC,QAErC,CAED,IADA,IAAI+J,GAAqB,EAChBxhB,EAAI,EAAGA,EAAIugB,EAAUpgB,OAAQH,IAClC,GAAIugB,EAAUvgB,GAAG6Z,UAAYpC,EAAU,CACnC+J,GAAqB,EACrB,MAGHA,GACDjB,EAAUte,MAAOwe,KAAMA,EAAM5G,QAASpC,IAGzC6J,GACDzZ,EAAQiY,IAAoBlG,EAAWyG,IAAgB,GAM/D,OAAO,WAAc,OAAOnd,EAAMsG,oBAAoB3B,EAAS+R,EAAWnC,KAE9EoJ,EAAgBnhB,UAAU8J,oBAAsB,SAAUhJ,EAAQoZ,EAAWnC,GACzE,IAAIgK,EAAmBjhB,EAAOuf,IAE9B,IAAK0B,EACD,OAAOjhB,EAA6B,oBAAEH,MAAMG,GAASoZ,EAAWnC,GAAU,IAE9E,IAAI6I,EAAaN,GAAYpG,GACzB2G,EAAYD,GAAc9f,EAAO8f,GACrC,IAAKC,EAGD,OAAO/f,EAA6B,oBAAEH,MAAMG,GAASoZ,EAAWnC,GAAU,IAK9E,IADA,IAAIiK,GAAQ,EACH1hB,EAAI,EAAGA,EAAIugB,EAAUpgB,OAAQH,IAElC,GAAIugB,EAAUvgB,GAAG6Z,UAAYpC,EAAU,CACnCiK,GAAQ,EACRnB,EAAUoB,OAAO3hB,EAAG,GACpB,MAGJ0hB,EACyB,IAArBnB,EAAUpgB,QAEVshB,EAAiBphB,MAAMG,GAASoZ,EAAWyG,IAAgB,IAM/D7f,EAA6B,oBAAEH,MAAMG,GAASoZ,EAAWnC,GAAU,KAGzDnX,GACd1B,EAAK8W,aACLzU,EAAQ,EAAGrC,EAAK+W,OAAOnB,IACvBvT,EAAQ,EAAGrC,EAAKua,YAAalY,EAAQ,EAAGrC,EAAK+W,OAAO/W,EAAKgjB,cACzDxgB,EAAW,qBAAsBnC,OAAQL,EAAKyZ,OAAQpZ,UACvD4hB,GAnH6B,CAqHlCzG,GAYEyH,IAEAC,KAAO,EACPC,UAAY,EACZC,SAAW,EACXC,QAAU,EACVC,WAAa,EACbC,SAAW,EACXC,UAAY,EACZC,OAAS,EACTC,SAAW,EAEXC,OAAS,EACTC,YAAc,EACdC,WAAa,EACbC,UAAY,EACZC,aAAe,EACfC,SAAW,EACXC,UAAY,EAEZC,OAAS,EACTC,SAAW,EAEXC,QAAU,EACVC,aAAe,EACfC,YAAc,EACdC,WAAa,EACbC,cAAgB,EAEhBC,OAAS,EACTC,WAAa,EACbC,YAAc,EACdC,SAAW,EACXC,WAAa,EAEbC,KAAO,GAQPC,GAAwB,IAAI/kB,EAAKkX,eAAe,uBAMhD8N,GAAgB,IAAIhlB,EAAKkX,eAAe,gBAMxC+N,GAAqC,WACrC,SAASA,IAMLhlB,KAAKilB,UAiBLjlB,KAAKklB,aAoBT,OAZAF,EAAoBnkB,UAAUskB,YAAc,SAAUnc,GAClD,IAAIoc,EAAK,IAAIC,OAAOrc,EAAShJ,KAAKslB,SAGlC,IAAK,IAAIvK,KAFTqK,EAAGthB,IAAI,SAASE,KAAMuhB,QAAQ,IAC9BH,EAAGthB,IAAI,UAAUE,KAAMuhB,QAAQ,IACTvlB,KAAKklB,UACvBE,EAAGthB,IAAIiX,GAAW/W,IAAIhE,KAAKklB,UAAUnK,IAEzC,OAAOqK,GAEW3jB,GAClB1B,EAAK8W,cACNmO,GA3CiC,GA8CpCQ,GAAsC,SAAUphB,GAEhD,SAASohB,EAAqBtX,EAAKuX,EAAS9b,EAAS+b,GACjD,IAAIrhB,EAAQD,EAAO7C,KAAKvB,KAAMkO,IAAQlO,KAItC,OAHAqE,EAAMohB,QAAUA,EAChBphB,EAAMsF,QAAUA,EAChBtF,EAAMqhB,OAASA,EACRrhB,EAyEX,OA/EA3D,EAAU8kB,EAAsBphB,GAQhCohB,EAAqB3kB,UAAUya,SAAW,SAAUP,GAChD,SAAKiI,GAAYviB,eAAesa,EAAUlW,iBAAmB7E,KAAK2lB,cAAc5K,KAG3ErR,OAAO2b,SAAWrlB,KAAK0lB,SACxB1lB,KAAK2J,QAAQic,KAAK,QAAW7K,EAAY,oGAElC,KAIfyK,EAAqB3kB,UAAU4J,iBAAmB,SAAUzB,EAAS+R,EAAWC,GAC5E,IAAI3W,EAAQrE,KACR4hB,EAAO5hB,KAAK4a,QAAQO,UAIxB,GAHAJ,EAAYA,EAAUlW,eAGjB6E,OAAO2b,QAAUrlB,KAAK0lB,OAAQ,CAI/B,IAAIG,GAAuB,EACvBC,EAAe,WAAcD,GAAuB,GAuBxD,OAtBA7lB,KAAK0lB,SACAnO,KAAK,WAEN,IAAK7N,OAAO2b,OAGR,OAFAhhB,EAAMsF,QAAQic,KAAK,0EACnBE,EAAe,cAGdD,IAGDC,EAAezhB,EAAMoG,iBAAiBzB,EAAS+R,EAAWC,MAG7D+K,MAAM,WACP1hB,EAAMsF,QAAQic,KAAK,QAAW7K,EAAY,uEAE1C+K,EAAe,eAKZ,WAAcA,KAEzB,OAAOlE,EAAKoE,kBAAkB,WAE1B,IAAIZ,EAAK/gB,EAAMohB,QAAQN,YAAYnc,GAC/B4P,EAAW,SAAUqN,GACrBrE,EAAKsE,WAAW,WAAclL,EAAQiL,MAG1C,OADAb,EAAG9a,GAAGyQ,EAAWnC,GACV,WACHwM,EAAGe,IAAIpL,EAAWnC,GAEQ,mBAAfwM,EAAGhG,SACVgG,EAAGhG,cAKnBoG,EAAqB3kB,UAAU8kB,cAAgB,SAAU5K,GAAa,OAAO/a,KAAKylB,QAAQR,OAAOmB,QAAQrL,IAAc,GAChGtZ,GACnB1B,EAAK8W,aACLzU,EAAQ,EAAGrC,EAAK+W,OAAOnB,IACvBvT,EAAQ,EAAGrC,EAAK+W,OAAOgO,KACvB1iB,EAAQ,EAAGrC,EAAKua,YAAalY,EAAQ,EAAGrC,EAAK+W,OAAOiO,KACpDxiB,EAAW,qBAAsBnC,OAAQ4kB,GAAqBjlB,EAAKsmB,SAAUjmB,UAC9EolB,GA/EkC,CAiFvCjK,GAYE+K,IAAiB,MAAO,UAAW,OAAQ,SAK3CC,IACAC,IALO,SAAUpT,GAAS,OAAOA,EAAMqT,QAMvCC,QANyD,SAAUtT,GAAS,OAAOA,EAAMuT,SAOzFC,KAP4G,SAAUxT,GAAS,OAAOA,EAAMyT,SAQ5IC,MAR6J,SAAU1T,GAAS,OAAOA,EAAM2T,WAc7LC,GAAiC,SAAU5iB,GAM3C,SAAS4iB,EAAgB9Y,GACrB,OAAO9J,EAAO7C,KAAKvB,KAAMkO,IAAQlO,KA8FrC,IAAIinB,EAMJ,OA1GAvmB,EAAUsmB,EAAiB5iB,GAQ3B6iB,EAAoBD,EAMpBA,EAAgBnmB,UAAUya,SAAW,SAAUP,GAAa,OAAsD,MAA/CkM,EAAkBC,eAAenM,IASpGiM,EAAgBnmB,UAAU4J,iBAAmB,SAAUzB,EAAS+R,EAAWC,GACvE,IAAImM,EAAcF,EAAkBC,eAAenM,GAC/CqM,EAAiBH,EAAkBI,cAAcF,EAAqB,QAAGnM,EAAShb,KAAK4a,QAAQO,WACnG,OAAOnb,KAAK4a,QAAQO,UAAU6K,kBAAkB,WAC5C,OAAOxiB,IAASkH,YAAY1B,EAASme,EAA0B,aAAGC,MAG1EJ,EAAgBE,eAAiB,SAAUnM,GACvC,IAAIuM,EAAQvM,EAAUlW,cAAc0iB,MAAM,KACtCC,EAAeF,EAAMR,QACzB,GAAsB,IAAjBQ,EAAMhmB,QAAoC,YAAjBkmB,GAA+C,UAAjBA,EACxD,OAAO,KAEX,IAAI5lB,EAAMqlB,EAAkBQ,cAAcH,EAAMI,OAC5CC,EAAU,GASd,GARArB,GAAclhB,QAAQ,SAAUwiB,GAC5B,IAAIC,EAAQP,EAAMlB,QAAQwB,GACtBC,GAAS,IACTP,EAAMxE,OAAO+E,EAAO,GACpBF,GAAWC,EAAe,OAGlCD,GAAW/lB,EACS,GAAhB0lB,EAAMhmB,QAA8B,IAAfM,EAAIN,OAEzB,OAAO,KAEX,IAAIwmB,KAGJ,OAFAA,EAAqB,aAAIN,EACzBM,EAAgB,QAAIH,EACbG,GAEXd,EAAgBe,gBAAkB,SAAU3U,GACxC,IAAIuU,EAAU,GACV/lB,EAAM4B,IAAS2P,YAAYC,GAiB/B,MAfY,OADZxR,EAAMA,EAAIiD,eAENjD,EAAM,QAEO,MAARA,IACLA,EAAM,OAEV0kB,GAAclhB,QAAQ,SAAUwiB,GACxBA,GAAgBhmB,IAEZomB,EADiBzB,GAAqBqB,IACvBxU,KACfuU,GAAWC,EAAe,OAItCD,GAAW/lB,GAUfolB,EAAgBK,cAAgB,SAAUM,EAAS3M,EAAS4G,GACxD,OAAO,SAAUxO,GACT6T,EAAkBc,gBAAgB3U,KAAWuU,GAC7C/F,EAAKsE,WAAW,WAAc,OAAOlL,EAAQ5H,OAKzD4T,EAAgBS,cAAgB,SAAUQ,GAEtC,OAAQA,GACJ,IAAK,MACD,MAAO,SACX,QACI,OAAOA,IAIDhB,EAAoBxlB,GAClC1B,EAAK8W,aACLzU,EAAQ,EAAGrC,EAAK+W,OAAOnB,IACvBpT,EAAW,qBAAsBnC,UAClC4mB,GA1G6B,CA4GlCzL,GA6CE2M,GAAkC,SAAU9jB,GAE5C,SAAS8jB,EAAiBnS,GACtB,IAAI1R,EAAQD,EAAO7C,KAAKvB,OAASA,KAEjC,OADAqE,EAAM0R,KAAOA,EACN1R,EA0DX,OA9DA3D,EAAUwnB,EAAkB9jB,GAM5B8jB,EAAiBrnB,UAAUsnB,SAAW,SAAUC,EAAK/kB,GACjD,GAAa,MAATA,EACA,OAAO,KACX,OAAQ+kB,GACJ,KAAKroB,EAAKsoB,gBAAgBC,KACtB,OAAOjlB,EACX,KAAKtD,EAAKsoB,gBAAgBE,KACtB,OAAIllB,aAAiBmlB,GACVnlB,EAAMolB,uCACjBzoB,KAAK0oB,kBAAkBrlB,EAAO,QACvBtD,EAAK4oB,eAAe3oB,KAAK+V,KAAMxC,OAAOlQ,KACjD,KAAKtD,EAAKsoB,gBAAgBO,MACtB,OAAIvlB,aAAiBwlB,GACVxlB,EAAMolB,uCACjBzoB,KAAK0oB,kBAAkBrlB,EAAO,SACvBtD,EAAK+oB,gBAAgBzlB,IAChC,KAAKtD,EAAKsoB,gBAAgBU,OACtB,GAAI1lB,aAAiB2lB,GACjB,OAAO3lB,EAAMolB,sCAEjB,MADAzoB,KAAK0oB,kBAAkBrlB,EAAO,UACxB,IAAIwF,MAAM,yCACpB,KAAK9I,EAAKsoB,gBAAgBY,IACtB,OAAI5lB,aAAiB6lB,IAAuB7lB,aAAiB8lB,GAElD9lB,EAAMolB,uCAEjBzoB,KAAK0oB,kBAAkBrlB,EAAO,OACvBtD,EAAKqpB,cAAc7V,OAAOlQ,KACrC,KAAKtD,EAAKsoB,gBAAgBgB,aACtB,GAAIhmB,aAAiB6lB,GACjB,OAAO7lB,EAAMolB,sCAGjB,MADAzoB,KAAK0oB,kBAAkBrlB,EAAO,eACxB,IAAIwF,MAAM,iFACpB,QACI,MAAM,IAAIA,MAAM,8BAAgCuf,EAAM,wCAGlEF,EAAiBrnB,UAAU6nB,kBAAoB,SAAUrlB,EAAOimB,GAC5D,GAAIjmB,aAAiBkmB,GACjB,MAAM,IAAI1gB,MAAM,mBAAqBygB,EAAe,WAAajmB,EAAMmmB,cAAgB,uCAI/FtB,EAAiBrnB,UAAU4oB,wBAA0B,SAAUpmB,GAAS,OAAO,IAAImlB,GAAanlB,IAChG6kB,EAAiBrnB,UAAU6oB,yBAA2B,SAAUrmB,GAAS,OAAO,IAAIwlB,GAAcxlB,IAClG6kB,EAAiBrnB,UAAU8oB,0BAA4B,SAAUtmB,GAAS,OAAO,IAAI2lB,GAAe3lB,IACpG6kB,EAAiBrnB,UAAU+oB,uBAAyB,SAAUvmB,GAAS,OAAO,IAAI8lB,GAAY9lB,IAC9F6kB,EAAiBrnB,UAAUgpB,+BAAiC,SAAUxmB,GAClE,OAAO,IAAI6lB,GAAoB7lB,IAEhB5B,GACf1B,EAAK8W,aACLzU,EAAQ,EAAGrC,EAAK+W,OAAOnB,IACvBpT,EAAW,qBAAsBnC,UAClC8nB,GA9D8B,CALjC5G,GACA,SAASA,QAqETiI,GAA+B,WAC/B,SAASA,EAAcd,GACnBzoB,KAAKyoB,sCAAwCA,EAOjD,OAJAc,EAAc1oB,UAAUipB,SAAW,WAC/B,MAAO,0CAA4C9pB,KAAKyoB,sCACpD,sCAEDc,EATuB,GAW9Bf,GAA8B,SAAUpkB,GAExC,SAASokB,IACL,OAAkB,OAAXpkB,GAAmBA,EAAO5C,MAAMxB,KAAMqB,YAAcrB,KAG/D,OALAU,EAAU8nB,EAAcpkB,GAIxBokB,EAAa3nB,UAAU2oB,YAAc,WAAc,MAAO,QACnDhB,EANsB,CAO/Be,IACEV,GAA+B,SAAUzkB,GAEzC,SAASykB,IACL,OAAkB,OAAXzkB,GAAmBA,EAAO5C,MAAMxB,KAAMqB,YAAcrB,KAG/D,OALAU,EAAUmoB,EAAezkB,GAIzBykB,EAAchoB,UAAU2oB,YAAc,WAAc,MAAO,SACpDX,EANuB,CAOhCU,IACEP,GAAgC,SAAU5kB,GAE1C,SAAS4kB,IACL,OAAkB,OAAX5kB,GAAmBA,EAAO5C,MAAMxB,KAAMqB,YAAcrB,KAG/D,OALAU,EAAUsoB,EAAgB5kB,GAI1B4kB,EAAenoB,UAAU2oB,YAAc,WAAc,MAAO,UACrDR,EANwB,CAOjCO,IACEJ,GAA6B,SAAU/kB,GAEvC,SAAS+kB,IACL,OAAkB,OAAX/kB,GAAmBA,EAAO5C,MAAMxB,KAAMqB,YAAcrB,KAG/D,OALAU,EAAUyoB,EAAa/kB,GAIvB+kB,EAAYtoB,UAAU2oB,YAAc,WAAc,MAAO,OAClDL,EANqB,CAO9BI,IACEL,GAAqC,SAAU9kB,GAE/C,SAAS8kB,IACL,OAAkB,OAAX9kB,GAAmBA,EAAO5C,MAAMxB,KAAMqB,YAAcrB,KAG/D,OALAU,EAAUwoB,EAAqB9kB,GAI/B8kB,EAAoBroB,UAAU2oB,YAAc,WAAc,MAAO,eAC1DN,EAN6B,CAOtCK,IASEQ,KACEpS,QAAS5X,EAAKgjB,YAAaiH,SAAUlqB,EAAOmqB,uBAC5CtS,QAAS5X,EAAKmqB,qBAAsBF,SAAUG,GAAgBnS,OAAO,IACrEL,QAAS7X,EAAOiX,iBAAkBqT,SAAUtU,EAAyBgC,MAAOnC,KAC5EgC,QAAShC,EAAUkC,WAAYwS,GAAWvS,UAQ5CwS,KACE3S,QAAS5X,EAAKwqB,UAAWC,YAAalJ,KACtC3J,QAAS2J,GAAc8I,SAAUlC,GAAkBpQ,MAAOnC,KAK5D9V,GAAkBE,EAAK0qB,sBAAsB1qB,EAAK2qB,aAAc,UAAWX,IAC/E,SAASI,KACLzhB,EAAkBI,cAClBmP,EAAsBC,OAE1B,SAASyS,KACL,OAAO,IAAI5qB,EAAK6qB,aAEpB,SAASP,KACL,OAAO3lB,SAEX,IAAImmB,IACAP,IACE3S,QAAS5X,EAAK+qB,UAAWd,UAAU,IACnCrS,QAAS5X,EAAK6qB,aAAc/S,WAAY8S,GAAc7S,UAEpDH,QAAS4C,EACT6P,SAAUpI,GACVhK,OAAO,EACPF,MAAOnC,EAAU5V,EAAKyZ,OAAQzZ,EAAKgjB,eAErCpL,QAAS4C,EAAuB6P,SAAUpD,GAAiBhP,OAAO,EAAMF,MAAOnC,KAE7EgC,QAAS4C,EACT6P,SAAU5E,GACVxN,OAAO,EACPF,MAAOnC,EAAUmP,GAAuB/kB,EAAKsmB,UAAW,IAAItmB,EAAKua,SAAYyK,OAE/EpN,QAASmN,GAAuBsF,SAAUpF,GAAqBlN,UAE7DH,QAASqG,EACToM,SAAUpM,EACVlG,MAAO0C,EAAc0B,KAEvBvE,QAAS5X,EAAKgrB,iBAAkBP,YAAaxM,IAC7CrG,QAAS6D,EAAkBgP,YAAatO,IACxCvE,QAASuE,EAAqBkO,SAAUlO,EAAqBpE,MAAOnC,KACpEgC,QAAS5X,EAAKirB,YAAaZ,SAAUrqB,EAAKirB,YAAalT,MAAO/X,EAAKyZ,UACnE7B,QAAS6C,EAAc4P,SAAU5P,EAAc1C,MAAOyC,EAAuBxa,EAAKyZ,SACpFY,GAWA6Q,GAA+B,WAC/B,SAASA,EAAcC,GACnB,GAAIA,EACA,MAAM,IAAIriB,MAAM,iKAsBxB,IAAIsiB,EAMJ,OAzBAA,EAAkBF,EASlBA,EAAcG,qBAAuB,SAAUC,GAC3C,OACIC,SAAUH,EACVI,YACM5T,QAAS5X,EAAKyrB,OAAQxB,SAAUqB,EAAOI,QACvC9T,QAASX,EAAewT,YAAazqB,EAAKyrB,QAC5C9T,KAKIyT,EAAkB1pB,GAC9B1B,EAAK2rB,UAAWH,UAAWV,GAA0BvrB,SAAUQ,EAAO6rB,aAAc5rB,EAAK6rB,qBACzFxpB,EAAQ,EAAGrC,EAAKua,YAAalY,EAAQ,EAAGrC,EAAK8rB,YAAazpB,EAAQ,EAAGrC,EAAK+W,OAAOqU,IACjF5oB,EAAW,qBAAsBnC,UAClC6qB,GA9B2B,GAqClC,SAASa,KACL,OAAO,IAAIC,GAAKhsB,EAAKisB,OAAOrW,IAOhC,IAAIoW,GAAsB,WACtB,SAASA,EAAKhW,GACV/V,KAAK+V,KAAOA,EACZ/V,KAAKisB,KAAOzoB,IAmFhB,OAjFAuoB,EAAKlrB,UAAUqrB,OAAS,SAAUC,EAAKC,GAEnC,YADsB,IAAlBA,IAA4BA,GAAgB,GAC3CD,EAEEnsB,KAAKqsB,oBAAoBF,EAAKC,GAD1B,MAGfL,EAAKlrB,UAAUyrB,QAAU,SAAUC,EAAMH,GACrC,IAAI/nB,EAAQrE,KAEZ,YADsB,IAAlBosB,IAA4BA,GAAgB,GAC3CG,EAEEA,EAAKtS,OAAO,SAAU6N,EAAQqE,GAIjC,OAHIA,GACArE,EAAO1kB,KAAKiB,EAAMgoB,oBAAoBF,EAAKC,IAExCtE,WAGfiE,EAAKlrB,UAAU2rB,OAAS,SAAUC,GAC9B,OAAKA,GAEEzsB,KAAKisB,KAAK9hB,cAAcnK,KAAK+V,KAAM,QAAU0W,EAAe,MADxD,MAGfV,EAAKlrB,UAAU6rB,QAAU,SAAUD,GAC/B,IAAKA,EACD,SACJ,IAAIE,EAAoB3sB,KAAKisB,KAAK5hB,iBAAiBrK,KAAK+V,KAAM,QAAU0W,EAAe,KACvF,OAAOE,KAAUrd,MAAM/N,KAAKorB,OAEhCZ,EAAKlrB,UAAU+rB,UAAY,SAAUT,EAAK/hB,GACtC,IAAK+hB,EACD,OAAO,KACX/hB,EAAWA,GAAYpK,KAAK6sB,eAAeV,GAC3C,IAAIvF,EAAO5mB,KAAKwsB,OAAOpiB,GACvB,OAAIwc,EACO5mB,KAAK8sB,0BAA0BX,EAAKvF,GAExC5mB,KAAKqsB,oBAAoBF,GAAK,IAEzCJ,EAAKlrB,UAAUksB,UAAY,SAAUN,GAAgBzsB,KAAKgtB,iBAAiBhtB,KAAKwsB,OAAOC,KACvFV,EAAKlrB,UAAUmsB,iBAAmB,SAAUpG,GACpCA,GACA5mB,KAAKisB,KAAKpf,OAAO+Z,IAGzBmF,EAAKlrB,UAAUwrB,oBAAsB,SAAUzF,EAAMwF,GAEjD,QADsB,IAAlBA,IAA4BA,GAAgB,IAC3CA,EAAe,CAChB,IAAIhiB,EAAWpK,KAAK6sB,eAAejG,GAC/BtO,EAAOtY,KAAKwsB,OAAOpiB,GAIvB,GAAIkO,GAAQtY,KAAKitB,oBAAoBrG,EAAMtO,GACvC,OAAOA,EAEf,IAAItP,EAAUhJ,KAAKisB,KAAKxnB,cAAc,QACtCzE,KAAK8sB,0BAA0BlG,EAAM5d,GACrC,IAAIqT,EAAOrc,KAAKisB,KAAK7c,qBAAqBpP,KAAK+V,KAAM,QAAQ,GAE7D,OADA/V,KAAKisB,KAAKxf,YAAY4P,EAAMrT,GACrBA,GAEX+iB,EAAKlrB,UAAUisB,0BAA4B,SAAUX,EAAK5mB,GACtD,IAAIlB,EAAQrE,KAEZ,OADAI,OAAO+E,KAAKgnB,GAAK/mB,QAAQ,SAAU8nB,GAAQ,OAAO7oB,EAAM4nB,KAAKxd,aAAalJ,EAAI2nB,EAAMf,EAAIe,MACjF3nB,GAEXwmB,EAAKlrB,UAAUgsB,eAAiB,SAAUV,GACtC,IAAIgB,EAAOhB,EAAIljB,KAAO,OAAS,WAC/B,OAAOkkB,EAAO,KAAQhB,EAAIgB,GAAQ,KAEtCpB,EAAKlrB,UAAUosB,oBAAsB,SAAUd,EAAK7T,GAChD,IAAIjU,EAAQrE,KACZ,OAAOI,OAAO+E,KAAKgnB,GAAKiB,MAAM,SAAUxrB,GAAO,OAAOyC,EAAM4nB,KAAKtb,aAAa2H,EAAM1W,KAASuqB,EAAIvqB,MAErGmqB,EAAKsB,gBAAkBttB,EAAKutB,kBAAmBjuB,QAASysB,GAAY3R,MAAO4R,EAAMwB,WAAY,SACtF9rB,GACH1B,EAAK8W,YAAa0W,WAAY,OAAQ1V,WAAYiU,GAAYhU,UAC9D1V,EAAQ,EAAGrC,EAAK+W,OAAOnB,IACvBpT,EAAW,qBAAsBnC,UAClC2rB,GArFkB,GA4FzB,SAASyB,KACL,OAAO,IAAIC,GAAM1tB,EAAKisB,OAAOrW,IAYjC,IAAI8X,GAAuB,WACvB,SAASA,EAAM1X,GACX/V,KAAK+V,KAAOA,EAiBhB,OAZA0X,EAAM5sB,UAAU8Q,SAAW,WAAc,OAAOnO,IAASmO,SAAS3R,KAAK+V,OAKvE0X,EAAM5sB,UAAUgR,SAAW,SAAUC,GAAYtO,IAASqO,SAAS7R,KAAK+V,KAAMjE,IAC9E2b,EAAMJ,gBAAkBttB,EAAKutB,kBAAmBjuB,QAASmuB,GAAarT,MAAOsT,EAAOF,WAAY,SACxF9rB,GACJ1B,EAAK8W,YAAa0W,WAAY,OAAQ1V,WAAY2V,GAAa1V,UAC/D1V,EAAQ,EAAGrC,EAAK+W,OAAOnB,IACvBpT,EAAW,qBAAsBnC,UAClCqtB,GAlBmB,GA6BtBC,GAAwB,oBAAXhkB,QAA0BA,WASvCikB,GACA,SAASA,GAA0BC,EAAWC,GAC1C7tB,KAAK4tB,UAAYA,EACjB5tB,KAAK6tB,SAAWA,GAQpBC,GAAiC,WACjC,SAASA,EAAgB9gB,GACrBhN,KAAK+tB,OAAS/gB,EAAIoK,SAAStT,IAAI/D,EAAKwZ,gBA0CxC,OAvBAuU,EAAgBjtB,UAAUmtB,oBAAsB,SAAUC,GACtD,IAAIC,EAASD,GAAUA,EAAe,OAGlCE,EAA6C,MAAvBT,GAAI/jB,QAAQykB,QAClCF,GAAUC,GACVT,GAAI/jB,QAAQykB,QAJE,oBAQlB,IAFA,IAAIC,EAAQ7qB,IAASwR,iBACjB6Y,EAAW,EACRA,EAAW,GAAMrqB,IAASwR,iBAAmBqZ,EAAS,KACzDruB,KAAK+tB,OAAOO,OACZT,IAEJ,IAAI3O,EAAM1b,IAASwR,iBACfkZ,GAAUC,GACVT,GAAI/jB,QAAQ4kB,WAdE,oBAgBlB,IAAIX,GAAa1O,EAAMmP,GAASR,EAGhC,OAFAH,GAAI/jB,QAAQC,IAAI,OAASikB,EAAW,4BACpCH,GAAI/jB,QAAQC,IAAIgkB,EAAUY,QAAQ,GAAK,iBAChC,IAAIb,GAA0BC,EAAWC,IAE7CC,EA5CyB,GA0IhCW,GAA+B,WAC/B,SAASA,IACLzuB,KAAK0uB,SACL1uB,KAAK2uB,wBAkDT,IAAIC,EAIJ,OApDAA,EAAkBH,EAElBA,EAAcvW,KAAO,SAAU2W,GAC3B,IAAIC,EAAgB,IAAIF,EAExB,OADAE,EAAcJ,MAAQG,EACfC,GAKXL,EAAc5tB,UAAUiD,IAAM,SAAUlC,EAAKmtB,GACzC,YAA2BC,IAApBhvB,KAAK0uB,MAAM9sB,GAAqB5B,KAAK0uB,MAAM9sB,GAAOmtB,GAK7DN,EAAc5tB,UAAUmD,IAAM,SAAUpC,EAAKyB,GAASrD,KAAK0uB,MAAM9sB,GAAOyB,GAIxEorB,EAAc5tB,UAAUgM,OAAS,SAAUjL,UAAc5B,KAAK0uB,MAAM9sB,IAIpE6sB,EAAc5tB,UAAUouB,OAAS,SAAUrtB,GAAO,OAAO5B,KAAK0uB,MAAMjuB,eAAemB,IAInF6sB,EAAc5tB,UAAUquB,YAAc,SAAUttB,EAAKgX,GACjD5Y,KAAK2uB,qBAAqB/sB,GAAOgX,GAKrC6V,EAAc5tB,UAAUsuB,OAAS,WAE7B,IAAK,IAAIvtB,KAAO5B,KAAK2uB,qBACjB,GAAI3uB,KAAK2uB,qBAAqBluB,eAAemB,GACzC,IACI5B,KAAK0uB,MAAM9sB,GAAO5B,KAAK2uB,qBAAqB/sB,KAEhD,MAAOoB,GACH2G,QAAQic,KAAK,sCAAuC5iB,GAIhE,OAAOosB,KAAKC,UAAUrvB,KAAK0uB,QAGfE,EAAkBntB,GAC9B1B,EAAK8W,cACN4X,GAxD2B;;;;;;;OA2DlC,SAASa,GAAkBphB,EAAKud,GAG5B,IAAI8D,EAASrhB,EAAIshB,eAAe/D,EAAQ,UACpCgE,KACJ,GAAIF,GAAUA,EAAOjiB,YACjB,IACImiB,EAAeL,KAAKzmB,MA1GhC,SAAS+mB,EAAa5hB,GAClB,IAAI6hB,GACAC,MAAO,IACPC,MAAO,IACPC,MAAO,IACPC,MAAO,IACPC,MAAO,KAEX,OAAOliB,EAAK2P,QAAQ,WAAY,SAAUvc,GAAK,OAAOyuB,EAAczuB,KAkGlCwuB,CAAaH,EAAOjiB,cAElD,MAAOtK,GACH2G,QAAQic,KAAK,mDAAqD6F,EAAOzoB,GAGjF,OAAOyrB,GAAcvW,KAAKuX,GAQ9B,IAAIQ,GAA4C,WAQ5C,OAL6BxuB,GACzB1B,EAAK2rB,UACDH,YAAc5T,QAAS8W,GAAe5W,WAAYyX,GAAmBxX,MAAOnC,EAAU5V,EAAKyrB,aAJnG,SAASyE,OADkC,GAuB3CC,GAAoB,WACpB,SAASA,KAqCT,OA3BAA,EAAGC,IAAM,WAAc,OAAO,SAAUC,GAAgB,OAAO,IAS/DF,EAAGvhB,IAAM,SAAUvE,GACf,OAAO,SAAUgmB,GACb,OAAqC,MAA9BA,EAAaC,eAChB7sB,IAASuO,eAAeqe,EAAaC,cAAejmB,KAYhE8lB,EAAGI,UAAY,SAAUvkB,GACrB,OAAO,SAAUqkB,GAAgB,OAAsD,IAA/CA,EAAaG,eAAenK,QAAQra,KAEzEmkB,EAtCY,GA2DnBM,GAAU,IAAIzwB,EAAK0wB,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+B/BnxB,EAAQoxB,sDAAwD7F,GAChEvrB,EAAQqxB,sDAAwDtG,GAChE/qB,EAAQsxB,sDAAwDjG,GAChErrB,EAAQuxB,sDAAwD1sB,EAChE7E,EAAQwxB,sDAAwDhF,GAChExsB,EAAQyxB,sDAAwDrZ,EAChEpY,EAAQ0xB,sDAAwD9Z,EAChE5X,EAAQ2xB,sDAAwDzD,GAChEluB,EAAQ4xB,sDAAwD5B,GAChEhwB,EAAQ6xB,sDAAwDtX,EAChEva,EAAQ8xB,sDAAwD7V,EAChEjc,EAAQ2rB,cAAgBA,GACxB3rB,EAAQO,gBAAkBA,GAC1BP,EAAQysB,KAAOA,GACfzsB,EAAQmuB,MAAQA,GAChBnuB,EAAQ+xB,kBA7QR,SAASA,KACLjY,EAxBuB,WAwBW;;;;;;;QA6QtC9Z,EAAQgyB,iBAvRR,SAASA,GAAiBtkB,GAEtB,OADAoM,EAfuB,WAeW,IAAI0U,GAAgB9gB,IAC/CA,GAsRX1N,EAAQ2wB,2BAA6BA,GACrC3wB,EAAQmvB,cAAgBA,GACxBnvB,EAAQiyB,aApOR,SAASA,GAAa3vB,GAClB,OAAOA,GAoOXtC,EAAQ4wB,GAAKA,GACb5wB,EAAQqW,SAAWA,EACnBrW,EAAQib,sBAAwBA,EAChCjb,EAAQkb,aAAeA,EACvBlb,EAAQwlB,sBAAwBA,GAChCxlB,EAAQylB,cAAgBA,GACxBzlB,EAAQ0lB,oBAAsBA,GAC9B1lB,EAAQgiB,aAAeA,GACvBhiB,EAAQkxB,QAAUA,GAClBlxB,EAAQkyB,gCAAkClH,GAC1ChrB,EAAQmyB,qCAAuC1H,GAC/CzqB,EAAQoyB,gBAAkBvH,GAC1B7qB,EAAQqyB,mBAAqBjpB,EAC7BpJ,EAAQsyB,yBAA2B9b,EACnCxW,EAAQuyB,eAAiB7a,EACzB1X,EAAQwyB,uBAAyB7Z,EACjC3Y,EAAQyyB,YAvRR,SAASC,GAAWlkB,GAChB,IAAImkB,GACAC,IAAK,MACLC,IAAK,MACLC,IAAM,MACNC,IAAK,MACLC,IAAK,OAET,OAAOxkB,EAAK2P,QAAQ,WAAY,SAAUvc,GAAK,OAAO+wB,EAAY/wB,MAgRtE5B,EAAQizB,yBAA2BnY,EACnC9a,EAAQkzB,YAAc5uB,EACtBtE,EAAQmzB,QAAUjvB,EAClBlE,EAAQozB,mBAAqBjvB,EAC7BnE,EAAQqzB,qBAAuB3U,EAC/B1e,EAAQszB,gBAAkB9V,EAC1Bxd,EAAQuzB,eAAiBlV,EACzBre,EAAQwzB,sBAAwBvV,EAChCje,EAAQyzB,mBAAqBrV,EAC7Bpe,EAAQ0zB,iBAAmBhR,GAC3B1iB,EAAQ2zB,sBAAwBzN,GAChClmB,EAAQ4zB,iBAAmBlM,GAC3B1nB,EAAQ6zB,qBAAuBjX,EAC/B5c,EAAQ8zB,kBAAoB5X,EAC5Blc,EAAQ+zB,kBAAoBnL,GAE5B9nB,OAAO+B,eAAe7C,EAAS,cAAgB+D,OAAO","sourcesContent":["/**\n * @license Angular v7.2.8\n * (c) 2010-2019 Google LLC. https://angular.io/\n * License: MIT\n */\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/common'), require('@angular/core')) :\n typeof define === 'function' && define.amd ? define('@angular/platform-browser', ['exports', '@angular/common', '@angular/core'], factory) :\n (global = global || self, factory((global.ng = global.ng || {}, global.ng.platformBrowser = {}), global.ng.common, global.ng.core));\n}(this, function (exports, common, core) { 'use strict';\n\n /*! *****************************************************************************\r\n Copyright (c) Microsoft Corporation. All rights reserved.\r\n Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\n this file except in compliance with the License. You may obtain a copy of the\r\n License at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\n THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\n KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\n WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\n MERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\n See the Apache Version 2.0 License for specific language governing permissions\r\n and limitations under the License.\r\n ***************************************************************************** */\r\n /* global Reflect, Promise */\r\n\r\n var extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n\r\n function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n }\r\n\r\n var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n };\r\n\r\n function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n }\r\n\r\n function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n }\r\n\r\n function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n }\r\n\r\n function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n }\r\n\r\n function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n }\n\n /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n var _DOM = null;\n function getDOM() {\n return _DOM;\n }\n function setRootDomAdapter(adapter) {\n if (!_DOM) {\n _DOM = adapter;\n }\n }\n /* tslint:disable:requireParameterType */\n /**\n * Provides DOM operations in an environment-agnostic way.\n *\n * @security Tread carefully! Interacting with the DOM directly is dangerous and\n * can introduce XSS risks.\n */\n var DomAdapter = /** @class */ (function () {\n function DomAdapter() {\n this.resourceLoaderType = null;\n }\n Object.defineProperty(DomAdapter.prototype, \"attrToPropMap\", {\n /**\n * Maps attribute names to their corresponding property names for cases\n * where attribute name doesn't match property name.\n */\n get: function () { return this._attrToPropMap; },\n set: function (value) { this._attrToPropMap = value; },\n enumerable: true,\n configurable: true\n });\n return DomAdapter;\n }());\n\n /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n /**\n * Provides DOM operations in any browser environment.\n *\n * @security Tread carefully! Interacting with the DOM directly is dangerous and\n * can introduce XSS risks.\n */\n var GenericBrowserDomAdapter = /** @class */ (function (_super) {\n __extends(GenericBrowserDomAdapter, _super);\n function GenericBrowserDomAdapter() {\n var _this = _super.call(this) || this;\n _this._animationPrefix = null;\n _this._transitionEnd = null;\n try {\n var element_1 = _this.createElement('div', document);\n if (_this.getStyle(element_1, 'animationName') != null) {\n _this._animationPrefix = '';\n }\n else {\n var domPrefixes = ['Webkit', 'Moz', 'O', 'ms'];\n for (var i = 0; i < domPrefixes.length; i++) {\n if (_this.getStyle(element_1, domPrefixes[i] + 'AnimationName') != null) {\n _this._animationPrefix = '-' + domPrefixes[i].toLowerCase() + '-';\n break;\n }\n }\n }\n var transEndEventNames_1 = {\n WebkitTransition: 'webkitTransitionEnd',\n MozTransition: 'transitionend',\n OTransition: 'oTransitionEnd otransitionend',\n transition: 'transitionend'\n };\n Object.keys(transEndEventNames_1).forEach(function (key) {\n if (_this.getStyle(element_1, key) != null) {\n _this._transitionEnd = transEndEventNames_1[key];\n }\n });\n }\n catch (_a) {\n _this._animationPrefix = null;\n _this._transitionEnd = null;\n }\n return _this;\n }\n GenericBrowserDomAdapter.prototype.getDistributedNodes = function (el) { return el.getDistributedNodes(); };\n GenericBrowserDomAdapter.prototype.resolveAndSetHref = function (el, baseUrl, href) {\n el.href = href == null ? baseUrl : baseUrl + '/../' + href;\n };\n GenericBrowserDomAdapter.prototype.supportsDOMEvents = function () { return true; };\n GenericBrowserDomAdapter.prototype.supportsNativeShadowDOM = function () {\n return typeof document.body.createShadowRoot === 'function';\n };\n GenericBrowserDomAdapter.prototype.getAnimationPrefix = function () { return this._animationPrefix ? this._animationPrefix : ''; };\n GenericBrowserDomAdapter.prototype.getTransitionEnd = function () { return this._transitionEnd ? this._transitionEnd : ''; };\n GenericBrowserDomAdapter.prototype.supportsAnimation = function () {\n return this._animationPrefix != null && this._transitionEnd != null;\n };\n return GenericBrowserDomAdapter;\n }(DomAdapter));\n\n /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n var _attrToPropMap = {\n 'class': 'className',\n 'innerHtml': 'innerHTML',\n 'readonly': 'readOnly',\n 'tabindex': 'tabIndex',\n };\n var DOM_KEY_LOCATION_NUMPAD = 3;\n // Map to convert some key or keyIdentifier values to what will be returned by getEventKey\n var _keyMap = {\n // The following values are here for cross-browser compatibility and to match the W3C standard\n // cf http://www.w3.org/TR/DOM-Level-3-Events-key/\n '\\b': 'Backspace',\n '\\t': 'Tab',\n '\\x7F': 'Delete',\n '\\x1B': 'Escape',\n 'Del': 'Delete',\n 'Esc': 'Escape',\n 'Left': 'ArrowLeft',\n 'Right': 'ArrowRight',\n 'Up': 'ArrowUp',\n 'Down': 'ArrowDown',\n 'Menu': 'ContextMenu',\n 'Scroll': 'ScrollLock',\n 'Win': 'OS'\n };\n // There is a bug in Chrome for numeric keypad keys:\n // https://code.google.com/p/chromium/issues/detail?id=155654\n // 1, 2, 3 ... are reported as A, B, C ...\n var _chromeNumKeyPadMap = {\n 'A': '1',\n 'B': '2',\n 'C': '3',\n 'D': '4',\n 'E': '5',\n 'F': '6',\n 'G': '7',\n 'H': '8',\n 'I': '9',\n 'J': '*',\n 'K': '+',\n 'M': '-',\n 'N': '.',\n 'O': '/',\n '\\x60': '0',\n '\\x90': 'NumLock'\n };\n var nodeContains;\n if (core.ɵglobal['Node']) {\n nodeContains = core.ɵglobal['Node'].prototype.contains || function (node) {\n return !!(this.compareDocumentPosition(node) & 16);\n };\n }\n /**\n * A `DomAdapter` powered by full browser DOM APIs.\n *\n * @security Tread carefully! Interacting with the DOM directly is dangerous and\n * can introduce XSS risks.\n */\n /* tslint:disable:requireParameterType no-console */\n var BrowserDomAdapter = /** @class */ (function (_super) {\n __extends(BrowserDomAdapter, _super);\n function BrowserDomAdapter() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n BrowserDomAdapter.prototype.parse = function (templateHtml) { throw new Error('parse not implemented'); };\n BrowserDomAdapter.makeCurrent = function () { setRootDomAdapter(new BrowserDomAdapter()); };\n BrowserDomAdapter.prototype.hasProperty = function (element, name) { return name in element; };\n BrowserDomAdapter.prototype.setProperty = function (el, name, value) { el[name] = value; };\n BrowserDomAdapter.prototype.getProperty = function (el, name) { return el[name]; };\n BrowserDomAdapter.prototype.invoke = function (el, methodName, args) {\n var _a;\n (_a = el)[methodName].apply(_a, __spread(args));\n };\n // TODO(tbosch): move this into a separate environment class once we have it\n BrowserDomAdapter.prototype.logError = function (error) {\n if (window.console) {\n if (console.error) {\n console.error(error);\n }\n else {\n console.log(error);\n }\n }\n };\n BrowserDomAdapter.prototype.log = function (error) {\n if (window.console) {\n window.console.log && window.console.log(error);\n }\n };\n BrowserDomAdapter.prototype.logGroup = function (error) {\n if (window.console) {\n window.console.group && window.console.group(error);\n }\n };\n BrowserDomAdapter.prototype.logGroupEnd = function () {\n if (window.console) {\n window.console.groupEnd && window.console.groupEnd();\n }\n };\n Object.defineProperty(BrowserDomAdapter.prototype, \"attrToPropMap\", {\n get: function () { return _attrToPropMap; },\n enumerable: true,\n configurable: true\n });\n BrowserDomAdapter.prototype.contains = function (nodeA, nodeB) { return nodeContains.call(nodeA, nodeB); };\n BrowserDomAdapter.prototype.querySelector = function (el, selector) { return el.querySelector(selector); };\n BrowserDomAdapter.prototype.querySelectorAll = function (el, selector) { return el.querySelectorAll(selector); };\n BrowserDomAdapter.prototype.on = function (el, evt, listener) { el.addEventListener(evt, listener, false); };\n BrowserDomAdapter.prototype.onAndCancel = function (el, evt, listener) {\n el.addEventListener(evt, listener, false);\n // Needed to follow Dart's subscription semantic, until fix of\n // https://code.google.com/p/dart/issues/detail?id=17406\n return function () { el.removeEventListener(evt, listener, false); };\n };\n BrowserDomAdapter.prototype.dispatchEvent = function (el, evt) { el.dispatchEvent(evt); };\n BrowserDomAdapter.prototype.createMouseEvent = function (eventType) {\n var evt = this.getDefaultDocument().createEvent('MouseEvent');\n evt.initEvent(eventType, true, true);\n return evt;\n };\n BrowserDomAdapter.prototype.createEvent = function (eventType) {\n var evt = this.getDefaultDocument().createEvent('Event');\n evt.initEvent(eventType, true, true);\n return evt;\n };\n BrowserDomAdapter.prototype.preventDefault = function (evt) {\n evt.preventDefault();\n evt.returnValue = false;\n };\n BrowserDomAdapter.prototype.isPrevented = function (evt) {\n return evt.defaultPrevented || evt.returnValue != null && !evt.returnValue;\n };\n BrowserDomAdapter.prototype.getInnerHTML = function (el) { return el.innerHTML; };\n BrowserDomAdapter.prototype.getTemplateContent = function (el) {\n return 'content' in el && this.isTemplateElement(el) ? el.content : null;\n };\n BrowserDomAdapter.prototype.getOuterHTML = function (el) { return el.outerHTML; };\n BrowserDomAdapter.prototype.nodeName = function (node) { return node.nodeName; };\n BrowserDomAdapter.prototype.nodeValue = function (node) { return node.nodeValue; };\n BrowserDomAdapter.prototype.type = function (node) { return node.type; };\n BrowserDomAdapter.prototype.content = function (node) {\n if (this.hasProperty(node, 'content')) {\n return node.content;\n }\n else {\n return node;\n }\n };\n BrowserDomAdapter.prototype.firstChild = function (el) { return el.firstChild; };\n BrowserDomAdapter.prototype.nextSibling = function (el) { return el.nextSibling; };\n BrowserDomAdapter.prototype.parentElement = function (el) { return el.parentNode; };\n BrowserDomAdapter.prototype.childNodes = function (el) { return el.childNodes; };\n BrowserDomAdapter.prototype.childNodesAsList = function (el) {\n var childNodes = el.childNodes;\n var res = new Array(childNodes.length);\n for (var i = 0; i < childNodes.length; i++) {\n res[i] = childNodes[i];\n }\n return res;\n };\n BrowserDomAdapter.prototype.clearNodes = function (el) {\n while (el.firstChild) {\n el.removeChild(el.firstChild);\n }\n };\n BrowserDomAdapter.prototype.appendChild = function (el, node) { el.appendChild(node); };\n BrowserDomAdapter.prototype.removeChild = function (el, node) { el.removeChild(node); };\n BrowserDomAdapter.prototype.replaceChild = function (el, newChild, oldChild) { el.replaceChild(newChild, oldChild); };\n BrowserDomAdapter.prototype.remove = function (node) {\n if (node.parentNode) {\n node.parentNode.removeChild(node);\n }\n return node;\n };\n BrowserDomAdapter.prototype.insertBefore = function (parent, ref, node) { parent.insertBefore(node, ref); };\n BrowserDomAdapter.prototype.insertAllBefore = function (parent, ref, nodes) {\n nodes.forEach(function (n) { return parent.insertBefore(n, ref); });\n };\n BrowserDomAdapter.prototype.insertAfter = function (parent, ref, node) { parent.insertBefore(node, ref.nextSibling); };\n BrowserDomAdapter.prototype.setInnerHTML = function (el, value) { el.innerHTML = value; };\n BrowserDomAdapter.prototype.getText = function (el) { return el.textContent; };\n BrowserDomAdapter.prototype.setText = function (el, value) { el.textContent = value; };\n BrowserDomAdapter.prototype.getValue = function (el) { return el.value; };\n BrowserDomAdapter.prototype.setValue = function (el, value) { el.value = value; };\n BrowserDomAdapter.prototype.getChecked = function (el) { return el.checked; };\n BrowserDomAdapter.prototype.setChecked = function (el, value) { el.checked = value; };\n BrowserDomAdapter.prototype.createComment = function (text) { return this.getDefaultDocument().createComment(text); };\n BrowserDomAdapter.prototype.createTemplate = function (html) {\n var t = this.getDefaultDocument().createElement('template');\n t.innerHTML = html;\n return t;\n };\n BrowserDomAdapter.prototype.createElement = function (tagName, doc) {\n doc = doc || this.getDefaultDocument();\n return doc.createElement(tagName);\n };\n BrowserDomAdapter.prototype.createElementNS = function (ns, tagName, doc) {\n doc = doc || this.getDefaultDocument();\n return doc.createElementNS(ns, tagName);\n };\n BrowserDomAdapter.prototype.createTextNode = function (text, doc) {\n doc = doc || this.getDefaultDocument();\n return doc.createTextNode(text);\n };\n BrowserDomAdapter.prototype.createScriptTag = function (attrName, attrValue, doc) {\n doc = doc || this.getDefaultDocument();\n var el = doc.createElement('SCRIPT');\n el.setAttribute(attrName, attrValue);\n return el;\n };\n BrowserDomAdapter.prototype.createStyleElement = function (css, doc) {\n doc = doc || this.getDefaultDocument();\n var style = doc.createElement('style');\n this.appendChild(style, this.createTextNode(css, doc));\n return style;\n };\n BrowserDomAdapter.prototype.createShadowRoot = function (el) { return el.createShadowRoot(); };\n BrowserDomAdapter.prototype.getShadowRoot = function (el) { return el.shadowRoot; };\n BrowserDomAdapter.prototype.getHost = function (el) { return el.host; };\n BrowserDomAdapter.prototype.clone = function (node) { return node.cloneNode(true); };\n BrowserDomAdapter.prototype.getElementsByClassName = function (element, name) {\n return element.getElementsByClassName(name);\n };\n BrowserDomAdapter.prototype.getElementsByTagName = function (element, name) {\n return element.getElementsByTagName(name);\n };\n BrowserDomAdapter.prototype.classList = function (element) { return Array.prototype.slice.call(element.classList, 0); };\n BrowserDomAdapter.prototype.addClass = function (element, className) { element.classList.add(className); };\n BrowserDomAdapter.prototype.removeClass = function (element, className) { element.classList.remove(className); };\n BrowserDomAdapter.prototype.hasClass = function (element, className) {\n return element.classList.contains(className);\n };\n BrowserDomAdapter.prototype.setStyle = function (element, styleName, styleValue) {\n element.style[styleName] = styleValue;\n };\n BrowserDomAdapter.prototype.removeStyle = function (element, stylename) {\n // IE requires '' instead of null\n // see https://github.com/angular/angular/issues/7916\n element.style[stylename] = '';\n };\n BrowserDomAdapter.prototype.getStyle = function (element, stylename) { return element.style[stylename]; };\n BrowserDomAdapter.prototype.hasStyle = function (element, styleName, styleValue) {\n var value = this.getStyle(element, styleName) || '';\n return styleValue ? value == styleValue : value.length > 0;\n };\n BrowserDomAdapter.prototype.tagName = function (element) { return element.tagName; };\n BrowserDomAdapter.prototype.attributeMap = function (element) {\n var res = new Map();\n var elAttrs = element.attributes;\n for (var i = 0; i < elAttrs.length; i++) {\n var attrib = elAttrs.item(i);\n res.set(attrib.name, attrib.value);\n }\n return res;\n };\n BrowserDomAdapter.prototype.hasAttribute = function (element, attribute) {\n return element.hasAttribute(attribute);\n };\n BrowserDomAdapter.prototype.hasAttributeNS = function (element, ns, attribute) {\n return element.hasAttributeNS(ns, attribute);\n };\n BrowserDomAdapter.prototype.getAttribute = function (element, attribute) {\n return element.getAttribute(attribute);\n };\n BrowserDomAdapter.prototype.getAttributeNS = function (element, ns, name) {\n return element.getAttributeNS(ns, name);\n };\n BrowserDomAdapter.prototype.setAttribute = function (element, name, value) { element.setAttribute(name, value); };\n BrowserDomAdapter.prototype.setAttributeNS = function (element, ns, name, value) {\n element.setAttributeNS(ns, name, value);\n };\n BrowserDomAdapter.prototype.removeAttribute = function (element, attribute) { element.removeAttribute(attribute); };\n BrowserDomAdapter.prototype.removeAttributeNS = function (element, ns, name) {\n element.removeAttributeNS(ns, name);\n };\n BrowserDomAdapter.prototype.templateAwareRoot = function (el) { return this.isTemplateElement(el) ? this.content(el) : el; };\n BrowserDomAdapter.prototype.createHtmlDocument = function () {\n return document.implementation.createHTMLDocument('fakeTitle');\n };\n BrowserDomAdapter.prototype.getDefaultDocument = function () { return document; };\n BrowserDomAdapter.prototype.getBoundingClientRect = function (el) {\n try {\n return el.getBoundingClientRect();\n }\n catch (_a) {\n return { top: 0, bottom: 0, left: 0, right: 0, width: 0, height: 0 };\n }\n };\n BrowserDomAdapter.prototype.getTitle = function (doc) { return doc.title; };\n BrowserDomAdapter.prototype.setTitle = function (doc, newTitle) { doc.title = newTitle || ''; };\n BrowserDomAdapter.prototype.elementMatches = function (n, selector) {\n if (this.isElementNode(n)) {\n return n.matches && n.matches(selector) ||\n n.msMatchesSelector && n.msMatchesSelector(selector) ||\n n.webkitMatchesSelector && n.webkitMatchesSelector(selector);\n }\n return false;\n };\n BrowserDomAdapter.prototype.isTemplateElement = function (el) {\n return this.isElementNode(el) && el.nodeName === 'TEMPLATE';\n };\n BrowserDomAdapter.prototype.isTextNode = function (node) { return node.nodeType === Node.TEXT_NODE; };\n BrowserDomAdapter.prototype.isCommentNode = function (node) { return node.nodeType === Node.COMMENT_NODE; };\n BrowserDomAdapter.prototype.isElementNode = function (node) { return node.nodeType === Node.ELEMENT_NODE; };\n BrowserDomAdapter.prototype.hasShadowRoot = function (node) {\n return node.shadowRoot != null && node instanceof HTMLElement;\n };\n BrowserDomAdapter.prototype.isShadowRoot = function (node) { return node instanceof DocumentFragment; };\n BrowserDomAdapter.prototype.importIntoDoc = function (node) { return document.importNode(this.templateAwareRoot(node), true); };\n BrowserDomAdapter.prototype.adoptNode = function (node) { return document.adoptNode(node); };\n BrowserDomAdapter.prototype.getHref = function (el) { return el.getAttribute('href'); };\n BrowserDomAdapter.prototype.getEventKey = function (event) {\n var key = event.key;\n if (key == null) {\n key = event.keyIdentifier;\n // keyIdentifier is defined in the old draft of DOM Level 3 Events implemented by Chrome and\n // Safari cf\n // http://www.w3.org/TR/2007/WD-DOM-Level-3-Events-20071221/events.html#Events-KeyboardEvents-Interfaces\n if (key == null) {\n return 'Unidentified';\n }\n if (key.startsWith('U+')) {\n key = String.fromCharCode(parseInt(key.substring(2), 16));\n if (event.location === DOM_KEY_LOCATION_NUMPAD && _chromeNumKeyPadMap.hasOwnProperty(key)) {\n // There is a bug in Chrome for numeric keypad keys:\n // https://code.google.com/p/chromium/issues/detail?id=155654\n // 1, 2, 3 ... are reported as A, B, C ...\n key = _chromeNumKeyPadMap[key];\n }\n }\n }\n return _keyMap[key] || key;\n };\n BrowserDomAdapter.prototype.getGlobalEventTarget = function (doc, target) {\n if (target === 'window') {\n return window;\n }\n if (target === 'document') {\n return doc;\n }\n if (target === 'body') {\n return doc.body;\n }\n return null;\n };\n BrowserDomAdapter.prototype.getHistory = function () { return window.history; };\n BrowserDomAdapter.prototype.getLocation = function () { return window.location; };\n BrowserDomAdapter.prototype.getBaseHref = function (doc) {\n var href = getBaseElementHref();\n return href == null ? null : relativePath(href);\n };\n BrowserDomAdapter.prototype.resetBaseElement = function () { baseElement = null; };\n BrowserDomAdapter.prototype.getUserAgent = function () { return window.navigator.userAgent; };\n BrowserDomAdapter.prototype.setData = function (element, name, value) {\n this.setAttribute(element, 'data-' + name, value);\n };\n BrowserDomAdapter.prototype.getData = function (element, name) {\n return this.getAttribute(element, 'data-' + name);\n };\n BrowserDomAdapter.prototype.getComputedStyle = function (element) { return getComputedStyle(element); };\n // TODO(tbosch): move this into a separate environment class once we have it\n BrowserDomAdapter.prototype.supportsWebAnimation = function () {\n return typeof Element.prototype['animate'] === 'function';\n };\n BrowserDomAdapter.prototype.performanceNow = function () {\n // performance.now() is not available in all browsers, see\n // http://caniuse.com/#search=performance.now\n return window.performance && window.performance.now ? window.performance.now() :\n new Date().getTime();\n };\n BrowserDomAdapter.prototype.supportsCookies = function () { return true; };\n BrowserDomAdapter.prototype.getCookie = function (name) { return common.ɵparseCookieValue(document.cookie, name); };\n BrowserDomAdapter.prototype.setCookie = function (name, value) {\n // document.cookie is magical, assigning into it assigns/overrides one cookie value, but does\n // not clear other cookies.\n document.cookie = encodeURIComponent(name) + '=' + encodeURIComponent(value);\n };\n return BrowserDomAdapter;\n }(GenericBrowserDomAdapter));\n var baseElement = null;\n function getBaseElementHref() {\n if (!baseElement) {\n baseElement = document.querySelector('base');\n if (!baseElement) {\n return null;\n }\n }\n return baseElement.getAttribute('href');\n }\n // based on urlUtils.js in AngularJS 1\n var urlParsingNode;\n function relativePath(url) {\n if (!urlParsingNode) {\n urlParsingNode = document.createElement('a');\n }\n urlParsingNode.setAttribute('href', url);\n return (urlParsingNode.pathname.charAt(0) === '/') ? urlParsingNode.pathname :\n '/' + urlParsingNode.pathname;\n }\n\n /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n /**\n * A DI Token representing the main rendering context. In a browser this is the DOM Document.\n *\n * Note: Document might not be available in the Application Context when Application and Rendering\n * Contexts are not the same (e.g. when running the application into a Web Worker).\n *\n * @deprecated import from `@angular/common` instead.\n * @publicApi\n */\n var DOCUMENT = common.DOCUMENT;\n\n /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n function supportsState() {\n return !!window.history.pushState;\n }\n\n /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n /**\n * `PlatformLocation` encapsulates all of the direct calls to platform APIs.\n * This class should not be used directly by an application developer. Instead, use\n * {@link Location}.\n */\n var BrowserPlatformLocation = /** @class */ (function (_super) {\n __extends(BrowserPlatformLocation, _super);\n function BrowserPlatformLocation(_doc) {\n var _this = _super.call(this) || this;\n _this._doc = _doc;\n _this._init();\n return _this;\n }\n // This is moved to its own method so that `MockPlatformLocationStrategy` can overwrite it\n /** @internal */\n BrowserPlatformLocation.prototype._init = function () {\n this.location = getDOM().getLocation();\n this._history = getDOM().getHistory();\n };\n BrowserPlatformLocation.prototype.getBaseHrefFromDOM = function () { return getDOM().getBaseHref(this._doc); };\n BrowserPlatformLocation.prototype.onPopState = function (fn) {\n getDOM().getGlobalEventTarget(this._doc, 'window').addEventListener('popstate', fn, false);\n };\n BrowserPlatformLocation.prototype.onHashChange = function (fn) {\n getDOM().getGlobalEventTarget(this._doc, 'window').addEventListener('hashchange', fn, false);\n };\n Object.defineProperty(BrowserPlatformLocation.prototype, \"pathname\", {\n get: function () { return this.location.pathname; },\n set: function (newPath) { this.location.pathname = newPath; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BrowserPlatformLocation.prototype, \"search\", {\n get: function () { return this.location.search; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(BrowserPlatformLocation.prototype, \"hash\", {\n get: function () { return this.location.hash; },\n enumerable: true,\n configurable: true\n });\n BrowserPlatformLocation.prototype.pushState = function (state, title, url) {\n if (supportsState()) {\n this._history.pushState(state, title, url);\n }\n else {\n this.location.hash = url;\n }\n };\n BrowserPlatformLocation.prototype.replaceState = function (state, title, url) {\n if (supportsState()) {\n this._history.replaceState(state, title, url);\n }\n else {\n this.location.hash = url;\n }\n };\n BrowserPlatformLocation.prototype.forward = function () { this._history.forward(); };\n BrowserPlatformLocation.prototype.back = function () { this._history.back(); };\n BrowserPlatformLocation = __decorate([\n core.Injectable(),\n __param(0, core.Inject(DOCUMENT)),\n __metadata(\"design:paramtypes\", [Object])\n ], BrowserPlatformLocation);\n return BrowserPlatformLocation;\n }(common.PlatformLocation));\n\n /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n /**\n * An id that identifies a particular application being bootstrapped, that should\n * match across the client/server boundary.\n */\n var TRANSITION_ID = new core.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(core.ApplicationInitStatus).donePromise.then(function () {\n var dom = getDOM();\n var styles = Array.prototype.slice.apply(dom.querySelectorAll(document, \"style[ng-transition]\"));\n styles.filter(function (el) { return dom.getAttribute(el, 'ng-transition') === transitionId; })\n .forEach(function (el) { return dom.remove(el); });\n });\n };\n }\n var SERVER_TRANSITION_PROVIDERS = [\n {\n provide: core.APP_INITIALIZER,\n useFactory: appInitializerFactory,\n deps: [TRANSITION_ID, DOCUMENT, core.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 () { core.setTestabilityGetter(new BrowserGetTestability()); };\n BrowserGetTestability.prototype.addToWindow = function (registry) {\n core.ɵ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 core.ɵglobal['getAllAngularTestabilities'] = function () { return registry.getAllTestabilities(); };\n core.ɵglobal['getAllAngularRootElements'] = function () { return registry.getAllRootElements(); };\n var whenAllStable = function (callback /** TODO #9100 */) {\n var testabilities = core.ɵ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 (!core.ɵglobal['frameworkStabilizers']) {\n core.ɵglobal['frameworkStabilizers'] = [];\n }\n core.ɵglobal['frameworkStabilizers'].push(whenAllStable);\n };\n BrowserGetTestability.prototype.findTestabilityInTree = function (registry, elem, findInAncestors) {\n if (elem == null) {\n return null;\n }\n var t = registry.getTestability(elem);\n if (t != null) {\n return t;\n }\n else if (!findInAncestors) {\n return null;\n }\n if (getDOM().isShadowRoot(elem)) {\n return this.findTestabilityInTree(registry, getDOM().getHost(elem), true);\n }\n return this.findTestabilityInTree(registry, getDOM().parentElement(elem), true);\n };\n return BrowserGetTestability;\n }());\n\n /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n /**\n * Exports the value under a given `name` in the global property `ng`. For example `ng.probe` if\n * `name` is `'probe'`.\n * @param name Name under which it will be exported. Keep in mind this will be a property of the\n * global `ng` object.\n * @param value The value to export.\n */\n function exportNgVar(name, value) {\n if (typeof COMPILED === 'undefined' || !COMPILED) {\n // Note: we can't export `ng` when using closure enhanced optimization as:\n // - closure declares globals itself for minified names, which sometimes clobber our `ng` global\n // - we can't declare a closure extern as the namespace `ng` is already used within Google\n // for typings for angularJS (via `goog.provide('ng....')`).\n var ng = core.ɵglobal['ng'] = core.ɵ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 CORE_TOKENS = {\n 'ApplicationRef': core.ApplicationRef,\n 'NgZone': core.NgZone,\n };\n var INSPECT_GLOBAL_NAME = 'probe';\n var CORE_TOKENS_GLOBAL_NAME = 'coreTokens';\n /**\n * Returns a {@link DebugElement} for the given native DOM element, or\n * null if the given native element does not have an Angular view associated\n * with it.\n */\n function inspectNativeElement(element) {\n return core.getDebugNode(element);\n }\n function _createNgProbe(coreTokens) {\n exportNgVar(INSPECT_GLOBAL_NAME, inspectNativeElement);\n exportNgVar(CORE_TOKENS_GLOBAL_NAME, __assign({}, CORE_TOKENS, _ngProbeTokensToMap(coreTokens || [])));\n return function () { return inspectNativeElement; };\n }\n function _ngProbeTokensToMap(tokens) {\n return tokens.reduce(function (prev, t) { return (prev[t.name] = t.token, prev); }, {});\n }\n /**\n * Providers which support debugging Angular applications (e.g. via `ng.probe`).\n */\n var ELEMENT_PROBE_PROVIDERS = [\n {\n provide: core.APP_INITIALIZER,\n useFactory: _createNgProbe,\n deps: [\n [core.NgProbeToken, new core.Optional()],\n ],\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 /**\n * The injection token for the event-manager plug-in service.\n *\n * @publicApi\n */\n var EVENT_MANAGER_PLUGINS = new core.InjectionToken('EventManagerPlugins');\n /**\n * An injectable service that provides event management for Angular\n * through a browser plug-in.\n *\n * @publicApi\n */\n var EventManager = /** @class */ (function () {\n /**\n * Initializes an instance of the event-manager service.\n */\n function EventManager(plugins, _zone) {\n var _this = this;\n this._zone = _zone;\n this._eventNameToPlugin = new Map();\n plugins.forEach(function (p) { return p.manager = _this; });\n this._plugins = plugins.slice().reverse();\n }\n /**\n * Registers a handler for a specific element and event.\n *\n * @param element The HTML element to receive event notifications.\n * @param eventName The name of the event to listen for.\n * @param handler A function to call when the notification occurs. Receives the\n * event object as an argument.\n * @returns A callback function that can be used to remove the handler.\n */\n EventManager.prototype.addEventListener = function (element, eventName, handler) {\n var plugin = this._findPluginFor(eventName);\n return plugin.addEventListener(element, eventName, handler);\n };\n /**\n * Registers a global handler for an event in a target view.\n *\n * @param target A target for global event notifications. One of \"window\", \"document\", or \"body\".\n * @param eventName The name of the event to listen for.\n * @param handler A function to call when the notification occurs. Receives the\n * event object as an argument.\n * @returns A callback function that can be used to remove the handler.\n */\n EventManager.prototype.addGlobalEventListener = function (target, eventName, handler) {\n var plugin = this._findPluginFor(eventName);\n return plugin.addGlobalEventListener(target, eventName, handler);\n };\n /**\n * Retrieves the compilation zone in which event listeners are registered.\n */\n EventManager.prototype.getZone = function () { return this._zone; };\n /** @internal */\n EventManager.prototype._findPluginFor = function (eventName) {\n var plugin = this._eventNameToPlugin.get(eventName);\n if (plugin) {\n return plugin;\n }\n var plugins = this._plugins;\n for (var i = 0; i < plugins.length; i++) {\n var plugin_1 = plugins[i];\n if (plugin_1.supports(eventName)) {\n this._eventNameToPlugin.set(eventName, plugin_1);\n return plugin_1;\n }\n }\n throw new Error(\"No event manager plugin found for event \" + eventName);\n };\n EventManager = __decorate([\n core.Injectable(),\n __param(0, core.Inject(EVENT_MANAGER_PLUGINS)),\n __metadata(\"design:paramtypes\", [Array, core.NgZone])\n ], EventManager);\n return EventManager;\n }());\n var EventManagerPlugin = /** @class */ (function () {\n function EventManagerPlugin(_doc) {\n this._doc = _doc;\n }\n EventManagerPlugin.prototype.addGlobalEventListener = function (element, eventName, handler) {\n var target = getDOM().getGlobalEventTarget(this._doc, element);\n if (!target) {\n throw new Error(\"Unsupported event target \" + target + \" for event \" + eventName);\n }\n return this.addEventListener(target, eventName, handler);\n };\n return EventManagerPlugin;\n }());\n\n /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n var SharedStylesHost = /** @class */ (function () {\n function SharedStylesHost() {\n /** @internal */\n this._stylesSet = new Set();\n }\n SharedStylesHost.prototype.addStyles = function (styles) {\n var _this = this;\n var additions = new Set();\n styles.forEach(function (style) {\n if (!_this._stylesSet.has(style)) {\n _this._stylesSet.add(style);\n additions.add(style);\n }\n });\n this.onStylesAdded(additions);\n };\n SharedStylesHost.prototype.onStylesAdded = function (additions) { };\n SharedStylesHost.prototype.getAllStyles = function () { return Array.from(this._stylesSet); };\n SharedStylesHost = __decorate([\n core.Injectable()\n ], SharedStylesHost);\n return SharedStylesHost;\n }());\n var DomSharedStylesHost = /** @class */ (function (_super) {\n __extends(DomSharedStylesHost, _super);\n function DomSharedStylesHost(_doc) {\n var _this = _super.call(this) || this;\n _this._doc = _doc;\n _this._hostNodes = new Set();\n _this._styleNodes = new Set();\n _this._hostNodes.add(_doc.head);\n return _this;\n }\n DomSharedStylesHost.prototype._addStylesToHost = function (styles, host) {\n var _this = this;\n styles.forEach(function (style) {\n var styleEl = _this._doc.createElement('style');\n styleEl.textContent = style;\n _this._styleNodes.add(host.appendChild(styleEl));\n });\n };\n DomSharedStylesHost.prototype.addHost = function (hostNode) {\n this._addStylesToHost(this._stylesSet, hostNode);\n this._hostNodes.add(hostNode);\n };\n DomSharedStylesHost.prototype.removeHost = function (hostNode) { this._hostNodes.delete(hostNode); };\n DomSharedStylesHost.prototype.onStylesAdded = function (additions) {\n var _this = this;\n this._hostNodes.forEach(function (hostNode) { return _this._addStylesToHost(additions, hostNode); });\n };\n DomSharedStylesHost.prototype.ngOnDestroy = function () { this._styleNodes.forEach(function (styleNode) { return getDOM().remove(styleNode); }); };\n DomSharedStylesHost = __decorate([\n core.Injectable(),\n __param(0, core.Inject(DOCUMENT)),\n __metadata(\"design:paramtypes\", [Object])\n ], DomSharedStylesHost);\n return DomSharedStylesHost;\n }(SharedStylesHost));\n\n /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n var NAMESPACE_URIS = {\n 'svg': 'http://www.w3.org/2000/svg',\n 'xhtml': 'http://www.w3.org/1999/xhtml',\n 'xlink': 'http://www.w3.org/1999/xlink',\n 'xml': 'http://www.w3.org/XML/1998/namespace',\n 'xmlns': 'http://www.w3.org/2000/xmlns/',\n };\n var COMPONENT_REGEX = /%COMP%/g;\n var COMPONENT_VARIABLE = '%COMP%';\n var HOST_ATTR = \"_nghost-\" + COMPONENT_VARIABLE;\n var CONTENT_ATTR = \"_ngcontent-\" + COMPONENT_VARIABLE;\n function shimContentAttribute(componentShortId) {\n return CONTENT_ATTR.replace(COMPONENT_REGEX, componentShortId);\n }\n function shimHostAttribute(componentShortId) {\n return HOST_ATTR.replace(COMPONENT_REGEX, componentShortId);\n }\n function flattenStyles(compId, styles, target) {\n for (var i = 0; i < styles.length; i++) {\n var style = styles[i];\n if (Array.isArray(style)) {\n flattenStyles(compId, style, target);\n }\n else {\n style = style.replace(COMPONENT_REGEX, compId);\n target.push(style);\n }\n }\n return target;\n }\n function decoratePreventDefault(eventHandler) {\n return function (event) {\n var allowDefaultBehavior = eventHandler(event);\n if (allowDefaultBehavior === false) {\n // TODO(tbosch): move preventDefault into event plugins...\n event.preventDefault();\n event.returnValue = false;\n }\n };\n }\n var DomRendererFactory2 = /** @class */ (function () {\n function DomRendererFactory2(eventManager, sharedStylesHost) {\n this.eventManager = eventManager;\n this.sharedStylesHost = sharedStylesHost;\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 core.ViewEncapsulation.Emulated: {\n var renderer = this.rendererByCompId.get(type.id);\n if (!renderer) {\n renderer =\n new EmulatedEncapsulationDomRenderer2(this.eventManager, this.sharedStylesHost, type);\n this.rendererByCompId.set(type.id, renderer);\n }\n renderer.applyToHost(element);\n return renderer;\n }\n case core.ViewEncapsulation.Native:\n case core.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 core.Injectable(),\n __metadata(\"design:paramtypes\", [EventManager, DomSharedStylesHost])\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 return document.createElementNS(NAMESPACE_URIS[namespace], name);\n }\n return document.createElement(name);\n };\n DefaultDomRenderer2.prototype.createComment = function (value) { return document.createComment(value); };\n DefaultDomRenderer2.prototype.createText = function (value) { return document.createTextNode(value); };\n DefaultDomRenderer2.prototype.appendChild = function (parent, newChild) { parent.appendChild(newChild); };\n DefaultDomRenderer2.prototype.insertBefore = function (parent, newChild, refChild) {\n if (parent) {\n parent.insertBefore(newChild, refChild);\n }\n };\n DefaultDomRenderer2.prototype.removeChild = function (parent, oldChild) {\n if (parent) {\n parent.removeChild(oldChild);\n }\n };\n DefaultDomRenderer2.prototype.selectRootElement = function (selectorOrNode, preserveContent) {\n var el = typeof selectorOrNode === 'string' ? document.querySelector(selectorOrNode) :\n selectorOrNode;\n if (!el) {\n throw new Error(\"The selector \\\"\" + selectorOrNode + \"\\\" did not match any elements\");\n }\n if (!preserveContent) {\n el.textContent = '';\n }\n return el;\n };\n DefaultDomRenderer2.prototype.parentNode = function (node) { return node.parentNode; };\n DefaultDomRenderer2.prototype.nextSibling = function (node) { return node.nextSibling; };\n DefaultDomRenderer2.prototype.setAttribute = function (el, name, value, namespace) {\n if (namespace) {\n name = namespace + \":\" + name;\n 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 var namespaceUri = NAMESPACE_URIS[namespace];\n if (namespaceUri) {\n el.removeAttributeNS(namespaceUri, name);\n }\n else {\n el.removeAttribute(namespace + \":\" + name);\n }\n }\n else {\n el.removeAttribute(name);\n }\n };\n DefaultDomRenderer2.prototype.addClass = function (el, name) { el.classList.add(name); };\n DefaultDomRenderer2.prototype.removeClass = function (el, name) { el.classList.remove(name); };\n DefaultDomRenderer2.prototype.setStyle = function (el, style, value, flags) {\n if (flags & core.RendererStyleFlags2.DashCase) {\n el.style.setProperty(style, value, !!(flags & core.RendererStyleFlags2.Important) ? 'important' : '');\n }\n else {\n el.style[style] = value;\n }\n };\n DefaultDomRenderer2.prototype.removeStyle = function (el, style, flags) {\n if (flags & core.RendererStyleFlags2.DashCase) {\n el.style.removeProperty(style);\n }\n else {\n // IE requires '' instead of null\n // see https://github.com/angular/angular/issues/7916\n el.style[style] = '';\n }\n };\n DefaultDomRenderer2.prototype.setProperty = function (el, name, value) {\n checkNoSyntheticProp(name, 'property');\n el[name] = value;\n };\n DefaultDomRenderer2.prototype.setValue = function (node, value) { node.nodeValue = value; };\n DefaultDomRenderer2.prototype.listen = function (target, event, callback) {\n checkNoSyntheticProp(event, 'listener');\n if (typeof target === 'string') {\n return this.eventManager.addGlobalEventListener(target, event, decoratePreventDefault(callback));\n }\n return this.eventManager.addEventListener(target, event, decoratePreventDefault(callback));\n };\n return DefaultDomRenderer2;\n }());\n var AT_CHARCODE = '@'.charCodeAt(0);\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) {\n var _this = _super.call(this, eventManager) || this;\n _this.component = component;\n var styles = flattenStyles(component.id, component.styles, []);\n sharedStylesHost.addStyles(styles);\n _this.contentAttr = shimContentAttribute(component.id);\n _this.hostAttr = shimHostAttribute(component.id);\n return _this;\n }\n EmulatedEncapsulationDomRenderer2.prototype.applyToHost = function (element) { _super.prototype.setAttribute.call(this, element, this.hostAttr, ''); };\n EmulatedEncapsulationDomRenderer2.prototype.createElement = function (parent, name) {\n var el = _super.prototype.createElement.call(this, parent, name);\n _super.prototype.setAttribute.call(this, el, this.contentAttr, '');\n return el;\n };\n return EmulatedEncapsulationDomRenderer2;\n }(DefaultDomRenderer2));\n var ShadowDomRenderer = /** @class */ (function (_super) {\n __extends(ShadowDomRenderer, _super);\n function ShadowDomRenderer(eventManager, sharedStylesHost, hostEl, component) {\n var _this = _super.call(this, eventManager) || this;\n _this.sharedStylesHost = sharedStylesHost;\n _this.hostEl = hostEl;\n _this.component = component;\n if (component.encapsulation === core.ViewEncapsulation.ShadowDom) {\n _this.shadowRoot = hostEl.attachShadow({ mode: 'open' });\n }\n else {\n _this.shadowRoot = hostEl.createShadowRoot();\n }\n _this.sharedStylesHost.addHost(_this.shadowRoot);\n var styles = flattenStyles(component.id, component.styles, []);\n for (var i = 0; i < styles.length; i++) {\n var styleEl = document.createElement('style');\n styleEl.textContent = styles[i];\n _this.shadowRoot.appendChild(styleEl);\n }\n return _this;\n }\n ShadowDomRenderer.prototype.nodeOrShadowRoot = function (node) { return node === this.hostEl ? this.shadowRoot : node; };\n ShadowDomRenderer.prototype.destroy = function () { this.sharedStylesHost.removeHost(this.shadowRoot); };\n ShadowDomRenderer.prototype.appendChild = function (parent, newChild) {\n return _super.prototype.appendChild.call(this, this.nodeOrShadowRoot(parent), newChild);\n };\n ShadowDomRenderer.prototype.insertBefore = function (parent, newChild, refChild) {\n return _super.prototype.insertBefore.call(this, this.nodeOrShadowRoot(parent), newChild, refChild);\n };\n ShadowDomRenderer.prototype.removeChild = function (parent, oldChild) {\n return _super.prototype.removeChild.call(this, this.nodeOrShadowRoot(parent), oldChild);\n };\n ShadowDomRenderer.prototype.parentNode = function (node) {\n return this.nodeOrShadowRoot(_super.prototype.parentNode.call(this, this.nodeOrShadowRoot(node)));\n };\n return ShadowDomRenderer;\n }(DefaultDomRenderer2));\n\n /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n var ɵ0 = function (v) {\n return '__zone_symbol__' + v;\n };\n /**\n * Detect if Zone is present. If it is then use simple zone aware 'addEventListener'\n * since Angular can do much more\n * efficient bookkeeping than Zone can, because we have additional information. This speeds up\n * addEventListener by 3x.\n */\n var __symbol__ = (typeof Zone !== 'undefined') && Zone['__symbol__'] || ɵ0;\n var ADD_EVENT_LISTENER = __symbol__('addEventListener');\n var REMOVE_EVENT_LISTENER = __symbol__('removeEventListener');\n var symbolNames = {};\n var FALSE = 'FALSE';\n var ANGULAR = 'ANGULAR';\n var NATIVE_ADD_LISTENER = 'addEventListener';\n var NATIVE_REMOVE_LISTENER = 'removeEventListener';\n // use the same symbol string which is used in zone.js\n var stopSymbol = '__zone_symbol__propagationStopped';\n var stopMethodSymbol = '__zone_symbol__stopImmediatePropagation';\n var blackListedEvents = (typeof Zone !== 'undefined') && Zone[__symbol__('BLACK_LISTED_EVENTS')];\n var blackListedMap;\n if (blackListedEvents) {\n blackListedMap = {};\n blackListedEvents.forEach(function (eventName) { blackListedMap[eventName] = eventName; });\n }\n var isBlackListedEvent = function (eventName) {\n if (!blackListedMap) {\n return false;\n }\n return blackListedMap.hasOwnProperty(eventName);\n };\n // a global listener to handle all dom event,\n // so we do not need to create a closure every time\n var globalListener = function (event) {\n var symbolName = symbolNames[event.type];\n if (!symbolName) {\n return;\n }\n var taskDatas = this[symbolName];\n if (!taskDatas) {\n return;\n }\n var args = [event];\n if (taskDatas.length === 1) {\n // if taskDatas only have one element, just invoke it\n var taskData = taskDatas[0];\n if (taskData.zone !== Zone.current) {\n // only use Zone.run when Zone.current not equals to stored zone\n return taskData.zone.run(taskData.handler, this, args);\n }\n else {\n return taskData.handler.apply(this, args);\n }\n }\n else {\n // copy tasks as a snapshot to avoid event handlers remove\n // itself or others\n var copiedTasks = taskDatas.slice();\n for (var i = 0; i < copiedTasks.length; i++) {\n // if other listener call event.stopImmediatePropagation\n // just break\n if (event[stopSymbol] === true) {\n break;\n }\n var taskData = copiedTasks[i];\n if (taskData.zone !== Zone.current) {\n // only use Zone.run when Zone.current not equals to stored zone\n taskData.zone.run(taskData.handler, this, args);\n }\n else {\n taskData.handler.apply(this, args);\n }\n }\n }\n };\n var DomEventsPlugin = /** @class */ (function (_super) {\n __extends(DomEventsPlugin, _super);\n function DomEventsPlugin(doc, ngZone, platformId) {\n var _this = _super.call(this, doc) || this;\n _this.ngZone = ngZone;\n if (!platformId || !common.isPlatformServer(platformId)) {\n _this.patchEvent();\n }\n return _this;\n }\n DomEventsPlugin.prototype.patchEvent = function () {\n if (typeof Event === 'undefined' || !Event || !Event.prototype) {\n return;\n }\n if (Event.prototype[stopMethodSymbol]) {\n // already patched by zone.js\n return;\n }\n var delegate = Event.prototype[stopMethodSymbol] =\n Event.prototype.stopImmediatePropagation;\n Event.prototype.stopImmediatePropagation = function () {\n if (this) {\n this[stopSymbol] = true;\n }\n // should call native delegate in case\n // in some environment part of the application\n // will not use the patched Event\n delegate && delegate.apply(this, arguments);\n };\n };\n // This plugin should come last in the list of plugins, because it accepts all\n // events.\n DomEventsPlugin.prototype.supports = function (eventName) { return true; };\n DomEventsPlugin.prototype.addEventListener = function (element, eventName, handler) {\n var _this = this;\n var zoneJsLoaded = element[ADD_EVENT_LISTENER];\n var callback = handler;\n // if zonejs is loaded and current zone is not ngZone\n // we keep Zone.current on target for later restoration.\n if (zoneJsLoaded && (!core.NgZone.isInAngularZone() || isBlackListedEvent(eventName))) {\n var symbolName = symbolNames[eventName];\n if (!symbolName) {\n symbolName = symbolNames[eventName] = __symbol__(ANGULAR + eventName + FALSE);\n }\n var taskDatas = element[symbolName];\n var globalListenerRegistered = taskDatas && taskDatas.length > 0;\n if (!taskDatas) {\n taskDatas = element[symbolName] = [];\n }\n var zone = isBlackListedEvent(eventName) ? Zone.root : Zone.current;\n if (taskDatas.length === 0) {\n taskDatas.push({ zone: zone, handler: callback });\n }\n else {\n var callbackRegistered = false;\n for (var i = 0; i < taskDatas.length; i++) {\n if (taskDatas[i].handler === callback) {\n callbackRegistered = true;\n break;\n }\n }\n if (!callbackRegistered) {\n taskDatas.push({ zone: zone, handler: callback });\n }\n }\n if (!globalListenerRegistered) {\n element[ADD_EVENT_LISTENER](eventName, globalListener, false);\n }\n }\n else {\n element[NATIVE_ADD_LISTENER](eventName, callback, false);\n }\n return function () { return _this.removeEventListener(element, eventName, callback); };\n };\n DomEventsPlugin.prototype.removeEventListener = function (target, eventName, callback) {\n var underlyingRemove = target[REMOVE_EVENT_LISTENER];\n // zone.js not loaded, use native removeEventListener\n if (!underlyingRemove) {\n return target[NATIVE_REMOVE_LISTENER].apply(target, [eventName, callback, false]);\n }\n var symbolName = symbolNames[eventName];\n var taskDatas = symbolName && target[symbolName];\n if (!taskDatas) {\n // addEventListener not using patched version\n // just call native removeEventListener\n return target[NATIVE_REMOVE_LISTENER].apply(target, [eventName, callback, false]);\n }\n // fix issue 20532, should be able to remove\n // listener which was added inside of ngZone\n var found = false;\n for (var i = 0; i < taskDatas.length; i++) {\n // remove listener from taskDatas if the callback equals\n if (taskDatas[i].handler === callback) {\n found = true;\n taskDatas.splice(i, 1);\n break;\n }\n }\n if (found) {\n if (taskDatas.length === 0) {\n // all listeners are removed, we can remove the globalListener from target\n underlyingRemove.apply(target, [eventName, globalListener, false]);\n }\n }\n else {\n // not found in taskDatas, the callback may be added inside of ngZone\n // use native remove listener to remove the callback\n target[NATIVE_REMOVE_LISTENER].apply(target, [eventName, callback, false]);\n }\n };\n DomEventsPlugin = __decorate([\n core.Injectable(),\n __param(0, core.Inject(DOCUMENT)),\n __param(2, core.Optional()), __param(2, core.Inject(core.PLATFORM_ID)),\n __metadata(\"design:paramtypes\", [Object, core.NgZone, Object])\n ], DomEventsPlugin);\n return DomEventsPlugin;\n }(EventManagerPlugin));\n\n /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n /**\n * Supported HammerJS recognizer event names.\n */\n var EVENT_NAMES = {\n // pan\n 'pan': true,\n 'panstart': true,\n 'panmove': true,\n 'panend': true,\n 'pancancel': true,\n 'panleft': true,\n 'panright': true,\n 'panup': true,\n 'pandown': true,\n // pinch\n 'pinch': true,\n 'pinchstart': true,\n 'pinchmove': true,\n 'pinchend': true,\n 'pinchcancel': true,\n 'pinchin': true,\n 'pinchout': true,\n // press\n 'press': true,\n 'pressup': true,\n // rotate\n 'rotate': true,\n 'rotatestart': true,\n 'rotatemove': true,\n 'rotateend': true,\n 'rotatecancel': true,\n // swipe\n 'swipe': true,\n 'swipeleft': true,\n 'swiperight': true,\n 'swipeup': true,\n 'swipedown': true,\n // tap\n 'tap': true,\n };\n /**\n * DI token for providing [HammerJS](http://hammerjs.github.io/) support to Angular.\n * @see `HammerGestureConfig`\n *\n * @publicApi\n */\n var HAMMER_GESTURE_CONFIG = new core.InjectionToken('HammerGestureConfig');\n /**\n * Injection token used to provide a {@link HammerLoader} to Angular.\n *\n * @publicApi\n */\n var HAMMER_LOADER = new core.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 core.Injectable()\n ], HammerGestureConfig);\n return HammerGestureConfig;\n }());\n var HammerGesturesPlugin = /** @class */ (function (_super) {\n __extends(HammerGesturesPlugin, _super);\n function HammerGesturesPlugin(doc, _config, console, loader) {\n var _this = _super.call(this, doc) || this;\n _this._config = _config;\n _this.console = console;\n _this.loader = loader;\n return _this;\n }\n HammerGesturesPlugin.prototype.supports = function (eventName) {\n if (!EVENT_NAMES.hasOwnProperty(eventName.toLowerCase()) && !this.isCustomEvent(eventName)) {\n return false;\n }\n if (!window.Hammer && !this.loader) {\n this.console.warn(\"The \\\"\" + eventName + \"\\\" event cannot be bound because Hammer.JS is not \" +\n \"loaded and no custom loader has been specified.\");\n return false;\n }\n return true;\n };\n HammerGesturesPlugin.prototype.addEventListener = function (element, eventName, handler) {\n var _this = this;\n var zone = this.manager.getZone();\n eventName = eventName.toLowerCase();\n // If Hammer is not present but a loader is specified, we defer adding the event listener\n // until Hammer is loaded.\n if (!window.Hammer && this.loader) {\n // This `addEventListener` method returns a function to remove the added listener.\n // Until Hammer is loaded, the returned function needs to *cancel* the registration rather\n // than remove anything.\n var cancelRegistration_1 = false;\n var deregister_1 = function () { cancelRegistration_1 = true; };\n this.loader()\n .then(function () {\n // If Hammer isn't actually loaded when the custom loader resolves, give up.\n if (!window.Hammer) {\n _this.console.warn(\"The custom HAMMER_LOADER completed, but Hammer.JS is not present.\");\n deregister_1 = function () { };\n return;\n }\n if (!cancelRegistration_1) {\n // Now that Hammer is loaded and the listener is being loaded for real,\n // the deregistration function changes from canceling registration to removal.\n deregister_1 = _this.addEventListener(element, eventName, handler);\n }\n })\n .catch(function () {\n _this.console.warn(\"The \\\"\" + eventName + \"\\\" event cannot be bound because the custom \" +\n \"Hammer.JS loader failed.\");\n deregister_1 = function () { };\n });\n // Return a function that *executes* `deregister` (and not `deregister` itself) so that we\n // can change the behavior of `deregister` once the listener is added. Using a closure in\n // this way allows us to avoid any additional data structures to track listener removal.\n return function () { deregister_1(); };\n }\n return zone.runOutsideAngular(function () {\n // Creating the manager bind events, must be done outside of angular\n var mc = _this._config.buildHammer(element);\n var callback = function (eventObj) {\n zone.runGuarded(function () { handler(eventObj); });\n };\n mc.on(eventName, callback);\n return function () {\n mc.off(eventName, callback);\n // destroy mc to prevent memory leak\n if (typeof mc.destroy === 'function') {\n mc.destroy();\n }\n };\n });\n };\n HammerGesturesPlugin.prototype.isCustomEvent = function (eventName) { return this._config.events.indexOf(eventName) > -1; };\n HammerGesturesPlugin = __decorate([\n core.Injectable(),\n __param(0, core.Inject(DOCUMENT)),\n __param(1, core.Inject(HAMMER_GESTURE_CONFIG)),\n __param(3, core.Optional()), __param(3, core.Inject(HAMMER_LOADER)),\n __metadata(\"design:paramtypes\", [Object, HammerGestureConfig, core.ɵConsole, Object])\n ], HammerGesturesPlugin);\n return HammerGesturesPlugin;\n }(EventManagerPlugin));\n\n /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n /**\n * Defines supported modifiers for key events.\n */\n var MODIFIER_KEYS = ['alt', 'control', 'meta', 'shift'];\n var ɵ0$1 = function (event) { return event.altKey; }, ɵ1$1 = function (event) { return event.ctrlKey; }, ɵ2$1 = 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$1,\n 'control': ɵ1$1,\n 'meta': ɵ2$1,\n 'shift': ɵ3\n };\n /**\n * @publicApi\n * A browser plug-in that provides support for handling of key events in Angular.\n */\n var KeyEventsPlugin = /** @class */ (function (_super) {\n __extends(KeyEventsPlugin, _super);\n /**\n * Initializes an instance of the browser plug-in.\n * @param doc The document in which key events will be detected.\n */\n function KeyEventsPlugin(doc) {\n return _super.call(this, doc) || this;\n }\n KeyEventsPlugin_1 = KeyEventsPlugin;\n /**\n * Reports whether a named key event is supported.\n * @param eventName The event name to query.\n * @return True if the named key event is supported.\n */\n KeyEventsPlugin.prototype.supports = function (eventName) { return KeyEventsPlugin_1.parseEventName(eventName) != null; };\n /**\n * Registers a handler for a specific element and key event.\n * @param element The HTML element to receive event notifications.\n * @param eventName The name of the key event to listen for.\n * @param handler A function to call when the notification occurs. Receives the\n * event object as an argument.\n * @returns The key event that was registered.\n */\n KeyEventsPlugin.prototype.addEventListener = function (element, eventName, handler) {\n var parsedEvent = KeyEventsPlugin_1.parseEventName(eventName);\n var outsideHandler = KeyEventsPlugin_1.eventCallback(parsedEvent['fullKey'], handler, this.manager.getZone());\n return this.manager.getZone().runOutsideAngular(function () {\n return getDOM().onAndCancel(element, parsedEvent['domEventName'], outsideHandler);\n });\n };\n KeyEventsPlugin.parseEventName = function (eventName) {\n var parts = eventName.toLowerCase().split('.');\n var domEventName = parts.shift();\n if ((parts.length === 0) || !(domEventName === 'keydown' || domEventName === 'keyup')) {\n return null;\n }\n var key = KeyEventsPlugin_1._normalizeKey(parts.pop());\n var fullKey = '';\n MODIFIER_KEYS.forEach(function (modifierName) {\n var index = parts.indexOf(modifierName);\n if (index > -1) {\n parts.splice(index, 1);\n fullKey += modifierName + '.';\n }\n });\n fullKey += key;\n if (parts.length != 0 || key.length === 0) {\n // returning null instead of throwing to let another plugin process the event\n return null;\n }\n var result = {};\n result['domEventName'] = domEventName;\n result['fullKey'] = fullKey;\n return result;\n };\n KeyEventsPlugin.getEventFullKey = function (event) {\n var fullKey = '';\n var key = getDOM().getEventKey(event);\n key = key.toLowerCase();\n if (key === ' ') {\n key = 'space'; // for readability\n }\n else if (key === '.') {\n key = 'dot'; // because '.' is used as a separator in event names\n }\n MODIFIER_KEYS.forEach(function (modifierName) {\n if (modifierName != key) {\n var modifierGetter = MODIFIER_KEY_GETTERS[modifierName];\n if (modifierGetter(event)) {\n fullKey += modifierName + '.';\n }\n }\n });\n fullKey += key;\n return fullKey;\n };\n /**\n * Configures a handler callback for a key event.\n * @param fullKey The event name that combines all simultaneous keystrokes.\n * @param handler The function that responds to the key event.\n * @param zone The zone in which the event occurred.\n * @returns A callback function.\n */\n KeyEventsPlugin.eventCallback = function (fullKey, handler, zone) {\n return function (event /** TODO #9100 */) {\n if (KeyEventsPlugin_1.getEventFullKey(event) === fullKey) {\n zone.runGuarded(function () { return handler(event); });\n }\n };\n };\n /** @internal */\n KeyEventsPlugin._normalizeKey = function (keyName) {\n // TODO: switch to a Map if the mapping grows too much\n switch (keyName) {\n case 'esc':\n return 'escape';\n default:\n return keyName;\n }\n };\n var KeyEventsPlugin_1;\n KeyEventsPlugin = KeyEventsPlugin_1 = __decorate([\n core.Injectable(),\n __param(0, core.Inject(DOCUMENT)),\n __metadata(\"design:paramtypes\", [Object])\n ], KeyEventsPlugin);\n return KeyEventsPlugin;\n }(EventManagerPlugin));\n\n /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n /**\n * DomSanitizer helps preventing Cross Site Scripting Security bugs (XSS) by sanitizing\n * values to be safe to use in the different DOM contexts.\n *\n * For example, when binding a URL in an `<a [href]=\"someValue\">` hyperlink, `someValue` will be\n * sanitized so that an attacker cannot inject e.g. a `javascript:` URL that would execute code on\n * the website.\n *\n * In specific situations, it might be necessary to disable sanitization, for example if the\n * application genuinely needs to produce a `javascript:` style link with a dynamic value in it.\n * Users can bypass security by constructing a value with one of the `bypassSecurityTrust...`\n * methods, and then binding to that value from the template.\n *\n * These situations should be very rare, and extraordinary care must be taken to avoid creating a\n * Cross Site Scripting (XSS) security bug!\n *\n * When using `bypassSecurityTrust...`, make sure to call the method as early as possible and as\n * close as possible to the source of the value, to make it easy to verify no security bug is\n * created by its use.\n *\n * It is not required (and not recommended) to bypass security if the value is safe, e.g. a URL that\n * does not start with a suspicious protocol, or an HTML snippet that does not contain dangerous\n * code. The sanitizer leaves safe values intact.\n *\n * @security Calling any of the `bypassSecurityTrust...` APIs disables Angular's built-in\n * sanitization for the value passed in. Carefully check and audit all values and code paths going\n * into this call. Make sure any user data is appropriately escaped for this security context.\n * For more detail, see the [Security Guide](http://g.co/ng/security).\n *\n * @publicApi\n */\n var DomSanitizer = /** @class */ (function () {\n function DomSanitizer() {\n }\n return DomSanitizer;\n }());\n var DomSanitizerImpl = /** @class */ (function (_super) {\n __extends(DomSanitizerImpl, _super);\n function DomSanitizerImpl(_doc) {\n var _this = _super.call(this) || this;\n _this._doc = _doc;\n return _this;\n }\n DomSanitizerImpl.prototype.sanitize = function (ctx, value) {\n if (value == null)\n return null;\n switch (ctx) {\n case core.SecurityContext.NONE:\n return value;\n case core.SecurityContext.HTML:\n if (value instanceof SafeHtmlImpl)\n return value.changingThisBreaksApplicationSecurity;\n this.checkNotSafeValue(value, 'HTML');\n return core.ɵ_sanitizeHtml(this._doc, String(value));\n case core.SecurityContext.STYLE:\n if (value instanceof SafeStyleImpl)\n return value.changingThisBreaksApplicationSecurity;\n this.checkNotSafeValue(value, 'Style');\n return core.ɵ_sanitizeStyle(value);\n case core.SecurityContext.SCRIPT:\n if (value instanceof SafeScriptImpl)\n return value.changingThisBreaksApplicationSecurity;\n this.checkNotSafeValue(value, 'Script');\n throw new Error('unsafe value used in a script context');\n case core.SecurityContext.URL:\n if (value instanceof SafeResourceUrlImpl || value instanceof SafeUrlImpl) {\n // Allow resource URLs in URL contexts, they are strictly more trusted.\n return value.changingThisBreaksApplicationSecurity;\n }\n this.checkNotSafeValue(value, 'URL');\n return core.ɵ_sanitizeUrl(String(value));\n case core.SecurityContext.RESOURCE_URL:\n if (value instanceof SafeResourceUrlImpl) {\n return value.changingThisBreaksApplicationSecurity;\n }\n this.checkNotSafeValue(value, 'ResourceURL');\n throw new Error('unsafe value used in a resource URL context (see http://g.co/ng/security#xss)');\n default:\n throw new Error(\"Unexpected SecurityContext \" + ctx + \" (see http://g.co/ng/security#xss)\");\n }\n };\n DomSanitizerImpl.prototype.checkNotSafeValue = function (value, expectedType) {\n if (value instanceof SafeValueImpl) {\n throw new Error(\"Required a safe \" + expectedType + \", got a \" + value.getTypeName() + \" \" +\n \"(see http://g.co/ng/security#xss)\");\n }\n };\n DomSanitizerImpl.prototype.bypassSecurityTrustHtml = function (value) { return new SafeHtmlImpl(value); };\n DomSanitizerImpl.prototype.bypassSecurityTrustStyle = function (value) { return new SafeStyleImpl(value); };\n DomSanitizerImpl.prototype.bypassSecurityTrustScript = function (value) { return new SafeScriptImpl(value); };\n DomSanitizerImpl.prototype.bypassSecurityTrustUrl = function (value) { return new SafeUrlImpl(value); };\n DomSanitizerImpl.prototype.bypassSecurityTrustResourceUrl = function (value) {\n return new SafeResourceUrlImpl(value);\n };\n DomSanitizerImpl = __decorate([\n core.Injectable(),\n __param(0, core.Inject(DOCUMENT)),\n __metadata(\"design:paramtypes\", [Object])\n ], DomSanitizerImpl);\n return DomSanitizerImpl;\n }(DomSanitizer));\n var SafeValueImpl = /** @class */ (function () {\n function SafeValueImpl(changingThisBreaksApplicationSecurity) {\n this.changingThisBreaksApplicationSecurity = changingThisBreaksApplicationSecurity;\n // empty\n }\n SafeValueImpl.prototype.toString = function () {\n return \"SafeValue must use [property]=binding: \" + this.changingThisBreaksApplicationSecurity +\n \" (see http://g.co/ng/security#xss)\";\n };\n return SafeValueImpl;\n }());\n var SafeHtmlImpl = /** @class */ (function (_super) {\n __extends(SafeHtmlImpl, _super);\n function SafeHtmlImpl() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n SafeHtmlImpl.prototype.getTypeName = function () { return 'HTML'; };\n return SafeHtmlImpl;\n }(SafeValueImpl));\n var SafeStyleImpl = /** @class */ (function (_super) {\n __extends(SafeStyleImpl, _super);\n function SafeStyleImpl() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n SafeStyleImpl.prototype.getTypeName = function () { return 'Style'; };\n return SafeStyleImpl;\n }(SafeValueImpl));\n var SafeScriptImpl = /** @class */ (function (_super) {\n __extends(SafeScriptImpl, _super);\n function SafeScriptImpl() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n SafeScriptImpl.prototype.getTypeName = function () { return 'Script'; };\n return SafeScriptImpl;\n }(SafeValueImpl));\n var SafeUrlImpl = /** @class */ (function (_super) {\n __extends(SafeUrlImpl, _super);\n function SafeUrlImpl() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n SafeUrlImpl.prototype.getTypeName = function () { return 'URL'; };\n return SafeUrlImpl;\n }(SafeValueImpl));\n var SafeResourceUrlImpl = /** @class */ (function (_super) {\n __extends(SafeResourceUrlImpl, _super);\n function SafeResourceUrlImpl() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n SafeResourceUrlImpl.prototype.getTypeName = function () { return 'ResourceURL'; };\n return SafeResourceUrlImpl;\n }(SafeValueImpl));\n\n /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n var INTERNAL_BROWSER_PLATFORM_PROVIDERS = [\n { provide: core.PLATFORM_ID, useValue: common.ɵPLATFORM_BROWSER_ID },\n { provide: core.PLATFORM_INITIALIZER, useValue: initDomAdapter, multi: true },\n { provide: common.PlatformLocation, useClass: BrowserPlatformLocation, deps: [DOCUMENT] },\n { provide: DOCUMENT, useFactory: _document, deps: [] },\n ];\n /**\n * @security Replacing built-in sanitization providers exposes the application to XSS risks.\n * Attacker-controlled data introduced by an unsanitized provider could expose your\n * application to XSS risks. For more detail, see the [Security Guide](http://g.co/ng/security).\n * @publicApi\n */\n var BROWSER_SANITIZATION_PROVIDERS = [\n { provide: core.Sanitizer, useExisting: DomSanitizer },\n { provide: DomSanitizer, useClass: DomSanitizerImpl, deps: [DOCUMENT] },\n ];\n /**\n * @publicApi\n */\n var platformBrowser = core.createPlatformFactory(core.platformCore, 'browser', INTERNAL_BROWSER_PLATFORM_PROVIDERS);\n function initDomAdapter() {\n BrowserDomAdapter.makeCurrent();\n BrowserGetTestability.init();\n }\n function errorHandler() {\n return new core.ErrorHandler();\n }\n function _document() {\n return document;\n }\n var BROWSER_MODULE_PROVIDERS = [\n BROWSER_SANITIZATION_PROVIDERS,\n { provide: core.ɵAPP_ROOT, useValue: true },\n { provide: core.ErrorHandler, useFactory: errorHandler, deps: [] },\n {\n provide: EVENT_MANAGER_PLUGINS,\n useClass: DomEventsPlugin,\n multi: true,\n deps: [DOCUMENT, core.NgZone, core.PLATFORM_ID]\n },\n { provide: EVENT_MANAGER_PLUGINS, useClass: KeyEventsPlugin, multi: true, deps: [DOCUMENT] },\n {\n provide: EVENT_MANAGER_PLUGINS,\n useClass: HammerGesturesPlugin,\n multi: true,\n deps: [DOCUMENT, HAMMER_GESTURE_CONFIG, core.ɵConsole, [new core.Optional(), HAMMER_LOADER]]\n },\n { provide: HAMMER_GESTURE_CONFIG, useClass: HammerGestureConfig, deps: [] },\n {\n provide: DomRendererFactory2,\n useClass: DomRendererFactory2,\n deps: [EventManager, DomSharedStylesHost]\n },\n { provide: core.RendererFactory2, useExisting: DomRendererFactory2 },\n { provide: SharedStylesHost, useExisting: DomSharedStylesHost },\n { provide: DomSharedStylesHost, useClass: DomSharedStylesHost, deps: [DOCUMENT] },\n { provide: core.Testability, useClass: core.Testability, deps: [core.NgZone] },\n { provide: EventManager, useClass: EventManager, deps: [EVENT_MANAGER_PLUGINS, core.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: core.APP_ID, useValue: params.appId },\n { provide: TRANSITION_ID, useExisting: core.APP_ID },\n SERVER_TRANSITION_PROVIDERS,\n ],\n };\n };\n var BrowserModule_1;\n BrowserModule = BrowserModule_1 = __decorate([\n core.NgModule({ providers: BROWSER_MODULE_PROVIDERS, exports: [common.CommonModule, core.ApplicationModule] }),\n __param(0, core.Optional()), __param(0, core.SkipSelf()), __param(0, core.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(core.inject(DOCUMENT));\n }\n /**\n * A service that can be used to get and add meta tags.\n *\n * @publicApi\n */\n var Meta = /** @class */ (function () {\n function Meta(_doc) {\n this._doc = _doc;\n this._dom = getDOM();\n }\n Meta.prototype.addTag = function (tag, forceCreation) {\n if (forceCreation === void 0) { forceCreation = false; }\n if (!tag)\n return null;\n return this._getOrCreateElement(tag, forceCreation);\n };\n Meta.prototype.addTags = function (tags, forceCreation) {\n var _this = this;\n if (forceCreation === void 0) { forceCreation = false; }\n if (!tags)\n return [];\n return tags.reduce(function (result, tag) {\n if (tag) {\n result.push(_this._getOrCreateElement(tag, forceCreation));\n }\n return result;\n }, []);\n };\n Meta.prototype.getTag = function (attrSelector) {\n if (!attrSelector)\n return null;\n return this._dom.querySelector(this._doc, \"meta[\" + attrSelector + \"]\") || null;\n };\n Meta.prototype.getTags = function (attrSelector) {\n if (!attrSelector)\n return [];\n var list /*NodeList*/ = this._dom.querySelectorAll(this._doc, \"meta[\" + attrSelector + \"]\");\n return list ? [].slice.call(list) : [];\n };\n Meta.prototype.updateTag = function (tag, selector) {\n if (!tag)\n return null;\n selector = selector || this._parseSelector(tag);\n var meta = this.getTag(selector);\n if (meta) {\n return this._setMetaElementAttributes(tag, meta);\n }\n return this._getOrCreateElement(tag, true);\n };\n Meta.prototype.removeTag = function (attrSelector) { this.removeTagElement(this.getTag(attrSelector)); };\n Meta.prototype.removeTagElement = function (meta) {\n if (meta) {\n this._dom.remove(meta);\n }\n };\n Meta.prototype._getOrCreateElement = function (meta, forceCreation) {\n if (forceCreation === void 0) { forceCreation = false; }\n if (!forceCreation) {\n var selector = this._parseSelector(meta);\n var elem = this.getTag(selector);\n // It's allowed to have multiple elements with the same name so it's not enough to\n // just check that element with the same name already present on the page. We also need to\n // check if element has tag attributes\n if (elem && this._containsAttributes(meta, elem))\n return elem;\n }\n var element = this._dom.createElement('meta');\n this._setMetaElementAttributes(meta, element);\n var head = this._dom.getElementsByTagName(this._doc, 'head')[0];\n this._dom.appendChild(head, element);\n return element;\n };\n Meta.prototype._setMetaElementAttributes = function (tag, el) {\n var _this = this;\n Object.keys(tag).forEach(function (prop) { return _this._dom.setAttribute(el, prop, tag[prop]); });\n return el;\n };\n Meta.prototype._parseSelector = function (tag) {\n var attr = tag.name ? 'name' : 'property';\n return attr + \"=\\\"\" + tag[attr] + \"\\\"\";\n };\n Meta.prototype._containsAttributes = function (tag, elem) {\n var _this = this;\n return Object.keys(tag).every(function (key) { return _this._dom.getAttribute(elem, key) === tag[key]; });\n };\n Meta.ngInjectableDef = core.defineInjectable({ factory: createMeta, token: Meta, providedIn: \"root\" });\n Meta = __decorate([\n core.Injectable({ providedIn: 'root', useFactory: createMeta, deps: [] }),\n __param(0, core.Inject(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(core.inject(DOCUMENT));\n }\n /**\n * A service that can be used to get and set the title of a current HTML document.\n *\n * Since an Angular application can't be bootstrapped on the entire HTML document (`<html>` tag)\n * it is not possible to bind to the `text` property of the `HTMLTitleElement` elements\n * (representing the `<title>` tag). Instead, this service can be used to set and get the current\n * title value.\n *\n * @publicApi\n */\n var Title = /** @class */ (function () {\n function Title(_doc) {\n this._doc = _doc;\n }\n /**\n * Get the title of the current HTML document.\n */\n Title.prototype.getTitle = function () { return getDOM().getTitle(this._doc); };\n /**\n * Set the title of the current HTML document.\n * @param newTitle\n */\n Title.prototype.setTitle = function (newTitle) { getDOM().setTitle(this._doc, newTitle); };\n Title.ngInjectableDef = core.defineInjectable({ factory: createTitle, token: Title, providedIn: \"root\" });\n Title = __decorate([\n core.Injectable({ providedIn: 'root', useFactory: createTitle, deps: [] }),\n __param(0, core.Inject(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(core.ApplicationRef);\n }\n // tslint:disable:no-console\n /**\n * Exercises change detection in a loop and then prints the average amount of\n * time in milliseconds how long a single round of change detection takes for\n * the current state of the UI. It runs a minimum of 5 rounds for a minimum\n * of 500 milliseconds.\n *\n * Optionally, a user may pass a `config` parameter containing a map of\n * options. Supported options are:\n *\n * `record` (boolean) - causes the profiler to record a CPU profile while\n * it exercises the change detector. Example:\n *\n * ```\n * ng.profiler.timeChangeDetection({record: true})\n * ```\n */\n AngularProfiler.prototype.timeChangeDetection = function (config) {\n var record = config && config['record'];\n var profileName = 'Change Detection';\n // Profiler is not available in Android browsers, nor in IE 9 without dev tools opened\n var isProfilerAvailable = win.console.profile != null;\n if (record && isProfilerAvailable) {\n win.console.profile(profileName);\n }\n var start = getDOM().performanceNow();\n var numTicks = 0;\n while (numTicks < 5 || (getDOM().performanceNow() - start) < 500) {\n this.appRef.tick();\n numTicks++;\n }\n var end = getDOM().performanceNow();\n if (record && isProfilerAvailable) {\n win.console.profileEnd(profileName);\n }\n var msPerTick = (end - start) / numTicks;\n win.console.log(\"ran \" + numTicks + \" change detection cycles\");\n win.console.log(msPerTick.toFixed(2) + \" ms per check\");\n return new ChangeDetectionPerfRecord(msPerTick, numTicks);\n };\n return AngularProfiler;\n }());\n\n /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n var PROFILER_GLOBAL_NAME = 'profiler';\n /**\n * Enabled Angular debug tools that are accessible via your browser's\n * developer console.\n *\n * Usage:\n *\n * 1. Open developer console (e.g. in Chrome Ctrl + Shift + j)\n * 1. Type `ng.` (usually the console will show auto-complete suggestion)\n * 1. Try the change detection profiler `ng.profiler.timeChangeDetection()`\n * then hit Enter.\n *\n * @publicApi\n */\n function enableDebugTools(ref) {\n exportNgVar(PROFILER_GLOBAL_NAME, new AngularProfiler(ref));\n return ref;\n }\n /**\n * Disables Angular tools.\n *\n * @publicApi\n */\n function disableDebugTools() {\n exportNgVar(PROFILER_GLOBAL_NAME, null);\n }\n\n /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n function escapeHtml(text) {\n var escapedText = {\n '&': '&a;',\n '\"': '&q;',\n '\\'': '&s;',\n '<': '&l;',\n '>': '&g;',\n };\n return text.replace(/[&\"'<>]/g, function (s) { return escapedText[s]; });\n }\n function unescapeHtml(text) {\n var unescapedText = {\n '&a;': '&',\n '&q;': '\"',\n '&s;': '\\'',\n '&l;': '<',\n '&g;': '>',\n };\n return text.replace(/&[^;]+;/g, function (s) { return unescapedText[s]; });\n }\n /**\n * Create a `StateKey<T>` that can be used to store value of type T with `TransferState`.\n *\n * Example:\n *\n * ```\n * const COUNTER_KEY = makeStateKey<number>('counter');\n * let value = 10;\n *\n * transferState.set(COUNTER_KEY, value);\n * ```\n *\n * @publicApi\n */\n function makeStateKey(key) {\n return key;\n }\n /**\n * A key value store that is transferred from the application on the server side to the application\n * on the client side.\n *\n * `TransferState` will be available as an injectable token. To use it import\n * `ServerTransferStateModule` on the server and `BrowserTransferStateModule` on the client.\n *\n * The values in the store are serialized/deserialized using JSON.stringify/JSON.parse. So only\n * boolean, number, string, null and non-class objects will be serialized and deserialzied in a\n * non-lossy manner.\n *\n * @publicApi\n */\n var TransferState = /** @class */ (function () {\n function TransferState() {\n this.store = {};\n this.onSerializeCallbacks = {};\n }\n TransferState_1 = TransferState;\n /** @internal */\n TransferState.init = function (initState) {\n var transferState = new TransferState_1();\n transferState.store = initState;\n return transferState;\n };\n /**\n * Get the value corresponding to a key. Return `defaultValue` if key is not found.\n */\n TransferState.prototype.get = function (key, defaultValue) {\n return this.store[key] !== undefined ? this.store[key] : defaultValue;\n };\n /**\n * Set the value corresponding to a key.\n */\n TransferState.prototype.set = function (key, value) { this.store[key] = value; };\n /**\n * Remove a key from the store.\n */\n TransferState.prototype.remove = function (key) { delete this.store[key]; };\n /**\n * Test whether a key exists in the store.\n */\n TransferState.prototype.hasKey = function (key) { return this.store.hasOwnProperty(key); };\n /**\n * Register a callback to provide the value for a key when `toJson` is called.\n */\n TransferState.prototype.onSerialize = function (key, callback) {\n this.onSerializeCallbacks[key] = callback;\n };\n /**\n * Serialize the current state of the store to JSON.\n */\n TransferState.prototype.toJson = function () {\n // Call the onSerialize callbacks and put those values into the store.\n for (var key in this.onSerializeCallbacks) {\n if (this.onSerializeCallbacks.hasOwnProperty(key)) {\n try {\n this.store[key] = this.onSerializeCallbacks[key]();\n }\n catch (e) {\n console.warn('Exception in onSerialize callback: ', e);\n }\n }\n }\n return JSON.stringify(this.store);\n };\n var TransferState_1;\n TransferState = TransferState_1 = __decorate([\n core.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 core.NgModule({\n providers: [{ provide: TransferState, useFactory: initTransferState, deps: [DOCUMENT, core.APP_ID] }],\n })\n ], BrowserTransferStateModule);\n return BrowserTransferStateModule;\n }());\n\n /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n /**\n * Predicates for use with {@link DebugElement}'s query functions.\n *\n * @publicApi\n */\n var By = /** @class */ (function () {\n function By() {\n }\n /**\n * Match all elements.\n *\n * @usageNotes\n * ### Example\n *\n * {@example platform-browser/dom/debug/ts/by/by.ts region='by_all'}\n */\n By.all = function () { return function (debugElement) { return true; }; };\n /**\n * Match elements by the given CSS selector.\n *\n * @usageNotes\n * ### Example\n *\n * {@example platform-browser/dom/debug/ts/by/by.ts region='by_css'}\n */\n By.css = function (selector) {\n return function (debugElement) {\n return debugElement.nativeElement != null ?\n getDOM().elementMatches(debugElement.nativeElement, selector) :\n false;\n };\n };\n /**\n * Match elements that have the given directive present.\n *\n * @usageNotes\n * ### Example\n *\n * {@example platform-browser/dom/debug/ts/by/by.ts region='by_directive'}\n */\n By.directive = function (type) {\n return function (debugElement) { return debugElement.providerTokens.indexOf(type) !== -1; };\n };\n return By;\n }());\n\n /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n /**\n * @publicApi\n */\n var VERSION = new core.Version('7.2.8');\n\n /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n // This file only reexports content of the `src` folder. Keep it that way.\n\n /**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n /**\n * Generated bundle index. Do not edit.\n */\n\n exports.ɵangular_packages_platform_browser_platform_browser_c = BROWSER_MODULE_PROVIDERS;\n exports.ɵangular_packages_platform_browser_platform_browser_b = _document;\n exports.ɵangular_packages_platform_browser_platform_browser_a = errorHandler;\n exports.ɵangular_packages_platform_browser_platform_browser_k = GenericBrowserDomAdapter;\n exports.ɵangular_packages_platform_browser_platform_browser_d = createMeta;\n exports.ɵangular_packages_platform_browser_platform_browser_i = SERVER_TRANSITION_PROVIDERS;\n exports.ɵangular_packages_platform_browser_platform_browser_h = appInitializerFactory;\n exports.ɵangular_packages_platform_browser_platform_browser_e = createTitle;\n exports.ɵangular_packages_platform_browser_platform_browser_f = initTransferState;\n exports.ɵangular_packages_platform_browser_platform_browser_j = _createNgProbe;\n exports.ɵangular_packages_platform_browser_platform_browser_g = EventManagerPlugin;\n exports.BrowserModule = BrowserModule;\n exports.platformBrowser = platformBrowser;\n exports.Meta = Meta;\n exports.Title = Title;\n exports.disableDebugTools = disableDebugTools;\n exports.enableDebugTools = enableDebugTools;\n exports.BrowserTransferStateModule = BrowserTransferStateModule;\n exports.TransferState = TransferState;\n exports.makeStateKey = makeStateKey;\n exports.By = By;\n exports.DOCUMENT = DOCUMENT;\n exports.EVENT_MANAGER_PLUGINS = EVENT_MANAGER_PLUGINS;\n exports.EventManager = EventManager;\n exports.HAMMER_GESTURE_CONFIG = HAMMER_GESTURE_CONFIG;\n exports.HAMMER_LOADER = HAMMER_LOADER;\n exports.HammerGestureConfig = HammerGestureConfig;\n exports.DomSanitizer = DomSanitizer;\n exports.VERSION = VERSION;\n exports.ɵBROWSER_SANITIZATION_PROVIDERS = BROWSER_SANITIZATION_PROVIDERS;\n exports.ɵINTERNAL_BROWSER_PLATFORM_PROVIDERS = INTERNAL_BROWSER_PLATFORM_PROVIDERS;\n exports.ɵinitDomAdapter = initDomAdapter;\n exports.ɵBrowserDomAdapter = BrowserDomAdapter;\n exports.ɵBrowserPlatformLocation = BrowserPlatformLocation;\n exports.ɵTRANSITION_ID = TRANSITION_ID;\n exports.ɵBrowserGetTestability = BrowserGetTestability;\n exports.ɵescapeHtml = escapeHtml;\n exports.ɵELEMENT_PROBE_PROVIDERS = ELEMENT_PROBE_PROVIDERS;\n exports.ɵDomAdapter = DomAdapter;\n exports.ɵgetDOM = getDOM;\n exports.ɵsetRootDomAdapter = setRootDomAdapter;\n exports.ɵDomRendererFactory2 = DomRendererFactory2;\n exports.ɵNAMESPACE_URIS = NAMESPACE_URIS;\n exports.ɵflattenStyles = flattenStyles;\n exports.ɵshimContentAttribute = shimContentAttribute;\n exports.ɵshimHostAttribute = shimHostAttribute;\n exports.ɵDomEventsPlugin = DomEventsPlugin;\n exports.ɵHammerGesturesPlugin = HammerGesturesPlugin;\n exports.ɵKeyEventsPlugin = KeyEventsPlugin;\n exports.ɵDomSharedStylesHost = DomSharedStylesHost;\n exports.ɵSharedStylesHost = SharedStylesHost;\n exports.ɵDomSanitizerImpl = DomSanitizerImpl;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n}));\n//# sourceMappingURL=platform-browser.umd.js.map\n"]}
\ No newline at end of file

esm2015/src/version.js

@@ -19,5 +19,5 @@
* \@publicApi
* @type {?}
*/
-export const VERSION = new Version('7.2.7');
+export const VERSION = new Version('7.2.8');
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3BsYXRmb3JtLWJyb3dzZXIvc3JjL3ZlcnNpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQWNBLE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSxlQUFlLENBQUM7Ozs7O0FBS3RDLE1BQU0sT0FBTyxPQUFPLEdBQUcsSUFBSSxPQUFPLENBQUMsbUJBQW1CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbi8qKlxuICogQG1vZHVsZVxuICogQGRlc2NyaXB0aW9uXG4gKiBFbnRyeSBwb2ludCBmb3IgYWxsIHB1YmxpYyBBUElzIG9mIHRoZSBjb21tb24gcGFja2FnZS5cbiAqL1xuXG5pbXBvcnQge1ZlcnNpb259IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vKipcbiAqIEBwdWJsaWNBcGlcbiAqL1xuZXhwb3J0IGNvbnN0IFZFUlNJT04gPSBuZXcgVmVyc2lvbignMC4wLjAtUExBQ0VIT0xERVInKTtcbiJdfQ==
\ No newline at end of file

esm5/src/version.js

@@ -14,5 +14,5 @@
/**
* @publicApi
*/
-export var VERSION = new Version('7.2.7');
+export var VERSION = new Version('7.2.8');
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3BsYXRmb3JtLWJyb3dzZXIvc3JjL3ZlcnNpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUg7Ozs7R0FJRztBQUVILE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFdEM7O0dBRUc7QUFDSCxNQUFNLENBQUMsSUFBTSxPQUFPLEdBQUcsSUFBSSxPQUFPLENBQUMsbUJBQW1CLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuLyoqXG4gKiBAbW9kdWxlXG4gKiBAZGVzY3JpcHRpb25cbiAqIEVudHJ5IHBvaW50IGZvciBhbGwgcHVibGljIEFQSXMgb2YgdGhlIGNvbW1vbiBwYWNrYWdlLlxuICovXG5cbmltcG9ydCB7VmVyc2lvbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8qKlxuICogQHB1YmxpY0FwaVxuICovXG5leHBvcnQgY29uc3QgVkVSU0lPTiA9IG5ldyBWZXJzaW9uKCcwLjAuMC1QTEFDRUhPTERFUicpO1xuIl19
\ No newline at end of file

fesm2015/animations.js

@@ -1,5 +1,5 @@
/**
- * @license Angular v7.2.7
+ * @license Angular v7.2.8
* (c) 2010-2019 Google LLC. https://angular.io/
* License: MIT
*/

fesm2015/platform-browser.js

@@ -1,5 +1,5 @@
/**
- * @license Angular v7.2.7
+ * @license Angular v7.2.8
* (c) 2010-2019 Google LLC. https://angular.io/
* License: MIT
*/
@@ -3585,7 +3585,7 @@
* \@publicApi
* @type {?}
*/
-const VERSION = new Version('7.2.7');
+const VERSION = new Version('7.2.8');
/**
* @fileoverview added by tsickle

fesm2015/platform-browser.js.map

@@ -1 +1 @@
-{"version":3,"file":"platform-browser.js","sources":["../src/dom/dom_adapter.ts","../src/browser/generic_browser_adapter.ts","../src/browser/browser_adapter.ts","../src/dom/dom_tokens.ts","../src/browser/location/history.ts","../src/browser/location/browser_platform_location.ts","../src/browser/server-transition.ts","../src/browser/testability.ts","../src/dom/util.ts","../src/dom/debug/ng_probe.ts","../src/dom/events/event_manager.ts","../src/dom/shared_styles_host.ts","../src/dom/dom_renderer.ts","../src/dom/events/dom_events.ts","../src/dom/events/hammer_gestures.ts","../src/dom/events/key_events.ts","../src/security/dom_sanitization_service.ts","../src/browser.ts","../src/browser/meta.ts","../src/browser/title.ts","../src/browser/tools/browser.ts","../src/browser/tools/common_tools.ts","../src/browser/tools/tools.ts","../src/browser/transfer_state.ts","../src/dom/debug/by.ts","../src/version.ts","../platform-browser.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Type} from '@angular/core';\n\nlet _DOM: DomAdapter = null !;\n\nexport function getDOM() {\n return _DOM;\n}\n\nexport function setDOM(adapter: DomAdapter) {\n _DOM = adapter;\n}\n\nexport function setRootDomAdapter(adapter: DomAdapter) {\n if (!_DOM) {\n _DOM = adapter;\n }\n}\n\n/* tslint:disable:requireParameterType */\n/**\n * Provides DOM operations in an environment-agnostic way.\n *\n * @security Tread carefully! Interacting with the DOM directly is dangerous and\n * can introduce XSS risks.\n */\nexport abstract class DomAdapter {\n public resourceLoaderType: Type<any> = null !;\n abstract hasProperty(element: any, name: string): boolean;\n abstract setProperty(el: Element, name: string, value: any): any;\n abstract getProperty(el: Element, name: string): any;\n abstract invoke(el: Element, methodName: string, args: any[]): any;\n\n abstract logError(error: any): any;\n abstract log(error: any): any;\n abstract logGroup(error: any): any;\n abstract logGroupEnd(): any;\n\n /**\n * Maps attribute names to their corresponding property names for cases\n * where attribute name doesn't match property name.\n */\n get attrToPropMap(): {[key: string]: string} { return this._attrToPropMap; }\n set attrToPropMap(value: {[key: string]: string}) { this._attrToPropMap = value; }\n /** @internal */\n // TODO(issue/24571): remove '!'.\n _attrToPropMap !: {[key: string]: string};\n\n abstract contains(nodeA: any, nodeB: any): boolean;\n abstract parse(templateHtml: string): any;\n abstract querySelector(el: any, selector: string): any;\n abstract querySelectorAll(el: any, selector: string): any[];\n abstract on(el: any, evt: any, listener: any): any;\n abstract onAndCancel(el: any, evt: any, listener: any): Function;\n abstract dispatchEvent(el: any, evt: any): any;\n abstract createMouseEvent(eventType: any): any;\n abstract createEvent(eventType: string): any;\n abstract preventDefault(evt: any): any;\n abstract isPrevented(evt: any): boolean;\n abstract getInnerHTML(el: any): string;\n /** Returns content if el is a <template> element, null otherwise. */\n abstract getTemplateContent(el: any): any;\n abstract getOuterHTML(el: any): string;\n abstract nodeName(node: any): string;\n abstract nodeValue(node: any): string|null;\n abstract type(node: any): string;\n abstract content(node: any): any;\n abstract firstChild(el: any): Node|null;\n abstract nextSibling(el: any): Node|null;\n abstract parentElement(el: any): Node|null;\n abstract childNodes(el: any): Node[];\n abstract childNodesAsList(el: any): Node[];\n abstract clearNodes(el: any): any;\n abstract appendChild(el: any, node: any): any;\n abstract removeChild(el: any, node: any): any;\n abstract replaceChild(el: any, newNode: any, oldNode: any): any;\n abstract remove(el: any): Node;\n abstract insertBefore(parent: any, ref: any, node: any): any;\n abstract insertAllBefore(parent: any, ref: any, nodes: any): any;\n abstract insertAfter(parent: any, el: any, node: any): any;\n abstract setInnerHTML(el: any, value: any): any;\n abstract getText(el: any): string|null;\n abstract setText(el: any, value: string): any;\n abstract getValue(el: any): string;\n abstract setValue(el: any, value: string): any;\n abstract getChecked(el: any): boolean;\n abstract setChecked(el: any, value: boolean): any;\n abstract createComment(text: string): any;\n abstract createTemplate(html: any): HTMLElement;\n abstract createElement(tagName: any, doc?: any): HTMLElement;\n abstract createElementNS(ns: string, tagName: string, doc?: any): Element;\n abstract createTextNode(text: string, doc?: any): Text;\n abstract createScriptTag(attrName: string, attrValue: string, doc?: any): HTMLElement;\n abstract createStyleElement(css: string, doc?: any): HTMLStyleElement;\n abstract createShadowRoot(el: any): any;\n abstract getShadowRoot(el: any): any;\n abstract getHost(el: any): any;\n abstract getDistributedNodes(el: any): Node[];\n abstract clone /*<T extends Node>*/ (node: Node /*T*/): Node /*T*/;\n abstract getElementsByClassName(element: any, name: string): HTMLElement[];\n abstract getElementsByTagName(element: any, name: string): HTMLElement[];\n abstract classList(element: any): any[];\n abstract addClass(element: any, className: string): any;\n abstract removeClass(element: any, className: string): any;\n abstract hasClass(element: any, className: string): boolean;\n abstract setStyle(element: any, styleName: string, styleValue: string): any;\n abstract removeStyle(element: any, styleName: string): any;\n abstract getStyle(element: any, styleName: string): string;\n abstract hasStyle(element: any, styleName: string, styleValue?: string): boolean;\n abstract tagName(element: any): string;\n abstract attributeMap(element: any): Map<string, string>;\n abstract hasAttribute(element: any, attribute: string): boolean;\n abstract hasAttributeNS(element: any, ns: string, attribute: string): boolean;\n abstract getAttribute(element: any, attribute: string): string|null;\n abstract getAttributeNS(element: any, ns: string, attribute: string): string|null;\n abstract setAttribute(element: any, name: string, value: string): any;\n abstract setAttributeNS(element: any, ns: string, name: string, value: string): any;\n abstract removeAttribute(element: any, attribute: string): any;\n abstract removeAttributeNS(element: any, ns: string, attribute: string): any;\n abstract templateAwareRoot(el: any): any;\n abstract createHtmlDocument(): HTMLDocument;\n abstract getDefaultDocument(): Document;\n abstract getBoundingClientRect(el: any): any;\n abstract getTitle(doc: Document): string;\n abstract setTitle(doc: Document, newTitle: string): any;\n abstract elementMatches(n: any, selector: string): boolean;\n abstract isTemplateElement(el: any): boolean;\n abstract isTextNode(node: any): boolean;\n abstract isCommentNode(node: any): boolean;\n abstract isElementNode(node: any): boolean;\n abstract hasShadowRoot(node: any): boolean;\n abstract isShadowRoot(node: any): boolean;\n abstract importIntoDoc /*<T extends Node>*/ (node: Node /*T*/): Node /*T*/;\n abstract adoptNode /*<T extends Node>*/ (node: Node /*T*/): Node /*T*/;\n abstract getHref(element: any): string;\n abstract getEventKey(event: any): string;\n abstract resolveAndSetHref(element: any, baseUrl: string, href: string): any;\n abstract supportsDOMEvents(): boolean;\n abstract supportsNativeShadowDOM(): boolean;\n abstract getGlobalEventTarget(doc: Document, target: string): any;\n abstract getHistory(): History;\n abstract getLocation(): Location;\n abstract getBaseHref(doc: Document): string|null;\n abstract resetBaseElement(): void;\n abstract getUserAgent(): string;\n abstract setData(element: any, name: string, value: string): any;\n abstract getComputedStyle(element: any): any;\n abstract getData(element: any, name: string): string|null;\n abstract supportsWebAnimation(): boolean;\n abstract performanceNow(): number;\n abstract getAnimationPrefix(): string;\n abstract getTransitionEnd(): string;\n abstract supportsAnimation(): boolean;\n\n abstract supportsCookies(): boolean;\n abstract getCookie(name: string): string|null;\n abstract setCookie(name: string, value: string): any;\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {DomAdapter} from '../dom/dom_adapter';\n\n\n\n/**\n * Provides DOM operations in any browser environment.\n *\n * @security Tread carefully! Interacting with the DOM directly is dangerous and\n * can introduce XSS risks.\n */\nexport abstract class GenericBrowserDomAdapter extends DomAdapter {\n private _animationPrefix: string|null = null;\n private _transitionEnd: string|null = null;\n constructor() {\n super();\n try {\n const element = this.createElement('div', document);\n if (this.getStyle(element, 'animationName') != null) {\n this._animationPrefix = '';\n } else {\n const domPrefixes = ['Webkit', 'Moz', 'O', 'ms'];\n\n for (let i = 0; i < domPrefixes.length; i++) {\n if (this.getStyle(element, domPrefixes[i] + 'AnimationName') != null) {\n this._animationPrefix = '-' + domPrefixes[i].toLowerCase() + '-';\n break;\n }\n }\n }\n\n const transEndEventNames: {[key: string]: string} = {\n WebkitTransition: 'webkitTransitionEnd',\n MozTransition: 'transitionend',\n OTransition: 'oTransitionEnd otransitionend',\n transition: 'transitionend'\n };\n\n Object.keys(transEndEventNames).forEach((key: string) => {\n if (this.getStyle(element, key) != null) {\n this._transitionEnd = transEndEventNames[key];\n }\n });\n } catch {\n this._animationPrefix = null;\n this._transitionEnd = null;\n }\n }\n\n getDistributedNodes(el: HTMLElement): Node[] { return (<any>el).getDistributedNodes(); }\n resolveAndSetHref(el: HTMLAnchorElement, baseUrl: string, href: string) {\n el.href = href == null ? baseUrl : baseUrl + '/../' + href;\n }\n supportsDOMEvents(): boolean { return true; }\n supportsNativeShadowDOM(): boolean {\n return typeof(<any>document.body).createShadowRoot === 'function';\n }\n getAnimationPrefix(): string { return this._animationPrefix ? this._animationPrefix : ''; }\n getTransitionEnd(): string { return this._transitionEnd ? this._transitionEnd : ''; }\n supportsAnimation(): boolean {\n return this._animationPrefix != null && this._transitionEnd != null;\n }\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {ɵparseCookieValue as parseCookieValue} from '@angular/common';\nimport {ɵglobal as global} from '@angular/core';\n\nimport {setRootDomAdapter} from '../dom/dom_adapter';\n\nimport {GenericBrowserDomAdapter} from './generic_browser_adapter';\n\nconst _attrToPropMap = {\n 'class': 'className',\n 'innerHtml': 'innerHTML',\n 'readonly': 'readOnly',\n 'tabindex': 'tabIndex',\n};\n\nconst DOM_KEY_LOCATION_NUMPAD = 3;\n\n// Map to convert some key or keyIdentifier values to what will be returned by getEventKey\nconst _keyMap: {[k: string]: string} = {\n // The following values are here for cross-browser compatibility and to match the W3C standard\n // cf http://www.w3.org/TR/DOM-Level-3-Events-key/\n '\\b': 'Backspace',\n '\\t': 'Tab',\n '\\x7F': 'Delete',\n '\\x1B': 'Escape',\n 'Del': 'Delete',\n 'Esc': 'Escape',\n 'Left': 'ArrowLeft',\n 'Right': 'ArrowRight',\n 'Up': 'ArrowUp',\n 'Down': 'ArrowDown',\n 'Menu': 'ContextMenu',\n 'Scroll': 'ScrollLock',\n 'Win': 'OS'\n};\n\n// There is a bug in Chrome for numeric keypad keys:\n// https://code.google.com/p/chromium/issues/detail?id=155654\n// 1, 2, 3 ... are reported as A, B, C ...\nconst _chromeNumKeyPadMap = {\n 'A': '1',\n 'B': '2',\n 'C': '3',\n 'D': '4',\n 'E': '5',\n 'F': '6',\n 'G': '7',\n 'H': '8',\n 'I': '9',\n 'J': '*',\n 'K': '+',\n 'M': '-',\n 'N': '.',\n 'O': '/',\n '\\x60': '0',\n '\\x90': 'NumLock'\n};\n\nlet nodeContains: (a: any, b: any) => boolean;\n\nif (global['Node']) {\n nodeContains = global['Node'].prototype.contains || function(node) {\n return !!(this.compareDocumentPosition(node) & 16);\n };\n}\n\n/**\n * A `DomAdapter` powered by full browser DOM APIs.\n *\n * @security Tread carefully! Interacting with the DOM directly is dangerous and\n * can introduce XSS risks.\n */\n/* tslint:disable:requireParameterType no-console */\nexport class BrowserDomAdapter extends GenericBrowserDomAdapter {\n parse(templateHtml: string) { throw new Error('parse not implemented'); }\n static makeCurrent() { setRootDomAdapter(new BrowserDomAdapter()); }\n hasProperty(element: Node, name: string): boolean { return name in element; }\n setProperty(el: Node, name: string, value: any) { (<any>el)[name] = value; }\n getProperty(el: Node, name: string): any { return (<any>el)[name]; }\n invoke(el: Node, methodName: string, args: any[]): any { (<any>el)[methodName](...args); }\n\n // TODO(tbosch): move this into a separate environment class once we have it\n logError(error: string): void {\n if (window.console) {\n if (console.error) {\n console.error(error);\n } else {\n console.log(error);\n }\n }\n }\n\n log(error: string): void {\n if (window.console) {\n window.console.log && window.console.log(error);\n }\n }\n\n logGroup(error: string): void {\n if (window.console) {\n window.console.group && window.console.group(error);\n }\n }\n\n logGroupEnd(): void {\n if (window.console) {\n window.console.groupEnd && window.console.groupEnd();\n }\n }\n\n get attrToPropMap(): any { return _attrToPropMap; }\n\n contains(nodeA: any, nodeB: any): boolean { return nodeContains.call(nodeA, nodeB); }\n querySelector(el: HTMLElement, selector: string): any { return el.querySelector(selector); }\n querySelectorAll(el: any, selector: string): any[] { return el.querySelectorAll(selector); }\n on(el: Node, evt: any, listener: any) { el.addEventListener(evt, listener, false); }\n onAndCancel(el: Node, evt: any, listener: any): Function {\n el.addEventListener(evt, listener, false);\n // Needed to follow Dart's subscription semantic, until fix of\n // https://code.google.com/p/dart/issues/detail?id=17406\n return () => { el.removeEventListener(evt, listener, false); };\n }\n dispatchEvent(el: Node, evt: any) { el.dispatchEvent(evt); }\n createMouseEvent(eventType: string): MouseEvent {\n const evt: MouseEvent = this.getDefaultDocument().createEvent('MouseEvent');\n evt.initEvent(eventType, true, true);\n return evt;\n }\n createEvent(eventType: any): Event {\n const evt: Event = this.getDefaultDocument().createEvent('Event');\n evt.initEvent(eventType, true, true);\n return evt;\n }\n preventDefault(evt: Event) {\n evt.preventDefault();\n evt.returnValue = false;\n }\n isPrevented(evt: Event): boolean {\n return evt.defaultPrevented || evt.returnValue != null && !evt.returnValue;\n }\n getInnerHTML(el: HTMLElement): string { return el.innerHTML; }\n getTemplateContent(el: Node): Node|null {\n return 'content' in el && this.isTemplateElement(el) ? (<any>el).content : null;\n }\n getOuterHTML(el: HTMLElement): string { return el.outerHTML; }\n nodeName(node: Node): string { return node.nodeName; }\n nodeValue(node: Node): string|null { return node.nodeValue; }\n type(node: HTMLInputElement): string { return node.type; }\n content(node: Node): Node {\n if (this.hasProperty(node, 'content')) {\n return (<any>node).content;\n } else {\n return node;\n }\n }\n firstChild(el: Node): Node|null { return el.firstChild; }\n nextSibling(el: Node): Node|null { return el.nextSibling; }\n parentElement(el: Node): Node|null { return el.parentNode; }\n childNodes(el: any): Node[] { return el.childNodes; }\n childNodesAsList(el: Node): any[] {\n const childNodes = el.childNodes;\n const res = new Array(childNodes.length);\n for (let i = 0; i < childNodes.length; i++) {\n res[i] = childNodes[i];\n }\n return res;\n }\n clearNodes(el: Node) {\n while (el.firstChild) {\n el.removeChild(el.firstChild);\n }\n }\n appendChild(el: Node, node: Node) { el.appendChild(node); }\n removeChild(el: Node, node: Node) { el.removeChild(node); }\n replaceChild(el: Node, newChild: Node, oldChild: Node) { el.replaceChild(newChild, oldChild); }\n remove(node: Node): Node {\n if (node.parentNode) {\n node.parentNode.removeChild(node);\n }\n return node;\n }\n insertBefore(parent: Node, ref: Node, node: Node) { parent.insertBefore(node, ref); }\n insertAllBefore(parent: Node, ref: Node, nodes: Node[]) {\n nodes.forEach((n: any) => parent.insertBefore(n, ref));\n }\n insertAfter(parent: Node, ref: Node, node: any) { parent.insertBefore(node, ref.nextSibling); }\n setInnerHTML(el: Element, value: string) { el.innerHTML = value; }\n getText(el: Node): string|null { return el.textContent; }\n setText(el: Node, value: string) { el.textContent = value; }\n getValue(el: any): string { return el.value; }\n setValue(el: any, value: string) { el.value = value; }\n getChecked(el: any): boolean { return el.checked; }\n setChecked(el: any, value: boolean) { el.checked = value; }\n createComment(text: string): Comment { return this.getDefaultDocument().createComment(text); }\n createTemplate(html: any): HTMLElement {\n const t = this.getDefaultDocument().createElement('template');\n t.innerHTML = html;\n return t;\n }\n createElement(tagName: string, doc?: Document): HTMLElement {\n doc = doc || this.getDefaultDocument();\n return doc.createElement(tagName);\n }\n createElementNS(ns: string, tagName: string, doc?: Document): Element {\n doc = doc || this.getDefaultDocument();\n return doc.createElementNS(ns, tagName);\n }\n createTextNode(text: string, doc?: Document): Text {\n doc = doc || this.getDefaultDocument();\n return doc.createTextNode(text);\n }\n createScriptTag(attrName: string, attrValue: string, doc?: Document): HTMLScriptElement {\n doc = doc || this.getDefaultDocument();\n const el = <HTMLScriptElement>doc.createElement('SCRIPT');\n el.setAttribute(attrName, attrValue);\n return el;\n }\n createStyleElement(css: string, doc?: Document): HTMLStyleElement {\n doc = doc || this.getDefaultDocument();\n const style = <HTMLStyleElement>doc.createElement('style');\n this.appendChild(style, this.createTextNode(css, doc));\n return style;\n }\n createShadowRoot(el: HTMLElement): DocumentFragment { return (<any>el).createShadowRoot(); }\n getShadowRoot(el: HTMLElement): DocumentFragment { return (<any>el).shadowRoot; }\n getHost(el: HTMLElement): HTMLElement { return (<any>el).host; }\n clone(node: Node): Node { return node.cloneNode(true); }\n getElementsByClassName(element: any, name: string): HTMLElement[] {\n return element.getElementsByClassName(name);\n }\n getElementsByTagName(element: any, name: string): HTMLElement[] {\n return element.getElementsByTagName(name);\n }\n classList(element: any): any[] { return Array.prototype.slice.call(element.classList, 0); }\n addClass(element: any, className: string) { element.classList.add(className); }\n removeClass(element: any, className: string) { element.classList.remove(className); }\n hasClass(element: any, className: string): boolean {\n return element.classList.contains(className);\n }\n setStyle(element: any, styleName: string, styleValue: string) {\n element.style[styleName] = styleValue;\n }\n removeStyle(element: any, stylename: string) {\n // IE requires '' instead of null\n // see https://github.com/angular/angular/issues/7916\n element.style[stylename] = '';\n }\n getStyle(element: any, stylename: string): string { return element.style[stylename]; }\n hasStyle(element: any, styleName: string, styleValue?: string|null): boolean {\n const value = this.getStyle(element, styleName) || '';\n return styleValue ? value == styleValue : value.length > 0;\n }\n tagName(element: any): string { return element.tagName; }\n attributeMap(element: any): Map<string, string> {\n const res = new Map<string, string>();\n const elAttrs = element.attributes;\n for (let i = 0; i < elAttrs.length; i++) {\n const attrib = elAttrs.item(i);\n res.set(attrib.name, attrib.value);\n }\n return res;\n }\n hasAttribute(element: Element, attribute: string): boolean {\n return element.hasAttribute(attribute);\n }\n hasAttributeNS(element: Element, ns: string, attribute: string): boolean {\n return element.hasAttributeNS(ns, attribute);\n }\n getAttribute(element: Element, attribute: string): string|null {\n return element.getAttribute(attribute);\n }\n getAttributeNS(element: Element, ns: string, name: string): string|null {\n return element.getAttributeNS(ns, name);\n }\n setAttribute(element: Element, name: string, value: string) { element.setAttribute(name, value); }\n setAttributeNS(element: Element, ns: string, name: string, value: string) {\n element.setAttributeNS(ns, name, value);\n }\n removeAttribute(element: Element, attribute: string) { element.removeAttribute(attribute); }\n removeAttributeNS(element: Element, ns: string, name: string) {\n element.removeAttributeNS(ns, name);\n }\n templateAwareRoot(el: Node): any { return this.isTemplateElement(el) ? this.content(el) : el; }\n createHtmlDocument(): HTMLDocument {\n return document.implementation.createHTMLDocument('fakeTitle');\n }\n getDefaultDocument(): Document { return document; }\n getBoundingClientRect(el: Element): any {\n try {\n return el.getBoundingClientRect();\n } catch {\n return {top: 0, bottom: 0, left: 0, right: 0, width: 0, height: 0};\n }\n }\n getTitle(doc: Document): string { return doc.title; }\n setTitle(doc: Document, newTitle: string) { doc.title = newTitle || ''; }\n elementMatches(n: any, selector: string): boolean {\n if (this.isElementNode(n)) {\n return n.matches && n.matches(selector) ||\n n.msMatchesSelector && n.msMatchesSelector(selector) ||\n n.webkitMatchesSelector && n.webkitMatchesSelector(selector);\n }\n\n return false;\n }\n isTemplateElement(el: Node): boolean {\n return this.isElementNode(el) && el.nodeName === 'TEMPLATE';\n }\n isTextNode(node: Node): boolean { return node.nodeType === Node.TEXT_NODE; }\n isCommentNode(node: Node): boolean { return node.nodeType === Node.COMMENT_NODE; }\n isElementNode(node: Node): boolean { return node.nodeType === Node.ELEMENT_NODE; }\n hasShadowRoot(node: any): boolean {\n return node.shadowRoot != null && node instanceof HTMLElement;\n }\n isShadowRoot(node: any): boolean { return node instanceof DocumentFragment; }\n importIntoDoc(node: Node): any { return document.importNode(this.templateAwareRoot(node), true); }\n adoptNode(node: Node): any { return document.adoptNode(node); }\n getHref(el: Element): string { return el.getAttribute('href') !; }\n\n getEventKey(event: any): string {\n let key = event.key;\n if (key == null) {\n key = event.keyIdentifier;\n // keyIdentifier is defined in the old draft of DOM Level 3 Events implemented by Chrome and\n // Safari cf\n // http://www.w3.org/TR/2007/WD-DOM-Level-3-Events-20071221/events.html#Events-KeyboardEvents-Interfaces\n if (key == null) {\n return 'Unidentified';\n }\n if (key.startsWith('U+')) {\n key = String.fromCharCode(parseInt(key.substring(2), 16));\n if (event.location === DOM_KEY_LOCATION_NUMPAD && _chromeNumKeyPadMap.hasOwnProperty(key)) {\n // There is a bug in Chrome for numeric keypad keys:\n // https://code.google.com/p/chromium/issues/detail?id=155654\n // 1, 2, 3 ... are reported as A, B, C ...\n key = (_chromeNumKeyPadMap as any)[key];\n }\n }\n }\n\n return _keyMap[key] || key;\n }\n getGlobalEventTarget(doc: Document, target: string): EventTarget|null {\n if (target === 'window') {\n return window;\n }\n if (target === 'document') {\n return doc;\n }\n if (target === 'body') {\n return doc.body;\n }\n return null;\n }\n getHistory(): History { return window.history; }\n getLocation(): Location { return window.location; }\n getBaseHref(doc: Document): string|null {\n const href = getBaseElementHref();\n return href == null ? null : relativePath(href);\n }\n resetBaseElement(): void { baseElement = null; }\n getUserAgent(): string { return window.navigator.userAgent; }\n setData(element: Element, name: string, value: string) {\n this.setAttribute(element, 'data-' + name, value);\n }\n getData(element: Element, name: string): string|null {\n return this.getAttribute(element, 'data-' + name);\n }\n getComputedStyle(element: any): any { return getComputedStyle(element); }\n // TODO(tbosch): move this into a separate environment class once we have it\n supportsWebAnimation(): boolean {\n return typeof(<any>Element).prototype['animate'] === 'function';\n }\n performanceNow(): number {\n // performance.now() is not available in all browsers, see\n // http://caniuse.com/#search=performance.now\n return window.performance && window.performance.now ? window.performance.now() :\n new Date().getTime();\n }\n\n supportsCookies(): boolean { return true; }\n\n getCookie(name: string): string|null { return parseCookieValue(document.cookie, name); }\n\n setCookie(name: string, value: string) {\n // document.cookie is magical, assigning into it assigns/overrides one cookie value, but does\n // not clear other cookies.\n document.cookie = encodeURIComponent(name) + '=' + encodeURIComponent(value);\n }\n}\n\nlet baseElement: HTMLElement|null = null;\nfunction getBaseElementHref(): string|null {\n if (!baseElement) {\n baseElement = document.querySelector('base') !;\n if (!baseElement) {\n return null;\n }\n }\n return baseElement.getAttribute('href');\n}\n\n// based on urlUtils.js in AngularJS 1\nlet urlParsingNode: any;\nfunction relativePath(url: any): string {\n if (!urlParsingNode) {\n urlParsingNode = document.createElement('a');\n }\n urlParsingNode.setAttribute('href', url);\n return (urlParsingNode.pathname.charAt(0) === '/') ? urlParsingNode.pathname :\n '/' + urlParsingNode.pathname;\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {DOCUMENT as commonDOCUMENT} from '@angular/common';\nimport {InjectionToken} from '@angular/core';\n\n\n/**\n * A DI Token representing the main rendering context. In a browser this is the DOM Document.\n *\n * Note: Document might not be available in the Application Context when Application and Rendering\n * Contexts are not the same (e.g. when running the application into a Web Worker).\n *\n * @deprecated import from `@angular/common` instead.\n * @publicApi\n */\nexport const DOCUMENT = commonDOCUMENT;\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nexport function supportsState(): boolean {\n return !!window.history.pushState;\n}","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {LocationChangeListener, PlatformLocation} from '@angular/common';\nimport {Inject, Injectable} from '@angular/core';\n\nimport {getDOM} from '../../dom/dom_adapter';\nimport {DOCUMENT} from '../../dom/dom_tokens';\n\nimport {supportsState} from './history';\n\n\n\n/**\n * `PlatformLocation` encapsulates all of the direct calls to platform APIs.\n * This class should not be used directly by an application developer. Instead, use\n * {@link Location}.\n */\n@Injectable()\nexport class BrowserPlatformLocation extends PlatformLocation {\n // TODO(issue/24571): remove '!'.\n public readonly location !: Location;\n // TODO(issue/24571): remove '!'.\n private _history !: History;\n\n constructor(@Inject(DOCUMENT) private _doc: any) {\n super();\n this._init();\n }\n\n // This is moved to its own method so that `MockPlatformLocationStrategy` can overwrite it\n /** @internal */\n _init() {\n (this as{location: Location}).location = getDOM().getLocation();\n this._history = getDOM().getHistory();\n }\n\n getBaseHrefFromDOM(): string { return getDOM().getBaseHref(this._doc) !; }\n\n onPopState(fn: LocationChangeListener): void {\n getDOM().getGlobalEventTarget(this._doc, 'window').addEventListener('popstate', fn, false);\n }\n\n onHashChange(fn: LocationChangeListener): void {\n getDOM().getGlobalEventTarget(this._doc, 'window').addEventListener('hashchange', fn, false);\n }\n\n get pathname(): string { return this.location.pathname; }\n get search(): string { return this.location.search; }\n get hash(): string { return this.location.hash; }\n set pathname(newPath: string) { this.location.pathname = newPath; }\n\n pushState(state: any, title: string, url: string): void {\n if (supportsState()) {\n this._history.pushState(state, title, url);\n } else {\n this.location.hash = url;\n }\n }\n\n replaceState(state: any, title: string, url: string): void {\n if (supportsState()) {\n this._history.replaceState(state, title, url);\n } else {\n this.location.hash = url;\n }\n }\n\n forward(): void { this._history.forward(); }\n\n back(): void { this._history.back(); }\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {APP_INITIALIZER, ApplicationInitStatus, Inject, InjectionToken, Injector, StaticProvider} from '@angular/core';\n\nimport {getDOM} from '../dom/dom_adapter';\nimport {DOCUMENT} from '../dom/dom_tokens';\n\n/**\n * An id that identifies a particular application being bootstrapped, that should\n * match across the client/server boundary.\n */\nexport const TRANSITION_ID = new InjectionToken('TRANSITION_ID');\n\nexport function appInitializerFactory(transitionId: string, document: any, injector: Injector) {\n return () => {\n // Wait for all application initializers to be completed before removing the styles set by\n // the server.\n injector.get(ApplicationInitStatus).donePromise.then(() => {\n const dom = getDOM();\n const styles: any[] =\n Array.prototype.slice.apply(dom.querySelectorAll(document, `style[ng-transition]`));\n styles.filter(el => dom.getAttribute(el, 'ng-transition') === transitionId)\n .forEach(el => dom.remove(el));\n });\n };\n}\n\nexport const SERVER_TRANSITION_PROVIDERS: StaticProvider[] = [\n {\n provide: APP_INITIALIZER,\n useFactory: appInitializerFactory,\n deps: [TRANSITION_ID, DOCUMENT, Injector],\n multi: true\n },\n];\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {GetTestability, Testability, TestabilityRegistry, setTestabilityGetter, ɵglobal as global} from '@angular/core';\n\nimport {getDOM} from '../dom/dom_adapter';\n\nexport class BrowserGetTestability implements GetTestability {\n static init() { setTestabilityGetter(new BrowserGetTestability()); }\n\n addToWindow(registry: TestabilityRegistry): void {\n global['getAngularTestability'] = (elem: any, findInAncestors: boolean = true) => {\n const testability = registry.findTestabilityInTree(elem, findInAncestors);\n if (testability == null) {\n throw new Error('Could not find testability for element.');\n }\n return testability;\n };\n\n global['getAllAngularTestabilities'] = () => registry.getAllTestabilities();\n\n global['getAllAngularRootElements'] = () => registry.getAllRootElements();\n\n const whenAllStable = (callback: any /** TODO #9100 */) => {\n const testabilities = global['getAllAngularTestabilities']();\n let count = testabilities.length;\n let didWork = false;\n const decrement = function(didWork_: any /** TODO #9100 */) {\n didWork = didWork || didWork_;\n count--;\n if (count == 0) {\n callback(didWork);\n }\n };\n testabilities.forEach(function(testability: any /** TODO #9100 */) {\n testability.whenStable(decrement);\n });\n };\n\n if (!global['frameworkStabilizers']) {\n global['frameworkStabilizers'] = [];\n }\n global['frameworkStabilizers'].push(whenAllStable);\n }\n\n findTestabilityInTree(registry: TestabilityRegistry, elem: any, findInAncestors: boolean):\n Testability|null {\n if (elem == null) {\n return null;\n }\n const t = registry.getTestability(elem);\n if (t != null) {\n return t;\n } else if (!findInAncestors) {\n return null;\n }\n if (getDOM().isShadowRoot(elem)) {\n return this.findTestabilityInTree(registry, getDOM().getHost(elem), true);\n }\n return this.findTestabilityInTree(registry, getDOM().parentElement(elem), true);\n }\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {ɵglobal as global} from '@angular/core';\n\nconst CAMEL_CASE_REGEXP = /([A-Z])/g;\nconst DASH_CASE_REGEXP = /-([a-z])/g;\n\n\nexport function camelCaseToDashCase(input: string): string {\n return input.replace(CAMEL_CASE_REGEXP, (...m: string[]) => '-' + m[1].toLowerCase());\n}\n\nexport function dashCaseToCamelCase(input: string): string {\n return input.replace(DASH_CASE_REGEXP, (...m: string[]) => m[1].toUpperCase());\n}\n\n/**\n * Exports the value under a given `name` in the global property `ng`. For example `ng.probe` if\n * `name` is `'probe'`.\n * @param name Name under which it will be exported. Keep in mind this will be a property of the\n * global `ng` object.\n * @param value The value to export.\n */\nexport function exportNgVar(name: string, value: any): void {\n if (typeof COMPILED === 'undefined' || !COMPILED) {\n // Note: we can't export `ng` when using closure enhanced optimization as:\n // - closure declares globals itself for minified names, which sometimes clobber our `ng` global\n // - we can't declare a closure extern as the namespace `ng` is already used within Google\n // for typings for angularJS (via `goog.provide('ng....')`).\n const ng = global['ng'] = (global['ng'] as{[key: string]: any} | undefined) || {};\n ng[name] = value;\n }\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport * as core from '@angular/core';\nimport {exportNgVar} from '../util';\n\nconst CORE_TOKENS = {\n 'ApplicationRef': core.ApplicationRef,\n 'NgZone': core.NgZone,\n};\n\nconst INSPECT_GLOBAL_NAME = 'probe';\nconst CORE_TOKENS_GLOBAL_NAME = 'coreTokens';\n\n/**\n * Returns a {@link DebugElement} for the given native DOM element, or\n * null if the given native element does not have an Angular view associated\n * with it.\n */\nexport function inspectNativeElement(element: any): core.DebugNode|null {\n return core.getDebugNode(element);\n}\n\nexport function _createNgProbe(coreTokens: core.NgProbeToken[]): any {\n exportNgVar(INSPECT_GLOBAL_NAME, inspectNativeElement);\n exportNgVar(CORE_TOKENS_GLOBAL_NAME, {...CORE_TOKENS, ..._ngProbeTokensToMap(coreTokens || [])});\n return () => inspectNativeElement;\n}\n\nfunction _ngProbeTokensToMap(tokens: core.NgProbeToken[]): {[name: string]: any} {\n return tokens.reduce((prev: any, t: any) => (prev[t.name] = t.token, prev), {});\n}\n\n/**\n * Providers which support debugging Angular applications (e.g. via `ng.probe`).\n */\nexport const ELEMENT_PROBE_PROVIDERS: core.Provider[] = [\n {\n provide: core.APP_INITIALIZER,\n useFactory: _createNgProbe,\n deps: [\n [core.NgProbeToken, new core.Optional()],\n ],\n multi: true,\n },\n];\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Inject, Injectable, InjectionToken, NgZone} from '@angular/core';\n\nimport {getDOM} from '../dom_adapter';\n\n/**\n * The injection token for the event-manager plug-in service.\n *\n * @publicApi\n */\nexport const EVENT_MANAGER_PLUGINS =\n new InjectionToken<EventManagerPlugin[]>('EventManagerPlugins');\n\n/**\n * An injectable service that provides event management for Angular\n * through a browser plug-in.\n *\n * @publicApi\n */\n@Injectable()\nexport class EventManager {\n private _plugins: EventManagerPlugin[];\n private _eventNameToPlugin = new Map<string, EventManagerPlugin>();\n\n /**\n * Initializes an instance of the event-manager service.\n */\n constructor(@Inject(EVENT_MANAGER_PLUGINS) plugins: EventManagerPlugin[], private _zone: NgZone) {\n plugins.forEach(p => p.manager = this);\n this._plugins = plugins.slice().reverse();\n }\n\n /**\n * Registers a handler for a specific element and event.\n *\n * @param element The HTML element to receive event notifications.\n * @param eventName The name of the event to listen for.\n * @param handler A function to call when the notification occurs. Receives the\n * event object as an argument.\n * @returns A callback function that can be used to remove the handler.\n */\n addEventListener(element: HTMLElement, eventName: string, handler: Function): Function {\n const plugin = this._findPluginFor(eventName);\n return plugin.addEventListener(element, eventName, handler);\n }\n\n /**\n * Registers a global handler for an event in a target view.\n *\n * @param target A target for global event notifications. One of \"window\", \"document\", or \"body\".\n * @param eventName The name of the event to listen for.\n * @param handler A function to call when the notification occurs. Receives the\n * event object as an argument.\n * @returns A callback function that can be used to remove the handler.\n */\n addGlobalEventListener(target: string, eventName: string, handler: Function): Function {\n const plugin = this._findPluginFor(eventName);\n return plugin.addGlobalEventListener(target, eventName, handler);\n }\n\n /**\n * Retrieves the compilation zone in which event listeners are registered.\n */\n getZone(): NgZone { return this._zone; }\n\n /** @internal */\n _findPluginFor(eventName: string): EventManagerPlugin {\n const plugin = this._eventNameToPlugin.get(eventName);\n if (plugin) {\n return plugin;\n }\n\n const plugins = this._plugins;\n for (let i = 0; i < plugins.length; i++) {\n const plugin = plugins[i];\n if (plugin.supports(eventName)) {\n this._eventNameToPlugin.set(eventName, plugin);\n return plugin;\n }\n }\n throw new Error(`No event manager plugin found for event ${eventName}`);\n }\n}\n\nexport abstract class EventManagerPlugin {\n constructor(private _doc: any) {}\n\n // TODO(issue/24571): remove '!'.\n manager !: EventManager;\n\n abstract supports(eventName: string): boolean;\n\n abstract addEventListener(element: HTMLElement, eventName: string, handler: Function): Function;\n\n addGlobalEventListener(element: string, eventName: string, handler: Function): Function {\n const target: HTMLElement = getDOM().getGlobalEventTarget(this._doc, element);\n if (!target) {\n throw new Error(`Unsupported event target ${target} for event ${eventName}`);\n }\n return this.addEventListener(target, eventName, handler);\n }\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Inject, Injectable, OnDestroy} from '@angular/core';\nimport {getDOM} from './dom_adapter';\nimport {DOCUMENT} from './dom_tokens';\n\n@Injectable()\nexport class SharedStylesHost {\n /** @internal */\n protected _stylesSet = new Set<string>();\n\n addStyles(styles: string[]): void {\n const additions = new Set<string>();\n styles.forEach(style => {\n if (!this._stylesSet.has(style)) {\n this._stylesSet.add(style);\n additions.add(style);\n }\n });\n this.onStylesAdded(additions);\n }\n\n onStylesAdded(additions: Set<string>): void {}\n\n getAllStyles(): string[] { return Array.from(this._stylesSet); }\n}\n\n@Injectable()\nexport class DomSharedStylesHost extends SharedStylesHost implements OnDestroy {\n private _hostNodes = new Set<Node>();\n private _styleNodes = new Set<Node>();\n constructor(@Inject(DOCUMENT) private _doc: any) {\n super();\n this._hostNodes.add(_doc.head);\n }\n\n private _addStylesToHost(styles: Set<string>, host: Node): void {\n styles.forEach((style: string) => {\n const styleEl = this._doc.createElement('style');\n styleEl.textContent = style;\n this._styleNodes.add(host.appendChild(styleEl));\n });\n }\n\n addHost(hostNode: Node): void {\n this._addStylesToHost(this._stylesSet, hostNode);\n this._hostNodes.add(hostNode);\n }\n\n removeHost(hostNode: Node): void { this._hostNodes.delete(hostNode); }\n\n onStylesAdded(additions: Set<string>): void {\n this._hostNodes.forEach(hostNode => this._addStylesToHost(additions, hostNode));\n }\n\n ngOnDestroy(): void { this._styleNodes.forEach(styleNode => getDOM().remove(styleNode)); }\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Injectable, Renderer2, RendererFactory2, RendererStyleFlags2, RendererType2, ViewEncapsulation} from '@angular/core';\n\nimport {EventManager} from './events/event_manager';\nimport {DomSharedStylesHost} from './shared_styles_host';\n\nexport const NAMESPACE_URIS: {[ns: string]: string} = {\n 'svg': 'http://www.w3.org/2000/svg',\n 'xhtml': 'http://www.w3.org/1999/xhtml',\n 'xlink': 'http://www.w3.org/1999/xlink',\n 'xml': 'http://www.w3.org/XML/1998/namespace',\n 'xmlns': 'http://www.w3.org/2000/xmlns/',\n};\n\nconst COMPONENT_REGEX = /%COMP%/g;\nexport const COMPONENT_VARIABLE = '%COMP%';\nexport const HOST_ATTR = `_nghost-${COMPONENT_VARIABLE}`;\nexport const CONTENT_ATTR = `_ngcontent-${COMPONENT_VARIABLE}`;\n\nexport function shimContentAttribute(componentShortId: string): string {\n return CONTENT_ATTR.replace(COMPONENT_REGEX, componentShortId);\n}\n\nexport function shimHostAttribute(componentShortId: string): string {\n return HOST_ATTR.replace(COMPONENT_REGEX, componentShortId);\n}\n\nexport function flattenStyles(\n compId: string, styles: Array<any|any[]>, target: string[]): string[] {\n for (let i = 0; i < styles.length; i++) {\n let style = styles[i];\n\n if (Array.isArray(style)) {\n flattenStyles(compId, style, target);\n } else {\n style = style.replace(COMPONENT_REGEX, compId);\n target.push(style);\n }\n }\n return target;\n}\n\nfunction decoratePreventDefault(eventHandler: Function): Function {\n return (event: any) => {\n const allowDefaultBehavior = eventHandler(event);\n if (allowDefaultBehavior === false) {\n // TODO(tbosch): move preventDefault into event plugins...\n event.preventDefault();\n event.returnValue = false;\n }\n };\n}\n\n@Injectable()\nexport class DomRendererFactory2 implements RendererFactory2 {\n private rendererByCompId = new Map<string, Renderer2>();\n private defaultRenderer: Renderer2;\n\n constructor(private eventManager: EventManager, private sharedStylesHost: DomSharedStylesHost) {\n this.defaultRenderer = new DefaultDomRenderer2(eventManager);\n }\n\n createRenderer(element: any, type: RendererType2|null): Renderer2 {\n if (!element || !type) {\n return this.defaultRenderer;\n }\n switch (type.encapsulation) {\n case ViewEncapsulation.Emulated: {\n let renderer = this.rendererByCompId.get(type.id);\n if (!renderer) {\n renderer =\n new EmulatedEncapsulationDomRenderer2(this.eventManager, this.sharedStylesHost, type);\n this.rendererByCompId.set(type.id, renderer);\n }\n (<EmulatedEncapsulationDomRenderer2>renderer).applyToHost(element);\n return renderer;\n }\n case ViewEncapsulation.Native:\n case ViewEncapsulation.ShadowDom:\n return new ShadowDomRenderer(this.eventManager, this.sharedStylesHost, element, type);\n default: {\n if (!this.rendererByCompId.has(type.id)) {\n const styles = flattenStyles(type.id, type.styles, []);\n this.sharedStylesHost.addStyles(styles);\n this.rendererByCompId.set(type.id, this.defaultRenderer);\n }\n return this.defaultRenderer;\n }\n }\n }\n\n begin() {}\n end() {}\n}\n\nclass DefaultDomRenderer2 implements Renderer2 {\n data: {[key: string]: any} = Object.create(null);\n\n constructor(private eventManager: EventManager) {}\n\n destroy(): void {}\n\n destroyNode: null;\n\n createElement(name: string, namespace?: string): any {\n if (namespace) {\n return document.createElementNS(NAMESPACE_URIS[namespace], name);\n }\n\n return document.createElement(name);\n }\n\n createComment(value: string): any { return document.createComment(value); }\n\n createText(value: string): any { return document.createTextNode(value); }\n\n appendChild(parent: any, newChild: any): void { parent.appendChild(newChild); }\n\n insertBefore(parent: any, newChild: any, refChild: any): void {\n if (parent) {\n parent.insertBefore(newChild, refChild);\n }\n }\n\n removeChild(parent: any, oldChild: any): void {\n if (parent) {\n parent.removeChild(oldChild);\n }\n }\n\n selectRootElement(selectorOrNode: string|any, preserveContent?: boolean): any {\n let el: any = typeof selectorOrNode === 'string' ? document.querySelector(selectorOrNode) :\n selectorOrNode;\n if (!el) {\n throw new Error(`The selector \"${selectorOrNode}\" did not match any elements`);\n }\n if (!preserveContent) {\n el.textContent = '';\n }\n return el;\n }\n\n parentNode(node: any): any { return node.parentNode; }\n\n nextSibling(node: any): any { return node.nextSibling; }\n\n setAttribute(el: any, name: string, value: string, namespace?: string): void {\n if (namespace) {\n name = `${namespace}:${name}`;\n const namespaceUri = NAMESPACE_URIS[namespace];\n if (namespaceUri) {\n el.setAttributeNS(namespaceUri, name, value);\n } else {\n el.setAttribute(name, value);\n }\n } else {\n el.setAttribute(name, value);\n }\n }\n\n removeAttribute(el: any, name: string, namespace?: string): void {\n if (namespace) {\n const namespaceUri = NAMESPACE_URIS[namespace];\n if (namespaceUri) {\n el.removeAttributeNS(namespaceUri, name);\n } else {\n el.removeAttribute(`${namespace}:${name}`);\n }\n } else {\n el.removeAttribute(name);\n }\n }\n\n addClass(el: any, name: string): void { el.classList.add(name); }\n\n removeClass(el: any, name: string): void { el.classList.remove(name); }\n\n setStyle(el: any, style: string, value: any, flags: RendererStyleFlags2): void {\n if (flags & RendererStyleFlags2.DashCase) {\n el.style.setProperty(\n style, value, !!(flags & RendererStyleFlags2.Important) ? 'important' : '');\n } else {\n el.style[style] = value;\n }\n }\n\n removeStyle(el: any, style: string, flags: RendererStyleFlags2): void {\n if (flags & RendererStyleFlags2.DashCase) {\n el.style.removeProperty(style);\n } else {\n // IE requires '' instead of null\n // see https://github.com/angular/angular/issues/7916\n el.style[style] = '';\n }\n }\n\n setProperty(el: any, name: string, value: any): void {\n checkNoSyntheticProp(name, 'property');\n el[name] = value;\n }\n\n setValue(node: any, value: string): void { node.nodeValue = value; }\n\n listen(target: 'window'|'document'|'body'|any, event: string, callback: (event: any) => boolean):\n () => void {\n checkNoSyntheticProp(event, 'listener');\n if (typeof target === 'string') {\n return <() => void>this.eventManager.addGlobalEventListener(\n target, event, decoratePreventDefault(callback));\n }\n return <() => void>this.eventManager.addEventListener(\n target, event, decoratePreventDefault(callback)) as() => void;\n }\n}\n\nconst AT_CHARCODE = '@'.charCodeAt(0);\nfunction checkNoSyntheticProp(name: string, nameKind: string) {\n if (name.charCodeAt(0) === AT_CHARCODE) {\n throw new Error(\n `Found the synthetic ${nameKind} ${name}. Please include either \"BrowserAnimationsModule\" or \"NoopAnimationsModule\" in your application.`);\n }\n}\n\nclass EmulatedEncapsulationDomRenderer2 extends DefaultDomRenderer2 {\n private contentAttr: string;\n private hostAttr: string;\n\n constructor(\n eventManager: EventManager, sharedStylesHost: DomSharedStylesHost,\n private component: RendererType2) {\n super(eventManager);\n const styles = flattenStyles(component.id, component.styles, []);\n sharedStylesHost.addStyles(styles);\n\n this.contentAttr = shimContentAttribute(component.id);\n this.hostAttr = shimHostAttribute(component.id);\n }\n\n applyToHost(element: any) { super.setAttribute(element, this.hostAttr, ''); }\n\n createElement(parent: any, name: string): Element {\n const el = super.createElement(parent, name);\n super.setAttribute(el, this.contentAttr, '');\n return el;\n }\n}\n\nclass ShadowDomRenderer extends DefaultDomRenderer2 {\n private shadowRoot: any;\n\n constructor(\n eventManager: EventManager, private sharedStylesHost: DomSharedStylesHost,\n private hostEl: any, private component: RendererType2) {\n super(eventManager);\n if (component.encapsulation === ViewEncapsulation.ShadowDom) {\n this.shadowRoot = (hostEl as any).attachShadow({mode: 'open'});\n } else {\n this.shadowRoot = (hostEl as any).createShadowRoot();\n }\n this.sharedStylesHost.addHost(this.shadowRoot);\n const styles = flattenStyles(component.id, component.styles, []);\n for (let i = 0; i < styles.length; i++) {\n const styleEl = document.createElement('style');\n styleEl.textContent = styles[i];\n this.shadowRoot.appendChild(styleEl);\n }\n }\n\n private nodeOrShadowRoot(node: any): any { return node === this.hostEl ? this.shadowRoot : node; }\n\n destroy() { this.sharedStylesHost.removeHost(this.shadowRoot); }\n\n appendChild(parent: any, newChild: any): void {\n return super.appendChild(this.nodeOrShadowRoot(parent), newChild);\n }\n insertBefore(parent: any, newChild: any, refChild: any): void {\n return super.insertBefore(this.nodeOrShadowRoot(parent), newChild, refChild);\n }\n removeChild(parent: any, oldChild: any): void {\n return super.removeChild(this.nodeOrShadowRoot(parent), oldChild);\n }\n parentNode(node: any): any {\n return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(node)));\n }\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {isPlatformServer} from '@angular/common';\nimport {Inject, Injectable, NgZone, Optional, PLATFORM_ID} from '@angular/core';\n\n\nimport {DOCUMENT} from '../dom_tokens';\n\nimport {EventManagerPlugin} from './event_manager';\n\n/**\n * Detect if Zone is present. If it is then use simple zone aware 'addEventListener'\n * since Angular can do much more\n * efficient bookkeeping than Zone can, because we have additional information. This speeds up\n * addEventListener by 3x.\n */\nconst __symbol__ =\n (typeof Zone !== 'undefined') && (Zone as any)['__symbol__'] || function(v: string): string {\n return '__zone_symbol__' + v;\n };\nconst ADD_EVENT_LISTENER: 'addEventListener' = __symbol__('addEventListener');\nconst REMOVE_EVENT_LISTENER: 'removeEventListener' = __symbol__('removeEventListener');\n\nconst symbolNames: {[key: string]: string} = {};\n\nconst FALSE = 'FALSE';\nconst ANGULAR = 'ANGULAR';\nconst NATIVE_ADD_LISTENER = 'addEventListener';\nconst NATIVE_REMOVE_LISTENER = 'removeEventListener';\n\n// use the same symbol string which is used in zone.js\nconst stopSymbol = '__zone_symbol__propagationStopped';\nconst stopMethodSymbol = '__zone_symbol__stopImmediatePropagation';\n\nconst blackListedEvents: string[] =\n (typeof Zone !== 'undefined') && (Zone as any)[__symbol__('BLACK_LISTED_EVENTS')];\nlet blackListedMap: {[eventName: string]: string};\nif (blackListedEvents) {\n blackListedMap = {};\n blackListedEvents.forEach(eventName => { blackListedMap[eventName] = eventName; });\n}\n\nconst isBlackListedEvent = function(eventName: string) {\n if (!blackListedMap) {\n return false;\n }\n return blackListedMap.hasOwnProperty(eventName);\n};\n\ninterface TaskData {\n zone: any;\n handler: Function;\n}\n\n// a global listener to handle all dom event,\n// so we do not need to create a closure every time\nconst globalListener = function(event: Event) {\n const symbolName = symbolNames[event.type];\n if (!symbolName) {\n return;\n }\n const taskDatas: TaskData[] = this[symbolName];\n if (!taskDatas) {\n return;\n }\n const args: any = [event];\n if (taskDatas.length === 1) {\n // if taskDatas only have one element, just invoke it\n const taskData = taskDatas[0];\n if (taskData.zone !== Zone.current) {\n // only use Zone.run when Zone.current not equals to stored zone\n return taskData.zone.run(taskData.handler, this, args);\n } else {\n return taskData.handler.apply(this, args);\n }\n } else {\n // copy tasks as a snapshot to avoid event handlers remove\n // itself or others\n const copiedTasks = taskDatas.slice();\n for (let i = 0; i < copiedTasks.length; i++) {\n // if other listener call event.stopImmediatePropagation\n // just break\n if ((event as any)[stopSymbol] === true) {\n break;\n }\n const taskData = copiedTasks[i];\n if (taskData.zone !== Zone.current) {\n // only use Zone.run when Zone.current not equals to stored zone\n taskData.zone.run(taskData.handler, this, args);\n } else {\n taskData.handler.apply(this, args);\n }\n }\n }\n};\n\n@Injectable()\nexport class DomEventsPlugin extends EventManagerPlugin {\n constructor(\n @Inject(DOCUMENT) doc: any, private ngZone: NgZone,\n @Optional() @Inject(PLATFORM_ID) platformId: {}|null) {\n super(doc);\n\n if (!platformId || !isPlatformServer(platformId)) {\n this.patchEvent();\n }\n }\n\n private patchEvent() {\n if (typeof Event === 'undefined' || !Event || !Event.prototype) {\n return;\n }\n if ((Event.prototype as any)[stopMethodSymbol]) {\n // already patched by zone.js\n return;\n }\n const delegate = (Event.prototype as any)[stopMethodSymbol] =\n Event.prototype.stopImmediatePropagation;\n Event.prototype.stopImmediatePropagation = function() {\n if (this) {\n this[stopSymbol] = true;\n }\n\n // should call native delegate in case\n // in some environment part of the application\n // will not use the patched Event\n delegate && delegate.apply(this, arguments);\n };\n }\n\n // This plugin should come last in the list of plugins, because it accepts all\n // events.\n supports(eventName: string): boolean { return true; }\n\n addEventListener(element: HTMLElement, eventName: string, handler: Function): Function {\n /**\n * This code is about to add a listener to the DOM. If Zone.js is present, than\n * `addEventListener` has been patched. The patched code adds overhead in both\n * memory and speed (3x slower) than native. For this reason if we detect that\n * Zone.js is present we use a simple version of zone aware addEventListener instead.\n * The result is faster registration and the zone will be restored.\n * But ZoneSpec.onScheduleTask, ZoneSpec.onInvokeTask, ZoneSpec.onCancelTask\n * will not be invoked\n * We also do manual zone restoration in element.ts renderEventHandlerClosure method.\n *\n * NOTE: it is possible that the element is from different iframe, and so we\n * have to check before we execute the method.\n */\n const self = this;\n const zoneJsLoaded = element[ADD_EVENT_LISTENER];\n let callback: EventListener = handler as EventListener;\n // if zonejs is loaded and current zone is not ngZone\n // we keep Zone.current on target for later restoration.\n if (zoneJsLoaded && (!NgZone.isInAngularZone() || isBlackListedEvent(eventName))) {\n let symbolName = symbolNames[eventName];\n if (!symbolName) {\n symbolName = symbolNames[eventName] = __symbol__(ANGULAR + eventName + FALSE);\n }\n let taskDatas: TaskData[] = (element as any)[symbolName];\n const globalListenerRegistered = taskDatas && taskDatas.length > 0;\n if (!taskDatas) {\n taskDatas = (element as any)[symbolName] = [];\n }\n\n const zone = isBlackListedEvent(eventName) ? Zone.root : Zone.current;\n if (taskDatas.length === 0) {\n taskDatas.push({zone: zone, handler: callback});\n } else {\n let callbackRegistered = false;\n for (let i = 0; i < taskDatas.length; i++) {\n if (taskDatas[i].handler === callback) {\n callbackRegistered = true;\n break;\n }\n }\n if (!callbackRegistered) {\n taskDatas.push({zone: zone, handler: callback});\n }\n }\n\n if (!globalListenerRegistered) {\n element[ADD_EVENT_LISTENER](eventName, globalListener, false);\n }\n } else {\n element[NATIVE_ADD_LISTENER](eventName, callback, false);\n }\n return () => this.removeEventListener(element, eventName, callback);\n }\n\n removeEventListener(target: any, eventName: string, callback: Function): void {\n let underlyingRemove = target[REMOVE_EVENT_LISTENER];\n // zone.js not loaded, use native removeEventListener\n if (!underlyingRemove) {\n return target[NATIVE_REMOVE_LISTENER].apply(target, [eventName, callback, false]);\n }\n let symbolName = symbolNames[eventName];\n let taskDatas: TaskData[] = symbolName && target[symbolName];\n if (!taskDatas) {\n // addEventListener not using patched version\n // just call native removeEventListener\n return target[NATIVE_REMOVE_LISTENER].apply(target, [eventName, callback, false]);\n }\n // fix issue 20532, should be able to remove\n // listener which was added inside of ngZone\n let found = false;\n for (let i = 0; i < taskDatas.length; i++) {\n // remove listener from taskDatas if the callback equals\n if (taskDatas[i].handler === callback) {\n found = true;\n taskDatas.splice(i, 1);\n break;\n }\n }\n if (found) {\n if (taskDatas.length === 0) {\n // all listeners are removed, we can remove the globalListener from target\n underlyingRemove.apply(target, [eventName, globalListener, false]);\n }\n } else {\n // not found in taskDatas, the callback may be added inside of ngZone\n // use native remove listener to remove the callback\n target[NATIVE_REMOVE_LISTENER].apply(target, [eventName, callback, false]);\n }\n }\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Inject, Injectable, InjectionToken, Optional, ɵConsole as Console} from '@angular/core';\n\nimport {DOCUMENT} from '../dom_tokens';\n\nimport {EventManagerPlugin} from './event_manager';\n\n/**\n * Supported HammerJS recognizer event names.\n */\nconst EVENT_NAMES = {\n // pan\n 'pan': true,\n 'panstart': true,\n 'panmove': true,\n 'panend': true,\n 'pancancel': true,\n 'panleft': true,\n 'panright': true,\n 'panup': true,\n 'pandown': true,\n // pinch\n 'pinch': true,\n 'pinchstart': true,\n 'pinchmove': true,\n 'pinchend': true,\n 'pinchcancel': true,\n 'pinchin': true,\n 'pinchout': true,\n // press\n 'press': true,\n 'pressup': true,\n // rotate\n 'rotate': true,\n 'rotatestart': true,\n 'rotatemove': true,\n 'rotateend': true,\n 'rotatecancel': true,\n // swipe\n 'swipe': true,\n 'swipeleft': true,\n 'swiperight': true,\n 'swipeup': true,\n 'swipedown': true,\n // tap\n 'tap': true,\n};\n\n/**\n * DI token for providing [HammerJS](http://hammerjs.github.io/) support to Angular.\n * @see `HammerGestureConfig`\n *\n * @publicApi\n */\nexport const HAMMER_GESTURE_CONFIG = new InjectionToken<HammerGestureConfig>('HammerGestureConfig');\n\n\n/**\n * Function that loads HammerJS, returning a promise that is resolved once HammerJs is loaded.\n *\n * @publicApi\n */\nexport type HammerLoader = () => Promise<void>;\n\n/**\n * Injection token used to provide a {@link HammerLoader} to Angular.\n *\n * @publicApi\n */\nexport const HAMMER_LOADER = new InjectionToken<HammerLoader>('HammerLoader');\n\nexport interface HammerInstance {\n on(eventName: string, callback?: Function): void;\n off(eventName: string, callback?: Function): void;\n destroy?(): void;\n}\n\n/**\n * An injectable [HammerJS Manager](http://hammerjs.github.io/api/#hammer.manager)\n * for gesture recognition. Configures specific event recognition.\n * @publicApi\n */\n@Injectable()\nexport class HammerGestureConfig {\n /**\n * A set of supported event names for gestures to be used in Angular.\n * Angular supports all built-in recognizers, as listed in\n * [HammerJS documentation](http://hammerjs.github.io/).\n */\n events: string[] = [];\n\n /**\n * Maps gesture event names to a set of configuration options\n * that specify overrides to the default values for specific properties.\n *\n * The key is a supported event name to be configured,\n * and the options object contains a set of properties, with override values\n * to be applied to the named recognizer event.\n * For example, to disable recognition of the rotate event, specify\n * `{\"rotate\": {\"enable\": false}}`.\n *\n * Properties that are not present take the HammerJS default values.\n * For information about which properties are supported for which events,\n * and their allowed and default values, see\n * [HammerJS documentation](http://hammerjs.github.io/).\n *\n */\n overrides: {[key: string]: Object} = {};\n\n /**\n * Properties whose default values can be overridden for a given event.\n * Different sets of properties apply to different events.\n * For information about which properties are supported for which events,\n * and their allowed and default values, see\n * [HammerJS documentation](http://hammerjs.github.io/).\n */\n options?: {\n cssProps?: any; domEvents?: boolean; enable?: boolean | ((manager: any) => boolean);\n preset?: any[];\n touchAction?: string;\n recognizers?: any[];\n inputClass?: any;\n inputTarget?: EventTarget;\n };\n\n /**\n * Creates a [HammerJS Manager](http://hammerjs.github.io/api/#hammer.manager)\n * and attaches it to a given HTML element.\n * @param element The element that will recognize gestures.\n * @returns A HammerJS event-manager object.\n */\n buildHammer(element: HTMLElement): HammerInstance {\n const mc = new Hammer !(element, this.options);\n\n mc.get('pinch').set({enable: true});\n mc.get('rotate').set({enable: true});\n\n for (const eventName in this.overrides) {\n mc.get(eventName).set(this.overrides[eventName]);\n }\n\n return mc;\n }\n}\n\n@Injectable()\nexport class HammerGesturesPlugin extends EventManagerPlugin {\n constructor(\n @Inject(DOCUMENT) doc: any,\n @Inject(HAMMER_GESTURE_CONFIG) private _config: HammerGestureConfig, private console: Console,\n @Optional() @Inject(HAMMER_LOADER) private loader?: HammerLoader|null) {\n super(doc);\n }\n\n supports(eventName: string): boolean {\n if (!EVENT_NAMES.hasOwnProperty(eventName.toLowerCase()) && !this.isCustomEvent(eventName)) {\n return false;\n }\n\n if (!(window as any).Hammer && !this.loader) {\n this.console.warn(\n `The \"${eventName}\" event cannot be bound because Hammer.JS is not ` +\n `loaded and no custom loader has been specified.`);\n return false;\n }\n\n return true;\n }\n\n addEventListener(element: HTMLElement, eventName: string, handler: Function): Function {\n const zone = this.manager.getZone();\n eventName = eventName.toLowerCase();\n\n // If Hammer is not present but a loader is specified, we defer adding the event listener\n // until Hammer is loaded.\n if (!(window as any).Hammer && this.loader) {\n // This `addEventListener` method returns a function to remove the added listener.\n // Until Hammer is loaded, the returned function needs to *cancel* the registration rather\n // than remove anything.\n let cancelRegistration = false;\n let deregister: Function = () => { cancelRegistration = true; };\n\n this.loader()\n .then(() => {\n // If Hammer isn't actually loaded when the custom loader resolves, give up.\n if (!(window as any).Hammer) {\n this.console.warn(\n `The custom HAMMER_LOADER completed, but Hammer.JS is not present.`);\n deregister = () => {};\n return;\n }\n\n if (!cancelRegistration) {\n // Now that Hammer is loaded and the listener is being loaded for real,\n // the deregistration function changes from canceling registration to removal.\n deregister = this.addEventListener(element, eventName, handler);\n }\n })\n .catch(() => {\n this.console.warn(\n `The \"${eventName}\" event cannot be bound because the custom ` +\n `Hammer.JS loader failed.`);\n deregister = () => {};\n });\n\n // Return a function that *executes* `deregister` (and not `deregister` itself) so that we\n // can change the behavior of `deregister` once the listener is added. Using a closure in\n // this way allows us to avoid any additional data structures to track listener removal.\n return () => { deregister(); };\n }\n\n return zone.runOutsideAngular(() => {\n // Creating the manager bind events, must be done outside of angular\n const mc = this._config.buildHammer(element);\n const callback = function(eventObj: HammerInput) {\n zone.runGuarded(function() { handler(eventObj); });\n };\n mc.on(eventName, callback);\n return () => {\n mc.off(eventName, callback);\n // destroy mc to prevent memory leak\n if (typeof mc.destroy === 'function') {\n mc.destroy();\n }\n };\n });\n }\n\n isCustomEvent(eventName: string): boolean { return this._config.events.indexOf(eventName) > -1; }\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Inject, Injectable, NgZone} from '@angular/core';\n\nimport {getDOM} from '../dom_adapter';\nimport {DOCUMENT} from '../dom_tokens';\n\nimport {EventManagerPlugin} from './event_manager';\n\n/**\n * Defines supported modifiers for key events.\n */\nconst MODIFIER_KEYS = ['alt', 'control', 'meta', 'shift'];\n\n/**\n * Retrieves modifiers from key-event objects.\n */\nconst MODIFIER_KEY_GETTERS: {[key: string]: (event: KeyboardEvent) => boolean} = {\n 'alt': (event: KeyboardEvent) => event.altKey,\n 'control': (event: KeyboardEvent) => event.ctrlKey,\n 'meta': (event: KeyboardEvent) => event.metaKey,\n 'shift': (event: KeyboardEvent) => event.shiftKey\n};\n\n/**\n * @publicApi\n * A browser plug-in that provides support for handling of key events in Angular.\n */\n@Injectable()\nexport class KeyEventsPlugin extends EventManagerPlugin {\n /**\n * Initializes an instance of the browser plug-in.\n * @param doc The document in which key events will be detected.\n */\n constructor(@Inject(DOCUMENT) doc: any) { super(doc); }\n\n /**\n * Reports whether a named key event is supported.\n * @param eventName The event name to query.\n * @return True if the named key event is supported.\n */\n supports(eventName: string): boolean { return KeyEventsPlugin.parseEventName(eventName) != null; }\n\n /**\n * Registers a handler for a specific element and key event.\n * @param element The HTML element to receive event notifications.\n * @param eventName The name of the key event to listen for.\n * @param handler A function to call when the notification occurs. Receives the\n * event object as an argument.\n * @returns The key event that was registered.\n */\n addEventListener(element: HTMLElement, eventName: string, handler: Function): Function {\n const parsedEvent = KeyEventsPlugin.parseEventName(eventName) !;\n\n const outsideHandler =\n KeyEventsPlugin.eventCallback(parsedEvent['fullKey'], handler, this.manager.getZone());\n\n return this.manager.getZone().runOutsideAngular(() => {\n return getDOM().onAndCancel(element, parsedEvent['domEventName'], outsideHandler);\n });\n }\n\n static parseEventName(eventName: string): {[key: string]: string}|null {\n const parts: string[] = eventName.toLowerCase().split('.');\n\n const domEventName = parts.shift();\n if ((parts.length === 0) || !(domEventName === 'keydown' || domEventName === 'keyup')) {\n return null;\n }\n\n const key = KeyEventsPlugin._normalizeKey(parts.pop() !);\n\n let fullKey = '';\n MODIFIER_KEYS.forEach(modifierName => {\n const index: number = parts.indexOf(modifierName);\n if (index > -1) {\n parts.splice(index, 1);\n fullKey += modifierName + '.';\n }\n });\n fullKey += key;\n\n if (parts.length != 0 || key.length === 0) {\n // returning null instead of throwing to let another plugin process the event\n return null;\n }\n\n const result: {[k: string]: string} = {};\n result['domEventName'] = domEventName;\n result['fullKey'] = fullKey;\n return result;\n }\n\n static getEventFullKey(event: KeyboardEvent): string {\n let fullKey = '';\n let key = getDOM().getEventKey(event);\n key = key.toLowerCase();\n if (key === ' ') {\n key = 'space'; // for readability\n } else if (key === '.') {\n key = 'dot'; // because '.' is used as a separator in event names\n }\n MODIFIER_KEYS.forEach(modifierName => {\n if (modifierName != key) {\n const modifierGetter = MODIFIER_KEY_GETTERS[modifierName];\n if (modifierGetter(event)) {\n fullKey += modifierName + '.';\n }\n }\n });\n fullKey += key;\n return fullKey;\n }\n\n /**\n * Configures a handler callback for a key event.\n * @param fullKey The event name that combines all simultaneous keystrokes.\n * @param handler The function that responds to the key event.\n * @param zone The zone in which the event occurred.\n * @returns A callback function.\n */\n static eventCallback(fullKey: any, handler: Function, zone: NgZone): Function {\n return (event: any /** TODO #9100 */) => {\n if (KeyEventsPlugin.getEventFullKey(event) === fullKey) {\n zone.runGuarded(() => handler(event));\n }\n };\n }\n\n /** @internal */\n static _normalizeKey(keyName: string): string {\n // TODO: switch to a Map if the mapping grows too much\n switch (keyName) {\n case 'esc':\n return 'escape';\n default:\n return keyName;\n }\n }\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Inject, Injectable, Sanitizer, SecurityContext, ɵ_sanitizeHtml as _sanitizeHtml, ɵ_sanitizeStyle as _sanitizeStyle, ɵ_sanitizeUrl as _sanitizeUrl} from '@angular/core';\n\nimport {DOCUMENT} from '../dom/dom_tokens';\n\nexport {SecurityContext};\n\n\n\n/**\n * Marker interface for a value that's safe to use in a particular context.\n *\n * @publicApi\n */\nexport interface SafeValue {}\n\n/**\n * Marker interface for a value that's safe to use as HTML.\n *\n * @publicApi\n */\nexport interface SafeHtml extends SafeValue {}\n\n/**\n * Marker interface for a value that's safe to use as style (CSS).\n *\n * @publicApi\n */\nexport interface SafeStyle extends SafeValue {}\n\n/**\n * Marker interface for a value that's safe to use as JavaScript.\n *\n * @publicApi\n */\nexport interface SafeScript extends SafeValue {}\n\n/**\n * Marker interface for a value that's safe to use as a URL linking to a document.\n *\n * @publicApi\n */\nexport interface SafeUrl extends SafeValue {}\n\n/**\n * Marker interface for a value that's safe to use as a URL to load executable code from.\n *\n * @publicApi\n */\nexport interface SafeResourceUrl extends SafeValue {}\n\n/**\n * DomSanitizer helps preventing Cross Site Scripting Security bugs (XSS) by sanitizing\n * values to be safe to use in the different DOM contexts.\n *\n * For example, when binding a URL in an `<a [href]=\"someValue\">` hyperlink, `someValue` will be\n * sanitized so that an attacker cannot inject e.g. a `javascript:` URL that would execute code on\n * the website.\n *\n * In specific situations, it might be necessary to disable sanitization, for example if the\n * application genuinely needs to produce a `javascript:` style link with a dynamic value in it.\n * Users can bypass security by constructing a value with one of the `bypassSecurityTrust...`\n * methods, and then binding to that value from the template.\n *\n * These situations should be very rare, and extraordinary care must be taken to avoid creating a\n * Cross Site Scripting (XSS) security bug!\n *\n * When using `bypassSecurityTrust...`, make sure to call the method as early as possible and as\n * close as possible to the source of the value, to make it easy to verify no security bug is\n * created by its use.\n *\n * It is not required (and not recommended) to bypass security if the value is safe, e.g. a URL that\n * does not start with a suspicious protocol, or an HTML snippet that does not contain dangerous\n * code. The sanitizer leaves safe values intact.\n *\n * @security Calling any of the `bypassSecurityTrust...` APIs disables Angular's built-in\n * sanitization for the value passed in. Carefully check and audit all values and code paths going\n * into this call. Make sure any user data is appropriately escaped for this security context.\n * For more detail, see the [Security Guide](http://g.co/ng/security).\n *\n * @publicApi\n */\nexport abstract class DomSanitizer implements Sanitizer {\n /**\n * Sanitizes a value for use in the given SecurityContext.\n *\n * If value is trusted for the context, this method will unwrap the contained safe value and use\n * it directly. Otherwise, value will be sanitized to be safe in the given context, for example\n * by replacing URLs that have an unsafe protocol part (such as `javascript:`). The implementation\n * is responsible to make sure that the value can definitely be safely used in the given context.\n */\n abstract sanitize(context: SecurityContext, value: SafeValue|string|null): string|null;\n\n /**\n * Bypass security and trust the given value to be safe HTML. Only use this when the bound HTML\n * is unsafe (e.g. contains `<script>` tags) and the code should be executed. The sanitizer will\n * leave safe HTML intact, so in most situations this method should not be used.\n *\n * **WARNING:** calling this method with untrusted user data exposes your application to XSS\n * security risks!\n */\n abstract bypassSecurityTrustHtml(value: string): SafeHtml;\n\n /**\n * Bypass security and trust the given value to be safe style value (CSS).\n *\n * **WARNING:** calling this method with untrusted user data exposes your application to XSS\n * security risks!\n */\n abstract bypassSecurityTrustStyle(value: string): SafeStyle;\n\n /**\n * Bypass security and trust the given value to be safe JavaScript.\n *\n * **WARNING:** calling this method with untrusted user data exposes your application to XSS\n * security risks!\n */\n abstract bypassSecurityTrustScript(value: string): SafeScript;\n\n /**\n * Bypass security and trust the given value to be a safe style URL, i.e. a value that can be used\n * in hyperlinks or `<img src>`.\n *\n * **WARNING:** calling this method with untrusted user data exposes your application to XSS\n * security risks!\n */\n abstract bypassSecurityTrustUrl(value: string): SafeUrl;\n\n /**\n * Bypass security and trust the given value to be a safe resource URL, i.e. a location that may\n * be used to load executable code from, like `<script src>`, or `<iframe src>`.\n *\n * **WARNING:** calling this method with untrusted user data exposes your application to XSS\n * security risks!\n */\n abstract bypassSecurityTrustResourceUrl(value: string): SafeResourceUrl;\n}\n\n\n@Injectable()\nexport class DomSanitizerImpl extends DomSanitizer {\n constructor(@Inject(DOCUMENT) private _doc: any) { super(); }\n\n sanitize(ctx: SecurityContext, value: SafeValue|string|null): string|null {\n if (value == null) return null;\n switch (ctx) {\n case SecurityContext.NONE:\n return value as string;\n case SecurityContext.HTML:\n if (value instanceof SafeHtmlImpl) return value.changingThisBreaksApplicationSecurity;\n this.checkNotSafeValue(value, 'HTML');\n return _sanitizeHtml(this._doc, String(value));\n case SecurityContext.STYLE:\n if (value instanceof SafeStyleImpl) return value.changingThisBreaksApplicationSecurity;\n this.checkNotSafeValue(value, 'Style');\n return _sanitizeStyle(value as string);\n case SecurityContext.SCRIPT:\n if (value instanceof SafeScriptImpl) return value.changingThisBreaksApplicationSecurity;\n this.checkNotSafeValue(value, 'Script');\n throw new Error('unsafe value used in a script context');\n case SecurityContext.URL:\n if (value instanceof SafeResourceUrlImpl || value instanceof SafeUrlImpl) {\n // Allow resource URLs in URL contexts, they are strictly more trusted.\n return value.changingThisBreaksApplicationSecurity;\n }\n this.checkNotSafeValue(value, 'URL');\n return _sanitizeUrl(String(value));\n case SecurityContext.RESOURCE_URL:\n if (value instanceof SafeResourceUrlImpl) {\n return value.changingThisBreaksApplicationSecurity;\n }\n this.checkNotSafeValue(value, 'ResourceURL');\n throw new Error(\n 'unsafe value used in a resource URL context (see http://g.co/ng/security#xss)');\n default:\n throw new Error(`Unexpected SecurityContext ${ctx} (see http://g.co/ng/security#xss)`);\n }\n }\n\n private checkNotSafeValue(value: any, expectedType: string) {\n if (value instanceof SafeValueImpl) {\n throw new Error(\n `Required a safe ${expectedType}, got a ${value.getTypeName()} ` +\n `(see http://g.co/ng/security#xss)`);\n }\n }\n\n bypassSecurityTrustHtml(value: string): SafeHtml { return new SafeHtmlImpl(value); }\n bypassSecurityTrustStyle(value: string): SafeStyle { return new SafeStyleImpl(value); }\n bypassSecurityTrustScript(value: string): SafeScript { return new SafeScriptImpl(value); }\n bypassSecurityTrustUrl(value: string): SafeUrl { return new SafeUrlImpl(value); }\n bypassSecurityTrustResourceUrl(value: string): SafeResourceUrl {\n return new SafeResourceUrlImpl(value);\n }\n}\n\nabstract class SafeValueImpl implements SafeValue {\n constructor(public changingThisBreaksApplicationSecurity: string) {\n // empty\n }\n\n abstract getTypeName(): string;\n\n toString() {\n return `SafeValue must use [property]=binding: ${this.changingThisBreaksApplicationSecurity}` +\n ` (see http://g.co/ng/security#xss)`;\n }\n}\n\nclass SafeHtmlImpl extends SafeValueImpl implements SafeHtml {\n getTypeName() { return 'HTML'; }\n}\nclass SafeStyleImpl extends SafeValueImpl implements SafeStyle {\n getTypeName() { return 'Style'; }\n}\nclass SafeScriptImpl extends SafeValueImpl implements SafeScript {\n getTypeName() { return 'Script'; }\n}\nclass SafeUrlImpl extends SafeValueImpl implements SafeUrl {\n getTypeName() { return 'URL'; }\n}\nclass SafeResourceUrlImpl extends SafeValueImpl implements SafeResourceUrl {\n getTypeName() { return 'ResourceURL'; }\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {CommonModule, PlatformLocation, ɵPLATFORM_BROWSER_ID as PLATFORM_BROWSER_ID} from '@angular/common';\nimport {APP_ID, ApplicationModule, ErrorHandler, Inject, ModuleWithProviders, NgModule, NgZone, Optional, PLATFORM_ID, PLATFORM_INITIALIZER, PlatformRef, RendererFactory2, Sanitizer, SkipSelf, StaticProvider, Testability, createPlatformFactory, platformCore, ɵAPP_ROOT as APP_ROOT, ɵConsole as Console} from '@angular/core';\n\nimport {BrowserDomAdapter} from './browser/browser_adapter';\nimport {BrowserPlatformLocation} from './browser/location/browser_platform_location';\nimport {SERVER_TRANSITION_PROVIDERS, TRANSITION_ID} from './browser/server-transition';\nimport {BrowserGetTestability} from './browser/testability';\nimport {ELEMENT_PROBE_PROVIDERS} from './dom/debug/ng_probe';\nimport {DomRendererFactory2} from './dom/dom_renderer';\nimport {DOCUMENT} from './dom/dom_tokens';\nimport {DomEventsPlugin} from './dom/events/dom_events';\nimport {EVENT_MANAGER_PLUGINS, EventManager} from './dom/events/event_manager';\nimport {HAMMER_GESTURE_CONFIG, HAMMER_LOADER, HammerGestureConfig, HammerGesturesPlugin} from './dom/events/hammer_gestures';\nimport {KeyEventsPlugin} from './dom/events/key_events';\nimport {DomSharedStylesHost, SharedStylesHost} from './dom/shared_styles_host';\nimport {DomSanitizer, DomSanitizerImpl} from './security/dom_sanitization_service';\n\nexport const INTERNAL_BROWSER_PLATFORM_PROVIDERS: StaticProvider[] = [\n {provide: PLATFORM_ID, useValue: PLATFORM_BROWSER_ID},\n {provide: PLATFORM_INITIALIZER, useValue: initDomAdapter, multi: true},\n {provide: PlatformLocation, useClass: BrowserPlatformLocation, deps: [DOCUMENT]},\n {provide: DOCUMENT, useFactory: _document, deps: []},\n];\n\n/**\n * @security Replacing built-in sanitization providers exposes the application to XSS risks.\n * Attacker-controlled data introduced by an unsanitized provider could expose your\n * application to XSS risks. For more detail, see the [Security Guide](http://g.co/ng/security).\n * @publicApi\n */\nexport const BROWSER_SANITIZATION_PROVIDERS: StaticProvider[] = [\n {provide: Sanitizer, useExisting: DomSanitizer},\n {provide: DomSanitizer, useClass: DomSanitizerImpl, deps: [DOCUMENT]},\n];\n\n/**\n * @publicApi\n */\nexport const platformBrowser: (extraProviders?: StaticProvider[]) => PlatformRef =\n createPlatformFactory(platformCore, 'browser', INTERNAL_BROWSER_PLATFORM_PROVIDERS);\n\nexport function initDomAdapter() {\n BrowserDomAdapter.makeCurrent();\n BrowserGetTestability.init();\n}\n\nexport function errorHandler(): ErrorHandler {\n return new ErrorHandler();\n}\n\nexport function _document(): any {\n return document;\n}\n\nexport const BROWSER_MODULE_PROVIDERS: StaticProvider[] = [\n BROWSER_SANITIZATION_PROVIDERS,\n {provide: APP_ROOT, useValue: true},\n {provide: ErrorHandler, useFactory: errorHandler, deps: []},\n {\n provide: EVENT_MANAGER_PLUGINS,\n useClass: DomEventsPlugin,\n multi: true,\n deps: [DOCUMENT, NgZone, PLATFORM_ID]\n },\n {provide: EVENT_MANAGER_PLUGINS, useClass: KeyEventsPlugin, multi: true, deps: [DOCUMENT]},\n {\n provide: EVENT_MANAGER_PLUGINS,\n useClass: HammerGesturesPlugin,\n multi: true,\n deps: [DOCUMENT, HAMMER_GESTURE_CONFIG, Console, [new Optional(), HAMMER_LOADER]]\n },\n {provide: HAMMER_GESTURE_CONFIG, useClass: HammerGestureConfig, deps: []},\n {\n provide: DomRendererFactory2,\n useClass: DomRendererFactory2,\n deps: [EventManager, DomSharedStylesHost]\n },\n {provide: RendererFactory2, useExisting: DomRendererFactory2},\n {provide: SharedStylesHost, useExisting: DomSharedStylesHost},\n {provide: DomSharedStylesHost, useClass: DomSharedStylesHost, deps: [DOCUMENT]},\n {provide: Testability, useClass: Testability, deps: [NgZone]},\n {provide: EventManager, useClass: EventManager, deps: [EVENT_MANAGER_PLUGINS, NgZone]},\n ELEMENT_PROBE_PROVIDERS,\n];\n\n/**\n * Exports required infrastructure for all Angular apps.\n * Included by default in all Angular apps created with the CLI\n * `new` command.\n * Re-exports `CommonModule` and `ApplicationModule`, making their\n * exports and providers available to all apps.\n *\n * @publicApi\n */\n@NgModule({providers: BROWSER_MODULE_PROVIDERS, exports: [CommonModule, ApplicationModule]})\nexport class BrowserModule {\n constructor(@Optional() @SkipSelf() @Inject(BrowserModule) parentModule: BrowserModule|null) {\n if (parentModule) {\n throw new Error(\n `BrowserModule has already been loaded. If you need access to common directives such as NgIf and NgFor from a lazy loaded module, import CommonModule instead.`);\n }\n }\n\n /**\n * Configures a browser-based app to transition from a server-rendered app, if\n * one is present on the page.\n *\n * @param params An object containing an identifier for the app to transition.\n * The ID must match between the client and server versions of the app.\n * @returns The reconfigured `BrowserModule` to import into the app's root `AppModule`.\n */\n static withServerTransition(params: {appId: string}): ModuleWithProviders<BrowserModule> {\n return {\n ngModule: BrowserModule,\n providers: [\n {provide: APP_ID, useValue: params.appId},\n {provide: TRANSITION_ID, useExisting: APP_ID},\n SERVER_TRANSITION_PROVIDERS,\n ],\n };\n }\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Inject, Injectable, inject} from '@angular/core';\n\nimport {DomAdapter, getDOM} from '../dom/dom_adapter';\nimport {DOCUMENT} from '../dom/dom_tokens';\n\n\n\n/**\n * Represents a meta element.\n *\n * @publicApi\n */\nexport type MetaDefinition = {\n charset?: string; content?: string; httpEquiv?: string; id?: string; itemprop?: string;\n name?: string;\n property?: string;\n scheme?: string;\n url?: string;\n} &\n{\n // TODO(IgorMinar): this type looks wrong\n [prop: string]: string;\n};\n\n/**\n * Factory to create Meta service.\n */\nexport function createMeta() {\n return new Meta(inject(DOCUMENT));\n}\n\n/**\n * A service that can be used to get and add meta tags.\n *\n * @publicApi\n */\n@Injectable({providedIn: 'root', useFactory: createMeta, deps: []})\nexport class Meta {\n private _dom: DomAdapter;\n constructor(@Inject(DOCUMENT) private _doc: any) { this._dom = getDOM(); }\n\n addTag(tag: MetaDefinition, forceCreation: boolean = false): HTMLMetaElement|null {\n if (!tag) return null;\n return this._getOrCreateElement(tag, forceCreation);\n }\n\n addTags(tags: MetaDefinition[], forceCreation: boolean = false): HTMLMetaElement[] {\n if (!tags) return [];\n return tags.reduce((result: HTMLMetaElement[], tag: MetaDefinition) => {\n if (tag) {\n result.push(this._getOrCreateElement(tag, forceCreation));\n }\n return result;\n }, []);\n }\n\n getTag(attrSelector: string): HTMLMetaElement|null {\n if (!attrSelector) return null;\n return this._dom.querySelector(this._doc, `meta[${attrSelector}]`) || null;\n }\n\n getTags(attrSelector: string): HTMLMetaElement[] {\n if (!attrSelector) return [];\n const list /*NodeList*/ = this._dom.querySelectorAll(this._doc, `meta[${attrSelector}]`);\n return list ? [].slice.call(list) : [];\n }\n\n updateTag(tag: MetaDefinition, selector?: string): HTMLMetaElement|null {\n if (!tag) return null;\n selector = selector || this._parseSelector(tag);\n const meta: HTMLMetaElement = this.getTag(selector) !;\n if (meta) {\n return this._setMetaElementAttributes(tag, meta);\n }\n return this._getOrCreateElement(tag, true);\n }\n\n removeTag(attrSelector: string): void { this.removeTagElement(this.getTag(attrSelector) !); }\n\n removeTagElement(meta: HTMLMetaElement): void {\n if (meta) {\n this._dom.remove(meta);\n }\n }\n\n private _getOrCreateElement(meta: MetaDefinition, forceCreation: boolean = false):\n HTMLMetaElement {\n if (!forceCreation) {\n const selector: string = this._parseSelector(meta);\n const elem: HTMLMetaElement = this.getTag(selector) !;\n // It's allowed to have multiple elements with the same name so it's not enough to\n // just check that element with the same name already present on the page. We also need to\n // check if element has tag attributes\n if (elem && this._containsAttributes(meta, elem)) return elem;\n }\n const element: HTMLMetaElement = this._dom.createElement('meta') as HTMLMetaElement;\n this._setMetaElementAttributes(meta, element);\n const head = this._dom.getElementsByTagName(this._doc, 'head')[0];\n this._dom.appendChild(head, element);\n return element;\n }\n\n private _setMetaElementAttributes(tag: MetaDefinition, el: HTMLMetaElement): HTMLMetaElement {\n Object.keys(tag).forEach((prop: string) => this._dom.setAttribute(el, prop, tag[prop]));\n return el;\n }\n\n private _parseSelector(tag: MetaDefinition): string {\n const attr: string = tag.name ? 'name' : 'property';\n return `${attr}=\"${tag[attr]}\"`;\n }\n\n private _containsAttributes(tag: MetaDefinition, elem: HTMLMetaElement): boolean {\n return Object.keys(tag).every((key: string) => this._dom.getAttribute(elem, key) === tag[key]);\n }\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Inject, Injectable, inject} from '@angular/core';\n\nimport {getDOM} from '../dom/dom_adapter';\nimport {DOCUMENT} from '../dom/dom_tokens';\n\n/**\n * Factory to create Title service.\n */\nexport function createTitle() {\n return new Title(inject(DOCUMENT));\n}\n\n/**\n * A service that can be used to get and set the title of a current HTML document.\n *\n * Since an Angular application can't be bootstrapped on the entire HTML document (`<html>` tag)\n * it is not possible to bind to the `text` property of the `HTMLTitleElement` elements\n * (representing the `<title>` tag). Instead, this service can be used to set and get the current\n * title value.\n *\n * @publicApi\n */\n@Injectable({providedIn: 'root', useFactory: createTitle, deps: []})\nexport class Title {\n constructor(@Inject(DOCUMENT) private _doc: any) {}\n /**\n * Get the title of the current HTML document.\n */\n getTitle(): string { return getDOM().getTitle(this._doc); }\n\n /**\n * Set the title of the current HTML document.\n * @param newTitle\n */\n setTitle(newTitle: string) { getDOM().setTitle(this._doc, newTitle); }\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nconst win = typeof window !== 'undefined' && window || <any>{};\nexport {win as window};\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {ApplicationRef, ComponentRef} from '@angular/core';\nimport {getDOM} from '../../dom/dom_adapter';\nimport {window} from './browser';\n\nexport class ChangeDetectionPerfRecord {\n constructor(public msPerTick: number, public numTicks: number) {}\n}\n\n/**\n * Entry point for all Angular profiling-related debug tools. This object\n * corresponds to the `ng.profiler` in the dev console.\n */\nexport class AngularProfiler {\n appRef: ApplicationRef;\n\n constructor(ref: ComponentRef<any>) { this.appRef = ref.injector.get(ApplicationRef); }\n\n // tslint:disable:no-console\n /**\n * Exercises change detection in a loop and then prints the average amount of\n * time in milliseconds how long a single round of change detection takes for\n * the current state of the UI. It runs a minimum of 5 rounds for a minimum\n * of 500 milliseconds.\n *\n * Optionally, a user may pass a `config` parameter containing a map of\n * options. Supported options are:\n *\n * `record` (boolean) - causes the profiler to record a CPU profile while\n * it exercises the change detector. Example:\n *\n * ```\n * ng.profiler.timeChangeDetection({record: true})\n * ```\n */\n timeChangeDetection(config: any): ChangeDetectionPerfRecord {\n const record = config && config['record'];\n const profileName = 'Change Detection';\n // Profiler is not available in Android browsers, nor in IE 9 without dev tools opened\n const isProfilerAvailable = window.console.profile != null;\n if (record && isProfilerAvailable) {\n window.console.profile(profileName);\n }\n const start = getDOM().performanceNow();\n let numTicks = 0;\n while (numTicks < 5 || (getDOM().performanceNow() - start) < 500) {\n this.appRef.tick();\n numTicks++;\n }\n const end = getDOM().performanceNow();\n if (record && isProfilerAvailable) {\n window.console.profileEnd(profileName);\n }\n const msPerTick = (end - start) / numTicks;\n window.console.log(`ran ${numTicks} change detection cycles`);\n window.console.log(`${msPerTick.toFixed(2)} ms per check`);\n\n return new ChangeDetectionPerfRecord(msPerTick, numTicks);\n }\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {ComponentRef} from '@angular/core';\nimport {exportNgVar} from '../../dom/util';\nimport {AngularProfiler} from './common_tools';\n\nconst PROFILER_GLOBAL_NAME = 'profiler';\n\n/**\n * Enabled Angular debug tools that are accessible via your browser's\n * developer console.\n *\n * Usage:\n *\n * 1. Open developer console (e.g. in Chrome Ctrl + Shift + j)\n * 1. Type `ng.` (usually the console will show auto-complete suggestion)\n * 1. Try the change detection profiler `ng.profiler.timeChangeDetection()`\n * then hit Enter.\n *\n * @publicApi\n */\nexport function enableDebugTools<T>(ref: ComponentRef<T>): ComponentRef<T> {\n exportNgVar(PROFILER_GLOBAL_NAME, new AngularProfiler(ref));\n return ref;\n}\n\n/**\n * Disables Angular tools.\n *\n * @publicApi\n */\nexport function disableDebugTools(): void {\n exportNgVar(PROFILER_GLOBAL_NAME, null);\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {APP_ID, Injectable, NgModule} from '@angular/core';\nimport {DOCUMENT} from '../dom/dom_tokens';\n\nexport function escapeHtml(text: string): string {\n const escapedText: {[k: string]: string} = {\n '&': '&a;',\n '\"': '&q;',\n '\\'': '&s;',\n '<': '&l;',\n '>': '&g;',\n };\n return text.replace(/[&\"'<>]/g, s => escapedText[s]);\n}\n\nexport function unescapeHtml(text: string): string {\n const unescapedText: {[k: string]: string} = {\n '&a;': '&',\n '&q;': '\"',\n '&s;': '\\'',\n '&l;': '<',\n '&g;': '>',\n };\n return text.replace(/&[^;]+;/g, s => unescapedText[s]);\n}\n\n/**\n * A type-safe key to use with `TransferState`.\n *\n * Example:\n *\n * ```\n * const COUNTER_KEY = makeStateKey<number>('counter');\n * let value = 10;\n *\n * transferState.set(COUNTER_KEY, value);\n * ```\n *\n * @publicApi\n */\nexport type StateKey<T> = string & {__not_a_string: never};\n\n/**\n * Create a `StateKey<T>` that can be used to store value of type T with `TransferState`.\n *\n * Example:\n *\n * ```\n * const COUNTER_KEY = makeStateKey<number>('counter');\n * let value = 10;\n *\n * transferState.set(COUNTER_KEY, value);\n * ```\n *\n * @publicApi\n */\nexport function makeStateKey<T = void>(key: string): StateKey<T> {\n return key as StateKey<T>;\n}\n\n/**\n * A key value store that is transferred from the application on the server side to the application\n * on the client side.\n *\n * `TransferState` will be available as an injectable token. To use it import\n * `ServerTransferStateModule` on the server and `BrowserTransferStateModule` on the client.\n *\n * The values in the store are serialized/deserialized using JSON.stringify/JSON.parse. So only\n * boolean, number, string, null and non-class objects will be serialized and deserialzied in a\n * non-lossy manner.\n *\n * @publicApi\n */\n@Injectable()\nexport class TransferState {\n private store: {[k: string]: {} | undefined} = {};\n private onSerializeCallbacks: {[k: string]: () => {} | undefined} = {};\n\n /** @internal */\n static init(initState: {}) {\n const transferState = new TransferState();\n transferState.store = initState;\n return transferState;\n }\n\n /**\n * Get the value corresponding to a key. Return `defaultValue` if key is not found.\n */\n get<T>(key: StateKey<T>, defaultValue: T): T {\n return this.store[key] !== undefined ? this.store[key] as T : defaultValue;\n }\n\n /**\n * Set the value corresponding to a key.\n */\n set<T>(key: StateKey<T>, value: T): void { this.store[key] = value; }\n\n /**\n * Remove a key from the store.\n */\n remove<T>(key: StateKey<T>): void { delete this.store[key]; }\n\n /**\n * Test whether a key exists in the store.\n */\n hasKey<T>(key: StateKey<T>) { return this.store.hasOwnProperty(key); }\n\n /**\n * Register a callback to provide the value for a key when `toJson` is called.\n */\n onSerialize<T>(key: StateKey<T>, callback: () => T): void {\n this.onSerializeCallbacks[key] = callback;\n }\n\n /**\n * Serialize the current state of the store to JSON.\n */\n toJson(): string {\n // Call the onSerialize callbacks and put those values into the store.\n for (const key in this.onSerializeCallbacks) {\n if (this.onSerializeCallbacks.hasOwnProperty(key)) {\n try {\n this.store[key] = this.onSerializeCallbacks[key]();\n } catch (e) {\n console.warn('Exception in onSerialize callback: ', e);\n }\n }\n }\n return JSON.stringify(this.store);\n }\n}\n\nexport function initTransferState(doc: Document, appId: string) {\n // Locate the script tag with the JSON data transferred from the server.\n // The id of the script tag is set to the Angular appId + 'state'.\n const script = doc.getElementById(appId + '-state');\n let initialState = {};\n if (script && script.textContent) {\n try {\n initialState = JSON.parse(unescapeHtml(script.textContent));\n } catch (e) {\n console.warn('Exception while restoring TransferState for app ' + appId, e);\n }\n }\n return TransferState.init(initialState);\n}\n\n/**\n * NgModule to install on the client side while using the `TransferState` to transfer state from\n * server to client.\n *\n * @publicApi\n */\n@NgModule({\n providers: [{provide: TransferState, useFactory: initTransferState, deps: [DOCUMENT, APP_ID]}],\n})\nexport class BrowserTransferStateModule {\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {DebugElement, Predicate, Type} from '@angular/core';\nimport {getDOM} from '../../dom/dom_adapter';\n\n\n\n/**\n * Predicates for use with {@link DebugElement}'s query functions.\n *\n * @publicApi\n */\nexport class By {\n /**\n * Match all elements.\n *\n * @usageNotes\n * ### Example\n *\n * {@example platform-browser/dom/debug/ts/by/by.ts region='by_all'}\n */\n static all(): Predicate<DebugElement> { return (debugElement) => true; }\n\n /**\n * Match elements by the given CSS selector.\n *\n * @usageNotes\n * ### Example\n *\n * {@example platform-browser/dom/debug/ts/by/by.ts region='by_css'}\n */\n static css(selector: string): Predicate<DebugElement> {\n return (debugElement) => {\n return debugElement.nativeElement != null ?\n getDOM().elementMatches(debugElement.nativeElement, selector) :\n false;\n };\n }\n\n /**\n * Match elements that have the given directive present.\n *\n * @usageNotes\n * ### Example\n *\n * {@example platform-browser/dom/debug/ts/by/by.ts region='by_directive'}\n */\n static directive(type: Type<any>): Predicate<DebugElement> {\n return (debugElement) => debugElement.providerTokens !.indexOf(type) !== -1;\n }\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * @module\n * @description\n * Entry point for all public APIs of the common package.\n */\n\nimport {Version} from '@angular/core';\n\n/**\n * @publicApi\n */\nexport const VERSION = new Version('7.2.7');\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n\nexport {BROWSER_MODULE_PROVIDERS as ɵangular_packages_platform_browser_platform_browser_c,_document as ɵangular_packages_platform_browser_platform_browser_b,errorHandler as ɵangular_packages_platform_browser_platform_browser_a} from './src/browser';\nexport {GenericBrowserDomAdapter as ɵangular_packages_platform_browser_platform_browser_k} from './src/browser/generic_browser_adapter';\nexport {createMeta as ɵangular_packages_platform_browser_platform_browser_d} from './src/browser/meta';\nexport {SERVER_TRANSITION_PROVIDERS as ɵangular_packages_platform_browser_platform_browser_i,appInitializerFactory as ɵangular_packages_platform_browser_platform_browser_h} from './src/browser/server-transition';\nexport {createTitle as ɵangular_packages_platform_browser_platform_browser_e} from './src/browser/title';\nexport {initTransferState as ɵangular_packages_platform_browser_platform_browser_f} from './src/browser/transfer_state';\nexport {_createNgProbe as ɵangular_packages_platform_browser_platform_browser_j} from './src/dom/debug/ng_probe';\nexport {EventManagerPlugin as ɵangular_packages_platform_browser_platform_browser_g} from './src/dom/events/event_manager';"],"names":["global","parseCookieValue","DOCUMENT","commonDOCUMENT","core.ApplicationRef","core.NgZone","core.getDebugNode","core.APP_INITIALIZER","core.NgProbeToken","core.Optional","Console","_sanitizeHtml","_sanitizeStyle","_sanitizeUrl","PLATFORM_BROWSER_ID","APP_ROOT","window"],"mappings":";;;;;;;;;;;;;;;;;;;;;IAUI,IAAI,sBAAe,IAAI,EAAE;;;;AAE7B,SAAgB,MAAM;IACpB,OAAO,IAAI,CAAC;CACb;;;;;AAMD,SAAgB,iBAAiB,CAAC,OAAmB;IACnD,IAAI,CAAC,IAAI,EAAE;QACT,IAAI,GAAG,OAAO,CAAC;KAChB;CACF;;;;;;;;;AASD,MAAsB,UAAU;IAAhC;QACS,uBAAkB,sBAAc,IAAI,EAAE,CAAC;KAkI/C;;;;;;IAnHC,IAAI,aAAa,KAA8B,OAAO,IAAI,CAAC,cAAc,CAAC,EAAE;;;;;IAC5E,IAAI,aAAa,CAAC,KAA8B,IAAI,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC,EAAE;CAkHnF;;;;;;;;;;;;;AClJD,MAAsB,wBAAyB,SAAQ,UAAU;IAG/D;QACE,KAAK,EAAE,CAAC;QAHF,qBAAgB,GAAgB,IAAI,CAAC;QACrC,mBAAc,GAAgB,IAAI,CAAC;QAGzC,IAAI;;kBACI,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,QAAQ,CAAC;YACnD,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC,IAAI,IAAI,EAAE;gBACnD,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;aAC5B;iBAAM;;sBACC,WAAW,GAAG,CAAC,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC;gBAEhD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBAC3C,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,IAAI,IAAI,EAAE;wBACpE,IAAI,CAAC,gBAAgB,GAAG,GAAG,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,GAAG,CAAC;wBACjE,MAAM;qBACP;iBACF;aACF;;kBAEK,kBAAkB,GAA4B;gBAClD,gBAAgB,EAAE,qBAAqB;gBACvC,aAAa,EAAE,eAAe;gBAC9B,WAAW,EAAE,+BAA+B;gBAC5C,UAAU,EAAE,eAAe;aAC5B;YAED,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,OAAO,CAAC,CAAC,GAAW;gBAClD,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,IAAI,EAAE;oBACvC,IAAI,CAAC,cAAc,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;iBAC/C;aACF,CAAC,CAAC;SACJ;QAAC,WAAM;YACN,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;YAC7B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;SAC5B;KACF;;;;;IAED,mBAAmB,CAAC,EAAe,IAAY,OAAO,oBAAM,EAAE,IAAE,mBAAmB,EAAE,CAAC,EAAE;;;;;;;IACxF,iBAAiB,CAAC,EAAqB,EAAE,OAAe,EAAE,IAAY;QACpE,EAAE,CAAC,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,GAAG,IAAI,CAAC;KAC5D;;;;IACD,iBAAiB,KAAc,OAAO,IAAI,CAAC,EAAE;;;;IAC7C,uBAAuB;QACrB,OAAO,OAAM,oBAAM,QAAQ,CAAC,IAAI,IAAE,gBAAgB,KAAK,UAAU,CAAC;KACnE;;;;IACD,kBAAkB,KAAa,OAAO,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC,EAAE;;;;IAC3F,gBAAgB,KAAa,OAAO,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC,EAAE;;;;IACrF,iBAAiB;QACf,OAAO,IAAI,CAAC,gBAAgB,IAAI,IAAI,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC;KACrE;CACF;;;;;;;MCtDK,cAAc,GAAG;IACrB,OAAO,EAAE,WAAW;IACpB,WAAW,EAAE,WAAW;IACxB,UAAU,EAAE,UAAU;IACtB,UAAU,EAAE,UAAU;CACvB;;MAEK,uBAAuB,GAAG,CAAC;;;MAG3B,OAAO,GAA0B;;;IAGrC,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE,KAAK;IACX,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,QAAQ;IAChB,KAAK,EAAE,QAAQ;IACf,KAAK,EAAE,QAAQ;IACf,MAAM,EAAE,WAAW;IACnB,OAAO,EAAE,YAAY;IACrB,IAAI,EAAE,SAAS;IACf,MAAM,EAAE,WAAW;IACnB,MAAM,EAAE,aAAa;IACrB,QAAQ,EAAE,YAAY;IACtB,KAAK,EAAE,IAAI;CACZ;;;;;MAKK,mBAAmB,GAAG;IAC1B,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,GAAG,EAAE,GAAG;IACR,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,SAAS;CAClB;;IAEG,YAAyC;AAE7C,IAAIA,OAAM,CAAC,MAAM,CAAC,EAAE;IAClB,YAAY,GAAGA,OAAM,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,QAAQ,IAAI,UAAS,IAAI;QAC/D,OAAO,CAAC,EAAE,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;KACpD,CAAC;CACH;;;;;;;;AASD,MAAa,iBAAkB,SAAQ,wBAAwB;;;;;IAC7D,KAAK,CAAC,YAAoB,IAAI,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC,EAAE;;;;IACzE,OAAO,WAAW,KAAK,iBAAiB,CAAC,IAAI,iBAAiB,EAAE,CAAC,CAAC,EAAE;;;;;;IACpE,WAAW,CAAC,OAAa,EAAE,IAAY,IAAa,OAAO,IAAI,IAAI,OAAO,CAAC,EAAE;;;;;;;IAC7E,WAAW,CAAC,EAAQ,EAAE,IAAY,EAAE,KAAU,IAAI,oBAAM,EAAE,IAAE,IAAI,CAAC,GAAG,KAAK,CAAC,EAAE;;;;;;IAC5E,WAAW,CAAC,EAAQ,EAAE,IAAY,IAAS,OAAO,oBAAM,EAAE,IAAE,IAAI,CAAC,CAAC,EAAE;;;;;;;IACpE,MAAM,CAAC,EAAQ,EAAE,UAAkB,EAAE,IAAW,IAAS,oBAAM,EAAE,IAAE,UAAU,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE;;;;;;IAG1F,QAAQ,CAAC,KAAa;QACpB,IAAI,MAAM,CAAC,OAAO,EAAE;YAClB,IAAI,OAAO,CAAC,KAAK,EAAE;gBACjB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;aACtB;iBAAM;gBACL,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;aACpB;SACF;KACF;;;;;IAED,GAAG,CAAC,KAAa;QACf,IAAI,MAAM,CAAC,OAAO,EAAE;YAClB,MAAM,CAAC,OAAO,CAAC,GAAG,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;SACjD;KACF;;;;;IAED,QAAQ,CAAC,KAAa;QACpB,IAAI,MAAM,CAAC,OAAO,EAAE;YAClB,MAAM,CAAC,OAAO,CAAC,KAAK,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;SACrD;KACF;;;;IAED,WAAW;QACT,IAAI,MAAM,CAAC,OAAO,EAAE;YAClB,MAAM,CAAC,OAAO,CAAC,QAAQ,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;SACtD;KACF;;;;IAED,IAAI,aAAa,KAAU,OAAO,cAAc,CAAC,EAAE;;;;;;IAEnD,QAAQ,CAAC,KAAU,EAAE,KAAU,IAAa,OAAO,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,EAAE;;;;;;IACrF,aAAa,CAAC,EAAe,EAAE,QAAgB,IAAS,OAAO,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,EAAE;;;;;;IAC5F,gBAAgB,CAAC,EAAO,EAAE,QAAgB,IAAW,OAAO,EAAE,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,EAAE;;;;;;;IAC5F,EAAE,CAAC,EAAQ,EAAE,GAAQ,EAAE,QAAa,IAAI,EAAE,CAAC,gBAAgB,CAAC,GAAG,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE;;;;;;;IACpF,WAAW,CAAC,EAAQ,EAAE,GAAQ,EAAE,QAAa;QAC3C,EAAE,CAAC,gBAAgB,CAAC,GAAG,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;;;QAG1C,OAAO,QAAQ,EAAE,CAAC,mBAAmB,CAAC,GAAG,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;KAChE;;;;;;IACD,aAAa,CAAC,EAAQ,EAAE,GAAQ,IAAI,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,EAAE;;;;;IAC5D,gBAAgB,CAAC,SAAiB;;cAC1B,GAAG,GAAe,IAAI,CAAC,kBAAkB,EAAE,CAAC,WAAW,CAAC,YAAY,CAAC;QAC3E,GAAG,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QACrC,OAAO,GAAG,CAAC;KACZ;;;;;IACD,WAAW,CAAC,SAAc;;cAClB,GAAG,GAAU,IAAI,CAAC,kBAAkB,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC;QACjE,GAAG,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QACrC,OAAO,GAAG,CAAC;KACZ;;;;;IACD,cAAc,CAAC,GAAU;QACvB,GAAG,CAAC,cAAc,EAAE,CAAC;QACrB,GAAG,CAAC,WAAW,GAAG,KAAK,CAAC;KACzB;;;;;IACD,WAAW,CAAC,GAAU;QACpB,OAAO,GAAG,CAAC,gBAAgB,IAAI,GAAG,CAAC,WAAW,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC;KAC5E;;;;;IACD,YAAY,CAAC,EAAe,IAAY,OAAO,EAAE,CAAC,SAAS,CAAC,EAAE;;;;;IAC9D,kBAAkB,CAAC,EAAQ;QACzB,OAAO,SAAS,IAAI,EAAE,IAAI,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC,GAAG,oBAAM,EAAE,IAAE,OAAO,GAAG,IAAI,CAAC;KACjF;;;;;IACD,YAAY,CAAC,EAAe,IAAY,OAAO,EAAE,CAAC,SAAS,CAAC,EAAE;;;;;IAC9D,QAAQ,CAAC,IAAU,IAAY,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE;;;;;IACtD,SAAS,CAAC,IAAU,IAAiB,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE;;;;;IAC7D,IAAI,CAAC,IAAsB,IAAY,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE;;;;;IAC1D,OAAO,CAAC,IAAU;QAChB,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE;YACrC,OAAO,oBAAM,IAAI,IAAE,OAAO,CAAC;SAC5B;aAAM;YACL,OAAO,IAAI,CAAC;SACb;KACF;;;;;IACD,UAAU,CAAC,EAAQ,IAAe,OAAO,EAAE,CAAC,UAAU,CAAC,EAAE;;;;;IACzD,WAAW,CAAC,EAAQ,IAAe,OAAO,EAAE,CAAC,WAAW,CAAC,EAAE;;;;;IAC3D,aAAa,CAAC,EAAQ,IAAe,OAAO,EAAE,CAAC,UAAU,CAAC,EAAE;;;;;IAC5D,UAAU,CAAC,EAAO,IAAY,OAAO,EAAE,CAAC,UAAU,CAAC,EAAE;;;;;IACrD,gBAAgB,CAAC,EAAQ;;cACjB,UAAU,GAAG,EAAE,CAAC,UAAU;;cAC1B,GAAG,GAAG,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC;QACxC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAC1C,GAAG,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;SACxB;QACD,OAAO,GAAG,CAAC;KACZ;;;;;IACD,UAAU,CAAC,EAAQ;QACjB,OAAO,EAAE,CAAC,UAAU,EAAE;YACpB,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC;SAC/B;KACF;;;;;;IACD,WAAW,CAAC,EAAQ,EAAE,IAAU,IAAI,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,EAAE;;;;;;IAC3D,WAAW,CAAC,EAAQ,EAAE,IAAU,IAAI,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,EAAE;;;;;;;IAC3D,YAAY,CAAC,EAAQ,EAAE,QAAc,EAAE,QAAc,IAAI,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,EAAE;;;;;IAC/F,MAAM,CAAC,IAAU;QACf,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;SACnC;QACD,OAAO,IAAI,CAAC;KACb;;;;;;;IACD,YAAY,CAAC,MAAY,EAAE,GAAS,EAAE,IAAU,IAAI,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,EAAE;;;;;;;IACrF,eAAe,CAAC,MAAY,EAAE,GAAS,EAAE,KAAa;QACpD,KAAK,CAAC,OAAO,CAAC,CAAC,CAAM,KAAK,MAAM,CAAC,YAAY,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;KACxD;;;;;;;IACD,WAAW,CAAC,MAAY,EAAE,GAAS,EAAE,IAAS,IAAI,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC,EAAE;;;;;;IAC/F,YAAY,CAAC,EAAW,EAAE,KAAa,IAAI,EAAE,CAAC,SAAS,GAAG,KAAK,CAAC,EAAE;;;;;IAClE,OAAO,CAAC,EAAQ,IAAiB,OAAO,EAAE,CAAC,WAAW,CAAC,EAAE;;;;;;IACzD,OAAO,CAAC,EAAQ,EAAE,KAAa,IAAI,EAAE,CAAC,WAAW,GAAG,KAAK,CAAC,EAAE;;;;;IAC5D,QAAQ,CAAC,EAAO,IAAY,OAAO,EAAE,CAAC,KAAK,CAAC,EAAE;;;;;;IAC9C,QAAQ,CAAC,EAAO,EAAE,KAAa,IAAI,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC,EAAE;;;;;IACtD,UAAU,CAAC,EAAO,IAAa,OAAO,EAAE,CAAC,OAAO,CAAC,EAAE;;;;;;IACnD,UAAU,CAAC,EAAO,EAAE,KAAc,IAAI,EAAE,CAAC,OAAO,GAAG,KAAK,CAAC,EAAE;;;;;IAC3D,aAAa,CAAC,IAAY,IAAa,OAAO,IAAI,CAAC,kBAAkB,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,EAAE;;;;;IAC9F,cAAc,CAAC,IAAS;;cAChB,CAAC,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC,aAAa,CAAC,UAAU,CAAC;QAC7D,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC;QACnB,OAAO,CAAC,CAAC;KACV;;;;;;IACD,aAAa,CAAC,OAAe,EAAE,GAAc;QAC3C,GAAG,GAAG,GAAG,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACvC,OAAO,GAAG,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;KACnC;;;;;;;IACD,eAAe,CAAC,EAAU,EAAE,OAAe,EAAE,GAAc;QACzD,GAAG,GAAG,GAAG,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACvC,OAAO,GAAG,CAAC,eAAe,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;KACzC;;;;;;IACD,cAAc,CAAC,IAAY,EAAE,GAAc;QACzC,GAAG,GAAG,GAAG,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACvC,OAAO,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;KACjC;;;;;;;IACD,eAAe,CAAC,QAAgB,EAAE,SAAiB,EAAE,GAAc;QACjE,GAAG,GAAG,GAAG,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;;cACjC,EAAE,sBAAsB,GAAG,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAA;QACzD,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QACrC,OAAO,EAAE,CAAC;KACX;;;;;;IACD,kBAAkB,CAAC,GAAW,EAAE,GAAc;QAC5C,GAAG,GAAG,GAAG,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;;cACjC,KAAK,sBAAqB,GAAG,CAAC,aAAa,CAAC,OAAO,CAAC,EAAA;QAC1D,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;QACvD,OAAO,KAAK,CAAC;KACd;;;;;IACD,gBAAgB,CAAC,EAAe,IAAsB,OAAO,oBAAM,EAAE,IAAE,gBAAgB,EAAE,CAAC,EAAE;;;;;IAC5F,aAAa,CAAC,EAAe,IAAsB,OAAO,oBAAM,EAAE,IAAE,UAAU,CAAC,EAAE;;;;;IACjF,OAAO,CAAC,EAAe,IAAiB,OAAO,oBAAM,EAAE,IAAE,IAAI,CAAC,EAAE;;;;;IAChE,KAAK,CAAC,IAAU,IAAU,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE;;;;;;IACxD,sBAAsB,CAAC,OAAY,EAAE,IAAY;QAC/C,OAAO,OAAO,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;KAC7C;;;;;;IACD,oBAAoB,CAAC,OAAY,EAAE,IAAY;QAC7C,OAAO,OAAO,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;KAC3C;;;;;IACD,SAAS,CAAC,OAAY,IAAW,OAAO,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE;;;;;;IAC3F,QAAQ,CAAC,OAAY,EAAE,SAAiB,IAAI,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE;;;;;;IAC/E,WAAW,CAAC,OAAY,EAAE,SAAiB,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE;;;;;;IACrF,QAAQ,CAAC,OAAY,EAAE,SAAiB;QACtC,OAAO,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;KAC9C;;;;;;;IACD,QAAQ,CAAC,OAAY,EAAE,SAAiB,EAAE,UAAkB;QAC1D,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,UAAU,CAAC;KACvC;;;;;;IACD,WAAW,CAAC,OAAY,EAAE,SAAiB;;;QAGzC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;KAC/B;;;;;;IACD,QAAQ,CAAC,OAAY,EAAE,SAAiB,IAAY,OAAO,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE;;;;;;;IACtF,QAAQ,CAAC,OAAY,EAAE,SAAiB,EAAE,UAAwB;;cAC1D,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC,IAAI,EAAE;QACrD,OAAO,UAAU,GAAG,KAAK,IAAI,UAAU,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;KAC5D;;;;;IACD,OAAO,CAAC,OAAY,IAAY,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE;;;;;IACzD,YAAY,CAAC,OAAY;;cACjB,GAAG,GAAG,IAAI,GAAG,EAAkB;;cAC/B,OAAO,GAAG,OAAO,CAAC,UAAU;QAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;;kBACjC,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;YAC9B,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;SACpC;QACD,OAAO,GAAG,CAAC;KACZ;;;;;;IACD,YAAY,CAAC,OAAgB,EAAE,SAAiB;QAC9C,OAAO,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;KACxC;;;;;;;IACD,cAAc,CAAC,OAAgB,EAAE,EAAU,EAAE,SAAiB;QAC5D,OAAO,OAAO,CAAC,cAAc,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;KAC9C;;;;;;IACD,YAAY,CAAC,OAAgB,EAAE,SAAiB;QAC9C,OAAO,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;KACxC;;;;;;;IACD,cAAc,CAAC,OAAgB,EAAE,EAAU,EAAE,IAAY;QACvD,OAAO,OAAO,CAAC,cAAc,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;KACzC;;;;;;;IACD,YAAY,CAAC,OAAgB,EAAE,IAAY,EAAE,KAAa,IAAI,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE;;;;;;;;IAClG,cAAc,CAAC,OAAgB,EAAE,EAAU,EAAE,IAAY,EAAE,KAAa;QACtE,OAAO,CAAC,cAAc,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;KACzC;;;;;;IACD,eAAe,CAAC,OAAgB,EAAE,SAAiB,IAAI,OAAO,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,EAAE;;;;;;;IAC5F,iBAAiB,CAAC,OAAgB,EAAE,EAAU,EAAE,IAAY;QAC1D,OAAO,CAAC,iBAAiB,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;KACrC;;;;;IACD,iBAAiB,CAAC,EAAQ,IAAS,OAAO,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE;;;;IAC/F,kBAAkB;QAChB,OAAO,QAAQ,CAAC,cAAc,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC;KAChE;;;;IACD,kBAAkB,KAAe,OAAO,QAAQ,CAAC,EAAE;;;;;IACnD,qBAAqB,CAAC,EAAW;QAC/B,IAAI;YACF,OAAO,EAAE,CAAC,qBAAqB,EAAE,CAAC;SACnC;QAAC,WAAM;YACN,OAAO,EAAC,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAC,CAAC;SACpE;KACF;;;;;IACD,QAAQ,CAAC,GAAa,IAAY,OAAO,GAAG,CAAC,KAAK,CAAC,EAAE;;;;;;IACrD,QAAQ,CAAC,GAAa,EAAE,QAAgB,IAAI,GAAG,CAAC,KAAK,GAAG,QAAQ,IAAI,EAAE,CAAC,EAAE;;;;;;IACzE,cAAc,CAAC,CAAM,EAAE,QAAgB;QACrC,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE;YACzB,OAAO,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;gBACnC,CAAC,CAAC,iBAAiB,IAAI,CAAC,CAAC,iBAAiB,CAAC,QAAQ,CAAC;gBACpD,CAAC,CAAC,qBAAqB,IAAI,CAAC,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC;SAClE;QAED,OAAO,KAAK,CAAC;KACd;;;;;IACD,iBAAiB,CAAC,EAAQ;QACxB,OAAO,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,KAAK,UAAU,CAAC;KAC7D;;;;;IACD,UAAU,CAAC,IAAU,IAAa,OAAO,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,SAAS,CAAC,EAAE;;;;;IAC5E,aAAa,CAAC,IAAU,IAAa,OAAO,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,YAAY,CAAC,EAAE;;;;;IAClF,aAAa,CAAC,IAAU,IAAa,OAAO,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,YAAY,CAAC,EAAE;;;;;IAClF,aAAa,CAAC,IAAS;QACrB,OAAO,IAAI,CAAC,UAAU,IAAI,IAAI,IAAI,IAAI,YAAY,WAAW,CAAC;KAC/D;;;;;IACD,YAAY,CAAC,IAAS,IAAa,OAAO,IAAI,YAAY,gBAAgB,CAAC,EAAE;;;;;IAC7E,aAAa,CAAC,IAAU,IAAS,OAAO,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE;;;;;IAClG,SAAS,CAAC,IAAU,IAAS,OAAO,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE;;;;;IAC/D,OAAO,CAAC,EAAW,IAAY,0BAAO,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,EAAE;;;;;IAElE,WAAW,CAAC,KAAU;;YAChB,GAAG,GAAG,KAAK,CAAC,GAAG;QACnB,IAAI,GAAG,IAAI,IAAI,EAAE;YACf,GAAG,GAAG,KAAK,CAAC,aAAa,CAAC;;;;YAI1B,IAAI,GAAG,IAAI,IAAI,EAAE;gBACf,OAAO,cAAc,CAAC;aACvB;YACD,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;gBACxB,GAAG,GAAG,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;gBAC1D,IAAI,KAAK,CAAC,QAAQ,KAAK,uBAAuB,IAAI,mBAAmB,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;;;;oBAIzF,GAAG,GAAG,oBAAC,mBAAmB,IAAS,GAAG,CAAC,CAAC;iBACzC;aACF;SACF;QAED,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC;KAC5B;;;;;;IACD,oBAAoB,CAAC,GAAa,EAAE,MAAc;QAChD,IAAI,MAAM,KAAK,QAAQ,EAAE;YACvB,OAAO,MAAM,CAAC;SACf;QACD,IAAI,MAAM,KAAK,UAAU,EAAE;YACzB,OAAO,GAAG,CAAC;SACZ;QACD,IAAI,MAAM,KAAK,MAAM,EAAE;YACrB,OAAO,GAAG,CAAC,IAAI,CAAC;SACjB;QACD,OAAO,IAAI,CAAC;KACb;;;;IACD,UAAU,KAAc,OAAO,MAAM,CAAC,OAAO,CAAC,EAAE;;;;IAChD,WAAW,KAAe,OAAO,MAAM,CAAC,QAAQ,CAAC,EAAE;;;;;IACnD,WAAW,CAAC,GAAa;;cACjB,IAAI,GAAG,kBAAkB,EAAE;QACjC,OAAO,IAAI,IAAI,IAAI,GAAG,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;KACjD;;;;IACD,gBAAgB,KAAW,WAAW,GAAG,IAAI,CAAC,EAAE;;;;IAChD,YAAY,KAAa,OAAO,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE;;;;;;;IAC7D,OAAO,CAAC,OAAgB,EAAE,IAAY,EAAE,KAAa;QACnD,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,EAAE,KAAK,CAAC,CAAC;KACnD;;;;;;IACD,OAAO,CAAC,OAAgB,EAAE,IAAY;QACpC,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC,CAAC;KACnD;;;;;IACD,gBAAgB,CAAC,OAAY,IAAS,OAAO,gBAAgB,CAAC,OAAO,CAAC,CAAC,EAAE;;;;;IAEzE,oBAAoB;QAClB,OAAO,OAAM,oBAAM,OAAO,IAAE,SAAS,CAAC,SAAS,CAAC,KAAK,UAAU,CAAC;KACjE;;;;IACD,cAAc;;;QAGZ,OAAO,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,WAAW,CAAC,GAAG,GAAG,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE;YACxB,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;KAC5E;;;;IAED,eAAe,KAAc,OAAO,IAAI,CAAC,EAAE;;;;;IAE3C,SAAS,CAAC,IAAY,IAAiB,OAAOC,iBAAgB,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,EAAE;;;;;;IAExF,SAAS,CAAC,IAAY,EAAE,KAAa;;;QAGnC,QAAQ,CAAC,MAAM,GAAG,kBAAkB,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;KAC9E;CACF;;IAEG,WAAW,GAAqB,IAAI;;;;AACxC,SAAS,kBAAkB;IACzB,IAAI,CAAC,WAAW,EAAE;QAChB,WAAW,sBAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;QAC/C,IAAI,CAAC,WAAW,EAAE;YAChB,OAAO,IAAI,CAAC;SACb;KACF;IACD,OAAO,WAAW,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;CACzC;;;IAGG,cAAmB;;;;;AACvB,SAAS,YAAY,CAAC,GAAQ;IAC5B,IAAI,CAAC,cAAc,EAAE;QACnB,cAAc,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;KAC9C;IACD,cAAc,CAAC,YAAY,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACzC,OAAO,CAAC,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,cAAc,CAAC,QAAQ;QACvB,GAAG,GAAG,cAAc,CAAC,QAAQ,CAAC;CACpF;;;;;;;;;;;;;;;;AC7YD,MAAaC,UAAQ,GAAGC;;;;;;;;;;;;;;;;ACbxB,SAAgB,aAAa;IAC3B,OAAO,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC;CACnC;;;;;;;;;;;ACcD,MAAa,uBAAwB,SAAQ,gBAAgB;;;;IAM3D,YAAsC,IAAS;QAC7C,KAAK,EAAE,CAAC;QAD4B,SAAI,GAAJ,IAAI,CAAK;QAE7C,IAAI,CAAC,KAAK,EAAE,CAAC;KACd;;;;;;IAID,KAAK;QACH,oBAAC,IAAI,IAAyB,QAAQ,GAAG,MAAM,EAAE,CAAC,WAAW,EAAE,CAAC;QAChE,IAAI,CAAC,QAAQ,GAAG,MAAM,EAAE,CAAC,UAAU,EAAE,CAAC;KACvC;;;;IAED,kBAAkB,KAAa,0BAAO,MAAM,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;;;;;IAE1E,UAAU,CAAC,EAA0B;QACnC,MAAM,EAAE,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,gBAAgB,CAAC,UAAU,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;KAC5F;;;;;IAED,YAAY,CAAC,EAA0B;QACrC,MAAM,EAAE,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,gBAAgB,CAAC,YAAY,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;KAC9F;;;;IAED,IAAI,QAAQ,KAAa,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;;;;IACzD,IAAI,MAAM,KAAa,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;;;;IACrD,IAAI,IAAI,KAAa,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;;;;;IACjD,IAAI,QAAQ,CAAC,OAAe,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG,OAAO,CAAC,EAAE;;;;;;;IAEnE,SAAS,CAAC,KAAU,EAAE,KAAa,EAAE,GAAW;QAC9C,IAAI,aAAa,EAAE,EAAE;YACnB,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;SAC5C;aAAM;YACL,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,GAAG,CAAC;SAC1B;KACF;;;;;;;IAED,YAAY,CAAC,KAAU,EAAE,KAAa,EAAE,GAAW;QACjD,IAAI,aAAa,EAAE,EAAE;YACnB,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;SAC/C;aAAM;YACL,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,GAAG,CAAC;SAC1B;KACF;;;;IAED,OAAO,KAAW,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,EAAE;;;;IAE5C,IAAI,KAAW,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,EAAE;;;YApDvC,UAAU;;;;4CAOI,MAAM,SAACD,UAAQ;;;;;;;;;;;;ACb9B,MAAa,aAAa,GAAG,IAAI,cAAc,CAAC,eAAe,CAAC;;;;;;;AAEhE,SAAgB,qBAAqB,CAAC,YAAoB,EAAE,QAAa,EAAE,QAAkB;IAC3F,OAAO;;;QAGL,QAAQ,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC;;kBAC7C,GAAG,GAAG,MAAM,EAAE;;kBACd,MAAM,GACR,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,QAAQ,EAAE,sBAAsB,CAAC,CAAC;YACvF,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,GAAG,CAAC,YAAY,CAAC,EAAE,EAAE,eAAe,CAAC,KAAK,YAAY,CAAC;iBACtE,OAAO,CAAC,EAAE,IAAI,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;SACpC,CAAC,CAAC;KACJ,CAAC;CACH;;AAED,MAAa,2BAA2B,GAAqB;IAC3D;QACE,OAAO,EAAE,eAAe;QACxB,UAAU,EAAE,qBAAqB;QACjC,IAAI,EAAE,CAAC,aAAa,EAAEA,UAAQ,EAAE,QAAQ,CAAC;QACzC,KAAK,EAAE,IAAI;KACZ;CACF;;;;;;MC5BY,qBAAqB;;;;IAChC,OAAO,IAAI,KAAK,oBAAoB,CAAC,IAAI,qBAAqB,EAAE,CAAC,CAAC,EAAE;;;;;IAEpE,WAAW,CAAC,QAA6B;QACvCF,OAAM,CAAC,uBAAuB,CAAC,GAAG,CAAC,IAAS,EAAE,kBAA2B,IAAI;;kBACrE,WAAW,GAAG,QAAQ,CAAC,qBAAqB,CAAC,IAAI,EAAE,eAAe,CAAC;YACzE,IAAI,WAAW,IAAI,IAAI,EAAE;gBACvB,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;aAC5D;YACD,OAAO,WAAW,CAAC;SACpB,CAAC;QAEFA,OAAM,CAAC,4BAA4B,CAAC,GAAG,MAAM,QAAQ,CAAC,mBAAmB,EAAE,CAAC;QAE5EA,OAAM,CAAC,2BAA2B,CAAC,GAAG,MAAM,QAAQ,CAAC,kBAAkB,EAAE,CAAC;;cAEpE,aAAa,GAAG,CAAC,QAAa;;kBAC5B,aAAa,GAAGA,OAAM,CAAC,4BAA4B,CAAC,EAAE;;gBACxD,KAAK,GAAG,aAAa,CAAC,MAAM;;gBAC5B,OAAO,GAAG,KAAK;;kBACb,SAAS,GAAG,UAAS,QAAa;gBACtC,OAAO,GAAG,OAAO,IAAI,QAAQ,CAAC;gBAC9B,KAAK,EAAE,CAAC;gBACR,IAAI,KAAK,IAAI,CAAC,EAAE;oBACd,QAAQ,CAAC,OAAO,CAAC,CAAC;iBACnB;aACF;YACD,aAAa,CAAC,OAAO,CAAC,UAAS,WAAgB;gBAC7C,WAAW,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;aACnC,CAAC,CAAC;SACJ;QAED,IAAI,CAACA,OAAM,CAAC,sBAAsB,CAAC,EAAE;YACnCA,OAAM,CAAC,sBAAsB,CAAC,GAAG,EAAE,CAAC;SACrC;QACDA,OAAM,CAAC,sBAAsB,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;KACpD;;;;;;;IAED,qBAAqB,CAAC,QAA6B,EAAE,IAAS,EAAE,eAAwB;QAEtF,IAAI,IAAI,IAAI,IAAI,EAAE;YAChB,OAAO,IAAI,CAAC;SACb;;cACK,CAAC,GAAG,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC;QACvC,IAAI,CAAC,IAAI,IAAI,EAAE;YACb,OAAO,CAAC,CAAC;SACV;aAAM,IAAI,CAAC,eAAe,EAAE;YAC3B,OAAO,IAAI,CAAC;SACb;QACD,IAAI,MAAM,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE;YAC/B,OAAO,IAAI,CAAC,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;SAC3E;QACD,OAAO,IAAI,CAAC,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;KACjF;CACF;;;;;;;;;;;;;;ACrCD,SAAgB,WAAW,CAAC,IAAY,EAAE,KAAU;IAClD,IAAI,OAAO,QAAQ,KAAK,WAAW,IAAI,CAAC,QAAQ,EAAE;;;;;;cAK1C,EAAE,GAAGA,OAAM,CAAC,IAAI,CAAC,GAAG,oBAACA,OAAM,CAAC,IAAI,CAAC,OAAwC,EAAE;QACjF,EAAE,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;KAClB;CACF;;;;;;;MC3BK,WAAW,GAAG;IAClB,gBAAgB,EAAEI,cAAmB;IACrC,QAAQ,EAAEC,MAAW;CACtB;;MAEK,mBAAmB,GAAG,OAAO;;MAC7B,uBAAuB,GAAG,YAAY;;;;;;;;AAO5C,SAAgB,oBAAoB,CAAC,OAAY;IAC/C,OAAOC,YAAiB,CAAC,OAAO,CAAC,CAAC;CACnC;;;;;AAED,SAAgB,cAAc,CAAC,UAA+B;IAC5D,WAAW,CAAC,mBAAmB,EAAE,oBAAoB,CAAC,CAAC;IACvD,WAAW,CAAC,uBAAuB,oBAAM,WAAW,EAAK,mBAAmB,CAAC,UAAU,IAAI,EAAE,CAAC,EAAE,CAAC;IACjG,OAAO,MAAM,oBAAoB,CAAC;CACnC;;;;;AAED,SAAS,mBAAmB,CAAC,MAA2B;IACtD,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,IAAS,EAAE,CAAM,MAAM,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;CACjF;;;;;AAKD,MAAa,uBAAuB,GAAoB;IACtD;QACE,OAAO,EAAEC,eAAoB;QAC7B,UAAU,EAAE,cAAc;QAC1B,IAAI,EAAE;YACJ,CAACC,YAAiB,EAAE,IAAIC,QAAa,EAAE,CAAC;SACzC;QACD,KAAK,EAAE,IAAI;KACZ;CACF;;;;;;;;;;;;ACjCD,MAAa,qBAAqB,GAC9B,IAAI,cAAc,CAAuB,qBAAqB,CAAC;;;;;;;AASnE,MAAa,YAAY;;;;;;IAOvB,YAA2C,OAA6B,EAAU,KAAa;QAAb,UAAK,GAAL,KAAK,CAAQ;QALvF,uBAAkB,GAAG,IAAI,GAAG,EAA8B,CAAC;QAMjE,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;QACvC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,CAAC;KAC3C;;;;;;;;;;IAWD,gBAAgB,CAAC,OAAoB,EAAE,SAAiB,EAAE,OAAiB;;cACnE,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC;QAC7C,OAAO,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;KAC7D;;;;;;;;;;IAWD,sBAAsB,CAAC,MAAc,EAAE,SAAiB,EAAE,OAAiB;;cACnE,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC;QAC7C,OAAO,MAAM,CAAC,sBAAsB,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;KAClE;;;;;IAKD,OAAO,KAAa,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE;;;;;;IAGxC,cAAc,CAAC,SAAiB;;cACxB,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC;QACrD,IAAI,MAAM,EAAE;YACV,OAAO,MAAM,CAAC;SACf;;cAEK,OAAO,GAAG,IAAI,CAAC,QAAQ;QAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;;kBACjC,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;YACzB,IAAI,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;gBAC9B,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;gBAC/C,OAAO,MAAM,CAAC;aACf;SACF;QACD,MAAM,IAAI,KAAK,CAAC,2CAA2C,SAAS,EAAE,CAAC,CAAC;KACzE;;;YA9DF,UAAU;;;;wCAQI,MAAM,SAAC,qBAAqB;YA1BC,MAAM;;;;;AAmFlD,MAAsB,kBAAkB;;;;IACtC,YAAoB,IAAS;QAAT,SAAI,GAAJ,IAAI,CAAK;KAAI;;;;;;;IASjC,sBAAsB,CAAC,OAAe,EAAE,SAAiB,EAAE,OAAiB;;cACpE,MAAM,GAAgB,MAAM,EAAE,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC;QAC7E,IAAI,CAAC,MAAM,EAAE;YACX,MAAM,IAAI,KAAK,CAAC,4BAA4B,MAAM,cAAc,SAAS,EAAE,CAAC,CAAC;SAC9E;QACD,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;KAC1D;CACF;;;;;;MC/FY,gBAAgB;IAD7B;;;;QAGY,eAAU,GAAG,IAAI,GAAG,EAAU,CAAC;KAgB1C;;;;;IAdC,SAAS,CAAC,MAAgB;;cAClB,SAAS,GAAG,IAAI,GAAG,EAAU;QACnC,MAAM,CAAC,OAAO,CAAC,KAAK;YAClB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;gBAC/B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBAC3B,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;aACtB;SACF,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;KAC/B;;;;;IAED,aAAa,CAAC,SAAsB,KAAU;;;;IAE9C,YAAY,KAAe,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE;;;YAlBjE,UAAU;;MAsBE,mBAAoB,SAAQ,gBAAgB;;;;IAGvD,YAAsC,IAAS;QAC7C,KAAK,EAAE,CAAC;QAD4B,SAAI,GAAJ,IAAI,CAAK;QAFvC,eAAU,GAAG,IAAI,GAAG,EAAQ,CAAC;QAC7B,gBAAW,GAAG,IAAI,GAAG,EAAQ,CAAC;QAGpC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAChC;;;;;;;IAEO,gBAAgB,CAAC,MAAmB,EAAE,IAAU;QACtD,MAAM,CAAC,OAAO,CAAC,CAAC,KAAa;;kBACrB,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;YAChD,OAAO,CAAC,WAAW,GAAG,KAAK,CAAC;YAC5B,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC;SACjD,CAAC,CAAC;KACJ;;;;;IAED,OAAO,CAAC,QAAc;QACpB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QACjD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;KAC/B;;;;;IAED,UAAU,CAAC,QAAc,IAAU,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE;;;;;IAEtE,aAAa,CAAC,SAAsB;QAClC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,IAAI,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC;KACjF;;;;IAED,WAAW,KAAW,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,IAAI,MAAM,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;;;YA5B3F,UAAU;;;;4CAII,MAAM,SAACP,UAAQ;;;;;;;;ACxB9B,MAAa,cAAc,GAA2B;IACpD,KAAK,EAAE,4BAA4B;IACnC,OAAO,EAAE,8BAA8B;IACvC,OAAO,EAAE,8BAA8B;IACvC,KAAK,EAAE,sCAAsC;IAC7C,OAAO,EAAE,+BAA+B;CACzC;;MAEK,eAAe,GAAG,SAAS;;AACjC,MAAa,kBAAkB,GAAG,QAAQ;;AAC1C,MAAa,SAAS,GAAG,WAAW,kBAAkB,EAAE;;AACxD,MAAa,YAAY,GAAG,cAAc,kBAAkB,EAAE;;;;;AAE9D,SAAgB,oBAAoB,CAAC,gBAAwB;IAC3D,OAAO,YAAY,CAAC,OAAO,CAAC,eAAe,EAAE,gBAAgB,CAAC,CAAC;CAChE;;;;;AAED,SAAgB,iBAAiB,CAAC,gBAAwB;IACxD,OAAO,SAAS,CAAC,OAAO,CAAC,eAAe,EAAE,gBAAgB,CAAC,CAAC;CAC7D;;;;;;;AAED,SAAgB,aAAa,CACzB,MAAc,EAAE,MAAwB,EAAE,MAAgB;IAC5D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;;YAClC,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC;QAErB,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACxB,aAAa,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;SACtC;aAAM;YACL,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;YAC/C,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACpB;KACF;IACD,OAAO,MAAM,CAAC;CACf;;;;;AAED,SAAS,sBAAsB,CAAC,YAAsB;IACpD,OAAO,CAAC,KAAU;;cACV,oBAAoB,GAAG,YAAY,CAAC,KAAK,CAAC;QAChD,IAAI,oBAAoB,KAAK,KAAK,EAAE;;YAElC,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC;SAC3B;KACF,CAAC;CACH;AAGD,MAAa,mBAAmB;;;;;IAI9B,YAAoB,YAA0B,EAAU,gBAAqC;QAAzE,iBAAY,GAAZ,YAAY,CAAc;QAAU,qBAAgB,GAAhB,gBAAgB,CAAqB;QAHrF,qBAAgB,GAAG,IAAI,GAAG,EAAqB,CAAC;QAItD,IAAI,CAAC,eAAe,GAAG,IAAI,mBAAmB,CAAC,YAAY,CAAC,CAAC;KAC9D;;;;;;IAED,cAAc,CAAC,OAAY,EAAE,IAAwB;QACnD,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,EAAE;YACrB,OAAO,IAAI,CAAC,eAAe,CAAC;SAC7B;QACD,QAAQ,IAAI,CAAC,aAAa;YACxB,KAAK,iBAAiB,CAAC,QAAQ,EAAE;;oBAC3B,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBACjD,IAAI,CAAC,QAAQ,EAAE;oBACb,QAAQ;wBACJ,IAAI,iCAAiC,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;oBAC1F,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;iBAC9C;gBACD,oBAAoC,QAAQ,IAAE,WAAW,CAAC,OAAO,CAAC,CAAC;gBACnE,OAAO,QAAQ,CAAC;aACjB;YACD,KAAK,iBAAiB,CAAC,MAAM,CAAC;YAC9B,KAAK,iBAAiB,CAAC,SAAS;gBAC9B,OAAO,IAAI,iBAAiB,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,gBAAgB,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;YACxF,SAAS;gBACP,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;;0BACjC,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;oBACtD,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;oBACxC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;iBAC1D;gBACD,OAAO,IAAI,CAAC,eAAe,CAAC;aAC7B;SACF;KACF;;;;IAED,KAAK,MAAK;;;;IACV,GAAG,MAAK;;;YAvCT,UAAU;;;;YAlDH,YAAY;YACZ,mBAAmB;;AA2F3B,MAAM,mBAAmB;;;;IAGvB,YAAoB,YAA0B;QAA1B,iBAAY,GAAZ,YAAY,CAAc;QAF9C,SAAI,GAAyB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;KAEC;;;;IAElD,OAAO,MAAW;;;;;;IAIlB,aAAa,CAAC,IAAY,EAAE,SAAkB;QAC5C,IAAI,SAAS,EAAE;YACb,OAAO,QAAQ,CAAC,eAAe,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,CAAC;SAClE;QAED,OAAO,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;KACrC;;;;;IAED,aAAa,CAAC,KAAa,IAAS,OAAO,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE;;;;;IAE3E,UAAU,CAAC,KAAa,IAAS,OAAO,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE;;;;;;IAEzE,WAAW,CAAC,MAAW,EAAE,QAAa,IAAU,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,EAAE;;;;;;;IAE/E,YAAY,CAAC,MAAW,EAAE,QAAa,EAAE,QAAa;QACpD,IAAI,MAAM,EAAE;YACV,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;SACzC;KACF;;;;;;IAED,WAAW,CAAC,MAAW,EAAE,QAAa;QACpC,IAAI,MAAM,EAAE;YACV,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;SAC9B;KACF;;;;;;IAED,iBAAiB,CAAC,cAA0B,EAAE,eAAyB;;YACjE,EAAE,GAAQ,OAAO,cAAc,KAAK,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,cAAc,CAAC;YACtC,cAAc;QACjE,IAAI,CAAC,EAAE,EAAE;YACP,MAAM,IAAI,KAAK,CAAC,iBAAiB,cAAc,8BAA8B,CAAC,CAAC;SAChF;QACD,IAAI,CAAC,eAAe,EAAE;YACpB,EAAE,CAAC,WAAW,GAAG,EAAE,CAAC;SACrB;QACD,OAAO,EAAE,CAAC;KACX;;;;;IAED,UAAU,CAAC,IAAS,IAAS,OAAO,IAAI,CAAC,UAAU,CAAC,EAAE;;;;;IAEtD,WAAW,CAAC,IAAS,IAAS,OAAO,IAAI,CAAC,WAAW,CAAC,EAAE;;;;;;;;IAExD,YAAY,CAAC,EAAO,EAAE,IAAY,EAAE,KAAa,EAAE,SAAkB;QACnE,IAAI,SAAS,EAAE;YACb,IAAI,GAAG,GAAG,SAAS,IAAI,IAAI,EAAE,CAAC;;kBACxB,YAAY,GAAG,cAAc,CAAC,SAAS,CAAC;YAC9C,IAAI,YAAY,EAAE;gBAChB,EAAE,CAAC,cAAc,CAAC,YAAY,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;aAC9C;iBAAM;gBACL,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;aAC9B;SACF;aAAM;YACL,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;SAC9B;KACF;;;;;;;IAED,eAAe,CAAC,EAAO,EAAE,IAAY,EAAE,SAAkB;QACvD,IAAI,SAAS,EAAE;;kBACP,YAAY,GAAG,cAAc,CAAC,SAAS,CAAC;YAC9C,IAAI,YAAY,EAAE;gBAChB,EAAE,CAAC,iBAAiB,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;aAC1C;iBAAM;gBACL,EAAE,CAAC,eAAe,CAAC,GAAG,SAAS,IAAI,IAAI,EAAE,CAAC,CAAC;aAC5C;SACF;aAAM;YACL,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;SAC1B;KACF;;;;;;IAED,QAAQ,CAAC,EAAO,EAAE,IAAY,IAAU,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE;;;;;;IAEjE,WAAW,CAAC,EAAO,EAAE,IAAY,IAAU,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE;;;;;;;;IAEvE,QAAQ,CAAC,EAAO,EAAE,KAAa,EAAE,KAAU,EAAE,KAA0B;QACrE,IAAI,KAAK,GAAG,mBAAmB,CAAC,QAAQ,EAAE;YACxC,EAAE,CAAC,KAAK,CAAC,WAAW,CAChB,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,GAAG,mBAAmB,CAAC,SAAS,CAAC,GAAG,WAAW,GAAG,EAAE,CAAC,CAAC;SACjF;aAAM;YACL,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC;SACzB;KACF;;;;;;;IAED,WAAW,CAAC,EAAO,EAAE,KAAa,EAAE,KAA0B;QAC5D,IAAI,KAAK,GAAG,mBAAmB,CAAC,QAAQ,EAAE;YACxC,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;SAChC;aAAM;;;YAGL,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;SACtB;KACF;;;;;;;IAED,WAAW,CAAC,EAAO,EAAE,IAAY,EAAE,KAAU;QAC3C,oBAAoB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QACvC,EAAE,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;KAClB;;;;;;IAED,QAAQ,CAAC,IAAS,EAAE,KAAa,IAAU,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,EAAE;;;;;;;IAEpE,MAAM,CAAC,MAAsC,EAAE,KAAa,EAAE,QAAiC;QAE7F,oBAAoB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QACxC,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;YAC9B,0BAAmB,IAAI,CAAC,YAAY,CAAC,sBAAsB,CACvD,MAAM,EAAE,KAAK,EAAE,sBAAsB,CAAC,QAAQ,CAAC,CAAC,GAAC;SACtD;QACD,6CAAmB,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAC1C,MAAM,EAAE,KAAK,EAAE,sBAAsB,CAAC,QAAQ,CAAC,CAAC,KAAc;KAC1E;CACF;;MAEK,WAAW,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;;;;;;AACrC,SAAS,oBAAoB,CAAC,IAAY,EAAE,QAAgB;IAC1D,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,WAAW,EAAE;QACtC,MAAM,IAAI,KAAK,CACX,uBAAuB,QAAQ,IAAI,IAAI,kGAAkG,CAAC,CAAC;KAChJ;CACF;AAED,MAAM,iCAAkC,SAAQ,mBAAmB;;;;;;IAIjE,YACI,YAA0B,EAAE,gBAAqC,EACzD,SAAwB;QAClC,KAAK,CAAC,YAAY,CAAC,CAAC;QADV,cAAS,GAAT,SAAS,CAAe;;cAE5B,MAAM,GAAG,aAAa,CAAC,SAAS,CAAC,EAAE,EAAE,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC;QAChE,gBAAgB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAEnC,IAAI,CAAC,WAAW,GAAG,oBAAoB,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QACtD,IAAI,CAAC,QAAQ,GAAG,iBAAiB,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;KACjD;;;;;IAED,WAAW,CAAC,OAAY,IAAI,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,EAAE;;;;;;IAE7E,aAAa,CAAC,MAAW,EAAE,IAAY;;cAC/B,EAAE,GAAG,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC;QAC5C,KAAK,CAAC,YAAY,CAAC,EAAE,EAAE,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QAC7C,OAAO,EAAE,CAAC;KACX;CACF;AAED,MAAM,iBAAkB,SAAQ,mBAAmB;;;;;;;IAGjD,YACI,YAA0B,EAAU,gBAAqC,EACjE,MAAW,EAAU,SAAwB;QACvD,KAAK,CAAC,YAAY,CAAC,CAAC;QAFkB,qBAAgB,GAAhB,gBAAgB,CAAqB;QACjE,WAAM,GAAN,MAAM,CAAK;QAAU,cAAS,GAAT,SAAS,CAAe;QAEvD,IAAI,SAAS,CAAC,aAAa,KAAK,iBAAiB,CAAC,SAAS,EAAE;YAC3D,IAAI,CAAC,UAAU,GAAG,oBAAC,MAAM,IAAS,YAAY,CAAC,EAAC,IAAI,EAAE,MAAM,EAAC,CAAC,CAAC;SAChE;aAAM;YACL,IAAI,CAAC,UAAU,GAAG,oBAAC,MAAM,IAAS,gBAAgB,EAAE,CAAC;SACtD;QACD,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;;cACzC,MAAM,GAAG,aAAa,CAAC,SAAS,CAAC,EAAE,EAAE,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC;QAChE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;;kBAChC,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC;YAC/C,OAAO,CAAC,WAAW,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YAChC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;SACtC;KACF;;;;;;IAEO,gBAAgB,CAAC,IAAS,IAAS,OAAO,IAAI,KAAK,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,EAAE;;;;IAElG,OAAO,KAAK,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE;;;;;;IAEhE,WAAW,CAAC,MAAW,EAAE,QAAa;QACpC,OAAO,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,CAAC;KACnE;;;;;;;IACD,YAAY,CAAC,MAAW,EAAE,QAAa,EAAE,QAAa;QACpD,OAAO,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;KAC9E;;;;;;IACD,WAAW,CAAC,MAAW,EAAE,QAAa;QACpC,OAAO,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,CAAC;KACnE;;;;;IACD,UAAU,CAAC,IAAS;QAClB,OAAO,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KAC7E;CACF;;;;;;WC5QmE,UAAS,CAAS;IAChF,OAAO,iBAAiB,GAAG,CAAC,CAAC;CAC9B;;;;;;;;MAHC,UAAU,GACZ,CAAC,OAAO,IAAI,KAAK,WAAW,KAAK,oBAAC,IAAI,IAAS,YAAY,CAAC,MAE3D;;MACC,kBAAkB,GAAuB,UAAU,CAAC,kBAAkB,CAAC;;MACvE,qBAAqB,GAA0B,UAAU,CAAC,qBAAqB,CAAC;;MAEhF,WAAW,GAA4B,EAAE;;MAEzC,KAAK,GAAG,OAAO;;MACf,OAAO,GAAG,SAAS;;MACnB,mBAAmB,GAAG,kBAAkB;;MACxC,sBAAsB,GAAG,qBAAqB;;;MAG9C,UAAU,GAAG,mCAAmC;;MAChD,gBAAgB,GAAG,yCAAyC;;MAE5D,iBAAiB,GACnB,CAAC,OAAO,IAAI,KAAK,WAAW,KAAK,oBAAC,IAAI,IAAS,UAAU,CAAC,qBAAqB,CAAC,CAAC;;IACjF,cAA6C;AACjD,IAAI,iBAAiB,EAAE;IACrB,cAAc,GAAG,EAAE,CAAC;IACpB,iBAAiB,CAAC,OAAO,CAAC,SAAS,MAAM,cAAc,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC,EAAE,CAAC,CAAC;CACpF;;MAEK,kBAAkB,GAAG,UAAS,SAAiB;IACnD,IAAI,CAAC,cAAc,EAAE;QACnB,OAAO,KAAK,CAAC;KACd;IACD,OAAO,cAAc,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;CACjD;;;;MASK,cAAc,GAAG,UAAS,KAAY;;UACpC,UAAU,GAAG,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC;IAC1C,IAAI,CAAC,UAAU,EAAE;QACf,OAAO;KACR;;UACK,SAAS,GAAe,IAAI,CAAC,UAAU,CAAC;IAC9C,IAAI,CAAC,SAAS,EAAE;QACd,OAAO;KACR;;UACK,IAAI,GAAQ,CAAC,KAAK,CAAC;IACzB,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;;;cAEpB,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC;QAC7B,IAAI,QAAQ,CAAC,IAAI,KAAK,IAAI,CAAC,OAAO,EAAE;;YAElC,OAAO,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;SACxD;aAAM;YACL,OAAO,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;SAC3C;KACF;SAAM;;;;cAGC,WAAW,GAAG,SAAS,CAAC,KAAK,EAAE;QACrC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;;;YAG3C,IAAI,oBAAC,KAAK,IAAS,UAAU,CAAC,KAAK,IAAI,EAAE;gBACvC,MAAM;aACP;;kBACK,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC;YAC/B,IAAI,QAAQ,CAAC,IAAI,KAAK,IAAI,CAAC,OAAO,EAAE;;gBAElC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;aACjD;iBAAM;gBACL,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;aACpC;SACF;KACF;CACF;MAGY,eAAgB,SAAQ,kBAAkB;;;;;;IACrD,YACsB,GAAQ,EAAU,MAAc,EACjB,UAAmB;QACtD,KAAK,CAAC,GAAG,CAAC,CAAC;QAF2B,WAAM,GAAN,MAAM,CAAQ;QAIpD,IAAI,CAAC,UAAU,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,EAAE;YAChD,IAAI,CAAC,UAAU,EAAE,CAAC;SACnB;KACF;;;;;IAEO,UAAU;QAChB,IAAI,OAAO,KAAK,KAAK,WAAW,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE;YAC9D,OAAO;SACR;QACD,IAAI,oBAAC,KAAK,CAAC,SAAS,IAAS,gBAAgB,CAAC,EAAE;;YAE9C,OAAO;SACR;;cACK,QAAQ,GAAG,oBAAC,KAAK,CAAC,SAAS,IAAS,gBAAgB,CAAC;YACvD,KAAK,CAAC,SAAS,CAAC,wBAAwB;QAC5C,KAAK,CAAC,SAAS,CAAC,wBAAwB,GAAG;YACzC,IAAI,IAAI,EAAE;gBACR,IAAI,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;aACzB;;;;YAKD,QAAQ,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;SAC7C,CAAC;KACH;;;;;;;IAID,QAAQ,CAAC,SAAiB,IAAa,OAAO,IAAI,CAAC,EAAE;;;;;;;IAErD,gBAAgB,CAAC,OAAoB,EAAE,SAAiB,EAAE,OAAiB;;cAenE,YAAY,GAAG,OAAO,CAAC,kBAAkB,CAAC;;YAC5C,QAAQ,sBAAkB,OAAO,EAAiB;;;QAGtD,IAAI,YAAY,KAAK,CAAC,MAAM,CAAC,eAAe,EAAE,IAAI,kBAAkB,CAAC,SAAS,CAAC,CAAC,EAAE;;gBAC5E,UAAU,GAAG,WAAW,CAAC,SAAS,CAAC;YACvC,IAAI,CAAC,UAAU,EAAE;gBACf,UAAU,GAAG,WAAW,CAAC,SAAS,CAAC,GAAG,UAAU,CAAC,OAAO,GAAG,SAAS,GAAG,KAAK,CAAC,CAAC;aAC/E;;gBACG,SAAS,GAAe,oBAAC,OAAO,IAAS,UAAU,CAAC;;kBAClD,wBAAwB,GAAG,SAAS,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC;YAClE,IAAI,CAAC,SAAS,EAAE;gBACd,SAAS,GAAG,oBAAC,OAAO,IAAS,UAAU,CAAC,GAAG,EAAE,CAAC;aAC/C;;kBAEK,IAAI,GAAG,kBAAkB,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO;YACrE,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;gBAC1B,SAAS,CAAC,IAAI,CAAC,EAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAC,CAAC,CAAC;aACjD;iBAAM;;oBACD,kBAAkB,GAAG,KAAK;gBAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;oBACzC,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,QAAQ,EAAE;wBACrC,kBAAkB,GAAG,IAAI,CAAC;wBAC1B,MAAM;qBACP;iBACF;gBACD,IAAI,CAAC,kBAAkB,EAAE;oBACvB,SAAS,CAAC,IAAI,CAAC,EAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAC,CAAC,CAAC;iBACjD;aACF;YAED,IAAI,CAAC,wBAAwB,EAAE;gBAC7B,OAAO,CAAC,kBAAkB,CAAC,CAAC,SAAS,EAAE,cAAc,EAAE,KAAK,CAAC,CAAC;aAC/D;SACF;aAAM;YACL,OAAO,CAAC,mBAAmB,CAAC,CAAC,SAAS,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;SAC1D;QACD,OAAO,MAAM,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;KACrE;;;;;;;IAED,mBAAmB,CAAC,MAAW,EAAE,SAAiB,EAAE,QAAkB;;YAChE,gBAAgB,GAAG,MAAM,CAAC,qBAAqB,CAAC;;QAEpD,IAAI,CAAC,gBAAgB,EAAE;YACrB,OAAO,MAAM,CAAC,sBAAsB,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;SACnF;;YACG,UAAU,GAAG,WAAW,CAAC,SAAS,CAAC;;YACnC,SAAS,GAAe,UAAU,IAAI,MAAM,CAAC,UAAU,CAAC;QAC5D,IAAI,CAAC,SAAS,EAAE;;;YAGd,OAAO,MAAM,CAAC,sBAAsB,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;SACnF;;;;YAGG,KAAK,GAAG,KAAK;QACjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;;YAEzC,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,QAAQ,EAAE;gBACrC,KAAK,GAAG,IAAI,CAAC;gBACb,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBACvB,MAAM;aACP;SACF;QACD,IAAI,KAAK,EAAE;YACT,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;;gBAE1B,gBAAgB,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,SAAS,EAAE,cAAc,EAAE,KAAK,CAAC,CAAC,CAAC;aACpE;SACF;aAAM;;;YAGL,MAAM,CAAC,sBAAsB,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;SAC5E;KACF;;;YA/HF,UAAU;;;;4CAGJ,MAAM,SAACA,UAAQ;YAhGM,MAAM;4CAiG3B,QAAQ,YAAI,MAAM,SAAC,WAAW;;;;;;;;;;;MCzF/B,WAAW,GAAG;;IAElB,KAAK,EAAE,IAAI;IACX,UAAU,EAAE,IAAI;IAChB,SAAS,EAAE,IAAI;IACf,QAAQ,EAAE,IAAI;IACd,WAAW,EAAE,IAAI;IACjB,SAAS,EAAE,IAAI;IACf,UAAU,EAAE,IAAI;IAChB,OAAO,EAAE,IAAI;IACb,SAAS,EAAE,IAAI;;IAEf,OAAO,EAAE,IAAI;IACb,YAAY,EAAE,IAAI;IAClB,WAAW,EAAE,IAAI;IACjB,UAAU,EAAE,IAAI;IAChB,aAAa,EAAE,IAAI;IACnB,SAAS,EAAE,IAAI;IACf,UAAU,EAAE,IAAI;;IAEhB,OAAO,EAAE,IAAI;IACb,SAAS,EAAE,IAAI;;IAEf,QAAQ,EAAE,IAAI;IACd,aAAa,EAAE,IAAI;IACnB,YAAY,EAAE,IAAI;IAClB,WAAW,EAAE,IAAI;IACjB,cAAc,EAAE,IAAI;;IAEpB,OAAO,EAAE,IAAI;IACb,WAAW,EAAE,IAAI;IACjB,YAAY,EAAE,IAAI;IAClB,SAAS,EAAE,IAAI;IACf,WAAW,EAAE,IAAI;;IAEjB,KAAK,EAAE,IAAI;CACZ;;;;;;;;AAQD,MAAa,qBAAqB,GAAG,IAAI,cAAc,CAAsB,qBAAqB,CAAC;;;;;;;AAenG,MAAa,aAAa,GAAG,IAAI,cAAc,CAAe,cAAc,CAAC;;;;;;AAc7E,MAAa,mBAAmB;IADhC;;;;;;QAOE,WAAM,GAAa,EAAE,CAAC;;;;;;;;;;;;;;;;;QAkBtB,cAAS,GAA4B,EAAE,CAAC;KAoCzC;;;;;;;IAZC,WAAW,CAAC,OAAoB;;cACxB,EAAE,GAAG,uBAAI,MAAM,GAAG,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC;QAE9C,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,EAAC,MAAM,EAAE,IAAI,EAAC,CAAC,CAAC;QACpC,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,EAAC,MAAM,EAAE,IAAI,EAAC,CAAC,CAAC;QAErC,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,SAAS,EAAE;YACtC,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC;SAClD;QAED,OAAO,EAAE,CAAC;KACX;;;YA5DF,UAAU;;MAgEE,oBAAqB,SAAQ,kBAAkB;;;;;;;IAC1D,YACsB,GAAQ,EACa,OAA4B,EAAU,OAAgB,EAClD,MAA0B;QACvE,KAAK,CAAC,GAAG,CAAC,CAAC;QAF8B,YAAO,GAAP,OAAO,CAAqB;QAAU,YAAO,GAAP,OAAO,CAAS;QAClD,WAAM,GAAN,MAAM,CAAoB;KAExE;;;;;IAED,QAAQ,CAAC,SAAiB;QACxB,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,EAAE;YAC1F,OAAO,KAAK,CAAC;SACd;QAED,IAAI,CAAC,oBAAC,MAAM,IAAS,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YAC3C,IAAI,CAAC,OAAO,CAAC,IAAI,CACb,QAAQ,SAAS,mDAAmD;gBACpE,iDAAiD,CAAC,CAAC;YACvD,OAAO,KAAK,CAAC;SACd;QAED,OAAO,IAAI,CAAC;KACb;;;;;;;IAED,gBAAgB,CAAC,OAAoB,EAAE,SAAiB,EAAE,OAAiB;;cACnE,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;QACnC,SAAS,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC;;;QAIpC,IAAI,CAAC,oBAAC,MAAM,IAAS,MAAM,IAAI,IAAI,CAAC,MAAM,EAAE;;;;;gBAItC,kBAAkB,GAAG,KAAK;;gBAC1B,UAAU,GAAa,QAAQ,kBAAkB,GAAG,IAAI,CAAC,EAAE;YAE/D,IAAI,CAAC,MAAM,EAAE;iBACR,IAAI,CAAC;;gBAEJ,IAAI,CAAC,oBAAC,MAAM,IAAS,MAAM,EAAE;oBAC3B,IAAI,CAAC,OAAO,CAAC,IAAI,CACb,mEAAmE,CAAC,CAAC;oBACzE,UAAU,GAAG,SAAQ,CAAC;oBACtB,OAAO;iBACR;gBAED,IAAI,CAAC,kBAAkB,EAAE;;;oBAGvB,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;iBACjE;aACF,CAAC;iBACD,KAAK,CAAC;gBACL,IAAI,CAAC,OAAO,CAAC,IAAI,CACb,QAAQ,SAAS,6CAA6C;oBAC9D,0BAA0B,CAAC,CAAC;gBAChC,UAAU,GAAG,SAAQ,CAAC;aACvB,CAAC,CAAC;;;;YAKP,OAAO,QAAQ,UAAU,EAAE,CAAC,EAAE,CAAC;SAChC;QAED,OAAO,IAAI,CAAC,iBAAiB,CAAC;;;kBAEtB,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC;;kBACtC,QAAQ,GAAG,UAAS,QAAqB;gBAC7C,IAAI,CAAC,UAAU,CAAC,cAAa,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;aACpD;YACD,EAAE,CAAC,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;YAC3B,OAAO;gBACL,EAAE,CAAC,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;;gBAE5B,IAAI,OAAO,EAAE,CAAC,OAAO,KAAK,UAAU,EAAE;oBACpC,EAAE,CAAC,OAAO,EAAE,CAAC;iBACd;aACF,CAAC;SACH,CAAC,CAAC;KACJ;;;;;IAED,aAAa,CAAC,SAAiB,IAAa,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;;;YAnFlG,UAAU;;;;4CAGJ,MAAM,SAACA,UAAQ;YACgC,mBAAmB,uBAAlE,MAAM,SAAC,qBAAqB;YApJ+BQ,QAAO;4CAqJlE,QAAQ,YAAI,MAAM,SAAC,aAAa;;;;;;;;;;;MC3IjC,aAAa,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC;aAMhD,CAAC,KAAoB,KAAK,KAAK,CAAC,MAAM,SAClC,CAAC,KAAoB,KAAK,KAAK,CAAC,OAAO,SAC1C,CAAC,KAAoB,KAAK,KAAK,CAAC,OAAO,OACtC,CAAC,KAAoB,KAAK,KAAK,CAAC,QAAQ;;;;;MAJ7C,oBAAoB,GAAuD;IAC/E,KAAK,MAAwC;IAC7C,SAAS,MAAyC;IAClD,MAAM,MAAyC;IAC/C,OAAO,IAA0C;CAClD;;;;;AAOD,MAAa,eAAgB,SAAQ,kBAAkB;;;;;IAKrD,YAA8B,GAAQ,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE;;;;;;IAOvD,QAAQ,CAAC,SAAiB,IAAa,OAAO,eAAe,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,EAAE;;;;;;;;;IAUlG,gBAAgB,CAAC,OAAoB,EAAE,SAAiB,EAAE,OAAiB;;cACnE,WAAW,sBAAG,eAAe,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE;;cAEzD,cAAc,GAChB,eAAe,CAAC,aAAa,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QAE1F,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,iBAAiB,CAAC;YAC9C,OAAO,MAAM,EAAE,CAAC,WAAW,CAAC,OAAO,EAAE,WAAW,CAAC,cAAc,CAAC,EAAE,cAAc,CAAC,CAAC;SACnF,CAAC,CAAC;KACJ;;;;;IAED,OAAO,cAAc,CAAC,SAAiB;;cAC/B,KAAK,GAAa,SAAS,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC;;cAEpD,YAAY,GAAG,KAAK,CAAC,KAAK,EAAE;QAClC,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,KAAK,EAAE,YAAY,KAAK,SAAS,IAAI,YAAY,KAAK,OAAO,CAAC,EAAE;YACrF,OAAO,IAAI,CAAC;SACb;;cAEK,GAAG,GAAG,eAAe,CAAC,aAAa,oBAAC,KAAK,CAAC,GAAG,EAAE,GAAG;;YAEpD,OAAO,GAAG,EAAE;QAChB,aAAa,CAAC,OAAO,CAAC,YAAY;;kBAC1B,KAAK,GAAW,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC;YACjD,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;gBACd,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;gBACvB,OAAO,IAAI,YAAY,GAAG,GAAG,CAAC;aAC/B;SACF,CAAC,CAAC;QACH,OAAO,IAAI,GAAG,CAAC;QAEf,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE;;YAEzC,OAAO,IAAI,CAAC;SACb;;cAEK,MAAM,GAA0B,EAAE;QACxC,MAAM,CAAC,cAAc,CAAC,GAAG,YAAY,CAAC;QACtC,MAAM,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC;QAC5B,OAAO,MAAM,CAAC;KACf;;;;;IAED,OAAO,eAAe,CAAC,KAAoB;;YACrC,OAAO,GAAG,EAAE;;YACZ,GAAG,GAAG,MAAM,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC;QACrC,GAAG,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;QACxB,IAAI,GAAG,KAAK,GAAG,EAAE;YACf,GAAG,GAAG,OAAO,CAAC;SACf;aAAM,IAAI,GAAG,KAAK,GAAG,EAAE;YACtB,GAAG,GAAG,KAAK,CAAC;SACb;QACD,aAAa,CAAC,OAAO,CAAC,YAAY;YAChC,IAAI,YAAY,IAAI,GAAG,EAAE;;sBACjB,cAAc,GAAG,oBAAoB,CAAC,YAAY,CAAC;gBACzD,IAAI,cAAc,CAAC,KAAK,CAAC,EAAE;oBACzB,OAAO,IAAI,YAAY,GAAG,GAAG,CAAC;iBAC/B;aACF;SACF,CAAC,CAAC;QACH,OAAO,IAAI,GAAG,CAAC;QACf,OAAO,OAAO,CAAC;KAChB;;;;;;;;IASD,OAAO,aAAa,CAAC,OAAY,EAAE,OAAiB,EAAE,IAAY;QAChE,OAAO,CAAC,KAAU;YAChB,IAAI,eAAe,CAAC,eAAe,CAAC,KAAK,CAAC,KAAK,OAAO,EAAE;gBACtD,IAAI,CAAC,UAAU,CAAC,MAAM,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;aACvC;SACF,CAAC;KACH;;;;;;IAGD,OAAO,aAAa,CAAC,OAAe;;QAElC,QAAQ,OAAO;YACb,KAAK,KAAK;gBACR,OAAO,QAAQ,CAAC;YAClB;gBACE,OAAO,OAAO,CAAC;SAClB;KACF;;;YA9GF,UAAU;;;;4CAMI,MAAM,SAACR,UAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACiD9B,MAAsB,YAAY;CAsDjC;MAIY,gBAAiB,SAAQ,YAAY;;;;IAChD,YAAsC,IAAS;QAAI,KAAK,EAAE,CAAC;QAArB,SAAI,GAAJ,IAAI,CAAK;KAAc;;;;;;IAE7D,QAAQ,CAAC,GAAoB,EAAE,KAA4B;QACzD,IAAI,KAAK,IAAI,IAAI;YAAE,OAAO,IAAI,CAAC;QAC/B,QAAQ,GAAG;YACT,KAAK,eAAe,CAAC,IAAI;gBACvB,0BAAO,KAAK,GAAW;YACzB,KAAK,eAAe,CAAC,IAAI;gBACvB,IAAI,KAAK,YAAY,YAAY;oBAAE,OAAO,KAAK,CAAC,qCAAqC,CAAC;gBACtF,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;gBACtC,OAAOS,cAAa,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YACjD,KAAK,eAAe,CAAC,KAAK;gBACxB,IAAI,KAAK,YAAY,aAAa;oBAAE,OAAO,KAAK,CAAC,qCAAqC,CAAC;gBACvF,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;gBACvC,OAAOC,eAAc,oBAAC,KAAK,GAAW,CAAC;YACzC,KAAK,eAAe,CAAC,MAAM;gBACzB,IAAI,KAAK,YAAY,cAAc;oBAAE,OAAO,KAAK,CAAC,qCAAqC,CAAC;gBACxF,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;gBACxC,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;YAC3D,KAAK,eAAe,CAAC,GAAG;gBACtB,IAAI,KAAK,YAAY,mBAAmB,IAAI,KAAK,YAAY,WAAW,EAAE;;oBAExE,OAAO,KAAK,CAAC,qCAAqC,CAAC;iBACpD;gBACD,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;gBACrC,OAAOC,aAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YACrC,KAAK,eAAe,CAAC,YAAY;gBAC/B,IAAI,KAAK,YAAY,mBAAmB,EAAE;oBACxC,OAAO,KAAK,CAAC,qCAAqC,CAAC;iBACpD;gBACD,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;gBAC7C,MAAM,IAAI,KAAK,CACX,+EAA+E,CAAC,CAAC;YACvF;gBACE,MAAM,IAAI,KAAK,CAAC,8BAA8B,GAAG,oCAAoC,CAAC,CAAC;SAC1F;KACF;;;;;;;IAEO,iBAAiB,CAAC,KAAU,EAAE,YAAoB;QACxD,IAAI,KAAK,YAAY,aAAa,EAAE;YAClC,MAAM,IAAI,KAAK,CACX,mBAAmB,YAAY,WAAW,KAAK,CAAC,WAAW,EAAE,GAAG;gBAChE,mCAAmC,CAAC,CAAC;SAC1C;KACF;;;;;IAED,uBAAuB,CAAC,KAAa,IAAc,OAAO,IAAI,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE;;;;;IACpF,wBAAwB,CAAC,KAAa,IAAe,OAAO,IAAI,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE;;;;;IACvF,yBAAyB,CAAC,KAAa,IAAgB,OAAO,IAAI,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE;;;;;IAC1F,sBAAsB,CAAC,KAAa,IAAa,OAAO,IAAI,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE;;;;;IACjF,8BAA8B,CAAC,KAAa;QAC1C,OAAO,IAAI,mBAAmB,CAAC,KAAK,CAAC,CAAC;KACvC;;;YAtDF,UAAU;;;;4CAEI,MAAM,SAACX,UAAQ;;;;;AAuD9B,MAAe,aAAa;;;;IAC1B,YAAmB,qCAA6C;QAA7C,0CAAqC,GAArC,qCAAqC,CAAQ;;KAE/D;;;;IAID,QAAQ;QACN,OAAO,0CAA0C,IAAI,CAAC,qCAAqC,EAAE;YACzF,oCAAoC,CAAC;KAC1C;CACF;AAED,MAAM,YAAa,SAAQ,aAAa;;;;IACtC,WAAW,KAAK,OAAO,MAAM,CAAC,EAAE;CACjC;AACD,MAAM,aAAc,SAAQ,aAAa;;;;IACvC,WAAW,KAAK,OAAO,OAAO,CAAC,EAAE;CAClC;AACD,MAAM,cAAe,SAAQ,aAAa;;;;IACxC,WAAW,KAAK,OAAO,QAAQ,CAAC,EAAE;CACnC;AACD,MAAM,WAAY,SAAQ,aAAa;;;;IACrC,WAAW,KAAK,OAAO,KAAK,CAAC,EAAE;CAChC;AACD,MAAM,mBAAoB,SAAQ,aAAa;;;;IAC7C,WAAW,KAAK,OAAO,aAAa,CAAC,EAAE;CACxC;;;;;;;AC7MD,MAAa,mCAAmC,GAAqB;IACnE,EAAC,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAEY,oBAAmB,EAAC;IACrD,EAAC,OAAO,EAAE,oBAAoB,EAAE,QAAQ,EAAE,cAAc,EAAE,KAAK,EAAE,IAAI,EAAC;IACtE,EAAC,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,uBAAuB,EAAE,IAAI,EAAE,CAACZ,UAAQ,CAAC,EAAC;IAChF,EAAC,OAAO,EAAEA,UAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,EAAC;CACrD;;;;;;;;AAQD,MAAa,8BAA8B,GAAqB;IAC9D,EAAC,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAC;IAC/C,EAAC,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAACA,UAAQ,CAAC,EAAC;CACtE;;;;;AAKD,MAAa,eAAe,GACxB,qBAAqB,CAAC,YAAY,EAAE,SAAS,EAAE,mCAAmC,CAAC;;;;AAEvF,SAAgB,cAAc;IAC5B,iBAAiB,CAAC,WAAW,EAAE,CAAC;IAChC,qBAAqB,CAAC,IAAI,EAAE,CAAC;CAC9B;;;;AAED,SAAgB,YAAY;IAC1B,OAAO,IAAI,YAAY,EAAE,CAAC;CAC3B;;;;AAED,SAAgB,SAAS;IACvB,OAAO,QAAQ,CAAC;CACjB;;AAED,MAAa,wBAAwB,GAAqB;IACxD,8BAA8B;IAC9B,EAAC,OAAO,EAAEa,SAAQ,EAAE,QAAQ,EAAE,IAAI,EAAC;IACnC,EAAC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,EAAC;IAC3D;QACE,OAAO,EAAE,qBAAqB;QAC9B,QAAQ,EAAE,eAAe;QACzB,KAAK,EAAE,IAAI;QACX,IAAI,EAAE,CAACb,UAAQ,EAAE,MAAM,EAAE,WAAW,CAAC;KACtC;IACD,EAAC,OAAO,EAAE,qBAAqB,EAAE,QAAQ,EAAE,eAAe,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAACA,UAAQ,CAAC,EAAC;IAC1F;QACE,OAAO,EAAE,qBAAqB;QAC9B,QAAQ,EAAE,oBAAoB;QAC9B,KAAK,EAAE,IAAI;QACX,IAAI,EAAE,CAACA,UAAQ,EAAE,qBAAqB,EAAEQ,QAAO,EAAE,CAAC,IAAI,QAAQ,EAAE,EAAE,aAAa,CAAC,CAAC;KAClF;IACD,EAAC,OAAO,EAAE,qBAAqB,EAAE,QAAQ,EAAE,mBAAmB,EAAE,IAAI,EAAE,EAAE,EAAC;IACzE;QACE,OAAO,EAAE,mBAAmB;QAC5B,QAAQ,EAAE,mBAAmB;QAC7B,IAAI,EAAE,CAAC,YAAY,EAAE,mBAAmB,CAAC;KAC1C;IACD,EAAC,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,mBAAmB,EAAC;IAC7D,EAAC,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,mBAAmB,EAAC;IAC7D,EAAC,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,mBAAmB,EAAE,IAAI,EAAE,CAACR,UAAQ,CAAC,EAAC;IAC/E,EAAC,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,EAAC;IAC7D,EAAC,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,qBAAqB,EAAE,MAAM,CAAC,EAAC;IACtF,uBAAuB;CACxB;;;;;;;;;;AAYD,MAAa,aAAa;;;;IACxB,YAA2D,YAAgC;QACzF,IAAI,YAAY,EAAE;YAChB,MAAM,IAAI,KAAK,CACX,+JAA+J,CAAC,CAAC;SACtK;KACF;;;;;;;;;IAUD,OAAO,oBAAoB,CAAC,MAAuB;QACjD,OAAO;YACL,QAAQ,EAAE,aAAa;YACvB,SAAS,EAAE;gBACT,EAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,KAAK,EAAC;gBACzC,EAAC,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,EAAC;gBAC7C,2BAA2B;aAC5B;SACF,CAAC;KACH;;;YA1BF,QAAQ,SAAC,EAAC,SAAS,EAAE,wBAAwB,EAAE,OAAO,EAAE,CAAC,YAAY,EAAE,iBAAiB,CAAC,EAAC;;;;4CAE5E,QAAQ,YAAI,QAAQ,YAAI,MAAM,SAAC,aAAa;;;;;;;;;;;ACrE3D,SAAgB,UAAU;IACxB,OAAO,IAAI,IAAI,CAAC,MAAM,CAACA,UAAQ,CAAC,CAAC,CAAC;CACnC;;;;;;AAQD,MAAa,IAAI;;;;IAEf,YAAsC,IAAS;QAAT,SAAI,GAAJ,IAAI,CAAK;QAAI,IAAI,CAAC,IAAI,GAAG,MAAM,EAAE,CAAC;KAAE;;;;;;IAE1E,MAAM,CAAC,GAAmB,EAAE,gBAAyB,KAAK;QACxD,IAAI,CAAC,GAAG;YAAE,OAAO,IAAI,CAAC;QACtB,OAAO,IAAI,CAAC,mBAAmB,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;KACrD;;;;;;IAED,OAAO,CAAC,IAAsB,EAAE,gBAAyB,KAAK;QAC5D,IAAI,CAAC,IAAI;YAAE,OAAO,EAAE,CAAC;QACrB,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,MAAyB,EAAE,GAAmB;YAChE,IAAI,GAAG,EAAE;gBACP,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC,CAAC;aAC3D;YACD,OAAO,MAAM,CAAC;SACf,EAAE,EAAE,CAAC,CAAC;KACR;;;;;IAED,MAAM,CAAC,YAAoB;QACzB,IAAI,CAAC,YAAY;YAAE,OAAO,IAAI,CAAC;QAC/B,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,YAAY,GAAG,CAAC,IAAI,IAAI,CAAC;KAC5E;;;;;IAED,OAAO,CAAC,YAAoB;QAC1B,IAAI,CAAC,YAAY;YAAE,OAAO,EAAE,CAAC;;cACvB,IAAI,gBAAgB,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,YAAY,GAAG,CAAC;QACxF,OAAO,IAAI,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;KACxC;;;;;;IAED,SAAS,CAAC,GAAmB,EAAE,QAAiB;QAC9C,IAAI,CAAC,GAAG;YAAE,OAAO,IAAI,CAAC;QACtB,QAAQ,GAAG,QAAQ,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;;cAC1C,IAAI,sBAAoB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE;QACrD,IAAI,IAAI,EAAE;YACR,OAAO,IAAI,CAAC,yBAAyB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;SAClD;QACD,OAAO,IAAI,CAAC,mBAAmB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;KAC5C;;;;;IAED,SAAS,CAAC,YAAoB,IAAU,IAAI,CAAC,gBAAgB,oBAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE;;;;;IAE7F,gBAAgB,CAAC,IAAqB;QACpC,IAAI,IAAI,EAAE;YACR,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;SACxB;KACF;;;;;;;IAEO,mBAAmB,CAAC,IAAoB,EAAE,gBAAyB,KAAK;QAE9E,IAAI,CAAC,aAAa,EAAE;;kBACZ,QAAQ,GAAW,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;;kBAC5C,IAAI,sBAAoB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE;;;;YAIrD,IAAI,IAAI,IAAI,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,IAAI,CAAC;gBAAE,OAAO,IAAI,CAAC;SAC/D;;cACK,OAAO,sBAAoB,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,EAAmB;QACnF,IAAI,CAAC,yBAAyB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;;cACxC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;QACjE,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACrC,OAAO,OAAO,CAAC;KAChB;;;;;;;IAEO,yBAAyB,CAAC,GAAmB,EAAE,EAAmB;QACxE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,IAAY,KAAK,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACxF,OAAO,EAAE,CAAC;KACX;;;;;;IAEO,cAAc,CAAC,GAAmB;;cAClC,IAAI,GAAW,GAAG,CAAC,IAAI,GAAG,MAAM,GAAG,UAAU;QACnD,OAAO,GAAG,IAAI,KAAK,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC;KACjC;;;;;;;IAEO,mBAAmB,CAAC,GAAmB,EAAE,IAAqB;QACpE,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,GAAW,KAAK,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,GAAG,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;KAChG;;;YA9EF,UAAU,SAAC,EAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,EAAC;;;;4CAGnD,MAAM,SAACA,UAAQ;;;;;;;;;;;;AC/B9B,SAAgB,WAAW;IACzB,OAAO,IAAI,KAAK,CAAC,MAAM,CAACA,UAAQ,CAAC,CAAC,CAAC;CACpC;;;;;;;;;;;AAaD,MAAa,KAAK;;;;IAChB,YAAsC,IAAS;QAAT,SAAI,GAAJ,IAAI,CAAK;KAAI;;;;;IAInD,QAAQ,KAAa,OAAO,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE;;;;;;IAM3D,QAAQ,CAAC,QAAgB,IAAI,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,EAAE;;;YAZvE,UAAU,SAAC,EAAC,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,EAAC;;;;4CAEpD,MAAM,SAACA,UAAQ;;;;;;;;;;;;;;;;MCxBxB,GAAG,GAAG,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,uBAAS,EAAE,EAAA;;;;;;MCIjD,yBAAyB;;;;;IACpC,YAAmB,SAAiB,EAAS,QAAgB;QAA1C,cAAS,GAAT,SAAS,CAAQ;QAAS,aAAQ,GAAR,QAAQ,CAAQ;KAAI;CAClE;;;;;AAMD,MAAa,eAAe;;;;IAG1B,YAAY,GAAsB,IAAI,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,EAAE;;;;;;;;;;;;;;;;;;;;IAmBvF,mBAAmB,CAAC,MAAW;;cACvB,MAAM,GAAG,MAAM,IAAI,MAAM,CAAC,QAAQ,CAAC;;cACnC,WAAW,GAAG,kBAAkB;;;cAEhC,mBAAmB,GAAGc,GAAM,CAAC,OAAO,CAAC,OAAO,IAAI,IAAI;QAC1D,IAAI,MAAM,IAAI,mBAAmB,EAAE;YACjCA,GAAM,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;SACrC;;cACK,KAAK,GAAG,MAAM,EAAE,CAAC,cAAc,EAAE;;YACnC,QAAQ,GAAG,CAAC;QAChB,OAAO,QAAQ,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,cAAc,EAAE,GAAG,KAAK,IAAI,GAAG,EAAE;YAChE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YACnB,QAAQ,EAAE,CAAC;SACZ;;cACK,GAAG,GAAG,MAAM,EAAE,CAAC,cAAc,EAAE;QACrC,IAAI,MAAM,IAAI,mBAAmB,EAAE;YACjCA,GAAM,CAAC,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;SACxC;;cACK,SAAS,GAAG,CAAC,GAAG,GAAG,KAAK,IAAI,QAAQ;QAC1CA,GAAM,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,QAAQ,0BAA0B,CAAC,CAAC;QAC9DA,GAAM,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;QAE3D,OAAO,IAAI,yBAAyB,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;KAC3D;CACF;;;;;;;MCtDK,oBAAoB,GAAG,UAAU;;;;;;;;;;;;;;;;;AAevC,SAAgB,gBAAgB,CAAI,GAAoB;IACtD,WAAW,CAAC,oBAAoB,EAAE,IAAI,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5D,OAAO,GAAG,CAAC;CACZ;;;;;;;AAOD,SAAgB,iBAAiB;IAC/B,WAAW,CAAC,oBAAoB,EAAE,IAAI,CAAC,CAAC;CACzC;;;;;;;;;;AC5BD,SAAgB,UAAU,CAAC,IAAY;;UAC/B,WAAW,GAA0B;QACzC,GAAG,EAAE,KAAK;QACV,GAAG,EAAE,KAAK;QACV,IAAI,EAAE,KAAK;QACX,GAAG,EAAE,KAAK;QACV,GAAG,EAAE,KAAK;KACX;IACD,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;CACtD;;;;;AAED,SAAgB,YAAY,CAAC,IAAY;;UACjC,aAAa,GAA0B;QAC3C,KAAK,EAAE,GAAG;QACV,KAAK,EAAE,GAAG;QACV,KAAK,EAAE,IAAI;QACX,KAAK,EAAE,GAAG;QACV,KAAK,EAAE,GAAG;KACX;IACD,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;CACxD;;;;;;;;;;;;;;;;;;AAgCD,SAAgB,YAAY,CAAW,GAAW;IAChD,0BAAO,GAAG,GAAgB;CAC3B;;;;;;;;;;;;;;AAgBD,MAAa,aAAa;IAD1B;QAEU,UAAK,GAAkC,EAAE,CAAC;QAC1C,yBAAoB,GAAwC,EAAE,CAAC;KAsDxE;;;;;;IAnDC,OAAO,IAAI,CAAC,SAAa;;cACjB,aAAa,GAAG,IAAI,aAAa,EAAE;QACzC,aAAa,CAAC,KAAK,GAAG,SAAS,CAAC;QAChC,OAAO,aAAa,CAAC;KACtB;;;;;;;;IAKD,GAAG,CAAI,GAAgB,EAAE,YAAe;QACtC,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,SAAS,sBAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAQ,YAAY,CAAC;KAC5E;;;;;;;;IAKD,GAAG,CAAI,GAAgB,EAAE,KAAQ,IAAU,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,EAAE;;;;;;;IAKrE,MAAM,CAAI,GAAgB,IAAU,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE;;;;;;;IAK7D,MAAM,CAAI,GAAgB,IAAI,OAAO,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,EAAE;;;;;;;;IAKtE,WAAW,CAAI,GAAgB,EAAE,QAAiB;QAChD,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC;KAC3C;;;;;IAKD,MAAM;;QAEJ,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,oBAAoB,EAAE;YAC3C,IAAI,IAAI,CAAC,oBAAoB,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;gBACjD,IAAI;oBACF,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,CAAC;iBACpD;gBAAC,OAAO,CAAC,EAAE;oBACV,OAAO,CAAC,IAAI,CAAC,qCAAqC,EAAE,CAAC,CAAC,CAAC;iBACxD;aACF;SACF;QACD,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACnC;;;YAxDF,UAAU;;;;;;;AA2DX,SAAgB,iBAAiB,CAAC,GAAa,EAAE,KAAa;;;;UAGtD,MAAM,GAAG,GAAG,CAAC,cAAc,CAAC,KAAK,GAAG,QAAQ,CAAC;;QAC/C,YAAY,GAAG,EAAE;IACrB,IAAI,MAAM,IAAI,MAAM,CAAC,WAAW,EAAE;QAChC,IAAI;YACF,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;SAC7D;QAAC,OAAO,CAAC,EAAE;YACV,OAAO,CAAC,IAAI,CAAC,kDAAkD,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC;SAC7E;KACF;IACD,OAAO,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;CACzC;;;;;;;AAWD,MAAa,0BAA0B;;;YAHtC,QAAQ,SAAC;gBACR,SAAS,EAAE,CAAC,EAAC,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAACd,UAAQ,EAAE,MAAM,CAAC,EAAC,CAAC;aAC/F;;;;;;;;;;;;AChJD,MAAa,EAAE;;;;;;;;;;IASb,OAAO,GAAG,KAA8B,OAAO,CAAC,YAAY,KAAK,IAAI,CAAC,EAAE;;;;;;;;;;;IAUxE,OAAO,GAAG,CAAC,QAAgB;QACzB,OAAO,CAAC,YAAY;YAClB,OAAO,YAAY,CAAC,aAAa,IAAI,IAAI;gBACrC,MAAM,EAAE,CAAC,cAAc,CAAC,YAAY,CAAC,aAAa,EAAE,QAAQ,CAAC;gBAC7D,KAAK,CAAC;SACX,CAAC;KACH;;;;;;;;;;;IAUD,OAAO,SAAS,CAAC,IAAe;QAC9B,OAAO,CAAC,YAAY,KAAK,mBAAA,YAAY,CAAC,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;KAC7E;CACF;;;;;;;;;;;;;;;ACrCD,MAAa,OAAO,GAAG,IAAI,OAAO,CAAC,mBAAmB,CAAC;;;;;;;;;;;;;;;;;ACnBvD;;GAEG;;;;"}
\ No newline at end of file
+{"version":3,"file":"platform-browser.js","sources":["../src/dom/dom_adapter.ts","../src/browser/generic_browser_adapter.ts","../src/browser/browser_adapter.ts","../src/dom/dom_tokens.ts","../src/browser/location/history.ts","../src/browser/location/browser_platform_location.ts","../src/browser/server-transition.ts","../src/browser/testability.ts","../src/dom/util.ts","../src/dom/debug/ng_probe.ts","../src/dom/events/event_manager.ts","../src/dom/shared_styles_host.ts","../src/dom/dom_renderer.ts","../src/dom/events/dom_events.ts","../src/dom/events/hammer_gestures.ts","../src/dom/events/key_events.ts","../src/security/dom_sanitization_service.ts","../src/browser.ts","../src/browser/meta.ts","../src/browser/title.ts","../src/browser/tools/browser.ts","../src/browser/tools/common_tools.ts","../src/browser/tools/tools.ts","../src/browser/transfer_state.ts","../src/dom/debug/by.ts","../src/version.ts","../platform-browser.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Type} from '@angular/core';\n\nlet _DOM: DomAdapter = null !;\n\nexport function getDOM() {\n return _DOM;\n}\n\nexport function setDOM(adapter: DomAdapter) {\n _DOM = adapter;\n}\n\nexport function setRootDomAdapter(adapter: DomAdapter) {\n if (!_DOM) {\n _DOM = adapter;\n }\n}\n\n/* tslint:disable:requireParameterType */\n/**\n * Provides DOM operations in an environment-agnostic way.\n *\n * @security Tread carefully! Interacting with the DOM directly is dangerous and\n * can introduce XSS risks.\n */\nexport abstract class DomAdapter {\n public resourceLoaderType: Type<any> = null !;\n abstract hasProperty(element: any, name: string): boolean;\n abstract setProperty(el: Element, name: string, value: any): any;\n abstract getProperty(el: Element, name: string): any;\n abstract invoke(el: Element, methodName: string, args: any[]): any;\n\n abstract logError(error: any): any;\n abstract log(error: any): any;\n abstract logGroup(error: any): any;\n abstract logGroupEnd(): any;\n\n /**\n * Maps attribute names to their corresponding property names for cases\n * where attribute name doesn't match property name.\n */\n get attrToPropMap(): {[key: string]: string} { return this._attrToPropMap; }\n set attrToPropMap(value: {[key: string]: string}) { this._attrToPropMap = value; }\n /** @internal */\n // TODO(issue/24571): remove '!'.\n _attrToPropMap !: {[key: string]: string};\n\n abstract contains(nodeA: any, nodeB: any): boolean;\n abstract parse(templateHtml: string): any;\n abstract querySelector(el: any, selector: string): any;\n abstract querySelectorAll(el: any, selector: string): any[];\n abstract on(el: any, evt: any, listener: any): any;\n abstract onAndCancel(el: any, evt: any, listener: any): Function;\n abstract dispatchEvent(el: any, evt: any): any;\n abstract createMouseEvent(eventType: any): any;\n abstract createEvent(eventType: string): any;\n abstract preventDefault(evt: any): any;\n abstract isPrevented(evt: any): boolean;\n abstract getInnerHTML(el: any): string;\n /** Returns content if el is a <template> element, null otherwise. */\n abstract getTemplateContent(el: any): any;\n abstract getOuterHTML(el: any): string;\n abstract nodeName(node: any): string;\n abstract nodeValue(node: any): string|null;\n abstract type(node: any): string;\n abstract content(node: any): any;\n abstract firstChild(el: any): Node|null;\n abstract nextSibling(el: any): Node|null;\n abstract parentElement(el: any): Node|null;\n abstract childNodes(el: any): Node[];\n abstract childNodesAsList(el: any): Node[];\n abstract clearNodes(el: any): any;\n abstract appendChild(el: any, node: any): any;\n abstract removeChild(el: any, node: any): any;\n abstract replaceChild(el: any, newNode: any, oldNode: any): any;\n abstract remove(el: any): Node;\n abstract insertBefore(parent: any, ref: any, node: any): any;\n abstract insertAllBefore(parent: any, ref: any, nodes: any): any;\n abstract insertAfter(parent: any, el: any, node: any): any;\n abstract setInnerHTML(el: any, value: any): any;\n abstract getText(el: any): string|null;\n abstract setText(el: any, value: string): any;\n abstract getValue(el: any): string;\n abstract setValue(el: any, value: string): any;\n abstract getChecked(el: any): boolean;\n abstract setChecked(el: any, value: boolean): any;\n abstract createComment(text: string): any;\n abstract createTemplate(html: any): HTMLElement;\n abstract createElement(tagName: any, doc?: any): HTMLElement;\n abstract createElementNS(ns: string, tagName: string, doc?: any): Element;\n abstract createTextNode(text: string, doc?: any): Text;\n abstract createScriptTag(attrName: string, attrValue: string, doc?: any): HTMLElement;\n abstract createStyleElement(css: string, doc?: any): HTMLStyleElement;\n abstract createShadowRoot(el: any): any;\n abstract getShadowRoot(el: any): any;\n abstract getHost(el: any): any;\n abstract getDistributedNodes(el: any): Node[];\n abstract clone /*<T extends Node>*/ (node: Node /*T*/): Node /*T*/;\n abstract getElementsByClassName(element: any, name: string): HTMLElement[];\n abstract getElementsByTagName(element: any, name: string): HTMLElement[];\n abstract classList(element: any): any[];\n abstract addClass(element: any, className: string): any;\n abstract removeClass(element: any, className: string): any;\n abstract hasClass(element: any, className: string): boolean;\n abstract setStyle(element: any, styleName: string, styleValue: string): any;\n abstract removeStyle(element: any, styleName: string): any;\n abstract getStyle(element: any, styleName: string): string;\n abstract hasStyle(element: any, styleName: string, styleValue?: string): boolean;\n abstract tagName(element: any): string;\n abstract attributeMap(element: any): Map<string, string>;\n abstract hasAttribute(element: any, attribute: string): boolean;\n abstract hasAttributeNS(element: any, ns: string, attribute: string): boolean;\n abstract getAttribute(element: any, attribute: string): string|null;\n abstract getAttributeNS(element: any, ns: string, attribute: string): string|null;\n abstract setAttribute(element: any, name: string, value: string): any;\n abstract setAttributeNS(element: any, ns: string, name: string, value: string): any;\n abstract removeAttribute(element: any, attribute: string): any;\n abstract removeAttributeNS(element: any, ns: string, attribute: string): any;\n abstract templateAwareRoot(el: any): any;\n abstract createHtmlDocument(): HTMLDocument;\n abstract getDefaultDocument(): Document;\n abstract getBoundingClientRect(el: any): any;\n abstract getTitle(doc: Document): string;\n abstract setTitle(doc: Document, newTitle: string): any;\n abstract elementMatches(n: any, selector: string): boolean;\n abstract isTemplateElement(el: any): boolean;\n abstract isTextNode(node: any): boolean;\n abstract isCommentNode(node: any): boolean;\n abstract isElementNode(node: any): boolean;\n abstract hasShadowRoot(node: any): boolean;\n abstract isShadowRoot(node: any): boolean;\n abstract importIntoDoc /*<T extends Node>*/ (node: Node /*T*/): Node /*T*/;\n abstract adoptNode /*<T extends Node>*/ (node: Node /*T*/): Node /*T*/;\n abstract getHref(element: any): string;\n abstract getEventKey(event: any): string;\n abstract resolveAndSetHref(element: any, baseUrl: string, href: string): any;\n abstract supportsDOMEvents(): boolean;\n abstract supportsNativeShadowDOM(): boolean;\n abstract getGlobalEventTarget(doc: Document, target: string): any;\n abstract getHistory(): History;\n abstract getLocation(): Location;\n abstract getBaseHref(doc: Document): string|null;\n abstract resetBaseElement(): void;\n abstract getUserAgent(): string;\n abstract setData(element: any, name: string, value: string): any;\n abstract getComputedStyle(element: any): any;\n abstract getData(element: any, name: string): string|null;\n abstract supportsWebAnimation(): boolean;\n abstract performanceNow(): number;\n abstract getAnimationPrefix(): string;\n abstract getTransitionEnd(): string;\n abstract supportsAnimation(): boolean;\n\n abstract supportsCookies(): boolean;\n abstract getCookie(name: string): string|null;\n abstract setCookie(name: string, value: string): any;\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {DomAdapter} from '../dom/dom_adapter';\n\n\n\n/**\n * Provides DOM operations in any browser environment.\n *\n * @security Tread carefully! Interacting with the DOM directly is dangerous and\n * can introduce XSS risks.\n */\nexport abstract class GenericBrowserDomAdapter extends DomAdapter {\n private _animationPrefix: string|null = null;\n private _transitionEnd: string|null = null;\n constructor() {\n super();\n try {\n const element = this.createElement('div', document);\n if (this.getStyle(element, 'animationName') != null) {\n this._animationPrefix = '';\n } else {\n const domPrefixes = ['Webkit', 'Moz', 'O', 'ms'];\n\n for (let i = 0; i < domPrefixes.length; i++) {\n if (this.getStyle(element, domPrefixes[i] + 'AnimationName') != null) {\n this._animationPrefix = '-' + domPrefixes[i].toLowerCase() + '-';\n break;\n }\n }\n }\n\n const transEndEventNames: {[key: string]: string} = {\n WebkitTransition: 'webkitTransitionEnd',\n MozTransition: 'transitionend',\n OTransition: 'oTransitionEnd otransitionend',\n transition: 'transitionend'\n };\n\n Object.keys(transEndEventNames).forEach((key: string) => {\n if (this.getStyle(element, key) != null) {\n this._transitionEnd = transEndEventNames[key];\n }\n });\n } catch {\n this._animationPrefix = null;\n this._transitionEnd = null;\n }\n }\n\n getDistributedNodes(el: HTMLElement): Node[] { return (<any>el).getDistributedNodes(); }\n resolveAndSetHref(el: HTMLAnchorElement, baseUrl: string, href: string) {\n el.href = href == null ? baseUrl : baseUrl + '/../' + href;\n }\n supportsDOMEvents(): boolean { return true; }\n supportsNativeShadowDOM(): boolean {\n return typeof(<any>document.body).createShadowRoot === 'function';\n }\n getAnimationPrefix(): string { return this._animationPrefix ? this._animationPrefix : ''; }\n getTransitionEnd(): string { return this._transitionEnd ? this._transitionEnd : ''; }\n supportsAnimation(): boolean {\n return this._animationPrefix != null && this._transitionEnd != null;\n }\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {ɵparseCookieValue as parseCookieValue} from '@angular/common';\nimport {ɵglobal as global} from '@angular/core';\n\nimport {setRootDomAdapter} from '../dom/dom_adapter';\n\nimport {GenericBrowserDomAdapter} from './generic_browser_adapter';\n\nconst _attrToPropMap = {\n 'class': 'className',\n 'innerHtml': 'innerHTML',\n 'readonly': 'readOnly',\n 'tabindex': 'tabIndex',\n};\n\nconst DOM_KEY_LOCATION_NUMPAD = 3;\n\n// Map to convert some key or keyIdentifier values to what will be returned by getEventKey\nconst _keyMap: {[k: string]: string} = {\n // The following values are here for cross-browser compatibility and to match the W3C standard\n // cf http://www.w3.org/TR/DOM-Level-3-Events-key/\n '\\b': 'Backspace',\n '\\t': 'Tab',\n '\\x7F': 'Delete',\n '\\x1B': 'Escape',\n 'Del': 'Delete',\n 'Esc': 'Escape',\n 'Left': 'ArrowLeft',\n 'Right': 'ArrowRight',\n 'Up': 'ArrowUp',\n 'Down': 'ArrowDown',\n 'Menu': 'ContextMenu',\n 'Scroll': 'ScrollLock',\n 'Win': 'OS'\n};\n\n// There is a bug in Chrome for numeric keypad keys:\n// https://code.google.com/p/chromium/issues/detail?id=155654\n// 1, 2, 3 ... are reported as A, B, C ...\nconst _chromeNumKeyPadMap = {\n 'A': '1',\n 'B': '2',\n 'C': '3',\n 'D': '4',\n 'E': '5',\n 'F': '6',\n 'G': '7',\n 'H': '8',\n 'I': '9',\n 'J': '*',\n 'K': '+',\n 'M': '-',\n 'N': '.',\n 'O': '/',\n '\\x60': '0',\n '\\x90': 'NumLock'\n};\n\nlet nodeContains: (a: any, b: any) => boolean;\n\nif (global['Node']) {\n nodeContains = global['Node'].prototype.contains || function(node) {\n return !!(this.compareDocumentPosition(node) & 16);\n };\n}\n\n/**\n * A `DomAdapter` powered by full browser DOM APIs.\n *\n * @security Tread carefully! Interacting with the DOM directly is dangerous and\n * can introduce XSS risks.\n */\n/* tslint:disable:requireParameterType no-console */\nexport class BrowserDomAdapter extends GenericBrowserDomAdapter {\n parse(templateHtml: string) { throw new Error('parse not implemented'); }\n static makeCurrent() { setRootDomAdapter(new BrowserDomAdapter()); }\n hasProperty(element: Node, name: string): boolean { return name in element; }\n setProperty(el: Node, name: string, value: any) { (<any>el)[name] = value; }\n getProperty(el: Node, name: string): any { return (<any>el)[name]; }\n invoke(el: Node, methodName: string, args: any[]): any { (<any>el)[methodName](...args); }\n\n // TODO(tbosch): move this into a separate environment class once we have it\n logError(error: string): void {\n if (window.console) {\n if (console.error) {\n console.error(error);\n } else {\n console.log(error);\n }\n }\n }\n\n log(error: string): void {\n if (window.console) {\n window.console.log && window.console.log(error);\n }\n }\n\n logGroup(error: string): void {\n if (window.console) {\n window.console.group && window.console.group(error);\n }\n }\n\n logGroupEnd(): void {\n if (window.console) {\n window.console.groupEnd && window.console.groupEnd();\n }\n }\n\n get attrToPropMap(): any { return _attrToPropMap; }\n\n contains(nodeA: any, nodeB: any): boolean { return nodeContains.call(nodeA, nodeB); }\n querySelector(el: HTMLElement, selector: string): any { return el.querySelector(selector); }\n querySelectorAll(el: any, selector: string): any[] { return el.querySelectorAll(selector); }\n on(el: Node, evt: any, listener: any) { el.addEventListener(evt, listener, false); }\n onAndCancel(el: Node, evt: any, listener: any): Function {\n el.addEventListener(evt, listener, false);\n // Needed to follow Dart's subscription semantic, until fix of\n // https://code.google.com/p/dart/issues/detail?id=17406\n return () => { el.removeEventListener(evt, listener, false); };\n }\n dispatchEvent(el: Node, evt: any) { el.dispatchEvent(evt); }\n createMouseEvent(eventType: string): MouseEvent {\n const evt: MouseEvent = this.getDefaultDocument().createEvent('MouseEvent');\n evt.initEvent(eventType, true, true);\n return evt;\n }\n createEvent(eventType: any): Event {\n const evt: Event = this.getDefaultDocument().createEvent('Event');\n evt.initEvent(eventType, true, true);\n return evt;\n }\n preventDefault(evt: Event) {\n evt.preventDefault();\n evt.returnValue = false;\n }\n isPrevented(evt: Event): boolean {\n return evt.defaultPrevented || evt.returnValue != null && !evt.returnValue;\n }\n getInnerHTML(el: HTMLElement): string { return el.innerHTML; }\n getTemplateContent(el: Node): Node|null {\n return 'content' in el && this.isTemplateElement(el) ? (<any>el).content : null;\n }\n getOuterHTML(el: HTMLElement): string { return el.outerHTML; }\n nodeName(node: Node): string { return node.nodeName; }\n nodeValue(node: Node): string|null { return node.nodeValue; }\n type(node: HTMLInputElement): string { return node.type; }\n content(node: Node): Node {\n if (this.hasProperty(node, 'content')) {\n return (<any>node).content;\n } else {\n return node;\n }\n }\n firstChild(el: Node): Node|null { return el.firstChild; }\n nextSibling(el: Node): Node|null { return el.nextSibling; }\n parentElement(el: Node): Node|null { return el.parentNode; }\n childNodes(el: any): Node[] { return el.childNodes; }\n childNodesAsList(el: Node): any[] {\n const childNodes = el.childNodes;\n const res = new Array(childNodes.length);\n for (let i = 0; i < childNodes.length; i++) {\n res[i] = childNodes[i];\n }\n return res;\n }\n clearNodes(el: Node) {\n while (el.firstChild) {\n el.removeChild(el.firstChild);\n }\n }\n appendChild(el: Node, node: Node) { el.appendChild(node); }\n removeChild(el: Node, node: Node) { el.removeChild(node); }\n replaceChild(el: Node, newChild: Node, oldChild: Node) { el.replaceChild(newChild, oldChild); }\n remove(node: Node): Node {\n if (node.parentNode) {\n node.parentNode.removeChild(node);\n }\n return node;\n }\n insertBefore(parent: Node, ref: Node, node: Node) { parent.insertBefore(node, ref); }\n insertAllBefore(parent: Node, ref: Node, nodes: Node[]) {\n nodes.forEach((n: any) => parent.insertBefore(n, ref));\n }\n insertAfter(parent: Node, ref: Node, node: any) { parent.insertBefore(node, ref.nextSibling); }\n setInnerHTML(el: Element, value: string) { el.innerHTML = value; }\n getText(el: Node): string|null { return el.textContent; }\n setText(el: Node, value: string) { el.textContent = value; }\n getValue(el: any): string { return el.value; }\n setValue(el: any, value: string) { el.value = value; }\n getChecked(el: any): boolean { return el.checked; }\n setChecked(el: any, value: boolean) { el.checked = value; }\n createComment(text: string): Comment { return this.getDefaultDocument().createComment(text); }\n createTemplate(html: any): HTMLElement {\n const t = this.getDefaultDocument().createElement('template');\n t.innerHTML = html;\n return t;\n }\n createElement(tagName: string, doc?: Document): HTMLElement {\n doc = doc || this.getDefaultDocument();\n return doc.createElement(tagName);\n }\n createElementNS(ns: string, tagName: string, doc?: Document): Element {\n doc = doc || this.getDefaultDocument();\n return doc.createElementNS(ns, tagName);\n }\n createTextNode(text: string, doc?: Document): Text {\n doc = doc || this.getDefaultDocument();\n return doc.createTextNode(text);\n }\n createScriptTag(attrName: string, attrValue: string, doc?: Document): HTMLScriptElement {\n doc = doc || this.getDefaultDocument();\n const el = <HTMLScriptElement>doc.createElement('SCRIPT');\n el.setAttribute(attrName, attrValue);\n return el;\n }\n createStyleElement(css: string, doc?: Document): HTMLStyleElement {\n doc = doc || this.getDefaultDocument();\n const style = <HTMLStyleElement>doc.createElement('style');\n this.appendChild(style, this.createTextNode(css, doc));\n return style;\n }\n createShadowRoot(el: HTMLElement): DocumentFragment { return (<any>el).createShadowRoot(); }\n getShadowRoot(el: HTMLElement): DocumentFragment { return (<any>el).shadowRoot; }\n getHost(el: HTMLElement): HTMLElement { return (<any>el).host; }\n clone(node: Node): Node { return node.cloneNode(true); }\n getElementsByClassName(element: any, name: string): HTMLElement[] {\n return element.getElementsByClassName(name);\n }\n getElementsByTagName(element: any, name: string): HTMLElement[] {\n return element.getElementsByTagName(name);\n }\n classList(element: any): any[] { return Array.prototype.slice.call(element.classList, 0); }\n addClass(element: any, className: string) { element.classList.add(className); }\n removeClass(element: any, className: string) { element.classList.remove(className); }\n hasClass(element: any, className: string): boolean {\n return element.classList.contains(className);\n }\n setStyle(element: any, styleName: string, styleValue: string) {\n element.style[styleName] = styleValue;\n }\n removeStyle(element: any, stylename: string) {\n // IE requires '' instead of null\n // see https://github.com/angular/angular/issues/7916\n element.style[stylename] = '';\n }\n getStyle(element: any, stylename: string): string { return element.style[stylename]; }\n hasStyle(element: any, styleName: string, styleValue?: string|null): boolean {\n const value = this.getStyle(element, styleName) || '';\n return styleValue ? value == styleValue : value.length > 0;\n }\n tagName(element: any): string { return element.tagName; }\n attributeMap(element: any): Map<string, string> {\n const res = new Map<string, string>();\n const elAttrs = element.attributes;\n for (let i = 0; i < elAttrs.length; i++) {\n const attrib = elAttrs.item(i);\n res.set(attrib.name, attrib.value);\n }\n return res;\n }\n hasAttribute(element: Element, attribute: string): boolean {\n return element.hasAttribute(attribute);\n }\n hasAttributeNS(element: Element, ns: string, attribute: string): boolean {\n return element.hasAttributeNS(ns, attribute);\n }\n getAttribute(element: Element, attribute: string): string|null {\n return element.getAttribute(attribute);\n }\n getAttributeNS(element: Element, ns: string, name: string): string|null {\n return element.getAttributeNS(ns, name);\n }\n setAttribute(element: Element, name: string, value: string) { element.setAttribute(name, value); }\n setAttributeNS(element: Element, ns: string, name: string, value: string) {\n element.setAttributeNS(ns, name, value);\n }\n removeAttribute(element: Element, attribute: string) { element.removeAttribute(attribute); }\n removeAttributeNS(element: Element, ns: string, name: string) {\n element.removeAttributeNS(ns, name);\n }\n templateAwareRoot(el: Node): any { return this.isTemplateElement(el) ? this.content(el) : el; }\n createHtmlDocument(): HTMLDocument {\n return document.implementation.createHTMLDocument('fakeTitle');\n }\n getDefaultDocument(): Document { return document; }\n getBoundingClientRect(el: Element): any {\n try {\n return el.getBoundingClientRect();\n } catch {\n return {top: 0, bottom: 0, left: 0, right: 0, width: 0, height: 0};\n }\n }\n getTitle(doc: Document): string { return doc.title; }\n setTitle(doc: Document, newTitle: string) { doc.title = newTitle || ''; }\n elementMatches(n: any, selector: string): boolean {\n if (this.isElementNode(n)) {\n return n.matches && n.matches(selector) ||\n n.msMatchesSelector && n.msMatchesSelector(selector) ||\n n.webkitMatchesSelector && n.webkitMatchesSelector(selector);\n }\n\n return false;\n }\n isTemplateElement(el: Node): boolean {\n return this.isElementNode(el) && el.nodeName === 'TEMPLATE';\n }\n isTextNode(node: Node): boolean { return node.nodeType === Node.TEXT_NODE; }\n isCommentNode(node: Node): boolean { return node.nodeType === Node.COMMENT_NODE; }\n isElementNode(node: Node): boolean { return node.nodeType === Node.ELEMENT_NODE; }\n hasShadowRoot(node: any): boolean {\n return node.shadowRoot != null && node instanceof HTMLElement;\n }\n isShadowRoot(node: any): boolean { return node instanceof DocumentFragment; }\n importIntoDoc(node: Node): any { return document.importNode(this.templateAwareRoot(node), true); }\n adoptNode(node: Node): any { return document.adoptNode(node); }\n getHref(el: Element): string { return el.getAttribute('href') !; }\n\n getEventKey(event: any): string {\n let key = event.key;\n if (key == null) {\n key = event.keyIdentifier;\n // keyIdentifier is defined in the old draft of DOM Level 3 Events implemented by Chrome and\n // Safari cf\n // http://www.w3.org/TR/2007/WD-DOM-Level-3-Events-20071221/events.html#Events-KeyboardEvents-Interfaces\n if (key == null) {\n return 'Unidentified';\n }\n if (key.startsWith('U+')) {\n key = String.fromCharCode(parseInt(key.substring(2), 16));\n if (event.location === DOM_KEY_LOCATION_NUMPAD && _chromeNumKeyPadMap.hasOwnProperty(key)) {\n // There is a bug in Chrome for numeric keypad keys:\n // https://code.google.com/p/chromium/issues/detail?id=155654\n // 1, 2, 3 ... are reported as A, B, C ...\n key = (_chromeNumKeyPadMap as any)[key];\n }\n }\n }\n\n return _keyMap[key] || key;\n }\n getGlobalEventTarget(doc: Document, target: string): EventTarget|null {\n if (target === 'window') {\n return window;\n }\n if (target === 'document') {\n return doc;\n }\n if (target === 'body') {\n return doc.body;\n }\n return null;\n }\n getHistory(): History { return window.history; }\n getLocation(): Location { return window.location; }\n getBaseHref(doc: Document): string|null {\n const href = getBaseElementHref();\n return href == null ? null : relativePath(href);\n }\n resetBaseElement(): void { baseElement = null; }\n getUserAgent(): string { return window.navigator.userAgent; }\n setData(element: Element, name: string, value: string) {\n this.setAttribute(element, 'data-' + name, value);\n }\n getData(element: Element, name: string): string|null {\n return this.getAttribute(element, 'data-' + name);\n }\n getComputedStyle(element: any): any { return getComputedStyle(element); }\n // TODO(tbosch): move this into a separate environment class once we have it\n supportsWebAnimation(): boolean {\n return typeof(<any>Element).prototype['animate'] === 'function';\n }\n performanceNow(): number {\n // performance.now() is not available in all browsers, see\n // http://caniuse.com/#search=performance.now\n return window.performance && window.performance.now ? window.performance.now() :\n new Date().getTime();\n }\n\n supportsCookies(): boolean { return true; }\n\n getCookie(name: string): string|null { return parseCookieValue(document.cookie, name); }\n\n setCookie(name: string, value: string) {\n // document.cookie is magical, assigning into it assigns/overrides one cookie value, but does\n // not clear other cookies.\n document.cookie = encodeURIComponent(name) + '=' + encodeURIComponent(value);\n }\n}\n\nlet baseElement: HTMLElement|null = null;\nfunction getBaseElementHref(): string|null {\n if (!baseElement) {\n baseElement = document.querySelector('base') !;\n if (!baseElement) {\n return null;\n }\n }\n return baseElement.getAttribute('href');\n}\n\n// based on urlUtils.js in AngularJS 1\nlet urlParsingNode: any;\nfunction relativePath(url: any): string {\n if (!urlParsingNode) {\n urlParsingNode = document.createElement('a');\n }\n urlParsingNode.setAttribute('href', url);\n return (urlParsingNode.pathname.charAt(0) === '/') ? urlParsingNode.pathname :\n '/' + urlParsingNode.pathname;\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {DOCUMENT as commonDOCUMENT} from '@angular/common';\nimport {InjectionToken} from '@angular/core';\n\n\n/**\n * A DI Token representing the main rendering context. In a browser this is the DOM Document.\n *\n * Note: Document might not be available in the Application Context when Application and Rendering\n * Contexts are not the same (e.g. when running the application into a Web Worker).\n *\n * @deprecated import from `@angular/common` instead.\n * @publicApi\n */\nexport const DOCUMENT = commonDOCUMENT;\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nexport function supportsState(): boolean {\n return !!window.history.pushState;\n}","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {LocationChangeListener, PlatformLocation} from '@angular/common';\nimport {Inject, Injectable} from '@angular/core';\n\nimport {getDOM} from '../../dom/dom_adapter';\nimport {DOCUMENT} from '../../dom/dom_tokens';\n\nimport {supportsState} from './history';\n\n\n\n/**\n * `PlatformLocation` encapsulates all of the direct calls to platform APIs.\n * This class should not be used directly by an application developer. Instead, use\n * {@link Location}.\n */\n@Injectable()\nexport class BrowserPlatformLocation extends PlatformLocation {\n // TODO(issue/24571): remove '!'.\n public readonly location !: Location;\n // TODO(issue/24571): remove '!'.\n private _history !: History;\n\n constructor(@Inject(DOCUMENT) private _doc: any) {\n super();\n this._init();\n }\n\n // This is moved to its own method so that `MockPlatformLocationStrategy` can overwrite it\n /** @internal */\n _init() {\n (this as{location: Location}).location = getDOM().getLocation();\n this._history = getDOM().getHistory();\n }\n\n getBaseHrefFromDOM(): string { return getDOM().getBaseHref(this._doc) !; }\n\n onPopState(fn: LocationChangeListener): void {\n getDOM().getGlobalEventTarget(this._doc, 'window').addEventListener('popstate', fn, false);\n }\n\n onHashChange(fn: LocationChangeListener): void {\n getDOM().getGlobalEventTarget(this._doc, 'window').addEventListener('hashchange', fn, false);\n }\n\n get pathname(): string { return this.location.pathname; }\n get search(): string { return this.location.search; }\n get hash(): string { return this.location.hash; }\n set pathname(newPath: string) { this.location.pathname = newPath; }\n\n pushState(state: any, title: string, url: string): void {\n if (supportsState()) {\n this._history.pushState(state, title, url);\n } else {\n this.location.hash = url;\n }\n }\n\n replaceState(state: any, title: string, url: string): void {\n if (supportsState()) {\n this._history.replaceState(state, title, url);\n } else {\n this.location.hash = url;\n }\n }\n\n forward(): void { this._history.forward(); }\n\n back(): void { this._history.back(); }\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {APP_INITIALIZER, ApplicationInitStatus, Inject, InjectionToken, Injector, StaticProvider} from '@angular/core';\n\nimport {getDOM} from '../dom/dom_adapter';\nimport {DOCUMENT} from '../dom/dom_tokens';\n\n/**\n * An id that identifies a particular application being bootstrapped, that should\n * match across the client/server boundary.\n */\nexport const TRANSITION_ID = new InjectionToken('TRANSITION_ID');\n\nexport function appInitializerFactory(transitionId: string, document: any, injector: Injector) {\n return () => {\n // Wait for all application initializers to be completed before removing the styles set by\n // the server.\n injector.get(ApplicationInitStatus).donePromise.then(() => {\n const dom = getDOM();\n const styles: any[] =\n Array.prototype.slice.apply(dom.querySelectorAll(document, `style[ng-transition]`));\n styles.filter(el => dom.getAttribute(el, 'ng-transition') === transitionId)\n .forEach(el => dom.remove(el));\n });\n };\n}\n\nexport const SERVER_TRANSITION_PROVIDERS: StaticProvider[] = [\n {\n provide: APP_INITIALIZER,\n useFactory: appInitializerFactory,\n deps: [TRANSITION_ID, DOCUMENT, Injector],\n multi: true\n },\n];\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {GetTestability, Testability, TestabilityRegistry, setTestabilityGetter, ɵglobal as global} from '@angular/core';\n\nimport {getDOM} from '../dom/dom_adapter';\n\nexport class BrowserGetTestability implements GetTestability {\n static init() { setTestabilityGetter(new BrowserGetTestability()); }\n\n addToWindow(registry: TestabilityRegistry): void {\n global['getAngularTestability'] = (elem: any, findInAncestors: boolean = true) => {\n const testability = registry.findTestabilityInTree(elem, findInAncestors);\n if (testability == null) {\n throw new Error('Could not find testability for element.');\n }\n return testability;\n };\n\n global['getAllAngularTestabilities'] = () => registry.getAllTestabilities();\n\n global['getAllAngularRootElements'] = () => registry.getAllRootElements();\n\n const whenAllStable = (callback: any /** TODO #9100 */) => {\n const testabilities = global['getAllAngularTestabilities']();\n let count = testabilities.length;\n let didWork = false;\n const decrement = function(didWork_: any /** TODO #9100 */) {\n didWork = didWork || didWork_;\n count--;\n if (count == 0) {\n callback(didWork);\n }\n };\n testabilities.forEach(function(testability: any /** TODO #9100 */) {\n testability.whenStable(decrement);\n });\n };\n\n if (!global['frameworkStabilizers']) {\n global['frameworkStabilizers'] = [];\n }\n global['frameworkStabilizers'].push(whenAllStable);\n }\n\n findTestabilityInTree(registry: TestabilityRegistry, elem: any, findInAncestors: boolean):\n Testability|null {\n if (elem == null) {\n return null;\n }\n const t = registry.getTestability(elem);\n if (t != null) {\n return t;\n } else if (!findInAncestors) {\n return null;\n }\n if (getDOM().isShadowRoot(elem)) {\n return this.findTestabilityInTree(registry, getDOM().getHost(elem), true);\n }\n return this.findTestabilityInTree(registry, getDOM().parentElement(elem), true);\n }\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {ɵglobal as global} from '@angular/core';\n\nconst CAMEL_CASE_REGEXP = /([A-Z])/g;\nconst DASH_CASE_REGEXP = /-([a-z])/g;\n\n\nexport function camelCaseToDashCase(input: string): string {\n return input.replace(CAMEL_CASE_REGEXP, (...m: string[]) => '-' + m[1].toLowerCase());\n}\n\nexport function dashCaseToCamelCase(input: string): string {\n return input.replace(DASH_CASE_REGEXP, (...m: string[]) => m[1].toUpperCase());\n}\n\n/**\n * Exports the value under a given `name` in the global property `ng`. For example `ng.probe` if\n * `name` is `'probe'`.\n * @param name Name under which it will be exported. Keep in mind this will be a property of the\n * global `ng` object.\n * @param value The value to export.\n */\nexport function exportNgVar(name: string, value: any): void {\n if (typeof COMPILED === 'undefined' || !COMPILED) {\n // Note: we can't export `ng` when using closure enhanced optimization as:\n // - closure declares globals itself for minified names, which sometimes clobber our `ng` global\n // - we can't declare a closure extern as the namespace `ng` is already used within Google\n // for typings for angularJS (via `goog.provide('ng....')`).\n const ng = global['ng'] = (global['ng'] as{[key: string]: any} | undefined) || {};\n ng[name] = value;\n }\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport * as core from '@angular/core';\nimport {exportNgVar} from '../util';\n\nconst CORE_TOKENS = {\n 'ApplicationRef': core.ApplicationRef,\n 'NgZone': core.NgZone,\n};\n\nconst INSPECT_GLOBAL_NAME = 'probe';\nconst CORE_TOKENS_GLOBAL_NAME = 'coreTokens';\n\n/**\n * Returns a {@link DebugElement} for the given native DOM element, or\n * null if the given native element does not have an Angular view associated\n * with it.\n */\nexport function inspectNativeElement(element: any): core.DebugNode|null {\n return core.getDebugNode(element);\n}\n\nexport function _createNgProbe(coreTokens: core.NgProbeToken[]): any {\n exportNgVar(INSPECT_GLOBAL_NAME, inspectNativeElement);\n exportNgVar(CORE_TOKENS_GLOBAL_NAME, {...CORE_TOKENS, ..._ngProbeTokensToMap(coreTokens || [])});\n return () => inspectNativeElement;\n}\n\nfunction _ngProbeTokensToMap(tokens: core.NgProbeToken[]): {[name: string]: any} {\n return tokens.reduce((prev: any, t: any) => (prev[t.name] = t.token, prev), {});\n}\n\n/**\n * Providers which support debugging Angular applications (e.g. via `ng.probe`).\n */\nexport const ELEMENT_PROBE_PROVIDERS: core.Provider[] = [\n {\n provide: core.APP_INITIALIZER,\n useFactory: _createNgProbe,\n deps: [\n [core.NgProbeToken, new core.Optional()],\n ],\n multi: true,\n },\n];\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Inject, Injectable, InjectionToken, NgZone} from '@angular/core';\n\nimport {getDOM} from '../dom_adapter';\n\n/**\n * The injection token for the event-manager plug-in service.\n *\n * @publicApi\n */\nexport const EVENT_MANAGER_PLUGINS =\n new InjectionToken<EventManagerPlugin[]>('EventManagerPlugins');\n\n/**\n * An injectable service that provides event management for Angular\n * through a browser plug-in.\n *\n * @publicApi\n */\n@Injectable()\nexport class EventManager {\n private _plugins: EventManagerPlugin[];\n private _eventNameToPlugin = new Map<string, EventManagerPlugin>();\n\n /**\n * Initializes an instance of the event-manager service.\n */\n constructor(@Inject(EVENT_MANAGER_PLUGINS) plugins: EventManagerPlugin[], private _zone: NgZone) {\n plugins.forEach(p => p.manager = this);\n this._plugins = plugins.slice().reverse();\n }\n\n /**\n * Registers a handler for a specific element and event.\n *\n * @param element The HTML element to receive event notifications.\n * @param eventName The name of the event to listen for.\n * @param handler A function to call when the notification occurs. Receives the\n * event object as an argument.\n * @returns A callback function that can be used to remove the handler.\n */\n addEventListener(element: HTMLElement, eventName: string, handler: Function): Function {\n const plugin = this._findPluginFor(eventName);\n return plugin.addEventListener(element, eventName, handler);\n }\n\n /**\n * Registers a global handler for an event in a target view.\n *\n * @param target A target for global event notifications. One of \"window\", \"document\", or \"body\".\n * @param eventName The name of the event to listen for.\n * @param handler A function to call when the notification occurs. Receives the\n * event object as an argument.\n * @returns A callback function that can be used to remove the handler.\n */\n addGlobalEventListener(target: string, eventName: string, handler: Function): Function {\n const plugin = this._findPluginFor(eventName);\n return plugin.addGlobalEventListener(target, eventName, handler);\n }\n\n /**\n * Retrieves the compilation zone in which event listeners are registered.\n */\n getZone(): NgZone { return this._zone; }\n\n /** @internal */\n _findPluginFor(eventName: string): EventManagerPlugin {\n const plugin = this._eventNameToPlugin.get(eventName);\n if (plugin) {\n return plugin;\n }\n\n const plugins = this._plugins;\n for (let i = 0; i < plugins.length; i++) {\n const plugin = plugins[i];\n if (plugin.supports(eventName)) {\n this._eventNameToPlugin.set(eventName, plugin);\n return plugin;\n }\n }\n throw new Error(`No event manager plugin found for event ${eventName}`);\n }\n}\n\nexport abstract class EventManagerPlugin {\n constructor(private _doc: any) {}\n\n // TODO(issue/24571): remove '!'.\n manager !: EventManager;\n\n abstract supports(eventName: string): boolean;\n\n abstract addEventListener(element: HTMLElement, eventName: string, handler: Function): Function;\n\n addGlobalEventListener(element: string, eventName: string, handler: Function): Function {\n const target: HTMLElement = getDOM().getGlobalEventTarget(this._doc, element);\n if (!target) {\n throw new Error(`Unsupported event target ${target} for event ${eventName}`);\n }\n return this.addEventListener(target, eventName, handler);\n }\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Inject, Injectable, OnDestroy} from '@angular/core';\nimport {getDOM} from './dom_adapter';\nimport {DOCUMENT} from './dom_tokens';\n\n@Injectable()\nexport class SharedStylesHost {\n /** @internal */\n protected _stylesSet = new Set<string>();\n\n addStyles(styles: string[]): void {\n const additions = new Set<string>();\n styles.forEach(style => {\n if (!this._stylesSet.has(style)) {\n this._stylesSet.add(style);\n additions.add(style);\n }\n });\n this.onStylesAdded(additions);\n }\n\n onStylesAdded(additions: Set<string>): void {}\n\n getAllStyles(): string[] { return Array.from(this._stylesSet); }\n}\n\n@Injectable()\nexport class DomSharedStylesHost extends SharedStylesHost implements OnDestroy {\n private _hostNodes = new Set<Node>();\n private _styleNodes = new Set<Node>();\n constructor(@Inject(DOCUMENT) private _doc: any) {\n super();\n this._hostNodes.add(_doc.head);\n }\n\n private _addStylesToHost(styles: Set<string>, host: Node): void {\n styles.forEach((style: string) => {\n const styleEl = this._doc.createElement('style');\n styleEl.textContent = style;\n this._styleNodes.add(host.appendChild(styleEl));\n });\n }\n\n addHost(hostNode: Node): void {\n this._addStylesToHost(this._stylesSet, hostNode);\n this._hostNodes.add(hostNode);\n }\n\n removeHost(hostNode: Node): void { this._hostNodes.delete(hostNode); }\n\n onStylesAdded(additions: Set<string>): void {\n this._hostNodes.forEach(hostNode => this._addStylesToHost(additions, hostNode));\n }\n\n ngOnDestroy(): void { this._styleNodes.forEach(styleNode => getDOM().remove(styleNode)); }\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Injectable, Renderer2, RendererFactory2, RendererStyleFlags2, RendererType2, ViewEncapsulation} from '@angular/core';\n\nimport {EventManager} from './events/event_manager';\nimport {DomSharedStylesHost} from './shared_styles_host';\n\nexport const NAMESPACE_URIS: {[ns: string]: string} = {\n 'svg': 'http://www.w3.org/2000/svg',\n 'xhtml': 'http://www.w3.org/1999/xhtml',\n 'xlink': 'http://www.w3.org/1999/xlink',\n 'xml': 'http://www.w3.org/XML/1998/namespace',\n 'xmlns': 'http://www.w3.org/2000/xmlns/',\n};\n\nconst COMPONENT_REGEX = /%COMP%/g;\nexport const COMPONENT_VARIABLE = '%COMP%';\nexport const HOST_ATTR = `_nghost-${COMPONENT_VARIABLE}`;\nexport const CONTENT_ATTR = `_ngcontent-${COMPONENT_VARIABLE}`;\n\nexport function shimContentAttribute(componentShortId: string): string {\n return CONTENT_ATTR.replace(COMPONENT_REGEX, componentShortId);\n}\n\nexport function shimHostAttribute(componentShortId: string): string {\n return HOST_ATTR.replace(COMPONENT_REGEX, componentShortId);\n}\n\nexport function flattenStyles(\n compId: string, styles: Array<any|any[]>, target: string[]): string[] {\n for (let i = 0; i < styles.length; i++) {\n let style = styles[i];\n\n if (Array.isArray(style)) {\n flattenStyles(compId, style, target);\n } else {\n style = style.replace(COMPONENT_REGEX, compId);\n target.push(style);\n }\n }\n return target;\n}\n\nfunction decoratePreventDefault(eventHandler: Function): Function {\n return (event: any) => {\n const allowDefaultBehavior = eventHandler(event);\n if (allowDefaultBehavior === false) {\n // TODO(tbosch): move preventDefault into event plugins...\n event.preventDefault();\n event.returnValue = false;\n }\n };\n}\n\n@Injectable()\nexport class DomRendererFactory2 implements RendererFactory2 {\n private rendererByCompId = new Map<string, Renderer2>();\n private defaultRenderer: Renderer2;\n\n constructor(private eventManager: EventManager, private sharedStylesHost: DomSharedStylesHost) {\n this.defaultRenderer = new DefaultDomRenderer2(eventManager);\n }\n\n createRenderer(element: any, type: RendererType2|null): Renderer2 {\n if (!element || !type) {\n return this.defaultRenderer;\n }\n switch (type.encapsulation) {\n case ViewEncapsulation.Emulated: {\n let renderer = this.rendererByCompId.get(type.id);\n if (!renderer) {\n renderer =\n new EmulatedEncapsulationDomRenderer2(this.eventManager, this.sharedStylesHost, type);\n this.rendererByCompId.set(type.id, renderer);\n }\n (<EmulatedEncapsulationDomRenderer2>renderer).applyToHost(element);\n return renderer;\n }\n case ViewEncapsulation.Native:\n case ViewEncapsulation.ShadowDom:\n return new ShadowDomRenderer(this.eventManager, this.sharedStylesHost, element, type);\n default: {\n if (!this.rendererByCompId.has(type.id)) {\n const styles = flattenStyles(type.id, type.styles, []);\n this.sharedStylesHost.addStyles(styles);\n this.rendererByCompId.set(type.id, this.defaultRenderer);\n }\n return this.defaultRenderer;\n }\n }\n }\n\n begin() {}\n end() {}\n}\n\nclass DefaultDomRenderer2 implements Renderer2 {\n data: {[key: string]: any} = Object.create(null);\n\n constructor(private eventManager: EventManager) {}\n\n destroy(): void {}\n\n destroyNode: null;\n\n createElement(name: string, namespace?: string): any {\n if (namespace) {\n return document.createElementNS(NAMESPACE_URIS[namespace], name);\n }\n\n return document.createElement(name);\n }\n\n createComment(value: string): any { return document.createComment(value); }\n\n createText(value: string): any { return document.createTextNode(value); }\n\n appendChild(parent: any, newChild: any): void { parent.appendChild(newChild); }\n\n insertBefore(parent: any, newChild: any, refChild: any): void {\n if (parent) {\n parent.insertBefore(newChild, refChild);\n }\n }\n\n removeChild(parent: any, oldChild: any): void {\n if (parent) {\n parent.removeChild(oldChild);\n }\n }\n\n selectRootElement(selectorOrNode: string|any, preserveContent?: boolean): any {\n let el: any = typeof selectorOrNode === 'string' ? document.querySelector(selectorOrNode) :\n selectorOrNode;\n if (!el) {\n throw new Error(`The selector \"${selectorOrNode}\" did not match any elements`);\n }\n if (!preserveContent) {\n el.textContent = '';\n }\n return el;\n }\n\n parentNode(node: any): any { return node.parentNode; }\n\n nextSibling(node: any): any { return node.nextSibling; }\n\n setAttribute(el: any, name: string, value: string, namespace?: string): void {\n if (namespace) {\n name = `${namespace}:${name}`;\n const namespaceUri = NAMESPACE_URIS[namespace];\n if (namespaceUri) {\n el.setAttributeNS(namespaceUri, name, value);\n } else {\n el.setAttribute(name, value);\n }\n } else {\n el.setAttribute(name, value);\n }\n }\n\n removeAttribute(el: any, name: string, namespace?: string): void {\n if (namespace) {\n const namespaceUri = NAMESPACE_URIS[namespace];\n if (namespaceUri) {\n el.removeAttributeNS(namespaceUri, name);\n } else {\n el.removeAttribute(`${namespace}:${name}`);\n }\n } else {\n el.removeAttribute(name);\n }\n }\n\n addClass(el: any, name: string): void { el.classList.add(name); }\n\n removeClass(el: any, name: string): void { el.classList.remove(name); }\n\n setStyle(el: any, style: string, value: any, flags: RendererStyleFlags2): void {\n if (flags & RendererStyleFlags2.DashCase) {\n el.style.setProperty(\n style, value, !!(flags & RendererStyleFlags2.Important) ? 'important' : '');\n } else {\n el.style[style] = value;\n }\n }\n\n removeStyle(el: any, style: string, flags: RendererStyleFlags2): void {\n if (flags & RendererStyleFlags2.DashCase) {\n el.style.removeProperty(style);\n } else {\n // IE requires '' instead of null\n // see https://github.com/angular/angular/issues/7916\n el.style[style] = '';\n }\n }\n\n setProperty(el: any, name: string, value: any): void {\n checkNoSyntheticProp(name, 'property');\n el[name] = value;\n }\n\n setValue(node: any, value: string): void { node.nodeValue = value; }\n\n listen(target: 'window'|'document'|'body'|any, event: string, callback: (event: any) => boolean):\n () => void {\n checkNoSyntheticProp(event, 'listener');\n if (typeof target === 'string') {\n return <() => void>this.eventManager.addGlobalEventListener(\n target, event, decoratePreventDefault(callback));\n }\n return <() => void>this.eventManager.addEventListener(\n target, event, decoratePreventDefault(callback)) as() => void;\n }\n}\n\nconst AT_CHARCODE = '@'.charCodeAt(0);\nfunction checkNoSyntheticProp(name: string, nameKind: string) {\n if (name.charCodeAt(0) === AT_CHARCODE) {\n throw new Error(\n `Found the synthetic ${nameKind} ${name}. Please include either \"BrowserAnimationsModule\" or \"NoopAnimationsModule\" in your application.`);\n }\n}\n\nclass EmulatedEncapsulationDomRenderer2 extends DefaultDomRenderer2 {\n private contentAttr: string;\n private hostAttr: string;\n\n constructor(\n eventManager: EventManager, sharedStylesHost: DomSharedStylesHost,\n private component: RendererType2) {\n super(eventManager);\n const styles = flattenStyles(component.id, component.styles, []);\n sharedStylesHost.addStyles(styles);\n\n this.contentAttr = shimContentAttribute(component.id);\n this.hostAttr = shimHostAttribute(component.id);\n }\n\n applyToHost(element: any) { super.setAttribute(element, this.hostAttr, ''); }\n\n createElement(parent: any, name: string): Element {\n const el = super.createElement(parent, name);\n super.setAttribute(el, this.contentAttr, '');\n return el;\n }\n}\n\nclass ShadowDomRenderer extends DefaultDomRenderer2 {\n private shadowRoot: any;\n\n constructor(\n eventManager: EventManager, private sharedStylesHost: DomSharedStylesHost,\n private hostEl: any, private component: RendererType2) {\n super(eventManager);\n if (component.encapsulation === ViewEncapsulation.ShadowDom) {\n this.shadowRoot = (hostEl as any).attachShadow({mode: 'open'});\n } else {\n this.shadowRoot = (hostEl as any).createShadowRoot();\n }\n this.sharedStylesHost.addHost(this.shadowRoot);\n const styles = flattenStyles(component.id, component.styles, []);\n for (let i = 0; i < styles.length; i++) {\n const styleEl = document.createElement('style');\n styleEl.textContent = styles[i];\n this.shadowRoot.appendChild(styleEl);\n }\n }\n\n private nodeOrShadowRoot(node: any): any { return node === this.hostEl ? this.shadowRoot : node; }\n\n destroy() { this.sharedStylesHost.removeHost(this.shadowRoot); }\n\n appendChild(parent: any, newChild: any): void {\n return super.appendChild(this.nodeOrShadowRoot(parent), newChild);\n }\n insertBefore(parent: any, newChild: any, refChild: any): void {\n return super.insertBefore(this.nodeOrShadowRoot(parent), newChild, refChild);\n }\n removeChild(parent: any, oldChild: any): void {\n return super.removeChild(this.nodeOrShadowRoot(parent), oldChild);\n }\n parentNode(node: any): any {\n return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(node)));\n }\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {isPlatformServer} from '@angular/common';\nimport {Inject, Injectable, NgZone, Optional, PLATFORM_ID} from '@angular/core';\n\n\nimport {DOCUMENT} from '../dom_tokens';\n\nimport {EventManagerPlugin} from './event_manager';\n\n/**\n * Detect if Zone is present. If it is then use simple zone aware 'addEventListener'\n * since Angular can do much more\n * efficient bookkeeping than Zone can, because we have additional information. This speeds up\n * addEventListener by 3x.\n */\nconst __symbol__ =\n (typeof Zone !== 'undefined') && (Zone as any)['__symbol__'] || function(v: string): string {\n return '__zone_symbol__' + v;\n };\nconst ADD_EVENT_LISTENER: 'addEventListener' = __symbol__('addEventListener');\nconst REMOVE_EVENT_LISTENER: 'removeEventListener' = __symbol__('removeEventListener');\n\nconst symbolNames: {[key: string]: string} = {};\n\nconst FALSE = 'FALSE';\nconst ANGULAR = 'ANGULAR';\nconst NATIVE_ADD_LISTENER = 'addEventListener';\nconst NATIVE_REMOVE_LISTENER = 'removeEventListener';\n\n// use the same symbol string which is used in zone.js\nconst stopSymbol = '__zone_symbol__propagationStopped';\nconst stopMethodSymbol = '__zone_symbol__stopImmediatePropagation';\n\nconst blackListedEvents: string[] =\n (typeof Zone !== 'undefined') && (Zone as any)[__symbol__('BLACK_LISTED_EVENTS')];\nlet blackListedMap: {[eventName: string]: string};\nif (blackListedEvents) {\n blackListedMap = {};\n blackListedEvents.forEach(eventName => { blackListedMap[eventName] = eventName; });\n}\n\nconst isBlackListedEvent = function(eventName: string) {\n if (!blackListedMap) {\n return false;\n }\n return blackListedMap.hasOwnProperty(eventName);\n};\n\ninterface TaskData {\n zone: any;\n handler: Function;\n}\n\n// a global listener to handle all dom event,\n// so we do not need to create a closure every time\nconst globalListener = function(event: Event) {\n const symbolName = symbolNames[event.type];\n if (!symbolName) {\n return;\n }\n const taskDatas: TaskData[] = this[symbolName];\n if (!taskDatas) {\n return;\n }\n const args: any = [event];\n if (taskDatas.length === 1) {\n // if taskDatas only have one element, just invoke it\n const taskData = taskDatas[0];\n if (taskData.zone !== Zone.current) {\n // only use Zone.run when Zone.current not equals to stored zone\n return taskData.zone.run(taskData.handler, this, args);\n } else {\n return taskData.handler.apply(this, args);\n }\n } else {\n // copy tasks as a snapshot to avoid event handlers remove\n // itself or others\n const copiedTasks = taskDatas.slice();\n for (let i = 0; i < copiedTasks.length; i++) {\n // if other listener call event.stopImmediatePropagation\n // just break\n if ((event as any)[stopSymbol] === true) {\n break;\n }\n const taskData = copiedTasks[i];\n if (taskData.zone !== Zone.current) {\n // only use Zone.run when Zone.current not equals to stored zone\n taskData.zone.run(taskData.handler, this, args);\n } else {\n taskData.handler.apply(this, args);\n }\n }\n }\n};\n\n@Injectable()\nexport class DomEventsPlugin extends EventManagerPlugin {\n constructor(\n @Inject(DOCUMENT) doc: any, private ngZone: NgZone,\n @Optional() @Inject(PLATFORM_ID) platformId: {}|null) {\n super(doc);\n\n if (!platformId || !isPlatformServer(platformId)) {\n this.patchEvent();\n }\n }\n\n private patchEvent() {\n if (typeof Event === 'undefined' || !Event || !Event.prototype) {\n return;\n }\n if ((Event.prototype as any)[stopMethodSymbol]) {\n // already patched by zone.js\n return;\n }\n const delegate = (Event.prototype as any)[stopMethodSymbol] =\n Event.prototype.stopImmediatePropagation;\n Event.prototype.stopImmediatePropagation = function() {\n if (this) {\n this[stopSymbol] = true;\n }\n\n // should call native delegate in case\n // in some environment part of the application\n // will not use the patched Event\n delegate && delegate.apply(this, arguments);\n };\n }\n\n // This plugin should come last in the list of plugins, because it accepts all\n // events.\n supports(eventName: string): boolean { return true; }\n\n addEventListener(element: HTMLElement, eventName: string, handler: Function): Function {\n /**\n * This code is about to add a listener to the DOM. If Zone.js is present, than\n * `addEventListener` has been patched. The patched code adds overhead in both\n * memory and speed (3x slower) than native. For this reason if we detect that\n * Zone.js is present we use a simple version of zone aware addEventListener instead.\n * The result is faster registration and the zone will be restored.\n * But ZoneSpec.onScheduleTask, ZoneSpec.onInvokeTask, ZoneSpec.onCancelTask\n * will not be invoked\n * We also do manual zone restoration in element.ts renderEventHandlerClosure method.\n *\n * NOTE: it is possible that the element is from different iframe, and so we\n * have to check before we execute the method.\n */\n const self = this;\n const zoneJsLoaded = element[ADD_EVENT_LISTENER];\n let callback: EventListener = handler as EventListener;\n // if zonejs is loaded and current zone is not ngZone\n // we keep Zone.current on target for later restoration.\n if (zoneJsLoaded && (!NgZone.isInAngularZone() || isBlackListedEvent(eventName))) {\n let symbolName = symbolNames[eventName];\n if (!symbolName) {\n symbolName = symbolNames[eventName] = __symbol__(ANGULAR + eventName + FALSE);\n }\n let taskDatas: TaskData[] = (element as any)[symbolName];\n const globalListenerRegistered = taskDatas && taskDatas.length > 0;\n if (!taskDatas) {\n taskDatas = (element as any)[symbolName] = [];\n }\n\n const zone = isBlackListedEvent(eventName) ? Zone.root : Zone.current;\n if (taskDatas.length === 0) {\n taskDatas.push({zone: zone, handler: callback});\n } else {\n let callbackRegistered = false;\n for (let i = 0; i < taskDatas.length; i++) {\n if (taskDatas[i].handler === callback) {\n callbackRegistered = true;\n break;\n }\n }\n if (!callbackRegistered) {\n taskDatas.push({zone: zone, handler: callback});\n }\n }\n\n if (!globalListenerRegistered) {\n element[ADD_EVENT_LISTENER](eventName, globalListener, false);\n }\n } else {\n element[NATIVE_ADD_LISTENER](eventName, callback, false);\n }\n return () => this.removeEventListener(element, eventName, callback);\n }\n\n removeEventListener(target: any, eventName: string, callback: Function): void {\n let underlyingRemove = target[REMOVE_EVENT_LISTENER];\n // zone.js not loaded, use native removeEventListener\n if (!underlyingRemove) {\n return target[NATIVE_REMOVE_LISTENER].apply(target, [eventName, callback, false]);\n }\n let symbolName = symbolNames[eventName];\n let taskDatas: TaskData[] = symbolName && target[symbolName];\n if (!taskDatas) {\n // addEventListener not using patched version\n // just call native removeEventListener\n return target[NATIVE_REMOVE_LISTENER].apply(target, [eventName, callback, false]);\n }\n // fix issue 20532, should be able to remove\n // listener which was added inside of ngZone\n let found = false;\n for (let i = 0; i < taskDatas.length; i++) {\n // remove listener from taskDatas if the callback equals\n if (taskDatas[i].handler === callback) {\n found = true;\n taskDatas.splice(i, 1);\n break;\n }\n }\n if (found) {\n if (taskDatas.length === 0) {\n // all listeners are removed, we can remove the globalListener from target\n underlyingRemove.apply(target, [eventName, globalListener, false]);\n }\n } else {\n // not found in taskDatas, the callback may be added inside of ngZone\n // use native remove listener to remove the callback\n target[NATIVE_REMOVE_LISTENER].apply(target, [eventName, callback, false]);\n }\n }\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Inject, Injectable, InjectionToken, Optional, ɵConsole as Console} from '@angular/core';\n\nimport {DOCUMENT} from '../dom_tokens';\n\nimport {EventManagerPlugin} from './event_manager';\n\n/**\n * Supported HammerJS recognizer event names.\n */\nconst EVENT_NAMES = {\n // pan\n 'pan': true,\n 'panstart': true,\n 'panmove': true,\n 'panend': true,\n 'pancancel': true,\n 'panleft': true,\n 'panright': true,\n 'panup': true,\n 'pandown': true,\n // pinch\n 'pinch': true,\n 'pinchstart': true,\n 'pinchmove': true,\n 'pinchend': true,\n 'pinchcancel': true,\n 'pinchin': true,\n 'pinchout': true,\n // press\n 'press': true,\n 'pressup': true,\n // rotate\n 'rotate': true,\n 'rotatestart': true,\n 'rotatemove': true,\n 'rotateend': true,\n 'rotatecancel': true,\n // swipe\n 'swipe': true,\n 'swipeleft': true,\n 'swiperight': true,\n 'swipeup': true,\n 'swipedown': true,\n // tap\n 'tap': true,\n};\n\n/**\n * DI token for providing [HammerJS](http://hammerjs.github.io/) support to Angular.\n * @see `HammerGestureConfig`\n *\n * @publicApi\n */\nexport const HAMMER_GESTURE_CONFIG = new InjectionToken<HammerGestureConfig>('HammerGestureConfig');\n\n\n/**\n * Function that loads HammerJS, returning a promise that is resolved once HammerJs is loaded.\n *\n * @publicApi\n */\nexport type HammerLoader = () => Promise<void>;\n\n/**\n * Injection token used to provide a {@link HammerLoader} to Angular.\n *\n * @publicApi\n */\nexport const HAMMER_LOADER = new InjectionToken<HammerLoader>('HammerLoader');\n\nexport interface HammerInstance {\n on(eventName: string, callback?: Function): void;\n off(eventName: string, callback?: Function): void;\n destroy?(): void;\n}\n\n/**\n * An injectable [HammerJS Manager](http://hammerjs.github.io/api/#hammer.manager)\n * for gesture recognition. Configures specific event recognition.\n * @publicApi\n */\n@Injectable()\nexport class HammerGestureConfig {\n /**\n * A set of supported event names for gestures to be used in Angular.\n * Angular supports all built-in recognizers, as listed in\n * [HammerJS documentation](http://hammerjs.github.io/).\n */\n events: string[] = [];\n\n /**\n * Maps gesture event names to a set of configuration options\n * that specify overrides to the default values for specific properties.\n *\n * The key is a supported event name to be configured,\n * and the options object contains a set of properties, with override values\n * to be applied to the named recognizer event.\n * For example, to disable recognition of the rotate event, specify\n * `{\"rotate\": {\"enable\": false}}`.\n *\n * Properties that are not present take the HammerJS default values.\n * For information about which properties are supported for which events,\n * and their allowed and default values, see\n * [HammerJS documentation](http://hammerjs.github.io/).\n *\n */\n overrides: {[key: string]: Object} = {};\n\n /**\n * Properties whose default values can be overridden for a given event.\n * Different sets of properties apply to different events.\n * For information about which properties are supported for which events,\n * and their allowed and default values, see\n * [HammerJS documentation](http://hammerjs.github.io/).\n */\n options?: {\n cssProps?: any; domEvents?: boolean; enable?: boolean | ((manager: any) => boolean);\n preset?: any[];\n touchAction?: string;\n recognizers?: any[];\n inputClass?: any;\n inputTarget?: EventTarget;\n };\n\n /**\n * Creates a [HammerJS Manager](http://hammerjs.github.io/api/#hammer.manager)\n * and attaches it to a given HTML element.\n * @param element The element that will recognize gestures.\n * @returns A HammerJS event-manager object.\n */\n buildHammer(element: HTMLElement): HammerInstance {\n const mc = new Hammer !(element, this.options);\n\n mc.get('pinch').set({enable: true});\n mc.get('rotate').set({enable: true});\n\n for (const eventName in this.overrides) {\n mc.get(eventName).set(this.overrides[eventName]);\n }\n\n return mc;\n }\n}\n\n@Injectable()\nexport class HammerGesturesPlugin extends EventManagerPlugin {\n constructor(\n @Inject(DOCUMENT) doc: any,\n @Inject(HAMMER_GESTURE_CONFIG) private _config: HammerGestureConfig, private console: Console,\n @Optional() @Inject(HAMMER_LOADER) private loader?: HammerLoader|null) {\n super(doc);\n }\n\n supports(eventName: string): boolean {\n if (!EVENT_NAMES.hasOwnProperty(eventName.toLowerCase()) && !this.isCustomEvent(eventName)) {\n return false;\n }\n\n if (!(window as any).Hammer && !this.loader) {\n this.console.warn(\n `The \"${eventName}\" event cannot be bound because Hammer.JS is not ` +\n `loaded and no custom loader has been specified.`);\n return false;\n }\n\n return true;\n }\n\n addEventListener(element: HTMLElement, eventName: string, handler: Function): Function {\n const zone = this.manager.getZone();\n eventName = eventName.toLowerCase();\n\n // If Hammer is not present but a loader is specified, we defer adding the event listener\n // until Hammer is loaded.\n if (!(window as any).Hammer && this.loader) {\n // This `addEventListener` method returns a function to remove the added listener.\n // Until Hammer is loaded, the returned function needs to *cancel* the registration rather\n // than remove anything.\n let cancelRegistration = false;\n let deregister: Function = () => { cancelRegistration = true; };\n\n this.loader()\n .then(() => {\n // If Hammer isn't actually loaded when the custom loader resolves, give up.\n if (!(window as any).Hammer) {\n this.console.warn(\n `The custom HAMMER_LOADER completed, but Hammer.JS is not present.`);\n deregister = () => {};\n return;\n }\n\n if (!cancelRegistration) {\n // Now that Hammer is loaded and the listener is being loaded for real,\n // the deregistration function changes from canceling registration to removal.\n deregister = this.addEventListener(element, eventName, handler);\n }\n })\n .catch(() => {\n this.console.warn(\n `The \"${eventName}\" event cannot be bound because the custom ` +\n `Hammer.JS loader failed.`);\n deregister = () => {};\n });\n\n // Return a function that *executes* `deregister` (and not `deregister` itself) so that we\n // can change the behavior of `deregister` once the listener is added. Using a closure in\n // this way allows us to avoid any additional data structures to track listener removal.\n return () => { deregister(); };\n }\n\n return zone.runOutsideAngular(() => {\n // Creating the manager bind events, must be done outside of angular\n const mc = this._config.buildHammer(element);\n const callback = function(eventObj: HammerInput) {\n zone.runGuarded(function() { handler(eventObj); });\n };\n mc.on(eventName, callback);\n return () => {\n mc.off(eventName, callback);\n // destroy mc to prevent memory leak\n if (typeof mc.destroy === 'function') {\n mc.destroy();\n }\n };\n });\n }\n\n isCustomEvent(eventName: string): boolean { return this._config.events.indexOf(eventName) > -1; }\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Inject, Injectable, NgZone} from '@angular/core';\n\nimport {getDOM} from '../dom_adapter';\nimport {DOCUMENT} from '../dom_tokens';\n\nimport {EventManagerPlugin} from './event_manager';\n\n/**\n * Defines supported modifiers for key events.\n */\nconst MODIFIER_KEYS = ['alt', 'control', 'meta', 'shift'];\n\n/**\n * Retrieves modifiers from key-event objects.\n */\nconst MODIFIER_KEY_GETTERS: {[key: string]: (event: KeyboardEvent) => boolean} = {\n 'alt': (event: KeyboardEvent) => event.altKey,\n 'control': (event: KeyboardEvent) => event.ctrlKey,\n 'meta': (event: KeyboardEvent) => event.metaKey,\n 'shift': (event: KeyboardEvent) => event.shiftKey\n};\n\n/**\n * @publicApi\n * A browser plug-in that provides support for handling of key events in Angular.\n */\n@Injectable()\nexport class KeyEventsPlugin extends EventManagerPlugin {\n /**\n * Initializes an instance of the browser plug-in.\n * @param doc The document in which key events will be detected.\n */\n constructor(@Inject(DOCUMENT) doc: any) { super(doc); }\n\n /**\n * Reports whether a named key event is supported.\n * @param eventName The event name to query.\n * @return True if the named key event is supported.\n */\n supports(eventName: string): boolean { return KeyEventsPlugin.parseEventName(eventName) != null; }\n\n /**\n * Registers a handler for a specific element and key event.\n * @param element The HTML element to receive event notifications.\n * @param eventName The name of the key event to listen for.\n * @param handler A function to call when the notification occurs. Receives the\n * event object as an argument.\n * @returns The key event that was registered.\n */\n addEventListener(element: HTMLElement, eventName: string, handler: Function): Function {\n const parsedEvent = KeyEventsPlugin.parseEventName(eventName) !;\n\n const outsideHandler =\n KeyEventsPlugin.eventCallback(parsedEvent['fullKey'], handler, this.manager.getZone());\n\n return this.manager.getZone().runOutsideAngular(() => {\n return getDOM().onAndCancel(element, parsedEvent['domEventName'], outsideHandler);\n });\n }\n\n static parseEventName(eventName: string): {[key: string]: string}|null {\n const parts: string[] = eventName.toLowerCase().split('.');\n\n const domEventName = parts.shift();\n if ((parts.length === 0) || !(domEventName === 'keydown' || domEventName === 'keyup')) {\n return null;\n }\n\n const key = KeyEventsPlugin._normalizeKey(parts.pop() !);\n\n let fullKey = '';\n MODIFIER_KEYS.forEach(modifierName => {\n const index: number = parts.indexOf(modifierName);\n if (index > -1) {\n parts.splice(index, 1);\n fullKey += modifierName + '.';\n }\n });\n fullKey += key;\n\n if (parts.length != 0 || key.length === 0) {\n // returning null instead of throwing to let another plugin process the event\n return null;\n }\n\n const result: {[k: string]: string} = {};\n result['domEventName'] = domEventName;\n result['fullKey'] = fullKey;\n return result;\n }\n\n static getEventFullKey(event: KeyboardEvent): string {\n let fullKey = '';\n let key = getDOM().getEventKey(event);\n key = key.toLowerCase();\n if (key === ' ') {\n key = 'space'; // for readability\n } else if (key === '.') {\n key = 'dot'; // because '.' is used as a separator in event names\n }\n MODIFIER_KEYS.forEach(modifierName => {\n if (modifierName != key) {\n const modifierGetter = MODIFIER_KEY_GETTERS[modifierName];\n if (modifierGetter(event)) {\n fullKey += modifierName + '.';\n }\n }\n });\n fullKey += key;\n return fullKey;\n }\n\n /**\n * Configures a handler callback for a key event.\n * @param fullKey The event name that combines all simultaneous keystrokes.\n * @param handler The function that responds to the key event.\n * @param zone The zone in which the event occurred.\n * @returns A callback function.\n */\n static eventCallback(fullKey: any, handler: Function, zone: NgZone): Function {\n return (event: any /** TODO #9100 */) => {\n if (KeyEventsPlugin.getEventFullKey(event) === fullKey) {\n zone.runGuarded(() => handler(event));\n }\n };\n }\n\n /** @internal */\n static _normalizeKey(keyName: string): string {\n // TODO: switch to a Map if the mapping grows too much\n switch (keyName) {\n case 'esc':\n return 'escape';\n default:\n return keyName;\n }\n }\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Inject, Injectable, Sanitizer, SecurityContext, ɵ_sanitizeHtml as _sanitizeHtml, ɵ_sanitizeStyle as _sanitizeStyle, ɵ_sanitizeUrl as _sanitizeUrl} from '@angular/core';\n\nimport {DOCUMENT} from '../dom/dom_tokens';\n\nexport {SecurityContext};\n\n\n\n/**\n * Marker interface for a value that's safe to use in a particular context.\n *\n * @publicApi\n */\nexport interface SafeValue {}\n\n/**\n * Marker interface for a value that's safe to use as HTML.\n *\n * @publicApi\n */\nexport interface SafeHtml extends SafeValue {}\n\n/**\n * Marker interface for a value that's safe to use as style (CSS).\n *\n * @publicApi\n */\nexport interface SafeStyle extends SafeValue {}\n\n/**\n * Marker interface for a value that's safe to use as JavaScript.\n *\n * @publicApi\n */\nexport interface SafeScript extends SafeValue {}\n\n/**\n * Marker interface for a value that's safe to use as a URL linking to a document.\n *\n * @publicApi\n */\nexport interface SafeUrl extends SafeValue {}\n\n/**\n * Marker interface for a value that's safe to use as a URL to load executable code from.\n *\n * @publicApi\n */\nexport interface SafeResourceUrl extends SafeValue {}\n\n/**\n * DomSanitizer helps preventing Cross Site Scripting Security bugs (XSS) by sanitizing\n * values to be safe to use in the different DOM contexts.\n *\n * For example, when binding a URL in an `<a [href]=\"someValue\">` hyperlink, `someValue` will be\n * sanitized so that an attacker cannot inject e.g. a `javascript:` URL that would execute code on\n * the website.\n *\n * In specific situations, it might be necessary to disable sanitization, for example if the\n * application genuinely needs to produce a `javascript:` style link with a dynamic value in it.\n * Users can bypass security by constructing a value with one of the `bypassSecurityTrust...`\n * methods, and then binding to that value from the template.\n *\n * These situations should be very rare, and extraordinary care must be taken to avoid creating a\n * Cross Site Scripting (XSS) security bug!\n *\n * When using `bypassSecurityTrust...`, make sure to call the method as early as possible and as\n * close as possible to the source of the value, to make it easy to verify no security bug is\n * created by its use.\n *\n * It is not required (and not recommended) to bypass security if the value is safe, e.g. a URL that\n * does not start with a suspicious protocol, or an HTML snippet that does not contain dangerous\n * code. The sanitizer leaves safe values intact.\n *\n * @security Calling any of the `bypassSecurityTrust...` APIs disables Angular's built-in\n * sanitization for the value passed in. Carefully check and audit all values and code paths going\n * into this call. Make sure any user data is appropriately escaped for this security context.\n * For more detail, see the [Security Guide](http://g.co/ng/security).\n *\n * @publicApi\n */\nexport abstract class DomSanitizer implements Sanitizer {\n /**\n * Sanitizes a value for use in the given SecurityContext.\n *\n * If value is trusted for the context, this method will unwrap the contained safe value and use\n * it directly. Otherwise, value will be sanitized to be safe in the given context, for example\n * by replacing URLs that have an unsafe protocol part (such as `javascript:`). The implementation\n * is responsible to make sure that the value can definitely be safely used in the given context.\n */\n abstract sanitize(context: SecurityContext, value: SafeValue|string|null): string|null;\n\n /**\n * Bypass security and trust the given value to be safe HTML. Only use this when the bound HTML\n * is unsafe (e.g. contains `<script>` tags) and the code should be executed. The sanitizer will\n * leave safe HTML intact, so in most situations this method should not be used.\n *\n * **WARNING:** calling this method with untrusted user data exposes your application to XSS\n * security risks!\n */\n abstract bypassSecurityTrustHtml(value: string): SafeHtml;\n\n /**\n * Bypass security and trust the given value to be safe style value (CSS).\n *\n * **WARNING:** calling this method with untrusted user data exposes your application to XSS\n * security risks!\n */\n abstract bypassSecurityTrustStyle(value: string): SafeStyle;\n\n /**\n * Bypass security and trust the given value to be safe JavaScript.\n *\n * **WARNING:** calling this method with untrusted user data exposes your application to XSS\n * security risks!\n */\n abstract bypassSecurityTrustScript(value: string): SafeScript;\n\n /**\n * Bypass security and trust the given value to be a safe style URL, i.e. a value that can be used\n * in hyperlinks or `<img src>`.\n *\n * **WARNING:** calling this method with untrusted user data exposes your application to XSS\n * security risks!\n */\n abstract bypassSecurityTrustUrl(value: string): SafeUrl;\n\n /**\n * Bypass security and trust the given value to be a safe resource URL, i.e. a location that may\n * be used to load executable code from, like `<script src>`, or `<iframe src>`.\n *\n * **WARNING:** calling this method with untrusted user data exposes your application to XSS\n * security risks!\n */\n abstract bypassSecurityTrustResourceUrl(value: string): SafeResourceUrl;\n}\n\n\n@Injectable()\nexport class DomSanitizerImpl extends DomSanitizer {\n constructor(@Inject(DOCUMENT) private _doc: any) { super(); }\n\n sanitize(ctx: SecurityContext, value: SafeValue|string|null): string|null {\n if (value == null) return null;\n switch (ctx) {\n case SecurityContext.NONE:\n return value as string;\n case SecurityContext.HTML:\n if (value instanceof SafeHtmlImpl) return value.changingThisBreaksApplicationSecurity;\n this.checkNotSafeValue(value, 'HTML');\n return _sanitizeHtml(this._doc, String(value));\n case SecurityContext.STYLE:\n if (value instanceof SafeStyleImpl) return value.changingThisBreaksApplicationSecurity;\n this.checkNotSafeValue(value, 'Style');\n return _sanitizeStyle(value as string);\n case SecurityContext.SCRIPT:\n if (value instanceof SafeScriptImpl) return value.changingThisBreaksApplicationSecurity;\n this.checkNotSafeValue(value, 'Script');\n throw new Error('unsafe value used in a script context');\n case SecurityContext.URL:\n if (value instanceof SafeResourceUrlImpl || value instanceof SafeUrlImpl) {\n // Allow resource URLs in URL contexts, they are strictly more trusted.\n return value.changingThisBreaksApplicationSecurity;\n }\n this.checkNotSafeValue(value, 'URL');\n return _sanitizeUrl(String(value));\n case SecurityContext.RESOURCE_URL:\n if (value instanceof SafeResourceUrlImpl) {\n return value.changingThisBreaksApplicationSecurity;\n }\n this.checkNotSafeValue(value, 'ResourceURL');\n throw new Error(\n 'unsafe value used in a resource URL context (see http://g.co/ng/security#xss)');\n default:\n throw new Error(`Unexpected SecurityContext ${ctx} (see http://g.co/ng/security#xss)`);\n }\n }\n\n private checkNotSafeValue(value: any, expectedType: string) {\n if (value instanceof SafeValueImpl) {\n throw new Error(\n `Required a safe ${expectedType}, got a ${value.getTypeName()} ` +\n `(see http://g.co/ng/security#xss)`);\n }\n }\n\n bypassSecurityTrustHtml(value: string): SafeHtml { return new SafeHtmlImpl(value); }\n bypassSecurityTrustStyle(value: string): SafeStyle { return new SafeStyleImpl(value); }\n bypassSecurityTrustScript(value: string): SafeScript { return new SafeScriptImpl(value); }\n bypassSecurityTrustUrl(value: string): SafeUrl { return new SafeUrlImpl(value); }\n bypassSecurityTrustResourceUrl(value: string): SafeResourceUrl {\n return new SafeResourceUrlImpl(value);\n }\n}\n\nabstract class SafeValueImpl implements SafeValue {\n constructor(public changingThisBreaksApplicationSecurity: string) {\n // empty\n }\n\n abstract getTypeName(): string;\n\n toString() {\n return `SafeValue must use [property]=binding: ${this.changingThisBreaksApplicationSecurity}` +\n ` (see http://g.co/ng/security#xss)`;\n }\n}\n\nclass SafeHtmlImpl extends SafeValueImpl implements SafeHtml {\n getTypeName() { return 'HTML'; }\n}\nclass SafeStyleImpl extends SafeValueImpl implements SafeStyle {\n getTypeName() { return 'Style'; }\n}\nclass SafeScriptImpl extends SafeValueImpl implements SafeScript {\n getTypeName() { return 'Script'; }\n}\nclass SafeUrlImpl extends SafeValueImpl implements SafeUrl {\n getTypeName() { return 'URL'; }\n}\nclass SafeResourceUrlImpl extends SafeValueImpl implements SafeResourceUrl {\n getTypeName() { return 'ResourceURL'; }\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {CommonModule, PlatformLocation, ɵPLATFORM_BROWSER_ID as PLATFORM_BROWSER_ID} from '@angular/common';\nimport {APP_ID, ApplicationModule, ErrorHandler, Inject, ModuleWithProviders, NgModule, NgZone, Optional, PLATFORM_ID, PLATFORM_INITIALIZER, PlatformRef, RendererFactory2, Sanitizer, SkipSelf, StaticProvider, Testability, createPlatformFactory, platformCore, ɵAPP_ROOT as APP_ROOT, ɵConsole as Console} from '@angular/core';\n\nimport {BrowserDomAdapter} from './browser/browser_adapter';\nimport {BrowserPlatformLocation} from './browser/location/browser_platform_location';\nimport {SERVER_TRANSITION_PROVIDERS, TRANSITION_ID} from './browser/server-transition';\nimport {BrowserGetTestability} from './browser/testability';\nimport {ELEMENT_PROBE_PROVIDERS} from './dom/debug/ng_probe';\nimport {DomRendererFactory2} from './dom/dom_renderer';\nimport {DOCUMENT} from './dom/dom_tokens';\nimport {DomEventsPlugin} from './dom/events/dom_events';\nimport {EVENT_MANAGER_PLUGINS, EventManager} from './dom/events/event_manager';\nimport {HAMMER_GESTURE_CONFIG, HAMMER_LOADER, HammerGestureConfig, HammerGesturesPlugin} from './dom/events/hammer_gestures';\nimport {KeyEventsPlugin} from './dom/events/key_events';\nimport {DomSharedStylesHost, SharedStylesHost} from './dom/shared_styles_host';\nimport {DomSanitizer, DomSanitizerImpl} from './security/dom_sanitization_service';\n\nexport const INTERNAL_BROWSER_PLATFORM_PROVIDERS: StaticProvider[] = [\n {provide: PLATFORM_ID, useValue: PLATFORM_BROWSER_ID},\n {provide: PLATFORM_INITIALIZER, useValue: initDomAdapter, multi: true},\n {provide: PlatformLocation, useClass: BrowserPlatformLocation, deps: [DOCUMENT]},\n {provide: DOCUMENT, useFactory: _document, deps: []},\n];\n\n/**\n * @security Replacing built-in sanitization providers exposes the application to XSS risks.\n * Attacker-controlled data introduced by an unsanitized provider could expose your\n * application to XSS risks. For more detail, see the [Security Guide](http://g.co/ng/security).\n * @publicApi\n */\nexport const BROWSER_SANITIZATION_PROVIDERS: StaticProvider[] = [\n {provide: Sanitizer, useExisting: DomSanitizer},\n {provide: DomSanitizer, useClass: DomSanitizerImpl, deps: [DOCUMENT]},\n];\n\n/**\n * @publicApi\n */\nexport const platformBrowser: (extraProviders?: StaticProvider[]) => PlatformRef =\n createPlatformFactory(platformCore, 'browser', INTERNAL_BROWSER_PLATFORM_PROVIDERS);\n\nexport function initDomAdapter() {\n BrowserDomAdapter.makeCurrent();\n BrowserGetTestability.init();\n}\n\nexport function errorHandler(): ErrorHandler {\n return new ErrorHandler();\n}\n\nexport function _document(): any {\n return document;\n}\n\nexport const BROWSER_MODULE_PROVIDERS: StaticProvider[] = [\n BROWSER_SANITIZATION_PROVIDERS,\n {provide: APP_ROOT, useValue: true},\n {provide: ErrorHandler, useFactory: errorHandler, deps: []},\n {\n provide: EVENT_MANAGER_PLUGINS,\n useClass: DomEventsPlugin,\n multi: true,\n deps: [DOCUMENT, NgZone, PLATFORM_ID]\n },\n {provide: EVENT_MANAGER_PLUGINS, useClass: KeyEventsPlugin, multi: true, deps: [DOCUMENT]},\n {\n provide: EVENT_MANAGER_PLUGINS,\n useClass: HammerGesturesPlugin,\n multi: true,\n deps: [DOCUMENT, HAMMER_GESTURE_CONFIG, Console, [new Optional(), HAMMER_LOADER]]\n },\n {provide: HAMMER_GESTURE_CONFIG, useClass: HammerGestureConfig, deps: []},\n {\n provide: DomRendererFactory2,\n useClass: DomRendererFactory2,\n deps: [EventManager, DomSharedStylesHost]\n },\n {provide: RendererFactory2, useExisting: DomRendererFactory2},\n {provide: SharedStylesHost, useExisting: DomSharedStylesHost},\n {provide: DomSharedStylesHost, useClass: DomSharedStylesHost, deps: [DOCUMENT]},\n {provide: Testability, useClass: Testability, deps: [NgZone]},\n {provide: EventManager, useClass: EventManager, deps: [EVENT_MANAGER_PLUGINS, NgZone]},\n ELEMENT_PROBE_PROVIDERS,\n];\n\n/**\n * Exports required infrastructure for all Angular apps.\n * Included by default in all Angular apps created with the CLI\n * `new` command.\n * Re-exports `CommonModule` and `ApplicationModule`, making their\n * exports and providers available to all apps.\n *\n * @publicApi\n */\n@NgModule({providers: BROWSER_MODULE_PROVIDERS, exports: [CommonModule, ApplicationModule]})\nexport class BrowserModule {\n constructor(@Optional() @SkipSelf() @Inject(BrowserModule) parentModule: BrowserModule|null) {\n if (parentModule) {\n throw new Error(\n `BrowserModule has already been loaded. If you need access to common directives such as NgIf and NgFor from a lazy loaded module, import CommonModule instead.`);\n }\n }\n\n /**\n * Configures a browser-based app to transition from a server-rendered app, if\n * one is present on the page.\n *\n * @param params An object containing an identifier for the app to transition.\n * The ID must match between the client and server versions of the app.\n * @returns The reconfigured `BrowserModule` to import into the app's root `AppModule`.\n */\n static withServerTransition(params: {appId: string}): ModuleWithProviders<BrowserModule> {\n return {\n ngModule: BrowserModule,\n providers: [\n {provide: APP_ID, useValue: params.appId},\n {provide: TRANSITION_ID, useExisting: APP_ID},\n SERVER_TRANSITION_PROVIDERS,\n ],\n };\n }\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Inject, Injectable, inject} from '@angular/core';\n\nimport {DomAdapter, getDOM} from '../dom/dom_adapter';\nimport {DOCUMENT} from '../dom/dom_tokens';\n\n\n\n/**\n * Represents a meta element.\n *\n * @publicApi\n */\nexport type MetaDefinition = {\n charset?: string; content?: string; httpEquiv?: string; id?: string; itemprop?: string;\n name?: string;\n property?: string;\n scheme?: string;\n url?: string;\n} &\n{\n // TODO(IgorMinar): this type looks wrong\n [prop: string]: string;\n};\n\n/**\n * Factory to create Meta service.\n */\nexport function createMeta() {\n return new Meta(inject(DOCUMENT));\n}\n\n/**\n * A service that can be used to get and add meta tags.\n *\n * @publicApi\n */\n@Injectable({providedIn: 'root', useFactory: createMeta, deps: []})\nexport class Meta {\n private _dom: DomAdapter;\n constructor(@Inject(DOCUMENT) private _doc: any) { this._dom = getDOM(); }\n\n addTag(tag: MetaDefinition, forceCreation: boolean = false): HTMLMetaElement|null {\n if (!tag) return null;\n return this._getOrCreateElement(tag, forceCreation);\n }\n\n addTags(tags: MetaDefinition[], forceCreation: boolean = false): HTMLMetaElement[] {\n if (!tags) return [];\n return tags.reduce((result: HTMLMetaElement[], tag: MetaDefinition) => {\n if (tag) {\n result.push(this._getOrCreateElement(tag, forceCreation));\n }\n return result;\n }, []);\n }\n\n getTag(attrSelector: string): HTMLMetaElement|null {\n if (!attrSelector) return null;\n return this._dom.querySelector(this._doc, `meta[${attrSelector}]`) || null;\n }\n\n getTags(attrSelector: string): HTMLMetaElement[] {\n if (!attrSelector) return [];\n const list /*NodeList*/ = this._dom.querySelectorAll(this._doc, `meta[${attrSelector}]`);\n return list ? [].slice.call(list) : [];\n }\n\n updateTag(tag: MetaDefinition, selector?: string): HTMLMetaElement|null {\n if (!tag) return null;\n selector = selector || this._parseSelector(tag);\n const meta: HTMLMetaElement = this.getTag(selector) !;\n if (meta) {\n return this._setMetaElementAttributes(tag, meta);\n }\n return this._getOrCreateElement(tag, true);\n }\n\n removeTag(attrSelector: string): void { this.removeTagElement(this.getTag(attrSelector) !); }\n\n removeTagElement(meta: HTMLMetaElement): void {\n if (meta) {\n this._dom.remove(meta);\n }\n }\n\n private _getOrCreateElement(meta: MetaDefinition, forceCreation: boolean = false):\n HTMLMetaElement {\n if (!forceCreation) {\n const selector: string = this._parseSelector(meta);\n const elem: HTMLMetaElement = this.getTag(selector) !;\n // It's allowed to have multiple elements with the same name so it's not enough to\n // just check that element with the same name already present on the page. We also need to\n // check if element has tag attributes\n if (elem && this._containsAttributes(meta, elem)) return elem;\n }\n const element: HTMLMetaElement = this._dom.createElement('meta') as HTMLMetaElement;\n this._setMetaElementAttributes(meta, element);\n const head = this._dom.getElementsByTagName(this._doc, 'head')[0];\n this._dom.appendChild(head, element);\n return element;\n }\n\n private _setMetaElementAttributes(tag: MetaDefinition, el: HTMLMetaElement): HTMLMetaElement {\n Object.keys(tag).forEach((prop: string) => this._dom.setAttribute(el, prop, tag[prop]));\n return el;\n }\n\n private _parseSelector(tag: MetaDefinition): string {\n const attr: string = tag.name ? 'name' : 'property';\n return `${attr}=\"${tag[attr]}\"`;\n }\n\n private _containsAttributes(tag: MetaDefinition, elem: HTMLMetaElement): boolean {\n return Object.keys(tag).every((key: string) => this._dom.getAttribute(elem, key) === tag[key]);\n }\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Inject, Injectable, inject} from '@angular/core';\n\nimport {getDOM} from '../dom/dom_adapter';\nimport {DOCUMENT} from '../dom/dom_tokens';\n\n/**\n * Factory to create Title service.\n */\nexport function createTitle() {\n return new Title(inject(DOCUMENT));\n}\n\n/**\n * A service that can be used to get and set the title of a current HTML document.\n *\n * Since an Angular application can't be bootstrapped on the entire HTML document (`<html>` tag)\n * it is not possible to bind to the `text` property of the `HTMLTitleElement` elements\n * (representing the `<title>` tag). Instead, this service can be used to set and get the current\n * title value.\n *\n * @publicApi\n */\n@Injectable({providedIn: 'root', useFactory: createTitle, deps: []})\nexport class Title {\n constructor(@Inject(DOCUMENT) private _doc: any) {}\n /**\n * Get the title of the current HTML document.\n */\n getTitle(): string { return getDOM().getTitle(this._doc); }\n\n /**\n * Set the title of the current HTML document.\n * @param newTitle\n */\n setTitle(newTitle: string) { getDOM().setTitle(this._doc, newTitle); }\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nconst win = typeof window !== 'undefined' && window || <any>{};\nexport {win as window};\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {ApplicationRef, ComponentRef} from '@angular/core';\nimport {getDOM} from '../../dom/dom_adapter';\nimport {window} from './browser';\n\nexport class ChangeDetectionPerfRecord {\n constructor(public msPerTick: number, public numTicks: number) {}\n}\n\n/**\n * Entry point for all Angular profiling-related debug tools. This object\n * corresponds to the `ng.profiler` in the dev console.\n */\nexport class AngularProfiler {\n appRef: ApplicationRef;\n\n constructor(ref: ComponentRef<any>) { this.appRef = ref.injector.get(ApplicationRef); }\n\n // tslint:disable:no-console\n /**\n * Exercises change detection in a loop and then prints the average amount of\n * time in milliseconds how long a single round of change detection takes for\n * the current state of the UI. It runs a minimum of 5 rounds for a minimum\n * of 500 milliseconds.\n *\n * Optionally, a user may pass a `config` parameter containing a map of\n * options. Supported options are:\n *\n * `record` (boolean) - causes the profiler to record a CPU profile while\n * it exercises the change detector. Example:\n *\n * ```\n * ng.profiler.timeChangeDetection({record: true})\n * ```\n */\n timeChangeDetection(config: any): ChangeDetectionPerfRecord {\n const record = config && config['record'];\n const profileName = 'Change Detection';\n // Profiler is not available in Android browsers, nor in IE 9 without dev tools opened\n const isProfilerAvailable = window.console.profile != null;\n if (record && isProfilerAvailable) {\n window.console.profile(profileName);\n }\n const start = getDOM().performanceNow();\n let numTicks = 0;\n while (numTicks < 5 || (getDOM().performanceNow() - start) < 500) {\n this.appRef.tick();\n numTicks++;\n }\n const end = getDOM().performanceNow();\n if (record && isProfilerAvailable) {\n window.console.profileEnd(profileName);\n }\n const msPerTick = (end - start) / numTicks;\n window.console.log(`ran ${numTicks} change detection cycles`);\n window.console.log(`${msPerTick.toFixed(2)} ms per check`);\n\n return new ChangeDetectionPerfRecord(msPerTick, numTicks);\n }\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {ComponentRef} from '@angular/core';\nimport {exportNgVar} from '../../dom/util';\nimport {AngularProfiler} from './common_tools';\n\nconst PROFILER_GLOBAL_NAME = 'profiler';\n\n/**\n * Enabled Angular debug tools that are accessible via your browser's\n * developer console.\n *\n * Usage:\n *\n * 1. Open developer console (e.g. in Chrome Ctrl + Shift + j)\n * 1. Type `ng.` (usually the console will show auto-complete suggestion)\n * 1. Try the change detection profiler `ng.profiler.timeChangeDetection()`\n * then hit Enter.\n *\n * @publicApi\n */\nexport function enableDebugTools<T>(ref: ComponentRef<T>): ComponentRef<T> {\n exportNgVar(PROFILER_GLOBAL_NAME, new AngularProfiler(ref));\n return ref;\n}\n\n/**\n * Disables Angular tools.\n *\n * @publicApi\n */\nexport function disableDebugTools(): void {\n exportNgVar(PROFILER_GLOBAL_NAME, null);\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {APP_ID, Injectable, NgModule} from '@angular/core';\nimport {DOCUMENT} from '../dom/dom_tokens';\n\nexport function escapeHtml(text: string): string {\n const escapedText: {[k: string]: string} = {\n '&': '&a;',\n '\"': '&q;',\n '\\'': '&s;',\n '<': '&l;',\n '>': '&g;',\n };\n return text.replace(/[&\"'<>]/g, s => escapedText[s]);\n}\n\nexport function unescapeHtml(text: string): string {\n const unescapedText: {[k: string]: string} = {\n '&a;': '&',\n '&q;': '\"',\n '&s;': '\\'',\n '&l;': '<',\n '&g;': '>',\n };\n return text.replace(/&[^;]+;/g, s => unescapedText[s]);\n}\n\n/**\n * A type-safe key to use with `TransferState`.\n *\n * Example:\n *\n * ```\n * const COUNTER_KEY = makeStateKey<number>('counter');\n * let value = 10;\n *\n * transferState.set(COUNTER_KEY, value);\n * ```\n *\n * @publicApi\n */\nexport type StateKey<T> = string & {__not_a_string: never};\n\n/**\n * Create a `StateKey<T>` that can be used to store value of type T with `TransferState`.\n *\n * Example:\n *\n * ```\n * const COUNTER_KEY = makeStateKey<number>('counter');\n * let value = 10;\n *\n * transferState.set(COUNTER_KEY, value);\n * ```\n *\n * @publicApi\n */\nexport function makeStateKey<T = void>(key: string): StateKey<T> {\n return key as StateKey<T>;\n}\n\n/**\n * A key value store that is transferred from the application on the server side to the application\n * on the client side.\n *\n * `TransferState` will be available as an injectable token. To use it import\n * `ServerTransferStateModule` on the server and `BrowserTransferStateModule` on the client.\n *\n * The values in the store are serialized/deserialized using JSON.stringify/JSON.parse. So only\n * boolean, number, string, null and non-class objects will be serialized and deserialzied in a\n * non-lossy manner.\n *\n * @publicApi\n */\n@Injectable()\nexport class TransferState {\n private store: {[k: string]: {} | undefined} = {};\n private onSerializeCallbacks: {[k: string]: () => {} | undefined} = {};\n\n /** @internal */\n static init(initState: {}) {\n const transferState = new TransferState();\n transferState.store = initState;\n return transferState;\n }\n\n /**\n * Get the value corresponding to a key. Return `defaultValue` if key is not found.\n */\n get<T>(key: StateKey<T>, defaultValue: T): T {\n return this.store[key] !== undefined ? this.store[key] as T : defaultValue;\n }\n\n /**\n * Set the value corresponding to a key.\n */\n set<T>(key: StateKey<T>, value: T): void { this.store[key] = value; }\n\n /**\n * Remove a key from the store.\n */\n remove<T>(key: StateKey<T>): void { delete this.store[key]; }\n\n /**\n * Test whether a key exists in the store.\n */\n hasKey<T>(key: StateKey<T>) { return this.store.hasOwnProperty(key); }\n\n /**\n * Register a callback to provide the value for a key when `toJson` is called.\n */\n onSerialize<T>(key: StateKey<T>, callback: () => T): void {\n this.onSerializeCallbacks[key] = callback;\n }\n\n /**\n * Serialize the current state of the store to JSON.\n */\n toJson(): string {\n // Call the onSerialize callbacks and put those values into the store.\n for (const key in this.onSerializeCallbacks) {\n if (this.onSerializeCallbacks.hasOwnProperty(key)) {\n try {\n this.store[key] = this.onSerializeCallbacks[key]();\n } catch (e) {\n console.warn('Exception in onSerialize callback: ', e);\n }\n }\n }\n return JSON.stringify(this.store);\n }\n}\n\nexport function initTransferState(doc: Document, appId: string) {\n // Locate the script tag with the JSON data transferred from the server.\n // The id of the script tag is set to the Angular appId + 'state'.\n const script = doc.getElementById(appId + '-state');\n let initialState = {};\n if (script && script.textContent) {\n try {\n initialState = JSON.parse(unescapeHtml(script.textContent));\n } catch (e) {\n console.warn('Exception while restoring TransferState for app ' + appId, e);\n }\n }\n return TransferState.init(initialState);\n}\n\n/**\n * NgModule to install on the client side while using the `TransferState` to transfer state from\n * server to client.\n *\n * @publicApi\n */\n@NgModule({\n providers: [{provide: TransferState, useFactory: initTransferState, deps: [DOCUMENT, APP_ID]}],\n})\nexport class BrowserTransferStateModule {\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {DebugElement, Predicate, Type} from '@angular/core';\nimport {getDOM} from '../../dom/dom_adapter';\n\n\n\n/**\n * Predicates for use with {@link DebugElement}'s query functions.\n *\n * @publicApi\n */\nexport class By {\n /**\n * Match all elements.\n *\n * @usageNotes\n * ### Example\n *\n * {@example platform-browser/dom/debug/ts/by/by.ts region='by_all'}\n */\n static all(): Predicate<DebugElement> { return (debugElement) => true; }\n\n /**\n * Match elements by the given CSS selector.\n *\n * @usageNotes\n * ### Example\n *\n * {@example platform-browser/dom/debug/ts/by/by.ts region='by_css'}\n */\n static css(selector: string): Predicate<DebugElement> {\n return (debugElement) => {\n return debugElement.nativeElement != null ?\n getDOM().elementMatches(debugElement.nativeElement, selector) :\n false;\n };\n }\n\n /**\n * Match elements that have the given directive present.\n *\n * @usageNotes\n * ### Example\n *\n * {@example platform-browser/dom/debug/ts/by/by.ts region='by_directive'}\n */\n static directive(type: Type<any>): Predicate<DebugElement> {\n return (debugElement) => debugElement.providerTokens !.indexOf(type) !== -1;\n }\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * @module\n * @description\n * Entry point for all public APIs of the common package.\n */\n\nimport {Version} from '@angular/core';\n\n/**\n * @publicApi\n */\nexport const VERSION = new Version('7.2.8');\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n\nexport {BROWSER_MODULE_PROVIDERS as ɵangular_packages_platform_browser_platform_browser_c,_document as ɵangular_packages_platform_browser_platform_browser_b,errorHandler as ɵangular_packages_platform_browser_platform_browser_a} from './src/browser';\nexport {GenericBrowserDomAdapter as ɵangular_packages_platform_browser_platform_browser_k} from './src/browser/generic_browser_adapter';\nexport {createMeta as ɵangular_packages_platform_browser_platform_browser_d} from './src/browser/meta';\nexport {SERVER_TRANSITION_PROVIDERS as ɵangular_packages_platform_browser_platform_browser_i,appInitializerFactory as ɵangular_packages_platform_browser_platform_browser_h} from './src/browser/server-transition';\nexport {createTitle as ɵangular_packages_platform_browser_platform_browser_e} from './src/browser/title';\nexport {initTransferState as ɵangular_packages_platform_browser_platform_browser_f} from './src/browser/transfer_state';\nexport {_createNgProbe as ɵangular_packages_platform_browser_platform_browser_j} from './src/dom/debug/ng_probe';\nexport {EventManagerPlugin as ɵangular_packages_platform_browser_platform_browser_g} from './src/dom/events/event_manager';"],"names":["global","parseCookieValue","DOCUMENT","commonDOCUMENT","core.ApplicationRef","core.NgZone","core.getDebugNode","core.APP_INITIALIZER","core.NgProbeToken","core.Optional","Console","_sanitizeHtml","_sanitizeStyle","_sanitizeUrl","PLATFORM_BROWSER_ID","APP_ROOT","window"],"mappings":"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"}
\ No newline at end of file

fesm2015/testing.js

@@ -1,5 +1,5 @@
/**
- * @license Angular v7.2.7
+ * @license Angular v7.2.8
* (c) 2010-2019 Google LLC. https://angular.io/
* License: MIT
*/

fesm5/animations.js

@@ -1,5 +1,5 @@
/**
- * @license Angular v7.2.7
+ * @license Angular v7.2.8
* (c) 2010-2019 Google LLC. https://angular.io/
* License: MIT
*/

fesm5/platform-browser.js

@@ -1,5 +1,5 @@
/**
- * @license Angular v7.2.7
+ * @license Angular v7.2.8
* (c) 2010-2019 Google LLC. https://angular.io/
* License: MIT
*/
@@ -2472,7 +2472,7 @@
/**
* @publicApi
*/
-var VERSION = new Version('7.2.7');
+var VERSION = new Version('7.2.8');
/**
* @license

fesm5/platform-browser.js.map

@@ -1 +1 @@
-{"version":3,"file":"platform-browser.js","sources":["../../../../../../packages/platform-browser/src/dom/dom_adapter.ts","../../../../../../packages/platform-browser/src/browser/generic_browser_adapter.ts","../../../../../../packages/platform-browser/src/browser/browser_adapter.ts","../../../../../../packages/platform-browser/src/dom/dom_tokens.ts","../../../../../../packages/platform-browser/src/browser/location/history.ts","../../../../../../packages/platform-browser/src/browser/location/browser_platform_location.ts","../../../../../../packages/platform-browser/src/browser/server-transition.ts","../../../../../../packages/platform-browser/src/browser/testability.ts","../../../../../../packages/platform-browser/src/dom/util.ts","../../../../../../packages/platform-browser/src/dom/debug/ng_probe.ts","../../../../../../packages/platform-browser/src/dom/events/event_manager.ts","../../../../../../packages/platform-browser/src/dom/shared_styles_host.ts","../../../../../../packages/platform-browser/src/dom/dom_renderer.ts","../../../../../../packages/platform-browser/src/dom/events/dom_events.ts","../../../../../../packages/platform-browser/src/dom/events/hammer_gestures.ts","../../../../../../packages/platform-browser/src/dom/events/key_events.ts","../../../../../../packages/platform-browser/src/security/dom_sanitization_service.ts","../../../../../../packages/platform-browser/src/browser.ts","../../../../../../packages/platform-browser/src/browser/meta.ts","../../../../../../packages/platform-browser/src/browser/title.ts","../../../../../../packages/platform-browser/src/browser/tools/browser.ts","../../../../../../packages/platform-browser/src/browser/tools/common_tools.ts","../../../../../../packages/platform-browser/src/browser/tools/tools.ts","../../../../../../packages/platform-browser/src/browser/transfer_state.ts","../../../../../../packages/platform-browser/src/dom/debug/by.ts","../../../../../../packages/platform-browser/src/private_export.ts","../../../../../../packages/platform-browser/src/version.ts","../../../../../../packages/platform-browser/src/platform-browser.ts","../../../../../../packages/platform-browser/public_api.ts","../../../../../../packages/platform-browser/index.ts","../../../../../../packages/platform-browser/platform-browser.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Type} from '@angular/core';\n\nlet _DOM: DomAdapter = null !;\n\nexport function getDOM() {\n return _DOM;\n}\n\nexport function setDOM(adapter: DomAdapter) {\n _DOM = adapter;\n}\n\nexport function setRootDomAdapter(adapter: DomAdapter) {\n if (!_DOM) {\n _DOM = adapter;\n }\n}\n\n/* tslint:disable:requireParameterType */\n/**\n * Provides DOM operations in an environment-agnostic way.\n *\n * @security Tread carefully! Interacting with the DOM directly is dangerous and\n * can introduce XSS risks.\n */\nexport abstract class DomAdapter {\n public resourceLoaderType: Type<any> = null !;\n abstract hasProperty(element: any, name: string): boolean;\n abstract setProperty(el: Element, name: string, value: any): any;\n abstract getProperty(el: Element, name: string): any;\n abstract invoke(el: Element, methodName: string, args: any[]): any;\n\n abstract logError(error: any): any;\n abstract log(error: any): any;\n abstract logGroup(error: any): any;\n abstract logGroupEnd(): any;\n\n /**\n * Maps attribute names to their corresponding property names for cases\n * where attribute name doesn't match property name.\n */\n get attrToPropMap(): {[key: string]: string} { return this._attrToPropMap; }\n set attrToPropMap(value: {[key: string]: string}) { this._attrToPropMap = value; }\n /** @internal */\n // TODO(issue/24571): remove '!'.\n _attrToPropMap !: {[key: string]: string};\n\n abstract contains(nodeA: any, nodeB: any): boolean;\n abstract parse(templateHtml: string): any;\n abstract querySelector(el: any, selector: string): any;\n abstract querySelectorAll(el: any, selector: string): any[];\n abstract on(el: any, evt: any, listener: any): any;\n abstract onAndCancel(el: any, evt: any, listener: any): Function;\n abstract dispatchEvent(el: any, evt: any): any;\n abstract createMouseEvent(eventType: any): any;\n abstract createEvent(eventType: string): any;\n abstract preventDefault(evt: any): any;\n abstract isPrevented(evt: any): boolean;\n abstract getInnerHTML(el: any): string;\n /** Returns content if el is a <template> element, null otherwise. */\n abstract getTemplateContent(el: any): any;\n abstract getOuterHTML(el: any): string;\n abstract nodeName(node: any): string;\n abstract nodeValue(node: any): string|null;\n abstract type(node: any): string;\n abstract content(node: any): any;\n abstract firstChild(el: any): Node|null;\n abstract nextSibling(el: any): Node|null;\n abstract parentElement(el: any): Node|null;\n abstract childNodes(el: any): Node[];\n abstract childNodesAsList(el: any): Node[];\n abstract clearNodes(el: any): any;\n abstract appendChild(el: any, node: any): any;\n abstract removeChild(el: any, node: any): any;\n abstract replaceChild(el: any, newNode: any, oldNode: any): any;\n abstract remove(el: any): Node;\n abstract insertBefore(parent: any, ref: any, node: any): any;\n abstract insertAllBefore(parent: any, ref: any, nodes: any): any;\n abstract insertAfter(parent: any, el: any, node: any): any;\n abstract setInnerHTML(el: any, value: any): any;\n abstract getText(el: any): string|null;\n abstract setText(el: any, value: string): any;\n abstract getValue(el: any): string;\n abstract setValue(el: any, value: string): any;\n abstract getChecked(el: any): boolean;\n abstract setChecked(el: any, value: boolean): any;\n abstract createComment(text: string): any;\n abstract createTemplate(html: any): HTMLElement;\n abstract createElement(tagName: any, doc?: any): HTMLElement;\n abstract createElementNS(ns: string, tagName: string, doc?: any): Element;\n abstract createTextNode(text: string, doc?: any): Text;\n abstract createScriptTag(attrName: string, attrValue: string, doc?: any): HTMLElement;\n abstract createStyleElement(css: string, doc?: any): HTMLStyleElement;\n abstract createShadowRoot(el: any): any;\n abstract getShadowRoot(el: any): any;\n abstract getHost(el: any): any;\n abstract getDistributedNodes(el: any): Node[];\n abstract clone /*<T extends Node>*/ (node: Node /*T*/): Node /*T*/;\n abstract getElementsByClassName(element: any, name: string): HTMLElement[];\n abstract getElementsByTagName(element: any, name: string): HTMLElement[];\n abstract classList(element: any): any[];\n abstract addClass(element: any, className: string): any;\n abstract removeClass(element: any, className: string): any;\n abstract hasClass(element: any, className: string): boolean;\n abstract setStyle(element: any, styleName: string, styleValue: string): any;\n abstract removeStyle(element: any, styleName: string): any;\n abstract getStyle(element: any, styleName: string): string;\n abstract hasStyle(element: any, styleName: string, styleValue?: string): boolean;\n abstract tagName(element: any): string;\n abstract attributeMap(element: any): Map<string, string>;\n abstract hasAttribute(element: any, attribute: string): boolean;\n abstract hasAttributeNS(element: any, ns: string, attribute: string): boolean;\n abstract getAttribute(element: any, attribute: string): string|null;\n abstract getAttributeNS(element: any, ns: string, attribute: string): string|null;\n abstract setAttribute(element: any, name: string, value: string): any;\n abstract setAttributeNS(element: any, ns: string, name: string, value: string): any;\n abstract removeAttribute(element: any, attribute: string): any;\n abstract removeAttributeNS(element: any, ns: string, attribute: string): any;\n abstract templateAwareRoot(el: any): any;\n abstract createHtmlDocument(): HTMLDocument;\n abstract getDefaultDocument(): Document;\n abstract getBoundingClientRect(el: any): any;\n abstract getTitle(doc: Document): string;\n abstract setTitle(doc: Document, newTitle: string): any;\n abstract elementMatches(n: any, selector: string): boolean;\n abstract isTemplateElement(el: any): boolean;\n abstract isTextNode(node: any): boolean;\n abstract isCommentNode(node: any): boolean;\n abstract isElementNode(node: any): boolean;\n abstract hasShadowRoot(node: any): boolean;\n abstract isShadowRoot(node: any): boolean;\n abstract importIntoDoc /*<T extends Node>*/ (node: Node /*T*/): Node /*T*/;\n abstract adoptNode /*<T extends Node>*/ (node: Node /*T*/): Node /*T*/;\n abstract getHref(element: any): string;\n abstract getEventKey(event: any): string;\n abstract resolveAndSetHref(element: any, baseUrl: string, href: string): any;\n abstract supportsDOMEvents(): boolean;\n abstract supportsNativeShadowDOM(): boolean;\n abstract getGlobalEventTarget(doc: Document, target: string): any;\n abstract getHistory(): History;\n abstract getLocation(): Location;\n abstract getBaseHref(doc: Document): string|null;\n abstract resetBaseElement(): void;\n abstract getUserAgent(): string;\n abstract setData(element: any, name: string, value: string): any;\n abstract getComputedStyle(element: any): any;\n abstract getData(element: any, name: string): string|null;\n abstract supportsWebAnimation(): boolean;\n abstract performanceNow(): number;\n abstract getAnimationPrefix(): string;\n abstract getTransitionEnd(): string;\n abstract supportsAnimation(): boolean;\n\n abstract supportsCookies(): boolean;\n abstract getCookie(name: string): string|null;\n abstract setCookie(name: string, value: string): any;\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {DomAdapter} from '../dom/dom_adapter';\n\n\n\n/**\n * Provides DOM operations in any browser environment.\n *\n * @security Tread carefully! Interacting with the DOM directly is dangerous and\n * can introduce XSS risks.\n */\nexport abstract class GenericBrowserDomAdapter extends DomAdapter {\n private _animationPrefix: string|null = null;\n private _transitionEnd: string|null = null;\n constructor() {\n super();\n try {\n const element = this.createElement('div', document);\n if (this.getStyle(element, 'animationName') != null) {\n this._animationPrefix = '';\n } else {\n const domPrefixes = ['Webkit', 'Moz', 'O', 'ms'];\n\n for (let i = 0; i < domPrefixes.length; i++) {\n if (this.getStyle(element, domPrefixes[i] + 'AnimationName') != null) {\n this._animationPrefix = '-' + domPrefixes[i].toLowerCase() + '-';\n break;\n }\n }\n }\n\n const transEndEventNames: {[key: string]: string} = {\n WebkitTransition: 'webkitTransitionEnd',\n MozTransition: 'transitionend',\n OTransition: 'oTransitionEnd otransitionend',\n transition: 'transitionend'\n };\n\n Object.keys(transEndEventNames).forEach((key: string) => {\n if (this.getStyle(element, key) != null) {\n this._transitionEnd = transEndEventNames[key];\n }\n });\n } catch {\n this._animationPrefix = null;\n this._transitionEnd = null;\n }\n }\n\n getDistributedNodes(el: HTMLElement): Node[] { return (<any>el).getDistributedNodes(); }\n resolveAndSetHref(el: HTMLAnchorElement, baseUrl: string, href: string) {\n el.href = href == null ? baseUrl : baseUrl + '/../' + href;\n }\n supportsDOMEvents(): boolean { return true; }\n supportsNativeShadowDOM(): boolean {\n return typeof(<any>document.body).createShadowRoot === 'function';\n }\n getAnimationPrefix(): string { return this._animationPrefix ? this._animationPrefix : ''; }\n getTransitionEnd(): string { return this._transitionEnd ? this._transitionEnd : ''; }\n supportsAnimation(): boolean {\n return this._animationPrefix != null && this._transitionEnd != null;\n }\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {ɵparseCookieValue as parseCookieValue} from '@angular/common';\nimport {ɵglobal as global} from '@angular/core';\n\nimport {setRootDomAdapter} from '../dom/dom_adapter';\n\nimport {GenericBrowserDomAdapter} from './generic_browser_adapter';\n\nconst _attrToPropMap = {\n 'class': 'className',\n 'innerHtml': 'innerHTML',\n 'readonly': 'readOnly',\n 'tabindex': 'tabIndex',\n};\n\nconst DOM_KEY_LOCATION_NUMPAD = 3;\n\n// Map to convert some key or keyIdentifier values to what will be returned by getEventKey\nconst _keyMap: {[k: string]: string} = {\n // The following values are here for cross-browser compatibility and to match the W3C standard\n // cf http://www.w3.org/TR/DOM-Level-3-Events-key/\n '\\b': 'Backspace',\n '\\t': 'Tab',\n '\\x7F': 'Delete',\n '\\x1B': 'Escape',\n 'Del': 'Delete',\n 'Esc': 'Escape',\n 'Left': 'ArrowLeft',\n 'Right': 'ArrowRight',\n 'Up': 'ArrowUp',\n 'Down': 'ArrowDown',\n 'Menu': 'ContextMenu',\n 'Scroll': 'ScrollLock',\n 'Win': 'OS'\n};\n\n// There is a bug in Chrome for numeric keypad keys:\n// https://code.google.com/p/chromium/issues/detail?id=155654\n// 1, 2, 3 ... are reported as A, B, C ...\nconst _chromeNumKeyPadMap = {\n 'A': '1',\n 'B': '2',\n 'C': '3',\n 'D': '4',\n 'E': '5',\n 'F': '6',\n 'G': '7',\n 'H': '8',\n 'I': '9',\n 'J': '*',\n 'K': '+',\n 'M': '-',\n 'N': '.',\n 'O': '/',\n '\\x60': '0',\n '\\x90': 'NumLock'\n};\n\nlet nodeContains: (a: any, b: any) => boolean;\n\nif (global['Node']) {\n nodeContains = global['Node'].prototype.contains || function(node) {\n return !!(this.compareDocumentPosition(node) & 16);\n };\n}\n\n/**\n * A `DomAdapter` powered by full browser DOM APIs.\n *\n * @security Tread carefully! Interacting with the DOM directly is dangerous and\n * can introduce XSS risks.\n */\n/* tslint:disable:requireParameterType no-console */\nexport class BrowserDomAdapter extends GenericBrowserDomAdapter {\n parse(templateHtml: string) { throw new Error('parse not implemented'); }\n static makeCurrent() { setRootDomAdapter(new BrowserDomAdapter()); }\n hasProperty(element: Node, name: string): boolean { return name in element; }\n setProperty(el: Node, name: string, value: any) { (<any>el)[name] = value; }\n getProperty(el: Node, name: string): any { return (<any>el)[name]; }\n invoke(el: Node, methodName: string, args: any[]): any { (<any>el)[methodName](...args); }\n\n // TODO(tbosch): move this into a separate environment class once we have it\n logError(error: string): void {\n if (window.console) {\n if (console.error) {\n console.error(error);\n } else {\n console.log(error);\n }\n }\n }\n\n log(error: string): void {\n if (window.console) {\n window.console.log && window.console.log(error);\n }\n }\n\n logGroup(error: string): void {\n if (window.console) {\n window.console.group && window.console.group(error);\n }\n }\n\n logGroupEnd(): void {\n if (window.console) {\n window.console.groupEnd && window.console.groupEnd();\n }\n }\n\n get attrToPropMap(): any { return _attrToPropMap; }\n\n contains(nodeA: any, nodeB: any): boolean { return nodeContains.call(nodeA, nodeB); }\n querySelector(el: HTMLElement, selector: string): any { return el.querySelector(selector); }\n querySelectorAll(el: any, selector: string): any[] { return el.querySelectorAll(selector); }\n on(el: Node, evt: any, listener: any) { el.addEventListener(evt, listener, false); }\n onAndCancel(el: Node, evt: any, listener: any): Function {\n el.addEventListener(evt, listener, false);\n // Needed to follow Dart's subscription semantic, until fix of\n // https://code.google.com/p/dart/issues/detail?id=17406\n return () => { el.removeEventListener(evt, listener, false); };\n }\n dispatchEvent(el: Node, evt: any) { el.dispatchEvent(evt); }\n createMouseEvent(eventType: string): MouseEvent {\n const evt: MouseEvent = this.getDefaultDocument().createEvent('MouseEvent');\n evt.initEvent(eventType, true, true);\n return evt;\n }\n createEvent(eventType: any): Event {\n const evt: Event = this.getDefaultDocument().createEvent('Event');\n evt.initEvent(eventType, true, true);\n return evt;\n }\n preventDefault(evt: Event) {\n evt.preventDefault();\n evt.returnValue = false;\n }\n isPrevented(evt: Event): boolean {\n return evt.defaultPrevented || evt.returnValue != null && !evt.returnValue;\n }\n getInnerHTML(el: HTMLElement): string { return el.innerHTML; }\n getTemplateContent(el: Node): Node|null {\n return 'content' in el && this.isTemplateElement(el) ? (<any>el).content : null;\n }\n getOuterHTML(el: HTMLElement): string { return el.outerHTML; }\n nodeName(node: Node): string { return node.nodeName; }\n nodeValue(node: Node): string|null { return node.nodeValue; }\n type(node: HTMLInputElement): string { return node.type; }\n content(node: Node): Node {\n if (this.hasProperty(node, 'content')) {\n return (<any>node).content;\n } else {\n return node;\n }\n }\n firstChild(el: Node): Node|null { return el.firstChild; }\n nextSibling(el: Node): Node|null { return el.nextSibling; }\n parentElement(el: Node): Node|null { return el.parentNode; }\n childNodes(el: any): Node[] { return el.childNodes; }\n childNodesAsList(el: Node): any[] {\n const childNodes = el.childNodes;\n const res = new Array(childNodes.length);\n for (let i = 0; i < childNodes.length; i++) {\n res[i] = childNodes[i];\n }\n return res;\n }\n clearNodes(el: Node) {\n while (el.firstChild) {\n el.removeChild(el.firstChild);\n }\n }\n appendChild(el: Node, node: Node) { el.appendChild(node); }\n removeChild(el: Node, node: Node) { el.removeChild(node); }\n replaceChild(el: Node, newChild: Node, oldChild: Node) { el.replaceChild(newChild, oldChild); }\n remove(node: Node): Node {\n if (node.parentNode) {\n node.parentNode.removeChild(node);\n }\n return node;\n }\n insertBefore(parent: Node, ref: Node, node: Node) { parent.insertBefore(node, ref); }\n insertAllBefore(parent: Node, ref: Node, nodes: Node[]) {\n nodes.forEach((n: any) => parent.insertBefore(n, ref));\n }\n insertAfter(parent: Node, ref: Node, node: any) { parent.insertBefore(node, ref.nextSibling); }\n setInnerHTML(el: Element, value: string) { el.innerHTML = value; }\n getText(el: Node): string|null { return el.textContent; }\n setText(el: Node, value: string) { el.textContent = value; }\n getValue(el: any): string { return el.value; }\n setValue(el: any, value: string) { el.value = value; }\n getChecked(el: any): boolean { return el.checked; }\n setChecked(el: any, value: boolean) { el.checked = value; }\n createComment(text: string): Comment { return this.getDefaultDocument().createComment(text); }\n createTemplate(html: any): HTMLElement {\n const t = this.getDefaultDocument().createElement('template');\n t.innerHTML = html;\n return t;\n }\n createElement(tagName: string, doc?: Document): HTMLElement {\n doc = doc || this.getDefaultDocument();\n return doc.createElement(tagName);\n }\n createElementNS(ns: string, tagName: string, doc?: Document): Element {\n doc = doc || this.getDefaultDocument();\n return doc.createElementNS(ns, tagName);\n }\n createTextNode(text: string, doc?: Document): Text {\n doc = doc || this.getDefaultDocument();\n return doc.createTextNode(text);\n }\n createScriptTag(attrName: string, attrValue: string, doc?: Document): HTMLScriptElement {\n doc = doc || this.getDefaultDocument();\n const el = <HTMLScriptElement>doc.createElement('SCRIPT');\n el.setAttribute(attrName, attrValue);\n return el;\n }\n createStyleElement(css: string, doc?: Document): HTMLStyleElement {\n doc = doc || this.getDefaultDocument();\n const style = <HTMLStyleElement>doc.createElement('style');\n this.appendChild(style, this.createTextNode(css, doc));\n return style;\n }\n createShadowRoot(el: HTMLElement): DocumentFragment { return (<any>el).createShadowRoot(); }\n getShadowRoot(el: HTMLElement): DocumentFragment { return (<any>el).shadowRoot; }\n getHost(el: HTMLElement): HTMLElement { return (<any>el).host; }\n clone(node: Node): Node { return node.cloneNode(true); }\n getElementsByClassName(element: any, name: string): HTMLElement[] {\n return element.getElementsByClassName(name);\n }\n getElementsByTagName(element: any, name: string): HTMLElement[] {\n return element.getElementsByTagName(name);\n }\n classList(element: any): any[] { return Array.prototype.slice.call(element.classList, 0); }\n addClass(element: any, className: string) { element.classList.add(className); }\n removeClass(element: any, className: string) { element.classList.remove(className); }\n hasClass(element: any, className: string): boolean {\n return element.classList.contains(className);\n }\n setStyle(element: any, styleName: string, styleValue: string) {\n element.style[styleName] = styleValue;\n }\n removeStyle(element: any, stylename: string) {\n // IE requires '' instead of null\n // see https://github.com/angular/angular/issues/7916\n element.style[stylename] = '';\n }\n getStyle(element: any, stylename: string): string { return element.style[stylename]; }\n hasStyle(element: any, styleName: string, styleValue?: string|null): boolean {\n const value = this.getStyle(element, styleName) || '';\n return styleValue ? value == styleValue : value.length > 0;\n }\n tagName(element: any): string { return element.tagName; }\n attributeMap(element: any): Map<string, string> {\n const res = new Map<string, string>();\n const elAttrs = element.attributes;\n for (let i = 0; i < elAttrs.length; i++) {\n const attrib = elAttrs.item(i);\n res.set(attrib.name, attrib.value);\n }\n return res;\n }\n hasAttribute(element: Element, attribute: string): boolean {\n return element.hasAttribute(attribute);\n }\n hasAttributeNS(element: Element, ns: string, attribute: string): boolean {\n return element.hasAttributeNS(ns, attribute);\n }\n getAttribute(element: Element, attribute: string): string|null {\n return element.getAttribute(attribute);\n }\n getAttributeNS(element: Element, ns: string, name: string): string|null {\n return element.getAttributeNS(ns, name);\n }\n setAttribute(element: Element, name: string, value: string) { element.setAttribute(name, value); }\n setAttributeNS(element: Element, ns: string, name: string, value: string) {\n element.setAttributeNS(ns, name, value);\n }\n removeAttribute(element: Element, attribute: string) { element.removeAttribute(attribute); }\n removeAttributeNS(element: Element, ns: string, name: string) {\n element.removeAttributeNS(ns, name);\n }\n templateAwareRoot(el: Node): any { return this.isTemplateElement(el) ? this.content(el) : el; }\n createHtmlDocument(): HTMLDocument {\n return document.implementation.createHTMLDocument('fakeTitle');\n }\n getDefaultDocument(): Document { return document; }\n getBoundingClientRect(el: Element): any {\n try {\n return el.getBoundingClientRect();\n } catch {\n return {top: 0, bottom: 0, left: 0, right: 0, width: 0, height: 0};\n }\n }\n getTitle(doc: Document): string { return doc.title; }\n setTitle(doc: Document, newTitle: string) { doc.title = newTitle || ''; }\n elementMatches(n: any, selector: string): boolean {\n if (this.isElementNode(n)) {\n return n.matches && n.matches(selector) ||\n n.msMatchesSelector && n.msMatchesSelector(selector) ||\n n.webkitMatchesSelector && n.webkitMatchesSelector(selector);\n }\n\n return false;\n }\n isTemplateElement(el: Node): boolean {\n return this.isElementNode(el) && el.nodeName === 'TEMPLATE';\n }\n isTextNode(node: Node): boolean { return node.nodeType === Node.TEXT_NODE; }\n isCommentNode(node: Node): boolean { return node.nodeType === Node.COMMENT_NODE; }\n isElementNode(node: Node): boolean { return node.nodeType === Node.ELEMENT_NODE; }\n hasShadowRoot(node: any): boolean {\n return node.shadowRoot != null && node instanceof HTMLElement;\n }\n isShadowRoot(node: any): boolean { return node instanceof DocumentFragment; }\n importIntoDoc(node: Node): any { return document.importNode(this.templateAwareRoot(node), true); }\n adoptNode(node: Node): any { return document.adoptNode(node); }\n getHref(el: Element): string { return el.getAttribute('href') !; }\n\n getEventKey(event: any): string {\n let key = event.key;\n if (key == null) {\n key = event.keyIdentifier;\n // keyIdentifier is defined in the old draft of DOM Level 3 Events implemented by Chrome and\n // Safari cf\n // http://www.w3.org/TR/2007/WD-DOM-Level-3-Events-20071221/events.html#Events-KeyboardEvents-Interfaces\n if (key == null) {\n return 'Unidentified';\n }\n if (key.startsWith('U+')) {\n key = String.fromCharCode(parseInt(key.substring(2), 16));\n if (event.location === DOM_KEY_LOCATION_NUMPAD && _chromeNumKeyPadMap.hasOwnProperty(key)) {\n // There is a bug in Chrome for numeric keypad keys:\n // https://code.google.com/p/chromium/issues/detail?id=155654\n // 1, 2, 3 ... are reported as A, B, C ...\n key = (_chromeNumKeyPadMap as any)[key];\n }\n }\n }\n\n return _keyMap[key] || key;\n }\n getGlobalEventTarget(doc: Document, target: string): EventTarget|null {\n if (target === 'window') {\n return window;\n }\n if (target === 'document') {\n return doc;\n }\n if (target === 'body') {\n return doc.body;\n }\n return null;\n }\n getHistory(): History { return window.history; }\n getLocation(): Location { return window.location; }\n getBaseHref(doc: Document): string|null {\n const href = getBaseElementHref();\n return href == null ? null : relativePath(href);\n }\n resetBaseElement(): void { baseElement = null; }\n getUserAgent(): string { return window.navigator.userAgent; }\n setData(element: Element, name: string, value: string) {\n this.setAttribute(element, 'data-' + name, value);\n }\n getData(element: Element, name: string): string|null {\n return this.getAttribute(element, 'data-' + name);\n }\n getComputedStyle(element: any): any { return getComputedStyle(element); }\n // TODO(tbosch): move this into a separate environment class once we have it\n supportsWebAnimation(): boolean {\n return typeof(<any>Element).prototype['animate'] === 'function';\n }\n performanceNow(): number {\n // performance.now() is not available in all browsers, see\n // http://caniuse.com/#search=performance.now\n return window.performance && window.performance.now ? window.performance.now() :\n new Date().getTime();\n }\n\n supportsCookies(): boolean { return true; }\n\n getCookie(name: string): string|null { return parseCookieValue(document.cookie, name); }\n\n setCookie(name: string, value: string) {\n // document.cookie is magical, assigning into it assigns/overrides one cookie value, but does\n // not clear other cookies.\n document.cookie = encodeURIComponent(name) + '=' + encodeURIComponent(value);\n }\n}\n\nlet baseElement: HTMLElement|null = null;\nfunction getBaseElementHref(): string|null {\n if (!baseElement) {\n baseElement = document.querySelector('base') !;\n if (!baseElement) {\n return null;\n }\n }\n return baseElement.getAttribute('href');\n}\n\n// based on urlUtils.js in AngularJS 1\nlet urlParsingNode: any;\nfunction relativePath(url: any): string {\n if (!urlParsingNode) {\n urlParsingNode = document.createElement('a');\n }\n urlParsingNode.setAttribute('href', url);\n return (urlParsingNode.pathname.charAt(0) === '/') ? urlParsingNode.pathname :\n '/' + urlParsingNode.pathname;\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {DOCUMENT as commonDOCUMENT} from '@angular/common';\nimport {InjectionToken} from '@angular/core';\n\n\n/**\n * A DI Token representing the main rendering context. In a browser this is the DOM Document.\n *\n * Note: Document might not be available in the Application Context when Application and Rendering\n * Contexts are not the same (e.g. when running the application into a Web Worker).\n *\n * @deprecated import from `@angular/common` instead.\n * @publicApi\n */\nexport const DOCUMENT = commonDOCUMENT;\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nexport function supportsState(): boolean {\n return !!window.history.pushState;\n}","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {LocationChangeListener, PlatformLocation} from '@angular/common';\nimport {Inject, Injectable} from '@angular/core';\n\nimport {getDOM} from '../../dom/dom_adapter';\nimport {DOCUMENT} from '../../dom/dom_tokens';\n\nimport {supportsState} from './history';\n\n\n\n/**\n * `PlatformLocation` encapsulates all of the direct calls to platform APIs.\n * This class should not be used directly by an application developer. Instead, use\n * {@link Location}.\n */\n@Injectable()\nexport class BrowserPlatformLocation extends PlatformLocation {\n // TODO(issue/24571): remove '!'.\n public readonly location !: Location;\n // TODO(issue/24571): remove '!'.\n private _history !: History;\n\n constructor(@Inject(DOCUMENT) private _doc: any) {\n super();\n this._init();\n }\n\n // This is moved to its own method so that `MockPlatformLocationStrategy` can overwrite it\n /** @internal */\n _init() {\n (this as{location: Location}).location = getDOM().getLocation();\n this._history = getDOM().getHistory();\n }\n\n getBaseHrefFromDOM(): string { return getDOM().getBaseHref(this._doc) !; }\n\n onPopState(fn: LocationChangeListener): void {\n getDOM().getGlobalEventTarget(this._doc, 'window').addEventListener('popstate', fn, false);\n }\n\n onHashChange(fn: LocationChangeListener): void {\n getDOM().getGlobalEventTarget(this._doc, 'window').addEventListener('hashchange', fn, false);\n }\n\n get pathname(): string { return this.location.pathname; }\n get search(): string { return this.location.search; }\n get hash(): string { return this.location.hash; }\n set pathname(newPath: string) { this.location.pathname = newPath; }\n\n pushState(state: any, title: string, url: string): void {\n if (supportsState()) {\n this._history.pushState(state, title, url);\n } else {\n this.location.hash = url;\n }\n }\n\n replaceState(state: any, title: string, url: string): void {\n if (supportsState()) {\n this._history.replaceState(state, title, url);\n } else {\n this.location.hash = url;\n }\n }\n\n forward(): void { this._history.forward(); }\n\n back(): void { this._history.back(); }\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {APP_INITIALIZER, ApplicationInitStatus, Inject, InjectionToken, Injector, StaticProvider} from '@angular/core';\n\nimport {getDOM} from '../dom/dom_adapter';\nimport {DOCUMENT} from '../dom/dom_tokens';\n\n/**\n * An id that identifies a particular application being bootstrapped, that should\n * match across the client/server boundary.\n */\nexport const TRANSITION_ID = new InjectionToken('TRANSITION_ID');\n\nexport function appInitializerFactory(transitionId: string, document: any, injector: Injector) {\n return () => {\n // Wait for all application initializers to be completed before removing the styles set by\n // the server.\n injector.get(ApplicationInitStatus).donePromise.then(() => {\n const dom = getDOM();\n const styles: any[] =\n Array.prototype.slice.apply(dom.querySelectorAll(document, `style[ng-transition]`));\n styles.filter(el => dom.getAttribute(el, 'ng-transition') === transitionId)\n .forEach(el => dom.remove(el));\n });\n };\n}\n\nexport const SERVER_TRANSITION_PROVIDERS: StaticProvider[] = [\n {\n provide: APP_INITIALIZER,\n useFactory: appInitializerFactory,\n deps: [TRANSITION_ID, DOCUMENT, Injector],\n multi: true\n },\n];\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {GetTestability, Testability, TestabilityRegistry, setTestabilityGetter, ɵglobal as global} from '@angular/core';\n\nimport {getDOM} from '../dom/dom_adapter';\n\nexport class BrowserGetTestability implements GetTestability {\n static init() { setTestabilityGetter(new BrowserGetTestability()); }\n\n addToWindow(registry: TestabilityRegistry): void {\n global['getAngularTestability'] = (elem: any, findInAncestors: boolean = true) => {\n const testability = registry.findTestabilityInTree(elem, findInAncestors);\n if (testability == null) {\n throw new Error('Could not find testability for element.');\n }\n return testability;\n };\n\n global['getAllAngularTestabilities'] = () => registry.getAllTestabilities();\n\n global['getAllAngularRootElements'] = () => registry.getAllRootElements();\n\n const whenAllStable = (callback: any /** TODO #9100 */) => {\n const testabilities = global['getAllAngularTestabilities']();\n let count = testabilities.length;\n let didWork = false;\n const decrement = function(didWork_: any /** TODO #9100 */) {\n didWork = didWork || didWork_;\n count--;\n if (count == 0) {\n callback(didWork);\n }\n };\n testabilities.forEach(function(testability: any /** TODO #9100 */) {\n testability.whenStable(decrement);\n });\n };\n\n if (!global['frameworkStabilizers']) {\n global['frameworkStabilizers'] = [];\n }\n global['frameworkStabilizers'].push(whenAllStable);\n }\n\n findTestabilityInTree(registry: TestabilityRegistry, elem: any, findInAncestors: boolean):\n Testability|null {\n if (elem == null) {\n return null;\n }\n const t = registry.getTestability(elem);\n if (t != null) {\n return t;\n } else if (!findInAncestors) {\n return null;\n }\n if (getDOM().isShadowRoot(elem)) {\n return this.findTestabilityInTree(registry, getDOM().getHost(elem), true);\n }\n return this.findTestabilityInTree(registry, getDOM().parentElement(elem), true);\n }\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {ɵglobal as global} from '@angular/core';\n\nconst CAMEL_CASE_REGEXP = /([A-Z])/g;\nconst DASH_CASE_REGEXP = /-([a-z])/g;\n\n\nexport function camelCaseToDashCase(input: string): string {\n return input.replace(CAMEL_CASE_REGEXP, (...m: string[]) => '-' + m[1].toLowerCase());\n}\n\nexport function dashCaseToCamelCase(input: string): string {\n return input.replace(DASH_CASE_REGEXP, (...m: string[]) => m[1].toUpperCase());\n}\n\n/**\n * Exports the value under a given `name` in the global property `ng`. For example `ng.probe` if\n * `name` is `'probe'`.\n * @param name Name under which it will be exported. Keep in mind this will be a property of the\n * global `ng` object.\n * @param value The value to export.\n */\nexport function exportNgVar(name: string, value: any): void {\n if (typeof COMPILED === 'undefined' || !COMPILED) {\n // Note: we can't export `ng` when using closure enhanced optimization as:\n // - closure declares globals itself for minified names, which sometimes clobber our `ng` global\n // - we can't declare a closure extern as the namespace `ng` is already used within Google\n // for typings for angularJS (via `goog.provide('ng....')`).\n const ng = global['ng'] = (global['ng'] as{[key: string]: any} | undefined) || {};\n ng[name] = value;\n }\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport * as core from '@angular/core';\nimport {exportNgVar} from '../util';\n\nconst CORE_TOKENS = {\n 'ApplicationRef': core.ApplicationRef,\n 'NgZone': core.NgZone,\n};\n\nconst INSPECT_GLOBAL_NAME = 'probe';\nconst CORE_TOKENS_GLOBAL_NAME = 'coreTokens';\n\n/**\n * Returns a {@link DebugElement} for the given native DOM element, or\n * null if the given native element does not have an Angular view associated\n * with it.\n */\nexport function inspectNativeElement(element: any): core.DebugNode|null {\n return core.getDebugNode(element);\n}\n\nexport function _createNgProbe(coreTokens: core.NgProbeToken[]): any {\n exportNgVar(INSPECT_GLOBAL_NAME, inspectNativeElement);\n exportNgVar(CORE_TOKENS_GLOBAL_NAME, {...CORE_TOKENS, ..._ngProbeTokensToMap(coreTokens || [])});\n return () => inspectNativeElement;\n}\n\nfunction _ngProbeTokensToMap(tokens: core.NgProbeToken[]): {[name: string]: any} {\n return tokens.reduce((prev: any, t: any) => (prev[t.name] = t.token, prev), {});\n}\n\n/**\n * Providers which support debugging Angular applications (e.g. via `ng.probe`).\n */\nexport const ELEMENT_PROBE_PROVIDERS: core.Provider[] = [\n {\n provide: core.APP_INITIALIZER,\n useFactory: _createNgProbe,\n deps: [\n [core.NgProbeToken, new core.Optional()],\n ],\n multi: true,\n },\n];\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Inject, Injectable, InjectionToken, NgZone} from '@angular/core';\n\nimport {getDOM} from '../dom_adapter';\n\n/**\n * The injection token for the event-manager plug-in service.\n *\n * @publicApi\n */\nexport const EVENT_MANAGER_PLUGINS =\n new InjectionToken<EventManagerPlugin[]>('EventManagerPlugins');\n\n/**\n * An injectable service that provides event management for Angular\n * through a browser plug-in.\n *\n * @publicApi\n */\n@Injectable()\nexport class EventManager {\n private _plugins: EventManagerPlugin[];\n private _eventNameToPlugin = new Map<string, EventManagerPlugin>();\n\n /**\n * Initializes an instance of the event-manager service.\n */\n constructor(@Inject(EVENT_MANAGER_PLUGINS) plugins: EventManagerPlugin[], private _zone: NgZone) {\n plugins.forEach(p => p.manager = this);\n this._plugins = plugins.slice().reverse();\n }\n\n /**\n * Registers a handler for a specific element and event.\n *\n * @param element The HTML element to receive event notifications.\n * @param eventName The name of the event to listen for.\n * @param handler A function to call when the notification occurs. Receives the\n * event object as an argument.\n * @returns A callback function that can be used to remove the handler.\n */\n addEventListener(element: HTMLElement, eventName: string, handler: Function): Function {\n const plugin = this._findPluginFor(eventName);\n return plugin.addEventListener(element, eventName, handler);\n }\n\n /**\n * Registers a global handler for an event in a target view.\n *\n * @param target A target for global event notifications. One of \"window\", \"document\", or \"body\".\n * @param eventName The name of the event to listen for.\n * @param handler A function to call when the notification occurs. Receives the\n * event object as an argument.\n * @returns A callback function that can be used to remove the handler.\n */\n addGlobalEventListener(target: string, eventName: string, handler: Function): Function {\n const plugin = this._findPluginFor(eventName);\n return plugin.addGlobalEventListener(target, eventName, handler);\n }\n\n /**\n * Retrieves the compilation zone in which event listeners are registered.\n */\n getZone(): NgZone { return this._zone; }\n\n /** @internal */\n _findPluginFor(eventName: string): EventManagerPlugin {\n const plugin = this._eventNameToPlugin.get(eventName);\n if (plugin) {\n return plugin;\n }\n\n const plugins = this._plugins;\n for (let i = 0; i < plugins.length; i++) {\n const plugin = plugins[i];\n if (plugin.supports(eventName)) {\n this._eventNameToPlugin.set(eventName, plugin);\n return plugin;\n }\n }\n throw new Error(`No event manager plugin found for event ${eventName}`);\n }\n}\n\nexport abstract class EventManagerPlugin {\n constructor(private _doc: any) {}\n\n // TODO(issue/24571): remove '!'.\n manager !: EventManager;\n\n abstract supports(eventName: string): boolean;\n\n abstract addEventListener(element: HTMLElement, eventName: string, handler: Function): Function;\n\n addGlobalEventListener(element: string, eventName: string, handler: Function): Function {\n const target: HTMLElement = getDOM().getGlobalEventTarget(this._doc, element);\n if (!target) {\n throw new Error(`Unsupported event target ${target} for event ${eventName}`);\n }\n return this.addEventListener(target, eventName, handler);\n }\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Inject, Injectable, OnDestroy} from '@angular/core';\nimport {getDOM} from './dom_adapter';\nimport {DOCUMENT} from './dom_tokens';\n\n@Injectable()\nexport class SharedStylesHost {\n /** @internal */\n protected _stylesSet = new Set<string>();\n\n addStyles(styles: string[]): void {\n const additions = new Set<string>();\n styles.forEach(style => {\n if (!this._stylesSet.has(style)) {\n this._stylesSet.add(style);\n additions.add(style);\n }\n });\n this.onStylesAdded(additions);\n }\n\n onStylesAdded(additions: Set<string>): void {}\n\n getAllStyles(): string[] { return Array.from(this._stylesSet); }\n}\n\n@Injectable()\nexport class DomSharedStylesHost extends SharedStylesHost implements OnDestroy {\n private _hostNodes = new Set<Node>();\n private _styleNodes = new Set<Node>();\n constructor(@Inject(DOCUMENT) private _doc: any) {\n super();\n this._hostNodes.add(_doc.head);\n }\n\n private _addStylesToHost(styles: Set<string>, host: Node): void {\n styles.forEach((style: string) => {\n const styleEl = this._doc.createElement('style');\n styleEl.textContent = style;\n this._styleNodes.add(host.appendChild(styleEl));\n });\n }\n\n addHost(hostNode: Node): void {\n this._addStylesToHost(this._stylesSet, hostNode);\n this._hostNodes.add(hostNode);\n }\n\n removeHost(hostNode: Node): void { this._hostNodes.delete(hostNode); }\n\n onStylesAdded(additions: Set<string>): void {\n this._hostNodes.forEach(hostNode => this._addStylesToHost(additions, hostNode));\n }\n\n ngOnDestroy(): void { this._styleNodes.forEach(styleNode => getDOM().remove(styleNode)); }\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Injectable, Renderer2, RendererFactory2, RendererStyleFlags2, RendererType2, ViewEncapsulation} from '@angular/core';\n\nimport {EventManager} from './events/event_manager';\nimport {DomSharedStylesHost} from './shared_styles_host';\n\nexport const NAMESPACE_URIS: {[ns: string]: string} = {\n 'svg': 'http://www.w3.org/2000/svg',\n 'xhtml': 'http://www.w3.org/1999/xhtml',\n 'xlink': 'http://www.w3.org/1999/xlink',\n 'xml': 'http://www.w3.org/XML/1998/namespace',\n 'xmlns': 'http://www.w3.org/2000/xmlns/',\n};\n\nconst COMPONENT_REGEX = /%COMP%/g;\nexport const COMPONENT_VARIABLE = '%COMP%';\nexport const HOST_ATTR = `_nghost-${COMPONENT_VARIABLE}`;\nexport const CONTENT_ATTR = `_ngcontent-${COMPONENT_VARIABLE}`;\n\nexport function shimContentAttribute(componentShortId: string): string {\n return CONTENT_ATTR.replace(COMPONENT_REGEX, componentShortId);\n}\n\nexport function shimHostAttribute(componentShortId: string): string {\n return HOST_ATTR.replace(COMPONENT_REGEX, componentShortId);\n}\n\nexport function flattenStyles(\n compId: string, styles: Array<any|any[]>, target: string[]): string[] {\n for (let i = 0; i < styles.length; i++) {\n let style = styles[i];\n\n if (Array.isArray(style)) {\n flattenStyles(compId, style, target);\n } else {\n style = style.replace(COMPONENT_REGEX, compId);\n target.push(style);\n }\n }\n return target;\n}\n\nfunction decoratePreventDefault(eventHandler: Function): Function {\n return (event: any) => {\n const allowDefaultBehavior = eventHandler(event);\n if (allowDefaultBehavior === false) {\n // TODO(tbosch): move preventDefault into event plugins...\n event.preventDefault();\n event.returnValue = false;\n }\n };\n}\n\n@Injectable()\nexport class DomRendererFactory2 implements RendererFactory2 {\n private rendererByCompId = new Map<string, Renderer2>();\n private defaultRenderer: Renderer2;\n\n constructor(private eventManager: EventManager, private sharedStylesHost: DomSharedStylesHost) {\n this.defaultRenderer = new DefaultDomRenderer2(eventManager);\n }\n\n createRenderer(element: any, type: RendererType2|null): Renderer2 {\n if (!element || !type) {\n return this.defaultRenderer;\n }\n switch (type.encapsulation) {\n case ViewEncapsulation.Emulated: {\n let renderer = this.rendererByCompId.get(type.id);\n if (!renderer) {\n renderer =\n new EmulatedEncapsulationDomRenderer2(this.eventManager, this.sharedStylesHost, type);\n this.rendererByCompId.set(type.id, renderer);\n }\n (<EmulatedEncapsulationDomRenderer2>renderer).applyToHost(element);\n return renderer;\n }\n case ViewEncapsulation.Native:\n case ViewEncapsulation.ShadowDom:\n return new ShadowDomRenderer(this.eventManager, this.sharedStylesHost, element, type);\n default: {\n if (!this.rendererByCompId.has(type.id)) {\n const styles = flattenStyles(type.id, type.styles, []);\n this.sharedStylesHost.addStyles(styles);\n this.rendererByCompId.set(type.id, this.defaultRenderer);\n }\n return this.defaultRenderer;\n }\n }\n }\n\n begin() {}\n end() {}\n}\n\nclass DefaultDomRenderer2 implements Renderer2 {\n data: {[key: string]: any} = Object.create(null);\n\n constructor(private eventManager: EventManager) {}\n\n destroy(): void {}\n\n destroyNode: null;\n\n createElement(name: string, namespace?: string): any {\n if (namespace) {\n return document.createElementNS(NAMESPACE_URIS[namespace], name);\n }\n\n return document.createElement(name);\n }\n\n createComment(value: string): any { return document.createComment(value); }\n\n createText(value: string): any { return document.createTextNode(value); }\n\n appendChild(parent: any, newChild: any): void { parent.appendChild(newChild); }\n\n insertBefore(parent: any, newChild: any, refChild: any): void {\n if (parent) {\n parent.insertBefore(newChild, refChild);\n }\n }\n\n removeChild(parent: any, oldChild: any): void {\n if (parent) {\n parent.removeChild(oldChild);\n }\n }\n\n selectRootElement(selectorOrNode: string|any, preserveContent?: boolean): any {\n let el: any = typeof selectorOrNode === 'string' ? document.querySelector(selectorOrNode) :\n selectorOrNode;\n if (!el) {\n throw new Error(`The selector \"${selectorOrNode}\" did not match any elements`);\n }\n if (!preserveContent) {\n el.textContent = '';\n }\n return el;\n }\n\n parentNode(node: any): any { return node.parentNode; }\n\n nextSibling(node: any): any { return node.nextSibling; }\n\n setAttribute(el: any, name: string, value: string, namespace?: string): void {\n if (namespace) {\n name = `${namespace}:${name}`;\n const namespaceUri = NAMESPACE_URIS[namespace];\n if (namespaceUri) {\n el.setAttributeNS(namespaceUri, name, value);\n } else {\n el.setAttribute(name, value);\n }\n } else {\n el.setAttribute(name, value);\n }\n }\n\n removeAttribute(el: any, name: string, namespace?: string): void {\n if (namespace) {\n const namespaceUri = NAMESPACE_URIS[namespace];\n if (namespaceUri) {\n el.removeAttributeNS(namespaceUri, name);\n } else {\n el.removeAttribute(`${namespace}:${name}`);\n }\n } else {\n el.removeAttribute(name);\n }\n }\n\n addClass(el: any, name: string): void { el.classList.add(name); }\n\n removeClass(el: any, name: string): void { el.classList.remove(name); }\n\n setStyle(el: any, style: string, value: any, flags: RendererStyleFlags2): void {\n if (flags & RendererStyleFlags2.DashCase) {\n el.style.setProperty(\n style, value, !!(flags & RendererStyleFlags2.Important) ? 'important' : '');\n } else {\n el.style[style] = value;\n }\n }\n\n removeStyle(el: any, style: string, flags: RendererStyleFlags2): void {\n if (flags & RendererStyleFlags2.DashCase) {\n el.style.removeProperty(style);\n } else {\n // IE requires '' instead of null\n // see https://github.com/angular/angular/issues/7916\n el.style[style] = '';\n }\n }\n\n setProperty(el: any, name: string, value: any): void {\n checkNoSyntheticProp(name, 'property');\n el[name] = value;\n }\n\n setValue(node: any, value: string): void { node.nodeValue = value; }\n\n listen(target: 'window'|'document'|'body'|any, event: string, callback: (event: any) => boolean):\n () => void {\n checkNoSyntheticProp(event, 'listener');\n if (typeof target === 'string') {\n return <() => void>this.eventManager.addGlobalEventListener(\n target, event, decoratePreventDefault(callback));\n }\n return <() => void>this.eventManager.addEventListener(\n target, event, decoratePreventDefault(callback)) as() => void;\n }\n}\n\nconst AT_CHARCODE = '@'.charCodeAt(0);\nfunction checkNoSyntheticProp(name: string, nameKind: string) {\n if (name.charCodeAt(0) === AT_CHARCODE) {\n throw new Error(\n `Found the synthetic ${nameKind} ${name}. Please include either \"BrowserAnimationsModule\" or \"NoopAnimationsModule\" in your application.`);\n }\n}\n\nclass EmulatedEncapsulationDomRenderer2 extends DefaultDomRenderer2 {\n private contentAttr: string;\n private hostAttr: string;\n\n constructor(\n eventManager: EventManager, sharedStylesHost: DomSharedStylesHost,\n private component: RendererType2) {\n super(eventManager);\n const styles = flattenStyles(component.id, component.styles, []);\n sharedStylesHost.addStyles(styles);\n\n this.contentAttr = shimContentAttribute(component.id);\n this.hostAttr = shimHostAttribute(component.id);\n }\n\n applyToHost(element: any) { super.setAttribute(element, this.hostAttr, ''); }\n\n createElement(parent: any, name: string): Element {\n const el = super.createElement(parent, name);\n super.setAttribute(el, this.contentAttr, '');\n return el;\n }\n}\n\nclass ShadowDomRenderer extends DefaultDomRenderer2 {\n private shadowRoot: any;\n\n constructor(\n eventManager: EventManager, private sharedStylesHost: DomSharedStylesHost,\n private hostEl: any, private component: RendererType2) {\n super(eventManager);\n if (component.encapsulation === ViewEncapsulation.ShadowDom) {\n this.shadowRoot = (hostEl as any).attachShadow({mode: 'open'});\n } else {\n this.shadowRoot = (hostEl as any).createShadowRoot();\n }\n this.sharedStylesHost.addHost(this.shadowRoot);\n const styles = flattenStyles(component.id, component.styles, []);\n for (let i = 0; i < styles.length; i++) {\n const styleEl = document.createElement('style');\n styleEl.textContent = styles[i];\n this.shadowRoot.appendChild(styleEl);\n }\n }\n\n private nodeOrShadowRoot(node: any): any { return node === this.hostEl ? this.shadowRoot : node; }\n\n destroy() { this.sharedStylesHost.removeHost(this.shadowRoot); }\n\n appendChild(parent: any, newChild: any): void {\n return super.appendChild(this.nodeOrShadowRoot(parent), newChild);\n }\n insertBefore(parent: any, newChild: any, refChild: any): void {\n return super.insertBefore(this.nodeOrShadowRoot(parent), newChild, refChild);\n }\n removeChild(parent: any, oldChild: any): void {\n return super.removeChild(this.nodeOrShadowRoot(parent), oldChild);\n }\n parentNode(node: any): any {\n return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(node)));\n }\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {isPlatformServer} from '@angular/common';\nimport {Inject, Injectable, NgZone, Optional, PLATFORM_ID} from '@angular/core';\n\n\nimport {DOCUMENT} from '../dom_tokens';\n\nimport {EventManagerPlugin} from './event_manager';\n\n/**\n * Detect if Zone is present. If it is then use simple zone aware 'addEventListener'\n * since Angular can do much more\n * efficient bookkeeping than Zone can, because we have additional information. This speeds up\n * addEventListener by 3x.\n */\nconst __symbol__ =\n (typeof Zone !== 'undefined') && (Zone as any)['__symbol__'] || function(v: string): string {\n return '__zone_symbol__' + v;\n };\nconst ADD_EVENT_LISTENER: 'addEventListener' = __symbol__('addEventListener');\nconst REMOVE_EVENT_LISTENER: 'removeEventListener' = __symbol__('removeEventListener');\n\nconst symbolNames: {[key: string]: string} = {};\n\nconst FALSE = 'FALSE';\nconst ANGULAR = 'ANGULAR';\nconst NATIVE_ADD_LISTENER = 'addEventListener';\nconst NATIVE_REMOVE_LISTENER = 'removeEventListener';\n\n// use the same symbol string which is used in zone.js\nconst stopSymbol = '__zone_symbol__propagationStopped';\nconst stopMethodSymbol = '__zone_symbol__stopImmediatePropagation';\n\nconst blackListedEvents: string[] =\n (typeof Zone !== 'undefined') && (Zone as any)[__symbol__('BLACK_LISTED_EVENTS')];\nlet blackListedMap: {[eventName: string]: string};\nif (blackListedEvents) {\n blackListedMap = {};\n blackListedEvents.forEach(eventName => { blackListedMap[eventName] = eventName; });\n}\n\nconst isBlackListedEvent = function(eventName: string) {\n if (!blackListedMap) {\n return false;\n }\n return blackListedMap.hasOwnProperty(eventName);\n};\n\ninterface TaskData {\n zone: any;\n handler: Function;\n}\n\n// a global listener to handle all dom event,\n// so we do not need to create a closure every time\nconst globalListener = function(event: Event) {\n const symbolName = symbolNames[event.type];\n if (!symbolName) {\n return;\n }\n const taskDatas: TaskData[] = this[symbolName];\n if (!taskDatas) {\n return;\n }\n const args: any = [event];\n if (taskDatas.length === 1) {\n // if taskDatas only have one element, just invoke it\n const taskData = taskDatas[0];\n if (taskData.zone !== Zone.current) {\n // only use Zone.run when Zone.current not equals to stored zone\n return taskData.zone.run(taskData.handler, this, args);\n } else {\n return taskData.handler.apply(this, args);\n }\n } else {\n // copy tasks as a snapshot to avoid event handlers remove\n // itself or others\n const copiedTasks = taskDatas.slice();\n for (let i = 0; i < copiedTasks.length; i++) {\n // if other listener call event.stopImmediatePropagation\n // just break\n if ((event as any)[stopSymbol] === true) {\n break;\n }\n const taskData = copiedTasks[i];\n if (taskData.zone !== Zone.current) {\n // only use Zone.run when Zone.current not equals to stored zone\n taskData.zone.run(taskData.handler, this, args);\n } else {\n taskData.handler.apply(this, args);\n }\n }\n }\n};\n\n@Injectable()\nexport class DomEventsPlugin extends EventManagerPlugin {\n constructor(\n @Inject(DOCUMENT) doc: any, private ngZone: NgZone,\n @Optional() @Inject(PLATFORM_ID) platformId: {}|null) {\n super(doc);\n\n if (!platformId || !isPlatformServer(platformId)) {\n this.patchEvent();\n }\n }\n\n private patchEvent() {\n if (typeof Event === 'undefined' || !Event || !Event.prototype) {\n return;\n }\n if ((Event.prototype as any)[stopMethodSymbol]) {\n // already patched by zone.js\n return;\n }\n const delegate = (Event.prototype as any)[stopMethodSymbol] =\n Event.prototype.stopImmediatePropagation;\n Event.prototype.stopImmediatePropagation = function() {\n if (this) {\n this[stopSymbol] = true;\n }\n\n // should call native delegate in case\n // in some environment part of the application\n // will not use the patched Event\n delegate && delegate.apply(this, arguments);\n };\n }\n\n // This plugin should come last in the list of plugins, because it accepts all\n // events.\n supports(eventName: string): boolean { return true; }\n\n addEventListener(element: HTMLElement, eventName: string, handler: Function): Function {\n /**\n * This code is about to add a listener to the DOM. If Zone.js is present, than\n * `addEventListener` has been patched. The patched code adds overhead in both\n * memory and speed (3x slower) than native. For this reason if we detect that\n * Zone.js is present we use a simple version of zone aware addEventListener instead.\n * The result is faster registration and the zone will be restored.\n * But ZoneSpec.onScheduleTask, ZoneSpec.onInvokeTask, ZoneSpec.onCancelTask\n * will not be invoked\n * We also do manual zone restoration in element.ts renderEventHandlerClosure method.\n *\n * NOTE: it is possible that the element is from different iframe, and so we\n * have to check before we execute the method.\n */\n const self = this;\n const zoneJsLoaded = element[ADD_EVENT_LISTENER];\n let callback: EventListener = handler as EventListener;\n // if zonejs is loaded and current zone is not ngZone\n // we keep Zone.current on target for later restoration.\n if (zoneJsLoaded && (!NgZone.isInAngularZone() || isBlackListedEvent(eventName))) {\n let symbolName = symbolNames[eventName];\n if (!symbolName) {\n symbolName = symbolNames[eventName] = __symbol__(ANGULAR + eventName + FALSE);\n }\n let taskDatas: TaskData[] = (element as any)[symbolName];\n const globalListenerRegistered = taskDatas && taskDatas.length > 0;\n if (!taskDatas) {\n taskDatas = (element as any)[symbolName] = [];\n }\n\n const zone = isBlackListedEvent(eventName) ? Zone.root : Zone.current;\n if (taskDatas.length === 0) {\n taskDatas.push({zone: zone, handler: callback});\n } else {\n let callbackRegistered = false;\n for (let i = 0; i < taskDatas.length; i++) {\n if (taskDatas[i].handler === callback) {\n callbackRegistered = true;\n break;\n }\n }\n if (!callbackRegistered) {\n taskDatas.push({zone: zone, handler: callback});\n }\n }\n\n if (!globalListenerRegistered) {\n element[ADD_EVENT_LISTENER](eventName, globalListener, false);\n }\n } else {\n element[NATIVE_ADD_LISTENER](eventName, callback, false);\n }\n return () => this.removeEventListener(element, eventName, callback);\n }\n\n removeEventListener(target: any, eventName: string, callback: Function): void {\n let underlyingRemove = target[REMOVE_EVENT_LISTENER];\n // zone.js not loaded, use native removeEventListener\n if (!underlyingRemove) {\n return target[NATIVE_REMOVE_LISTENER].apply(target, [eventName, callback, false]);\n }\n let symbolName = symbolNames[eventName];\n let taskDatas: TaskData[] = symbolName && target[symbolName];\n if (!taskDatas) {\n // addEventListener not using patched version\n // just call native removeEventListener\n return target[NATIVE_REMOVE_LISTENER].apply(target, [eventName, callback, false]);\n }\n // fix issue 20532, should be able to remove\n // listener which was added inside of ngZone\n let found = false;\n for (let i = 0; i < taskDatas.length; i++) {\n // remove listener from taskDatas if the callback equals\n if (taskDatas[i].handler === callback) {\n found = true;\n taskDatas.splice(i, 1);\n break;\n }\n }\n if (found) {\n if (taskDatas.length === 0) {\n // all listeners are removed, we can remove the globalListener from target\n underlyingRemove.apply(target, [eventName, globalListener, false]);\n }\n } else {\n // not found in taskDatas, the callback may be added inside of ngZone\n // use native remove listener to remove the callback\n target[NATIVE_REMOVE_LISTENER].apply(target, [eventName, callback, false]);\n }\n }\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Inject, Injectable, InjectionToken, Optional, ɵConsole as Console} from '@angular/core';\n\nimport {DOCUMENT} from '../dom_tokens';\n\nimport {EventManagerPlugin} from './event_manager';\n\n/**\n * Supported HammerJS recognizer event names.\n */\nconst EVENT_NAMES = {\n // pan\n 'pan': true,\n 'panstart': true,\n 'panmove': true,\n 'panend': true,\n 'pancancel': true,\n 'panleft': true,\n 'panright': true,\n 'panup': true,\n 'pandown': true,\n // pinch\n 'pinch': true,\n 'pinchstart': true,\n 'pinchmove': true,\n 'pinchend': true,\n 'pinchcancel': true,\n 'pinchin': true,\n 'pinchout': true,\n // press\n 'press': true,\n 'pressup': true,\n // rotate\n 'rotate': true,\n 'rotatestart': true,\n 'rotatemove': true,\n 'rotateend': true,\n 'rotatecancel': true,\n // swipe\n 'swipe': true,\n 'swipeleft': true,\n 'swiperight': true,\n 'swipeup': true,\n 'swipedown': true,\n // tap\n 'tap': true,\n};\n\n/**\n * DI token for providing [HammerJS](http://hammerjs.github.io/) support to Angular.\n * @see `HammerGestureConfig`\n *\n * @publicApi\n */\nexport const HAMMER_GESTURE_CONFIG = new InjectionToken<HammerGestureConfig>('HammerGestureConfig');\n\n\n/**\n * Function that loads HammerJS, returning a promise that is resolved once HammerJs is loaded.\n *\n * @publicApi\n */\nexport type HammerLoader = () => Promise<void>;\n\n/**\n * Injection token used to provide a {@link HammerLoader} to Angular.\n *\n * @publicApi\n */\nexport const HAMMER_LOADER = new InjectionToken<HammerLoader>('HammerLoader');\n\nexport interface HammerInstance {\n on(eventName: string, callback?: Function): void;\n off(eventName: string, callback?: Function): void;\n destroy?(): void;\n}\n\n/**\n * An injectable [HammerJS Manager](http://hammerjs.github.io/api/#hammer.manager)\n * for gesture recognition. Configures specific event recognition.\n * @publicApi\n */\n@Injectable()\nexport class HammerGestureConfig {\n /**\n * A set of supported event names for gestures to be used in Angular.\n * Angular supports all built-in recognizers, as listed in\n * [HammerJS documentation](http://hammerjs.github.io/).\n */\n events: string[] = [];\n\n /**\n * Maps gesture event names to a set of configuration options\n * that specify overrides to the default values for specific properties.\n *\n * The key is a supported event name to be configured,\n * and the options object contains a set of properties, with override values\n * to be applied to the named recognizer event.\n * For example, to disable recognition of the rotate event, specify\n * `{\"rotate\": {\"enable\": false}}`.\n *\n * Properties that are not present take the HammerJS default values.\n * For information about which properties are supported for which events,\n * and their allowed and default values, see\n * [HammerJS documentation](http://hammerjs.github.io/).\n *\n */\n overrides: {[key: string]: Object} = {};\n\n /**\n * Properties whose default values can be overridden for a given event.\n * Different sets of properties apply to different events.\n * For information about which properties are supported for which events,\n * and their allowed and default values, see\n * [HammerJS documentation](http://hammerjs.github.io/).\n */\n options?: {\n cssProps?: any; domEvents?: boolean; enable?: boolean | ((manager: any) => boolean);\n preset?: any[];\n touchAction?: string;\n recognizers?: any[];\n inputClass?: any;\n inputTarget?: EventTarget;\n };\n\n /**\n * Creates a [HammerJS Manager](http://hammerjs.github.io/api/#hammer.manager)\n * and attaches it to a given HTML element.\n * @param element The element that will recognize gestures.\n * @returns A HammerJS event-manager object.\n */\n buildHammer(element: HTMLElement): HammerInstance {\n const mc = new Hammer !(element, this.options);\n\n mc.get('pinch').set({enable: true});\n mc.get('rotate').set({enable: true});\n\n for (const eventName in this.overrides) {\n mc.get(eventName).set(this.overrides[eventName]);\n }\n\n return mc;\n }\n}\n\n@Injectable()\nexport class HammerGesturesPlugin extends EventManagerPlugin {\n constructor(\n @Inject(DOCUMENT) doc: any,\n @Inject(HAMMER_GESTURE_CONFIG) private _config: HammerGestureConfig, private console: Console,\n @Optional() @Inject(HAMMER_LOADER) private loader?: HammerLoader|null) {\n super(doc);\n }\n\n supports(eventName: string): boolean {\n if (!EVENT_NAMES.hasOwnProperty(eventName.toLowerCase()) && !this.isCustomEvent(eventName)) {\n return false;\n }\n\n if (!(window as any).Hammer && !this.loader) {\n this.console.warn(\n `The \"${eventName}\" event cannot be bound because Hammer.JS is not ` +\n `loaded and no custom loader has been specified.`);\n return false;\n }\n\n return true;\n }\n\n addEventListener(element: HTMLElement, eventName: string, handler: Function): Function {\n const zone = this.manager.getZone();\n eventName = eventName.toLowerCase();\n\n // If Hammer is not present but a loader is specified, we defer adding the event listener\n // until Hammer is loaded.\n if (!(window as any).Hammer && this.loader) {\n // This `addEventListener` method returns a function to remove the added listener.\n // Until Hammer is loaded, the returned function needs to *cancel* the registration rather\n // than remove anything.\n let cancelRegistration = false;\n let deregister: Function = () => { cancelRegistration = true; };\n\n this.loader()\n .then(() => {\n // If Hammer isn't actually loaded when the custom loader resolves, give up.\n if (!(window as any).Hammer) {\n this.console.warn(\n `The custom HAMMER_LOADER completed, but Hammer.JS is not present.`);\n deregister = () => {};\n return;\n }\n\n if (!cancelRegistration) {\n // Now that Hammer is loaded and the listener is being loaded for real,\n // the deregistration function changes from canceling registration to removal.\n deregister = this.addEventListener(element, eventName, handler);\n }\n })\n .catch(() => {\n this.console.warn(\n `The \"${eventName}\" event cannot be bound because the custom ` +\n `Hammer.JS loader failed.`);\n deregister = () => {};\n });\n\n // Return a function that *executes* `deregister` (and not `deregister` itself) so that we\n // can change the behavior of `deregister` once the listener is added. Using a closure in\n // this way allows us to avoid any additional data structures to track listener removal.\n return () => { deregister(); };\n }\n\n return zone.runOutsideAngular(() => {\n // Creating the manager bind events, must be done outside of angular\n const mc = this._config.buildHammer(element);\n const callback = function(eventObj: HammerInput) {\n zone.runGuarded(function() { handler(eventObj); });\n };\n mc.on(eventName, callback);\n return () => {\n mc.off(eventName, callback);\n // destroy mc to prevent memory leak\n if (typeof mc.destroy === 'function') {\n mc.destroy();\n }\n };\n });\n }\n\n isCustomEvent(eventName: string): boolean { return this._config.events.indexOf(eventName) > -1; }\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Inject, Injectable, NgZone} from '@angular/core';\n\nimport {getDOM} from '../dom_adapter';\nimport {DOCUMENT} from '../dom_tokens';\n\nimport {EventManagerPlugin} from './event_manager';\n\n/**\n * Defines supported modifiers for key events.\n */\nconst MODIFIER_KEYS = ['alt', 'control', 'meta', 'shift'];\n\n/**\n * Retrieves modifiers from key-event objects.\n */\nconst MODIFIER_KEY_GETTERS: {[key: string]: (event: KeyboardEvent) => boolean} = {\n 'alt': (event: KeyboardEvent) => event.altKey,\n 'control': (event: KeyboardEvent) => event.ctrlKey,\n 'meta': (event: KeyboardEvent) => event.metaKey,\n 'shift': (event: KeyboardEvent) => event.shiftKey\n};\n\n/**\n * @publicApi\n * A browser plug-in that provides support for handling of key events in Angular.\n */\n@Injectable()\nexport class KeyEventsPlugin extends EventManagerPlugin {\n /**\n * Initializes an instance of the browser plug-in.\n * @param doc The document in which key events will be detected.\n */\n constructor(@Inject(DOCUMENT) doc: any) { super(doc); }\n\n /**\n * Reports whether a named key event is supported.\n * @param eventName The event name to query.\n * @return True if the named key event is supported.\n */\n supports(eventName: string): boolean { return KeyEventsPlugin.parseEventName(eventName) != null; }\n\n /**\n * Registers a handler for a specific element and key event.\n * @param element The HTML element to receive event notifications.\n * @param eventName The name of the key event to listen for.\n * @param handler A function to call when the notification occurs. Receives the\n * event object as an argument.\n * @returns The key event that was registered.\n */\n addEventListener(element: HTMLElement, eventName: string, handler: Function): Function {\n const parsedEvent = KeyEventsPlugin.parseEventName(eventName) !;\n\n const outsideHandler =\n KeyEventsPlugin.eventCallback(parsedEvent['fullKey'], handler, this.manager.getZone());\n\n return this.manager.getZone().runOutsideAngular(() => {\n return getDOM().onAndCancel(element, parsedEvent['domEventName'], outsideHandler);\n });\n }\n\n static parseEventName(eventName: string): {[key: string]: string}|null {\n const parts: string[] = eventName.toLowerCase().split('.');\n\n const domEventName = parts.shift();\n if ((parts.length === 0) || !(domEventName === 'keydown' || domEventName === 'keyup')) {\n return null;\n }\n\n const key = KeyEventsPlugin._normalizeKey(parts.pop() !);\n\n let fullKey = '';\n MODIFIER_KEYS.forEach(modifierName => {\n const index: number = parts.indexOf(modifierName);\n if (index > -1) {\n parts.splice(index, 1);\n fullKey += modifierName + '.';\n }\n });\n fullKey += key;\n\n if (parts.length != 0 || key.length === 0) {\n // returning null instead of throwing to let another plugin process the event\n return null;\n }\n\n const result: {[k: string]: string} = {};\n result['domEventName'] = domEventName;\n result['fullKey'] = fullKey;\n return result;\n }\n\n static getEventFullKey(event: KeyboardEvent): string {\n let fullKey = '';\n let key = getDOM().getEventKey(event);\n key = key.toLowerCase();\n if (key === ' ') {\n key = 'space'; // for readability\n } else if (key === '.') {\n key = 'dot'; // because '.' is used as a separator in event names\n }\n MODIFIER_KEYS.forEach(modifierName => {\n if (modifierName != key) {\n const modifierGetter = MODIFIER_KEY_GETTERS[modifierName];\n if (modifierGetter(event)) {\n fullKey += modifierName + '.';\n }\n }\n });\n fullKey += key;\n return fullKey;\n }\n\n /**\n * Configures a handler callback for a key event.\n * @param fullKey The event name that combines all simultaneous keystrokes.\n * @param handler The function that responds to the key event.\n * @param zone The zone in which the event occurred.\n * @returns A callback function.\n */\n static eventCallback(fullKey: any, handler: Function, zone: NgZone): Function {\n return (event: any /** TODO #9100 */) => {\n if (KeyEventsPlugin.getEventFullKey(event) === fullKey) {\n zone.runGuarded(() => handler(event));\n }\n };\n }\n\n /** @internal */\n static _normalizeKey(keyName: string): string {\n // TODO: switch to a Map if the mapping grows too much\n switch (keyName) {\n case 'esc':\n return 'escape';\n default:\n return keyName;\n }\n }\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Inject, Injectable, Sanitizer, SecurityContext, ɵ_sanitizeHtml as _sanitizeHtml, ɵ_sanitizeStyle as _sanitizeStyle, ɵ_sanitizeUrl as _sanitizeUrl} from '@angular/core';\n\nimport {DOCUMENT} from '../dom/dom_tokens';\n\nexport {SecurityContext};\n\n\n\n/**\n * Marker interface for a value that's safe to use in a particular context.\n *\n * @publicApi\n */\nexport interface SafeValue {}\n\n/**\n * Marker interface for a value that's safe to use as HTML.\n *\n * @publicApi\n */\nexport interface SafeHtml extends SafeValue {}\n\n/**\n * Marker interface for a value that's safe to use as style (CSS).\n *\n * @publicApi\n */\nexport interface SafeStyle extends SafeValue {}\n\n/**\n * Marker interface for a value that's safe to use as JavaScript.\n *\n * @publicApi\n */\nexport interface SafeScript extends SafeValue {}\n\n/**\n * Marker interface for a value that's safe to use as a URL linking to a document.\n *\n * @publicApi\n */\nexport interface SafeUrl extends SafeValue {}\n\n/**\n * Marker interface for a value that's safe to use as a URL to load executable code from.\n *\n * @publicApi\n */\nexport interface SafeResourceUrl extends SafeValue {}\n\n/**\n * DomSanitizer helps preventing Cross Site Scripting Security bugs (XSS) by sanitizing\n * values to be safe to use in the different DOM contexts.\n *\n * For example, when binding a URL in an `<a [href]=\"someValue\">` hyperlink, `someValue` will be\n * sanitized so that an attacker cannot inject e.g. a `javascript:` URL that would execute code on\n * the website.\n *\n * In specific situations, it might be necessary to disable sanitization, for example if the\n * application genuinely needs to produce a `javascript:` style link with a dynamic value in it.\n * Users can bypass security by constructing a value with one of the `bypassSecurityTrust...`\n * methods, and then binding to that value from the template.\n *\n * These situations should be very rare, and extraordinary care must be taken to avoid creating a\n * Cross Site Scripting (XSS) security bug!\n *\n * When using `bypassSecurityTrust...`, make sure to call the method as early as possible and as\n * close as possible to the source of the value, to make it easy to verify no security bug is\n * created by its use.\n *\n * It is not required (and not recommended) to bypass security if the value is safe, e.g. a URL that\n * does not start with a suspicious protocol, or an HTML snippet that does not contain dangerous\n * code. The sanitizer leaves safe values intact.\n *\n * @security Calling any of the `bypassSecurityTrust...` APIs disables Angular's built-in\n * sanitization for the value passed in. Carefully check and audit all values and code paths going\n * into this call. Make sure any user data is appropriately escaped for this security context.\n * For more detail, see the [Security Guide](http://g.co/ng/security).\n *\n * @publicApi\n */\nexport abstract class DomSanitizer implements Sanitizer {\n /**\n * Sanitizes a value for use in the given SecurityContext.\n *\n * If value is trusted for the context, this method will unwrap the contained safe value and use\n * it directly. Otherwise, value will be sanitized to be safe in the given context, for example\n * by replacing URLs that have an unsafe protocol part (such as `javascript:`). The implementation\n * is responsible to make sure that the value can definitely be safely used in the given context.\n */\n abstract sanitize(context: SecurityContext, value: SafeValue|string|null): string|null;\n\n /**\n * Bypass security and trust the given value to be safe HTML. Only use this when the bound HTML\n * is unsafe (e.g. contains `<script>` tags) and the code should be executed. The sanitizer will\n * leave safe HTML intact, so in most situations this method should not be used.\n *\n * **WARNING:** calling this method with untrusted user data exposes your application to XSS\n * security risks!\n */\n abstract bypassSecurityTrustHtml(value: string): SafeHtml;\n\n /**\n * Bypass security and trust the given value to be safe style value (CSS).\n *\n * **WARNING:** calling this method with untrusted user data exposes your application to XSS\n * security risks!\n */\n abstract bypassSecurityTrustStyle(value: string): SafeStyle;\n\n /**\n * Bypass security and trust the given value to be safe JavaScript.\n *\n * **WARNING:** calling this method with untrusted user data exposes your application to XSS\n * security risks!\n */\n abstract bypassSecurityTrustScript(value: string): SafeScript;\n\n /**\n * Bypass security and trust the given value to be a safe style URL, i.e. a value that can be used\n * in hyperlinks or `<img src>`.\n *\n * **WARNING:** calling this method with untrusted user data exposes your application to XSS\n * security risks!\n */\n abstract bypassSecurityTrustUrl(value: string): SafeUrl;\n\n /**\n * Bypass security and trust the given value to be a safe resource URL, i.e. a location that may\n * be used to load executable code from, like `<script src>`, or `<iframe src>`.\n *\n * **WARNING:** calling this method with untrusted user data exposes your application to XSS\n * security risks!\n */\n abstract bypassSecurityTrustResourceUrl(value: string): SafeResourceUrl;\n}\n\n\n@Injectable()\nexport class DomSanitizerImpl extends DomSanitizer {\n constructor(@Inject(DOCUMENT) private _doc: any) { super(); }\n\n sanitize(ctx: SecurityContext, value: SafeValue|string|null): string|null {\n if (value == null) return null;\n switch (ctx) {\n case SecurityContext.NONE:\n return value as string;\n case SecurityContext.HTML:\n if (value instanceof SafeHtmlImpl) return value.changingThisBreaksApplicationSecurity;\n this.checkNotSafeValue(value, 'HTML');\n return _sanitizeHtml(this._doc, String(value));\n case SecurityContext.STYLE:\n if (value instanceof SafeStyleImpl) return value.changingThisBreaksApplicationSecurity;\n this.checkNotSafeValue(value, 'Style');\n return _sanitizeStyle(value as string);\n case SecurityContext.SCRIPT:\n if (value instanceof SafeScriptImpl) return value.changingThisBreaksApplicationSecurity;\n this.checkNotSafeValue(value, 'Script');\n throw new Error('unsafe value used in a script context');\n case SecurityContext.URL:\n if (value instanceof SafeResourceUrlImpl || value instanceof SafeUrlImpl) {\n // Allow resource URLs in URL contexts, they are strictly more trusted.\n return value.changingThisBreaksApplicationSecurity;\n }\n this.checkNotSafeValue(value, 'URL');\n return _sanitizeUrl(String(value));\n case SecurityContext.RESOURCE_URL:\n if (value instanceof SafeResourceUrlImpl) {\n return value.changingThisBreaksApplicationSecurity;\n }\n this.checkNotSafeValue(value, 'ResourceURL');\n throw new Error(\n 'unsafe value used in a resource URL context (see http://g.co/ng/security#xss)');\n default:\n throw new Error(`Unexpected SecurityContext ${ctx} (see http://g.co/ng/security#xss)`);\n }\n }\n\n private checkNotSafeValue(value: any, expectedType: string) {\n if (value instanceof SafeValueImpl) {\n throw new Error(\n `Required a safe ${expectedType}, got a ${value.getTypeName()} ` +\n `(see http://g.co/ng/security#xss)`);\n }\n }\n\n bypassSecurityTrustHtml(value: string): SafeHtml { return new SafeHtmlImpl(value); }\n bypassSecurityTrustStyle(value: string): SafeStyle { return new SafeStyleImpl(value); }\n bypassSecurityTrustScript(value: string): SafeScript { return new SafeScriptImpl(value); }\n bypassSecurityTrustUrl(value: string): SafeUrl { return new SafeUrlImpl(value); }\n bypassSecurityTrustResourceUrl(value: string): SafeResourceUrl {\n return new SafeResourceUrlImpl(value);\n }\n}\n\nabstract class SafeValueImpl implements SafeValue {\n constructor(public changingThisBreaksApplicationSecurity: string) {\n // empty\n }\n\n abstract getTypeName(): string;\n\n toString() {\n return `SafeValue must use [property]=binding: ${this.changingThisBreaksApplicationSecurity}` +\n ` (see http://g.co/ng/security#xss)`;\n }\n}\n\nclass SafeHtmlImpl extends SafeValueImpl implements SafeHtml {\n getTypeName() { return 'HTML'; }\n}\nclass SafeStyleImpl extends SafeValueImpl implements SafeStyle {\n getTypeName() { return 'Style'; }\n}\nclass SafeScriptImpl extends SafeValueImpl implements SafeScript {\n getTypeName() { return 'Script'; }\n}\nclass SafeUrlImpl extends SafeValueImpl implements SafeUrl {\n getTypeName() { return 'URL'; }\n}\nclass SafeResourceUrlImpl extends SafeValueImpl implements SafeResourceUrl {\n getTypeName() { return 'ResourceURL'; }\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {CommonModule, PlatformLocation, ɵPLATFORM_BROWSER_ID as PLATFORM_BROWSER_ID} from '@angular/common';\nimport {APP_ID, ApplicationModule, ErrorHandler, Inject, ModuleWithProviders, NgModule, NgZone, Optional, PLATFORM_ID, PLATFORM_INITIALIZER, PlatformRef, RendererFactory2, Sanitizer, SkipSelf, StaticProvider, Testability, createPlatformFactory, platformCore, ɵAPP_ROOT as APP_ROOT, ɵConsole as Console} from '@angular/core';\n\nimport {BrowserDomAdapter} from './browser/browser_adapter';\nimport {BrowserPlatformLocation} from './browser/location/browser_platform_location';\nimport {SERVER_TRANSITION_PROVIDERS, TRANSITION_ID} from './browser/server-transition';\nimport {BrowserGetTestability} from './browser/testability';\nimport {ELEMENT_PROBE_PROVIDERS} from './dom/debug/ng_probe';\nimport {DomRendererFactory2} from './dom/dom_renderer';\nimport {DOCUMENT} from './dom/dom_tokens';\nimport {DomEventsPlugin} from './dom/events/dom_events';\nimport {EVENT_MANAGER_PLUGINS, EventManager} from './dom/events/event_manager';\nimport {HAMMER_GESTURE_CONFIG, HAMMER_LOADER, HammerGestureConfig, HammerGesturesPlugin} from './dom/events/hammer_gestures';\nimport {KeyEventsPlugin} from './dom/events/key_events';\nimport {DomSharedStylesHost, SharedStylesHost} from './dom/shared_styles_host';\nimport {DomSanitizer, DomSanitizerImpl} from './security/dom_sanitization_service';\n\nexport const INTERNAL_BROWSER_PLATFORM_PROVIDERS: StaticProvider[] = [\n {provide: PLATFORM_ID, useValue: PLATFORM_BROWSER_ID},\n {provide: PLATFORM_INITIALIZER, useValue: initDomAdapter, multi: true},\n {provide: PlatformLocation, useClass: BrowserPlatformLocation, deps: [DOCUMENT]},\n {provide: DOCUMENT, useFactory: _document, deps: []},\n];\n\n/**\n * @security Replacing built-in sanitization providers exposes the application to XSS risks.\n * Attacker-controlled data introduced by an unsanitized provider could expose your\n * application to XSS risks. For more detail, see the [Security Guide](http://g.co/ng/security).\n * @publicApi\n */\nexport const BROWSER_SANITIZATION_PROVIDERS: StaticProvider[] = [\n {provide: Sanitizer, useExisting: DomSanitizer},\n {provide: DomSanitizer, useClass: DomSanitizerImpl, deps: [DOCUMENT]},\n];\n\n/**\n * @publicApi\n */\nexport const platformBrowser: (extraProviders?: StaticProvider[]) => PlatformRef =\n createPlatformFactory(platformCore, 'browser', INTERNAL_BROWSER_PLATFORM_PROVIDERS);\n\nexport function initDomAdapter() {\n BrowserDomAdapter.makeCurrent();\n BrowserGetTestability.init();\n}\n\nexport function errorHandler(): ErrorHandler {\n return new ErrorHandler();\n}\n\nexport function _document(): any {\n return document;\n}\n\nexport const BROWSER_MODULE_PROVIDERS: StaticProvider[] = [\n BROWSER_SANITIZATION_PROVIDERS,\n {provide: APP_ROOT, useValue: true},\n {provide: ErrorHandler, useFactory: errorHandler, deps: []},\n {\n provide: EVENT_MANAGER_PLUGINS,\n useClass: DomEventsPlugin,\n multi: true,\n deps: [DOCUMENT, NgZone, PLATFORM_ID]\n },\n {provide: EVENT_MANAGER_PLUGINS, useClass: KeyEventsPlugin, multi: true, deps: [DOCUMENT]},\n {\n provide: EVENT_MANAGER_PLUGINS,\n useClass: HammerGesturesPlugin,\n multi: true,\n deps: [DOCUMENT, HAMMER_GESTURE_CONFIG, Console, [new Optional(), HAMMER_LOADER]]\n },\n {provide: HAMMER_GESTURE_CONFIG, useClass: HammerGestureConfig, deps: []},\n {\n provide: DomRendererFactory2,\n useClass: DomRendererFactory2,\n deps: [EventManager, DomSharedStylesHost]\n },\n {provide: RendererFactory2, useExisting: DomRendererFactory2},\n {provide: SharedStylesHost, useExisting: DomSharedStylesHost},\n {provide: DomSharedStylesHost, useClass: DomSharedStylesHost, deps: [DOCUMENT]},\n {provide: Testability, useClass: Testability, deps: [NgZone]},\n {provide: EventManager, useClass: EventManager, deps: [EVENT_MANAGER_PLUGINS, NgZone]},\n ELEMENT_PROBE_PROVIDERS,\n];\n\n/**\n * Exports required infrastructure for all Angular apps.\n * Included by default in all Angular apps created with the CLI\n * `new` command.\n * Re-exports `CommonModule` and `ApplicationModule`, making their\n * exports and providers available to all apps.\n *\n * @publicApi\n */\n@NgModule({providers: BROWSER_MODULE_PROVIDERS, exports: [CommonModule, ApplicationModule]})\nexport class BrowserModule {\n constructor(@Optional() @SkipSelf() @Inject(BrowserModule) parentModule: BrowserModule|null) {\n if (parentModule) {\n throw new Error(\n `BrowserModule has already been loaded. If you need access to common directives such as NgIf and NgFor from a lazy loaded module, import CommonModule instead.`);\n }\n }\n\n /**\n * Configures a browser-based app to transition from a server-rendered app, if\n * one is present on the page.\n *\n * @param params An object containing an identifier for the app to transition.\n * The ID must match between the client and server versions of the app.\n * @returns The reconfigured `BrowserModule` to import into the app's root `AppModule`.\n */\n static withServerTransition(params: {appId: string}): ModuleWithProviders<BrowserModule> {\n return {\n ngModule: BrowserModule,\n providers: [\n {provide: APP_ID, useValue: params.appId},\n {provide: TRANSITION_ID, useExisting: APP_ID},\n SERVER_TRANSITION_PROVIDERS,\n ],\n };\n }\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Inject, Injectable, inject} from '@angular/core';\n\nimport {DomAdapter, getDOM} from '../dom/dom_adapter';\nimport {DOCUMENT} from '../dom/dom_tokens';\n\n\n\n/**\n * Represents a meta element.\n *\n * @publicApi\n */\nexport type MetaDefinition = {\n charset?: string; content?: string; httpEquiv?: string; id?: string; itemprop?: string;\n name?: string;\n property?: string;\n scheme?: string;\n url?: string;\n} &\n{\n // TODO(IgorMinar): this type looks wrong\n [prop: string]: string;\n};\n\n/**\n * Factory to create Meta service.\n */\nexport function createMeta() {\n return new Meta(inject(DOCUMENT));\n}\n\n/**\n * A service that can be used to get and add meta tags.\n *\n * @publicApi\n */\n@Injectable({providedIn: 'root', useFactory: createMeta, deps: []})\nexport class Meta {\n private _dom: DomAdapter;\n constructor(@Inject(DOCUMENT) private _doc: any) { this._dom = getDOM(); }\n\n addTag(tag: MetaDefinition, forceCreation: boolean = false): HTMLMetaElement|null {\n if (!tag) return null;\n return this._getOrCreateElement(tag, forceCreation);\n }\n\n addTags(tags: MetaDefinition[], forceCreation: boolean = false): HTMLMetaElement[] {\n if (!tags) return [];\n return tags.reduce((result: HTMLMetaElement[], tag: MetaDefinition) => {\n if (tag) {\n result.push(this._getOrCreateElement(tag, forceCreation));\n }\n return result;\n }, []);\n }\n\n getTag(attrSelector: string): HTMLMetaElement|null {\n if (!attrSelector) return null;\n return this._dom.querySelector(this._doc, `meta[${attrSelector}]`) || null;\n }\n\n getTags(attrSelector: string): HTMLMetaElement[] {\n if (!attrSelector) return [];\n const list /*NodeList*/ = this._dom.querySelectorAll(this._doc, `meta[${attrSelector}]`);\n return list ? [].slice.call(list) : [];\n }\n\n updateTag(tag: MetaDefinition, selector?: string): HTMLMetaElement|null {\n if (!tag) return null;\n selector = selector || this._parseSelector(tag);\n const meta: HTMLMetaElement = this.getTag(selector) !;\n if (meta) {\n return this._setMetaElementAttributes(tag, meta);\n }\n return this._getOrCreateElement(tag, true);\n }\n\n removeTag(attrSelector: string): void { this.removeTagElement(this.getTag(attrSelector) !); }\n\n removeTagElement(meta: HTMLMetaElement): void {\n if (meta) {\n this._dom.remove(meta);\n }\n }\n\n private _getOrCreateElement(meta: MetaDefinition, forceCreation: boolean = false):\n HTMLMetaElement {\n if (!forceCreation) {\n const selector: string = this._parseSelector(meta);\n const elem: HTMLMetaElement = this.getTag(selector) !;\n // It's allowed to have multiple elements with the same name so it's not enough to\n // just check that element with the same name already present on the page. We also need to\n // check if element has tag attributes\n if (elem && this._containsAttributes(meta, elem)) return elem;\n }\n const element: HTMLMetaElement = this._dom.createElement('meta') as HTMLMetaElement;\n this._setMetaElementAttributes(meta, element);\n const head = this._dom.getElementsByTagName(this._doc, 'head')[0];\n this._dom.appendChild(head, element);\n return element;\n }\n\n private _setMetaElementAttributes(tag: MetaDefinition, el: HTMLMetaElement): HTMLMetaElement {\n Object.keys(tag).forEach((prop: string) => this._dom.setAttribute(el, prop, tag[prop]));\n return el;\n }\n\n private _parseSelector(tag: MetaDefinition): string {\n const attr: string = tag.name ? 'name' : 'property';\n return `${attr}=\"${tag[attr]}\"`;\n }\n\n private _containsAttributes(tag: MetaDefinition, elem: HTMLMetaElement): boolean {\n return Object.keys(tag).every((key: string) => this._dom.getAttribute(elem, key) === tag[key]);\n }\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Inject, Injectable, inject} from '@angular/core';\n\nimport {getDOM} from '../dom/dom_adapter';\nimport {DOCUMENT} from '../dom/dom_tokens';\n\n/**\n * Factory to create Title service.\n */\nexport function createTitle() {\n return new Title(inject(DOCUMENT));\n}\n\n/**\n * A service that can be used to get and set the title of a current HTML document.\n *\n * Since an Angular application can't be bootstrapped on the entire HTML document (`<html>` tag)\n * it is not possible to bind to the `text` property of the `HTMLTitleElement` elements\n * (representing the `<title>` tag). Instead, this service can be used to set and get the current\n * title value.\n *\n * @publicApi\n */\n@Injectable({providedIn: 'root', useFactory: createTitle, deps: []})\nexport class Title {\n constructor(@Inject(DOCUMENT) private _doc: any) {}\n /**\n * Get the title of the current HTML document.\n */\n getTitle(): string { return getDOM().getTitle(this._doc); }\n\n /**\n * Set the title of the current HTML document.\n * @param newTitle\n */\n setTitle(newTitle: string) { getDOM().setTitle(this._doc, newTitle); }\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nconst win = typeof window !== 'undefined' && window || <any>{};\nexport {win as window};\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {ApplicationRef, ComponentRef} from '@angular/core';\nimport {getDOM} from '../../dom/dom_adapter';\nimport {window} from './browser';\n\nexport class ChangeDetectionPerfRecord {\n constructor(public msPerTick: number, public numTicks: number) {}\n}\n\n/**\n * Entry point for all Angular profiling-related debug tools. This object\n * corresponds to the `ng.profiler` in the dev console.\n */\nexport class AngularProfiler {\n appRef: ApplicationRef;\n\n constructor(ref: ComponentRef<any>) { this.appRef = ref.injector.get(ApplicationRef); }\n\n // tslint:disable:no-console\n /**\n * Exercises change detection in a loop and then prints the average amount of\n * time in milliseconds how long a single round of change detection takes for\n * the current state of the UI. It runs a minimum of 5 rounds for a minimum\n * of 500 milliseconds.\n *\n * Optionally, a user may pass a `config` parameter containing a map of\n * options. Supported options are:\n *\n * `record` (boolean) - causes the profiler to record a CPU profile while\n * it exercises the change detector. Example:\n *\n * ```\n * ng.profiler.timeChangeDetection({record: true})\n * ```\n */\n timeChangeDetection(config: any): ChangeDetectionPerfRecord {\n const record = config && config['record'];\n const profileName = 'Change Detection';\n // Profiler is not available in Android browsers, nor in IE 9 without dev tools opened\n const isProfilerAvailable = window.console.profile != null;\n if (record && isProfilerAvailable) {\n window.console.profile(profileName);\n }\n const start = getDOM().performanceNow();\n let numTicks = 0;\n while (numTicks < 5 || (getDOM().performanceNow() - start) < 500) {\n this.appRef.tick();\n numTicks++;\n }\n const end = getDOM().performanceNow();\n if (record && isProfilerAvailable) {\n window.console.profileEnd(profileName);\n }\n const msPerTick = (end - start) / numTicks;\n window.console.log(`ran ${numTicks} change detection cycles`);\n window.console.log(`${msPerTick.toFixed(2)} ms per check`);\n\n return new ChangeDetectionPerfRecord(msPerTick, numTicks);\n }\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {ComponentRef} from '@angular/core';\nimport {exportNgVar} from '../../dom/util';\nimport {AngularProfiler} from './common_tools';\n\nconst PROFILER_GLOBAL_NAME = 'profiler';\n\n/**\n * Enabled Angular debug tools that are accessible via your browser's\n * developer console.\n *\n * Usage:\n *\n * 1. Open developer console (e.g. in Chrome Ctrl + Shift + j)\n * 1. Type `ng.` (usually the console will show auto-complete suggestion)\n * 1. Try the change detection profiler `ng.profiler.timeChangeDetection()`\n * then hit Enter.\n *\n * @publicApi\n */\nexport function enableDebugTools<T>(ref: ComponentRef<T>): ComponentRef<T> {\n exportNgVar(PROFILER_GLOBAL_NAME, new AngularProfiler(ref));\n return ref;\n}\n\n/**\n * Disables Angular tools.\n *\n * @publicApi\n */\nexport function disableDebugTools(): void {\n exportNgVar(PROFILER_GLOBAL_NAME, null);\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {APP_ID, Injectable, NgModule} from '@angular/core';\nimport {DOCUMENT} from '../dom/dom_tokens';\n\nexport function escapeHtml(text: string): string {\n const escapedText: {[k: string]: string} = {\n '&': '&a;',\n '\"': '&q;',\n '\\'': '&s;',\n '<': '&l;',\n '>': '&g;',\n };\n return text.replace(/[&\"'<>]/g, s => escapedText[s]);\n}\n\nexport function unescapeHtml(text: string): string {\n const unescapedText: {[k: string]: string} = {\n '&a;': '&',\n '&q;': '\"',\n '&s;': '\\'',\n '&l;': '<',\n '&g;': '>',\n };\n return text.replace(/&[^;]+;/g, s => unescapedText[s]);\n}\n\n/**\n * A type-safe key to use with `TransferState`.\n *\n * Example:\n *\n * ```\n * const COUNTER_KEY = makeStateKey<number>('counter');\n * let value = 10;\n *\n * transferState.set(COUNTER_KEY, value);\n * ```\n *\n * @publicApi\n */\nexport type StateKey<T> = string & {__not_a_string: never};\n\n/**\n * Create a `StateKey<T>` that can be used to store value of type T with `TransferState`.\n *\n * Example:\n *\n * ```\n * const COUNTER_KEY = makeStateKey<number>('counter');\n * let value = 10;\n *\n * transferState.set(COUNTER_KEY, value);\n * ```\n *\n * @publicApi\n */\nexport function makeStateKey<T = void>(key: string): StateKey<T> {\n return key as StateKey<T>;\n}\n\n/**\n * A key value store that is transferred from the application on the server side to the application\n * on the client side.\n *\n * `TransferState` will be available as an injectable token. To use it import\n * `ServerTransferStateModule` on the server and `BrowserTransferStateModule` on the client.\n *\n * The values in the store are serialized/deserialized using JSON.stringify/JSON.parse. So only\n * boolean, number, string, null and non-class objects will be serialized and deserialzied in a\n * non-lossy manner.\n *\n * @publicApi\n */\n@Injectable()\nexport class TransferState {\n private store: {[k: string]: {} | undefined} = {};\n private onSerializeCallbacks: {[k: string]: () => {} | undefined} = {};\n\n /** @internal */\n static init(initState: {}) {\n const transferState = new TransferState();\n transferState.store = initState;\n return transferState;\n }\n\n /**\n * Get the value corresponding to a key. Return `defaultValue` if key is not found.\n */\n get<T>(key: StateKey<T>, defaultValue: T): T {\n return this.store[key] !== undefined ? this.store[key] as T : defaultValue;\n }\n\n /**\n * Set the value corresponding to a key.\n */\n set<T>(key: StateKey<T>, value: T): void { this.store[key] = value; }\n\n /**\n * Remove a key from the store.\n */\n remove<T>(key: StateKey<T>): void { delete this.store[key]; }\n\n /**\n * Test whether a key exists in the store.\n */\n hasKey<T>(key: StateKey<T>) { return this.store.hasOwnProperty(key); }\n\n /**\n * Register a callback to provide the value for a key when `toJson` is called.\n */\n onSerialize<T>(key: StateKey<T>, callback: () => T): void {\n this.onSerializeCallbacks[key] = callback;\n }\n\n /**\n * Serialize the current state of the store to JSON.\n */\n toJson(): string {\n // Call the onSerialize callbacks and put those values into the store.\n for (const key in this.onSerializeCallbacks) {\n if (this.onSerializeCallbacks.hasOwnProperty(key)) {\n try {\n this.store[key] = this.onSerializeCallbacks[key]();\n } catch (e) {\n console.warn('Exception in onSerialize callback: ', e);\n }\n }\n }\n return JSON.stringify(this.store);\n }\n}\n\nexport function initTransferState(doc: Document, appId: string) {\n // Locate the script tag with the JSON data transferred from the server.\n // The id of the script tag is set to the Angular appId + 'state'.\n const script = doc.getElementById(appId + '-state');\n let initialState = {};\n if (script && script.textContent) {\n try {\n initialState = JSON.parse(unescapeHtml(script.textContent));\n } catch (e) {\n console.warn('Exception while restoring TransferState for app ' + appId, e);\n }\n }\n return TransferState.init(initialState);\n}\n\n/**\n * NgModule to install on the client side while using the `TransferState` to transfer state from\n * server to client.\n *\n * @publicApi\n */\n@NgModule({\n providers: [{provide: TransferState, useFactory: initTransferState, deps: [DOCUMENT, APP_ID]}],\n})\nexport class BrowserTransferStateModule {\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {DebugElement, Predicate, Type} from '@angular/core';\nimport {getDOM} from '../../dom/dom_adapter';\n\n\n\n/**\n * Predicates for use with {@link DebugElement}'s query functions.\n *\n * @publicApi\n */\nexport class By {\n /**\n * Match all elements.\n *\n * @usageNotes\n * ### Example\n *\n * {@example platform-browser/dom/debug/ts/by/by.ts region='by_all'}\n */\n static all(): Predicate<DebugElement> { return (debugElement) => true; }\n\n /**\n * Match elements by the given CSS selector.\n *\n * @usageNotes\n * ### Example\n *\n * {@example platform-browser/dom/debug/ts/by/by.ts region='by_css'}\n */\n static css(selector: string): Predicate<DebugElement> {\n return (debugElement) => {\n return debugElement.nativeElement != null ?\n getDOM().elementMatches(debugElement.nativeElement, selector) :\n false;\n };\n }\n\n /**\n * Match elements that have the given directive present.\n *\n * @usageNotes\n * ### Example\n *\n * {@example platform-browser/dom/debug/ts/by/by.ts region='by_directive'}\n */\n static directive(type: Type<any>): Predicate<DebugElement> {\n return (debugElement) => debugElement.providerTokens !.indexOf(type) !== -1;\n }\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nexport {BROWSER_SANITIZATION_PROVIDERS as ɵBROWSER_SANITIZATION_PROVIDERS, INTERNAL_BROWSER_PLATFORM_PROVIDERS as ɵINTERNAL_BROWSER_PLATFORM_PROVIDERS, initDomAdapter as ɵinitDomAdapter} from './browser';\nexport {BrowserDomAdapter as ɵBrowserDomAdapter} from './browser/browser_adapter';\nexport {BrowserPlatformLocation as ɵBrowserPlatformLocation} from './browser/location/browser_platform_location';\nexport {TRANSITION_ID as ɵTRANSITION_ID} from './browser/server-transition';\nexport {BrowserGetTestability as ɵBrowserGetTestability} from './browser/testability';\nexport {escapeHtml as ɵescapeHtml} from './browser/transfer_state';\nexport {ELEMENT_PROBE_PROVIDERS as ɵELEMENT_PROBE_PROVIDERS} from './dom/debug/ng_probe';\nexport {DomAdapter as ɵDomAdapter, getDOM as ɵgetDOM, setRootDomAdapter as ɵsetRootDomAdapter} from './dom/dom_adapter';\nexport {DomRendererFactory2 as ɵDomRendererFactory2, NAMESPACE_URIS as ɵNAMESPACE_URIS, flattenStyles as ɵflattenStyles, shimContentAttribute as ɵshimContentAttribute, shimHostAttribute as ɵshimHostAttribute} from './dom/dom_renderer';\nexport {DomEventsPlugin as ɵDomEventsPlugin} from './dom/events/dom_events';\nexport {HammerGesturesPlugin as ɵHammerGesturesPlugin} from './dom/events/hammer_gestures';\nexport {KeyEventsPlugin as ɵKeyEventsPlugin} from './dom/events/key_events';\nexport {DomSharedStylesHost as ɵDomSharedStylesHost, SharedStylesHost as ɵSharedStylesHost} from './dom/shared_styles_host';\nexport {DomSanitizerImpl as ɵDomSanitizerImpl} from './security/dom_sanitization_service';\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * @module\n * @description\n * Entry point for all public APIs of the common package.\n */\n\nimport {Version} from '@angular/core';\n\n/**\n * @publicApi\n */\nexport const VERSION = new Version('7.2.7');\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nexport {BrowserModule, platformBrowser} from './browser';\nexport {Meta, MetaDefinition} from './browser/meta';\nexport {Title} from './browser/title';\nexport {disableDebugTools, enableDebugTools} from './browser/tools/tools';\nexport {BrowserTransferStateModule, StateKey, TransferState, makeStateKey} from './browser/transfer_state';\nexport {By} from './dom/debug/by';\nexport {DOCUMENT} from './dom/dom_tokens';\nexport {EVENT_MANAGER_PLUGINS, EventManager} from './dom/events/event_manager';\nexport {HAMMER_GESTURE_CONFIG, HAMMER_LOADER, HammerGestureConfig, HammerLoader} from './dom/events/hammer_gestures';\nexport {DomSanitizer, SafeHtml, SafeResourceUrl, SafeScript, SafeStyle, SafeUrl, SafeValue} from './security/dom_sanitization_service';\n\nexport * from './private_export';\nexport {VERSION} from './version';\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * @module\n * @description\n * Entry point for all public APIs of this package.\n */\nexport * from './src/platform-browser';\n// This file only reexports content of the `src` folder. Keep it that way.\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n// This file is not used to build this module. It is only used during editing\n// by the TypeScript language service and during build for verification. `ngc`\n// replaces this file with production index.ts when it rewrites private symbol\n// names.\n\nexport * from './public_api';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n\nexport {BROWSER_MODULE_PROVIDERS as ɵangular_packages_platform_browser_platform_browser_c,_document as ɵangular_packages_platform_browser_platform_browser_b,errorHandler as ɵangular_packages_platform_browser_platform_browser_a} from './src/browser';\nexport {GenericBrowserDomAdapter as ɵangular_packages_platform_browser_platform_browser_k} from './src/browser/generic_browser_adapter';\nexport {createMeta as ɵangular_packages_platform_browser_platform_browser_d} from './src/browser/meta';\nexport {SERVER_TRANSITION_PROVIDERS as ɵangular_packages_platform_browser_platform_browser_i,appInitializerFactory as ɵangular_packages_platform_browser_platform_browser_h} from './src/browser/server-transition';\nexport {createTitle as ɵangular_packages_platform_browser_platform_browser_e} from './src/browser/title';\nexport {initTransferState as ɵangular_packages_platform_browser_platform_browser_f} from './src/browser/transfer_state';\nexport {_createNgProbe as ɵangular_packages_platform_browser_platform_browser_j} from './src/dom/debug/ng_probe';\nexport {EventManagerPlugin as ɵangular_packages_platform_browser_platform_browser_g} from './src/dom/events/event_manager';"],"names":["tslib_1.__extends","global","parseCookieValue","DOCUMENT","commonDOCUMENT","tslib_1.__param","core.ApplicationRef","core.NgZone","core.getDebugNode","core.APP_INITIALIZER","core.NgProbeToken","core.Optional","Console","_sanitizeHtml","_sanitizeStyle","_sanitizeUrl","PLATFORM_BROWSER_ID","APP_ROOT","window"],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"platform-browser.js","sources":["../../../../../../packages/platform-browser/src/dom/dom_adapter.ts","../../../../../../packages/platform-browser/src/browser/generic_browser_adapter.ts","../../../../../../packages/platform-browser/src/browser/browser_adapter.ts","../../../../../../packages/platform-browser/src/dom/dom_tokens.ts","../../../../../../packages/platform-browser/src/browser/location/history.ts","../../../../../../packages/platform-browser/src/browser/location/browser_platform_location.ts","../../../../../../packages/platform-browser/src/browser/server-transition.ts","../../../../../../packages/platform-browser/src/browser/testability.ts","../../../../../../packages/platform-browser/src/dom/util.ts","../../../../../../packages/platform-browser/src/dom/debug/ng_probe.ts","../../../../../../packages/platform-browser/src/dom/events/event_manager.ts","../../../../../../packages/platform-browser/src/dom/shared_styles_host.ts","../../../../../../packages/platform-browser/src/dom/dom_renderer.ts","../../../../../../packages/platform-browser/src/dom/events/dom_events.ts","../../../../../../packages/platform-browser/src/dom/events/hammer_gestures.ts","../../../../../../packages/platform-browser/src/dom/events/key_events.ts","../../../../../../packages/platform-browser/src/security/dom_sanitization_service.ts","../../../../../../packages/platform-browser/src/browser.ts","../../../../../../packages/platform-browser/src/browser/meta.ts","../../../../../../packages/platform-browser/src/browser/title.ts","../../../../../../packages/platform-browser/src/browser/tools/browser.ts","../../../../../../packages/platform-browser/src/browser/tools/common_tools.ts","../../../../../../packages/platform-browser/src/browser/tools/tools.ts","../../../../../../packages/platform-browser/src/browser/transfer_state.ts","../../../../../../packages/platform-browser/src/dom/debug/by.ts","../../../../../../packages/platform-browser/src/private_export.ts","../../../../../../packages/platform-browser/src/version.ts","../../../../../../packages/platform-browser/src/platform-browser.ts","../../../../../../packages/platform-browser/public_api.ts","../../../../../../packages/platform-browser/index.ts","../../../../../../packages/platform-browser/platform-browser.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Type} from '@angular/core';\n\nlet _DOM: DomAdapter = null !;\n\nexport function getDOM() {\n return _DOM;\n}\n\nexport function setDOM(adapter: DomAdapter) {\n _DOM = adapter;\n}\n\nexport function setRootDomAdapter(adapter: DomAdapter) {\n if (!_DOM) {\n _DOM = adapter;\n }\n}\n\n/* tslint:disable:requireParameterType */\n/**\n * Provides DOM operations in an environment-agnostic way.\n *\n * @security Tread carefully! Interacting with the DOM directly is dangerous and\n * can introduce XSS risks.\n */\nexport abstract class DomAdapter {\n public resourceLoaderType: Type<any> = null !;\n abstract hasProperty(element: any, name: string): boolean;\n abstract setProperty(el: Element, name: string, value: any): any;\n abstract getProperty(el: Element, name: string): any;\n abstract invoke(el: Element, methodName: string, args: any[]): any;\n\n abstract logError(error: any): any;\n abstract log(error: any): any;\n abstract logGroup(error: any): any;\n abstract logGroupEnd(): any;\n\n /**\n * Maps attribute names to their corresponding property names for cases\n * where attribute name doesn't match property name.\n */\n get attrToPropMap(): {[key: string]: string} { return this._attrToPropMap; }\n set attrToPropMap(value: {[key: string]: string}) { this._attrToPropMap = value; }\n /** @internal */\n // TODO(issue/24571): remove '!'.\n _attrToPropMap !: {[key: string]: string};\n\n abstract contains(nodeA: any, nodeB: any): boolean;\n abstract parse(templateHtml: string): any;\n abstract querySelector(el: any, selector: string): any;\n abstract querySelectorAll(el: any, selector: string): any[];\n abstract on(el: any, evt: any, listener: any): any;\n abstract onAndCancel(el: any, evt: any, listener: any): Function;\n abstract dispatchEvent(el: any, evt: any): any;\n abstract createMouseEvent(eventType: any): any;\n abstract createEvent(eventType: string): any;\n abstract preventDefault(evt: any): any;\n abstract isPrevented(evt: any): boolean;\n abstract getInnerHTML(el: any): string;\n /** Returns content if el is a <template> element, null otherwise. */\n abstract getTemplateContent(el: any): any;\n abstract getOuterHTML(el: any): string;\n abstract nodeName(node: any): string;\n abstract nodeValue(node: any): string|null;\n abstract type(node: any): string;\n abstract content(node: any): any;\n abstract firstChild(el: any): Node|null;\n abstract nextSibling(el: any): Node|null;\n abstract parentElement(el: any): Node|null;\n abstract childNodes(el: any): Node[];\n abstract childNodesAsList(el: any): Node[];\n abstract clearNodes(el: any): any;\n abstract appendChild(el: any, node: any): any;\n abstract removeChild(el: any, node: any): any;\n abstract replaceChild(el: any, newNode: any, oldNode: any): any;\n abstract remove(el: any): Node;\n abstract insertBefore(parent: any, ref: any, node: any): any;\n abstract insertAllBefore(parent: any, ref: any, nodes: any): any;\n abstract insertAfter(parent: any, el: any, node: any): any;\n abstract setInnerHTML(el: any, value: any): any;\n abstract getText(el: any): string|null;\n abstract setText(el: any, value: string): any;\n abstract getValue(el: any): string;\n abstract setValue(el: any, value: string): any;\n abstract getChecked(el: any): boolean;\n abstract setChecked(el: any, value: boolean): any;\n abstract createComment(text: string): any;\n abstract createTemplate(html: any): HTMLElement;\n abstract createElement(tagName: any, doc?: any): HTMLElement;\n abstract createElementNS(ns: string, tagName: string, doc?: any): Element;\n abstract createTextNode(text: string, doc?: any): Text;\n abstract createScriptTag(attrName: string, attrValue: string, doc?: any): HTMLElement;\n abstract createStyleElement(css: string, doc?: any): HTMLStyleElement;\n abstract createShadowRoot(el: any): any;\n abstract getShadowRoot(el: any): any;\n abstract getHost(el: any): any;\n abstract getDistributedNodes(el: any): Node[];\n abstract clone /*<T extends Node>*/ (node: Node /*T*/): Node /*T*/;\n abstract getElementsByClassName(element: any, name: string): HTMLElement[];\n abstract getElementsByTagName(element: any, name: string): HTMLElement[];\n abstract classList(element: any): any[];\n abstract addClass(element: any, className: string): any;\n abstract removeClass(element: any, className: string): any;\n abstract hasClass(element: any, className: string): boolean;\n abstract setStyle(element: any, styleName: string, styleValue: string): any;\n abstract removeStyle(element: any, styleName: string): any;\n abstract getStyle(element: any, styleName: string): string;\n abstract hasStyle(element: any, styleName: string, styleValue?: string): boolean;\n abstract tagName(element: any): string;\n abstract attributeMap(element: any): Map<string, string>;\n abstract hasAttribute(element: any, attribute: string): boolean;\n abstract hasAttributeNS(element: any, ns: string, attribute: string): boolean;\n abstract getAttribute(element: any, attribute: string): string|null;\n abstract getAttributeNS(element: any, ns: string, attribute: string): string|null;\n abstract setAttribute(element: any, name: string, value: string): any;\n abstract setAttributeNS(element: any, ns: string, name: string, value: string): any;\n abstract removeAttribute(element: any, attribute: string): any;\n abstract removeAttributeNS(element: any, ns: string, attribute: string): any;\n abstract templateAwareRoot(el: any): any;\n abstract createHtmlDocument(): HTMLDocument;\n abstract getDefaultDocument(): Document;\n abstract getBoundingClientRect(el: any): any;\n abstract getTitle(doc: Document): string;\n abstract setTitle(doc: Document, newTitle: string): any;\n abstract elementMatches(n: any, selector: string): boolean;\n abstract isTemplateElement(el: any): boolean;\n abstract isTextNode(node: any): boolean;\n abstract isCommentNode(node: any): boolean;\n abstract isElementNode(node: any): boolean;\n abstract hasShadowRoot(node: any): boolean;\n abstract isShadowRoot(node: any): boolean;\n abstract importIntoDoc /*<T extends Node>*/ (node: Node /*T*/): Node /*T*/;\n abstract adoptNode /*<T extends Node>*/ (node: Node /*T*/): Node /*T*/;\n abstract getHref(element: any): string;\n abstract getEventKey(event: any): string;\n abstract resolveAndSetHref(element: any, baseUrl: string, href: string): any;\n abstract supportsDOMEvents(): boolean;\n abstract supportsNativeShadowDOM(): boolean;\n abstract getGlobalEventTarget(doc: Document, target: string): any;\n abstract getHistory(): History;\n abstract getLocation(): Location;\n abstract getBaseHref(doc: Document): string|null;\n abstract resetBaseElement(): void;\n abstract getUserAgent(): string;\n abstract setData(element: any, name: string, value: string): any;\n abstract getComputedStyle(element: any): any;\n abstract getData(element: any, name: string): string|null;\n abstract supportsWebAnimation(): boolean;\n abstract performanceNow(): number;\n abstract getAnimationPrefix(): string;\n abstract getTransitionEnd(): string;\n abstract supportsAnimation(): boolean;\n\n abstract supportsCookies(): boolean;\n abstract getCookie(name: string): string|null;\n abstract setCookie(name: string, value: string): any;\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {DomAdapter} from '../dom/dom_adapter';\n\n\n\n/**\n * Provides DOM operations in any browser environment.\n *\n * @security Tread carefully! Interacting with the DOM directly is dangerous and\n * can introduce XSS risks.\n */\nexport abstract class GenericBrowserDomAdapter extends DomAdapter {\n private _animationPrefix: string|null = null;\n private _transitionEnd: string|null = null;\n constructor() {\n super();\n try {\n const element = this.createElement('div', document);\n if (this.getStyle(element, 'animationName') != null) {\n this._animationPrefix = '';\n } else {\n const domPrefixes = ['Webkit', 'Moz', 'O', 'ms'];\n\n for (let i = 0; i < domPrefixes.length; i++) {\n if (this.getStyle(element, domPrefixes[i] + 'AnimationName') != null) {\n this._animationPrefix = '-' + domPrefixes[i].toLowerCase() + '-';\n break;\n }\n }\n }\n\n const transEndEventNames: {[key: string]: string} = {\n WebkitTransition: 'webkitTransitionEnd',\n MozTransition: 'transitionend',\n OTransition: 'oTransitionEnd otransitionend',\n transition: 'transitionend'\n };\n\n Object.keys(transEndEventNames).forEach((key: string) => {\n if (this.getStyle(element, key) != null) {\n this._transitionEnd = transEndEventNames[key];\n }\n });\n } catch {\n this._animationPrefix = null;\n this._transitionEnd = null;\n }\n }\n\n getDistributedNodes(el: HTMLElement): Node[] { return (<any>el).getDistributedNodes(); }\n resolveAndSetHref(el: HTMLAnchorElement, baseUrl: string, href: string) {\n el.href = href == null ? baseUrl : baseUrl + '/../' + href;\n }\n supportsDOMEvents(): boolean { return true; }\n supportsNativeShadowDOM(): boolean {\n return typeof(<any>document.body).createShadowRoot === 'function';\n }\n getAnimationPrefix(): string { return this._animationPrefix ? this._animationPrefix : ''; }\n getTransitionEnd(): string { return this._transitionEnd ? this._transitionEnd : ''; }\n supportsAnimation(): boolean {\n return this._animationPrefix != null && this._transitionEnd != null;\n }\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {ɵparseCookieValue as parseCookieValue} from '@angular/common';\nimport {ɵglobal as global} from '@angular/core';\n\nimport {setRootDomAdapter} from '../dom/dom_adapter';\n\nimport {GenericBrowserDomAdapter} from './generic_browser_adapter';\n\nconst _attrToPropMap = {\n 'class': 'className',\n 'innerHtml': 'innerHTML',\n 'readonly': 'readOnly',\n 'tabindex': 'tabIndex',\n};\n\nconst DOM_KEY_LOCATION_NUMPAD = 3;\n\n// Map to convert some key or keyIdentifier values to what will be returned by getEventKey\nconst _keyMap: {[k: string]: string} = {\n // The following values are here for cross-browser compatibility and to match the W3C standard\n // cf http://www.w3.org/TR/DOM-Level-3-Events-key/\n '\\b': 'Backspace',\n '\\t': 'Tab',\n '\\x7F': 'Delete',\n '\\x1B': 'Escape',\n 'Del': 'Delete',\n 'Esc': 'Escape',\n 'Left': 'ArrowLeft',\n 'Right': 'ArrowRight',\n 'Up': 'ArrowUp',\n 'Down': 'ArrowDown',\n 'Menu': 'ContextMenu',\n 'Scroll': 'ScrollLock',\n 'Win': 'OS'\n};\n\n// There is a bug in Chrome for numeric keypad keys:\n// https://code.google.com/p/chromium/issues/detail?id=155654\n// 1, 2, 3 ... are reported as A, B, C ...\nconst _chromeNumKeyPadMap = {\n 'A': '1',\n 'B': '2',\n 'C': '3',\n 'D': '4',\n 'E': '5',\n 'F': '6',\n 'G': '7',\n 'H': '8',\n 'I': '9',\n 'J': '*',\n 'K': '+',\n 'M': '-',\n 'N': '.',\n 'O': '/',\n '\\x60': '0',\n '\\x90': 'NumLock'\n};\n\nlet nodeContains: (a: any, b: any) => boolean;\n\nif (global['Node']) {\n nodeContains = global['Node'].prototype.contains || function(node) {\n return !!(this.compareDocumentPosition(node) & 16);\n };\n}\n\n/**\n * A `DomAdapter` powered by full browser DOM APIs.\n *\n * @security Tread carefully! Interacting with the DOM directly is dangerous and\n * can introduce XSS risks.\n */\n/* tslint:disable:requireParameterType no-console */\nexport class BrowserDomAdapter extends GenericBrowserDomAdapter {\n parse(templateHtml: string) { throw new Error('parse not implemented'); }\n static makeCurrent() { setRootDomAdapter(new BrowserDomAdapter()); }\n hasProperty(element: Node, name: string): boolean { return name in element; }\n setProperty(el: Node, name: string, value: any) { (<any>el)[name] = value; }\n getProperty(el: Node, name: string): any { return (<any>el)[name]; }\n invoke(el: Node, methodName: string, args: any[]): any { (<any>el)[methodName](...args); }\n\n // TODO(tbosch): move this into a separate environment class once we have it\n logError(error: string): void {\n if (window.console) {\n if (console.error) {\n console.error(error);\n } else {\n console.log(error);\n }\n }\n }\n\n log(error: string): void {\n if (window.console) {\n window.console.log && window.console.log(error);\n }\n }\n\n logGroup(error: string): void {\n if (window.console) {\n window.console.group && window.console.group(error);\n }\n }\n\n logGroupEnd(): void {\n if (window.console) {\n window.console.groupEnd && window.console.groupEnd();\n }\n }\n\n get attrToPropMap(): any { return _attrToPropMap; }\n\n contains(nodeA: any, nodeB: any): boolean { return nodeContains.call(nodeA, nodeB); }\n querySelector(el: HTMLElement, selector: string): any { return el.querySelector(selector); }\n querySelectorAll(el: any, selector: string): any[] { return el.querySelectorAll(selector); }\n on(el: Node, evt: any, listener: any) { el.addEventListener(evt, listener, false); }\n onAndCancel(el: Node, evt: any, listener: any): Function {\n el.addEventListener(evt, listener, false);\n // Needed to follow Dart's subscription semantic, until fix of\n // https://code.google.com/p/dart/issues/detail?id=17406\n return () => { el.removeEventListener(evt, listener, false); };\n }\n dispatchEvent(el: Node, evt: any) { el.dispatchEvent(evt); }\n createMouseEvent(eventType: string): MouseEvent {\n const evt: MouseEvent = this.getDefaultDocument().createEvent('MouseEvent');\n evt.initEvent(eventType, true, true);\n return evt;\n }\n createEvent(eventType: any): Event {\n const evt: Event = this.getDefaultDocument().createEvent('Event');\n evt.initEvent(eventType, true, true);\n return evt;\n }\n preventDefault(evt: Event) {\n evt.preventDefault();\n evt.returnValue = false;\n }\n isPrevented(evt: Event): boolean {\n return evt.defaultPrevented || evt.returnValue != null && !evt.returnValue;\n }\n getInnerHTML(el: HTMLElement): string { return el.innerHTML; }\n getTemplateContent(el: Node): Node|null {\n return 'content' in el && this.isTemplateElement(el) ? (<any>el).content : null;\n }\n getOuterHTML(el: HTMLElement): string { return el.outerHTML; }\n nodeName(node: Node): string { return node.nodeName; }\n nodeValue(node: Node): string|null { return node.nodeValue; }\n type(node: HTMLInputElement): string { return node.type; }\n content(node: Node): Node {\n if (this.hasProperty(node, 'content')) {\n return (<any>node).content;\n } else {\n return node;\n }\n }\n firstChild(el: Node): Node|null { return el.firstChild; }\n nextSibling(el: Node): Node|null { return el.nextSibling; }\n parentElement(el: Node): Node|null { return el.parentNode; }\n childNodes(el: any): Node[] { return el.childNodes; }\n childNodesAsList(el: Node): any[] {\n const childNodes = el.childNodes;\n const res = new Array(childNodes.length);\n for (let i = 0; i < childNodes.length; i++) {\n res[i] = childNodes[i];\n }\n return res;\n }\n clearNodes(el: Node) {\n while (el.firstChild) {\n el.removeChild(el.firstChild);\n }\n }\n appendChild(el: Node, node: Node) { el.appendChild(node); }\n removeChild(el: Node, node: Node) { el.removeChild(node); }\n replaceChild(el: Node, newChild: Node, oldChild: Node) { el.replaceChild(newChild, oldChild); }\n remove(node: Node): Node {\n if (node.parentNode) {\n node.parentNode.removeChild(node);\n }\n return node;\n }\n insertBefore(parent: Node, ref: Node, node: Node) { parent.insertBefore(node, ref); }\n insertAllBefore(parent: Node, ref: Node, nodes: Node[]) {\n nodes.forEach((n: any) => parent.insertBefore(n, ref));\n }\n insertAfter(parent: Node, ref: Node, node: any) { parent.insertBefore(node, ref.nextSibling); }\n setInnerHTML(el: Element, value: string) { el.innerHTML = value; }\n getText(el: Node): string|null { return el.textContent; }\n setText(el: Node, value: string) { el.textContent = value; }\n getValue(el: any): string { return el.value; }\n setValue(el: any, value: string) { el.value = value; }\n getChecked(el: any): boolean { return el.checked; }\n setChecked(el: any, value: boolean) { el.checked = value; }\n createComment(text: string): Comment { return this.getDefaultDocument().createComment(text); }\n createTemplate(html: any): HTMLElement {\n const t = this.getDefaultDocument().createElement('template');\n t.innerHTML = html;\n return t;\n }\n createElement(tagName: string, doc?: Document): HTMLElement {\n doc = doc || this.getDefaultDocument();\n return doc.createElement(tagName);\n }\n createElementNS(ns: string, tagName: string, doc?: Document): Element {\n doc = doc || this.getDefaultDocument();\n return doc.createElementNS(ns, tagName);\n }\n createTextNode(text: string, doc?: Document): Text {\n doc = doc || this.getDefaultDocument();\n return doc.createTextNode(text);\n }\n createScriptTag(attrName: string, attrValue: string, doc?: Document): HTMLScriptElement {\n doc = doc || this.getDefaultDocument();\n const el = <HTMLScriptElement>doc.createElement('SCRIPT');\n el.setAttribute(attrName, attrValue);\n return el;\n }\n createStyleElement(css: string, doc?: Document): HTMLStyleElement {\n doc = doc || this.getDefaultDocument();\n const style = <HTMLStyleElement>doc.createElement('style');\n this.appendChild(style, this.createTextNode(css, doc));\n return style;\n }\n createShadowRoot(el: HTMLElement): DocumentFragment { return (<any>el).createShadowRoot(); }\n getShadowRoot(el: HTMLElement): DocumentFragment { return (<any>el).shadowRoot; }\n getHost(el: HTMLElement): HTMLElement { return (<any>el).host; }\n clone(node: Node): Node { return node.cloneNode(true); }\n getElementsByClassName(element: any, name: string): HTMLElement[] {\n return element.getElementsByClassName(name);\n }\n getElementsByTagName(element: any, name: string): HTMLElement[] {\n return element.getElementsByTagName(name);\n }\n classList(element: any): any[] { return Array.prototype.slice.call(element.classList, 0); }\n addClass(element: any, className: string) { element.classList.add(className); }\n removeClass(element: any, className: string) { element.classList.remove(className); }\n hasClass(element: any, className: string): boolean {\n return element.classList.contains(className);\n }\n setStyle(element: any, styleName: string, styleValue: string) {\n element.style[styleName] = styleValue;\n }\n removeStyle(element: any, stylename: string) {\n // IE requires '' instead of null\n // see https://github.com/angular/angular/issues/7916\n element.style[stylename] = '';\n }\n getStyle(element: any, stylename: string): string { return element.style[stylename]; }\n hasStyle(element: any, styleName: string, styleValue?: string|null): boolean {\n const value = this.getStyle(element, styleName) || '';\n return styleValue ? value == styleValue : value.length > 0;\n }\n tagName(element: any): string { return element.tagName; }\n attributeMap(element: any): Map<string, string> {\n const res = new Map<string, string>();\n const elAttrs = element.attributes;\n for (let i = 0; i < elAttrs.length; i++) {\n const attrib = elAttrs.item(i);\n res.set(attrib.name, attrib.value);\n }\n return res;\n }\n hasAttribute(element: Element, attribute: string): boolean {\n return element.hasAttribute(attribute);\n }\n hasAttributeNS(element: Element, ns: string, attribute: string): boolean {\n return element.hasAttributeNS(ns, attribute);\n }\n getAttribute(element: Element, attribute: string): string|null {\n return element.getAttribute(attribute);\n }\n getAttributeNS(element: Element, ns: string, name: string): string|null {\n return element.getAttributeNS(ns, name);\n }\n setAttribute(element: Element, name: string, value: string) { element.setAttribute(name, value); }\n setAttributeNS(element: Element, ns: string, name: string, value: string) {\n element.setAttributeNS(ns, name, value);\n }\n removeAttribute(element: Element, attribute: string) { element.removeAttribute(attribute); }\n removeAttributeNS(element: Element, ns: string, name: string) {\n element.removeAttributeNS(ns, name);\n }\n templateAwareRoot(el: Node): any { return this.isTemplateElement(el) ? this.content(el) : el; }\n createHtmlDocument(): HTMLDocument {\n return document.implementation.createHTMLDocument('fakeTitle');\n }\n getDefaultDocument(): Document { return document; }\n getBoundingClientRect(el: Element): any {\n try {\n return el.getBoundingClientRect();\n } catch {\n return {top: 0, bottom: 0, left: 0, right: 0, width: 0, height: 0};\n }\n }\n getTitle(doc: Document): string { return doc.title; }\n setTitle(doc: Document, newTitle: string) { doc.title = newTitle || ''; }\n elementMatches(n: any, selector: string): boolean {\n if (this.isElementNode(n)) {\n return n.matches && n.matches(selector) ||\n n.msMatchesSelector && n.msMatchesSelector(selector) ||\n n.webkitMatchesSelector && n.webkitMatchesSelector(selector);\n }\n\n return false;\n }\n isTemplateElement(el: Node): boolean {\n return this.isElementNode(el) && el.nodeName === 'TEMPLATE';\n }\n isTextNode(node: Node): boolean { return node.nodeType === Node.TEXT_NODE; }\n isCommentNode(node: Node): boolean { return node.nodeType === Node.COMMENT_NODE; }\n isElementNode(node: Node): boolean { return node.nodeType === Node.ELEMENT_NODE; }\n hasShadowRoot(node: any): boolean {\n return node.shadowRoot != null && node instanceof HTMLElement;\n }\n isShadowRoot(node: any): boolean { return node instanceof DocumentFragment; }\n importIntoDoc(node: Node): any { return document.importNode(this.templateAwareRoot(node), true); }\n adoptNode(node: Node): any { return document.adoptNode(node); }\n getHref(el: Element): string { return el.getAttribute('href') !; }\n\n getEventKey(event: any): string {\n let key = event.key;\n if (key == null) {\n key = event.keyIdentifier;\n // keyIdentifier is defined in the old draft of DOM Level 3 Events implemented by Chrome and\n // Safari cf\n // http://www.w3.org/TR/2007/WD-DOM-Level-3-Events-20071221/events.html#Events-KeyboardEvents-Interfaces\n if (key == null) {\n return 'Unidentified';\n }\n if (key.startsWith('U+')) {\n key = String.fromCharCode(parseInt(key.substring(2), 16));\n if (event.location === DOM_KEY_LOCATION_NUMPAD && _chromeNumKeyPadMap.hasOwnProperty(key)) {\n // There is a bug in Chrome for numeric keypad keys:\n // https://code.google.com/p/chromium/issues/detail?id=155654\n // 1, 2, 3 ... are reported as A, B, C ...\n key = (_chromeNumKeyPadMap as any)[key];\n }\n }\n }\n\n return _keyMap[key] || key;\n }\n getGlobalEventTarget(doc: Document, target: string): EventTarget|null {\n if (target === 'window') {\n return window;\n }\n if (target === 'document') {\n return doc;\n }\n if (target === 'body') {\n return doc.body;\n }\n return null;\n }\n getHistory(): History { return window.history; }\n getLocation(): Location { return window.location; }\n getBaseHref(doc: Document): string|null {\n const href = getBaseElementHref();\n return href == null ? null : relativePath(href);\n }\n resetBaseElement(): void { baseElement = null; }\n getUserAgent(): string { return window.navigator.userAgent; }\n setData(element: Element, name: string, value: string) {\n this.setAttribute(element, 'data-' + name, value);\n }\n getData(element: Element, name: string): string|null {\n return this.getAttribute(element, 'data-' + name);\n }\n getComputedStyle(element: any): any { return getComputedStyle(element); }\n // TODO(tbosch): move this into a separate environment class once we have it\n supportsWebAnimation(): boolean {\n return typeof(<any>Element).prototype['animate'] === 'function';\n }\n performanceNow(): number {\n // performance.now() is not available in all browsers, see\n // http://caniuse.com/#search=performance.now\n return window.performance && window.performance.now ? window.performance.now() :\n new Date().getTime();\n }\n\n supportsCookies(): boolean { return true; }\n\n getCookie(name: string): string|null { return parseCookieValue(document.cookie, name); }\n\n setCookie(name: string, value: string) {\n // document.cookie is magical, assigning into it assigns/overrides one cookie value, but does\n // not clear other cookies.\n document.cookie = encodeURIComponent(name) + '=' + encodeURIComponent(value);\n }\n}\n\nlet baseElement: HTMLElement|null = null;\nfunction getBaseElementHref(): string|null {\n if (!baseElement) {\n baseElement = document.querySelector('base') !;\n if (!baseElement) {\n return null;\n }\n }\n return baseElement.getAttribute('href');\n}\n\n// based on urlUtils.js in AngularJS 1\nlet urlParsingNode: any;\nfunction relativePath(url: any): string {\n if (!urlParsingNode) {\n urlParsingNode = document.createElement('a');\n }\n urlParsingNode.setAttribute('href', url);\n return (urlParsingNode.pathname.charAt(0) === '/') ? urlParsingNode.pathname :\n '/' + urlParsingNode.pathname;\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {DOCUMENT as commonDOCUMENT} from '@angular/common';\nimport {InjectionToken} from '@angular/core';\n\n\n/**\n * A DI Token representing the main rendering context. In a browser this is the DOM Document.\n *\n * Note: Document might not be available in the Application Context when Application and Rendering\n * Contexts are not the same (e.g. when running the application into a Web Worker).\n *\n * @deprecated import from `@angular/common` instead.\n * @publicApi\n */\nexport const DOCUMENT = commonDOCUMENT;\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nexport function supportsState(): boolean {\n return !!window.history.pushState;\n}","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {LocationChangeListener, PlatformLocation} from '@angular/common';\nimport {Inject, Injectable} from '@angular/core';\n\nimport {getDOM} from '../../dom/dom_adapter';\nimport {DOCUMENT} from '../../dom/dom_tokens';\n\nimport {supportsState} from './history';\n\n\n\n/**\n * `PlatformLocation` encapsulates all of the direct calls to platform APIs.\n * This class should not be used directly by an application developer. Instead, use\n * {@link Location}.\n */\n@Injectable()\nexport class BrowserPlatformLocation extends PlatformLocation {\n // TODO(issue/24571): remove '!'.\n public readonly location !: Location;\n // TODO(issue/24571): remove '!'.\n private _history !: History;\n\n constructor(@Inject(DOCUMENT) private _doc: any) {\n super();\n this._init();\n }\n\n // This is moved to its own method so that `MockPlatformLocationStrategy` can overwrite it\n /** @internal */\n _init() {\n (this as{location: Location}).location = getDOM().getLocation();\n this._history = getDOM().getHistory();\n }\n\n getBaseHrefFromDOM(): string { return getDOM().getBaseHref(this._doc) !; }\n\n onPopState(fn: LocationChangeListener): void {\n getDOM().getGlobalEventTarget(this._doc, 'window').addEventListener('popstate', fn, false);\n }\n\n onHashChange(fn: LocationChangeListener): void {\n getDOM().getGlobalEventTarget(this._doc, 'window').addEventListener('hashchange', fn, false);\n }\n\n get pathname(): string { return this.location.pathname; }\n get search(): string { return this.location.search; }\n get hash(): string { return this.location.hash; }\n set pathname(newPath: string) { this.location.pathname = newPath; }\n\n pushState(state: any, title: string, url: string): void {\n if (supportsState()) {\n this._history.pushState(state, title, url);\n } else {\n this.location.hash = url;\n }\n }\n\n replaceState(state: any, title: string, url: string): void {\n if (supportsState()) {\n this._history.replaceState(state, title, url);\n } else {\n this.location.hash = url;\n }\n }\n\n forward(): void { this._history.forward(); }\n\n back(): void { this._history.back(); }\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {APP_INITIALIZER, ApplicationInitStatus, Inject, InjectionToken, Injector, StaticProvider} from '@angular/core';\n\nimport {getDOM} from '../dom/dom_adapter';\nimport {DOCUMENT} from '../dom/dom_tokens';\n\n/**\n * An id that identifies a particular application being bootstrapped, that should\n * match across the client/server boundary.\n */\nexport const TRANSITION_ID = new InjectionToken('TRANSITION_ID');\n\nexport function appInitializerFactory(transitionId: string, document: any, injector: Injector) {\n return () => {\n // Wait for all application initializers to be completed before removing the styles set by\n // the server.\n injector.get(ApplicationInitStatus).donePromise.then(() => {\n const dom = getDOM();\n const styles: any[] =\n Array.prototype.slice.apply(dom.querySelectorAll(document, `style[ng-transition]`));\n styles.filter(el => dom.getAttribute(el, 'ng-transition') === transitionId)\n .forEach(el => dom.remove(el));\n });\n };\n}\n\nexport const SERVER_TRANSITION_PROVIDERS: StaticProvider[] = [\n {\n provide: APP_INITIALIZER,\n useFactory: appInitializerFactory,\n deps: [TRANSITION_ID, DOCUMENT, Injector],\n multi: true\n },\n];\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {GetTestability, Testability, TestabilityRegistry, setTestabilityGetter, ɵglobal as global} from '@angular/core';\n\nimport {getDOM} from '../dom/dom_adapter';\n\nexport class BrowserGetTestability implements GetTestability {\n static init() { setTestabilityGetter(new BrowserGetTestability()); }\n\n addToWindow(registry: TestabilityRegistry): void {\n global['getAngularTestability'] = (elem: any, findInAncestors: boolean = true) => {\n const testability = registry.findTestabilityInTree(elem, findInAncestors);\n if (testability == null) {\n throw new Error('Could not find testability for element.');\n }\n return testability;\n };\n\n global['getAllAngularTestabilities'] = () => registry.getAllTestabilities();\n\n global['getAllAngularRootElements'] = () => registry.getAllRootElements();\n\n const whenAllStable = (callback: any /** TODO #9100 */) => {\n const testabilities = global['getAllAngularTestabilities']();\n let count = testabilities.length;\n let didWork = false;\n const decrement = function(didWork_: any /** TODO #9100 */) {\n didWork = didWork || didWork_;\n count--;\n if (count == 0) {\n callback(didWork);\n }\n };\n testabilities.forEach(function(testability: any /** TODO #9100 */) {\n testability.whenStable(decrement);\n });\n };\n\n if (!global['frameworkStabilizers']) {\n global['frameworkStabilizers'] = [];\n }\n global['frameworkStabilizers'].push(whenAllStable);\n }\n\n findTestabilityInTree(registry: TestabilityRegistry, elem: any, findInAncestors: boolean):\n Testability|null {\n if (elem == null) {\n return null;\n }\n const t = registry.getTestability(elem);\n if (t != null) {\n return t;\n } else if (!findInAncestors) {\n return null;\n }\n if (getDOM().isShadowRoot(elem)) {\n return this.findTestabilityInTree(registry, getDOM().getHost(elem), true);\n }\n return this.findTestabilityInTree(registry, getDOM().parentElement(elem), true);\n }\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {ɵglobal as global} from '@angular/core';\n\nconst CAMEL_CASE_REGEXP = /([A-Z])/g;\nconst DASH_CASE_REGEXP = /-([a-z])/g;\n\n\nexport function camelCaseToDashCase(input: string): string {\n return input.replace(CAMEL_CASE_REGEXP, (...m: string[]) => '-' + m[1].toLowerCase());\n}\n\nexport function dashCaseToCamelCase(input: string): string {\n return input.replace(DASH_CASE_REGEXP, (...m: string[]) => m[1].toUpperCase());\n}\n\n/**\n * Exports the value under a given `name` in the global property `ng`. For example `ng.probe` if\n * `name` is `'probe'`.\n * @param name Name under which it will be exported. Keep in mind this will be a property of the\n * global `ng` object.\n * @param value The value to export.\n */\nexport function exportNgVar(name: string, value: any): void {\n if (typeof COMPILED === 'undefined' || !COMPILED) {\n // Note: we can't export `ng` when using closure enhanced optimization as:\n // - closure declares globals itself for minified names, which sometimes clobber our `ng` global\n // - we can't declare a closure extern as the namespace `ng` is already used within Google\n // for typings for angularJS (via `goog.provide('ng....')`).\n const ng = global['ng'] = (global['ng'] as{[key: string]: any} | undefined) || {};\n ng[name] = value;\n }\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport * as core from '@angular/core';\nimport {exportNgVar} from '../util';\n\nconst CORE_TOKENS = {\n 'ApplicationRef': core.ApplicationRef,\n 'NgZone': core.NgZone,\n};\n\nconst INSPECT_GLOBAL_NAME = 'probe';\nconst CORE_TOKENS_GLOBAL_NAME = 'coreTokens';\n\n/**\n * Returns a {@link DebugElement} for the given native DOM element, or\n * null if the given native element does not have an Angular view associated\n * with it.\n */\nexport function inspectNativeElement(element: any): core.DebugNode|null {\n return core.getDebugNode(element);\n}\n\nexport function _createNgProbe(coreTokens: core.NgProbeToken[]): any {\n exportNgVar(INSPECT_GLOBAL_NAME, inspectNativeElement);\n exportNgVar(CORE_TOKENS_GLOBAL_NAME, {...CORE_TOKENS, ..._ngProbeTokensToMap(coreTokens || [])});\n return () => inspectNativeElement;\n}\n\nfunction _ngProbeTokensToMap(tokens: core.NgProbeToken[]): {[name: string]: any} {\n return tokens.reduce((prev: any, t: any) => (prev[t.name] = t.token, prev), {});\n}\n\n/**\n * Providers which support debugging Angular applications (e.g. via `ng.probe`).\n */\nexport const ELEMENT_PROBE_PROVIDERS: core.Provider[] = [\n {\n provide: core.APP_INITIALIZER,\n useFactory: _createNgProbe,\n deps: [\n [core.NgProbeToken, new core.Optional()],\n ],\n multi: true,\n },\n];\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Inject, Injectable, InjectionToken, NgZone} from '@angular/core';\n\nimport {getDOM} from '../dom_adapter';\n\n/**\n * The injection token for the event-manager plug-in service.\n *\n * @publicApi\n */\nexport const EVENT_MANAGER_PLUGINS =\n new InjectionToken<EventManagerPlugin[]>('EventManagerPlugins');\n\n/**\n * An injectable service that provides event management for Angular\n * through a browser plug-in.\n *\n * @publicApi\n */\n@Injectable()\nexport class EventManager {\n private _plugins: EventManagerPlugin[];\n private _eventNameToPlugin = new Map<string, EventManagerPlugin>();\n\n /**\n * Initializes an instance of the event-manager service.\n */\n constructor(@Inject(EVENT_MANAGER_PLUGINS) plugins: EventManagerPlugin[], private _zone: NgZone) {\n plugins.forEach(p => p.manager = this);\n this._plugins = plugins.slice().reverse();\n }\n\n /**\n * Registers a handler for a specific element and event.\n *\n * @param element The HTML element to receive event notifications.\n * @param eventName The name of the event to listen for.\n * @param handler A function to call when the notification occurs. Receives the\n * event object as an argument.\n * @returns A callback function that can be used to remove the handler.\n */\n addEventListener(element: HTMLElement, eventName: string, handler: Function): Function {\n const plugin = this._findPluginFor(eventName);\n return plugin.addEventListener(element, eventName, handler);\n }\n\n /**\n * Registers a global handler for an event in a target view.\n *\n * @param target A target for global event notifications. One of \"window\", \"document\", or \"body\".\n * @param eventName The name of the event to listen for.\n * @param handler A function to call when the notification occurs. Receives the\n * event object as an argument.\n * @returns A callback function that can be used to remove the handler.\n */\n addGlobalEventListener(target: string, eventName: string, handler: Function): Function {\n const plugin = this._findPluginFor(eventName);\n return plugin.addGlobalEventListener(target, eventName, handler);\n }\n\n /**\n * Retrieves the compilation zone in which event listeners are registered.\n */\n getZone(): NgZone { return this._zone; }\n\n /** @internal */\n _findPluginFor(eventName: string): EventManagerPlugin {\n const plugin = this._eventNameToPlugin.get(eventName);\n if (plugin) {\n return plugin;\n }\n\n const plugins = this._plugins;\n for (let i = 0; i < plugins.length; i++) {\n const plugin = plugins[i];\n if (plugin.supports(eventName)) {\n this._eventNameToPlugin.set(eventName, plugin);\n return plugin;\n }\n }\n throw new Error(`No event manager plugin found for event ${eventName}`);\n }\n}\n\nexport abstract class EventManagerPlugin {\n constructor(private _doc: any) {}\n\n // TODO(issue/24571): remove '!'.\n manager !: EventManager;\n\n abstract supports(eventName: string): boolean;\n\n abstract addEventListener(element: HTMLElement, eventName: string, handler: Function): Function;\n\n addGlobalEventListener(element: string, eventName: string, handler: Function): Function {\n const target: HTMLElement = getDOM().getGlobalEventTarget(this._doc, element);\n if (!target) {\n throw new Error(`Unsupported event target ${target} for event ${eventName}`);\n }\n return this.addEventListener(target, eventName, handler);\n }\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Inject, Injectable, OnDestroy} from '@angular/core';\nimport {getDOM} from './dom_adapter';\nimport {DOCUMENT} from './dom_tokens';\n\n@Injectable()\nexport class SharedStylesHost {\n /** @internal */\n protected _stylesSet = new Set<string>();\n\n addStyles(styles: string[]): void {\n const additions = new Set<string>();\n styles.forEach(style => {\n if (!this._stylesSet.has(style)) {\n this._stylesSet.add(style);\n additions.add(style);\n }\n });\n this.onStylesAdded(additions);\n }\n\n onStylesAdded(additions: Set<string>): void {}\n\n getAllStyles(): string[] { return Array.from(this._stylesSet); }\n}\n\n@Injectable()\nexport class DomSharedStylesHost extends SharedStylesHost implements OnDestroy {\n private _hostNodes = new Set<Node>();\n private _styleNodes = new Set<Node>();\n constructor(@Inject(DOCUMENT) private _doc: any) {\n super();\n this._hostNodes.add(_doc.head);\n }\n\n private _addStylesToHost(styles: Set<string>, host: Node): void {\n styles.forEach((style: string) => {\n const styleEl = this._doc.createElement('style');\n styleEl.textContent = style;\n this._styleNodes.add(host.appendChild(styleEl));\n });\n }\n\n addHost(hostNode: Node): void {\n this._addStylesToHost(this._stylesSet, hostNode);\n this._hostNodes.add(hostNode);\n }\n\n removeHost(hostNode: Node): void { this._hostNodes.delete(hostNode); }\n\n onStylesAdded(additions: Set<string>): void {\n this._hostNodes.forEach(hostNode => this._addStylesToHost(additions, hostNode));\n }\n\n ngOnDestroy(): void { this._styleNodes.forEach(styleNode => getDOM().remove(styleNode)); }\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Injectable, Renderer2, RendererFactory2, RendererStyleFlags2, RendererType2, ViewEncapsulation} from '@angular/core';\n\nimport {EventManager} from './events/event_manager';\nimport {DomSharedStylesHost} from './shared_styles_host';\n\nexport const NAMESPACE_URIS: {[ns: string]: string} = {\n 'svg': 'http://www.w3.org/2000/svg',\n 'xhtml': 'http://www.w3.org/1999/xhtml',\n 'xlink': 'http://www.w3.org/1999/xlink',\n 'xml': 'http://www.w3.org/XML/1998/namespace',\n 'xmlns': 'http://www.w3.org/2000/xmlns/',\n};\n\nconst COMPONENT_REGEX = /%COMP%/g;\nexport const COMPONENT_VARIABLE = '%COMP%';\nexport const HOST_ATTR = `_nghost-${COMPONENT_VARIABLE}`;\nexport const CONTENT_ATTR = `_ngcontent-${COMPONENT_VARIABLE}`;\n\nexport function shimContentAttribute(componentShortId: string): string {\n return CONTENT_ATTR.replace(COMPONENT_REGEX, componentShortId);\n}\n\nexport function shimHostAttribute(componentShortId: string): string {\n return HOST_ATTR.replace(COMPONENT_REGEX, componentShortId);\n}\n\nexport function flattenStyles(\n compId: string, styles: Array<any|any[]>, target: string[]): string[] {\n for (let i = 0; i < styles.length; i++) {\n let style = styles[i];\n\n if (Array.isArray(style)) {\n flattenStyles(compId, style, target);\n } else {\n style = style.replace(COMPONENT_REGEX, compId);\n target.push(style);\n }\n }\n return target;\n}\n\nfunction decoratePreventDefault(eventHandler: Function): Function {\n return (event: any) => {\n const allowDefaultBehavior = eventHandler(event);\n if (allowDefaultBehavior === false) {\n // TODO(tbosch): move preventDefault into event plugins...\n event.preventDefault();\n event.returnValue = false;\n }\n };\n}\n\n@Injectable()\nexport class DomRendererFactory2 implements RendererFactory2 {\n private rendererByCompId = new Map<string, Renderer2>();\n private defaultRenderer: Renderer2;\n\n constructor(private eventManager: EventManager, private sharedStylesHost: DomSharedStylesHost) {\n this.defaultRenderer = new DefaultDomRenderer2(eventManager);\n }\n\n createRenderer(element: any, type: RendererType2|null): Renderer2 {\n if (!element || !type) {\n return this.defaultRenderer;\n }\n switch (type.encapsulation) {\n case ViewEncapsulation.Emulated: {\n let renderer = this.rendererByCompId.get(type.id);\n if (!renderer) {\n renderer =\n new EmulatedEncapsulationDomRenderer2(this.eventManager, this.sharedStylesHost, type);\n this.rendererByCompId.set(type.id, renderer);\n }\n (<EmulatedEncapsulationDomRenderer2>renderer).applyToHost(element);\n return renderer;\n }\n case ViewEncapsulation.Native:\n case ViewEncapsulation.ShadowDom:\n return new ShadowDomRenderer(this.eventManager, this.sharedStylesHost, element, type);\n default: {\n if (!this.rendererByCompId.has(type.id)) {\n const styles = flattenStyles(type.id, type.styles, []);\n this.sharedStylesHost.addStyles(styles);\n this.rendererByCompId.set(type.id, this.defaultRenderer);\n }\n return this.defaultRenderer;\n }\n }\n }\n\n begin() {}\n end() {}\n}\n\nclass DefaultDomRenderer2 implements Renderer2 {\n data: {[key: string]: any} = Object.create(null);\n\n constructor(private eventManager: EventManager) {}\n\n destroy(): void {}\n\n destroyNode: null;\n\n createElement(name: string, namespace?: string): any {\n if (namespace) {\n return document.createElementNS(NAMESPACE_URIS[namespace], name);\n }\n\n return document.createElement(name);\n }\n\n createComment(value: string): any { return document.createComment(value); }\n\n createText(value: string): any { return document.createTextNode(value); }\n\n appendChild(parent: any, newChild: any): void { parent.appendChild(newChild); }\n\n insertBefore(parent: any, newChild: any, refChild: any): void {\n if (parent) {\n parent.insertBefore(newChild, refChild);\n }\n }\n\n removeChild(parent: any, oldChild: any): void {\n if (parent) {\n parent.removeChild(oldChild);\n }\n }\n\n selectRootElement(selectorOrNode: string|any, preserveContent?: boolean): any {\n let el: any = typeof selectorOrNode === 'string' ? document.querySelector(selectorOrNode) :\n selectorOrNode;\n if (!el) {\n throw new Error(`The selector \"${selectorOrNode}\" did not match any elements`);\n }\n if (!preserveContent) {\n el.textContent = '';\n }\n return el;\n }\n\n parentNode(node: any): any { return node.parentNode; }\n\n nextSibling(node: any): any { return node.nextSibling; }\n\n setAttribute(el: any, name: string, value: string, namespace?: string): void {\n if (namespace) {\n name = `${namespace}:${name}`;\n const namespaceUri = NAMESPACE_URIS[namespace];\n if (namespaceUri) {\n el.setAttributeNS(namespaceUri, name, value);\n } else {\n el.setAttribute(name, value);\n }\n } else {\n el.setAttribute(name, value);\n }\n }\n\n removeAttribute(el: any, name: string, namespace?: string): void {\n if (namespace) {\n const namespaceUri = NAMESPACE_URIS[namespace];\n if (namespaceUri) {\n el.removeAttributeNS(namespaceUri, name);\n } else {\n el.removeAttribute(`${namespace}:${name}`);\n }\n } else {\n el.removeAttribute(name);\n }\n }\n\n addClass(el: any, name: string): void { el.classList.add(name); }\n\n removeClass(el: any, name: string): void { el.classList.remove(name); }\n\n setStyle(el: any, style: string, value: any, flags: RendererStyleFlags2): void {\n if (flags & RendererStyleFlags2.DashCase) {\n el.style.setProperty(\n style, value, !!(flags & RendererStyleFlags2.Important) ? 'important' : '');\n } else {\n el.style[style] = value;\n }\n }\n\n removeStyle(el: any, style: string, flags: RendererStyleFlags2): void {\n if (flags & RendererStyleFlags2.DashCase) {\n el.style.removeProperty(style);\n } else {\n // IE requires '' instead of null\n // see https://github.com/angular/angular/issues/7916\n el.style[style] = '';\n }\n }\n\n setProperty(el: any, name: string, value: any): void {\n checkNoSyntheticProp(name, 'property');\n el[name] = value;\n }\n\n setValue(node: any, value: string): void { node.nodeValue = value; }\n\n listen(target: 'window'|'document'|'body'|any, event: string, callback: (event: any) => boolean):\n () => void {\n checkNoSyntheticProp(event, 'listener');\n if (typeof target === 'string') {\n return <() => void>this.eventManager.addGlobalEventListener(\n target, event, decoratePreventDefault(callback));\n }\n return <() => void>this.eventManager.addEventListener(\n target, event, decoratePreventDefault(callback)) as() => void;\n }\n}\n\nconst AT_CHARCODE = '@'.charCodeAt(0);\nfunction checkNoSyntheticProp(name: string, nameKind: string) {\n if (name.charCodeAt(0) === AT_CHARCODE) {\n throw new Error(\n `Found the synthetic ${nameKind} ${name}. Please include either \"BrowserAnimationsModule\" or \"NoopAnimationsModule\" in your application.`);\n }\n}\n\nclass EmulatedEncapsulationDomRenderer2 extends DefaultDomRenderer2 {\n private contentAttr: string;\n private hostAttr: string;\n\n constructor(\n eventManager: EventManager, sharedStylesHost: DomSharedStylesHost,\n private component: RendererType2) {\n super(eventManager);\n const styles = flattenStyles(component.id, component.styles, []);\n sharedStylesHost.addStyles(styles);\n\n this.contentAttr = shimContentAttribute(component.id);\n this.hostAttr = shimHostAttribute(component.id);\n }\n\n applyToHost(element: any) { super.setAttribute(element, this.hostAttr, ''); }\n\n createElement(parent: any, name: string): Element {\n const el = super.createElement(parent, name);\n super.setAttribute(el, this.contentAttr, '');\n return el;\n }\n}\n\nclass ShadowDomRenderer extends DefaultDomRenderer2 {\n private shadowRoot: any;\n\n constructor(\n eventManager: EventManager, private sharedStylesHost: DomSharedStylesHost,\n private hostEl: any, private component: RendererType2) {\n super(eventManager);\n if (component.encapsulation === ViewEncapsulation.ShadowDom) {\n this.shadowRoot = (hostEl as any).attachShadow({mode: 'open'});\n } else {\n this.shadowRoot = (hostEl as any).createShadowRoot();\n }\n this.sharedStylesHost.addHost(this.shadowRoot);\n const styles = flattenStyles(component.id, component.styles, []);\n for (let i = 0; i < styles.length; i++) {\n const styleEl = document.createElement('style');\n styleEl.textContent = styles[i];\n this.shadowRoot.appendChild(styleEl);\n }\n }\n\n private nodeOrShadowRoot(node: any): any { return node === this.hostEl ? this.shadowRoot : node; }\n\n destroy() { this.sharedStylesHost.removeHost(this.shadowRoot); }\n\n appendChild(parent: any, newChild: any): void {\n return super.appendChild(this.nodeOrShadowRoot(parent), newChild);\n }\n insertBefore(parent: any, newChild: any, refChild: any): void {\n return super.insertBefore(this.nodeOrShadowRoot(parent), newChild, refChild);\n }\n removeChild(parent: any, oldChild: any): void {\n return super.removeChild(this.nodeOrShadowRoot(parent), oldChild);\n }\n parentNode(node: any): any {\n return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(node)));\n }\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {isPlatformServer} from '@angular/common';\nimport {Inject, Injectable, NgZone, Optional, PLATFORM_ID} from '@angular/core';\n\n\nimport {DOCUMENT} from '../dom_tokens';\n\nimport {EventManagerPlugin} from './event_manager';\n\n/**\n * Detect if Zone is present. If it is then use simple zone aware 'addEventListener'\n * since Angular can do much more\n * efficient bookkeeping than Zone can, because we have additional information. This speeds up\n * addEventListener by 3x.\n */\nconst __symbol__ =\n (typeof Zone !== 'undefined') && (Zone as any)['__symbol__'] || function(v: string): string {\n return '__zone_symbol__' + v;\n };\nconst ADD_EVENT_LISTENER: 'addEventListener' = __symbol__('addEventListener');\nconst REMOVE_EVENT_LISTENER: 'removeEventListener' = __symbol__('removeEventListener');\n\nconst symbolNames: {[key: string]: string} = {};\n\nconst FALSE = 'FALSE';\nconst ANGULAR = 'ANGULAR';\nconst NATIVE_ADD_LISTENER = 'addEventListener';\nconst NATIVE_REMOVE_LISTENER = 'removeEventListener';\n\n// use the same symbol string which is used in zone.js\nconst stopSymbol = '__zone_symbol__propagationStopped';\nconst stopMethodSymbol = '__zone_symbol__stopImmediatePropagation';\n\nconst blackListedEvents: string[] =\n (typeof Zone !== 'undefined') && (Zone as any)[__symbol__('BLACK_LISTED_EVENTS')];\nlet blackListedMap: {[eventName: string]: string};\nif (blackListedEvents) {\n blackListedMap = {};\n blackListedEvents.forEach(eventName => { blackListedMap[eventName] = eventName; });\n}\n\nconst isBlackListedEvent = function(eventName: string) {\n if (!blackListedMap) {\n return false;\n }\n return blackListedMap.hasOwnProperty(eventName);\n};\n\ninterface TaskData {\n zone: any;\n handler: Function;\n}\n\n// a global listener to handle all dom event,\n// so we do not need to create a closure every time\nconst globalListener = function(event: Event) {\n const symbolName = symbolNames[event.type];\n if (!symbolName) {\n return;\n }\n const taskDatas: TaskData[] = this[symbolName];\n if (!taskDatas) {\n return;\n }\n const args: any = [event];\n if (taskDatas.length === 1) {\n // if taskDatas only have one element, just invoke it\n const taskData = taskDatas[0];\n if (taskData.zone !== Zone.current) {\n // only use Zone.run when Zone.current not equals to stored zone\n return taskData.zone.run(taskData.handler, this, args);\n } else {\n return taskData.handler.apply(this, args);\n }\n } else {\n // copy tasks as a snapshot to avoid event handlers remove\n // itself or others\n const copiedTasks = taskDatas.slice();\n for (let i = 0; i < copiedTasks.length; i++) {\n // if other listener call event.stopImmediatePropagation\n // just break\n if ((event as any)[stopSymbol] === true) {\n break;\n }\n const taskData = copiedTasks[i];\n if (taskData.zone !== Zone.current) {\n // only use Zone.run when Zone.current not equals to stored zone\n taskData.zone.run(taskData.handler, this, args);\n } else {\n taskData.handler.apply(this, args);\n }\n }\n }\n};\n\n@Injectable()\nexport class DomEventsPlugin extends EventManagerPlugin {\n constructor(\n @Inject(DOCUMENT) doc: any, private ngZone: NgZone,\n @Optional() @Inject(PLATFORM_ID) platformId: {}|null) {\n super(doc);\n\n if (!platformId || !isPlatformServer(platformId)) {\n this.patchEvent();\n }\n }\n\n private patchEvent() {\n if (typeof Event === 'undefined' || !Event || !Event.prototype) {\n return;\n }\n if ((Event.prototype as any)[stopMethodSymbol]) {\n // already patched by zone.js\n return;\n }\n const delegate = (Event.prototype as any)[stopMethodSymbol] =\n Event.prototype.stopImmediatePropagation;\n Event.prototype.stopImmediatePropagation = function() {\n if (this) {\n this[stopSymbol] = true;\n }\n\n // should call native delegate in case\n // in some environment part of the application\n // will not use the patched Event\n delegate && delegate.apply(this, arguments);\n };\n }\n\n // This plugin should come last in the list of plugins, because it accepts all\n // events.\n supports(eventName: string): boolean { return true; }\n\n addEventListener(element: HTMLElement, eventName: string, handler: Function): Function {\n /**\n * This code is about to add a listener to the DOM. If Zone.js is present, than\n * `addEventListener` has been patched. The patched code adds overhead in both\n * memory and speed (3x slower) than native. For this reason if we detect that\n * Zone.js is present we use a simple version of zone aware addEventListener instead.\n * The result is faster registration and the zone will be restored.\n * But ZoneSpec.onScheduleTask, ZoneSpec.onInvokeTask, ZoneSpec.onCancelTask\n * will not be invoked\n * We also do manual zone restoration in element.ts renderEventHandlerClosure method.\n *\n * NOTE: it is possible that the element is from different iframe, and so we\n * have to check before we execute the method.\n */\n const self = this;\n const zoneJsLoaded = element[ADD_EVENT_LISTENER];\n let callback: EventListener = handler as EventListener;\n // if zonejs is loaded and current zone is not ngZone\n // we keep Zone.current on target for later restoration.\n if (zoneJsLoaded && (!NgZone.isInAngularZone() || isBlackListedEvent(eventName))) {\n let symbolName = symbolNames[eventName];\n if (!symbolName) {\n symbolName = symbolNames[eventName] = __symbol__(ANGULAR + eventName + FALSE);\n }\n let taskDatas: TaskData[] = (element as any)[symbolName];\n const globalListenerRegistered = taskDatas && taskDatas.length > 0;\n if (!taskDatas) {\n taskDatas = (element as any)[symbolName] = [];\n }\n\n const zone = isBlackListedEvent(eventName) ? Zone.root : Zone.current;\n if (taskDatas.length === 0) {\n taskDatas.push({zone: zone, handler: callback});\n } else {\n let callbackRegistered = false;\n for (let i = 0; i < taskDatas.length; i++) {\n if (taskDatas[i].handler === callback) {\n callbackRegistered = true;\n break;\n }\n }\n if (!callbackRegistered) {\n taskDatas.push({zone: zone, handler: callback});\n }\n }\n\n if (!globalListenerRegistered) {\n element[ADD_EVENT_LISTENER](eventName, globalListener, false);\n }\n } else {\n element[NATIVE_ADD_LISTENER](eventName, callback, false);\n }\n return () => this.removeEventListener(element, eventName, callback);\n }\n\n removeEventListener(target: any, eventName: string, callback: Function): void {\n let underlyingRemove = target[REMOVE_EVENT_LISTENER];\n // zone.js not loaded, use native removeEventListener\n if (!underlyingRemove) {\n return target[NATIVE_REMOVE_LISTENER].apply(target, [eventName, callback, false]);\n }\n let symbolName = symbolNames[eventName];\n let taskDatas: TaskData[] = symbolName && target[symbolName];\n if (!taskDatas) {\n // addEventListener not using patched version\n // just call native removeEventListener\n return target[NATIVE_REMOVE_LISTENER].apply(target, [eventName, callback, false]);\n }\n // fix issue 20532, should be able to remove\n // listener which was added inside of ngZone\n let found = false;\n for (let i = 0; i < taskDatas.length; i++) {\n // remove listener from taskDatas if the callback equals\n if (taskDatas[i].handler === callback) {\n found = true;\n taskDatas.splice(i, 1);\n break;\n }\n }\n if (found) {\n if (taskDatas.length === 0) {\n // all listeners are removed, we can remove the globalListener from target\n underlyingRemove.apply(target, [eventName, globalListener, false]);\n }\n } else {\n // not found in taskDatas, the callback may be added inside of ngZone\n // use native remove listener to remove the callback\n target[NATIVE_REMOVE_LISTENER].apply(target, [eventName, callback, false]);\n }\n }\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Inject, Injectable, InjectionToken, Optional, ɵConsole as Console} from '@angular/core';\n\nimport {DOCUMENT} from '../dom_tokens';\n\nimport {EventManagerPlugin} from './event_manager';\n\n/**\n * Supported HammerJS recognizer event names.\n */\nconst EVENT_NAMES = {\n // pan\n 'pan': true,\n 'panstart': true,\n 'panmove': true,\n 'panend': true,\n 'pancancel': true,\n 'panleft': true,\n 'panright': true,\n 'panup': true,\n 'pandown': true,\n // pinch\n 'pinch': true,\n 'pinchstart': true,\n 'pinchmove': true,\n 'pinchend': true,\n 'pinchcancel': true,\n 'pinchin': true,\n 'pinchout': true,\n // press\n 'press': true,\n 'pressup': true,\n // rotate\n 'rotate': true,\n 'rotatestart': true,\n 'rotatemove': true,\n 'rotateend': true,\n 'rotatecancel': true,\n // swipe\n 'swipe': true,\n 'swipeleft': true,\n 'swiperight': true,\n 'swipeup': true,\n 'swipedown': true,\n // tap\n 'tap': true,\n};\n\n/**\n * DI token for providing [HammerJS](http://hammerjs.github.io/) support to Angular.\n * @see `HammerGestureConfig`\n *\n * @publicApi\n */\nexport const HAMMER_GESTURE_CONFIG = new InjectionToken<HammerGestureConfig>('HammerGestureConfig');\n\n\n/**\n * Function that loads HammerJS, returning a promise that is resolved once HammerJs is loaded.\n *\n * @publicApi\n */\nexport type HammerLoader = () => Promise<void>;\n\n/**\n * Injection token used to provide a {@link HammerLoader} to Angular.\n *\n * @publicApi\n */\nexport const HAMMER_LOADER = new InjectionToken<HammerLoader>('HammerLoader');\n\nexport interface HammerInstance {\n on(eventName: string, callback?: Function): void;\n off(eventName: string, callback?: Function): void;\n destroy?(): void;\n}\n\n/**\n * An injectable [HammerJS Manager](http://hammerjs.github.io/api/#hammer.manager)\n * for gesture recognition. Configures specific event recognition.\n * @publicApi\n */\n@Injectable()\nexport class HammerGestureConfig {\n /**\n * A set of supported event names for gestures to be used in Angular.\n * Angular supports all built-in recognizers, as listed in\n * [HammerJS documentation](http://hammerjs.github.io/).\n */\n events: string[] = [];\n\n /**\n * Maps gesture event names to a set of configuration options\n * that specify overrides to the default values for specific properties.\n *\n * The key is a supported event name to be configured,\n * and the options object contains a set of properties, with override values\n * to be applied to the named recognizer event.\n * For example, to disable recognition of the rotate event, specify\n * `{\"rotate\": {\"enable\": false}}`.\n *\n * Properties that are not present take the HammerJS default values.\n * For information about which properties are supported for which events,\n * and their allowed and default values, see\n * [HammerJS documentation](http://hammerjs.github.io/).\n *\n */\n overrides: {[key: string]: Object} = {};\n\n /**\n * Properties whose default values can be overridden for a given event.\n * Different sets of properties apply to different events.\n * For information about which properties are supported for which events,\n * and their allowed and default values, see\n * [HammerJS documentation](http://hammerjs.github.io/).\n */\n options?: {\n cssProps?: any; domEvents?: boolean; enable?: boolean | ((manager: any) => boolean);\n preset?: any[];\n touchAction?: string;\n recognizers?: any[];\n inputClass?: any;\n inputTarget?: EventTarget;\n };\n\n /**\n * Creates a [HammerJS Manager](http://hammerjs.github.io/api/#hammer.manager)\n * and attaches it to a given HTML element.\n * @param element The element that will recognize gestures.\n * @returns A HammerJS event-manager object.\n */\n buildHammer(element: HTMLElement): HammerInstance {\n const mc = new Hammer !(element, this.options);\n\n mc.get('pinch').set({enable: true});\n mc.get('rotate').set({enable: true});\n\n for (const eventName in this.overrides) {\n mc.get(eventName).set(this.overrides[eventName]);\n }\n\n return mc;\n }\n}\n\n@Injectable()\nexport class HammerGesturesPlugin extends EventManagerPlugin {\n constructor(\n @Inject(DOCUMENT) doc: any,\n @Inject(HAMMER_GESTURE_CONFIG) private _config: HammerGestureConfig, private console: Console,\n @Optional() @Inject(HAMMER_LOADER) private loader?: HammerLoader|null) {\n super(doc);\n }\n\n supports(eventName: string): boolean {\n if (!EVENT_NAMES.hasOwnProperty(eventName.toLowerCase()) && !this.isCustomEvent(eventName)) {\n return false;\n }\n\n if (!(window as any).Hammer && !this.loader) {\n this.console.warn(\n `The \"${eventName}\" event cannot be bound because Hammer.JS is not ` +\n `loaded and no custom loader has been specified.`);\n return false;\n }\n\n return true;\n }\n\n addEventListener(element: HTMLElement, eventName: string, handler: Function): Function {\n const zone = this.manager.getZone();\n eventName = eventName.toLowerCase();\n\n // If Hammer is not present but a loader is specified, we defer adding the event listener\n // until Hammer is loaded.\n if (!(window as any).Hammer && this.loader) {\n // This `addEventListener` method returns a function to remove the added listener.\n // Until Hammer is loaded, the returned function needs to *cancel* the registration rather\n // than remove anything.\n let cancelRegistration = false;\n let deregister: Function = () => { cancelRegistration = true; };\n\n this.loader()\n .then(() => {\n // If Hammer isn't actually loaded when the custom loader resolves, give up.\n if (!(window as any).Hammer) {\n this.console.warn(\n `The custom HAMMER_LOADER completed, but Hammer.JS is not present.`);\n deregister = () => {};\n return;\n }\n\n if (!cancelRegistration) {\n // Now that Hammer is loaded and the listener is being loaded for real,\n // the deregistration function changes from canceling registration to removal.\n deregister = this.addEventListener(element, eventName, handler);\n }\n })\n .catch(() => {\n this.console.warn(\n `The \"${eventName}\" event cannot be bound because the custom ` +\n `Hammer.JS loader failed.`);\n deregister = () => {};\n });\n\n // Return a function that *executes* `deregister` (and not `deregister` itself) so that we\n // can change the behavior of `deregister` once the listener is added. Using a closure in\n // this way allows us to avoid any additional data structures to track listener removal.\n return () => { deregister(); };\n }\n\n return zone.runOutsideAngular(() => {\n // Creating the manager bind events, must be done outside of angular\n const mc = this._config.buildHammer(element);\n const callback = function(eventObj: HammerInput) {\n zone.runGuarded(function() { handler(eventObj); });\n };\n mc.on(eventName, callback);\n return () => {\n mc.off(eventName, callback);\n // destroy mc to prevent memory leak\n if (typeof mc.destroy === 'function') {\n mc.destroy();\n }\n };\n });\n }\n\n isCustomEvent(eventName: string): boolean { return this._config.events.indexOf(eventName) > -1; }\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Inject, Injectable, NgZone} from '@angular/core';\n\nimport {getDOM} from '../dom_adapter';\nimport {DOCUMENT} from '../dom_tokens';\n\nimport {EventManagerPlugin} from './event_manager';\n\n/**\n * Defines supported modifiers for key events.\n */\nconst MODIFIER_KEYS = ['alt', 'control', 'meta', 'shift'];\n\n/**\n * Retrieves modifiers from key-event objects.\n */\nconst MODIFIER_KEY_GETTERS: {[key: string]: (event: KeyboardEvent) => boolean} = {\n 'alt': (event: KeyboardEvent) => event.altKey,\n 'control': (event: KeyboardEvent) => event.ctrlKey,\n 'meta': (event: KeyboardEvent) => event.metaKey,\n 'shift': (event: KeyboardEvent) => event.shiftKey\n};\n\n/**\n * @publicApi\n * A browser plug-in that provides support for handling of key events in Angular.\n */\n@Injectable()\nexport class KeyEventsPlugin extends EventManagerPlugin {\n /**\n * Initializes an instance of the browser plug-in.\n * @param doc The document in which key events will be detected.\n */\n constructor(@Inject(DOCUMENT) doc: any) { super(doc); }\n\n /**\n * Reports whether a named key event is supported.\n * @param eventName The event name to query.\n * @return True if the named key event is supported.\n */\n supports(eventName: string): boolean { return KeyEventsPlugin.parseEventName(eventName) != null; }\n\n /**\n * Registers a handler for a specific element and key event.\n * @param element The HTML element to receive event notifications.\n * @param eventName The name of the key event to listen for.\n * @param handler A function to call when the notification occurs. Receives the\n * event object as an argument.\n * @returns The key event that was registered.\n */\n addEventListener(element: HTMLElement, eventName: string, handler: Function): Function {\n const parsedEvent = KeyEventsPlugin.parseEventName(eventName) !;\n\n const outsideHandler =\n KeyEventsPlugin.eventCallback(parsedEvent['fullKey'], handler, this.manager.getZone());\n\n return this.manager.getZone().runOutsideAngular(() => {\n return getDOM().onAndCancel(element, parsedEvent['domEventName'], outsideHandler);\n });\n }\n\n static parseEventName(eventName: string): {[key: string]: string}|null {\n const parts: string[] = eventName.toLowerCase().split('.');\n\n const domEventName = parts.shift();\n if ((parts.length === 0) || !(domEventName === 'keydown' || domEventName === 'keyup')) {\n return null;\n }\n\n const key = KeyEventsPlugin._normalizeKey(parts.pop() !);\n\n let fullKey = '';\n MODIFIER_KEYS.forEach(modifierName => {\n const index: number = parts.indexOf(modifierName);\n if (index > -1) {\n parts.splice(index, 1);\n fullKey += modifierName + '.';\n }\n });\n fullKey += key;\n\n if (parts.length != 0 || key.length === 0) {\n // returning null instead of throwing to let another plugin process the event\n return null;\n }\n\n const result: {[k: string]: string} = {};\n result['domEventName'] = domEventName;\n result['fullKey'] = fullKey;\n return result;\n }\n\n static getEventFullKey(event: KeyboardEvent): string {\n let fullKey = '';\n let key = getDOM().getEventKey(event);\n key = key.toLowerCase();\n if (key === ' ') {\n key = 'space'; // for readability\n } else if (key === '.') {\n key = 'dot'; // because '.' is used as a separator in event names\n }\n MODIFIER_KEYS.forEach(modifierName => {\n if (modifierName != key) {\n const modifierGetter = MODIFIER_KEY_GETTERS[modifierName];\n if (modifierGetter(event)) {\n fullKey += modifierName + '.';\n }\n }\n });\n fullKey += key;\n return fullKey;\n }\n\n /**\n * Configures a handler callback for a key event.\n * @param fullKey The event name that combines all simultaneous keystrokes.\n * @param handler The function that responds to the key event.\n * @param zone The zone in which the event occurred.\n * @returns A callback function.\n */\n static eventCallback(fullKey: any, handler: Function, zone: NgZone): Function {\n return (event: any /** TODO #9100 */) => {\n if (KeyEventsPlugin.getEventFullKey(event) === fullKey) {\n zone.runGuarded(() => handler(event));\n }\n };\n }\n\n /** @internal */\n static _normalizeKey(keyName: string): string {\n // TODO: switch to a Map if the mapping grows too much\n switch (keyName) {\n case 'esc':\n return 'escape';\n default:\n return keyName;\n }\n }\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Inject, Injectable, Sanitizer, SecurityContext, ɵ_sanitizeHtml as _sanitizeHtml, ɵ_sanitizeStyle as _sanitizeStyle, ɵ_sanitizeUrl as _sanitizeUrl} from '@angular/core';\n\nimport {DOCUMENT} from '../dom/dom_tokens';\n\nexport {SecurityContext};\n\n\n\n/**\n * Marker interface for a value that's safe to use in a particular context.\n *\n * @publicApi\n */\nexport interface SafeValue {}\n\n/**\n * Marker interface for a value that's safe to use as HTML.\n *\n * @publicApi\n */\nexport interface SafeHtml extends SafeValue {}\n\n/**\n * Marker interface for a value that's safe to use as style (CSS).\n *\n * @publicApi\n */\nexport interface SafeStyle extends SafeValue {}\n\n/**\n * Marker interface for a value that's safe to use as JavaScript.\n *\n * @publicApi\n */\nexport interface SafeScript extends SafeValue {}\n\n/**\n * Marker interface for a value that's safe to use as a URL linking to a document.\n *\n * @publicApi\n */\nexport interface SafeUrl extends SafeValue {}\n\n/**\n * Marker interface for a value that's safe to use as a URL to load executable code from.\n *\n * @publicApi\n */\nexport interface SafeResourceUrl extends SafeValue {}\n\n/**\n * DomSanitizer helps preventing Cross Site Scripting Security bugs (XSS) by sanitizing\n * values to be safe to use in the different DOM contexts.\n *\n * For example, when binding a URL in an `<a [href]=\"someValue\">` hyperlink, `someValue` will be\n * sanitized so that an attacker cannot inject e.g. a `javascript:` URL that would execute code on\n * the website.\n *\n * In specific situations, it might be necessary to disable sanitization, for example if the\n * application genuinely needs to produce a `javascript:` style link with a dynamic value in it.\n * Users can bypass security by constructing a value with one of the `bypassSecurityTrust...`\n * methods, and then binding to that value from the template.\n *\n * These situations should be very rare, and extraordinary care must be taken to avoid creating a\n * Cross Site Scripting (XSS) security bug!\n *\n * When using `bypassSecurityTrust...`, make sure to call the method as early as possible and as\n * close as possible to the source of the value, to make it easy to verify no security bug is\n * created by its use.\n *\n * It is not required (and not recommended) to bypass security if the value is safe, e.g. a URL that\n * does not start with a suspicious protocol, or an HTML snippet that does not contain dangerous\n * code. The sanitizer leaves safe values intact.\n *\n * @security Calling any of the `bypassSecurityTrust...` APIs disables Angular's built-in\n * sanitization for the value passed in. Carefully check and audit all values and code paths going\n * into this call. Make sure any user data is appropriately escaped for this security context.\n * For more detail, see the [Security Guide](http://g.co/ng/security).\n *\n * @publicApi\n */\nexport abstract class DomSanitizer implements Sanitizer {\n /**\n * Sanitizes a value for use in the given SecurityContext.\n *\n * If value is trusted for the context, this method will unwrap the contained safe value and use\n * it directly. Otherwise, value will be sanitized to be safe in the given context, for example\n * by replacing URLs that have an unsafe protocol part (such as `javascript:`). The implementation\n * is responsible to make sure that the value can definitely be safely used in the given context.\n */\n abstract sanitize(context: SecurityContext, value: SafeValue|string|null): string|null;\n\n /**\n * Bypass security and trust the given value to be safe HTML. Only use this when the bound HTML\n * is unsafe (e.g. contains `<script>` tags) and the code should be executed. The sanitizer will\n * leave safe HTML intact, so in most situations this method should not be used.\n *\n * **WARNING:** calling this method with untrusted user data exposes your application to XSS\n * security risks!\n */\n abstract bypassSecurityTrustHtml(value: string): SafeHtml;\n\n /**\n * Bypass security and trust the given value to be safe style value (CSS).\n *\n * **WARNING:** calling this method with untrusted user data exposes your application to XSS\n * security risks!\n */\n abstract bypassSecurityTrustStyle(value: string): SafeStyle;\n\n /**\n * Bypass security and trust the given value to be safe JavaScript.\n *\n * **WARNING:** calling this method with untrusted user data exposes your application to XSS\n * security risks!\n */\n abstract bypassSecurityTrustScript(value: string): SafeScript;\n\n /**\n * Bypass security and trust the given value to be a safe style URL, i.e. a value that can be used\n * in hyperlinks or `<img src>`.\n *\n * **WARNING:** calling this method with untrusted user data exposes your application to XSS\n * security risks!\n */\n abstract bypassSecurityTrustUrl(value: string): SafeUrl;\n\n /**\n * Bypass security and trust the given value to be a safe resource URL, i.e. a location that may\n * be used to load executable code from, like `<script src>`, or `<iframe src>`.\n *\n * **WARNING:** calling this method with untrusted user data exposes your application to XSS\n * security risks!\n */\n abstract bypassSecurityTrustResourceUrl(value: string): SafeResourceUrl;\n}\n\n\n@Injectable()\nexport class DomSanitizerImpl extends DomSanitizer {\n constructor(@Inject(DOCUMENT) private _doc: any) { super(); }\n\n sanitize(ctx: SecurityContext, value: SafeValue|string|null): string|null {\n if (value == null) return null;\n switch (ctx) {\n case SecurityContext.NONE:\n return value as string;\n case SecurityContext.HTML:\n if (value instanceof SafeHtmlImpl) return value.changingThisBreaksApplicationSecurity;\n this.checkNotSafeValue(value, 'HTML');\n return _sanitizeHtml(this._doc, String(value));\n case SecurityContext.STYLE:\n if (value instanceof SafeStyleImpl) return value.changingThisBreaksApplicationSecurity;\n this.checkNotSafeValue(value, 'Style');\n return _sanitizeStyle(value as string);\n case SecurityContext.SCRIPT:\n if (value instanceof SafeScriptImpl) return value.changingThisBreaksApplicationSecurity;\n this.checkNotSafeValue(value, 'Script');\n throw new Error('unsafe value used in a script context');\n case SecurityContext.URL:\n if (value instanceof SafeResourceUrlImpl || value instanceof SafeUrlImpl) {\n // Allow resource URLs in URL contexts, they are strictly more trusted.\n return value.changingThisBreaksApplicationSecurity;\n }\n this.checkNotSafeValue(value, 'URL');\n return _sanitizeUrl(String(value));\n case SecurityContext.RESOURCE_URL:\n if (value instanceof SafeResourceUrlImpl) {\n return value.changingThisBreaksApplicationSecurity;\n }\n this.checkNotSafeValue(value, 'ResourceURL');\n throw new Error(\n 'unsafe value used in a resource URL context (see http://g.co/ng/security#xss)');\n default:\n throw new Error(`Unexpected SecurityContext ${ctx} (see http://g.co/ng/security#xss)`);\n }\n }\n\n private checkNotSafeValue(value: any, expectedType: string) {\n if (value instanceof SafeValueImpl) {\n throw new Error(\n `Required a safe ${expectedType}, got a ${value.getTypeName()} ` +\n `(see http://g.co/ng/security#xss)`);\n }\n }\n\n bypassSecurityTrustHtml(value: string): SafeHtml { return new SafeHtmlImpl(value); }\n bypassSecurityTrustStyle(value: string): SafeStyle { return new SafeStyleImpl(value); }\n bypassSecurityTrustScript(value: string): SafeScript { return new SafeScriptImpl(value); }\n bypassSecurityTrustUrl(value: string): SafeUrl { return new SafeUrlImpl(value); }\n bypassSecurityTrustResourceUrl(value: string): SafeResourceUrl {\n return new SafeResourceUrlImpl(value);\n }\n}\n\nabstract class SafeValueImpl implements SafeValue {\n constructor(public changingThisBreaksApplicationSecurity: string) {\n // empty\n }\n\n abstract getTypeName(): string;\n\n toString() {\n return `SafeValue must use [property]=binding: ${this.changingThisBreaksApplicationSecurity}` +\n ` (see http://g.co/ng/security#xss)`;\n }\n}\n\nclass SafeHtmlImpl extends SafeValueImpl implements SafeHtml {\n getTypeName() { return 'HTML'; }\n}\nclass SafeStyleImpl extends SafeValueImpl implements SafeStyle {\n getTypeName() { return 'Style'; }\n}\nclass SafeScriptImpl extends SafeValueImpl implements SafeScript {\n getTypeName() { return 'Script'; }\n}\nclass SafeUrlImpl extends SafeValueImpl implements SafeUrl {\n getTypeName() { return 'URL'; }\n}\nclass SafeResourceUrlImpl extends SafeValueImpl implements SafeResourceUrl {\n getTypeName() { return 'ResourceURL'; }\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {CommonModule, PlatformLocation, ɵPLATFORM_BROWSER_ID as PLATFORM_BROWSER_ID} from '@angular/common';\nimport {APP_ID, ApplicationModule, ErrorHandler, Inject, ModuleWithProviders, NgModule, NgZone, Optional, PLATFORM_ID, PLATFORM_INITIALIZER, PlatformRef, RendererFactory2, Sanitizer, SkipSelf, StaticProvider, Testability, createPlatformFactory, platformCore, ɵAPP_ROOT as APP_ROOT, ɵConsole as Console} from '@angular/core';\n\nimport {BrowserDomAdapter} from './browser/browser_adapter';\nimport {BrowserPlatformLocation} from './browser/location/browser_platform_location';\nimport {SERVER_TRANSITION_PROVIDERS, TRANSITION_ID} from './browser/server-transition';\nimport {BrowserGetTestability} from './browser/testability';\nimport {ELEMENT_PROBE_PROVIDERS} from './dom/debug/ng_probe';\nimport {DomRendererFactory2} from './dom/dom_renderer';\nimport {DOCUMENT} from './dom/dom_tokens';\nimport {DomEventsPlugin} from './dom/events/dom_events';\nimport {EVENT_MANAGER_PLUGINS, EventManager} from './dom/events/event_manager';\nimport {HAMMER_GESTURE_CONFIG, HAMMER_LOADER, HammerGestureConfig, HammerGesturesPlugin} from './dom/events/hammer_gestures';\nimport {KeyEventsPlugin} from './dom/events/key_events';\nimport {DomSharedStylesHost, SharedStylesHost} from './dom/shared_styles_host';\nimport {DomSanitizer, DomSanitizerImpl} from './security/dom_sanitization_service';\n\nexport const INTERNAL_BROWSER_PLATFORM_PROVIDERS: StaticProvider[] = [\n {provide: PLATFORM_ID, useValue: PLATFORM_BROWSER_ID},\n {provide: PLATFORM_INITIALIZER, useValue: initDomAdapter, multi: true},\n {provide: PlatformLocation, useClass: BrowserPlatformLocation, deps: [DOCUMENT]},\n {provide: DOCUMENT, useFactory: _document, deps: []},\n];\n\n/**\n * @security Replacing built-in sanitization providers exposes the application to XSS risks.\n * Attacker-controlled data introduced by an unsanitized provider could expose your\n * application to XSS risks. For more detail, see the [Security Guide](http://g.co/ng/security).\n * @publicApi\n */\nexport const BROWSER_SANITIZATION_PROVIDERS: StaticProvider[] = [\n {provide: Sanitizer, useExisting: DomSanitizer},\n {provide: DomSanitizer, useClass: DomSanitizerImpl, deps: [DOCUMENT]},\n];\n\n/**\n * @publicApi\n */\nexport const platformBrowser: (extraProviders?: StaticProvider[]) => PlatformRef =\n createPlatformFactory(platformCore, 'browser', INTERNAL_BROWSER_PLATFORM_PROVIDERS);\n\nexport function initDomAdapter() {\n BrowserDomAdapter.makeCurrent();\n BrowserGetTestability.init();\n}\n\nexport function errorHandler(): ErrorHandler {\n return new ErrorHandler();\n}\n\nexport function _document(): any {\n return document;\n}\n\nexport const BROWSER_MODULE_PROVIDERS: StaticProvider[] = [\n BROWSER_SANITIZATION_PROVIDERS,\n {provide: APP_ROOT, useValue: true},\n {provide: ErrorHandler, useFactory: errorHandler, deps: []},\n {\n provide: EVENT_MANAGER_PLUGINS,\n useClass: DomEventsPlugin,\n multi: true,\n deps: [DOCUMENT, NgZone, PLATFORM_ID]\n },\n {provide: EVENT_MANAGER_PLUGINS, useClass: KeyEventsPlugin, multi: true, deps: [DOCUMENT]},\n {\n provide: EVENT_MANAGER_PLUGINS,\n useClass: HammerGesturesPlugin,\n multi: true,\n deps: [DOCUMENT, HAMMER_GESTURE_CONFIG, Console, [new Optional(), HAMMER_LOADER]]\n },\n {provide: HAMMER_GESTURE_CONFIG, useClass: HammerGestureConfig, deps: []},\n {\n provide: DomRendererFactory2,\n useClass: DomRendererFactory2,\n deps: [EventManager, DomSharedStylesHost]\n },\n {provide: RendererFactory2, useExisting: DomRendererFactory2},\n {provide: SharedStylesHost, useExisting: DomSharedStylesHost},\n {provide: DomSharedStylesHost, useClass: DomSharedStylesHost, deps: [DOCUMENT]},\n {provide: Testability, useClass: Testability, deps: [NgZone]},\n {provide: EventManager, useClass: EventManager, deps: [EVENT_MANAGER_PLUGINS, NgZone]},\n ELEMENT_PROBE_PROVIDERS,\n];\n\n/**\n * Exports required infrastructure for all Angular apps.\n * Included by default in all Angular apps created with the CLI\n * `new` command.\n * Re-exports `CommonModule` and `ApplicationModule`, making their\n * exports and providers available to all apps.\n *\n * @publicApi\n */\n@NgModule({providers: BROWSER_MODULE_PROVIDERS, exports: [CommonModule, ApplicationModule]})\nexport class BrowserModule {\n constructor(@Optional() @SkipSelf() @Inject(BrowserModule) parentModule: BrowserModule|null) {\n if (parentModule) {\n throw new Error(\n `BrowserModule has already been loaded. If you need access to common directives such as NgIf and NgFor from a lazy loaded module, import CommonModule instead.`);\n }\n }\n\n /**\n * Configures a browser-based app to transition from a server-rendered app, if\n * one is present on the page.\n *\n * @param params An object containing an identifier for the app to transition.\n * The ID must match between the client and server versions of the app.\n * @returns The reconfigured `BrowserModule` to import into the app's root `AppModule`.\n */\n static withServerTransition(params: {appId: string}): ModuleWithProviders<BrowserModule> {\n return {\n ngModule: BrowserModule,\n providers: [\n {provide: APP_ID, useValue: params.appId},\n {provide: TRANSITION_ID, useExisting: APP_ID},\n SERVER_TRANSITION_PROVIDERS,\n ],\n };\n }\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Inject, Injectable, inject} from '@angular/core';\n\nimport {DomAdapter, getDOM} from '../dom/dom_adapter';\nimport {DOCUMENT} from '../dom/dom_tokens';\n\n\n\n/**\n * Represents a meta element.\n *\n * @publicApi\n */\nexport type MetaDefinition = {\n charset?: string; content?: string; httpEquiv?: string; id?: string; itemprop?: string;\n name?: string;\n property?: string;\n scheme?: string;\n url?: string;\n} &\n{\n // TODO(IgorMinar): this type looks wrong\n [prop: string]: string;\n};\n\n/**\n * Factory to create Meta service.\n */\nexport function createMeta() {\n return new Meta(inject(DOCUMENT));\n}\n\n/**\n * A service that can be used to get and add meta tags.\n *\n * @publicApi\n */\n@Injectable({providedIn: 'root', useFactory: createMeta, deps: []})\nexport class Meta {\n private _dom: DomAdapter;\n constructor(@Inject(DOCUMENT) private _doc: any) { this._dom = getDOM(); }\n\n addTag(tag: MetaDefinition, forceCreation: boolean = false): HTMLMetaElement|null {\n if (!tag) return null;\n return this._getOrCreateElement(tag, forceCreation);\n }\n\n addTags(tags: MetaDefinition[], forceCreation: boolean = false): HTMLMetaElement[] {\n if (!tags) return [];\n return tags.reduce((result: HTMLMetaElement[], tag: MetaDefinition) => {\n if (tag) {\n result.push(this._getOrCreateElement(tag, forceCreation));\n }\n return result;\n }, []);\n }\n\n getTag(attrSelector: string): HTMLMetaElement|null {\n if (!attrSelector) return null;\n return this._dom.querySelector(this._doc, `meta[${attrSelector}]`) || null;\n }\n\n getTags(attrSelector: string): HTMLMetaElement[] {\n if (!attrSelector) return [];\n const list /*NodeList*/ = this._dom.querySelectorAll(this._doc, `meta[${attrSelector}]`);\n return list ? [].slice.call(list) : [];\n }\n\n updateTag(tag: MetaDefinition, selector?: string): HTMLMetaElement|null {\n if (!tag) return null;\n selector = selector || this._parseSelector(tag);\n const meta: HTMLMetaElement = this.getTag(selector) !;\n if (meta) {\n return this._setMetaElementAttributes(tag, meta);\n }\n return this._getOrCreateElement(tag, true);\n }\n\n removeTag(attrSelector: string): void { this.removeTagElement(this.getTag(attrSelector) !); }\n\n removeTagElement(meta: HTMLMetaElement): void {\n if (meta) {\n this._dom.remove(meta);\n }\n }\n\n private _getOrCreateElement(meta: MetaDefinition, forceCreation: boolean = false):\n HTMLMetaElement {\n if (!forceCreation) {\n const selector: string = this._parseSelector(meta);\n const elem: HTMLMetaElement = this.getTag(selector) !;\n // It's allowed to have multiple elements with the same name so it's not enough to\n // just check that element with the same name already present on the page. We also need to\n // check if element has tag attributes\n if (elem && this._containsAttributes(meta, elem)) return elem;\n }\n const element: HTMLMetaElement = this._dom.createElement('meta') as HTMLMetaElement;\n this._setMetaElementAttributes(meta, element);\n const head = this._dom.getElementsByTagName(this._doc, 'head')[0];\n this._dom.appendChild(head, element);\n return element;\n }\n\n private _setMetaElementAttributes(tag: MetaDefinition, el: HTMLMetaElement): HTMLMetaElement {\n Object.keys(tag).forEach((prop: string) => this._dom.setAttribute(el, prop, tag[prop]));\n return el;\n }\n\n private _parseSelector(tag: MetaDefinition): string {\n const attr: string = tag.name ? 'name' : 'property';\n return `${attr}=\"${tag[attr]}\"`;\n }\n\n private _containsAttributes(tag: MetaDefinition, elem: HTMLMetaElement): boolean {\n return Object.keys(tag).every((key: string) => this._dom.getAttribute(elem, key) === tag[key]);\n }\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {Inject, Injectable, inject} from '@angular/core';\n\nimport {getDOM} from '../dom/dom_adapter';\nimport {DOCUMENT} from '../dom/dom_tokens';\n\n/**\n * Factory to create Title service.\n */\nexport function createTitle() {\n return new Title(inject(DOCUMENT));\n}\n\n/**\n * A service that can be used to get and set the title of a current HTML document.\n *\n * Since an Angular application can't be bootstrapped on the entire HTML document (`<html>` tag)\n * it is not possible to bind to the `text` property of the `HTMLTitleElement` elements\n * (representing the `<title>` tag). Instead, this service can be used to set and get the current\n * title value.\n *\n * @publicApi\n */\n@Injectable({providedIn: 'root', useFactory: createTitle, deps: []})\nexport class Title {\n constructor(@Inject(DOCUMENT) private _doc: any) {}\n /**\n * Get the title of the current HTML document.\n */\n getTitle(): string { return getDOM().getTitle(this._doc); }\n\n /**\n * Set the title of the current HTML document.\n * @param newTitle\n */\n setTitle(newTitle: string) { getDOM().setTitle(this._doc, newTitle); }\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nconst win = typeof window !== 'undefined' && window || <any>{};\nexport {win as window};\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {ApplicationRef, ComponentRef} from '@angular/core';\nimport {getDOM} from '../../dom/dom_adapter';\nimport {window} from './browser';\n\nexport class ChangeDetectionPerfRecord {\n constructor(public msPerTick: number, public numTicks: number) {}\n}\n\n/**\n * Entry point for all Angular profiling-related debug tools. This object\n * corresponds to the `ng.profiler` in the dev console.\n */\nexport class AngularProfiler {\n appRef: ApplicationRef;\n\n constructor(ref: ComponentRef<any>) { this.appRef = ref.injector.get(ApplicationRef); }\n\n // tslint:disable:no-console\n /**\n * Exercises change detection in a loop and then prints the average amount of\n * time in milliseconds how long a single round of change detection takes for\n * the current state of the UI. It runs a minimum of 5 rounds for a minimum\n * of 500 milliseconds.\n *\n * Optionally, a user may pass a `config` parameter containing a map of\n * options. Supported options are:\n *\n * `record` (boolean) - causes the profiler to record a CPU profile while\n * it exercises the change detector. Example:\n *\n * ```\n * ng.profiler.timeChangeDetection({record: true})\n * ```\n */\n timeChangeDetection(config: any): ChangeDetectionPerfRecord {\n const record = config && config['record'];\n const profileName = 'Change Detection';\n // Profiler is not available in Android browsers, nor in IE 9 without dev tools opened\n const isProfilerAvailable = window.console.profile != null;\n if (record && isProfilerAvailable) {\n window.console.profile(profileName);\n }\n const start = getDOM().performanceNow();\n let numTicks = 0;\n while (numTicks < 5 || (getDOM().performanceNow() - start) < 500) {\n this.appRef.tick();\n numTicks++;\n }\n const end = getDOM().performanceNow();\n if (record && isProfilerAvailable) {\n window.console.profileEnd(profileName);\n }\n const msPerTick = (end - start) / numTicks;\n window.console.log(`ran ${numTicks} change detection cycles`);\n window.console.log(`${msPerTick.toFixed(2)} ms per check`);\n\n return new ChangeDetectionPerfRecord(msPerTick, numTicks);\n }\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {ComponentRef} from '@angular/core';\nimport {exportNgVar} from '../../dom/util';\nimport {AngularProfiler} from './common_tools';\n\nconst PROFILER_GLOBAL_NAME = 'profiler';\n\n/**\n * Enabled Angular debug tools that are accessible via your browser's\n * developer console.\n *\n * Usage:\n *\n * 1. Open developer console (e.g. in Chrome Ctrl + Shift + j)\n * 1. Type `ng.` (usually the console will show auto-complete suggestion)\n * 1. Try the change detection profiler `ng.profiler.timeChangeDetection()`\n * then hit Enter.\n *\n * @publicApi\n */\nexport function enableDebugTools<T>(ref: ComponentRef<T>): ComponentRef<T> {\n exportNgVar(PROFILER_GLOBAL_NAME, new AngularProfiler(ref));\n return ref;\n}\n\n/**\n * Disables Angular tools.\n *\n * @publicApi\n */\nexport function disableDebugTools(): void {\n exportNgVar(PROFILER_GLOBAL_NAME, null);\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {APP_ID, Injectable, NgModule} from '@angular/core';\nimport {DOCUMENT} from '../dom/dom_tokens';\n\nexport function escapeHtml(text: string): string {\n const escapedText: {[k: string]: string} = {\n '&': '&a;',\n '\"': '&q;',\n '\\'': '&s;',\n '<': '&l;',\n '>': '&g;',\n };\n return text.replace(/[&\"'<>]/g, s => escapedText[s]);\n}\n\nexport function unescapeHtml(text: string): string {\n const unescapedText: {[k: string]: string} = {\n '&a;': '&',\n '&q;': '\"',\n '&s;': '\\'',\n '&l;': '<',\n '&g;': '>',\n };\n return text.replace(/&[^;]+;/g, s => unescapedText[s]);\n}\n\n/**\n * A type-safe key to use with `TransferState`.\n *\n * Example:\n *\n * ```\n * const COUNTER_KEY = makeStateKey<number>('counter');\n * let value = 10;\n *\n * transferState.set(COUNTER_KEY, value);\n * ```\n *\n * @publicApi\n */\nexport type StateKey<T> = string & {__not_a_string: never};\n\n/**\n * Create a `StateKey<T>` that can be used to store value of type T with `TransferState`.\n *\n * Example:\n *\n * ```\n * const COUNTER_KEY = makeStateKey<number>('counter');\n * let value = 10;\n *\n * transferState.set(COUNTER_KEY, value);\n * ```\n *\n * @publicApi\n */\nexport function makeStateKey<T = void>(key: string): StateKey<T> {\n return key as StateKey<T>;\n}\n\n/**\n * A key value store that is transferred from the application on the server side to the application\n * on the client side.\n *\n * `TransferState` will be available as an injectable token. To use it import\n * `ServerTransferStateModule` on the server and `BrowserTransferStateModule` on the client.\n *\n * The values in the store are serialized/deserialized using JSON.stringify/JSON.parse. So only\n * boolean, number, string, null and non-class objects will be serialized and deserialzied in a\n * non-lossy manner.\n *\n * @publicApi\n */\n@Injectable()\nexport class TransferState {\n private store: {[k: string]: {} | undefined} = {};\n private onSerializeCallbacks: {[k: string]: () => {} | undefined} = {};\n\n /** @internal */\n static init(initState: {}) {\n const transferState = new TransferState();\n transferState.store = initState;\n return transferState;\n }\n\n /**\n * Get the value corresponding to a key. Return `defaultValue` if key is not found.\n */\n get<T>(key: StateKey<T>, defaultValue: T): T {\n return this.store[key] !== undefined ? this.store[key] as T : defaultValue;\n }\n\n /**\n * Set the value corresponding to a key.\n */\n set<T>(key: StateKey<T>, value: T): void { this.store[key] = value; }\n\n /**\n * Remove a key from the store.\n */\n remove<T>(key: StateKey<T>): void { delete this.store[key]; }\n\n /**\n * Test whether a key exists in the store.\n */\n hasKey<T>(key: StateKey<T>) { return this.store.hasOwnProperty(key); }\n\n /**\n * Register a callback to provide the value for a key when `toJson` is called.\n */\n onSerialize<T>(key: StateKey<T>, callback: () => T): void {\n this.onSerializeCallbacks[key] = callback;\n }\n\n /**\n * Serialize the current state of the store to JSON.\n */\n toJson(): string {\n // Call the onSerialize callbacks and put those values into the store.\n for (const key in this.onSerializeCallbacks) {\n if (this.onSerializeCallbacks.hasOwnProperty(key)) {\n try {\n this.store[key] = this.onSerializeCallbacks[key]();\n } catch (e) {\n console.warn('Exception in onSerialize callback: ', e);\n }\n }\n }\n return JSON.stringify(this.store);\n }\n}\n\nexport function initTransferState(doc: Document, appId: string) {\n // Locate the script tag with the JSON data transferred from the server.\n // The id of the script tag is set to the Angular appId + 'state'.\n const script = doc.getElementById(appId + '-state');\n let initialState = {};\n if (script && script.textContent) {\n try {\n initialState = JSON.parse(unescapeHtml(script.textContent));\n } catch (e) {\n console.warn('Exception while restoring TransferState for app ' + appId, e);\n }\n }\n return TransferState.init(initialState);\n}\n\n/**\n * NgModule to install on the client side while using the `TransferState` to transfer state from\n * server to client.\n *\n * @publicApi\n */\n@NgModule({\n providers: [{provide: TransferState, useFactory: initTransferState, deps: [DOCUMENT, APP_ID]}],\n})\nexport class BrowserTransferStateModule {\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {DebugElement, Predicate, Type} from '@angular/core';\nimport {getDOM} from '../../dom/dom_adapter';\n\n\n\n/**\n * Predicates for use with {@link DebugElement}'s query functions.\n *\n * @publicApi\n */\nexport class By {\n /**\n * Match all elements.\n *\n * @usageNotes\n * ### Example\n *\n * {@example platform-browser/dom/debug/ts/by/by.ts region='by_all'}\n */\n static all(): Predicate<DebugElement> { return (debugElement) => true; }\n\n /**\n * Match elements by the given CSS selector.\n *\n * @usageNotes\n * ### Example\n *\n * {@example platform-browser/dom/debug/ts/by/by.ts region='by_css'}\n */\n static css(selector: string): Predicate<DebugElement> {\n return (debugElement) => {\n return debugElement.nativeElement != null ?\n getDOM().elementMatches(debugElement.nativeElement, selector) :\n false;\n };\n }\n\n /**\n * Match elements that have the given directive present.\n *\n * @usageNotes\n * ### Example\n *\n * {@example platform-browser/dom/debug/ts/by/by.ts region='by_directive'}\n */\n static directive(type: Type<any>): Predicate<DebugElement> {\n return (debugElement) => debugElement.providerTokens !.indexOf(type) !== -1;\n }\n}\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nexport {BROWSER_SANITIZATION_PROVIDERS as ɵBROWSER_SANITIZATION_PROVIDERS, INTERNAL_BROWSER_PLATFORM_PROVIDERS as ɵINTERNAL_BROWSER_PLATFORM_PROVIDERS, initDomAdapter as ɵinitDomAdapter} from './browser';\nexport {BrowserDomAdapter as ɵBrowserDomAdapter} from './browser/browser_adapter';\nexport {BrowserPlatformLocation as ɵBrowserPlatformLocation} from './browser/location/browser_platform_location';\nexport {TRANSITION_ID as ɵTRANSITION_ID} from './browser/server-transition';\nexport {BrowserGetTestability as ɵBrowserGetTestability} from './browser/testability';\nexport {escapeHtml as ɵescapeHtml} from './browser/transfer_state';\nexport {ELEMENT_PROBE_PROVIDERS as ɵELEMENT_PROBE_PROVIDERS} from './dom/debug/ng_probe';\nexport {DomAdapter as ɵDomAdapter, getDOM as ɵgetDOM, setRootDomAdapter as ɵsetRootDomAdapter} from './dom/dom_adapter';\nexport {DomRendererFactory2 as ɵDomRendererFactory2, NAMESPACE_URIS as ɵNAMESPACE_URIS, flattenStyles as ɵflattenStyles, shimContentAttribute as ɵshimContentAttribute, shimHostAttribute as ɵshimHostAttribute} from './dom/dom_renderer';\nexport {DomEventsPlugin as ɵDomEventsPlugin} from './dom/events/dom_events';\nexport {HammerGesturesPlugin as ɵHammerGesturesPlugin} from './dom/events/hammer_gestures';\nexport {KeyEventsPlugin as ɵKeyEventsPlugin} from './dom/events/key_events';\nexport {DomSharedStylesHost as ɵDomSharedStylesHost, SharedStylesHost as ɵSharedStylesHost} from './dom/shared_styles_host';\nexport {DomSanitizerImpl as ɵDomSanitizerImpl} from './security/dom_sanitization_service';\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * @module\n * @description\n * Entry point for all public APIs of the common package.\n */\n\nimport {Version} from '@angular/core';\n\n/**\n * @publicApi\n */\nexport const VERSION = new Version('7.2.8');\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nexport {BrowserModule, platformBrowser} from './browser';\nexport {Meta, MetaDefinition} from './browser/meta';\nexport {Title} from './browser/title';\nexport {disableDebugTools, enableDebugTools} from './browser/tools/tools';\nexport {BrowserTransferStateModule, StateKey, TransferState, makeStateKey} from './browser/transfer_state';\nexport {By} from './dom/debug/by';\nexport {DOCUMENT} from './dom/dom_tokens';\nexport {EVENT_MANAGER_PLUGINS, EventManager} from './dom/events/event_manager';\nexport {HAMMER_GESTURE_CONFIG, HAMMER_LOADER, HammerGestureConfig, HammerLoader} from './dom/events/hammer_gestures';\nexport {DomSanitizer, SafeHtml, SafeResourceUrl, SafeScript, SafeStyle, SafeUrl, SafeValue} from './security/dom_sanitization_service';\n\nexport * from './private_export';\nexport {VERSION} from './version';\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * @module\n * @description\n * Entry point for all public APIs of this package.\n */\nexport * from './src/platform-browser';\n// This file only reexports content of the `src` folder. Keep it that way.\n","/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n// This file is not used to build this module. It is only used during editing\n// by the TypeScript language service and during build for verification. `ngc`\n// replaces this file with production index.ts when it rewrites private symbol\n// names.\n\nexport * from './public_api';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n\nexport {BROWSER_MODULE_PROVIDERS as ɵangular_packages_platform_browser_platform_browser_c,_document as ɵangular_packages_platform_browser_platform_browser_b,errorHandler as ɵangular_packages_platform_browser_platform_browser_a} from './src/browser';\nexport {GenericBrowserDomAdapter as ɵangular_packages_platform_browser_platform_browser_k} from './src/browser/generic_browser_adapter';\nexport {createMeta as ɵangular_packages_platform_browser_platform_browser_d} from './src/browser/meta';\nexport {SERVER_TRANSITION_PROVIDERS as ɵangular_packages_platform_browser_platform_browser_i,appInitializerFactory as ɵangular_packages_platform_browser_platform_browser_h} from './src/browser/server-transition';\nexport {createTitle as ɵangular_packages_platform_browser_platform_browser_e} from './src/browser/title';\nexport {initTransferState as ɵangular_packages_platform_browser_platform_browser_f} from './src/browser/transfer_state';\nexport {_createNgProbe as ɵangular_packages_platform_browser_platform_browser_j} from './src/dom/debug/ng_probe';\nexport {EventManagerPlugin as ɵangular_packages_platform_browser_platform_browser_g} from './src/dom/events/event_manager';"],"names":["tslib_1.__extends","global","parseCookieValue","DOCUMENT","commonDOCUMENT","tslib_1.__param","core.ApplicationRef","core.NgZone","core.getDebugNode","core.APP_INITIALIZER","core.NgProbeToken","core.Optional","Console","_sanitizeHtml","_sanitizeStyle","_sanitizeUrl","PLATFORM_BROWSER_ID","APP_ROOT","window"],"mappings":"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"}
\ No newline at end of file

fesm5/testing.js

@@ -1,5 +1,5 @@
/**
- * @license Angular v7.2.7
+ * @license Angular v7.2.8
* (c) 2010-2019 Google LLC. https://angular.io/
* License: MIT
*/

package.json

@@ -1,6 +1,6 @@
{
"name": "@angular/platform-browser",
- "version": "7.2.7",
+ "version": "7.2.8",
"description": "Angular - library for using Angular in a web browser",
"main": "./bundles/platform-browser.umd.js",
"module": "./fesm5/platform-browser.js",
@@ -16,8 +16,8 @@
"tslib": "^1.9.0"
},
"peerDependencies": {
- "@angular/core": "7.2.7",
- "@angular/common": "7.2.7"
+ "@angular/core": "7.2.8",
+ "@angular/common": "7.2.8"
},
"repository": {
"type": "git",

platform-browser.metadata.json

@@ -1 +1 @@
-{"__symbolic":"module","version":4,"metadata":{"ɵangular_packages_platform_browser_platform_browser_a":{"__symbolic":"function","parameters":[],"value":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"ErrorHandler","line":55,"character":13}}},"ɵangular_packages_platform_browser_platform_browser_b":{"__symbolic":"function","parameters":[],"value":{"__symbolic":"reference","name":"document"}},"ɵangular_packages_platform_browser_platform_browser_c":[{"__symbolic":"reference","name":"ɵBROWSER_SANITIZATION_PROVIDERS"},{"provide":{"__symbolic":"reference","module":"@angular/core","name":"ɵAPP_ROOT","line":64,"character":12},"useValue":true},{"provide":{"__symbolic":"reference","module":"@angular/core","name":"ErrorHandler","line":65,"character":12},"useFactory":{"__symbolic":"reference","name":"ɵangular_packages_platform_browser_platform_browser_a"},"deps":[]},{"provide":{"__symbolic":"reference","name":"EVENT_MANAGER_PLUGINS"},"useClass":{"__symbolic":"reference","name":"ɵDomEventsPlugin"},"multi":true,"deps":[{"__symbolic":"reference","name":"DOCUMENT","module":"@angular/common"},{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":70,"character":21},{"__symbolic":"reference","module":"@angular/core","name":"PLATFORM_ID","line":70,"character":29}]},{"provide":{"__symbolic":"reference","name":"EVENT_MANAGER_PLUGINS"},"useClass":{"__symbolic":"reference","name":"ɵKeyEventsPlugin"},"multi":true,"deps":[{"__symbolic":"reference","name":"DOCUMENT","module":"@angular/common"}]},{"provide":{"__symbolic":"reference","name":"EVENT_MANAGER_PLUGINS"},"useClass":{"__symbolic":"reference","name":"ɵHammerGesturesPlugin"},"multi":true,"deps":[{"__symbolic":"reference","name":"DOCUMENT","module":"@angular/common"},{"__symbolic":"reference","name":"HAMMER_GESTURE_CONFIG"},{"__symbolic":"reference","module":"@angular/core","name":"ɵConsole","line":77,"character":44},[{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":77,"character":58}},{"__symbolic":"reference","name":"HAMMER_LOADER"}]]},{"provide":{"__symbolic":"reference","name":"HAMMER_GESTURE_CONFIG"},"useClass":{"__symbolic":"reference","name":"HammerGestureConfig"},"deps":[]},{"provide":{"__symbolic":"reference","name":"ɵDomRendererFactory2"},"useClass":{"__symbolic":"reference","name":"ɵDomRendererFactory2"},"deps":[{"__symbolic":"reference","name":"EventManager"},{"__symbolic":"reference","name":"ɵDomSharedStylesHost"}]},{"provide":{"__symbolic":"reference","module":"@angular/core","name":"RendererFactory2","line":85,"character":12},"useExisting":{"__symbolic":"reference","name":"ɵDomRendererFactory2"}},{"provide":{"__symbolic":"reference","name":"ɵSharedStylesHost"},"useExisting":{"__symbolic":"reference","name":"ɵDomSharedStylesHost"}},{"provide":{"__symbolic":"reference","name":"ɵDomSharedStylesHost"},"useClass":{"__symbolic":"reference","name":"ɵDomSharedStylesHost"},"deps":[{"__symbolic":"reference","name":"DOCUMENT","module":"@angular/common"}]},{"provide":{"__symbolic":"reference","module":"@angular/core","name":"Testability","line":88,"character":12},"useClass":{"__symbolic":"reference","module":"@angular/core","name":"Testability","line":88,"character":35},"deps":[{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":88,"character":55}]},{"provide":{"__symbolic":"reference","name":"EventManager"},"useClass":{"__symbolic":"reference","name":"EventManager"},"deps":[{"__symbolic":"reference","name":"EVENT_MANAGER_PLUGINS"},{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":89,"character":80}]},{"__symbolic":"reference","name":"ɵELEMENT_PROBE_PROVIDERS"}],"ɵangular_packages_platform_browser_platform_browser_d":{"__symbolic":"function","parameters":[],"value":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"Meta"},"arguments":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"inject","line":36,"character":18},"arguments":[{"__symbolic":"reference","name":"DOCUMENT","module":"@angular/common"}]}]}},"ɵangular_packages_platform_browser_platform_browser_e":{"__symbolic":"function","parameters":[],"value":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"Title"},"arguments":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"inject","line":17,"character":19},"arguments":[{"__symbolic":"reference","name":"DOCUMENT","module":"@angular/common"}]}]}},"ɵangular_packages_platform_browser_platform_browser_f":{"__symbolic":"function"},"ɵangular_packages_platform_browser_platform_browser_g":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"any"}]}],"supports":[{"__symbolic":"method"}],"addEventListener":[{"__symbolic":"method"}],"addGlobalEventListener":[{"__symbolic":"method"}]}},"ɵangular_packages_platform_browser_platform_browser_h":{"__symbolic":"function","parameters":["transitionId","document","injector"],"value":{"__symbolic":"error","message":"Lambda not supported","line":20,"character":9,"module":"./src/browser/server-transition"}},"ɵangular_packages_platform_browser_platform_browser_i":[{"provide":{"__symbolic":"reference","module":"@angular/core","name":"APP_INITIALIZER","line":35,"character":13},"useFactory":{"__symbolic":"reference","name":"ɵangular_packages_platform_browser_platform_browser_h"},"deps":[{"__symbolic":"reference","name":"ɵTRANSITION_ID"},{"__symbolic":"reference","name":"DOCUMENT","module":"@angular/common"},{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":37,"character":36}],"multi":true}],"ɵangular_packages_platform_browser_platform_browser_j":{"__symbolic":"function"},"BrowserModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":102,"character":1},"arguments":[{"providers":{"__symbolic":"reference","name":"ɵangular_packages_platform_browser_platform_browser_c"},"exports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":102,"character":58},{"__symbolic":"reference","module":"@angular/core","name":"ApplicationModule","line":102,"character":72}]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":104,"character":15}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"SkipSelf","line":104,"character":27}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":104,"character":39},"arguments":[{"__symbolic":"reference","name":"BrowserModule"}]}]],"parameters":[{"__symbolic":"reference","name":"BrowserModule"}]}]},"statics":{"withServerTransition":{"__symbolic":"function","parameters":["params"],"value":{"ngModule":{"__symbolic":"reference","name":"BrowserModule"},"providers":[{"provide":{"__symbolic":"reference","module":"@angular/core","name":"APP_ID","line":123,"character":18},"useValue":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"params"},"member":"appId"}},{"provide":{"__symbolic":"reference","name":"ɵTRANSITION_ID"},"useExisting":{"__symbolic":"reference","module":"@angular/core","name":"APP_ID","line":124,"character":46}},{"__symbolic":"reference","name":"ɵangular_packages_platform_browser_platform_browser_i"}]}}}},"platformBrowser":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"createPlatformFactory","line":47,"character":4},"arguments":[{"__symbolic":"reference","module":"@angular/core","name":"platformCore","line":47,"character":26},"browser",{"__symbolic":"reference","name":"ɵINTERNAL_BROWSER_PLATFORM_PROVIDERS"}]},"Meta":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":44,"character":1},"arguments":[{"providedIn":"root","useFactory":{"__symbolic":"reference","name":"ɵangular_packages_platform_browser_platform_browser_d"},"deps":[]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":47,"character":15},"arguments":[{"__symbolic":"reference","name":"DOCUMENT","module":"@angular/common"}]}]],"parameters":[{"__symbolic":"reference","name":"any"}]}],"addTag":[{"__symbolic":"method"}],"addTags":[{"__symbolic":"method"}],"getTag":[{"__symbolic":"method"}],"getTags":[{"__symbolic":"method"}],"updateTag":[{"__symbolic":"method"}],"removeTag":[{"__symbolic":"method"}],"removeTagElement":[{"__symbolic":"method"}],"_getOrCreateElement":[{"__symbolic":"method"}],"_setMetaElementAttributes":[{"__symbolic":"method"}],"_parseSelector":[{"__symbolic":"method"}],"_containsAttributes":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}},"MetaDefinition":{"__symbolic":"interface"},"Title":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":30,"character":1},"arguments":[{"providedIn":"root","useFactory":{"__symbolic":"reference","name":"ɵangular_packages_platform_browser_platform_browser_e"},"deps":[]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":32,"character":15},"arguments":[{"__symbolic":"reference","name":"DOCUMENT","module":"@angular/common"}]}]],"parameters":[{"__symbolic":"reference","name":"any"}]}],"getTitle":[{"__symbolic":"method"}],"setTitle":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}},"disableDebugTools":{"__symbolic":"function"},"enableDebugTools":{"__symbolic":"function"},"BrowserTransferStateModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":160,"character":1},"arguments":[{"providers":[{"provide":{"__symbolic":"reference","name":"TransferState"},"useFactory":{"__symbolic":"reference","name":"ɵangular_packages_platform_browser_platform_browser_f"},"deps":[{"__symbolic":"reference","name":"DOCUMENT","module":"@angular/common"},{"__symbolic":"reference","module":"@angular/core","name":"APP_ID","line":161,"character":87}]}]}]}],"members":{}},"StateKey":{"__symbolic":"interface"},"TransferState":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":80,"character":1}}],"members":{"get":[{"__symbolic":"method"}],"set":[{"__symbolic":"method"}],"remove":[{"__symbolic":"method"}],"hasKey":[{"__symbolic":"method"}],"onSerialize":[{"__symbolic":"method"}],"toJson":[{"__symbolic":"method"}]}},"makeStateKey":{"__symbolic":"function","parameters":["key"],"value":{"__symbolic":"reference","name":"key"}},"By":{"__symbolic":"class","members":{},"statics":{"all":{"__symbolic":"function","parameters":[],"value":{"__symbolic":"error","message":"Lambda not supported","line":27,"character":49,"module":"./src/dom/debug/by"}},"css":{"__symbolic":"function","parameters":["selector"],"value":{"__symbolic":"error","message":"Lambda not supported","line":38,"character":11,"module":"./src/dom/debug/by"}},"directive":{"__symbolic":"function","parameters":["type"],"value":{"__symbolic":"error","message":"Lambda not supported","line":54,"character":11,"module":"./src/dom/debug/by"}}}},"EVENT_MANAGER_PLUGINS":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":18,"character":8},"arguments":["EventManagerPlugins"]},"EventManager":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":26,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":34,"character":15},"arguments":[{"__symbolic":"reference","name":"EVENT_MANAGER_PLUGINS"}]}],null],"parameters":[{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"ɵangular_packages_platform_browser_platform_browser_g"}]},{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":34,"character":91}]}],"addEventListener":[{"__symbolic":"method"}],"addGlobalEventListener":[{"__symbolic":"method"}],"getZone":[{"__symbolic":"method"}],"_findPluginFor":[{"__symbolic":"method"}]}},"HAMMER_GESTURE_CONFIG":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":61,"character":41},"arguments":["HammerGestureConfig"]},"HAMMER_LOADER":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":76,"character":33},"arguments":["HammerLoader"]},"HammerGestureConfig":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":89,"character":1}}],"members":{"buildHammer":[{"__symbolic":"method"}]}},"HammerLoader":{"__symbolic":"interface"},"DomSanitizer":{"__symbolic":"class","members":{"sanitize":[{"__symbolic":"method"}],"bypassSecurityTrustHtml":[{"__symbolic":"method"}],"bypassSecurityTrustStyle":[{"__symbolic":"method"}],"bypassSecurityTrustScript":[{"__symbolic":"method"}],"bypassSecurityTrustUrl":[{"__symbolic":"method"}],"bypassSecurityTrustResourceUrl":[{"__symbolic":"method"}]}},"SafeHtml":{"__symbolic":"interface"},"SafeResourceUrl":{"__symbolic":"interface"},"SafeScript":{"__symbolic":"interface"},"SafeStyle":{"__symbolic":"interface"},"SafeUrl":{"__symbolic":"interface"},"SafeValue":{"__symbolic":"interface"},"ɵBROWSER_SANITIZATION_PROVIDERS":[{"provide":{"__symbolic":"reference","module":"@angular/core","name":"Sanitizer","line":39,"character":12},"useExisting":{"__symbolic":"reference","name":"DomSanitizer"}},{"provide":{"__symbolic":"reference","name":"DomSanitizer"},"useClass":{"__symbolic":"reference","name":"ɵDomSanitizerImpl"},"deps":[{"__symbolic":"reference","name":"DOCUMENT","module":"@angular/common"}]}],"ɵINTERNAL_BROWSER_PLATFORM_PROVIDERS":[{"provide":{"__symbolic":"reference","module":"@angular/core","name":"PLATFORM_ID","line":26,"character":12},"useValue":{"__symbolic":"reference","module":"@angular/common","name":"ɵPLATFORM_BROWSER_ID","line":26,"character":35}},{"provide":{"__symbolic":"reference","module":"@angular/core","name":"PLATFORM_INITIALIZER","line":27,"character":12},"useValue":{"__symbolic":"reference","name":"ɵinitDomAdapter"},"multi":true},{"provide":{"__symbolic":"reference","module":"@angular/common","name":"PlatformLocation","line":28,"character":12},"useClass":{"__symbolic":"reference","name":"ɵBrowserPlatformLocation"},"deps":[{"__symbolic":"reference","name":"DOCUMENT","module":"@angular/common"}]},{"provide":{"__symbolic":"reference","name":"DOCUMENT","module":"@angular/common"},"useFactory":{"__symbolic":"reference","name":"ɵangular_packages_platform_browser_platform_browser_b"},"deps":[]}],"ɵinitDomAdapter":{"__symbolic":"function"},"ɵBrowserDomAdapter":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ɵangular_packages_platform_browser_platform_browser_k"},"members":{"parse":[{"__symbolic":"method"}],"hasProperty":[{"__symbolic":"method"}],"setProperty":[{"__symbolic":"method"}],"getProperty":[{"__symbolic":"method"}],"invoke":[{"__symbolic":"method"}],"logError":[{"__symbolic":"method"}],"log":[{"__symbolic":"method"}],"logGroup":[{"__symbolic":"method"}],"logGroupEnd":[{"__symbolic":"method"}],"contains":[{"__symbolic":"method"}],"querySelector":[{"__symbolic":"method"}],"querySelectorAll":[{"__symbolic":"method"}],"on":[{"__symbolic":"method"}],"onAndCancel":[{"__symbolic":"method"}],"dispatchEvent":[{"__symbolic":"method"}],"createMouseEvent":[{"__symbolic":"method"}],"createEvent":[{"__symbolic":"method"}],"preventDefault":[{"__symbolic":"method"}],"isPrevented":[{"__symbolic":"method"}],"getInnerHTML":[{"__symbolic":"method"}],"getTemplateContent":[{"__symbolic":"method"}],"getOuterHTML":[{"__symbolic":"method"}],"nodeName":[{"__symbolic":"method"}],"nodeValue":[{"__symbolic":"method"}],"type":[{"__symbolic":"method"}],"content":[{"__symbolic":"method"}],"firstChild":[{"__symbolic":"method"}],"nextSibling":[{"__symbolic":"method"}],"parentElement":[{"__symbolic":"method"}],"childNodes":[{"__symbolic":"method"}],"childNodesAsList":[{"__symbolic":"method"}],"clearNodes":[{"__symbolic":"method"}],"appendChild":[{"__symbolic":"method"}],"removeChild":[{"__symbolic":"method"}],"replaceChild":[{"__symbolic":"method"}],"remove":[{"__symbolic":"method"}],"insertBefore":[{"__symbolic":"method"}],"insertAllBefore":[{"__symbolic":"method"}],"insertAfter":[{"__symbolic":"method"}],"setInnerHTML":[{"__symbolic":"method"}],"getText":[{"__symbolic":"method"}],"setText":[{"__symbolic":"method"}],"getValue":[{"__symbolic":"method"}],"setValue":[{"__symbolic":"method"}],"getChecked":[{"__symbolic":"method"}],"setChecked":[{"__symbolic":"method"}],"createComment":[{"__symbolic":"method"}],"createTemplate":[{"__symbolic":"method"}],"createElement":[{"__symbolic":"method"}],"createElementNS":[{"__symbolic":"method"}],"createTextNode":[{"__symbolic":"method"}],"createScriptTag":[{"__symbolic":"method"}],"createStyleElement":[{"__symbolic":"method"}],"createShadowRoot":[{"__symbolic":"method"}],"getShadowRoot":[{"__symbolic":"method"}],"getHost":[{"__symbolic":"method"}],"clone":[{"__symbolic":"method"}],"getElementsByClassName":[{"__symbolic":"method"}],"getElementsByTagName":[{"__symbolic":"method"}],"classList":[{"__symbolic":"method"}],"addClass":[{"__symbolic":"method"}],"removeClass":[{"__symbolic":"method"}],"hasClass":[{"__symbolic":"method"}],"setStyle":[{"__symbolic":"method"}],"removeStyle":[{"__symbolic":"method"}],"getStyle":[{"__symbolic":"method"}],"hasStyle":[{"__symbolic":"method"}],"tagName":[{"__symbolic":"method"}],"attributeMap":[{"__symbolic":"method"}],"hasAttribute":[{"__symbolic":"method"}],"hasAttributeNS":[{"__symbolic":"method"}],"getAttribute":[{"__symbolic":"method"}],"getAttributeNS":[{"__symbolic":"method"}],"setAttribute":[{"__symbolic":"method"}],"setAttributeNS":[{"__symbolic":"method"}],"removeAttribute":[{"__symbolic":"method"}],"removeAttributeNS":[{"__symbolic":"method"}],"templateAwareRoot":[{"__symbolic":"method"}],"createHtmlDocument":[{"__symbolic":"method"}],"getDefaultDocument":[{"__symbolic":"method"}],"getBoundingClientRect":[{"__symbolic":"method"}],"getTitle":[{"__symbolic":"method"}],"setTitle":[{"__symbolic":"method"}],"elementMatches":[{"__symbolic":"method"}],"isTemplateElement":[{"__symbolic":"method"}],"isTextNode":[{"__symbolic":"method"}],"isCommentNode":[{"__symbolic":"method"}],"isElementNode":[{"__symbolic":"method"}],"hasShadowRoot":[{"__symbolic":"method"}],"isShadowRoot":[{"__symbolic":"method"}],"importIntoDoc":[{"__symbolic":"method"}],"adoptNode":[{"__symbolic":"method"}],"getHref":[{"__symbolic":"method"}],"getEventKey":[{"__symbolic":"method"}],"getGlobalEventTarget":[{"__symbolic":"method"}],"getHistory":[{"__symbolic":"method"}],"getLocation":[{"__symbolic":"method"}],"getBaseHref":[{"__symbolic":"method"}],"resetBaseElement":[{"__symbolic":"method"}],"getUserAgent":[{"__symbolic":"method"}],"setData":[{"__symbolic":"method"}],"getData":[{"__symbolic":"method"}],"getComputedStyle":[{"__symbolic":"method"}],"supportsWebAnimation":[{"__symbolic":"method"}],"performanceNow":[{"__symbolic":"method"}],"supportsCookies":[{"__symbolic":"method"}],"getCookie":[{"__symbolic":"method"}],"setCookie":[{"__symbolic":"method"}]}},"ɵBrowserPlatformLocation":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@angular/common","name":"PlatformLocation","line":24,"character":45},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":23,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":30,"character":15},"arguments":[{"__symbolic":"reference","name":"DOCUMENT","module":"@angular/common"}]}]],"parameters":[{"__symbolic":"reference","name":"any"}]}],"_init":[{"__symbolic":"method"}],"getBaseHrefFromDOM":[{"__symbolic":"method"}],"onPopState":[{"__symbolic":"method"}],"onHashChange":[{"__symbolic":"method"}],"pushState":[{"__symbolic":"method"}],"replaceState":[{"__symbolic":"method"}],"forward":[{"__symbolic":"method"}],"back":[{"__symbolic":"method"}]}},"ɵTRANSITION_ID":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":17,"character":33},"arguments":["TRANSITION_ID"]},"ɵBrowserGetTestability":{"__symbolic":"class","members":{"addToWindow":[{"__symbolic":"method"}],"findTestabilityInTree":[{"__symbolic":"method"}]}},"ɵescapeHtml":{"__symbolic":"function"},"ɵELEMENT_PROBE_PROVIDERS":[{"provide":{"__symbolic":"reference","module":"@angular/core","name":"APP_INITIALIZER","line":43,"character":13},"useFactory":{"__symbolic":"reference","name":"ɵangular_packages_platform_browser_platform_browser_j"},"deps":[[{"__symbolic":"reference","module":"@angular/core","name":"NgProbeToken","line":46,"character":7},{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":46,"character":30}}]],"multi":true}],"ɵDomAdapter":{"__symbolic":"class","members":{"hasProperty":[{"__symbolic":"method"}],"setProperty":[{"__symbolic":"method"}],"getProperty":[{"__symbolic":"method"}],"invoke":[{"__symbolic":"method"}],"logError":[{"__symbolic":"method"}],"log":[{"__symbolic":"method"}],"logGroup":[{"__symbolic":"method"}],"logGroupEnd":[{"__symbolic":"method"}],"contains":[{"__symbolic":"method"}],"parse":[{"__symbolic":"method"}],"querySelector":[{"__symbolic":"method"}],"querySelectorAll":[{"__symbolic":"method"}],"on":[{"__symbolic":"method"}],"onAndCancel":[{"__symbolic":"method"}],"dispatchEvent":[{"__symbolic":"method"}],"createMouseEvent":[{"__symbolic":"method"}],"createEvent":[{"__symbolic":"method"}],"preventDefault":[{"__symbolic":"method"}],"isPrevented":[{"__symbolic":"method"}],"getInnerHTML":[{"__symbolic":"method"}],"getTemplateContent":[{"__symbolic":"method"}],"getOuterHTML":[{"__symbolic":"method"}],"nodeName":[{"__symbolic":"method"}],"nodeValue":[{"__symbolic":"method"}],"type":[{"__symbolic":"method"}],"content":[{"__symbolic":"method"}],"firstChild":[{"__symbolic":"method"}],"nextSibling":[{"__symbolic":"method"}],"parentElement":[{"__symbolic":"method"}],"childNodes":[{"__symbolic":"method"}],"childNodesAsList":[{"__symbolic":"method"}],"clearNodes":[{"__symbolic":"method"}],"appendChild":[{"__symbolic":"method"}],"removeChild":[{"__symbolic":"method"}],"replaceChild":[{"__symbolic":"method"}],"remove":[{"__symbolic":"method"}],"insertBefore":[{"__symbolic":"method"}],"insertAllBefore":[{"__symbolic":"method"}],"insertAfter":[{"__symbolic":"method"}],"setInnerHTML":[{"__symbolic":"method"}],"getText":[{"__symbolic":"method"}],"setText":[{"__symbolic":"method"}],"getValue":[{"__symbolic":"method"}],"setValue":[{"__symbolic":"method"}],"getChecked":[{"__symbolic":"method"}],"setChecked":[{"__symbolic":"method"}],"createComment":[{"__symbolic":"method"}],"createTemplate":[{"__symbolic":"method"}],"createElement":[{"__symbolic":"method"}],"createElementNS":[{"__symbolic":"method"}],"createTextNode":[{"__symbolic":"method"}],"createScriptTag":[{"__symbolic":"method"}],"createStyleElement":[{"__symbolic":"method"}],"createShadowRoot":[{"__symbolic":"method"}],"getShadowRoot":[{"__symbolic":"method"}],"getHost":[{"__symbolic":"method"}],"getDistributedNodes":[{"__symbolic":"method"}],"clone":[{"__symbolic":"method"}],"getElementsByClassName":[{"__symbolic":"method"}],"getElementsByTagName":[{"__symbolic":"method"}],"classList":[{"__symbolic":"method"}],"addClass":[{"__symbolic":"method"}],"removeClass":[{"__symbolic":"method"}],"hasClass":[{"__symbolic":"method"}],"setStyle":[{"__symbolic":"method"}],"removeStyle":[{"__symbolic":"method"}],"getStyle":[{"__symbolic":"method"}],"hasStyle":[{"__symbolic":"method"}],"tagName":[{"__symbolic":"method"}],"attributeMap":[{"__symbolic":"method"}],"hasAttribute":[{"__symbolic":"method"}],"hasAttributeNS":[{"__symbolic":"method"}],"getAttribute":[{"__symbolic":"method"}],"getAttributeNS":[{"__symbolic":"method"}],"setAttribute":[{"__symbolic":"method"}],"setAttributeNS":[{"__symbolic":"method"}],"removeAttribute":[{"__symbolic":"method"}],"removeAttributeNS":[{"__symbolic":"method"}],"templateAwareRoot":[{"__symbolic":"method"}],"createHtmlDocument":[{"__symbolic":"method"}],"getDefaultDocument":[{"__symbolic":"method"}],"getBoundingClientRect":[{"__symbolic":"method"}],"getTitle":[{"__symbolic":"method"}],"setTitle":[{"__symbolic":"method"}],"elementMatches":[{"__symbolic":"method"}],"isTemplateElement":[{"__symbolic":"method"}],"isTextNode":[{"__symbolic":"method"}],"isCommentNode":[{"__symbolic":"method"}],"isElementNode":[{"__symbolic":"method"}],"hasShadowRoot":[{"__symbolic":"method"}],"isShadowRoot":[{"__symbolic":"method"}],"importIntoDoc":[{"__symbolic":"method"}],"adoptNode":[{"__symbolic":"method"}],"getHref":[{"__symbolic":"method"}],"getEventKey":[{"__symbolic":"method"}],"resolveAndSetHref":[{"__symbolic":"method"}],"supportsDOMEvents":[{"__symbolic":"method"}],"supportsNativeShadowDOM":[{"__symbolic":"method"}],"getGlobalEventTarget":[{"__symbolic":"method"}],"getHistory":[{"__symbolic":"method"}],"getLocation":[{"__symbolic":"method"}],"getBaseHref":[{"__symbolic":"method"}],"resetBaseElement":[{"__symbolic":"method"}],"getUserAgent":[{"__symbolic":"method"}],"setData":[{"__symbolic":"method"}],"getComputedStyle":[{"__symbolic":"method"}],"getData":[{"__symbolic":"method"}],"supportsWebAnimation":[{"__symbolic":"method"}],"performanceNow":[{"__symbolic":"method"}],"getAnimationPrefix":[{"__symbolic":"method"}],"getTransitionEnd":[{"__symbolic":"method"}],"supportsAnimation":[{"__symbolic":"method"}],"supportsCookies":[{"__symbolic":"method"}],"getCookie":[{"__symbolic":"method"}],"setCookie":[{"__symbolic":"method"}]}},"ɵgetDOM":{"__symbolic":"function","parameters":[],"value":{"__symbolic":"error","message":"Reference to a local symbol","line":10,"character":4,"context":{"name":"_DOM"},"module":"./src/dom/dom_adapter"}},"ɵsetRootDomAdapter":{"__symbolic":"function"},"ɵDomRendererFactory2":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":60,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"EventManager"},{"__symbolic":"reference","name":"ɵDomSharedStylesHost"}]}],"createRenderer":[{"__symbolic":"method"}],"begin":[{"__symbolic":"method"}],"end":[{"__symbolic":"method"}]}},"ɵNAMESPACE_URIS":{"svg":"http://www.w3.org/2000/svg","xhtml":"http://www.w3.org/1999/xhtml","xlink":"http://www.w3.org/1999/xlink","xml":"http://www.w3.org/XML/1998/namespace","xmlns":"http://www.w3.org/2000/xmlns/","$quoted$":["svg","xhtml","xlink","xml","xmlns"]},"ɵflattenStyles":{"__symbolic":"function"},"ɵshimContentAttribute":{"__symbolic":"function","parameters":["componentShortId"],"value":{"__symbolic":"call","expression":{},"arguments":[{"__symbolic":"error","message":"Reference to a local symbol","line":21,"character":6,"context":{"name":"COMPONENT_REGEX"},"module":"./src/dom/dom_renderer"},{"__symbolic":"reference","name":"componentShortId"}]}},"ɵshimHostAttribute":{"__symbolic":"function","parameters":["componentShortId"],"value":{"__symbolic":"call","expression":{},"arguments":[{"__symbolic":"error","message":"Reference to a local symbol","line":21,"character":6,"context":{"name":"COMPONENT_REGEX"},"module":"./src/dom/dom_renderer"},{"__symbolic":"reference","name":"componentShortId"}]}},"ɵDomEventsPlugin":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ɵangular_packages_platform_browser_platform_browser_g"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":102,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":105,"character":7},"arguments":[{"__symbolic":"reference","name":"DOCUMENT","module":"@angular/common"}]}],null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":106,"character":7}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":106,"character":19},"arguments":[{"__symbolic":"reference","module":"@angular/core","name":"PLATFORM_ID","line":106,"character":26}]}]],"parameters":[{"__symbolic":"reference","name":"any"},{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":105,"character":50},{"__symbolic":"error","message":"Expression form not supported","line":106,"character":51,"module":"./src/dom/events/dom_events"}]}],"patchEvent":[{"__symbolic":"method"}],"supports":[{"__symbolic":"method"}],"addEventListener":[{"__symbolic":"method"}],"removeEventListener":[{"__symbolic":"method"}]}},"ɵHammerGesturesPlugin":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ɵangular_packages_platform_browser_platform_browser_g"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":152,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":155,"character":7},"arguments":[{"__symbolic":"reference","name":"DOCUMENT","module":"@angular/common"}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":156,"character":7},"arguments":[{"__symbolic":"reference","name":"HAMMER_GESTURE_CONFIG"}]}],null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":157,"character":7}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":157,"character":19},"arguments":[{"__symbolic":"reference","name":"HAMMER_LOADER"}]}]],"parameters":[{"__symbolic":"reference","name":"any"},{"__symbolic":"reference","name":"HammerGestureConfig"},{"__symbolic":"reference","module":"@angular/core","name":"ɵConsole","line":156,"character":92},{"__symbolic":"error","message":"Could not resolve type","line":157,"character":58,"context":{"typeName":"HammerLoader"},"module":"./src/dom/events/hammer_gestures"}]}],"supports":[{"__symbolic":"method"}],"addEventListener":[{"__symbolic":"method"}],"isCustomEvent":[{"__symbolic":"method"}]}},"ɵKeyEventsPlugin":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ɵangular_packages_platform_browser_platform_browser_g"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":34,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":40,"character":15},"arguments":[{"__symbolic":"reference","name":"DOCUMENT","module":"@angular/common"}]}]],"parameters":[{"__symbolic":"reference","name":"any"}]}],"supports":[{"__symbolic":"method"}],"addEventListener":[{"__symbolic":"method"}]},"statics":{"eventCallback":{"__symbolic":"function","parameters":["fullKey","handler","zone"],"value":{"__symbolic":"error","message":"Lambda not supported","line":128,"character":11,"module":"./src/dom/events/key_events"}}}},"ɵDomSharedStylesHost":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ɵSharedStylesHost"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":33,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":37,"character":15},"arguments":[{"__symbolic":"reference","name":"DOCUMENT","module":"@angular/common"}]}]],"parameters":[{"__symbolic":"reference","name":"any"}]}],"_addStylesToHost":[{"__symbolic":"method"}],"addHost":[{"__symbolic":"method"}],"removeHost":[{"__symbolic":"method"}],"onStylesAdded":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}]}},"ɵSharedStylesHost":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":12,"character":1}}],"members":{"addStyles":[{"__symbolic":"method"}],"onStylesAdded":[{"__symbolic":"method"}],"getAllStyles":[{"__symbolic":"method"}]}},"ɵDomSanitizerImpl":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"DomSanitizer"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":146,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":148,"character":15},"arguments":[{"__symbolic":"reference","name":"DOCUMENT","module":"@angular/common"}]}]],"parameters":[{"__symbolic":"reference","name":"any"}]}],"sanitize":[{"__symbolic":"method"}],"checkNotSafeValue":[{"__symbolic":"method"}],"bypassSecurityTrustHtml":[{"__symbolic":"method"}],"bypassSecurityTrustStyle":[{"__symbolic":"method"}],"bypassSecurityTrustScript":[{"__symbolic":"method"}],"bypassSecurityTrustUrl":[{"__symbolic":"method"}],"bypassSecurityTrustResourceUrl":[{"__symbolic":"method"}]}},"VERSION":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"Version","line":19,"character":27},"arguments":["7.2.7"]},"ɵangular_packages_platform_browser_platform_browser_k":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ɵDomAdapter"},"members":{"__ctor__":[{"__symbolic":"constructor"}],"getDistributedNodes":[{"__symbolic":"method"}],"resolveAndSetHref":[{"__symbolic":"method"}],"supportsDOMEvents":[{"__symbolic":"method"}],"supportsNativeShadowDOM":[{"__symbolic":"method"}],"getAnimationPrefix":[{"__symbolic":"method"}],"getTransitionEnd":[{"__symbolic":"method"}],"supportsAnimation":[{"__symbolic":"method"}]}}},"origins":{"ɵangular_packages_platform_browser_platform_browser_a":"./src/browser","ɵangular_packages_platform_browser_platform_browser_b":"./src/browser","ɵangular_packages_platform_browser_platform_browser_c":"./src/browser","ɵangular_packages_platform_browser_platform_browser_d":"./src/browser/meta","ɵangular_packages_platform_browser_platform_browser_e":"./src/browser/title","ɵangular_packages_platform_browser_platform_browser_f":"./src/browser/transfer_state","ɵangular_packages_platform_browser_platform_browser_g":"./src/dom/events/event_manager","ɵangular_packages_platform_browser_platform_browser_h":"./src/browser/server-transition","ɵangular_packages_platform_browser_platform_browser_i":"./src/browser/server-transition","ɵangular_packages_platform_browser_platform_browser_j":"./src/dom/debug/ng_probe","BrowserModule":"./src/browser","platformBrowser":"./src/browser","Meta":"./src/browser/meta","MetaDefinition":"./src/browser/meta","Title":"./src/browser/title","disableDebugTools":"./src/browser/tools/tools","enableDebugTools":"./src/browser/tools/tools","BrowserTransferStateModule":"./src/browser/transfer_state","StateKey":"./src/browser/transfer_state","TransferState":"./src/browser/transfer_state","makeStateKey":"./src/browser/transfer_state","By":"./src/dom/debug/by","DOCUMENT":"@angular/common","EVENT_MANAGER_PLUGINS":"./src/dom/events/event_manager","EventManager":"./src/dom/events/event_manager","HAMMER_GESTURE_CONFIG":"./src/dom/events/hammer_gestures","HAMMER_LOADER":"./src/dom/events/hammer_gestures","HammerGestureConfig":"./src/dom/events/hammer_gestures","HammerLoader":"./src/dom/events/hammer_gestures","DomSanitizer":"./src/security/dom_sanitization_service","SafeHtml":"./src/security/dom_sanitization_service","SafeResourceUrl":"./src/security/dom_sanitization_service","SafeScript":"./src/security/dom_sanitization_service","SafeStyle":"./src/security/dom_sanitization_service","SafeUrl":"./src/security/dom_sanitization_service","SafeValue":"./src/security/dom_sanitization_service","ɵBROWSER_SANITIZATION_PROVIDERS":"./src/browser","ɵINTERNAL_BROWSER_PLATFORM_PROVIDERS":"./src/browser","ɵinitDomAdapter":"./src/browser","ɵBrowserDomAdapter":"./src/browser/browser_adapter","ɵBrowserPlatformLocation":"./src/browser/location/browser_platform_location","ɵTRANSITION_ID":"./src/browser/server-transition","ɵBrowserGetTestability":"./src/browser/testability","ɵescapeHtml":"./src/browser/transfer_state","ɵELEMENT_PROBE_PROVIDERS":"./src/dom/debug/ng_probe","ɵDomAdapter":"./src/dom/dom_adapter","ɵgetDOM":"./src/dom/dom_adapter","ɵsetRootDomAdapter":"./src/dom/dom_adapter","ɵDomRendererFactory2":"./src/dom/dom_renderer","ɵNAMESPACE_URIS":"./src/dom/dom_renderer","ɵflattenStyles":"./src/dom/dom_renderer","ɵshimContentAttribute":"./src/dom/dom_renderer","ɵshimHostAttribute":"./src/dom/dom_renderer","ɵDomEventsPlugin":"./src/dom/events/dom_events","ɵHammerGesturesPlugin":"./src/dom/events/hammer_gestures","ɵKeyEventsPlugin":"./src/dom/events/key_events","ɵDomSharedStylesHost":"./src/dom/shared_styles_host","ɵSharedStylesHost":"./src/dom/shared_styles_host","ɵDomSanitizerImpl":"./src/security/dom_sanitization_service","VERSION":"./src/version","ɵangular_packages_platform_browser_platform_browser_k":"./src/browser/generic_browser_adapter"},"importAs":"@angular/platform-browser"}
\ No newline at end of file
+{"__symbolic":"module","version":4,"metadata":{"ɵangular_packages_platform_browser_platform_browser_a":{"__symbolic":"function","parameters":[],"value":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"ErrorHandler","line":55,"character":13}}},"ɵangular_packages_platform_browser_platform_browser_b":{"__symbolic":"function","parameters":[],"value":{"__symbolic":"reference","name":"document"}},"ɵangular_packages_platform_browser_platform_browser_c":[{"__symbolic":"reference","name":"ɵBROWSER_SANITIZATION_PROVIDERS"},{"provide":{"__symbolic":"reference","module":"@angular/core","name":"ɵAPP_ROOT","line":64,"character":12},"useValue":true},{"provide":{"__symbolic":"reference","module":"@angular/core","name":"ErrorHandler","line":65,"character":12},"useFactory":{"__symbolic":"reference","name":"ɵangular_packages_platform_browser_platform_browser_a"},"deps":[]},{"provide":{"__symbolic":"reference","name":"EVENT_MANAGER_PLUGINS"},"useClass":{"__symbolic":"reference","name":"ɵDomEventsPlugin"},"multi":true,"deps":[{"__symbolic":"reference","name":"DOCUMENT","module":"@angular/common"},{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":70,"character":21},{"__symbolic":"reference","module":"@angular/core","name":"PLATFORM_ID","line":70,"character":29}]},{"provide":{"__symbolic":"reference","name":"EVENT_MANAGER_PLUGINS"},"useClass":{"__symbolic":"reference","name":"ɵKeyEventsPlugin"},"multi":true,"deps":[{"__symbolic":"reference","name":"DOCUMENT","module":"@angular/common"}]},{"provide":{"__symbolic":"reference","name":"EVENT_MANAGER_PLUGINS"},"useClass":{"__symbolic":"reference","name":"ɵHammerGesturesPlugin"},"multi":true,"deps":[{"__symbolic":"reference","name":"DOCUMENT","module":"@angular/common"},{"__symbolic":"reference","name":"HAMMER_GESTURE_CONFIG"},{"__symbolic":"reference","module":"@angular/core","name":"ɵConsole","line":77,"character":44},[{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":77,"character":58}},{"__symbolic":"reference","name":"HAMMER_LOADER"}]]},{"provide":{"__symbolic":"reference","name":"HAMMER_GESTURE_CONFIG"},"useClass":{"__symbolic":"reference","name":"HammerGestureConfig"},"deps":[]},{"provide":{"__symbolic":"reference","name":"ɵDomRendererFactory2"},"useClass":{"__symbolic":"reference","name":"ɵDomRendererFactory2"},"deps":[{"__symbolic":"reference","name":"EventManager"},{"__symbolic":"reference","name":"ɵDomSharedStylesHost"}]},{"provide":{"__symbolic":"reference","module":"@angular/core","name":"RendererFactory2","line":85,"character":12},"useExisting":{"__symbolic":"reference","name":"ɵDomRendererFactory2"}},{"provide":{"__symbolic":"reference","name":"ɵSharedStylesHost"},"useExisting":{"__symbolic":"reference","name":"ɵDomSharedStylesHost"}},{"provide":{"__symbolic":"reference","name":"ɵDomSharedStylesHost"},"useClass":{"__symbolic":"reference","name":"ɵDomSharedStylesHost"},"deps":[{"__symbolic":"reference","name":"DOCUMENT","module":"@angular/common"}]},{"provide":{"__symbolic":"reference","module":"@angular/core","name":"Testability","line":88,"character":12},"useClass":{"__symbolic":"reference","module":"@angular/core","name":"Testability","line":88,"character":35},"deps":[{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":88,"character":55}]},{"provide":{"__symbolic":"reference","name":"EventManager"},"useClass":{"__symbolic":"reference","name":"EventManager"},"deps":[{"__symbolic":"reference","name":"EVENT_MANAGER_PLUGINS"},{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":89,"character":80}]},{"__symbolic":"reference","name":"ɵELEMENT_PROBE_PROVIDERS"}],"ɵangular_packages_platform_browser_platform_browser_d":{"__symbolic":"function","parameters":[],"value":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"Meta"},"arguments":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"inject","line":36,"character":18},"arguments":[{"__symbolic":"reference","name":"DOCUMENT","module":"@angular/common"}]}]}},"ɵangular_packages_platform_browser_platform_browser_e":{"__symbolic":"function","parameters":[],"value":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"Title"},"arguments":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"inject","line":17,"character":19},"arguments":[{"__symbolic":"reference","name":"DOCUMENT","module":"@angular/common"}]}]}},"ɵangular_packages_platform_browser_platform_browser_f":{"__symbolic":"function"},"ɵangular_packages_platform_browser_platform_browser_g":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"any"}]}],"supports":[{"__symbolic":"method"}],"addEventListener":[{"__symbolic":"method"}],"addGlobalEventListener":[{"__symbolic":"method"}]}},"ɵangular_packages_platform_browser_platform_browser_h":{"__symbolic":"function","parameters":["transitionId","document","injector"],"value":{"__symbolic":"error","message":"Lambda not supported","line":20,"character":9,"module":"./src/browser/server-transition"}},"ɵangular_packages_platform_browser_platform_browser_i":[{"provide":{"__symbolic":"reference","module":"@angular/core","name":"APP_INITIALIZER","line":35,"character":13},"useFactory":{"__symbolic":"reference","name":"ɵangular_packages_platform_browser_platform_browser_h"},"deps":[{"__symbolic":"reference","name":"ɵTRANSITION_ID"},{"__symbolic":"reference","name":"DOCUMENT","module":"@angular/common"},{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":37,"character":36}],"multi":true}],"ɵangular_packages_platform_browser_platform_browser_j":{"__symbolic":"function"},"BrowserModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":102,"character":1},"arguments":[{"providers":{"__symbolic":"reference","name":"ɵangular_packages_platform_browser_platform_browser_c"},"exports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":102,"character":58},{"__symbolic":"reference","module":"@angular/core","name":"ApplicationModule","line":102,"character":72}]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":104,"character":15}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"SkipSelf","line":104,"character":27}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":104,"character":39},"arguments":[{"__symbolic":"reference","name":"BrowserModule"}]}]],"parameters":[{"__symbolic":"reference","name":"BrowserModule"}]}]},"statics":{"withServerTransition":{"__symbolic":"function","parameters":["params"],"value":{"ngModule":{"__symbolic":"reference","name":"BrowserModule"},"providers":[{"provide":{"__symbolic":"reference","module":"@angular/core","name":"APP_ID","line":123,"character":18},"useValue":{"__symbolic":"select","expression":{"__symbolic":"reference","name":"params"},"member":"appId"}},{"provide":{"__symbolic":"reference","name":"ɵTRANSITION_ID"},"useExisting":{"__symbolic":"reference","module":"@angular/core","name":"APP_ID","line":124,"character":46}},{"__symbolic":"reference","name":"ɵangular_packages_platform_browser_platform_browser_i"}]}}}},"platformBrowser":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"createPlatformFactory","line":47,"character":4},"arguments":[{"__symbolic":"reference","module":"@angular/core","name":"platformCore","line":47,"character":26},"browser",{"__symbolic":"reference","name":"ɵINTERNAL_BROWSER_PLATFORM_PROVIDERS"}]},"Meta":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":44,"character":1},"arguments":[{"providedIn":"root","useFactory":{"__symbolic":"reference","name":"ɵangular_packages_platform_browser_platform_browser_d"},"deps":[]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":47,"character":15},"arguments":[{"__symbolic":"reference","name":"DOCUMENT","module":"@angular/common"}]}]],"parameters":[{"__symbolic":"reference","name":"any"}]}],"addTag":[{"__symbolic":"method"}],"addTags":[{"__symbolic":"method"}],"getTag":[{"__symbolic":"method"}],"getTags":[{"__symbolic":"method"}],"updateTag":[{"__symbolic":"method"}],"removeTag":[{"__symbolic":"method"}],"removeTagElement":[{"__symbolic":"method"}],"_getOrCreateElement":[{"__symbolic":"method"}],"_setMetaElementAttributes":[{"__symbolic":"method"}],"_parseSelector":[{"__symbolic":"method"}],"_containsAttributes":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}},"MetaDefinition":{"__symbolic":"interface"},"Title":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":30,"character":1},"arguments":[{"providedIn":"root","useFactory":{"__symbolic":"reference","name":"ɵangular_packages_platform_browser_platform_browser_e"},"deps":[]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":32,"character":15},"arguments":[{"__symbolic":"reference","name":"DOCUMENT","module":"@angular/common"}]}]],"parameters":[{"__symbolic":"reference","name":"any"}]}],"getTitle":[{"__symbolic":"method"}],"setTitle":[{"__symbolic":"method"}]},"statics":{"ngInjectableDef":{}}},"disableDebugTools":{"__symbolic":"function"},"enableDebugTools":{"__symbolic":"function"},"BrowserTransferStateModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":160,"character":1},"arguments":[{"providers":[{"provide":{"__symbolic":"reference","name":"TransferState"},"useFactory":{"__symbolic":"reference","name":"ɵangular_packages_platform_browser_platform_browser_f"},"deps":[{"__symbolic":"reference","name":"DOCUMENT","module":"@angular/common"},{"__symbolic":"reference","module":"@angular/core","name":"APP_ID","line":161,"character":87}]}]}]}],"members":{}},"StateKey":{"__symbolic":"interface"},"TransferState":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":80,"character":1}}],"members":{"get":[{"__symbolic":"method"}],"set":[{"__symbolic":"method"}],"remove":[{"__symbolic":"method"}],"hasKey":[{"__symbolic":"method"}],"onSerialize":[{"__symbolic":"method"}],"toJson":[{"__symbolic":"method"}]}},"makeStateKey":{"__symbolic":"function","parameters":["key"],"value":{"__symbolic":"reference","name":"key"}},"By":{"__symbolic":"class","members":{},"statics":{"all":{"__symbolic":"function","parameters":[],"value":{"__symbolic":"error","message":"Lambda not supported","line":27,"character":49,"module":"./src/dom/debug/by"}},"css":{"__symbolic":"function","parameters":["selector"],"value":{"__symbolic":"error","message":"Lambda not supported","line":38,"character":11,"module":"./src/dom/debug/by"}},"directive":{"__symbolic":"function","parameters":["type"],"value":{"__symbolic":"error","message":"Lambda not supported","line":54,"character":11,"module":"./src/dom/debug/by"}}}},"EVENT_MANAGER_PLUGINS":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":18,"character":8},"arguments":["EventManagerPlugins"]},"EventManager":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":26,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":34,"character":15},"arguments":[{"__symbolic":"reference","name":"EVENT_MANAGER_PLUGINS"}]}],null],"parameters":[{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"ɵangular_packages_platform_browser_platform_browser_g"}]},{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":34,"character":91}]}],"addEventListener":[{"__symbolic":"method"}],"addGlobalEventListener":[{"__symbolic":"method"}],"getZone":[{"__symbolic":"method"}],"_findPluginFor":[{"__symbolic":"method"}]}},"HAMMER_GESTURE_CONFIG":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":61,"character":41},"arguments":["HammerGestureConfig"]},"HAMMER_LOADER":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":76,"character":33},"arguments":["HammerLoader"]},"HammerGestureConfig":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":89,"character":1}}],"members":{"buildHammer":[{"__symbolic":"method"}]}},"HammerLoader":{"__symbolic":"interface"},"DomSanitizer":{"__symbolic":"class","members":{"sanitize":[{"__symbolic":"method"}],"bypassSecurityTrustHtml":[{"__symbolic":"method"}],"bypassSecurityTrustStyle":[{"__symbolic":"method"}],"bypassSecurityTrustScript":[{"__symbolic":"method"}],"bypassSecurityTrustUrl":[{"__symbolic":"method"}],"bypassSecurityTrustResourceUrl":[{"__symbolic":"method"}]}},"SafeHtml":{"__symbolic":"interface"},"SafeResourceUrl":{"__symbolic":"interface"},"SafeScript":{"__symbolic":"interface"},"SafeStyle":{"__symbolic":"interface"},"SafeUrl":{"__symbolic":"interface"},"SafeValue":{"__symbolic":"interface"},"ɵBROWSER_SANITIZATION_PROVIDERS":[{"provide":{"__symbolic":"reference","module":"@angular/core","name":"Sanitizer","line":39,"character":12},"useExisting":{"__symbolic":"reference","name":"DomSanitizer"}},{"provide":{"__symbolic":"reference","name":"DomSanitizer"},"useClass":{"__symbolic":"reference","name":"ɵDomSanitizerImpl"},"deps":[{"__symbolic":"reference","name":"DOCUMENT","module":"@angular/common"}]}],"ɵINTERNAL_BROWSER_PLATFORM_PROVIDERS":[{"provide":{"__symbolic":"reference","module":"@angular/core","name":"PLATFORM_ID","line":26,"character":12},"useValue":{"__symbolic":"reference","module":"@angular/common","name":"ɵPLATFORM_BROWSER_ID","line":26,"character":35}},{"provide":{"__symbolic":"reference","module":"@angular/core","name":"PLATFORM_INITIALIZER","line":27,"character":12},"useValue":{"__symbolic":"reference","name":"ɵinitDomAdapter"},"multi":true},{"provide":{"__symbolic":"reference","module":"@angular/common","name":"PlatformLocation","line":28,"character":12},"useClass":{"__symbolic":"reference","name":"ɵBrowserPlatformLocation"},"deps":[{"__symbolic":"reference","name":"DOCUMENT","module":"@angular/common"}]},{"provide":{"__symbolic":"reference","name":"DOCUMENT","module":"@angular/common"},"useFactory":{"__symbolic":"reference","name":"ɵangular_packages_platform_browser_platform_browser_b"},"deps":[]}],"ɵinitDomAdapter":{"__symbolic":"function"},"ɵBrowserDomAdapter":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ɵangular_packages_platform_browser_platform_browser_k"},"members":{"parse":[{"__symbolic":"method"}],"hasProperty":[{"__symbolic":"method"}],"setProperty":[{"__symbolic":"method"}],"getProperty":[{"__symbolic":"method"}],"invoke":[{"__symbolic":"method"}],"logError":[{"__symbolic":"method"}],"log":[{"__symbolic":"method"}],"logGroup":[{"__symbolic":"method"}],"logGroupEnd":[{"__symbolic":"method"}],"contains":[{"__symbolic":"method"}],"querySelector":[{"__symbolic":"method"}],"querySelectorAll":[{"__symbolic":"method"}],"on":[{"__symbolic":"method"}],"onAndCancel":[{"__symbolic":"method"}],"dispatchEvent":[{"__symbolic":"method"}],"createMouseEvent":[{"__symbolic":"method"}],"createEvent":[{"__symbolic":"method"}],"preventDefault":[{"__symbolic":"method"}],"isPrevented":[{"__symbolic":"method"}],"getInnerHTML":[{"__symbolic":"method"}],"getTemplateContent":[{"__symbolic":"method"}],"getOuterHTML":[{"__symbolic":"method"}],"nodeName":[{"__symbolic":"method"}],"nodeValue":[{"__symbolic":"method"}],"type":[{"__symbolic":"method"}],"content":[{"__symbolic":"method"}],"firstChild":[{"__symbolic":"method"}],"nextSibling":[{"__symbolic":"method"}],"parentElement":[{"__symbolic":"method"}],"childNodes":[{"__symbolic":"method"}],"childNodesAsList":[{"__symbolic":"method"}],"clearNodes":[{"__symbolic":"method"}],"appendChild":[{"__symbolic":"method"}],"removeChild":[{"__symbolic":"method"}],"replaceChild":[{"__symbolic":"method"}],"remove":[{"__symbolic":"method"}],"insertBefore":[{"__symbolic":"method"}],"insertAllBefore":[{"__symbolic":"method"}],"insertAfter":[{"__symbolic":"method"}],"setInnerHTML":[{"__symbolic":"method"}],"getText":[{"__symbolic":"method"}],"setText":[{"__symbolic":"method"}],"getValue":[{"__symbolic":"method"}],"setValue":[{"__symbolic":"method"}],"getChecked":[{"__symbolic":"method"}],"setChecked":[{"__symbolic":"method"}],"createComment":[{"__symbolic":"method"}],"createTemplate":[{"__symbolic":"method"}],"createElement":[{"__symbolic":"method"}],"createElementNS":[{"__symbolic":"method"}],"createTextNode":[{"__symbolic":"method"}],"createScriptTag":[{"__symbolic":"method"}],"createStyleElement":[{"__symbolic":"method"}],"createShadowRoot":[{"__symbolic":"method"}],"getShadowRoot":[{"__symbolic":"method"}],"getHost":[{"__symbolic":"method"}],"clone":[{"__symbolic":"method"}],"getElementsByClassName":[{"__symbolic":"method"}],"getElementsByTagName":[{"__symbolic":"method"}],"classList":[{"__symbolic":"method"}],"addClass":[{"__symbolic":"method"}],"removeClass":[{"__symbolic":"method"}],"hasClass":[{"__symbolic":"method"}],"setStyle":[{"__symbolic":"method"}],"removeStyle":[{"__symbolic":"method"}],"getStyle":[{"__symbolic":"method"}],"hasStyle":[{"__symbolic":"method"}],"tagName":[{"__symbolic":"method"}],"attributeMap":[{"__symbolic":"method"}],"hasAttribute":[{"__symbolic":"method"}],"hasAttributeNS":[{"__symbolic":"method"}],"getAttribute":[{"__symbolic":"method"}],"getAttributeNS":[{"__symbolic":"method"}],"setAttribute":[{"__symbolic":"method"}],"setAttributeNS":[{"__symbolic":"method"}],"removeAttribute":[{"__symbolic":"method"}],"removeAttributeNS":[{"__symbolic":"method"}],"templateAwareRoot":[{"__symbolic":"method"}],"createHtmlDocument":[{"__symbolic":"method"}],"getDefaultDocument":[{"__symbolic":"method"}],"getBoundingClientRect":[{"__symbolic":"method"}],"getTitle":[{"__symbolic":"method"}],"setTitle":[{"__symbolic":"method"}],"elementMatches":[{"__symbolic":"method"}],"isTemplateElement":[{"__symbolic":"method"}],"isTextNode":[{"__symbolic":"method"}],"isCommentNode":[{"__symbolic":"method"}],"isElementNode":[{"__symbolic":"method"}],"hasShadowRoot":[{"__symbolic":"method"}],"isShadowRoot":[{"__symbolic":"method"}],"importIntoDoc":[{"__symbolic":"method"}],"adoptNode":[{"__symbolic":"method"}],"getHref":[{"__symbolic":"method"}],"getEventKey":[{"__symbolic":"method"}],"getGlobalEventTarget":[{"__symbolic":"method"}],"getHistory":[{"__symbolic":"method"}],"getLocation":[{"__symbolic":"method"}],"getBaseHref":[{"__symbolic":"method"}],"resetBaseElement":[{"__symbolic":"method"}],"getUserAgent":[{"__symbolic":"method"}],"setData":[{"__symbolic":"method"}],"getData":[{"__symbolic":"method"}],"getComputedStyle":[{"__symbolic":"method"}],"supportsWebAnimation":[{"__symbolic":"method"}],"performanceNow":[{"__symbolic":"method"}],"supportsCookies":[{"__symbolic":"method"}],"getCookie":[{"__symbolic":"method"}],"setCookie":[{"__symbolic":"method"}]}},"ɵBrowserPlatformLocation":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@angular/common","name":"PlatformLocation","line":24,"character":45},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":23,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":30,"character":15},"arguments":[{"__symbolic":"reference","name":"DOCUMENT","module":"@angular/common"}]}]],"parameters":[{"__symbolic":"reference","name":"any"}]}],"_init":[{"__symbolic":"method"}],"getBaseHrefFromDOM":[{"__symbolic":"method"}],"onPopState":[{"__symbolic":"method"}],"onHashChange":[{"__symbolic":"method"}],"pushState":[{"__symbolic":"method"}],"replaceState":[{"__symbolic":"method"}],"forward":[{"__symbolic":"method"}],"back":[{"__symbolic":"method"}]}},"ɵTRANSITION_ID":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":17,"character":33},"arguments":["TRANSITION_ID"]},"ɵBrowserGetTestability":{"__symbolic":"class","members":{"addToWindow":[{"__symbolic":"method"}],"findTestabilityInTree":[{"__symbolic":"method"}]}},"ɵescapeHtml":{"__symbolic":"function"},"ɵELEMENT_PROBE_PROVIDERS":[{"provide":{"__symbolic":"reference","module":"@angular/core","name":"APP_INITIALIZER","line":43,"character":13},"useFactory":{"__symbolic":"reference","name":"ɵangular_packages_platform_browser_platform_browser_j"},"deps":[[{"__symbolic":"reference","module":"@angular/core","name":"NgProbeToken","line":46,"character":7},{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":46,"character":30}}]],"multi":true}],"ɵDomAdapter":{"__symbolic":"class","members":{"hasProperty":[{"__symbolic":"method"}],"setProperty":[{"__symbolic":"method"}],"getProperty":[{"__symbolic":"method"}],"invoke":[{"__symbolic":"method"}],"logError":[{"__symbolic":"method"}],"log":[{"__symbolic":"method"}],"logGroup":[{"__symbolic":"method"}],"logGroupEnd":[{"__symbolic":"method"}],"contains":[{"__symbolic":"method"}],"parse":[{"__symbolic":"method"}],"querySelector":[{"__symbolic":"method"}],"querySelectorAll":[{"__symbolic":"method"}],"on":[{"__symbolic":"method"}],"onAndCancel":[{"__symbolic":"method"}],"dispatchEvent":[{"__symbolic":"method"}],"createMouseEvent":[{"__symbolic":"method"}],"createEvent":[{"__symbolic":"method"}],"preventDefault":[{"__symbolic":"method"}],"isPrevented":[{"__symbolic":"method"}],"getInnerHTML":[{"__symbolic":"method"}],"getTemplateContent":[{"__symbolic":"method"}],"getOuterHTML":[{"__symbolic":"method"}],"nodeName":[{"__symbolic":"method"}],"nodeValue":[{"__symbolic":"method"}],"type":[{"__symbolic":"method"}],"content":[{"__symbolic":"method"}],"firstChild":[{"__symbolic":"method"}],"nextSibling":[{"__symbolic":"method"}],"parentElement":[{"__symbolic":"method"}],"childNodes":[{"__symbolic":"method"}],"childNodesAsList":[{"__symbolic":"method"}],"clearNodes":[{"__symbolic":"method"}],"appendChild":[{"__symbolic":"method"}],"removeChild":[{"__symbolic":"method"}],"replaceChild":[{"__symbolic":"method"}],"remove":[{"__symbolic":"method"}],"insertBefore":[{"__symbolic":"method"}],"insertAllBefore":[{"__symbolic":"method"}],"insertAfter":[{"__symbolic":"method"}],"setInnerHTML":[{"__symbolic":"method"}],"getText":[{"__symbolic":"method"}],"setText":[{"__symbolic":"method"}],"getValue":[{"__symbolic":"method"}],"setValue":[{"__symbolic":"method"}],"getChecked":[{"__symbolic":"method"}],"setChecked":[{"__symbolic":"method"}],"createComment":[{"__symbolic":"method"}],"createTemplate":[{"__symbolic":"method"}],"createElement":[{"__symbolic":"method"}],"createElementNS":[{"__symbolic":"method"}],"createTextNode":[{"__symbolic":"method"}],"createScriptTag":[{"__symbolic":"method"}],"createStyleElement":[{"__symbolic":"method"}],"createShadowRoot":[{"__symbolic":"method"}],"getShadowRoot":[{"__symbolic":"method"}],"getHost":[{"__symbolic":"method"}],"getDistributedNodes":[{"__symbolic":"method"}],"clone":[{"__symbolic":"method"}],"getElementsByClassName":[{"__symbolic":"method"}],"getElementsByTagName":[{"__symbolic":"method"}],"classList":[{"__symbolic":"method"}],"addClass":[{"__symbolic":"method"}],"removeClass":[{"__symbolic":"method"}],"hasClass":[{"__symbolic":"method"}],"setStyle":[{"__symbolic":"method"}],"removeStyle":[{"__symbolic":"method"}],"getStyle":[{"__symbolic":"method"}],"hasStyle":[{"__symbolic":"method"}],"tagName":[{"__symbolic":"method"}],"attributeMap":[{"__symbolic":"method"}],"hasAttribute":[{"__symbolic":"method"}],"hasAttributeNS":[{"__symbolic":"method"}],"getAttribute":[{"__symbolic":"method"}],"getAttributeNS":[{"__symbolic":"method"}],"setAttribute":[{"__symbolic":"method"}],"setAttributeNS":[{"__symbolic":"method"}],"removeAttribute":[{"__symbolic":"method"}],"removeAttributeNS":[{"__symbolic":"method"}],"templateAwareRoot":[{"__symbolic":"method"}],"createHtmlDocument":[{"__symbolic":"method"}],"getDefaultDocument":[{"__symbolic":"method"}],"getBoundingClientRect":[{"__symbolic":"method"}],"getTitle":[{"__symbolic":"method"}],"setTitle":[{"__symbolic":"method"}],"elementMatches":[{"__symbolic":"method"}],"isTemplateElement":[{"__symbolic":"method"}],"isTextNode":[{"__symbolic":"method"}],"isCommentNode":[{"__symbolic":"method"}],"isElementNode":[{"__symbolic":"method"}],"hasShadowRoot":[{"__symbolic":"method"}],"isShadowRoot":[{"__symbolic":"method"}],"importIntoDoc":[{"__symbolic":"method"}],"adoptNode":[{"__symbolic":"method"}],"getHref":[{"__symbolic":"method"}],"getEventKey":[{"__symbolic":"method"}],"resolveAndSetHref":[{"__symbolic":"method"}],"supportsDOMEvents":[{"__symbolic":"method"}],"supportsNativeShadowDOM":[{"__symbolic":"method"}],"getGlobalEventTarget":[{"__symbolic":"method"}],"getHistory":[{"__symbolic":"method"}],"getLocation":[{"__symbolic":"method"}],"getBaseHref":[{"__symbolic":"method"}],"resetBaseElement":[{"__symbolic":"method"}],"getUserAgent":[{"__symbolic":"method"}],"setData":[{"__symbolic":"method"}],"getComputedStyle":[{"__symbolic":"method"}],"getData":[{"__symbolic":"method"}],"supportsWebAnimation":[{"__symbolic":"method"}],"performanceNow":[{"__symbolic":"method"}],"getAnimationPrefix":[{"__symbolic":"method"}],"getTransitionEnd":[{"__symbolic":"method"}],"supportsAnimation":[{"__symbolic":"method"}],"supportsCookies":[{"__symbolic":"method"}],"getCookie":[{"__symbolic":"method"}],"setCookie":[{"__symbolic":"method"}]}},"ɵgetDOM":{"__symbolic":"function","parameters":[],"value":{"__symbolic":"error","message":"Reference to a local symbol","line":10,"character":4,"context":{"name":"_DOM"},"module":"./src/dom/dom_adapter"}},"ɵsetRootDomAdapter":{"__symbolic":"function"},"ɵDomRendererFactory2":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":60,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"EventManager"},{"__symbolic":"reference","name":"ɵDomSharedStylesHost"}]}],"createRenderer":[{"__symbolic":"method"}],"begin":[{"__symbolic":"method"}],"end":[{"__symbolic":"method"}]}},"ɵNAMESPACE_URIS":{"svg":"http://www.w3.org/2000/svg","xhtml":"http://www.w3.org/1999/xhtml","xlink":"http://www.w3.org/1999/xlink","xml":"http://www.w3.org/XML/1998/namespace","xmlns":"http://www.w3.org/2000/xmlns/","$quoted$":["svg","xhtml","xlink","xml","xmlns"]},"ɵflattenStyles":{"__symbolic":"function"},"ɵshimContentAttribute":{"__symbolic":"function","parameters":["componentShortId"],"value":{"__symbolic":"call","expression":{},"arguments":[{"__symbolic":"error","message":"Reference to a local symbol","line":21,"character":6,"context":{"name":"COMPONENT_REGEX"},"module":"./src/dom/dom_renderer"},{"__symbolic":"reference","name":"componentShortId"}]}},"ɵshimHostAttribute":{"__symbolic":"function","parameters":["componentShortId"],"value":{"__symbolic":"call","expression":{},"arguments":[{"__symbolic":"error","message":"Reference to a local symbol","line":21,"character":6,"context":{"name":"COMPONENT_REGEX"},"module":"./src/dom/dom_renderer"},{"__symbolic":"reference","name":"componentShortId"}]}},"ɵDomEventsPlugin":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ɵangular_packages_platform_browser_platform_browser_g"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":102,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":105,"character":7},"arguments":[{"__symbolic":"reference","name":"DOCUMENT","module":"@angular/common"}]}],null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":106,"character":7}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":106,"character":19},"arguments":[{"__symbolic":"reference","module":"@angular/core","name":"PLATFORM_ID","line":106,"character":26}]}]],"parameters":[{"__symbolic":"reference","name":"any"},{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":105,"character":50},{"__symbolic":"error","message":"Expression form not supported","line":106,"character":51,"module":"./src/dom/events/dom_events"}]}],"patchEvent":[{"__symbolic":"method"}],"supports":[{"__symbolic":"method"}],"addEventListener":[{"__symbolic":"method"}],"removeEventListener":[{"__symbolic":"method"}]}},"ɵHammerGesturesPlugin":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ɵangular_packages_platform_browser_platform_browser_g"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":152,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":155,"character":7},"arguments":[{"__symbolic":"reference","name":"DOCUMENT","module":"@angular/common"}]}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":156,"character":7},"arguments":[{"__symbolic":"reference","name":"HAMMER_GESTURE_CONFIG"}]}],null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":157,"character":7}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":157,"character":19},"arguments":[{"__symbolic":"reference","name":"HAMMER_LOADER"}]}]],"parameters":[{"__symbolic":"reference","name":"any"},{"__symbolic":"reference","name":"HammerGestureConfig"},{"__symbolic":"reference","module":"@angular/core","name":"ɵConsole","line":156,"character":92},{"__symbolic":"error","message":"Could not resolve type","line":157,"character":58,"context":{"typeName":"HammerLoader"},"module":"./src/dom/events/hammer_gestures"}]}],"supports":[{"__symbolic":"method"}],"addEventListener":[{"__symbolic":"method"}],"isCustomEvent":[{"__symbolic":"method"}]}},"ɵKeyEventsPlugin":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ɵangular_packages_platform_browser_platform_browser_g"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":34,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":40,"character":15},"arguments":[{"__symbolic":"reference","name":"DOCUMENT","module":"@angular/common"}]}]],"parameters":[{"__symbolic":"reference","name":"any"}]}],"supports":[{"__symbolic":"method"}],"addEventListener":[{"__symbolic":"method"}]},"statics":{"eventCallback":{"__symbolic":"function","parameters":["fullKey","handler","zone"],"value":{"__symbolic":"error","message":"Lambda not supported","line":128,"character":11,"module":"./src/dom/events/key_events"}}}},"ɵDomSharedStylesHost":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ɵSharedStylesHost"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":33,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":37,"character":15},"arguments":[{"__symbolic":"reference","name":"DOCUMENT","module":"@angular/common"}]}]],"parameters":[{"__symbolic":"reference","name":"any"}]}],"_addStylesToHost":[{"__symbolic":"method"}],"addHost":[{"__symbolic":"method"}],"removeHost":[{"__symbolic":"method"}],"onStylesAdded":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}]}},"ɵSharedStylesHost":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":12,"character":1}}],"members":{"addStyles":[{"__symbolic":"method"}],"onStylesAdded":[{"__symbolic":"method"}],"getAllStyles":[{"__symbolic":"method"}]}},"ɵDomSanitizerImpl":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"DomSanitizer"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":146,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":148,"character":15},"arguments":[{"__symbolic":"reference","name":"DOCUMENT","module":"@angular/common"}]}]],"parameters":[{"__symbolic":"reference","name":"any"}]}],"sanitize":[{"__symbolic":"method"}],"checkNotSafeValue":[{"__symbolic":"method"}],"bypassSecurityTrustHtml":[{"__symbolic":"method"}],"bypassSecurityTrustStyle":[{"__symbolic":"method"}],"bypassSecurityTrustScript":[{"__symbolic":"method"}],"bypassSecurityTrustUrl":[{"__symbolic":"method"}],"bypassSecurityTrustResourceUrl":[{"__symbolic":"method"}]}},"VERSION":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"Version","line":19,"character":27},"arguments":["7.2.8"]},"ɵangular_packages_platform_browser_platform_browser_k":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ɵDomAdapter"},"members":{"__ctor__":[{"__symbolic":"constructor"}],"getDistributedNodes":[{"__symbolic":"method"}],"resolveAndSetHref":[{"__symbolic":"method"}],"supportsDOMEvents":[{"__symbolic":"method"}],"supportsNativeShadowDOM":[{"__symbolic":"method"}],"getAnimationPrefix":[{"__symbolic":"method"}],"getTransitionEnd":[{"__symbolic":"method"}],"supportsAnimation":[{"__symbolic":"method"}]}}},"origins":{"ɵangular_packages_platform_browser_platform_browser_a":"./src/browser","ɵangular_packages_platform_browser_platform_browser_b":"./src/browser","ɵangular_packages_platform_browser_platform_browser_c":"./src/browser","ɵangular_packages_platform_browser_platform_browser_d":"./src/browser/meta","ɵangular_packages_platform_browser_platform_browser_e":"./src/browser/title","ɵangular_packages_platform_browser_platform_browser_f":"./src/browser/transfer_state","ɵangular_packages_platform_browser_platform_browser_g":"./src/dom/events/event_manager","ɵangular_packages_platform_browser_platform_browser_h":"./src/browser/server-transition","ɵangular_packages_platform_browser_platform_browser_i":"./src/browser/server-transition","ɵangular_packages_platform_browser_platform_browser_j":"./src/dom/debug/ng_probe","BrowserModule":"./src/browser","platformBrowser":"./src/browser","Meta":"./src/browser/meta","MetaDefinition":"./src/browser/meta","Title":"./src/browser/title","disableDebugTools":"./src/browser/tools/tools","enableDebugTools":"./src/browser/tools/tools","BrowserTransferStateModule":"./src/browser/transfer_state","StateKey":"./src/browser/transfer_state","TransferState":"./src/browser/transfer_state","makeStateKey":"./src/browser/transfer_state","By":"./src/dom/debug/by","DOCUMENT":"@angular/common","EVENT_MANAGER_PLUGINS":"./src/dom/events/event_manager","EventManager":"./src/dom/events/event_manager","HAMMER_GESTURE_CONFIG":"./src/dom/events/hammer_gestures","HAMMER_LOADER":"./src/dom/events/hammer_gestures","HammerGestureConfig":"./src/dom/events/hammer_gestures","HammerLoader":"./src/dom/events/hammer_gestures","DomSanitizer":"./src/security/dom_sanitization_service","SafeHtml":"./src/security/dom_sanitization_service","SafeResourceUrl":"./src/security/dom_sanitization_service","SafeScript":"./src/security/dom_sanitization_service","SafeStyle":"./src/security/dom_sanitization_service","SafeUrl":"./src/security/dom_sanitization_service","SafeValue":"./src/security/dom_sanitization_service","ɵBROWSER_SANITIZATION_PROVIDERS":"./src/browser","ɵINTERNAL_BROWSER_PLATFORM_PROVIDERS":"./src/browser","ɵinitDomAdapter":"./src/browser","ɵBrowserDomAdapter":"./src/browser/browser_adapter","ɵBrowserPlatformLocation":"./src/browser/location/browser_platform_location","ɵTRANSITION_ID":"./src/browser/server-transition","ɵBrowserGetTestability":"./src/browser/testability","ɵescapeHtml":"./src/browser/transfer_state","ɵELEMENT_PROBE_PROVIDERS":"./src/dom/debug/ng_probe","ɵDomAdapter":"./src/dom/dom_adapter","ɵgetDOM":"./src/dom/dom_adapter","ɵsetRootDomAdapter":"./src/dom/dom_adapter","ɵDomRendererFactory2":"./src/dom/dom_renderer","ɵNAMESPACE_URIS":"./src/dom/dom_renderer","ɵflattenStyles":"./src/dom/dom_renderer","ɵshimContentAttribute":"./src/dom/dom_renderer","ɵshimHostAttribute":"./src/dom/dom_renderer","ɵDomEventsPlugin":"./src/dom/events/dom_events","ɵHammerGesturesPlugin":"./src/dom/events/hammer_gestures","ɵKeyEventsPlugin":"./src/dom/events/key_events","ɵDomSharedStylesHost":"./src/dom/shared_styles_host","ɵSharedStylesHost":"./src/dom/shared_styles_host","ɵDomSanitizerImpl":"./src/security/dom_sanitization_service","VERSION":"./src/version","ɵangular_packages_platform_browser_platform_browser_k":"./src/browser/generic_browser_adapter"},"importAs":"@angular/platform-browser"}
\ No newline at end of file

testing.d.ts

@@ -1,5 +1,5 @@
/**
- * @license Angular v7.2.7
+ * @license Angular v7.2.8
* (c) 2010-2019 Google LLC. https://angular.io/
* License: MIT
*/