mirror of
https://code.equilibrium.co.ao/ITO/doneit-web.git
synced 2026-04-18 20:47:54 +00:00
1 line
231 KiB
JSON
1 line
231 KiB
JSON
{"ast":null,"code":"/**\n * @license Angular v14.3.0\n * (c) 2010-2022 Google LLC. https://angular.io/\n * License: MIT\n */\n\nimport { ɵDomAdapter, ɵsetRootDomAdapter, ɵparseCookieValue, ɵgetDOM, DOCUMENT, ɵPLATFORM_BROWSER_ID, XhrFactory, CommonModule } from '@angular/common';\nexport { ɵgetDOM } from '@angular/common';\nimport * as i0 from '@angular/core';\nimport { InjectionToken, ApplicationInitStatus, APP_INITIALIZER, Injector, ɵglobal, Injectable, Inject, ViewEncapsulation, APP_ID, RendererStyleFlags2, ɵinternalCreateApplication, ErrorHandler, ɵsetDocument, PLATFORM_ID, PLATFORM_INITIALIZER, createPlatformFactory, platformCore, ɵTESTABILITY_GETTER, ɵTESTABILITY, Testability, NgZone, TestabilityRegistry, ɵINJECTOR_SCOPE, RendererFactory2, ApplicationModule, NgModule, Optional, SkipSelf, ɵɵinject, ApplicationRef, inject, ɵConsole, forwardRef, SecurityContext, ɵallowSanitizationBypassAndThrow, ɵunwrapSafeValue, ɵ_sanitizeUrl, ɵ_sanitizeHtml, ɵbypassSanitizationTrustHtml, ɵbypassSanitizationTrustStyle, ɵbypassSanitizationTrustScript, ɵbypassSanitizationTrustUrl, ɵbypassSanitizationTrustResourceUrl, Version } from '@angular/core';\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source 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 */\nclass GenericBrowserDomAdapter extends ɵDomAdapter {\n constructor() {\n super(...arguments);\n this.supportsDOMEvents = true;\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source 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 `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 */\nclass BrowserDomAdapter extends GenericBrowserDomAdapter {\n static makeCurrent() {\n ɵsetRootDomAdapter(new BrowserDomAdapter());\n }\n onAndCancel(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 () => {\n el.removeEventListener(evt, listener, false);\n };\n }\n dispatchEvent(el, evt) {\n el.dispatchEvent(evt);\n }\n remove(node) {\n if (node.parentNode) {\n node.parentNode.removeChild(node);\n }\n }\n createElement(tagName, doc) {\n doc = doc || this.getDefaultDocument();\n return doc.createElement(tagName);\n }\n createHtmlDocument() {\n return document.implementation.createHTMLDocument('fakeTitle');\n }\n getDefaultDocument() {\n return document;\n }\n isElementNode(node) {\n return node.nodeType === Node.ELEMENT_NODE;\n }\n isShadowRoot(node) {\n return node instanceof DocumentFragment;\n }\n /** @deprecated No longer being used in Ivy code. To be removed in version 14. */\n getGlobalEventTarget(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 getBaseHref(doc) {\n const href = getBaseElementHref();\n return href == null ? null : relativePath(href);\n }\n resetBaseElement() {\n baseElement = null;\n }\n getUserAgent() {\n return window.navigator.userAgent;\n }\n getCookie(name) {\n return ɵparseCookieValue(document.cookie, name);\n }\n}\nlet baseElement = null;\nfunction getBaseElementHref() {\n baseElement = baseElement || document.querySelector('base');\n return baseElement ? baseElement.getAttribute('href') : null;\n}\n// based on urlUtils.js in AngularJS 1\nlet urlParsingNode;\nfunction relativePath(url) {\n urlParsingNode = urlParsingNode || document.createElement('a');\n urlParsingNode.setAttribute('href', url);\n const pathName = urlParsingNode.pathname;\n return pathName.charAt(0) === '/' ? pathName : `/${pathName}`;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source 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 */\nconst TRANSITION_ID = new InjectionToken('TRANSITION_ID');\nfunction appInitializerFactory(transitionId, document, 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 = document.querySelectorAll(`style[ng-transition=\"${transitionId}\"]`);\n for (let i = 0; i < styles.length; i++) {\n dom.remove(styles[i]);\n }\n });\n };\n}\nconst SERVER_TRANSITION_PROVIDERS = [{\n provide: APP_INITIALIZER,\n useFactory: appInitializerFactory,\n deps: [TRANSITION_ID, DOCUMENT, Injector],\n multi: true\n}];\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nclass BrowserGetTestability {\n addToWindow(registry) {\n ɵglobal['getAngularTestability'] = (elem, findInAncestors = 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 ɵglobal['getAllAngularTestabilities'] = () => registry.getAllTestabilities();\n ɵglobal['getAllAngularRootElements'] = () => registry.getAllRootElements();\n const whenAllStable = (callback /** TODO #9100 */) => {\n const testabilities = ɵglobal['getAllAngularTestabilities']();\n let count = testabilities.length;\n let didWork = false;\n const 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 (!ɵglobal['frameworkStabilizers']) {\n ɵglobal['frameworkStabilizers'] = [];\n }\n ɵglobal['frameworkStabilizers'].push(whenAllStable);\n }\n findTestabilityInTree(registry, elem, findInAncestors) {\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, elem.host, true);\n }\n return this.findTestabilityInTree(registry, elem.parentElement, true);\n }\n}\n\n/**\n * A factory for `HttpXhrBackend` that uses the `XMLHttpRequest` browser API.\n */\nclass BrowserXhr {\n build() {\n return new XMLHttpRequest();\n }\n}\nBrowserXhr.ɵfac = function BrowserXhr_Factory(t) {\n return new (t || BrowserXhr)();\n};\nBrowserXhr.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: BrowserXhr,\n factory: BrowserXhr.ɵfac\n});\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(BrowserXhr, [{\n type: Injectable\n }], null, null);\n})();\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source 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 */\nconst EVENT_MANAGER_PLUGINS = new InjectionToken('EventManagerPlugins');\n/**\n * An injectable service that provides event management for Angular\n * through a browser plug-in.\n *\n * @publicApi\n */\nclass EventManager {\n /**\n * Initializes an instance of the event-manager service.\n */\n constructor(plugins, _zone) {\n this._zone = _zone;\n this._eventNameToPlugin = new Map();\n plugins.forEach(p => 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 addEventListener(element, eventName, handler) {\n const 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 * @deprecated No longer being used in Ivy code. To be removed in version 14.\n */\n addGlobalEventListener(target, eventName, handler) {\n const 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 getZone() {\n return this._zone;\n }\n /** @internal */\n _findPluginFor(eventName) {\n const plugin = this._eventNameToPlugin.get(eventName);\n if (plugin) {\n return plugin;\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}\nEventManager.ɵfac = function EventManager_Factory(t) {\n return new (t || EventManager)(i0.ɵɵinject(EVENT_MANAGER_PLUGINS), i0.ɵɵinject(i0.NgZone));\n};\nEventManager.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: EventManager,\n factory: EventManager.ɵfac\n});\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(EventManager, [{\n type: Injectable\n }], function () {\n return [{\n type: undefined,\n decorators: [{\n type: Inject,\n args: [EVENT_MANAGER_PLUGINS]\n }]\n }, {\n type: i0.NgZone\n }];\n }, null);\n})();\nclass EventManagerPlugin {\n constructor(_doc) {\n this._doc = _doc;\n }\n addGlobalEventListener(element, eventName, handler) {\n const 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}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nclass SharedStylesHost {\n constructor() {\n /** @internal */\n this._stylesSet = new Set();\n }\n addStyles(styles) {\n const additions = new Set();\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 onStylesAdded(additions) {}\n getAllStyles() {\n return Array.from(this._stylesSet);\n }\n}\nSharedStylesHost.ɵfac = function SharedStylesHost_Factory(t) {\n return new (t || SharedStylesHost)();\n};\nSharedStylesHost.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: SharedStylesHost,\n factory: SharedStylesHost.ɵfac\n});\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(SharedStylesHost, [{\n type: Injectable\n }], null, null);\n})();\nclass DomSharedStylesHost extends SharedStylesHost {\n constructor(_doc) {\n super();\n this._doc = _doc;\n // Maps all registered host nodes to a list of style nodes that have been added to the host node.\n this._hostNodes = new Map();\n this._hostNodes.set(_doc.head, []);\n }\n _addStylesToHost(styles, host, styleNodes) {\n styles.forEach(style => {\n const styleEl = this._doc.createElement('style');\n styleEl.textContent = style;\n styleNodes.push(host.appendChild(styleEl));\n });\n }\n addHost(hostNode) {\n const styleNodes = [];\n this._addStylesToHost(this._stylesSet, hostNode, styleNodes);\n this._hostNodes.set(hostNode, styleNodes);\n }\n removeHost(hostNode) {\n const styleNodes = this._hostNodes.get(hostNode);\n if (styleNodes) {\n styleNodes.forEach(removeStyle);\n }\n this._hostNodes.delete(hostNode);\n }\n onStylesAdded(additions) {\n this._hostNodes.forEach((styleNodes, hostNode) => {\n this._addStylesToHost(additions, hostNode, styleNodes);\n });\n }\n ngOnDestroy() {\n this._hostNodes.forEach(styleNodes => styleNodes.forEach(removeStyle));\n }\n}\nDomSharedStylesHost.ɵfac = function DomSharedStylesHost_Factory(t) {\n return new (t || DomSharedStylesHost)(i0.ɵɵinject(DOCUMENT));\n};\nDomSharedStylesHost.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: DomSharedStylesHost,\n factory: DomSharedStylesHost.ɵfac\n});\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DomSharedStylesHost, [{\n type: Injectable\n }], function () {\n return [{\n type: undefined,\n decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }]\n }];\n }, null);\n})();\nfunction removeStyle(styleNode) {\n ɵgetDOM().remove(styleNode);\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst 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 'math': 'http://www.w3.org/1998/MathML/'\n};\nconst COMPONENT_REGEX = /%COMP%/g;\nconst NG_DEV_MODE$1 = typeof ngDevMode === 'undefined' || !!ngDevMode;\nconst COMPONENT_VARIABLE = '%COMP%';\nconst HOST_ATTR = `_nghost-${COMPONENT_VARIABLE}`;\nconst CONTENT_ATTR = `_ngcontent-${COMPONENT_VARIABLE}`;\nfunction shimContentAttribute(componentShortId) {\n return CONTENT_ATTR.replace(COMPONENT_REGEX, componentShortId);\n}\nfunction shimHostAttribute(componentShortId) {\n return HOST_ATTR.replace(COMPONENT_REGEX, componentShortId);\n}\nfunction flattenStyles(compId, styles, target) {\n for (let i = 0; i < styles.length; i++) {\n let style = styles[i];\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}\nfunction decoratePreventDefault(eventHandler) {\n // `DebugNode.triggerEventHandler` needs to know if the listener was created with\n // decoratePreventDefault or is a listener added outside the Angular context so it can handle the\n // two differently. In the first case, the special '__ngUnwrap__' token is passed to the unwrap\n // the listener (see below).\n return event => {\n // Ivy uses '__ngUnwrap__' as a special token that allows us to unwrap the function\n // so that it can be invoked programmatically by `DebugNode.triggerEventHandler`. The debug_node\n // can inspect the listener toString contents for the existence of this special token. Because\n // the token is a string literal, it is ensured to not be modified by compiled code.\n if (event === '__ngUnwrap__') {\n return eventHandler;\n }\n 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 return undefined;\n };\n}\nlet hasLoggedNativeEncapsulationWarning = false;\nclass DomRendererFactory2 {\n constructor(eventManager, sharedStylesHost, appId) {\n this.eventManager = eventManager;\n this.sharedStylesHost = sharedStylesHost;\n this.appId = appId;\n this.rendererByCompId = new Map();\n this.defaultRenderer = new DefaultDomRenderer2(eventManager);\n }\n createRenderer(element, type) {\n if (!element || !type) {\n return this.defaultRenderer;\n }\n switch (type.encapsulation) {\n case ViewEncapsulation.Emulated:\n {\n let renderer = this.rendererByCompId.get(type.id);\n if (!renderer) {\n renderer = new EmulatedEncapsulationDomRenderer2(this.eventManager, this.sharedStylesHost, type, this.appId);\n this.rendererByCompId.set(type.id, renderer);\n }\n renderer.applyToHost(element);\n return renderer;\n }\n // @ts-ignore TODO: Remove as part of FW-2290. TS complains about us dealing with an enum\n // value that is not known (but previously was the value for ViewEncapsulation.Native)\n case 1:\n case ViewEncapsulation.ShadowDom:\n // TODO(FW-2290): remove the `case 1:` fallback logic and the warning in v12.\n if ((typeof ngDevMode === 'undefined' || ngDevMode) &&\n // @ts-ignore TODO: Remove as part of FW-2290. TS complains about us dealing with an\n // enum value that is not known (but previously was the value for\n // ViewEncapsulation.Native)\n !hasLoggedNativeEncapsulationWarning && type.encapsulation === 1) {\n hasLoggedNativeEncapsulationWarning = true;\n console.warn('ViewEncapsulation.Native is no longer supported. Falling back to ViewEncapsulation.ShadowDom. The fallback will be removed in v12.');\n }\n return new ShadowDomRenderer(this.eventManager, this.sharedStylesHost, element, type);\n default:\n {\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 begin() {}\n end() {}\n}\nDomRendererFactory2.ɵfac = function DomRendererFactory2_Factory(t) {\n return new (t || DomRendererFactory2)(i0.ɵɵinject(EventManager), i0.ɵɵinject(DomSharedStylesHost), i0.ɵɵinject(APP_ID));\n};\nDomRendererFactory2.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: DomRendererFactory2,\n factory: DomRendererFactory2.ɵfac\n});\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DomRendererFactory2, [{\n type: Injectable\n }], function () {\n return [{\n type: EventManager\n }, {\n type: DomSharedStylesHost\n }, {\n type: undefined,\n decorators: [{\n type: Inject,\n args: [APP_ID]\n }]\n }];\n }, null);\n})();\nclass DefaultDomRenderer2 {\n constructor(eventManager) {\n this.eventManager = eventManager;\n this.data = Object.create(null);\n this.destroyNode = null;\n }\n destroy() {}\n createElement(name, namespace) {\n if (namespace) {\n // TODO: `|| namespace` was added in\n // https://github.com/angular/angular/commit/2b9cc8503d48173492c29f5a271b61126104fbdb to\n // support how Ivy passed around the namespace URI rather than short name at the time. It did\n // not, however extend the support to other parts of the system (setAttribute, setAttribute,\n // and the ServerRenderer). We should decide what exactly the semantics for dealing with\n // namespaces should be and make it consistent.\n // Related issues:\n // https://github.com/angular/angular/issues/44028\n // https://github.com/angular/angular/issues/44883\n return document.createElementNS(NAMESPACE_URIS[namespace] || namespace, name);\n }\n return document.createElement(name);\n }\n createComment(value) {\n return document.createComment(value);\n }\n createText(value) {\n return document.createTextNode(value);\n }\n appendChild(parent, newChild) {\n const targetParent = isTemplateNode(parent) ? parent.content : parent;\n targetParent.appendChild(newChild);\n }\n insertBefore(parent, newChild, refChild) {\n if (parent) {\n const targetParent = isTemplateNode(parent) ? parent.content : parent;\n targetParent.insertBefore(newChild, refChild);\n }\n }\n removeChild(parent, oldChild) {\n if (parent) {\n parent.removeChild(oldChild);\n }\n }\n selectRootElement(selectorOrNode, preserveContent) {\n let el = typeof selectorOrNode === 'string' ? document.querySelector(selectorOrNode) : 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 parentNode(node) {\n return node.parentNode;\n }\n nextSibling(node) {\n return node.nextSibling;\n }\n setAttribute(el, name, value, namespace) {\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 removeAttribute(el, name, namespace) {\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 addClass(el, name) {\n el.classList.add(name);\n }\n removeClass(el, name) {\n el.classList.remove(name);\n }\n setStyle(el, style, value, flags) {\n if (flags & (RendererStyleFlags2.DashCase | RendererStyleFlags2.Important)) {\n el.style.setProperty(style, value, flags & RendererStyleFlags2.Important ? 'important' : '');\n } else {\n el.style[style] = value;\n }\n }\n removeStyle(el, style, flags) {\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 setProperty(el, name, value) {\n NG_DEV_MODE$1 && checkNoSyntheticProp(name, 'property');\n el[name] = value;\n }\n setValue(node, value) {\n node.nodeValue = value;\n }\n listen(target, event, callback) {\n NG_DEV_MODE$1 && 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}\nconst AT_CHARCODE = (() => '@'.charCodeAt(0))();\nfunction checkNoSyntheticProp(name, nameKind) {\n if (name.charCodeAt(0) === AT_CHARCODE) {\n throw new Error(`Unexpected synthetic ${nameKind} ${name} found. Please make sure that:\n - Either \\`BrowserAnimationsModule\\` or \\`NoopAnimationsModule\\` are imported in your application.\n - There is corresponding configuration for the animation named \\`${name}\\` defined in the \\`animations\\` field of the \\`@Component\\` decorator (see https://angular.io/api/core/Component#animations).`);\n }\n}\nfunction isTemplateNode(node) {\n return node.tagName === 'TEMPLATE' && node.content !== undefined;\n}\nclass EmulatedEncapsulationDomRenderer2 extends DefaultDomRenderer2 {\n constructor(eventManager, sharedStylesHost, component, appId) {\n super(eventManager);\n this.component = component;\n const styles = flattenStyles(appId + '-' + component.id, component.styles, []);\n sharedStylesHost.addStyles(styles);\n this.contentAttr = shimContentAttribute(appId + '-' + component.id);\n this.hostAttr = shimHostAttribute(appId + '-' + component.id);\n }\n applyToHost(element) {\n super.setAttribute(element, this.hostAttr, '');\n }\n createElement(parent, name) {\n const el = super.createElement(parent, name);\n super.setAttribute(el, this.contentAttr, '');\n return el;\n }\n}\nclass ShadowDomRenderer extends DefaultDomRenderer2 {\n constructor(eventManager, sharedStylesHost, hostEl, component) {\n super(eventManager);\n this.sharedStylesHost = sharedStylesHost;\n this.hostEl = hostEl;\n this.shadowRoot = hostEl.attachShadow({\n mode: 'open'\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 nodeOrShadowRoot(node) {\n return node === this.hostEl ? this.shadowRoot : node;\n }\n destroy() {\n this.sharedStylesHost.removeHost(this.shadowRoot);\n }\n appendChild(parent, newChild) {\n return super.appendChild(this.nodeOrShadowRoot(parent), newChild);\n }\n insertBefore(parent, newChild, refChild) {\n return super.insertBefore(this.nodeOrShadowRoot(parent), newChild, refChild);\n }\n removeChild(parent, oldChild) {\n return super.removeChild(this.nodeOrShadowRoot(parent), oldChild);\n }\n parentNode(node) {\n return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(node)));\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nclass DomEventsPlugin extends EventManagerPlugin {\n constructor(doc) {\n super(doc);\n }\n // This plugin should come last in the list of plugins, because it accepts all\n // events.\n supports(eventName) {\n return true;\n }\n addEventListener(element, eventName, handler) {\n element.addEventListener(eventName, handler, false);\n return () => this.removeEventListener(element, eventName, handler);\n }\n removeEventListener(target, eventName, callback) {\n return target.removeEventListener(eventName, callback);\n }\n}\nDomEventsPlugin.ɵfac = function DomEventsPlugin_Factory(t) {\n return new (t || DomEventsPlugin)(i0.ɵɵinject(DOCUMENT));\n};\nDomEventsPlugin.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: DomEventsPlugin,\n factory: DomEventsPlugin.ɵfac\n});\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DomEventsPlugin, [{\n type: Injectable\n }], function () {\n return [{\n type: undefined,\n decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }]\n }];\n }, null);\n})();\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source 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 */\nconst MODIFIER_KEYS = ['alt', 'control', 'meta', 'shift'];\n// The following values are here for cross-browser compatibility and to match the W3C standard\n// cf https://www.w3.org/TR/DOM-Level-3-Events-key/\nconst _keyMap = {\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 * Retrieves modifiers from key-event objects.\n */\nconst MODIFIER_KEY_GETTERS = {\n 'alt': event => event.altKey,\n 'control': event => event.ctrlKey,\n 'meta': event => event.metaKey,\n 'shift': event => event.shiftKey\n};\n/**\n * @publicApi\n * A browser plug-in that provides support for handling of key events in Angular.\n */\nclass 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(doc) {\n 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) {\n 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, eventName, handler) {\n const parsedEvent = KeyEventsPlugin.parseEventName(eventName);\n const outsideHandler = KeyEventsPlugin.eventCallback(parsedEvent['fullKey'], handler, this.manager.getZone());\n return this.manager.getZone().runOutsideAngular(() => {\n return ɵgetDOM().onAndCancel(element, parsedEvent['domEventName'], outsideHandler);\n });\n }\n /**\n * Parses the user provided full keyboard event definition and normalizes it for\n * later internal use. It ensures the string is all lowercase, converts special\n * characters to a standard spelling, and orders all the values consistently.\n *\n * @param eventName The name of the key event to listen for.\n * @returns an object with the full, normalized string, and the dom event name\n * or null in the case when the event doesn't match a keyboard event.\n */\n static parseEventName(eventName) {\n const parts = eventName.toLowerCase().split('.');\n const domEventName = parts.shift();\n if (parts.length === 0 || !(domEventName === 'keydown' || domEventName === 'keyup')) {\n return null;\n }\n const key = KeyEventsPlugin._normalizeKey(parts.pop());\n let fullKey = '';\n let codeIX = parts.indexOf('code');\n if (codeIX > -1) {\n parts.splice(codeIX, 1);\n fullKey = 'code.';\n }\n MODIFIER_KEYS.forEach(modifierName => {\n const 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 // NOTE: Please don't rewrite this as so, as it will break JSCompiler property renaming.\n // The code must remain in the `result['domEventName']` form.\n // return {domEventName, fullKey};\n const result = {};\n result['domEventName'] = domEventName;\n result['fullKey'] = fullKey;\n return result;\n }\n /**\n * Determines whether the actual keys pressed match the configured key code string.\n * The `fullKeyCode` event is normalized in the `parseEventName` method when the\n * event is attached to the DOM during the `addEventListener` call. This is unseen\n * by the end user and is normalized for internal consistency and parsing.\n *\n * @param event The keyboard event.\n * @param fullKeyCode The normalized user defined expected key event string\n * @returns boolean.\n */\n static matchEventFullKeyCode(event, fullKeyCode) {\n let keycode = _keyMap[event.key] || event.key;\n let key = '';\n if (fullKeyCode.indexOf('code.') > -1) {\n keycode = event.code;\n key = 'code.';\n }\n // the keycode could be unidentified so we have to check here\n if (keycode == null || !keycode) return false;\n keycode = keycode.toLowerCase();\n if (keycode === ' ') {\n keycode = 'space'; // for readability\n } else if (keycode === '.') {\n keycode = 'dot'; // because '.' is used as a separator in event names\n }\n\n MODIFIER_KEYS.forEach(modifierName => {\n if (modifierName !== keycode) {\n const modifierGetter = MODIFIER_KEY_GETTERS[modifierName];\n if (modifierGetter(event)) {\n key += modifierName + '.';\n }\n }\n });\n key += keycode;\n return key === fullKeyCode;\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, handler, zone) {\n return event => {\n if (KeyEventsPlugin.matchEventFullKeyCode(event, fullKey)) {\n zone.runGuarded(() => handler(event));\n }\n };\n }\n /** @internal */\n static _normalizeKey(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}\nKeyEventsPlugin.ɵfac = function KeyEventsPlugin_Factory(t) {\n return new (t || KeyEventsPlugin)(i0.ɵɵinject(DOCUMENT));\n};\nKeyEventsPlugin.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: KeyEventsPlugin,\n factory: KeyEventsPlugin.ɵfac\n});\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(KeyEventsPlugin, [{\n type: Injectable\n }], function () {\n return [{\n type: undefined,\n decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }]\n }];\n }, null);\n})();\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst NG_DEV_MODE = typeof ngDevMode === 'undefined' || !!ngDevMode;\n/**\n * Bootstraps an instance of an Angular application and renders a standalone component as the\n * application's root component. More information about standalone components can be found in [this\n * guide](guide/standalone-components).\n *\n * @usageNotes\n * The root component passed into this function *must* be a standalone one (should have the\n * `standalone: true` flag in the `@Component` decorator config).\n *\n * ```typescript\n * @Component({\n * standalone: true,\n * template: 'Hello world!'\n * })\n * class RootComponent {}\n *\n * const appRef: ApplicationRef = await bootstrapApplication(RootComponent);\n * ```\n *\n * You can add the list of providers that should be available in the application injector by\n * specifying the `providers` field in an object passed as the second argument:\n *\n * ```typescript\n * await bootstrapApplication(RootComponent, {\n * providers: [\n * {provide: BACKEND_URL, useValue: 'https://yourdomain.com/api'}\n * ]\n * });\n * ```\n *\n * The `importProvidersFrom` helper method can be used to collect all providers from any\n * existing NgModule (and transitively from all NgModules that it imports):\n *\n * ```typescript\n * await bootstrapApplication(RootComponent, {\n * providers: [\n * importProvidersFrom(SomeNgModule)\n * ]\n * });\n * ```\n *\n * Note: the `bootstrapApplication` method doesn't include [Testability](api/core/Testability) by\n * default. You can add [Testability](api/core/Testability) by getting the list of necessary\n * providers using `provideProtractorTestingSupport()` function and adding them into the `providers`\n * array, for example:\n *\n * ```typescript\n * import {provideProtractorTestingSupport} from '@angular/platform-browser';\n *\n * await bootstrapApplication(RootComponent, {providers: [provideProtractorTestingSupport()]});\n * ```\n *\n * @param rootComponent A reference to a standalone component that should be rendered.\n * @param options Extra configuration for the bootstrap operation, see `ApplicationConfig` for\n * additional info.\n * @returns A promise that returns an `ApplicationRef` instance once resolved.\n *\n * @publicApi\n * @developerPreview\n */\nfunction bootstrapApplication(rootComponent, options) {\n return ɵinternalCreateApplication({\n rootComponent,\n ...createProvidersConfig(options)\n });\n}\n/**\n * Create an instance of an Angular application without bootstrapping any components. This is useful\n * for the situation where one wants to decouple application environment creation (a platform and\n * associated injectors) from rendering components on a screen. Components can be subsequently\n * bootstrapped on the returned `ApplicationRef`.\n *\n * @param options Extra configuration for the application environment, see `ApplicationConfig` for\n * additional info.\n * @returns A promise that returns an `ApplicationRef` instance once resolved.\n *\n * @publicApi\n * @developerPreview\n */\nfunction createApplication(options) {\n return ɵinternalCreateApplication(createProvidersConfig(options));\n}\nfunction createProvidersConfig(options) {\n return {\n appProviders: [...BROWSER_MODULE_PROVIDERS, ...(options?.providers ?? [])],\n platformProviders: INTERNAL_BROWSER_PLATFORM_PROVIDERS\n };\n}\n/**\n * Returns a set of providers required to setup [Testability](api/core/Testability) for an\n * application bootstrapped using the `bootstrapApplication` function. The set of providers is\n * needed to support testing an application with Protractor (which relies on the Testability APIs\n * to be present).\n *\n * @returns An array of providers required to setup Testability for an application and make it\n * available for testing using Protractor.\n *\n * @developerPreview\n * @publicApi\n */\nfunction provideProtractorTestingSupport() {\n // Return a copy to prevent changes to the original array in case any in-place\n // alterations are performed to the `provideProtractorTestingSupport` call results in app code.\n return [...TESTABILITY_PROVIDERS];\n}\nfunction initDomAdapter() {\n BrowserDomAdapter.makeCurrent();\n}\nfunction errorHandler() {\n return new ErrorHandler();\n}\nfunction _document() {\n // Tell ivy about the global document\n ɵsetDocument(document);\n return document;\n}\nconst INTERNAL_BROWSER_PLATFORM_PROVIDERS = [{\n provide: PLATFORM_ID,\n useValue: ɵPLATFORM_BROWSER_ID\n}, {\n provide: PLATFORM_INITIALIZER,\n useValue: initDomAdapter,\n multi: true\n}, {\n provide: DOCUMENT,\n useFactory: _document,\n deps: []\n}];\n/**\n * A factory function that returns a `PlatformRef` instance associated with browser service\n * providers.\n *\n * @publicApi\n */\nconst platformBrowser = createPlatformFactory(platformCore, 'browser', INTERNAL_BROWSER_PLATFORM_PROVIDERS);\n/**\n * Internal marker to signal whether providers from the `BrowserModule` are already present in DI.\n * This is needed to avoid loading `BrowserModule` providers twice. We can't rely on the\n * `BrowserModule` presence itself, since the standalone-based bootstrap just imports\n * `BrowserModule` providers without referencing the module itself.\n */\nconst BROWSER_MODULE_PROVIDERS_MARKER = new InjectionToken(NG_DEV_MODE ? 'BrowserModule Providers Marker' : '');\nconst TESTABILITY_PROVIDERS = [{\n provide: ɵTESTABILITY_GETTER,\n useClass: BrowserGetTestability,\n deps: []\n}, {\n provide: ɵTESTABILITY,\n useClass: Testability,\n deps: [NgZone, TestabilityRegistry, ɵTESTABILITY_GETTER]\n}, {\n provide: Testability,\n useClass: Testability,\n deps: [NgZone, TestabilityRegistry, ɵTESTABILITY_GETTER]\n}];\nconst BROWSER_MODULE_PROVIDERS = [{\n provide: ɵINJECTOR_SCOPE,\n useValue: 'root'\n}, {\n provide: ErrorHandler,\n useFactory: errorHandler,\n 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,\n useClass: KeyEventsPlugin,\n multi: true,\n deps: [DOCUMENT]\n}, {\n provide: DomRendererFactory2,\n useClass: DomRendererFactory2,\n deps: [EventManager, DomSharedStylesHost, APP_ID]\n}, {\n provide: RendererFactory2,\n useExisting: DomRendererFactory2\n}, {\n provide: SharedStylesHost,\n useExisting: DomSharedStylesHost\n}, {\n provide: DomSharedStylesHost,\n useClass: DomSharedStylesHost,\n deps: [DOCUMENT]\n}, {\n provide: EventManager,\n useClass: EventManager,\n deps: [EVENT_MANAGER_PLUGINS, NgZone]\n}, {\n provide: XhrFactory,\n useClass: BrowserXhr,\n deps: []\n}, NG_DEV_MODE ? {\n provide: BROWSER_MODULE_PROVIDERS_MARKER,\n useValue: true\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 */\nclass BrowserModule {\n constructor(providersAlreadyPresent) {\n if (NG_DEV_MODE && providersAlreadyPresent) {\n throw new Error(`Providers from the \\`BrowserModule\\` have already been loaded. If you need access ` + `to common directives such as NgIf and NgFor, import the \\`CommonModule\\` instead.`);\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) {\n return {\n ngModule: BrowserModule,\n providers: [{\n provide: APP_ID,\n useValue: params.appId\n }, {\n provide: TRANSITION_ID,\n useExisting: APP_ID\n }, SERVER_TRANSITION_PROVIDERS]\n };\n }\n}\nBrowserModule.ɵfac = function BrowserModule_Factory(t) {\n return new (t || BrowserModule)(i0.ɵɵinject(BROWSER_MODULE_PROVIDERS_MARKER, 12));\n};\nBrowserModule.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: BrowserModule,\n exports: [CommonModule, ApplicationModule]\n});\nBrowserModule.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n providers: [...BROWSER_MODULE_PROVIDERS, ...TESTABILITY_PROVIDERS],\n imports: [CommonModule, ApplicationModule]\n});\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(BrowserModule, [{\n type: NgModule,\n args: [{\n providers: [...BROWSER_MODULE_PROVIDERS, ...TESTABILITY_PROVIDERS],\n exports: [CommonModule, ApplicationModule]\n }]\n }], function () {\n return [{\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: SkipSelf\n }, {\n type: Inject,\n args: [BROWSER_MODULE_PROVIDERS_MARKER]\n }]\n }];\n }, null);\n})();\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source 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 * Factory to create a `Meta` service instance for the current DOM document.\n */\nfunction createMeta() {\n return new Meta(ɵɵinject(DOCUMENT));\n}\n/**\n * A service for managing HTML `<meta>` tags.\n *\n * Properties of the `MetaDefinition` object match the attributes of the\n * HTML `<meta>` tag. These tags define document metadata that is important for\n * things like configuring a Content Security Policy, defining browser compatibility\n * and security settings, setting HTTP Headers, defining rich content for social sharing,\n * and Search Engine Optimization (SEO).\n *\n * To identify specific `<meta>` tags in a document, use an attribute selection\n * string in the format `\"tag_attribute='value string'\"`.\n * For example, an `attrSelector` value of `\"name='description'\"` matches a tag\n * whose `name` attribute has the value `\"description\"`.\n * Selectors are used with the `querySelector()` Document method,\n * in the format `meta[{attrSelector}]`.\n *\n * @see [HTML meta tag](https://developer.mozilla.org/docs/Web/HTML/Element/meta)\n * @see [Document.querySelector()](https://developer.mozilla.org/docs/Web/API/Document/querySelector)\n *\n *\n * @publicApi\n */\nclass Meta {\n constructor(_doc) {\n this._doc = _doc;\n this._dom = ɵgetDOM();\n }\n /**\n * Retrieves or creates a specific `<meta>` tag element in the current HTML document.\n * In searching for an existing tag, Angular attempts to match the `name` or `property` attribute\n * values in the provided tag definition, and verifies that all other attribute values are equal.\n * If an existing element is found, it is returned and is not modified in any way.\n * @param tag The definition of a `<meta>` element to match or create.\n * @param forceCreation True to create a new element without checking whether one already exists.\n * @returns The existing element with the same attributes and values if found,\n * the new element if no match is found, or `null` if the tag parameter is not defined.\n */\n addTag(tag, forceCreation = false) {\n if (!tag) return null;\n return this._getOrCreateElement(tag, forceCreation);\n }\n /**\n * Retrieves or creates a set of `<meta>` tag elements in the current HTML document.\n * In searching for an existing tag, Angular attempts to match the `name` or `property` attribute\n * values in the provided tag definition, and verifies that all other attribute values are equal.\n * @param tags An array of tag definitions to match or create.\n * @param forceCreation True to create new elements without checking whether they already exist.\n * @returns The matching elements if found, or the new elements.\n */\n addTags(tags, forceCreation = false) {\n if (!tags) return [];\n return tags.reduce((result, tag) => {\n if (tag) {\n result.push(this._getOrCreateElement(tag, forceCreation));\n }\n return result;\n }, []);\n }\n /**\n * Retrieves a `<meta>` tag element in the current HTML document.\n * @param attrSelector The tag attribute and value to match against, in the format\n * `\"tag_attribute='value string'\"`.\n * @returns The matching element, if any.\n */\n getTag(attrSelector) {\n if (!attrSelector) return null;\n return this._doc.querySelector(`meta[${attrSelector}]`) || null;\n }\n /**\n * Retrieves a set of `<meta>` tag elements in the current HTML document.\n * @param attrSelector The tag attribute and value to match against, in the format\n * `\"tag_attribute='value string'\"`.\n * @returns The matching elements, if any.\n */\n getTags(attrSelector) {\n if (!attrSelector) return [];\n const list /*NodeList*/ = this._doc.querySelectorAll(`meta[${attrSelector}]`);\n return list ? [].slice.call(list) : [];\n }\n /**\n * Modifies an existing `<meta>` tag element in the current HTML document.\n * @param tag The tag description with which to replace the existing tag content.\n * @param selector A tag attribute and value to match against, to identify\n * an existing tag. A string in the format `\"tag_attribute=`value string`\"`.\n * If not supplied, matches a tag with the same `name` or `property` attribute value as the\n * replacement tag.\n * @return The modified element.\n */\n updateTag(tag, selector) {\n if (!tag) return null;\n selector = selector || this._parseSelector(tag);\n const meta = this.getTag(selector);\n if (meta) {\n return this._setMetaElementAttributes(tag, meta);\n }\n return this._getOrCreateElement(tag, true);\n }\n /**\n * Removes an existing `<meta>` tag element from the current HTML document.\n * @param attrSelector A tag attribute and value to match against, to identify\n * an existing tag. A string in the format `\"tag_attribute=`value string`\"`.\n */\n removeTag(attrSelector) {\n this.removeTagElement(this.getTag(attrSelector));\n }\n /**\n * Removes an existing `<meta>` tag element from the current HTML document.\n * @param meta The tag definition to match against to identify an existing tag.\n */\n removeTagElement(meta) {\n if (meta) {\n this._dom.remove(meta);\n }\n }\n _getOrCreateElement(meta, forceCreation = false) {\n if (!forceCreation) {\n const selector = this._parseSelector(meta);\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 const elem = this.getTags(selector).filter(elem => this._containsAttributes(meta, elem))[0];\n if (elem !== undefined) return elem;\n }\n const element = this._dom.createElement('meta');\n this._setMetaElementAttributes(meta, element);\n const head = this._doc.getElementsByTagName('head')[0];\n head.appendChild(element);\n return element;\n }\n _setMetaElementAttributes(tag, el) {\n Object.keys(tag).forEach(prop => el.setAttribute(this._getMetaKeyMap(prop), tag[prop]));\n return el;\n }\n _parseSelector(tag) {\n const attr = tag.name ? 'name' : 'property';\n return `${attr}=\"${tag[attr]}\"`;\n }\n _containsAttributes(tag, elem) {\n return Object.keys(tag).every(key => elem.getAttribute(this._getMetaKeyMap(key)) === tag[key]);\n }\n _getMetaKeyMap(prop) {\n return META_KEYS_MAP[prop] || prop;\n }\n}\nMeta.ɵfac = function Meta_Factory(t) {\n return new (t || Meta)(i0.ɵɵinject(DOCUMENT));\n};\nMeta.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: Meta,\n factory: function Meta_Factory(t) {\n let r = null;\n if (t) {\n r = new t();\n } else {\n r = createMeta();\n }\n return r;\n },\n providedIn: 'root'\n});\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(Meta, [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n useFactory: createMeta,\n deps: []\n }]\n }], function () {\n return [{\n type: undefined,\n decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }]\n }];\n }, null);\n})();\n/**\n * Mapping for MetaDefinition properties with their correct meta attribute names\n */\nconst META_KEYS_MAP = {\n httpEquiv: 'http-equiv'\n};\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source 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 * Factory to create Title service.\n */\nfunction createTitle() {\n return new Title(ɵɵ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 */\nclass Title {\n constructor(_doc) {\n this._doc = _doc;\n }\n /**\n * Get the title of the current HTML document.\n */\n getTitle() {\n return this._doc.title;\n }\n /**\n * Set the title of the current HTML document.\n * @param newTitle\n */\n setTitle(newTitle) {\n this._doc.title = newTitle || '';\n }\n}\nTitle.ɵfac = function Title_Factory(t) {\n return new (t || Title)(i0.ɵɵinject(DOCUMENT));\n};\nTitle.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: Title,\n factory: function Title_Factory(t) {\n let r = null;\n if (t) {\n r = new t();\n } else {\n r = createTitle();\n }\n return r;\n },\n providedIn: 'root'\n});\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(Title, [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n useFactory: createTitle,\n deps: []\n }]\n }], function () {\n return [{\n type: undefined,\n decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }]\n }];\n }, null);\n})();\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst CAMEL_CASE_REGEXP = /([A-Z])/g;\nconst DASH_CASE_REGEXP = /-([a-z])/g;\nfunction camelCaseToDashCase(input) {\n return input.replace(CAMEL_CASE_REGEXP, (...m) => '-' + m[1].toLowerCase());\n}\nfunction dashCaseToCamelCase(input) {\n return input.replace(DASH_CASE_REGEXP, (...m) => m[1].toUpperCase());\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 */\nfunction 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 const ng = ɵglobal['ng'] = ɵglobal['ng'] || {};\n ng[name] = value;\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst win = typeof window !== 'undefined' && window || {};\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nclass ChangeDetectionPerfRecord {\n constructor(msPerTick, numTicks) {\n this.msPerTick = msPerTick;\n this.numTicks = numTicks;\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 */\nclass AngularProfiler {\n constructor(ref) {\n 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) {\n const record = config && config['record'];\n const profileName = 'Change Detection';\n // Profiler is not available in Android browsers without dev tools opened\n const isProfilerAvailable = win.console.profile != null;\n if (record && isProfilerAvailable) {\n win.console.profile(profileName);\n }\n const start = performanceNow();\n let numTicks = 0;\n while (numTicks < 5 || performanceNow() - start < 500) {\n this.appRef.tick();\n numTicks++;\n }\n const end = performanceNow();\n if (record && isProfilerAvailable) {\n win.console.profileEnd(profileName);\n }\n const 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}\nfunction performanceNow() {\n return win.performance && win.performance.now ? win.performance.now() : new Date().getTime();\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst 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 */\nfunction enableDebugTools(ref) {\n exportNgVar(PROFILER_GLOBAL_NAME, new AngularProfiler(ref));\n return ref;\n}\n/**\n * Disables Angular tools.\n *\n * @publicApi\n */\nfunction disableDebugTools() {\n exportNgVar(PROFILER_GLOBAL_NAME, null);\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nfunction escapeHtml(text) {\n const escapedText = {\n '&': '&a;',\n '\"': '&q;',\n '\\'': '&s;',\n '<': '&l;',\n '>': '&g;'\n };\n return text.replace(/[&\"'<>]/g, s => escapedText[s]);\n}\nfunction unescapeHtml(text) {\n const unescapedText = {\n '&a;': '&',\n '&q;': '\"',\n '&s;': '\\'',\n '&l;': '<',\n '&g;': '>'\n };\n return text.replace(/&[^;]+;/g, s => 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 */\nfunction 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 * The `TransferState` is available as an injectable token.\n * On the client, just inject this token using DI and use it, it will be lazily initialized.\n * On the server it's already included if `renderApplication` function is used. Otherwise, import\n * the `ServerTransferStateModule` module to make the `TransferState` available.\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 deserialized in a\n * non-lossy manner.\n *\n * @publicApi\n */\nclass TransferState {\n constructor() {\n this.store = {};\n this.onSerializeCallbacks = {};\n }\n /**\n * Get the value corresponding to a key. Return `defaultValue` if key is not found.\n */\n get(key, defaultValue) {\n return this.store[key] !== undefined ? this.store[key] : defaultValue;\n }\n /**\n * Set the value corresponding to a key.\n */\n set(key, value) {\n this.store[key] = value;\n }\n /**\n * Remove a key from the store.\n */\n remove(key) {\n delete this.store[key];\n }\n /**\n * Test whether a key exists in the store.\n */\n hasKey(key) {\n return this.store.hasOwnProperty(key);\n }\n /**\n * Indicates whether the state is empty.\n */\n get isEmpty() {\n return Object.keys(this.store).length === 0;\n }\n /**\n * Register a callback to provide the value for a key when `toJson` is called.\n */\n onSerialize(key, callback) {\n this.onSerializeCallbacks[key] = callback;\n }\n /**\n * Serialize the current state of the store to JSON.\n */\n toJson() {\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}\nTransferState.ɵfac = function TransferState_Factory(t) {\n return new (t || TransferState)();\n};\nTransferState.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: TransferState,\n factory: function () {\n return (() => {\n const doc = inject(DOCUMENT);\n const appId = inject(APP_ID);\n const state = new TransferState();\n state.store = retrieveTransferredState(doc, appId);\n return state;\n })();\n },\n providedIn: 'root'\n});\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(TransferState, [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n useFactory: () => {\n const doc = inject(DOCUMENT);\n const appId = inject(APP_ID);\n const state = new TransferState();\n state.store = retrieveTransferredState(doc, appId);\n return state;\n }\n }]\n }], null, null);\n})();\nfunction retrieveTransferredState(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 const script = doc.getElementById(appId + '-state');\n let initialState = {};\n if (script && script.textContent) {\n try {\n // Avoid using any here as it triggers lint errors in google3 (any is not allowed).\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 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 * @deprecated no longer needed, you can inject the `TransferState` in an app without providing\n * this module.\n */\nclass BrowserTransferStateModule {}\nBrowserTransferStateModule.ɵfac = function BrowserTransferStateModule_Factory(t) {\n return new (t || BrowserTransferStateModule)();\n};\nBrowserTransferStateModule.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: BrowserTransferStateModule\n});\nBrowserTransferStateModule.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({});\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(BrowserTransferStateModule, [{\n type: NgModule,\n args: [{}]\n }], null, null);\n})();\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source 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 */\nclass By {\n /**\n * Match all nodes.\n *\n * @usageNotes\n * ### Example\n *\n * {@example platform-browser/dom/debug/ts/by/by.ts region='by_all'}\n */\n static all() {\n return () => true;\n }\n /**\n * Match elements by the given CSS selector.\n *\n * @usageNotes\n * ### Example\n *\n * {@example platform-browser/dom/debug/ts/by/by.ts region='by_css'}\n */\n static css(selector) {\n return debugElement => {\n return debugElement.nativeElement != null ? elementMatches(debugElement.nativeElement, selector) : false;\n };\n }\n /**\n * Match nodes that have the given directive present.\n *\n * @usageNotes\n * ### Example\n *\n * {@example platform-browser/dom/debug/ts/by/by.ts region='by_directive'}\n */\n static directive(type) {\n return debugNode => debugNode.providerTokens.indexOf(type) !== -1;\n }\n}\nfunction elementMatches(n, selector) {\n if (ɵgetDOM().isElementNode(n)) {\n return n.matches && n.matches(selector) || n.msMatchesSelector && n.msMatchesSelector(selector) || n.webkitMatchesSelector && n.webkitMatchesSelector(selector);\n }\n return false;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source 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 */\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 'doubletap': true\n};\n/**\n * DI token for providing [HammerJS](https://hammerjs.github.io/) support to Angular.\n * @see `HammerGestureConfig`\n *\n * @ngModule HammerModule\n * @publicApi\n */\nconst HAMMER_GESTURE_CONFIG = new InjectionToken('HammerGestureConfig');\n/**\n * Injection token used to provide a {@link HammerLoader} to Angular.\n *\n * @publicApi\n */\nconst HAMMER_LOADER = new InjectionToken('HammerLoader');\n/**\n * An injectable [HammerJS Manager](https://hammerjs.github.io/api/#hammermanager)\n * for gesture recognition. Configures specific event recognition.\n * @publicApi\n */\nclass HammerGestureConfig {\n constructor() {\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](https://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](https://hammerjs.github.io/).\n *\n */\n this.overrides = {};\n }\n /**\n * Creates a [HammerJS Manager](https://hammerjs.github.io/api/#hammermanager)\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) {\n const mc = new Hammer(element, this.options);\n mc.get('pinch').set({\n enable: true\n });\n mc.get('rotate').set({\n enable: true\n });\n for (const eventName in this.overrides) {\n mc.get(eventName).set(this.overrides[eventName]);\n }\n return mc;\n }\n}\nHammerGestureConfig.ɵfac = function HammerGestureConfig_Factory(t) {\n return new (t || HammerGestureConfig)();\n};\nHammerGestureConfig.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: HammerGestureConfig,\n factory: HammerGestureConfig.ɵfac\n});\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(HammerGestureConfig, [{\n type: Injectable\n }], null, null);\n})();\n/**\n * Event plugin that adds Hammer support to an application.\n *\n * @ngModule HammerModule\n */\nclass HammerGesturesPlugin extends EventManagerPlugin {\n constructor(doc, _config, console, loader) {\n super(doc);\n this._config = _config;\n this.console = console;\n this.loader = loader;\n this._loaderPromise = null;\n }\n supports(eventName) {\n if (!EVENT_NAMES.hasOwnProperty(eventName.toLowerCase()) && !this.isCustomEvent(eventName)) {\n return false;\n }\n if (!window.Hammer && !this.loader) {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n this.console.warn(`The \"${eventName}\" event cannot be bound because Hammer.JS is not ` + `loaded and no custom loader has been specified.`);\n }\n return false;\n }\n return true;\n }\n addEventListener(element, eventName, handler) {\n const 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._loaderPromise = this._loaderPromise || zone.runOutsideAngular(() => 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 = () => {\n cancelRegistration = true;\n };\n zone.runOutsideAngular(() => this._loaderPromise.then(() => {\n // If Hammer isn't actually loaded when the custom loader resolves, give up.\n if (!window.Hammer) {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n this.console.warn(`The custom HAMMER_LOADER completed, but Hammer.JS is not present.`);\n }\n deregister = () => {};\n return;\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\n // removal.\n deregister = this.addEventListener(element, eventName, handler);\n }\n }).catch(() => {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n this.console.warn(`The \"${eventName}\" event cannot be bound because the custom ` + `Hammer.JS loader failed.`);\n }\n deregister = () => {};\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 () => {\n 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) {\n zone.runGuarded(function () {\n handler(eventObj);\n });\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 isCustomEvent(eventName) {\n return this._config.events.indexOf(eventName) > -1;\n }\n}\nHammerGesturesPlugin.ɵfac = function HammerGesturesPlugin_Factory(t) {\n return new (t || HammerGesturesPlugin)(i0.ɵɵinject(DOCUMENT), i0.ɵɵinject(HAMMER_GESTURE_CONFIG), i0.ɵɵinject(i0.ɵConsole), i0.ɵɵinject(HAMMER_LOADER, 8));\n};\nHammerGesturesPlugin.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: HammerGesturesPlugin,\n factory: HammerGesturesPlugin.ɵfac\n});\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(HammerGesturesPlugin, [{\n type: Injectable\n }], function () {\n return [{\n type: undefined,\n decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }]\n }, {\n type: HammerGestureConfig,\n decorators: [{\n type: Inject,\n args: [HAMMER_GESTURE_CONFIG]\n }]\n }, {\n type: i0.ɵConsole\n }, {\n type: undefined,\n decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [HAMMER_LOADER]\n }]\n }];\n }, null);\n})();\n/**\n * Adds support for HammerJS.\n *\n * Import this module at the root of your application so that Angular can work with\n * HammerJS to detect gesture events.\n *\n * Note that applications still need to include the HammerJS script itself. This module\n * simply sets up the coordination layer between HammerJS and Angular's EventManager.\n *\n * @publicApi\n */\nclass HammerModule {}\nHammerModule.ɵfac = function HammerModule_Factory(t) {\n return new (t || HammerModule)();\n};\nHammerModule.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: HammerModule\n});\nHammerModule.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n providers: [{\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,\n useClass: HammerGestureConfig,\n deps: []\n }]\n});\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(HammerModule, [{\n type: NgModule,\n args: [{\n providers: [{\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,\n useClass: HammerGestureConfig,\n deps: []\n }]\n }]\n }], null, null);\n})();\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source 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](https://g.co/ng/security).\n *\n * @publicApi\n */\nclass DomSanitizer {}\nDomSanitizer.ɵfac = function DomSanitizer_Factory(t) {\n return new (t || DomSanitizer)();\n};\nDomSanitizer.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: DomSanitizer,\n factory: function DomSanitizer_Factory(t) {\n let r = null;\n if (t) {\n r = new (t || DomSanitizer)();\n } else {\n r = i0.ɵɵinject(DomSanitizerImpl);\n }\n return r;\n },\n providedIn: 'root'\n});\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DomSanitizer, [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n useExisting: forwardRef(() => DomSanitizerImpl)\n }]\n }], null, null);\n})();\nfunction domSanitizerImplFactory(injector) {\n return new DomSanitizerImpl(injector.get(DOCUMENT));\n}\nclass DomSanitizerImpl extends DomSanitizer {\n constructor(_doc) {\n super();\n this._doc = _doc;\n }\n sanitize(ctx, value) {\n if (value == null) return null;\n switch (ctx) {\n case SecurityContext.NONE:\n return value;\n case SecurityContext.HTML:\n if (ɵallowSanitizationBypassAndThrow(value, \"HTML\" /* BypassType.Html */)) {\n return ɵunwrapSafeValue(value);\n }\n return ɵ_sanitizeHtml(this._doc, String(value)).toString();\n case SecurityContext.STYLE:\n if (ɵallowSanitizationBypassAndThrow(value, \"Style\" /* BypassType.Style */)) {\n return ɵunwrapSafeValue(value);\n }\n return value;\n case SecurityContext.SCRIPT:\n if (ɵallowSanitizationBypassAndThrow(value, \"Script\" /* BypassType.Script */)) {\n return ɵunwrapSafeValue(value);\n }\n throw new Error('unsafe value used in a script context');\n case SecurityContext.URL:\n if (ɵallowSanitizationBypassAndThrow(value, \"URL\" /* BypassType.Url */)) {\n return ɵunwrapSafeValue(value);\n }\n return ɵ_sanitizeUrl(String(value));\n case SecurityContext.RESOURCE_URL:\n if (ɵallowSanitizationBypassAndThrow(value, \"ResourceURL\" /* BypassType.ResourceUrl */)) {\n return ɵunwrapSafeValue(value);\n }\n throw new Error('unsafe value used in a resource URL context (see https://g.co/ng/security#xss)');\n default:\n throw new Error(`Unexpected SecurityContext ${ctx} (see https://g.co/ng/security#xss)`);\n }\n }\n bypassSecurityTrustHtml(value) {\n return ɵbypassSanitizationTrustHtml(value);\n }\n bypassSecurityTrustStyle(value) {\n return ɵbypassSanitizationTrustStyle(value);\n }\n bypassSecurityTrustScript(value) {\n return ɵbypassSanitizationTrustScript(value);\n }\n bypassSecurityTrustUrl(value) {\n return ɵbypassSanitizationTrustUrl(value);\n }\n bypassSecurityTrustResourceUrl(value) {\n return ɵbypassSanitizationTrustResourceUrl(value);\n }\n}\nDomSanitizerImpl.ɵfac = function DomSanitizerImpl_Factory(t) {\n return new (t || DomSanitizerImpl)(i0.ɵɵinject(DOCUMENT));\n};\nDomSanitizerImpl.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: DomSanitizerImpl,\n factory: function DomSanitizerImpl_Factory(t) {\n let r = null;\n if (t) {\n r = new t();\n } else {\n r = domSanitizerImplFactory(i0.ɵɵinject(Injector));\n }\n return r;\n },\n providedIn: 'root'\n});\n(function () {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(DomSanitizerImpl, [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n useFactory: domSanitizerImplFactory,\n deps: [Injector]\n }]\n }], function () {\n return [{\n type: undefined,\n decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }]\n }];\n }, null);\n})();\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source 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 LLC All Rights Reserved.\n *\n * Use of this source 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 */\nconst VERSION = new Version('14.3.0');\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source 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 LLC All Rights Reserved.\n *\n * Use of this source 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 LLC All Rights Reserved.\n *\n * Use of this source 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\nexport { BrowserModule, BrowserTransferStateModule, By, DomSanitizer, EVENT_MANAGER_PLUGINS, EventManager, HAMMER_GESTURE_CONFIG, HAMMER_LOADER, HammerGestureConfig, HammerModule, Meta, Title, TransferState, VERSION, bootstrapApplication, createApplication, disableDebugTools, enableDebugTools, makeStateKey, platformBrowser, provideProtractorTestingSupport, BrowserDomAdapter as ɵBrowserDomAdapter, BrowserGetTestability as ɵBrowserGetTestability, DomEventsPlugin as ɵDomEventsPlugin, DomRendererFactory2 as ɵDomRendererFactory2, DomSanitizerImpl as ɵDomSanitizerImpl, DomSharedStylesHost as ɵDomSharedStylesHost, HammerGesturesPlugin as ɵHammerGesturesPlugin, INTERNAL_BROWSER_PLATFORM_PROVIDERS as ɵINTERNAL_BROWSER_PLATFORM_PROVIDERS, KeyEventsPlugin as ɵKeyEventsPlugin, NAMESPACE_URIS as ɵNAMESPACE_URIS, SharedStylesHost as ɵSharedStylesHost, TRANSITION_ID as ɵTRANSITION_ID, escapeHtml as ɵescapeHtml, flattenStyles as ɵflattenStyles, initDomAdapter as ɵinitDomAdapter, shimContentAttribute as ɵshimContentAttribute, shimHostAttribute as ɵshimHostAttribute };","map":{"version":3,"names":["ɵDomAdapter","ɵsetRootDomAdapter","ɵparseCookieValue","ɵgetDOM","DOCUMENT","ɵPLATFORM_BROWSER_ID","XhrFactory","CommonModule","i0","InjectionToken","ApplicationInitStatus","APP_INITIALIZER","Injector","ɵglobal","Injectable","Inject","ViewEncapsulation","APP_ID","RendererStyleFlags2","ɵinternalCreateApplication","ErrorHandler","ɵsetDocument","PLATFORM_ID","PLATFORM_INITIALIZER","createPlatformFactory","platformCore","ɵTESTABILITY_GETTER","ɵTESTABILITY","Testability","NgZone","TestabilityRegistry","ɵINJECTOR_SCOPE","RendererFactory2","ApplicationModule","NgModule","Optional","SkipSelf","ɵɵinject","ApplicationRef","inject","ɵConsole","forwardRef","SecurityContext","ɵallowSanitizationBypassAndThrow","ɵunwrapSafeValue","ɵ_sanitizeUrl","ɵ_sanitizeHtml","ɵbypassSanitizationTrustHtml","ɵbypassSanitizationTrustStyle","ɵbypassSanitizationTrustScript","ɵbypassSanitizationTrustUrl","ɵbypassSanitizationTrustResourceUrl","Version","GenericBrowserDomAdapter","constructor","arguments","supportsDOMEvents","BrowserDomAdapter","makeCurrent","onAndCancel","el","evt","listener","addEventListener","removeEventListener","dispatchEvent","remove","node","parentNode","removeChild","createElement","tagName","doc","getDefaultDocument","createHtmlDocument","document","implementation","createHTMLDocument","isElementNode","nodeType","Node","ELEMENT_NODE","isShadowRoot","DocumentFragment","getGlobalEventTarget","target","window","body","getBaseHref","href","getBaseElementHref","relativePath","resetBaseElement","baseElement","getUserAgent","navigator","userAgent","getCookie","name","cookie","querySelector","getAttribute","urlParsingNode","url","setAttribute","pathName","pathname","charAt","TRANSITION_ID","appInitializerFactory","transitionId","injector","get","donePromise","then","dom","styles","querySelectorAll","i","length","SERVER_TRANSITION_PROVIDERS","provide","useFactory","deps","multi","BrowserGetTestability","addToWindow","registry","elem","findInAncestors","testability","findTestabilityInTree","Error","getAllTestabilities","getAllRootElements","whenAllStable","callback","testabilities","count","didWork","decrement","didWork_","forEach","whenStable","push","t","getTestability","host","parentElement","BrowserXhr","build","XMLHttpRequest","ɵfac","BrowserXhr_Factory","ɵprov","ɵɵdefineInjectable","token","factory","ngDevMode","ɵsetClassMetadata","type","EVENT_MANAGER_PLUGINS","EventManager","plugins","_zone","_eventNameToPlugin","Map","p","manager","_plugins","slice","reverse","element","eventName","handler","plugin","_findPluginFor","addGlobalEventListener","getZone","supports","set","EventManager_Factory","undefined","decorators","args","EventManagerPlugin","_doc","SharedStylesHost","_stylesSet","Set","addStyles","additions","style","has","add","onStylesAdded","getAllStyles","Array","from","SharedStylesHost_Factory","DomSharedStylesHost","_hostNodes","head","_addStylesToHost","styleNodes","styleEl","textContent","appendChild","addHost","hostNode","removeHost","removeStyle","delete","ngOnDestroy","DomSharedStylesHost_Factory","styleNode","NAMESPACE_URIS","COMPONENT_REGEX","NG_DEV_MODE$1","COMPONENT_VARIABLE","HOST_ATTR","CONTENT_ATTR","shimContentAttribute","componentShortId","replace","shimHostAttribute","flattenStyles","compId","isArray","decoratePreventDefault","eventHandler","event","allowDefaultBehavior","preventDefault","returnValue","hasLoggedNativeEncapsulationWarning","DomRendererFactory2","eventManager","sharedStylesHost","appId","rendererByCompId","defaultRenderer","DefaultDomRenderer2","createRenderer","encapsulation","Emulated","renderer","id","EmulatedEncapsulationDomRenderer2","applyToHost","ShadowDom","console","warn","ShadowDomRenderer","begin","end","DomRendererFactory2_Factory","data","Object","create","destroyNode","destroy","namespace","createElementNS","createComment","value","createText","createTextNode","parent","newChild","targetParent","isTemplateNode","content","insertBefore","refChild","oldChild","selectRootElement","selectorOrNode","preserveContent","nextSibling","namespaceUri","setAttributeNS","removeAttribute","removeAttributeNS","addClass","classList","removeClass","setStyle","flags","DashCase","Important","setProperty","removeProperty","checkNoSyntheticProp","setValue","nodeValue","listen","AT_CHARCODE","charCodeAt","nameKind","component","contentAttr","hostAttr","hostEl","shadowRoot","attachShadow","mode","nodeOrShadowRoot","DomEventsPlugin","DomEventsPlugin_Factory","MODIFIER_KEYS","_keyMap","MODIFIER_KEY_GETTERS","altKey","ctrlKey","metaKey","shiftKey","KeyEventsPlugin","parseEventName","parsedEvent","outsideHandler","eventCallback","runOutsideAngular","parts","toLowerCase","split","domEventName","shift","key","_normalizeKey","pop","fullKey","codeIX","indexOf","splice","modifierName","index","result","matchEventFullKeyCode","fullKeyCode","keycode","code","modifierGetter","zone","runGuarded","keyName","KeyEventsPlugin_Factory","NG_DEV_MODE","bootstrapApplication","rootComponent","options","createProvidersConfig","createApplication","appProviders","BROWSER_MODULE_PROVIDERS","providers","platformProviders","INTERNAL_BROWSER_PLATFORM_PROVIDERS","provideProtractorTestingSupport","TESTABILITY_PROVIDERS","initDomAdapter","errorHandler","_document","useValue","platformBrowser","BROWSER_MODULE_PROVIDERS_MARKER","useClass","useExisting","BrowserModule","providersAlreadyPresent","withServerTransition","params","ngModule","BrowserModule_Factory","ɵmod","ɵɵdefineNgModule","exports","ɵinj","ɵɵdefineInjector","imports","createMeta","Meta","_dom","addTag","tag","forceCreation","_getOrCreateElement","addTags","tags","reduce","getTag","attrSelector","getTags","list","call","updateTag","selector","_parseSelector","meta","_setMetaElementAttributes","removeTag","removeTagElement","filter","_containsAttributes","getElementsByTagName","keys","prop","_getMetaKeyMap","attr","every","META_KEYS_MAP","Meta_Factory","r","providedIn","httpEquiv","createTitle","Title","getTitle","title","setTitle","newTitle","Title_Factory","CAMEL_CASE_REGEXP","DASH_CASE_REGEXP","camelCaseToDashCase","input","m","dashCaseToCamelCase","toUpperCase","exportNgVar","COMPILED","ng","win","ChangeDetectionPerfRecord","msPerTick","numTicks","AngularProfiler","ref","appRef","timeChangeDetection","config","record","profileName","isProfilerAvailable","profile","start","performanceNow","tick","profileEnd","log","toFixed","performance","now","Date","getTime","PROFILER_GLOBAL_NAME","enableDebugTools","disableDebugTools","escapeHtml","text","escapedText","s","unescapeHtml","unescapedText","makeStateKey","TransferState","store","onSerializeCallbacks","defaultValue","hasKey","hasOwnProperty","isEmpty","onSerialize","toJson","e","JSON","stringify","TransferState_Factory","state","retrieveTransferredState","script","getElementById","initialState","parse","BrowserTransferStateModule","BrowserTransferStateModule_Factory","By","all","css","debugElement","nativeElement","elementMatches","directive","debugNode","providerTokens","n","matches","msMatchesSelector","webkitMatchesSelector","EVENT_NAMES","HAMMER_GESTURE_CONFIG","HAMMER_LOADER","HammerGestureConfig","events","overrides","buildHammer","mc","Hammer","enable","HammerGestureConfig_Factory","HammerGesturesPlugin","_config","loader","_loaderPromise","isCustomEvent","cancelRegistration","deregister","catch","eventObj","on","off","HammerGesturesPlugin_Factory","HammerModule","HammerModule_Factory","DomSanitizer","DomSanitizer_Factory","DomSanitizerImpl","domSanitizerImplFactory","sanitize","ctx","NONE","HTML","String","toString","STYLE","SCRIPT","URL","RESOURCE_URL","bypassSecurityTrustHtml","bypassSecurityTrustStyle","bypassSecurityTrustScript","bypassSecurityTrustUrl","bypassSecurityTrustResourceUrl","DomSanitizerImpl_Factory","VERSION","ɵBrowserDomAdapter","ɵBrowserGetTestability","ɵDomEventsPlugin","ɵDomRendererFactory2","ɵDomSanitizerImpl","ɵDomSharedStylesHost","ɵHammerGesturesPlugin","ɵINTERNAL_BROWSER_PLATFORM_PROVIDERS","ɵKeyEventsPlugin","ɵNAMESPACE_URIS","ɵSharedStylesHost","ɵTRANSITION_ID","ɵescapeHtml","ɵflattenStyles","ɵinitDomAdapter","ɵshimContentAttribute","ɵshimHostAttribute"],"sources":["C:/Users/eudes.inacio/GabineteDigital/gabinete-digital-fo/node_modules/@angular/platform-browser/fesm2020/platform-browser.mjs"],"sourcesContent":["/**\n * @license Angular v14.3.0\n * (c) 2010-2022 Google LLC. https://angular.io/\n * License: MIT\n */\n\nimport { ɵDomAdapter, ɵsetRootDomAdapter, ɵparseCookieValue, ɵgetDOM, DOCUMENT, ɵPLATFORM_BROWSER_ID, XhrFactory, CommonModule } from '@angular/common';\nexport { ɵgetDOM } from '@angular/common';\nimport * as i0 from '@angular/core';\nimport { InjectionToken, ApplicationInitStatus, APP_INITIALIZER, Injector, ɵglobal, Injectable, Inject, ViewEncapsulation, APP_ID, RendererStyleFlags2, ɵinternalCreateApplication, ErrorHandler, ɵsetDocument, PLATFORM_ID, PLATFORM_INITIALIZER, createPlatformFactory, platformCore, ɵTESTABILITY_GETTER, ɵTESTABILITY, Testability, NgZone, TestabilityRegistry, ɵINJECTOR_SCOPE, RendererFactory2, ApplicationModule, NgModule, Optional, SkipSelf, ɵɵinject, ApplicationRef, inject, ɵConsole, forwardRef, SecurityContext, ɵallowSanitizationBypassAndThrow, ɵunwrapSafeValue, ɵ_sanitizeUrl, ɵ_sanitizeHtml, ɵbypassSanitizationTrustHtml, ɵbypassSanitizationTrustStyle, ɵbypassSanitizationTrustScript, ɵbypassSanitizationTrustUrl, ɵbypassSanitizationTrustResourceUrl, Version } from '@angular/core';\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source 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 */\nclass GenericBrowserDomAdapter extends ɵDomAdapter {\n constructor() {\n super(...arguments);\n this.supportsDOMEvents = true;\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source 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 `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 */\nclass BrowserDomAdapter extends GenericBrowserDomAdapter {\n static makeCurrent() {\n ɵsetRootDomAdapter(new BrowserDomAdapter());\n }\n onAndCancel(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 () => {\n el.removeEventListener(evt, listener, false);\n };\n }\n dispatchEvent(el, evt) {\n el.dispatchEvent(evt);\n }\n remove(node) {\n if (node.parentNode) {\n node.parentNode.removeChild(node);\n }\n }\n createElement(tagName, doc) {\n doc = doc || this.getDefaultDocument();\n return doc.createElement(tagName);\n }\n createHtmlDocument() {\n return document.implementation.createHTMLDocument('fakeTitle');\n }\n getDefaultDocument() {\n return document;\n }\n isElementNode(node) {\n return node.nodeType === Node.ELEMENT_NODE;\n }\n isShadowRoot(node) {\n return node instanceof DocumentFragment;\n }\n /** @deprecated No longer being used in Ivy code. To be removed in version 14. */\n getGlobalEventTarget(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 getBaseHref(doc) {\n const href = getBaseElementHref();\n return href == null ? null : relativePath(href);\n }\n resetBaseElement() {\n baseElement = null;\n }\n getUserAgent() {\n return window.navigator.userAgent;\n }\n getCookie(name) {\n return ɵparseCookieValue(document.cookie, name);\n }\n}\nlet baseElement = null;\nfunction getBaseElementHref() {\n baseElement = baseElement || document.querySelector('base');\n return baseElement ? baseElement.getAttribute('href') : null;\n}\n// based on urlUtils.js in AngularJS 1\nlet urlParsingNode;\nfunction relativePath(url) {\n urlParsingNode = urlParsingNode || document.createElement('a');\n urlParsingNode.setAttribute('href', url);\n const pathName = urlParsingNode.pathname;\n return pathName.charAt(0) === '/' ? pathName : `/${pathName}`;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source 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 */\nconst TRANSITION_ID = new InjectionToken('TRANSITION_ID');\nfunction appInitializerFactory(transitionId, document, 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 = document.querySelectorAll(`style[ng-transition=\"${transitionId}\"]`);\n for (let i = 0; i < styles.length; i++) {\n dom.remove(styles[i]);\n }\n });\n };\n}\nconst SERVER_TRANSITION_PROVIDERS = [\n {\n provide: APP_INITIALIZER,\n useFactory: appInitializerFactory,\n deps: [TRANSITION_ID, DOCUMENT, Injector],\n multi: true\n },\n];\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nclass BrowserGetTestability {\n addToWindow(registry) {\n ɵglobal['getAngularTestability'] = (elem, findInAncestors = 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 ɵglobal['getAllAngularTestabilities'] = () => registry.getAllTestabilities();\n ɵglobal['getAllAngularRootElements'] = () => registry.getAllRootElements();\n const whenAllStable = (callback /** TODO #9100 */) => {\n const testabilities = ɵglobal['getAllAngularTestabilities']();\n let count = testabilities.length;\n let didWork = false;\n const 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 (!ɵglobal['frameworkStabilizers']) {\n ɵglobal['frameworkStabilizers'] = [];\n }\n ɵglobal['frameworkStabilizers'].push(whenAllStable);\n }\n findTestabilityInTree(registry, elem, findInAncestors) {\n if (elem == null) {\n return null;\n }\n const 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, elem.host, true);\n }\n return this.findTestabilityInTree(registry, elem.parentElement, true);\n }\n}\n\n/**\n * A factory for `HttpXhrBackend` that uses the `XMLHttpRequest` browser API.\n */\nclass BrowserXhr {\n build() {\n return new XMLHttpRequest();\n }\n}\nBrowserXhr.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BrowserXhr, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\nBrowserXhr.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BrowserXhr });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BrowserXhr, decorators: [{\n type: Injectable\n }] });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source 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 */\nconst EVENT_MANAGER_PLUGINS = new InjectionToken('EventManagerPlugins');\n/**\n * An injectable service that provides event management for Angular\n * through a browser plug-in.\n *\n * @publicApi\n */\nclass EventManager {\n /**\n * Initializes an instance of the event-manager service.\n */\n constructor(plugins, _zone) {\n this._zone = _zone;\n this._eventNameToPlugin = new Map();\n plugins.forEach(p => 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 addEventListener(element, eventName, handler) {\n const 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 * @deprecated No longer being used in Ivy code. To be removed in version 14.\n */\n addGlobalEventListener(target, eventName, handler) {\n const 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 getZone() {\n return this._zone;\n }\n /** @internal */\n _findPluginFor(eventName) {\n const plugin = this._eventNameToPlugin.get(eventName);\n if (plugin) {\n return plugin;\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}\nEventManager.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: EventManager, deps: [{ token: EVENT_MANAGER_PLUGINS }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable });\nEventManager.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: EventManager });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: EventManager, decorators: [{\n type: Injectable\n }], ctorParameters: function () { return [{ type: undefined, decorators: [{\n type: Inject,\n args: [EVENT_MANAGER_PLUGINS]\n }] }, { type: i0.NgZone }]; } });\nclass EventManagerPlugin {\n constructor(_doc) {\n this._doc = _doc;\n }\n addGlobalEventListener(element, eventName, handler) {\n const 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}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nclass SharedStylesHost {\n constructor() {\n /** @internal */\n this._stylesSet = new Set();\n }\n addStyles(styles) {\n const additions = new Set();\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 onStylesAdded(additions) { }\n getAllStyles() {\n return Array.from(this._stylesSet);\n }\n}\nSharedStylesHost.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: SharedStylesHost, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\nSharedStylesHost.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: SharedStylesHost });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: SharedStylesHost, decorators: [{\n type: Injectable\n }] });\nclass DomSharedStylesHost extends SharedStylesHost {\n constructor(_doc) {\n super();\n this._doc = _doc;\n // Maps all registered host nodes to a list of style nodes that have been added to the host node.\n this._hostNodes = new Map();\n this._hostNodes.set(_doc.head, []);\n }\n _addStylesToHost(styles, host, styleNodes) {\n styles.forEach((style) => {\n const styleEl = this._doc.createElement('style');\n styleEl.textContent = style;\n styleNodes.push(host.appendChild(styleEl));\n });\n }\n addHost(hostNode) {\n const styleNodes = [];\n this._addStylesToHost(this._stylesSet, hostNode, styleNodes);\n this._hostNodes.set(hostNode, styleNodes);\n }\n removeHost(hostNode) {\n const styleNodes = this._hostNodes.get(hostNode);\n if (styleNodes) {\n styleNodes.forEach(removeStyle);\n }\n this._hostNodes.delete(hostNode);\n }\n onStylesAdded(additions) {\n this._hostNodes.forEach((styleNodes, hostNode) => {\n this._addStylesToHost(additions, hostNode, styleNodes);\n });\n }\n ngOnDestroy() {\n this._hostNodes.forEach(styleNodes => styleNodes.forEach(removeStyle));\n }\n}\nDomSharedStylesHost.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: DomSharedStylesHost, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });\nDomSharedStylesHost.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: DomSharedStylesHost });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: DomSharedStylesHost, decorators: [{\n type: Injectable\n }], ctorParameters: function () { return [{ type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }]; } });\nfunction removeStyle(styleNode) {\n ɵgetDOM().remove(styleNode);\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst 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 'math': 'http://www.w3.org/1998/MathML/',\n};\nconst COMPONENT_REGEX = /%COMP%/g;\nconst NG_DEV_MODE$1 = typeof ngDevMode === 'undefined' || !!ngDevMode;\nconst COMPONENT_VARIABLE = '%COMP%';\nconst HOST_ATTR = `_nghost-${COMPONENT_VARIABLE}`;\nconst CONTENT_ATTR = `_ngcontent-${COMPONENT_VARIABLE}`;\nfunction shimContentAttribute(componentShortId) {\n return CONTENT_ATTR.replace(COMPONENT_REGEX, componentShortId);\n}\nfunction shimHostAttribute(componentShortId) {\n return HOST_ATTR.replace(COMPONENT_REGEX, componentShortId);\n}\nfunction flattenStyles(compId, styles, target) {\n for (let i = 0; i < styles.length; i++) {\n let 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}\nfunction decoratePreventDefault(eventHandler) {\n // `DebugNode.triggerEventHandler` needs to know if the listener was created with\n // decoratePreventDefault or is a listener added outside the Angular context so it can handle the\n // two differently. In the first case, the special '__ngUnwrap__' token is passed to the unwrap\n // the listener (see below).\n return (event) => {\n // Ivy uses '__ngUnwrap__' as a special token that allows us to unwrap the function\n // so that it can be invoked programmatically by `DebugNode.triggerEventHandler`. The debug_node\n // can inspect the listener toString contents for the existence of this special token. Because\n // the token is a string literal, it is ensured to not be modified by compiled code.\n if (event === '__ngUnwrap__') {\n return eventHandler;\n }\n 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 return undefined;\n };\n}\nlet hasLoggedNativeEncapsulationWarning = false;\nclass DomRendererFactory2 {\n constructor(eventManager, sharedStylesHost, appId) {\n this.eventManager = eventManager;\n this.sharedStylesHost = sharedStylesHost;\n this.appId = appId;\n this.rendererByCompId = new Map();\n this.defaultRenderer = new DefaultDomRenderer2(eventManager);\n }\n createRenderer(element, type) {\n if (!element || !type) {\n return this.defaultRenderer;\n }\n switch (type.encapsulation) {\n case ViewEncapsulation.Emulated: {\n let renderer = this.rendererByCompId.get(type.id);\n if (!renderer) {\n renderer = new EmulatedEncapsulationDomRenderer2(this.eventManager, this.sharedStylesHost, type, this.appId);\n this.rendererByCompId.set(type.id, renderer);\n }\n renderer.applyToHost(element);\n return renderer;\n }\n // @ts-ignore TODO: Remove as part of FW-2290. TS complains about us dealing with an enum\n // value that is not known (but previously was the value for ViewEncapsulation.Native)\n case 1:\n case ViewEncapsulation.ShadowDom:\n // TODO(FW-2290): remove the `case 1:` fallback logic and the warning in v12.\n if ((typeof ngDevMode === 'undefined' || ngDevMode) &&\n // @ts-ignore TODO: Remove as part of FW-2290. TS complains about us dealing with an\n // enum value that is not known (but previously was the value for\n // ViewEncapsulation.Native)\n !hasLoggedNativeEncapsulationWarning && type.encapsulation === 1) {\n hasLoggedNativeEncapsulationWarning = true;\n console.warn('ViewEncapsulation.Native is no longer supported. Falling back to ViewEncapsulation.ShadowDom. The fallback will be removed in v12.');\n }\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 begin() { }\n end() { }\n}\nDomRendererFactory2.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: DomRendererFactory2, deps: [{ token: EventManager }, { token: DomSharedStylesHost }, { token: APP_ID }], target: i0.ɵɵFactoryTarget.Injectable });\nDomRendererFactory2.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: DomRendererFactory2 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: DomRendererFactory2, decorators: [{\n type: Injectable\n }], ctorParameters: function () { return [{ type: EventManager }, { type: DomSharedStylesHost }, { type: undefined, decorators: [{\n type: Inject,\n args: [APP_ID]\n }] }]; } });\nclass DefaultDomRenderer2 {\n constructor(eventManager) {\n this.eventManager = eventManager;\n this.data = Object.create(null);\n this.destroyNode = null;\n }\n destroy() { }\n createElement(name, namespace) {\n if (namespace) {\n // TODO: `|| namespace` was added in\n // https://github.com/angular/angular/commit/2b9cc8503d48173492c29f5a271b61126104fbdb to\n // support how Ivy passed around the namespace URI rather than short name at the time. It did\n // not, however extend the support to other parts of the system (setAttribute, setAttribute,\n // and the ServerRenderer). We should decide what exactly the semantics for dealing with\n // namespaces should be and make it consistent.\n // Related issues:\n // https://github.com/angular/angular/issues/44028\n // https://github.com/angular/angular/issues/44883\n return document.createElementNS(NAMESPACE_URIS[namespace] || namespace, name);\n }\n return document.createElement(name);\n }\n createComment(value) {\n return document.createComment(value);\n }\n createText(value) {\n return document.createTextNode(value);\n }\n appendChild(parent, newChild) {\n const targetParent = isTemplateNode(parent) ? parent.content : parent;\n targetParent.appendChild(newChild);\n }\n insertBefore(parent, newChild, refChild) {\n if (parent) {\n const targetParent = isTemplateNode(parent) ? parent.content : parent;\n targetParent.insertBefore(newChild, refChild);\n }\n }\n removeChild(parent, oldChild) {\n if (parent) {\n parent.removeChild(oldChild);\n }\n }\n selectRootElement(selectorOrNode, preserveContent) {\n let 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 parentNode(node) {\n return node.parentNode;\n }\n nextSibling(node) {\n return node.nextSibling;\n }\n setAttribute(el, name, value, namespace) {\n if (namespace) {\n name = namespace + ':' + name;\n const 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 removeAttribute(el, name, namespace) {\n if (namespace) {\n const 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 addClass(el, name) {\n el.classList.add(name);\n }\n removeClass(el, name) {\n el.classList.remove(name);\n }\n setStyle(el, style, value, flags) {\n if (flags & (RendererStyleFlags2.DashCase | RendererStyleFlags2.Important)) {\n el.style.setProperty(style, value, flags & RendererStyleFlags2.Important ? 'important' : '');\n }\n else {\n el.style[style] = value;\n }\n }\n removeStyle(el, style, flags) {\n if (flags & 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 setProperty(el, name, value) {\n NG_DEV_MODE$1 && checkNoSyntheticProp(name, 'property');\n el[name] = value;\n }\n setValue(node, value) {\n node.nodeValue = value;\n }\n listen(target, event, callback) {\n NG_DEV_MODE$1 && 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}\nconst AT_CHARCODE = (() => '@'.charCodeAt(0))();\nfunction checkNoSyntheticProp(name, nameKind) {\n if (name.charCodeAt(0) === AT_CHARCODE) {\n throw new Error(`Unexpected synthetic ${nameKind} ${name} found. Please make sure that:\n - Either \\`BrowserAnimationsModule\\` or \\`NoopAnimationsModule\\` are imported in your application.\n - There is corresponding configuration for the animation named \\`${name}\\` defined in the \\`animations\\` field of the \\`@Component\\` decorator (see https://angular.io/api/core/Component#animations).`);\n }\n}\nfunction isTemplateNode(node) {\n return node.tagName === 'TEMPLATE' && node.content !== undefined;\n}\nclass EmulatedEncapsulationDomRenderer2 extends DefaultDomRenderer2 {\n constructor(eventManager, sharedStylesHost, component, appId) {\n super(eventManager);\n this.component = component;\n const styles = flattenStyles(appId + '-' + component.id, component.styles, []);\n sharedStylesHost.addStyles(styles);\n this.contentAttr = shimContentAttribute(appId + '-' + component.id);\n this.hostAttr = shimHostAttribute(appId + '-' + component.id);\n }\n applyToHost(element) {\n super.setAttribute(element, this.hostAttr, '');\n }\n createElement(parent, name) {\n const el = super.createElement(parent, name);\n super.setAttribute(el, this.contentAttr, '');\n return el;\n }\n}\nclass ShadowDomRenderer extends DefaultDomRenderer2 {\n constructor(eventManager, sharedStylesHost, hostEl, component) {\n super(eventManager);\n this.sharedStylesHost = sharedStylesHost;\n this.hostEl = hostEl;\n this.shadowRoot = hostEl.attachShadow({ mode: 'open' });\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 nodeOrShadowRoot(node) {\n return node === this.hostEl ? this.shadowRoot : node;\n }\n destroy() {\n this.sharedStylesHost.removeHost(this.shadowRoot);\n }\n appendChild(parent, newChild) {\n return super.appendChild(this.nodeOrShadowRoot(parent), newChild);\n }\n insertBefore(parent, newChild, refChild) {\n return super.insertBefore(this.nodeOrShadowRoot(parent), newChild, refChild);\n }\n removeChild(parent, oldChild) {\n return super.removeChild(this.nodeOrShadowRoot(parent), oldChild);\n }\n parentNode(node) {\n return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(node)));\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nclass DomEventsPlugin extends EventManagerPlugin {\n constructor(doc) {\n super(doc);\n }\n // This plugin should come last in the list of plugins, because it accepts all\n // events.\n supports(eventName) {\n return true;\n }\n addEventListener(element, eventName, handler) {\n element.addEventListener(eventName, handler, false);\n return () => this.removeEventListener(element, eventName, handler);\n }\n removeEventListener(target, eventName, callback) {\n return target.removeEventListener(eventName, callback);\n }\n}\nDomEventsPlugin.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: DomEventsPlugin, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });\nDomEventsPlugin.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: DomEventsPlugin });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: DomEventsPlugin, decorators: [{\n type: Injectable\n }], ctorParameters: function () { return [{ type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }]; } });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source 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 */\nconst MODIFIER_KEYS = ['alt', 'control', 'meta', 'shift'];\n// The following values are here for cross-browser compatibility and to match the W3C standard\n// cf https://www.w3.org/TR/DOM-Level-3-Events-key/\nconst _keyMap = {\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 * Retrieves modifiers from key-event objects.\n */\nconst MODIFIER_KEY_GETTERS = {\n 'alt': (event) => event.altKey,\n 'control': (event) => event.ctrlKey,\n 'meta': (event) => event.metaKey,\n 'shift': (event) => event.shiftKey\n};\n/**\n * @publicApi\n * A browser plug-in that provides support for handling of key events in Angular.\n */\nclass 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(doc) {\n 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) {\n 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, eventName, handler) {\n const parsedEvent = KeyEventsPlugin.parseEventName(eventName);\n const outsideHandler = KeyEventsPlugin.eventCallback(parsedEvent['fullKey'], handler, this.manager.getZone());\n return this.manager.getZone().runOutsideAngular(() => {\n return ɵgetDOM().onAndCancel(element, parsedEvent['domEventName'], outsideHandler);\n });\n }\n /**\n * Parses the user provided full keyboard event definition and normalizes it for\n * later internal use. It ensures the string is all lowercase, converts special\n * characters to a standard spelling, and orders all the values consistently.\n *\n * @param eventName The name of the key event to listen for.\n * @returns an object with the full, normalized string, and the dom event name\n * or null in the case when the event doesn't match a keyboard event.\n */\n static parseEventName(eventName) {\n const parts = eventName.toLowerCase().split('.');\n const domEventName = parts.shift();\n if ((parts.length === 0) || !(domEventName === 'keydown' || domEventName === 'keyup')) {\n return null;\n }\n const key = KeyEventsPlugin._normalizeKey(parts.pop());\n let fullKey = '';\n let codeIX = parts.indexOf('code');\n if (codeIX > -1) {\n parts.splice(codeIX, 1);\n fullKey = 'code.';\n }\n MODIFIER_KEYS.forEach(modifierName => {\n const 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 // NOTE: Please don't rewrite this as so, as it will break JSCompiler property renaming.\n // The code must remain in the `result['domEventName']` form.\n // return {domEventName, fullKey};\n const result = {};\n result['domEventName'] = domEventName;\n result['fullKey'] = fullKey;\n return result;\n }\n /**\n * Determines whether the actual keys pressed match the configured key code string.\n * The `fullKeyCode` event is normalized in the `parseEventName` method when the\n * event is attached to the DOM during the `addEventListener` call. This is unseen\n * by the end user and is normalized for internal consistency and parsing.\n *\n * @param event The keyboard event.\n * @param fullKeyCode The normalized user defined expected key event string\n * @returns boolean.\n */\n static matchEventFullKeyCode(event, fullKeyCode) {\n let keycode = _keyMap[event.key] || event.key;\n let key = '';\n if (fullKeyCode.indexOf('code.') > -1) {\n keycode = event.code;\n key = 'code.';\n }\n // the keycode could be unidentified so we have to check here\n if (keycode == null || !keycode)\n return false;\n keycode = keycode.toLowerCase();\n if (keycode === ' ') {\n keycode = 'space'; // for readability\n }\n else if (keycode === '.') {\n keycode = 'dot'; // because '.' is used as a separator in event names\n }\n MODIFIER_KEYS.forEach(modifierName => {\n if (modifierName !== keycode) {\n const modifierGetter = MODIFIER_KEY_GETTERS[modifierName];\n if (modifierGetter(event)) {\n key += modifierName + '.';\n }\n }\n });\n key += keycode;\n return key === fullKeyCode;\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, handler, zone) {\n return (event) => {\n if (KeyEventsPlugin.matchEventFullKeyCode(event, fullKey)) {\n zone.runGuarded(() => handler(event));\n }\n };\n }\n /** @internal */\n static _normalizeKey(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}\nKeyEventsPlugin.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: KeyEventsPlugin, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });\nKeyEventsPlugin.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: KeyEventsPlugin });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: KeyEventsPlugin, decorators: [{\n type: Injectable\n }], ctorParameters: function () { return [{ type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }]; } });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst NG_DEV_MODE = typeof ngDevMode === 'undefined' || !!ngDevMode;\n/**\n * Bootstraps an instance of an Angular application and renders a standalone component as the\n * application's root component. More information about standalone components can be found in [this\n * guide](guide/standalone-components).\n *\n * @usageNotes\n * The root component passed into this function *must* be a standalone one (should have the\n * `standalone: true` flag in the `@Component` decorator config).\n *\n * ```typescript\n * @Component({\n * standalone: true,\n * template: 'Hello world!'\n * })\n * class RootComponent {}\n *\n * const appRef: ApplicationRef = await bootstrapApplication(RootComponent);\n * ```\n *\n * You can add the list of providers that should be available in the application injector by\n * specifying the `providers` field in an object passed as the second argument:\n *\n * ```typescript\n * await bootstrapApplication(RootComponent, {\n * providers: [\n * {provide: BACKEND_URL, useValue: 'https://yourdomain.com/api'}\n * ]\n * });\n * ```\n *\n * The `importProvidersFrom` helper method can be used to collect all providers from any\n * existing NgModule (and transitively from all NgModules that it imports):\n *\n * ```typescript\n * await bootstrapApplication(RootComponent, {\n * providers: [\n * importProvidersFrom(SomeNgModule)\n * ]\n * });\n * ```\n *\n * Note: the `bootstrapApplication` method doesn't include [Testability](api/core/Testability) by\n * default. You can add [Testability](api/core/Testability) by getting the list of necessary\n * providers using `provideProtractorTestingSupport()` function and adding them into the `providers`\n * array, for example:\n *\n * ```typescript\n * import {provideProtractorTestingSupport} from '@angular/platform-browser';\n *\n * await bootstrapApplication(RootComponent, {providers: [provideProtractorTestingSupport()]});\n * ```\n *\n * @param rootComponent A reference to a standalone component that should be rendered.\n * @param options Extra configuration for the bootstrap operation, see `ApplicationConfig` for\n * additional info.\n * @returns A promise that returns an `ApplicationRef` instance once resolved.\n *\n * @publicApi\n * @developerPreview\n */\nfunction bootstrapApplication(rootComponent, options) {\n return ɵinternalCreateApplication({ rootComponent, ...createProvidersConfig(options) });\n}\n/**\n * Create an instance of an Angular application without bootstrapping any components. This is useful\n * for the situation where one wants to decouple application environment creation (a platform and\n * associated injectors) from rendering components on a screen. Components can be subsequently\n * bootstrapped on the returned `ApplicationRef`.\n *\n * @param options Extra configuration for the application environment, see `ApplicationConfig` for\n * additional info.\n * @returns A promise that returns an `ApplicationRef` instance once resolved.\n *\n * @publicApi\n * @developerPreview\n */\nfunction createApplication(options) {\n return ɵinternalCreateApplication(createProvidersConfig(options));\n}\nfunction createProvidersConfig(options) {\n return {\n appProviders: [\n ...BROWSER_MODULE_PROVIDERS,\n ...(options?.providers ?? []),\n ],\n platformProviders: INTERNAL_BROWSER_PLATFORM_PROVIDERS\n };\n}\n/**\n * Returns a set of providers required to setup [Testability](api/core/Testability) for an\n * application bootstrapped using the `bootstrapApplication` function. The set of providers is\n * needed to support testing an application with Protractor (which relies on the Testability APIs\n * to be present).\n *\n * @returns An array of providers required to setup Testability for an application and make it\n * available for testing using Protractor.\n *\n * @developerPreview\n * @publicApi\n */\nfunction provideProtractorTestingSupport() {\n // Return a copy to prevent changes to the original array in case any in-place\n // alterations are performed to the `provideProtractorTestingSupport` call results in app code.\n return [...TESTABILITY_PROVIDERS];\n}\nfunction initDomAdapter() {\n BrowserDomAdapter.makeCurrent();\n}\nfunction errorHandler() {\n return new ErrorHandler();\n}\nfunction _document() {\n // Tell ivy about the global document\n ɵsetDocument(document);\n return document;\n}\nconst INTERNAL_BROWSER_PLATFORM_PROVIDERS = [\n { provide: PLATFORM_ID, useValue: ɵPLATFORM_BROWSER_ID },\n { provide: PLATFORM_INITIALIZER, useValue: initDomAdapter, multi: true },\n { provide: DOCUMENT, useFactory: _document, deps: [] },\n];\n/**\n * A factory function that returns a `PlatformRef` instance associated with browser service\n * providers.\n *\n * @publicApi\n */\nconst platformBrowser = createPlatformFactory(platformCore, 'browser', INTERNAL_BROWSER_PLATFORM_PROVIDERS);\n/**\n * Internal marker to signal whether providers from the `BrowserModule` are already present in DI.\n * This is needed to avoid loading `BrowserModule` providers twice. We can't rely on the\n * `BrowserModule` presence itself, since the standalone-based bootstrap just imports\n * `BrowserModule` providers without referencing the module itself.\n */\nconst BROWSER_MODULE_PROVIDERS_MARKER = new InjectionToken(NG_DEV_MODE ? 'BrowserModule Providers Marker' : '');\nconst TESTABILITY_PROVIDERS = [\n {\n provide: ɵTESTABILITY_GETTER,\n useClass: BrowserGetTestability,\n deps: [],\n },\n {\n provide: ɵTESTABILITY,\n useClass: Testability,\n deps: [NgZone, TestabilityRegistry, ɵTESTABILITY_GETTER]\n },\n {\n provide: Testability,\n useClass: Testability,\n deps: [NgZone, TestabilityRegistry, ɵTESTABILITY_GETTER]\n }\n];\nconst BROWSER_MODULE_PROVIDERS = [\n { provide: ɵINJECTOR_SCOPE, useValue: 'root' },\n { provide: ErrorHandler, useFactory: errorHandler, deps: [] }, {\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 provide: DomRendererFactory2,\n useClass: DomRendererFactory2,\n deps: [EventManager, DomSharedStylesHost, APP_ID]\n },\n { provide: RendererFactory2, useExisting: DomRendererFactory2 },\n { provide: SharedStylesHost, useExisting: DomSharedStylesHost },\n { provide: DomSharedStylesHost, useClass: DomSharedStylesHost, deps: [DOCUMENT] },\n { provide: EventManager, useClass: EventManager, deps: [EVENT_MANAGER_PLUGINS, NgZone] },\n { provide: XhrFactory, useClass: BrowserXhr, deps: [] },\n NG_DEV_MODE ? { provide: BROWSER_MODULE_PROVIDERS_MARKER, useValue: true } : []\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 */\nclass BrowserModule {\n constructor(providersAlreadyPresent) {\n if (NG_DEV_MODE && providersAlreadyPresent) {\n throw new Error(`Providers from the \\`BrowserModule\\` have already been loaded. If you need access ` +\n `to common directives such as NgIf and NgFor, import the \\`CommonModule\\` instead.`);\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) {\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}\nBrowserModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BrowserModule, deps: [{ token: BROWSER_MODULE_PROVIDERS_MARKER, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.NgModule });\nBrowserModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"14.3.0\", ngImport: i0, type: BrowserModule, exports: [CommonModule, ApplicationModule] });\nBrowserModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BrowserModule, providers: [\n ...BROWSER_MODULE_PROVIDERS,\n ...TESTABILITY_PROVIDERS\n ], imports: [CommonModule, ApplicationModule] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BrowserModule, decorators: [{\n type: NgModule,\n args: [{\n providers: [\n ...BROWSER_MODULE_PROVIDERS,\n ...TESTABILITY_PROVIDERS\n ],\n exports: [CommonModule, ApplicationModule],\n }]\n }], ctorParameters: function () { return [{ type: undefined, decorators: [{\n type: Optional\n }, {\n type: SkipSelf\n }, {\n type: Inject,\n args: [BROWSER_MODULE_PROVIDERS_MARKER]\n }] }]; } });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source 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 * Factory to create a `Meta` service instance for the current DOM document.\n */\nfunction createMeta() {\n return new Meta(ɵɵinject(DOCUMENT));\n}\n/**\n * A service for managing HTML `<meta>` tags.\n *\n * Properties of the `MetaDefinition` object match the attributes of the\n * HTML `<meta>` tag. These tags define document metadata that is important for\n * things like configuring a Content Security Policy, defining browser compatibility\n * and security settings, setting HTTP Headers, defining rich content for social sharing,\n * and Search Engine Optimization (SEO).\n *\n * To identify specific `<meta>` tags in a document, use an attribute selection\n * string in the format `\"tag_attribute='value string'\"`.\n * For example, an `attrSelector` value of `\"name='description'\"` matches a tag\n * whose `name` attribute has the value `\"description\"`.\n * Selectors are used with the `querySelector()` Document method,\n * in the format `meta[{attrSelector}]`.\n *\n * @see [HTML meta tag](https://developer.mozilla.org/docs/Web/HTML/Element/meta)\n * @see [Document.querySelector()](https://developer.mozilla.org/docs/Web/API/Document/querySelector)\n *\n *\n * @publicApi\n */\nclass Meta {\n constructor(_doc) {\n this._doc = _doc;\n this._dom = ɵgetDOM();\n }\n /**\n * Retrieves or creates a specific `<meta>` tag element in the current HTML document.\n * In searching for an existing tag, Angular attempts to match the `name` or `property` attribute\n * values in the provided tag definition, and verifies that all other attribute values are equal.\n * If an existing element is found, it is returned and is not modified in any way.\n * @param tag The definition of a `<meta>` element to match or create.\n * @param forceCreation True to create a new element without checking whether one already exists.\n * @returns The existing element with the same attributes and values if found,\n * the new element if no match is found, or `null` if the tag parameter is not defined.\n */\n addTag(tag, forceCreation = false) {\n if (!tag)\n return null;\n return this._getOrCreateElement(tag, forceCreation);\n }\n /**\n * Retrieves or creates a set of `<meta>` tag elements in the current HTML document.\n * In searching for an existing tag, Angular attempts to match the `name` or `property` attribute\n * values in the provided tag definition, and verifies that all other attribute values are equal.\n * @param tags An array of tag definitions to match or create.\n * @param forceCreation True to create new elements without checking whether they already exist.\n * @returns The matching elements if found, or the new elements.\n */\n addTags(tags, forceCreation = false) {\n if (!tags)\n return [];\n return tags.reduce((result, tag) => {\n if (tag) {\n result.push(this._getOrCreateElement(tag, forceCreation));\n }\n return result;\n }, []);\n }\n /**\n * Retrieves a `<meta>` tag element in the current HTML document.\n * @param attrSelector The tag attribute and value to match against, in the format\n * `\"tag_attribute='value string'\"`.\n * @returns The matching element, if any.\n */\n getTag(attrSelector) {\n if (!attrSelector)\n return null;\n return this._doc.querySelector(`meta[${attrSelector}]`) || null;\n }\n /**\n * Retrieves a set of `<meta>` tag elements in the current HTML document.\n * @param attrSelector The tag attribute and value to match against, in the format\n * `\"tag_attribute='value string'\"`.\n * @returns The matching elements, if any.\n */\n getTags(attrSelector) {\n if (!attrSelector)\n return [];\n const list /*NodeList*/ = this._doc.querySelectorAll(`meta[${attrSelector}]`);\n return list ? [].slice.call(list) : [];\n }\n /**\n * Modifies an existing `<meta>` tag element in the current HTML document.\n * @param tag The tag description with which to replace the existing tag content.\n * @param selector A tag attribute and value to match against, to identify\n * an existing tag. A string in the format `\"tag_attribute=`value string`\"`.\n * If not supplied, matches a tag with the same `name` or `property` attribute value as the\n * replacement tag.\n * @return The modified element.\n */\n updateTag(tag, selector) {\n if (!tag)\n return null;\n selector = selector || this._parseSelector(tag);\n const meta = this.getTag(selector);\n if (meta) {\n return this._setMetaElementAttributes(tag, meta);\n }\n return this._getOrCreateElement(tag, true);\n }\n /**\n * Removes an existing `<meta>` tag element from the current HTML document.\n * @param attrSelector A tag attribute and value to match against, to identify\n * an existing tag. A string in the format `\"tag_attribute=`value string`\"`.\n */\n removeTag(attrSelector) {\n this.removeTagElement(this.getTag(attrSelector));\n }\n /**\n * Removes an existing `<meta>` tag element from the current HTML document.\n * @param meta The tag definition to match against to identify an existing tag.\n */\n removeTagElement(meta) {\n if (meta) {\n this._dom.remove(meta);\n }\n }\n _getOrCreateElement(meta, forceCreation = false) {\n if (!forceCreation) {\n const selector = this._parseSelector(meta);\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 const elem = this.getTags(selector).filter(elem => this._containsAttributes(meta, elem))[0];\n if (elem !== undefined)\n return elem;\n }\n const element = this._dom.createElement('meta');\n this._setMetaElementAttributes(meta, element);\n const head = this._doc.getElementsByTagName('head')[0];\n head.appendChild(element);\n return element;\n }\n _setMetaElementAttributes(tag, el) {\n Object.keys(tag).forEach((prop) => el.setAttribute(this._getMetaKeyMap(prop), tag[prop]));\n return el;\n }\n _parseSelector(tag) {\n const attr = tag.name ? 'name' : 'property';\n return `${attr}=\"${tag[attr]}\"`;\n }\n _containsAttributes(tag, elem) {\n return Object.keys(tag).every((key) => elem.getAttribute(this._getMetaKeyMap(key)) === tag[key]);\n }\n _getMetaKeyMap(prop) {\n return META_KEYS_MAP[prop] || prop;\n }\n}\nMeta.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: Meta, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });\nMeta.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: Meta, providedIn: 'root', useFactory: createMeta, deps: [] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: Meta, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root', useFactory: createMeta, deps: [] }]\n }], ctorParameters: function () { return [{ type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }]; } });\n/**\n * Mapping for MetaDefinition properties with their correct meta attribute names\n */\nconst META_KEYS_MAP = {\n httpEquiv: 'http-equiv'\n};\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source 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 * Factory to create Title service.\n */\nfunction createTitle() {\n return new Title(ɵɵ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 */\nclass Title {\n constructor(_doc) {\n this._doc = _doc;\n }\n /**\n * Get the title of the current HTML document.\n */\n getTitle() {\n return this._doc.title;\n }\n /**\n * Set the title of the current HTML document.\n * @param newTitle\n */\n setTitle(newTitle) {\n this._doc.title = newTitle || '';\n }\n}\nTitle.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: Title, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });\nTitle.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: Title, providedIn: 'root', useFactory: createTitle, deps: [] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: Title, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root', useFactory: createTitle, deps: [] }]\n }], ctorParameters: function () { return [{ type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }]; } });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst CAMEL_CASE_REGEXP = /([A-Z])/g;\nconst DASH_CASE_REGEXP = /-([a-z])/g;\nfunction camelCaseToDashCase(input) {\n return input.replace(CAMEL_CASE_REGEXP, (...m) => '-' + m[1].toLowerCase());\n}\nfunction dashCaseToCamelCase(input) {\n return input.replace(DASH_CASE_REGEXP, (...m) => m[1].toUpperCase());\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 */\nfunction 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 const ng = ɵglobal['ng'] = ɵglobal['ng'] || {};\n ng[name] = value;\n }\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst win = typeof window !== 'undefined' && window || {};\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nclass ChangeDetectionPerfRecord {\n constructor(msPerTick, numTicks) {\n this.msPerTick = msPerTick;\n this.numTicks = numTicks;\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 */\nclass AngularProfiler {\n constructor(ref) {\n 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) {\n const record = config && config['record'];\n const profileName = 'Change Detection';\n // Profiler is not available in Android browsers without dev tools opened\n const isProfilerAvailable = win.console.profile != null;\n if (record && isProfilerAvailable) {\n win.console.profile(profileName);\n }\n const start = performanceNow();\n let numTicks = 0;\n while (numTicks < 5 || (performanceNow() - start) < 500) {\n this.appRef.tick();\n numTicks++;\n }\n const end = performanceNow();\n if (record && isProfilerAvailable) {\n win.console.profileEnd(profileName);\n }\n const 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}\nfunction performanceNow() {\n return win.performance && win.performance.now ? win.performance.now() :\n new Date().getTime();\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nconst 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 */\nfunction enableDebugTools(ref) {\n exportNgVar(PROFILER_GLOBAL_NAME, new AngularProfiler(ref));\n return ref;\n}\n/**\n * Disables Angular tools.\n *\n * @publicApi\n */\nfunction disableDebugTools() {\n exportNgVar(PROFILER_GLOBAL_NAME, null);\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nfunction escapeHtml(text) {\n const escapedText = {\n '&': '&a;',\n '\"': '&q;',\n '\\'': '&s;',\n '<': '&l;',\n '>': '&g;',\n };\n return text.replace(/[&\"'<>]/g, s => escapedText[s]);\n}\nfunction unescapeHtml(text) {\n const unescapedText = {\n '&a;': '&',\n '&q;': '\"',\n '&s;': '\\'',\n '&l;': '<',\n '&g;': '>',\n };\n return text.replace(/&[^;]+;/g, s => 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 */\nfunction 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 * The `TransferState` is available as an injectable token.\n * On the client, just inject this token using DI and use it, it will be lazily initialized.\n * On the server it's already included if `renderApplication` function is used. Otherwise, import\n * the `ServerTransferStateModule` module to make the `TransferState` available.\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 deserialized in a\n * non-lossy manner.\n *\n * @publicApi\n */\nclass TransferState {\n constructor() {\n this.store = {};\n this.onSerializeCallbacks = {};\n }\n /**\n * Get the value corresponding to a key. Return `defaultValue` if key is not found.\n */\n get(key, defaultValue) {\n return this.store[key] !== undefined ? this.store[key] : defaultValue;\n }\n /**\n * Set the value corresponding to a key.\n */\n set(key, value) {\n this.store[key] = value;\n }\n /**\n * Remove a key from the store.\n */\n remove(key) {\n delete this.store[key];\n }\n /**\n * Test whether a key exists in the store.\n */\n hasKey(key) {\n return this.store.hasOwnProperty(key);\n }\n /**\n * Indicates whether the state is empty.\n */\n get isEmpty() {\n return Object.keys(this.store).length === 0;\n }\n /**\n * Register a callback to provide the value for a key when `toJson` is called.\n */\n onSerialize(key, callback) {\n this.onSerializeCallbacks[key] = callback;\n }\n /**\n * Serialize the current state of the store to JSON.\n */\n toJson() {\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 }\n catch (e) {\n console.warn('Exception in onSerialize callback: ', e);\n }\n }\n }\n return JSON.stringify(this.store);\n }\n}\nTransferState.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: TransferState, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\nTransferState.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: TransferState, providedIn: 'root', useFactory: () => {\n const doc = inject(DOCUMENT);\n const appId = inject(APP_ID);\n const state = new TransferState();\n state.store = retrieveTransferredState(doc, appId);\n return state;\n } });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: TransferState, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n useFactory: () => {\n const doc = inject(DOCUMENT);\n const appId = inject(APP_ID);\n const state = new TransferState();\n state.store = retrieveTransferredState(doc, appId);\n return state;\n }\n }]\n }] });\nfunction retrieveTransferredState(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 const script = doc.getElementById(appId + '-state');\n let initialState = {};\n if (script && script.textContent) {\n try {\n // Avoid using any here as it triggers lint errors in google3 (any is not allowed).\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 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 * @deprecated no longer needed, you can inject the `TransferState` in an app without providing\n * this module.\n */\nclass BrowserTransferStateModule {\n}\nBrowserTransferStateModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BrowserTransferStateModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nBrowserTransferStateModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"14.3.0\", ngImport: i0, type: BrowserTransferStateModule });\nBrowserTransferStateModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BrowserTransferStateModule });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: BrowserTransferStateModule, decorators: [{\n type: NgModule,\n args: [{}]\n }] });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source 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 */\nclass By {\n /**\n * Match all nodes.\n *\n * @usageNotes\n * ### Example\n *\n * {@example platform-browser/dom/debug/ts/by/by.ts region='by_all'}\n */\n static all() {\n return () => true;\n }\n /**\n * Match elements by the given CSS selector.\n *\n * @usageNotes\n * ### Example\n *\n * {@example platform-browser/dom/debug/ts/by/by.ts region='by_css'}\n */\n static css(selector) {\n return (debugElement) => {\n return debugElement.nativeElement != null ?\n elementMatches(debugElement.nativeElement, selector) :\n false;\n };\n }\n /**\n * Match nodes that have the given directive present.\n *\n * @usageNotes\n * ### Example\n *\n * {@example platform-browser/dom/debug/ts/by/by.ts region='by_directive'}\n */\n static directive(type) {\n return (debugNode) => debugNode.providerTokens.indexOf(type) !== -1;\n }\n}\nfunction elementMatches(n, selector) {\n if (ɵgetDOM().isElementNode(n)) {\n return n.matches && n.matches(selector) ||\n n.msMatchesSelector && n.msMatchesSelector(selector) ||\n n.webkitMatchesSelector && n.webkitMatchesSelector(selector);\n }\n return false;\n}\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source 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 */\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 'doubletap': true\n};\n/**\n * DI token for providing [HammerJS](https://hammerjs.github.io/) support to Angular.\n * @see `HammerGestureConfig`\n *\n * @ngModule HammerModule\n * @publicApi\n */\nconst HAMMER_GESTURE_CONFIG = new InjectionToken('HammerGestureConfig');\n/**\n * Injection token used to provide a {@link HammerLoader} to Angular.\n *\n * @publicApi\n */\nconst HAMMER_LOADER = new InjectionToken('HammerLoader');\n/**\n * An injectable [HammerJS Manager](https://hammerjs.github.io/api/#hammermanager)\n * for gesture recognition. Configures specific event recognition.\n * @publicApi\n */\nclass HammerGestureConfig {\n constructor() {\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](https://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](https://hammerjs.github.io/).\n *\n */\n this.overrides = {};\n }\n /**\n * Creates a [HammerJS Manager](https://hammerjs.github.io/api/#hammermanager)\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) {\n const mc = new Hammer(element, this.options);\n mc.get('pinch').set({ enable: true });\n mc.get('rotate').set({ enable: true });\n for (const eventName in this.overrides) {\n mc.get(eventName).set(this.overrides[eventName]);\n }\n return mc;\n }\n}\nHammerGestureConfig.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: HammerGestureConfig, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\nHammerGestureConfig.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: HammerGestureConfig });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: HammerGestureConfig, decorators: [{\n type: Injectable\n }] });\n/**\n * Event plugin that adds Hammer support to an application.\n *\n * @ngModule HammerModule\n */\nclass HammerGesturesPlugin extends EventManagerPlugin {\n constructor(doc, _config, console, loader) {\n super(doc);\n this._config = _config;\n this.console = console;\n this.loader = loader;\n this._loaderPromise = null;\n }\n supports(eventName) {\n if (!EVENT_NAMES.hasOwnProperty(eventName.toLowerCase()) && !this.isCustomEvent(eventName)) {\n return false;\n }\n if (!window.Hammer && !this.loader) {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\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 }\n return false;\n }\n return true;\n }\n addEventListener(element, eventName, handler) {\n const 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._loaderPromise = this._loaderPromise || zone.runOutsideAngular(() => 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 = () => {\n cancelRegistration = true;\n };\n zone.runOutsideAngular(() => this._loaderPromise\n .then(() => {\n // If Hammer isn't actually loaded when the custom loader resolves, give up.\n if (!window.Hammer) {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n this.console.warn(`The custom HAMMER_LOADER completed, but Hammer.JS is not present.`);\n }\n deregister = () => { };\n return;\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\n // removal.\n deregister = this.addEventListener(element, eventName, handler);\n }\n })\n .catch(() => {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n this.console.warn(`The \"${eventName}\" event cannot be bound because the custom ` +\n `Hammer.JS loader failed.`);\n }\n deregister = () => { };\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 () => {\n 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) {\n zone.runGuarded(function () {\n handler(eventObj);\n });\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 isCustomEvent(eventName) {\n return this._config.events.indexOf(eventName) > -1;\n }\n}\nHammerGesturesPlugin.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: HammerGesturesPlugin, deps: [{ token: DOCUMENT }, { token: HAMMER_GESTURE_CONFIG }, { token: i0.ɵConsole }, { token: HAMMER_LOADER, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });\nHammerGesturesPlugin.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: HammerGesturesPlugin });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: HammerGesturesPlugin, decorators: [{\n type: Injectable\n }], ctorParameters: function () { return [{ type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }, { type: HammerGestureConfig, decorators: [{\n type: Inject,\n args: [HAMMER_GESTURE_CONFIG]\n }] }, { type: i0.ɵConsole }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [HAMMER_LOADER]\n }] }]; } });\n/**\n * Adds support for HammerJS.\n *\n * Import this module at the root of your application so that Angular can work with\n * HammerJS to detect gesture events.\n *\n * Note that applications still need to include the HammerJS script itself. This module\n * simply sets up the coordination layer between HammerJS and Angular's EventManager.\n *\n * @publicApi\n */\nclass HammerModule {\n}\nHammerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: HammerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nHammerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"14.3.0\", ngImport: i0, type: HammerModule });\nHammerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: HammerModule, providers: [\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 ] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: HammerModule, decorators: [{\n type: NgModule,\n args: [{\n providers: [\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 }]\n }] });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source 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](https://g.co/ng/security).\n *\n * @publicApi\n */\nclass DomSanitizer {\n}\nDomSanitizer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: DomSanitizer, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\nDomSanitizer.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: DomSanitizer, providedIn: 'root', useExisting: i0.forwardRef(function () { return DomSanitizerImpl; }) });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: DomSanitizer, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root', useExisting: forwardRef(() => DomSanitizerImpl) }]\n }] });\nfunction domSanitizerImplFactory(injector) {\n return new DomSanitizerImpl(injector.get(DOCUMENT));\n}\nclass DomSanitizerImpl extends DomSanitizer {\n constructor(_doc) {\n super();\n this._doc = _doc;\n }\n sanitize(ctx, value) {\n if (value == null)\n return null;\n switch (ctx) {\n case SecurityContext.NONE:\n return value;\n case SecurityContext.HTML:\n if (ɵallowSanitizationBypassAndThrow(value, \"HTML\" /* BypassType.Html */)) {\n return ɵunwrapSafeValue(value);\n }\n return ɵ_sanitizeHtml(this._doc, String(value)).toString();\n case SecurityContext.STYLE:\n if (ɵallowSanitizationBypassAndThrow(value, \"Style\" /* BypassType.Style */)) {\n return ɵunwrapSafeValue(value);\n }\n return value;\n case SecurityContext.SCRIPT:\n if (ɵallowSanitizationBypassAndThrow(value, \"Script\" /* BypassType.Script */)) {\n return ɵunwrapSafeValue(value);\n }\n throw new Error('unsafe value used in a script context');\n case SecurityContext.URL:\n if (ɵallowSanitizationBypassAndThrow(value, \"URL\" /* BypassType.Url */)) {\n return ɵunwrapSafeValue(value);\n }\n return ɵ_sanitizeUrl(String(value));\n case SecurityContext.RESOURCE_URL:\n if (ɵallowSanitizationBypassAndThrow(value, \"ResourceURL\" /* BypassType.ResourceUrl */)) {\n return ɵunwrapSafeValue(value);\n }\n throw new Error('unsafe value used in a resource URL context (see https://g.co/ng/security#xss)');\n default:\n throw new Error(`Unexpected SecurityContext ${ctx} (see https://g.co/ng/security#xss)`);\n }\n }\n bypassSecurityTrustHtml(value) {\n return ɵbypassSanitizationTrustHtml(value);\n }\n bypassSecurityTrustStyle(value) {\n return ɵbypassSanitizationTrustStyle(value);\n }\n bypassSecurityTrustScript(value) {\n return ɵbypassSanitizationTrustScript(value);\n }\n bypassSecurityTrustUrl(value) {\n return ɵbypassSanitizationTrustUrl(value);\n }\n bypassSecurityTrustResourceUrl(value) {\n return ɵbypassSanitizationTrustResourceUrl(value);\n }\n}\nDomSanitizerImpl.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: DomSanitizerImpl, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });\nDomSanitizerImpl.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: DomSanitizerImpl, providedIn: 'root', useFactory: domSanitizerImplFactory, deps: [{ token: Injector }] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.3.0\", ngImport: i0, type: DomSanitizerImpl, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root', useFactory: domSanitizerImplFactory, deps: [Injector] }]\n }], ctorParameters: function () { return [{ type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }]; } });\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source 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 LLC All Rights Reserved.\n *\n * Use of this source 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 */\nconst VERSION = new Version('14.3.0');\n\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source 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 LLC All Rights Reserved.\n *\n * Use of this source 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 LLC All Rights Reserved.\n *\n * Use of this source 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\nexport { BrowserModule, BrowserTransferStateModule, By, DomSanitizer, EVENT_MANAGER_PLUGINS, EventManager, HAMMER_GESTURE_CONFIG, HAMMER_LOADER, HammerGestureConfig, HammerModule, Meta, Title, TransferState, VERSION, bootstrapApplication, createApplication, disableDebugTools, enableDebugTools, makeStateKey, platformBrowser, provideProtractorTestingSupport, BrowserDomAdapter as ɵBrowserDomAdapter, BrowserGetTestability as ɵBrowserGetTestability, DomEventsPlugin as ɵDomEventsPlugin, DomRendererFactory2 as ɵDomRendererFactory2, DomSanitizerImpl as ɵDomSanitizerImpl, DomSharedStylesHost as ɵDomSharedStylesHost, HammerGesturesPlugin as ɵHammerGesturesPlugin, INTERNAL_BROWSER_PLATFORM_PROVIDERS as ɵINTERNAL_BROWSER_PLATFORM_PROVIDERS, KeyEventsPlugin as ɵKeyEventsPlugin, NAMESPACE_URIS as ɵNAMESPACE_URIS, SharedStylesHost as ɵSharedStylesHost, TRANSITION_ID as ɵTRANSITION_ID, escapeHtml as ɵescapeHtml, flattenStyles as ɵflattenStyles, initDomAdapter as ɵinitDomAdapter, shimContentAttribute as ɵshimContentAttribute, shimHostAttribute as ɵshimHostAttribute };\n"],"mappings":"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,CAAC,CAAC,EAAkB,YAAY;IAAE,OAAO,CAAC;MAAEkJ,IAAI,EAAEsB,SAAS;MAAEC,UAAU,EAAE,CAAC;QAC9DvB,IAAI,EAAEjJ,MAAM;QACZyK,IAAI,EAAE,CAACpL,QAAQ;MACnB,CAAC;IAAE,CAAC,CAAC;EAAE,CAAC;AAAA;;AAExB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMuV,WAAW,GAAG,OAAO7L,SAAS,KAAK,WAAW,IAAI,CAAC,CAACA,SAAS;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS8L,oBAAoBA,CAACC,aAAa,EAAEC,OAAO,EAAE;EAClD,OAAO3U,0BAA0B,CAAC;IAAE0U,aAAa;IAAE,GAAGE,qBAAqB,CAACD,OAAO;EAAE,CAAC,CAAC;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASE,iBAAiBA,CAACF,OAAO,EAAE;EAChC,OAAO3U,0BAA0B,CAAC4U,qBAAqB,CAACD,OAAO,CAAC,CAAC;AACrE;AACA,SAASC,qBAAqBA,CAACD,OAAO,EAAE;EACpC,OAAO;IACHG,YAAY,EAAE,CACV,GAAGC,wBAAwB,EAC3B,IAAIJ,OAAO,EAAEK,SAAS,IAAI,EAAE,CAAC,CAChC;IACDC,iBAAiB,EAAEC;EACvB,CAAC;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,+BAA+BA,CAAA,EAAG;EACvC;EACA;EACA,OAAO,CAAC,GAAGC,qBAAqB,CAAC;AACrC;AACA,SAASC,cAAcA,CAAA,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"},"metadata":{},"sourceType":"module"} |