{"version":3,"file":"polyfills.js","mappings":"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","sources":["./projects/front-office-app/src/polyfills.ts","./node_modules/zone.js/fesm2015/zone.js","../../packages/compiler/src/ml_parser/tags.ts","../../packages/compiler/src/ml_parser/html_tags.ts","../../packages/compiler/src/selector.ts","../../packages/compiler/src/core.ts","../../packages/compiler/src/util.ts","../../packages/compiler/src/i18n/big_integer.ts","../../packages/compiler/src/i18n/digest.ts","../../packages/compiler/src/output/output_ast.ts","../../packages/compiler/src/constant_pool.ts","../../packages/compiler/src/render3/r3_identifiers.ts","../../packages/compiler/src/output/source_map.ts","../../packages/compiler/src/output/abstract_emitter.ts","../../packages/compiler/src/render3/util.ts","../../packages/compiler/src/render3/r3_factory.ts","../../packages/compiler/src/render3/r3_ast.ts","../../packages/compiler/src/i18n/i18n_ast.ts","../../packages/compiler/src/i18n/serializers/serializer.ts","../../packages/compiler/src/i18n/serializers/xml_helper.ts","../../packages/compiler/src/i18n/serializers/xmb.ts","../../packages/compiler/src/render3/view/i18n/util.ts","../../packages/compiler/src/render3/view/util.ts","../../packages/compiler/src/injectable_compiler_2.ts","../../packages/compiler/src/assertions.ts","../../packages/compiler/src/ml_parser/interpolation_config.ts","../../packages/compiler/src/chars.ts","../../packages/compiler/src/parse_util.ts","../../packages/compiler/src/output/abstract_js_emitter.ts","../../packages/compiler/src/output/output_jit_trusted_types.ts","../../packages/compiler/src/output/output_jit.ts","../../packages/compiler/src/render3/r3_injector_compiler.ts","../../packages/compiler/src/render3/r3_jit.ts","../../packages/compiler/src/render3/r3_module_compiler.ts","../../packages/compiler/src/render3/r3_pipe_compiler.ts","../../packages/compiler/src/render3/view/api.ts","../../packages/compiler/src/expression_parser/ast.ts","../../packages/compiler/src/compiler_util/expression_converter.ts","../../packages/compiler/src/schema/dom_security_schema.ts","../../packages/compiler/src/shadow_css.ts","../../packages/compiler/src/render3/view/style_parser.ts","../../packages/compiler/src/render3/view/styling_builder.ts","../../packages/compiler/src/expression_parser/lexer.ts","../../packages/compiler/src/expression_parser/parser.ts","../../packages/compiler/src/ml_parser/ast.ts","../../packages/compiler/src/ml_parser/entities.ts","../../packages/compiler/src/ml_parser/lexer.ts","../../packages/compiler/src/ml_parser/parser.ts","../../packages/compiler/src/ml_parser/html_parser.ts","../../packages/compiler/src/ml_parser/html_whitespaces.ts","../../packages/compiler/src/output/map_util.ts","../../packages/compiler/src/schema/element_schema_registry.ts","../../packages/compiler/src/schema/dom_element_schema_registry.ts","../../packages/compiler/src/schema/trusted_types_sinks.ts","../../packages/compiler/src/template_parser/binding_parser.ts","../../packages/compiler/src/style_url_resolver.ts","../../packages/compiler/src/template_parser/template_preparser.ts","../../packages/compiler/src/render3/r3_template_transform.ts","../../packages/compiler/src/render3/view/i18n/context.ts","../../packages/compiler/src/render3/view/i18n/icu_serializer.ts","../../packages/compiler/src/i18n/serializers/placeholder.ts","../../packages/compiler/src/i18n/i18n_parser.ts","../../packages/compiler/src/i18n/parse_util.ts","../../packages/compiler/src/render3/view/i18n/meta.ts","../../packages/compiler/src/render3/view/i18n/get_msg_utils.ts","../../packages/compiler/src/render3/view/i18n/localize_utils.ts","../../packages/compiler/src/render3/view/template.ts","../../packages/compiler/src/render3/view/compiler.ts","../../packages/compiler/src/resource_loader.ts","../../packages/compiler/src/jit_compiler_facade.ts","../../packages/compiler/src/version.ts","../../packages/compiler/src/config.ts","../../packages/compiler/src/i18n/extractor_merger.ts","../../packages/compiler/src/ml_parser/xml_tags.ts","../../packages/compiler/src/ml_parser/xml_parser.ts","../../packages/compiler/src/i18n/serializers/xliff.ts","../../packages/compiler/src/i18n/serializers/xliff2.ts","../../packages/compiler/src/i18n/serializers/xtb.ts","../../packages/compiler/src/i18n/translation_bundle.ts","../../packages/compiler/src/i18n/i18n_html_parser.ts","../../packages/compiler/src/i18n/message_bundle.ts","../../packages/compiler/src/i18n/index.ts","../../packages/compiler/src/render3/partial/api.ts","../../packages/compiler/src/render3/view/t2_api.ts","../../packages/compiler/src/render3/view/t2_binder.ts","../../packages/compiler/src/render3/r3_class_metadata_compiler.ts","../../packages/compiler/src/render3/partial/class_metadata.ts","../../packages/compiler/src/render3/partial/util.ts","../../packages/compiler/src/render3/partial/directive.ts","../../packages/compiler/src/render3/partial/component.ts","../../packages/compiler/src/render3/partial/factory.ts","../../packages/compiler/src/render3/partial/injectable.ts","../../packages/compiler/src/render3/partial/injector.ts","../../packages/compiler/src/render3/partial/ng_module.ts","../../packages/compiler/src/render3/partial/pipe.ts","../../packages/compiler/src/compiler.ts","../../packages/compiler/public_api.ts","../../packages/compiler/compiler.ts","../../packages/compiler/index.ts","../../packages/localize/init/index.ts","../../packages/localize/src/utils/src/constants.ts","../../packages/localize/src/utils/src/messages.ts","../../packages/localize/src/utils/src/translations.ts","../../packages/localize/src/utils/index.ts","../../packages/localize/src/translate.ts","../../packages/localize/src/localize/src/global.ts","../../packages/localize/src/localize/src/localize.ts","../../packages/localize/src/localize/index.ts","../../packages/localize/private.ts","../../packages/localize/localize.ts","../../packages/localize/index.ts"],"sourcesContent":["/**\r\n * This file includes polyfills needed by Angular and is loaded before the app.\r\n * You can add your own extra polyfills to this file.\r\n *\r\n * This file is divided into 2 sections:\r\n * 1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.\r\n * 2. Application imports. Files imported after ZoneJS that should be loaded before your main\r\n * file.\r\n *\r\n * The current setup is for so-called \"evergreen\" browsers; the last versions of browsers that\r\n * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),\r\n * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.\r\n *\r\n * Learn more in https://angular.io/docs/ts/latest/guide/browser-support.html\r\n */\r\n\r\n/***************************************************************************************************\r\n * BROWSER POLYFILLS\r\n */\r\n\r\n// Evergreen browsers require these.\r\n// Used for reflect-metadata in JIT. If you use AOT (and only Angular decorators), you can remove.\r\n\r\n/**\r\n * By default, zone.js will patch all possible macroTask and DomEvents\r\n * user can disable parts of macroTask/DomEvents patch by setting following flags\r\n */\r\n\r\n// (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame\r\n// (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick\r\n// (window as any).__zone_symbol__BLACK_LISTED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames\r\n\r\n/**\r\n * in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js\r\n * with the following flag, it will bypass `zone.js` patch for IE/Edge\r\n */\r\n// (window as any).__Zone_enable_cross_context_check = true;\r\n\r\nimport '@angular/localize/init';\r\nimport 'zone.js';\r\n","'use strict';\n/**\n * @license Angular v14.2.0-next.0\n * (c) 2010-2022 Google LLC. https://angular.io/\n * License: MIT\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((function (global) {\n const performance = global['performance'];\n function mark(name) {\n performance && performance['mark'] && performance['mark'](name);\n }\n function performanceMeasure(name, label) {\n performance && performance['measure'] && performance['measure'](name, label);\n }\n mark('Zone');\n // Initialize before it's accessed below.\n // __Zone_symbol_prefix global can be used to override the default zone\n // symbol prefix with a custom one if needed.\n const symbolPrefix = global['__Zone_symbol_prefix'] || '__zone_symbol__';\n function __symbol__(name) {\n return symbolPrefix + name;\n }\n const checkDuplicate = global[__symbol__('forceDuplicateZoneCheck')] === true;\n if (global['Zone']) {\n // if global['Zone'] already exists (maybe zone.js was already loaded or\n // some other lib also registered a global object named Zone), we may need\n // to throw an error, but sometimes user may not want this error.\n // For example,\n // we have two web pages, page1 includes zone.js, page2 doesn't.\n // and the 1st time user load page1 and page2, everything work fine,\n // but when user load page2 again, error occurs because global['Zone'] already exists.\n // so we add a flag to let user choose whether to throw this error or not.\n // By default, if existing Zone is from zone.js, we will not throw the error.\n if (checkDuplicate || typeof global['Zone'].__symbol__ !== 'function') {\n throw new Error('Zone already loaded.');\n }\n else {\n return global['Zone'];\n }\n }\n class Zone {\n constructor(parent, zoneSpec) {\n this._parent = parent;\n this._name = zoneSpec ? zoneSpec.name || 'unnamed' : '';\n this._properties = zoneSpec && zoneSpec.properties || {};\n this._zoneDelegate =\n new _ZoneDelegate(this, this._parent && this._parent._zoneDelegate, zoneSpec);\n }\n static assertZonePatched() {\n if (global['Promise'] !== patches['ZoneAwarePromise']) {\n throw new Error('Zone.js has detected that ZoneAwarePromise `(window|global).Promise` ' +\n 'has been overwritten.\\n' +\n 'Most likely cause is that a Promise polyfill has been loaded ' +\n 'after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. ' +\n 'If you must load one, do so before loading zone.js.)');\n }\n }\n static get root() {\n let zone = Zone.current;\n while (zone.parent) {\n zone = zone.parent;\n }\n return zone;\n }\n static get current() {\n return _currentZoneFrame.zone;\n }\n static get currentTask() {\n return _currentTask;\n }\n // tslint:disable-next-line:require-internal-with-underscore\n static __load_patch(name, fn, ignoreDuplicate = false) {\n if (patches.hasOwnProperty(name)) {\n // `checkDuplicate` option is defined from global variable\n // so it works for all modules.\n // `ignoreDuplicate` can work for the specified module\n if (!ignoreDuplicate && checkDuplicate) {\n throw Error('Already loaded patch: ' + name);\n }\n }\n else if (!global['__Zone_disable_' + name]) {\n const perfName = 'Zone:' + name;\n mark(perfName);\n patches[name] = fn(global, Zone, _api);\n performanceMeasure(perfName, perfName);\n }\n }\n get parent() {\n return this._parent;\n }\n get name() {\n return this._name;\n }\n get(key) {\n const zone = this.getZoneWith(key);\n if (zone)\n return zone._properties[key];\n }\n getZoneWith(key) {\n let current = this;\n while (current) {\n if (current._properties.hasOwnProperty(key)) {\n return current;\n }\n current = current._parent;\n }\n return null;\n }\n fork(zoneSpec) {\n if (!zoneSpec)\n throw new Error('ZoneSpec required!');\n return this._zoneDelegate.fork(this, zoneSpec);\n }\n wrap(callback, source) {\n if (typeof callback !== 'function') {\n throw new Error('Expecting function got: ' + callback);\n }\n const _callback = this._zoneDelegate.intercept(this, callback, source);\n const zone = this;\n return function () {\n return zone.runGuarded(_callback, this, arguments, source);\n };\n }\n run(callback, applyThis, applyArgs, source) {\n _currentZoneFrame = { parent: _currentZoneFrame, zone: this };\n try {\n return this._zoneDelegate.invoke(this, callback, applyThis, applyArgs, source);\n }\n finally {\n _currentZoneFrame = _currentZoneFrame.parent;\n }\n }\n runGuarded(callback, applyThis = null, applyArgs, source) {\n _currentZoneFrame = { parent: _currentZoneFrame, zone: this };\n try {\n try {\n return this._zoneDelegate.invoke(this, callback, applyThis, applyArgs, source);\n }\n catch (error) {\n if (this._zoneDelegate.handleError(this, error)) {\n throw error;\n }\n }\n }\n finally {\n _currentZoneFrame = _currentZoneFrame.parent;\n }\n }\n runTask(task, applyThis, applyArgs) {\n if (task.zone != this) {\n throw new Error('A task can only be run in the zone of creation! (Creation: ' +\n (task.zone || NO_ZONE).name + '; Execution: ' + this.name + ')');\n }\n // https://github.com/angular/zone.js/issues/778, sometimes eventTask\n // will run in notScheduled(canceled) state, we should not try to\n // run such kind of task but just return\n if (task.state === notScheduled && (task.type === eventTask || task.type === macroTask)) {\n return;\n }\n const reEntryGuard = task.state != running;\n reEntryGuard && task._transitionTo(running, scheduled);\n task.runCount++;\n const previousTask = _currentTask;\n _currentTask = task;\n _currentZoneFrame = { parent: _currentZoneFrame, zone: this };\n try {\n if (task.type == macroTask && task.data && !task.data.isPeriodic) {\n task.cancelFn = undefined;\n }\n try {\n return this._zoneDelegate.invokeTask(this, task, applyThis, applyArgs);\n }\n catch (error) {\n if (this._zoneDelegate.handleError(this, error)) {\n throw error;\n }\n }\n }\n finally {\n // if the task's state is notScheduled or unknown, then it has already been cancelled\n // we should not reset the state to scheduled\n if (task.state !== notScheduled && task.state !== unknown) {\n if (task.type == eventTask || (task.data && task.data.isPeriodic)) {\n reEntryGuard && task._transitionTo(scheduled, running);\n }\n else {\n task.runCount = 0;\n this._updateTaskCount(task, -1);\n reEntryGuard &&\n task._transitionTo(notScheduled, running, notScheduled);\n }\n }\n _currentZoneFrame = _currentZoneFrame.parent;\n _currentTask = previousTask;\n }\n }\n scheduleTask(task) {\n if (task.zone && task.zone !== this) {\n // check if the task was rescheduled, the newZone\n // should not be the children of the original zone\n let newZone = this;\n while (newZone) {\n if (newZone === task.zone) {\n throw Error(`can not reschedule task to ${this.name} which is descendants of the original zone ${task.zone.name}`);\n }\n newZone = newZone.parent;\n }\n }\n task._transitionTo(scheduling, notScheduled);\n const zoneDelegates = [];\n task._zoneDelegates = zoneDelegates;\n task._zone = this;\n try {\n task = this._zoneDelegate.scheduleTask(this, task);\n }\n catch (err) {\n // should set task's state to unknown when scheduleTask throw error\n // because the err may from reschedule, so the fromState maybe notScheduled\n task._transitionTo(unknown, scheduling, notScheduled);\n // TODO: @JiaLiPassion, should we check the result from handleError?\n this._zoneDelegate.handleError(this, err);\n throw err;\n }\n if (task._zoneDelegates === zoneDelegates) {\n // we have to check because internally the delegate can reschedule the task.\n this._updateTaskCount(task, 1);\n }\n if (task.state == scheduling) {\n task._transitionTo(scheduled, scheduling);\n }\n return task;\n }\n scheduleMicroTask(source, callback, data, customSchedule) {\n return this.scheduleTask(new ZoneTask(microTask, source, callback, data, customSchedule, undefined));\n }\n scheduleMacroTask(source, callback, data, customSchedule, customCancel) {\n return this.scheduleTask(new ZoneTask(macroTask, source, callback, data, customSchedule, customCancel));\n }\n scheduleEventTask(source, callback, data, customSchedule, customCancel) {\n return this.scheduleTask(new ZoneTask(eventTask, source, callback, data, customSchedule, customCancel));\n }\n cancelTask(task) {\n if (task.zone != this)\n throw new Error('A task can only be cancelled in the zone of creation! (Creation: ' +\n (task.zone || NO_ZONE).name + '; Execution: ' + this.name + ')');\n task._transitionTo(canceling, scheduled, running);\n try {\n this._zoneDelegate.cancelTask(this, task);\n }\n catch (err) {\n // if error occurs when cancelTask, transit the state to unknown\n task._transitionTo(unknown, canceling);\n this._zoneDelegate.handleError(this, err);\n throw err;\n }\n this._updateTaskCount(task, -1);\n task._transitionTo(notScheduled, canceling);\n task.runCount = 0;\n return task;\n }\n _updateTaskCount(task, count) {\n const zoneDelegates = task._zoneDelegates;\n if (count == -1) {\n task._zoneDelegates = null;\n }\n for (let i = 0; i < zoneDelegates.length; i++) {\n zoneDelegates[i]._updateTaskCount(task.type, count);\n }\n }\n }\n // tslint:disable-next-line:require-internal-with-underscore\n Zone.__symbol__ = __symbol__;\n const DELEGATE_ZS = {\n name: '',\n onHasTask: (delegate, _, target, hasTaskState) => delegate.hasTask(target, hasTaskState),\n onScheduleTask: (delegate, _, target, task) => delegate.scheduleTask(target, task),\n onInvokeTask: (delegate, _, target, task, applyThis, applyArgs) => delegate.invokeTask(target, task, applyThis, applyArgs),\n onCancelTask: (delegate, _, target, task) => delegate.cancelTask(target, task)\n };\n class _ZoneDelegate {\n constructor(zone, parentDelegate, zoneSpec) {\n this._taskCounts = { 'microTask': 0, 'macroTask': 0, 'eventTask': 0 };\n this.zone = zone;\n this._parentDelegate = parentDelegate;\n this._forkZS = zoneSpec && (zoneSpec && zoneSpec.onFork ? zoneSpec : parentDelegate._forkZS);\n this._forkDlgt = zoneSpec && (zoneSpec.onFork ? parentDelegate : parentDelegate._forkDlgt);\n this._forkCurrZone =\n zoneSpec && (zoneSpec.onFork ? this.zone : parentDelegate._forkCurrZone);\n this._interceptZS =\n zoneSpec && (zoneSpec.onIntercept ? zoneSpec : parentDelegate._interceptZS);\n this._interceptDlgt =\n zoneSpec && (zoneSpec.onIntercept ? parentDelegate : parentDelegate._interceptDlgt);\n this._interceptCurrZone =\n zoneSpec && (zoneSpec.onIntercept ? this.zone : parentDelegate._interceptCurrZone);\n this._invokeZS = zoneSpec && (zoneSpec.onInvoke ? zoneSpec : parentDelegate._invokeZS);\n this._invokeDlgt =\n zoneSpec && (zoneSpec.onInvoke ? parentDelegate : parentDelegate._invokeDlgt);\n this._invokeCurrZone =\n zoneSpec && (zoneSpec.onInvoke ? this.zone : parentDelegate._invokeCurrZone);\n this._handleErrorZS =\n zoneSpec && (zoneSpec.onHandleError ? zoneSpec : parentDelegate._handleErrorZS);\n this._handleErrorDlgt =\n zoneSpec && (zoneSpec.onHandleError ? parentDelegate : parentDelegate._handleErrorDlgt);\n this._handleErrorCurrZone =\n zoneSpec && (zoneSpec.onHandleError ? this.zone : parentDelegate._handleErrorCurrZone);\n this._scheduleTaskZS =\n zoneSpec && (zoneSpec.onScheduleTask ? zoneSpec : parentDelegate._scheduleTaskZS);\n this._scheduleTaskDlgt = zoneSpec &&\n (zoneSpec.onScheduleTask ? parentDelegate : parentDelegate._scheduleTaskDlgt);\n this._scheduleTaskCurrZone =\n zoneSpec && (zoneSpec.onScheduleTask ? this.zone : parentDelegate._scheduleTaskCurrZone);\n this._invokeTaskZS =\n zoneSpec && (zoneSpec.onInvokeTask ? zoneSpec : parentDelegate._invokeTaskZS);\n this._invokeTaskDlgt =\n zoneSpec && (zoneSpec.onInvokeTask ? parentDelegate : parentDelegate._invokeTaskDlgt);\n this._invokeTaskCurrZone =\n zoneSpec && (zoneSpec.onInvokeTask ? this.zone : parentDelegate._invokeTaskCurrZone);\n this._cancelTaskZS =\n zoneSpec && (zoneSpec.onCancelTask ? zoneSpec : parentDelegate._cancelTaskZS);\n this._cancelTaskDlgt =\n zoneSpec && (zoneSpec.onCancelTask ? parentDelegate : parentDelegate._cancelTaskDlgt);\n this._cancelTaskCurrZone =\n zoneSpec && (zoneSpec.onCancelTask ? this.zone : parentDelegate._cancelTaskCurrZone);\n this._hasTaskZS = null;\n this._hasTaskDlgt = null;\n this._hasTaskDlgtOwner = null;\n this._hasTaskCurrZone = null;\n const zoneSpecHasTask = zoneSpec && zoneSpec.onHasTask;\n const parentHasTask = parentDelegate && parentDelegate._hasTaskZS;\n if (zoneSpecHasTask || parentHasTask) {\n // If we need to report hasTask, than this ZS needs to do ref counting on tasks. In such\n // a case all task related interceptors must go through this ZD. We can't short circuit it.\n this._hasTaskZS = zoneSpecHasTask ? zoneSpec : DELEGATE_ZS;\n this._hasTaskDlgt = parentDelegate;\n this._hasTaskDlgtOwner = this;\n this._hasTaskCurrZone = zone;\n if (!zoneSpec.onScheduleTask) {\n this._scheduleTaskZS = DELEGATE_ZS;\n this._scheduleTaskDlgt = parentDelegate;\n this._scheduleTaskCurrZone = this.zone;\n }\n if (!zoneSpec.onInvokeTask) {\n this._invokeTaskZS = DELEGATE_ZS;\n this._invokeTaskDlgt = parentDelegate;\n this._invokeTaskCurrZone = this.zone;\n }\n if (!zoneSpec.onCancelTask) {\n this._cancelTaskZS = DELEGATE_ZS;\n this._cancelTaskDlgt = parentDelegate;\n this._cancelTaskCurrZone = this.zone;\n }\n }\n }\n fork(targetZone, zoneSpec) {\n return this._forkZS ? this._forkZS.onFork(this._forkDlgt, this.zone, targetZone, zoneSpec) :\n new Zone(targetZone, zoneSpec);\n }\n intercept(targetZone, callback, source) {\n return this._interceptZS ?\n this._interceptZS.onIntercept(this._interceptDlgt, this._interceptCurrZone, targetZone, callback, source) :\n callback;\n }\n invoke(targetZone, callback, applyThis, applyArgs, source) {\n return this._invokeZS ? this._invokeZS.onInvoke(this._invokeDlgt, this._invokeCurrZone, targetZone, callback, applyThis, applyArgs, source) :\n callback.apply(applyThis, applyArgs);\n }\n handleError(targetZone, error) {\n return this._handleErrorZS ?\n this._handleErrorZS.onHandleError(this._handleErrorDlgt, this._handleErrorCurrZone, targetZone, error) :\n true;\n }\n scheduleTask(targetZone, task) {\n let returnTask = task;\n if (this._scheduleTaskZS) {\n if (this._hasTaskZS) {\n returnTask._zoneDelegates.push(this._hasTaskDlgtOwner);\n }\n // clang-format off\n returnTask = this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt, this._scheduleTaskCurrZone, targetZone, task);\n // clang-format on\n if (!returnTask)\n returnTask = task;\n }\n else {\n if (task.scheduleFn) {\n task.scheduleFn(task);\n }\n else if (task.type == microTask) {\n scheduleMicroTask(task);\n }\n else {\n throw new Error('Task is missing scheduleFn.');\n }\n }\n return returnTask;\n }\n invokeTask(targetZone, task, applyThis, applyArgs) {\n return this._invokeTaskZS ? this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt, this._invokeTaskCurrZone, targetZone, task, applyThis, applyArgs) :\n task.callback.apply(applyThis, applyArgs);\n }\n cancelTask(targetZone, task) {\n let value;\n if (this._cancelTaskZS) {\n value = this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt, this._cancelTaskCurrZone, targetZone, task);\n }\n else {\n if (!task.cancelFn) {\n throw Error('Task is not cancelable');\n }\n value = task.cancelFn(task);\n }\n return value;\n }\n hasTask(targetZone, isEmpty) {\n // hasTask should not throw error so other ZoneDelegate\n // can still trigger hasTask callback\n try {\n this._hasTaskZS &&\n this._hasTaskZS.onHasTask(this._hasTaskDlgt, this._hasTaskCurrZone, targetZone, isEmpty);\n }\n catch (err) {\n this.handleError(targetZone, err);\n }\n }\n // tslint:disable-next-line:require-internal-with-underscore\n _updateTaskCount(type, count) {\n const counts = this._taskCounts;\n const prev = counts[type];\n const next = counts[type] = prev + count;\n if (next < 0) {\n throw new Error('More tasks executed then were scheduled.');\n }\n if (prev == 0 || next == 0) {\n const isEmpty = {\n microTask: counts['microTask'] > 0,\n macroTask: counts['macroTask'] > 0,\n eventTask: counts['eventTask'] > 0,\n change: type\n };\n this.hasTask(this.zone, isEmpty);\n }\n }\n }\n class ZoneTask {\n constructor(type, source, callback, options, scheduleFn, cancelFn) {\n // tslint:disable-next-line:require-internal-with-underscore\n this._zone = null;\n this.runCount = 0;\n // tslint:disable-next-line:require-internal-with-underscore\n this._zoneDelegates = null;\n // tslint:disable-next-line:require-internal-with-underscore\n this._state = 'notScheduled';\n this.type = type;\n this.source = source;\n this.data = options;\n this.scheduleFn = scheduleFn;\n this.cancelFn = cancelFn;\n if (!callback) {\n throw new Error('callback is not defined');\n }\n this.callback = callback;\n const self = this;\n // TODO: @JiaLiPassion options should have interface\n if (type === eventTask && options && options.useG) {\n this.invoke = ZoneTask.invokeTask;\n }\n else {\n this.invoke = function () {\n return ZoneTask.invokeTask.call(global, self, this, arguments);\n };\n }\n }\n static invokeTask(task, target, args) {\n if (!task) {\n task = this;\n }\n _numberOfNestedTaskFrames++;\n try {\n task.runCount++;\n return task.zone.runTask(task, target, args);\n }\n finally {\n if (_numberOfNestedTaskFrames == 1) {\n drainMicroTaskQueue();\n }\n _numberOfNestedTaskFrames--;\n }\n }\n get zone() {\n return this._zone;\n }\n get state() {\n return this._state;\n }\n cancelScheduleRequest() {\n this._transitionTo(notScheduled, scheduling);\n }\n // tslint:disable-next-line:require-internal-with-underscore\n _transitionTo(toState, fromState1, fromState2) {\n if (this._state === fromState1 || this._state === fromState2) {\n this._state = toState;\n if (toState == notScheduled) {\n this._zoneDelegates = null;\n }\n }\n else {\n throw new Error(`${this.type} '${this.source}': can not transition to '${toState}', expecting state '${fromState1}'${fromState2 ? ' or \\'' + fromState2 + '\\'' : ''}, was '${this._state}'.`);\n }\n }\n toString() {\n if (this.data && typeof this.data.handleId !== 'undefined') {\n return this.data.handleId.toString();\n }\n else {\n return Object.prototype.toString.call(this);\n }\n }\n // add toJSON method to prevent cyclic error when\n // call JSON.stringify(zoneTask)\n toJSON() {\n return {\n type: this.type,\n state: this.state,\n source: this.source,\n zone: this.zone.name,\n runCount: this.runCount\n };\n }\n }\n //////////////////////////////////////////////////////\n //////////////////////////////////////////////////////\n /// MICROTASK QUEUE\n //////////////////////////////////////////////////////\n //////////////////////////////////////////////////////\n const symbolSetTimeout = __symbol__('setTimeout');\n const symbolPromise = __symbol__('Promise');\n const symbolThen = __symbol__('then');\n let _microTaskQueue = [];\n let _isDrainingMicrotaskQueue = false;\n let nativeMicroTaskQueuePromise;\n function nativeScheduleMicroTask(func) {\n if (!nativeMicroTaskQueuePromise) {\n if (global[symbolPromise]) {\n nativeMicroTaskQueuePromise = global[symbolPromise].resolve(0);\n }\n }\n if (nativeMicroTaskQueuePromise) {\n let nativeThen = nativeMicroTaskQueuePromise[symbolThen];\n if (!nativeThen) {\n // native Promise is not patchable, we need to use `then` directly\n // issue 1078\n nativeThen = nativeMicroTaskQueuePromise['then'];\n }\n nativeThen.call(nativeMicroTaskQueuePromise, func);\n }\n else {\n global[symbolSetTimeout](func, 0);\n }\n }\n function scheduleMicroTask(task) {\n // if we are not running in any task, and there has not been anything scheduled\n // we must bootstrap the initial task creation by manually scheduling the drain\n if (_numberOfNestedTaskFrames === 0 && _microTaskQueue.length === 0) {\n // We are not running in Task, so we need to kickstart the microtask queue.\n nativeScheduleMicroTask(drainMicroTaskQueue);\n }\n task && _microTaskQueue.push(task);\n }\n function drainMicroTaskQueue() {\n if (!_isDrainingMicrotaskQueue) {\n _isDrainingMicrotaskQueue = true;\n while (_microTaskQueue.length) {\n const queue = _microTaskQueue;\n _microTaskQueue = [];\n for (let i = 0; i < queue.length; i++) {\n const task = queue[i];\n try {\n task.zone.runTask(task, null, null);\n }\n catch (error) {\n _api.onUnhandledError(error);\n }\n }\n }\n _api.microtaskDrainDone();\n _isDrainingMicrotaskQueue = false;\n }\n }\n //////////////////////////////////////////////////////\n //////////////////////////////////////////////////////\n /// BOOTSTRAP\n //////////////////////////////////////////////////////\n //////////////////////////////////////////////////////\n const NO_ZONE = { name: 'NO ZONE' };\n const notScheduled = 'notScheduled', scheduling = 'scheduling', scheduled = 'scheduled', running = 'running', canceling = 'canceling', unknown = 'unknown';\n const microTask = 'microTask', macroTask = 'macroTask', eventTask = 'eventTask';\n const patches = {};\n const _api = {\n symbol: __symbol__,\n currentZoneFrame: () => _currentZoneFrame,\n onUnhandledError: noop,\n microtaskDrainDone: noop,\n scheduleMicroTask: scheduleMicroTask,\n showUncaughtError: () => !Zone[__symbol__('ignoreConsoleErrorUncaughtError')],\n patchEventTarget: () => [],\n patchOnProperties: noop,\n patchMethod: () => noop,\n bindArguments: () => [],\n patchThen: () => noop,\n patchMacroTask: () => noop,\n patchEventPrototype: () => noop,\n isIEOrEdge: () => false,\n getGlobalObjects: () => undefined,\n ObjectDefineProperty: () => noop,\n ObjectGetOwnPropertyDescriptor: () => undefined,\n ObjectCreate: () => undefined,\n ArraySlice: () => [],\n patchClass: () => noop,\n wrapWithCurrentZone: () => noop,\n filterProperties: () => [],\n attachOriginToPatched: () => noop,\n _redefineProperty: () => noop,\n patchCallbacks: () => noop,\n nativeScheduleMicroTask: nativeScheduleMicroTask\n };\n let _currentZoneFrame = { parent: null, zone: new Zone(null, null) };\n let _currentTask = null;\n let _numberOfNestedTaskFrames = 0;\n function noop() { }\n performanceMeasure('Zone', 'Zone');\n return global['Zone'] = Zone;\n}))(typeof window !== 'undefined' && window || typeof self !== 'undefined' && self || global);\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 * Suppress closure compiler errors about unknown 'Zone' variable\n * @fileoverview\n * @suppress {undefinedVars,globalThis,missingRequire}\n */\n/// \n// issue #989, to reduce bundle size, use short name\n/** Object.getOwnPropertyDescriptor */\nconst ObjectGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n/** Object.defineProperty */\nconst ObjectDefineProperty = Object.defineProperty;\n/** Object.getPrototypeOf */\nconst ObjectGetPrototypeOf = Object.getPrototypeOf;\n/** Object.create */\nconst ObjectCreate = Object.create;\n/** Array.prototype.slice */\nconst ArraySlice = Array.prototype.slice;\n/** addEventListener string const */\nconst ADD_EVENT_LISTENER_STR = 'addEventListener';\n/** removeEventListener string const */\nconst REMOVE_EVENT_LISTENER_STR = 'removeEventListener';\n/** zoneSymbol addEventListener */\nconst ZONE_SYMBOL_ADD_EVENT_LISTENER = Zone.__symbol__(ADD_EVENT_LISTENER_STR);\n/** zoneSymbol removeEventListener */\nconst ZONE_SYMBOL_REMOVE_EVENT_LISTENER = Zone.__symbol__(REMOVE_EVENT_LISTENER_STR);\n/** true string const */\nconst TRUE_STR = 'true';\n/** false string const */\nconst FALSE_STR = 'false';\n/** Zone symbol prefix string const. */\nconst ZONE_SYMBOL_PREFIX = Zone.__symbol__('');\nfunction wrapWithCurrentZone(callback, source) {\n return Zone.current.wrap(callback, source);\n}\nfunction scheduleMacroTaskWithCurrentZone(source, callback, data, customSchedule, customCancel) {\n return Zone.current.scheduleMacroTask(source, callback, data, customSchedule, customCancel);\n}\nconst zoneSymbol = Zone.__symbol__;\nconst isWindowExists = typeof window !== 'undefined';\nconst internalWindow = isWindowExists ? window : undefined;\nconst _global = isWindowExists && internalWindow || typeof self === 'object' && self || global;\nconst REMOVE_ATTRIBUTE = 'removeAttribute';\nfunction bindArguments(args, source) {\n for (let i = args.length - 1; i >= 0; i--) {\n if (typeof args[i] === 'function') {\n args[i] = wrapWithCurrentZone(args[i], source + '_' + i);\n }\n }\n return args;\n}\nfunction patchPrototype(prototype, fnNames) {\n const source = prototype.constructor['name'];\n for (let i = 0; i < fnNames.length; i++) {\n const name = fnNames[i];\n const delegate = prototype[name];\n if (delegate) {\n const prototypeDesc = ObjectGetOwnPropertyDescriptor(prototype, name);\n if (!isPropertyWritable(prototypeDesc)) {\n continue;\n }\n prototype[name] = ((delegate) => {\n const patched = function () {\n return delegate.apply(this, bindArguments(arguments, source + '.' + name));\n };\n attachOriginToPatched(patched, delegate);\n return patched;\n })(delegate);\n }\n }\n}\nfunction isPropertyWritable(propertyDesc) {\n if (!propertyDesc) {\n return true;\n }\n if (propertyDesc.writable === false) {\n return false;\n }\n return !(typeof propertyDesc.get === 'function' && typeof propertyDesc.set === 'undefined');\n}\nconst isWebWorker = (typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope);\n// Make sure to access `process` through `_global` so that WebPack does not accidentally browserify\n// this code.\nconst isNode = (!('nw' in _global) && typeof _global.process !== 'undefined' &&\n {}.toString.call(_global.process) === '[object process]');\nconst isBrowser = !isNode && !isWebWorker && !!(isWindowExists && internalWindow['HTMLElement']);\n// we are in electron of nw, so we are both browser and nodejs\n// Make sure to access `process` through `_global` so that WebPack does not accidentally browserify\n// this code.\nconst isMix = typeof _global.process !== 'undefined' &&\n {}.toString.call(_global.process) === '[object process]' && !isWebWorker &&\n !!(isWindowExists && internalWindow['HTMLElement']);\nconst zoneSymbolEventNames$1 = {};\nconst wrapFn = function (event) {\n // https://github.com/angular/zone.js/issues/911, in IE, sometimes\n // event will be undefined, so we need to use window.event\n event = event || _global.event;\n if (!event) {\n return;\n }\n let eventNameSymbol = zoneSymbolEventNames$1[event.type];\n if (!eventNameSymbol) {\n eventNameSymbol = zoneSymbolEventNames$1[event.type] = zoneSymbol('ON_PROPERTY' + event.type);\n }\n const target = this || event.target || _global;\n const listener = target[eventNameSymbol];\n let result;\n if (isBrowser && target === internalWindow && event.type === 'error') {\n // window.onerror have different signature\n // https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers/onerror#window.onerror\n // and onerror callback will prevent default when callback return true\n const errorEvent = event;\n result = listener &&\n listener.call(this, errorEvent.message, errorEvent.filename, errorEvent.lineno, errorEvent.colno, errorEvent.error);\n if (result === true) {\n event.preventDefault();\n }\n }\n else {\n result = listener && listener.apply(this, arguments);\n if (result != undefined && !result) {\n event.preventDefault();\n }\n }\n return result;\n};\nfunction patchProperty(obj, prop, prototype) {\n let desc = ObjectGetOwnPropertyDescriptor(obj, prop);\n if (!desc && prototype) {\n // when patch window object, use prototype to check prop exist or not\n const prototypeDesc = ObjectGetOwnPropertyDescriptor(prototype, prop);\n if (prototypeDesc) {\n desc = { enumerable: true, configurable: true };\n }\n }\n // if the descriptor not exists or is not configurable\n // just return\n if (!desc || !desc.configurable) {\n return;\n }\n const onPropPatchedSymbol = zoneSymbol('on' + prop + 'patched');\n if (obj.hasOwnProperty(onPropPatchedSymbol) && obj[onPropPatchedSymbol]) {\n return;\n }\n // A property descriptor cannot have getter/setter and be writable\n // deleting the writable and value properties avoids this error:\n //\n // TypeError: property descriptors must not specify a value or be writable when a\n // getter or setter has been specified\n delete desc.writable;\n delete desc.value;\n const originalDescGet = desc.get;\n const originalDescSet = desc.set;\n // slice(2) cuz 'onclick' -> 'click', etc\n const eventName = prop.slice(2);\n let eventNameSymbol = zoneSymbolEventNames$1[eventName];\n if (!eventNameSymbol) {\n eventNameSymbol = zoneSymbolEventNames$1[eventName] = zoneSymbol('ON_PROPERTY' + eventName);\n }\n desc.set = function (newValue) {\n // in some of windows's onproperty callback, this is undefined\n // so we need to check it\n let target = this;\n if (!target && obj === _global) {\n target = _global;\n }\n if (!target) {\n return;\n }\n const previousValue = target[eventNameSymbol];\n if (typeof previousValue === 'function') {\n target.removeEventListener(eventName, wrapFn);\n }\n // issue #978, when onload handler was added before loading zone.js\n // we should remove it with originalDescSet\n originalDescSet && originalDescSet.call(target, null);\n target[eventNameSymbol] = newValue;\n if (typeof newValue === 'function') {\n target.addEventListener(eventName, wrapFn, false);\n }\n };\n // The getter would return undefined for unassigned properties but the default value of an\n // unassigned property is null\n desc.get = function () {\n // in some of windows's onproperty callback, this is undefined\n // so we need to check it\n let target = this;\n if (!target && obj === _global) {\n target = _global;\n }\n if (!target) {\n return null;\n }\n const listener = target[eventNameSymbol];\n if (listener) {\n return listener;\n }\n else if (originalDescGet) {\n // result will be null when use inline event attribute,\n // such as \n // because the onclick function is internal raw uncompiled handler\n // the onclick will be evaluated when first time event was triggered or\n // the property is accessed, https://github.com/angular/zone.js/issues/525\n // so we should use original native get to retrieve the handler\n let value = originalDescGet.call(this);\n if (value) {\n desc.set.call(this, value);\n if (typeof target[REMOVE_ATTRIBUTE] === 'function') {\n target.removeAttribute(prop);\n }\n return value;\n }\n }\n return null;\n };\n ObjectDefineProperty(obj, prop, desc);\n obj[onPropPatchedSymbol] = true;\n}\nfunction patchOnProperties(obj, properties, prototype) {\n if (properties) {\n for (let i = 0; i < properties.length; i++) {\n patchProperty(obj, 'on' + properties[i], prototype);\n }\n }\n else {\n const onProperties = [];\n for (const prop in obj) {\n if (prop.slice(0, 2) == 'on') {\n onProperties.push(prop);\n }\n }\n for (let j = 0; j < onProperties.length; j++) {\n patchProperty(obj, onProperties[j], prototype);\n }\n }\n}\nconst originalInstanceKey = zoneSymbol('originalInstance');\n// wrap some native API on `window`\nfunction patchClass(className) {\n const OriginalClass = _global[className];\n if (!OriginalClass)\n return;\n // keep original class in global\n _global[zoneSymbol(className)] = OriginalClass;\n _global[className] = function () {\n const a = bindArguments(arguments, className);\n switch (a.length) {\n case 0:\n this[originalInstanceKey] = new OriginalClass();\n break;\n case 1:\n this[originalInstanceKey] = new OriginalClass(a[0]);\n break;\n case 2:\n this[originalInstanceKey] = new OriginalClass(a[0], a[1]);\n break;\n case 3:\n this[originalInstanceKey] = new OriginalClass(a[0], a[1], a[2]);\n break;\n case 4:\n this[originalInstanceKey] = new OriginalClass(a[0], a[1], a[2], a[3]);\n break;\n default:\n throw new Error('Arg list too long.');\n }\n };\n // attach original delegate to patched function\n attachOriginToPatched(_global[className], OriginalClass);\n const instance = new OriginalClass(function () { });\n let prop;\n for (prop in instance) {\n // https://bugs.webkit.org/show_bug.cgi?id=44721\n if (className === 'XMLHttpRequest' && prop === 'responseBlob')\n continue;\n (function (prop) {\n if (typeof instance[prop] === 'function') {\n _global[className].prototype[prop] = function () {\n return this[originalInstanceKey][prop].apply(this[originalInstanceKey], arguments);\n };\n }\n else {\n ObjectDefineProperty(_global[className].prototype, prop, {\n set: function (fn) {\n if (typeof fn === 'function') {\n this[originalInstanceKey][prop] = wrapWithCurrentZone(fn, className + '.' + prop);\n // keep callback in wrapped function so we can\n // use it in Function.prototype.toString to return\n // the native one.\n attachOriginToPatched(this[originalInstanceKey][prop], fn);\n }\n else {\n this[originalInstanceKey][prop] = fn;\n }\n },\n get: function () {\n return this[originalInstanceKey][prop];\n }\n });\n }\n }(prop));\n }\n for (prop in OriginalClass) {\n if (prop !== 'prototype' && OriginalClass.hasOwnProperty(prop)) {\n _global[className][prop] = OriginalClass[prop];\n }\n }\n}\nfunction patchMethod(target, name, patchFn) {\n let proto = target;\n while (proto && !proto.hasOwnProperty(name)) {\n proto = ObjectGetPrototypeOf(proto);\n }\n if (!proto && target[name]) {\n // somehow we did not find it, but we can see it. This happens on IE for Window properties.\n proto = target;\n }\n const delegateName = zoneSymbol(name);\n let delegate = null;\n if (proto && (!(delegate = proto[delegateName]) || !proto.hasOwnProperty(delegateName))) {\n delegate = proto[delegateName] = proto[name];\n // check whether proto[name] is writable\n // some property is readonly in safari, such as HtmlCanvasElement.prototype.toBlob\n const desc = proto && ObjectGetOwnPropertyDescriptor(proto, name);\n if (isPropertyWritable(desc)) {\n const patchDelegate = patchFn(delegate, delegateName, name);\n proto[name] = function () {\n return patchDelegate(this, arguments);\n };\n attachOriginToPatched(proto[name], delegate);\n }\n }\n return delegate;\n}\n// TODO: @JiaLiPassion, support cancel task later if necessary\nfunction patchMacroTask(obj, funcName, metaCreator) {\n let setNative = null;\n function scheduleTask(task) {\n const data = task.data;\n data.args[data.cbIdx] = function () {\n task.invoke.apply(this, arguments);\n };\n setNative.apply(data.target, data.args);\n return task;\n }\n setNative = patchMethod(obj, funcName, (delegate) => function (self, args) {\n const meta = metaCreator(self, args);\n if (meta.cbIdx >= 0 && typeof args[meta.cbIdx] === 'function') {\n return scheduleMacroTaskWithCurrentZone(meta.name, args[meta.cbIdx], meta, scheduleTask);\n }\n else {\n // cause an error by calling it directly.\n return delegate.apply(self, args);\n }\n });\n}\nfunction attachOriginToPatched(patched, original) {\n patched[zoneSymbol('OriginalDelegate')] = original;\n}\nlet isDetectedIEOrEdge = false;\nlet ieOrEdge = false;\nfunction isIE() {\n try {\n const ua = internalWindow.navigator.userAgent;\n if (ua.indexOf('MSIE ') !== -1 || ua.indexOf('Trident/') !== -1) {\n return true;\n }\n }\n catch (error) {\n }\n return false;\n}\nfunction isIEOrEdge() {\n if (isDetectedIEOrEdge) {\n return ieOrEdge;\n }\n isDetectedIEOrEdge = true;\n try {\n const ua = internalWindow.navigator.userAgent;\n if (ua.indexOf('MSIE ') !== -1 || ua.indexOf('Trident/') !== -1 || ua.indexOf('Edge/') !== -1) {\n ieOrEdge = true;\n }\n }\n catch (error) {\n }\n return ieOrEdge;\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 */\nZone.__load_patch('ZoneAwarePromise', (global, Zone, api) => {\n const ObjectGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n const ObjectDefineProperty = Object.defineProperty;\n function readableObjectToString(obj) {\n if (obj && obj.toString === Object.prototype.toString) {\n const className = obj.constructor && obj.constructor.name;\n return (className ? className : '') + ': ' + JSON.stringify(obj);\n }\n return obj ? obj.toString() : Object.prototype.toString.call(obj);\n }\n const __symbol__ = api.symbol;\n const _uncaughtPromiseErrors = [];\n const isDisableWrappingUncaughtPromiseRejection = global[__symbol__('DISABLE_WRAPPING_UNCAUGHT_PROMISE_REJECTION')] === true;\n const symbolPromise = __symbol__('Promise');\n const symbolThen = __symbol__('then');\n const creationTrace = '__creationTrace__';\n api.onUnhandledError = (e) => {\n if (api.showUncaughtError()) {\n const rejection = e && e.rejection;\n if (rejection) {\n console.error('Unhandled Promise rejection:', rejection instanceof Error ? rejection.message : rejection, '; Zone:', e.zone.name, '; Task:', e.task && e.task.source, '; Value:', rejection, rejection instanceof Error ? rejection.stack : undefined);\n }\n else {\n console.error(e);\n }\n }\n };\n api.microtaskDrainDone = () => {\n while (_uncaughtPromiseErrors.length) {\n const uncaughtPromiseError = _uncaughtPromiseErrors.shift();\n try {\n uncaughtPromiseError.zone.runGuarded(() => {\n if (uncaughtPromiseError.throwOriginal) {\n throw uncaughtPromiseError.rejection;\n }\n throw uncaughtPromiseError;\n });\n }\n catch (error) {\n handleUnhandledRejection(error);\n }\n }\n };\n const UNHANDLED_PROMISE_REJECTION_HANDLER_SYMBOL = __symbol__('unhandledPromiseRejectionHandler');\n function handleUnhandledRejection(e) {\n api.onUnhandledError(e);\n try {\n const handler = Zone[UNHANDLED_PROMISE_REJECTION_HANDLER_SYMBOL];\n if (typeof handler === 'function') {\n handler.call(this, e);\n }\n }\n catch (err) {\n }\n }\n function isThenable(value) {\n return value && value.then;\n }\n function forwardResolution(value) {\n return value;\n }\n function forwardRejection(rejection) {\n return ZoneAwarePromise.reject(rejection);\n }\n const symbolState = __symbol__('state');\n const symbolValue = __symbol__('value');\n const symbolFinally = __symbol__('finally');\n const symbolParentPromiseValue = __symbol__('parentPromiseValue');\n const symbolParentPromiseState = __symbol__('parentPromiseState');\n const source = 'Promise.then';\n const UNRESOLVED = null;\n const RESOLVED = true;\n const REJECTED = false;\n const REJECTED_NO_CATCH = 0;\n function makeResolver(promise, state) {\n return (v) => {\n try {\n resolvePromise(promise, state, v);\n }\n catch (err) {\n resolvePromise(promise, false, err);\n }\n // Do not return value or you will break the Promise spec.\n };\n }\n const once = function () {\n let wasCalled = false;\n return function wrapper(wrappedFunction) {\n return function () {\n if (wasCalled) {\n return;\n }\n wasCalled = true;\n wrappedFunction.apply(null, arguments);\n };\n };\n };\n const TYPE_ERROR = 'Promise resolved with itself';\n const CURRENT_TASK_TRACE_SYMBOL = __symbol__('currentTaskTrace');\n // Promise Resolution\n function resolvePromise(promise, state, value) {\n const onceWrapper = once();\n if (promise === value) {\n throw new TypeError(TYPE_ERROR);\n }\n if (promise[symbolState] === UNRESOLVED) {\n // should only get value.then once based on promise spec.\n let then = null;\n try {\n if (typeof value === 'object' || typeof value === 'function') {\n then = value && value.then;\n }\n }\n catch (err) {\n onceWrapper(() => {\n resolvePromise(promise, false, err);\n })();\n return promise;\n }\n // if (value instanceof ZoneAwarePromise) {\n if (state !== REJECTED && value instanceof ZoneAwarePromise &&\n value.hasOwnProperty(symbolState) && value.hasOwnProperty(symbolValue) &&\n value[symbolState] !== UNRESOLVED) {\n clearRejectedNoCatch(value);\n resolvePromise(promise, value[symbolState], value[symbolValue]);\n }\n else if (state !== REJECTED && typeof then === 'function') {\n try {\n then.call(value, onceWrapper(makeResolver(promise, state)), onceWrapper(makeResolver(promise, false)));\n }\n catch (err) {\n onceWrapper(() => {\n resolvePromise(promise, false, err);\n })();\n }\n }\n else {\n promise[symbolState] = state;\n const queue = promise[symbolValue];\n promise[symbolValue] = value;\n if (promise[symbolFinally] === symbolFinally) {\n // the promise is generated by Promise.prototype.finally\n if (state === RESOLVED) {\n // the state is resolved, should ignore the value\n // and use parent promise value\n promise[symbolState] = promise[symbolParentPromiseState];\n promise[symbolValue] = promise[symbolParentPromiseValue];\n }\n }\n // record task information in value when error occurs, so we can\n // do some additional work such as render longStackTrace\n if (state === REJECTED && value instanceof Error) {\n // check if longStackTraceZone is here\n const trace = Zone.currentTask && Zone.currentTask.data &&\n Zone.currentTask.data[creationTrace];\n if (trace) {\n // only keep the long stack trace into error when in longStackTraceZone\n ObjectDefineProperty(value, CURRENT_TASK_TRACE_SYMBOL, { configurable: true, enumerable: false, writable: true, value: trace });\n }\n }\n for (let i = 0; i < queue.length;) {\n scheduleResolveOrReject(promise, queue[i++], queue[i++], queue[i++], queue[i++]);\n }\n if (queue.length == 0 && state == REJECTED) {\n promise[symbolState] = REJECTED_NO_CATCH;\n let uncaughtPromiseError = value;\n try {\n // Here we throws a new Error to print more readable error log\n // and if the value is not an error, zone.js builds an `Error`\n // Object here to attach the stack information.\n throw new Error('Uncaught (in promise): ' + readableObjectToString(value) +\n (value && value.stack ? '\\n' + value.stack : ''));\n }\n catch (err) {\n uncaughtPromiseError = err;\n }\n if (isDisableWrappingUncaughtPromiseRejection) {\n // If disable wrapping uncaught promise reject\n // use the value instead of wrapping it.\n uncaughtPromiseError.throwOriginal = true;\n }\n uncaughtPromiseError.rejection = value;\n uncaughtPromiseError.promise = promise;\n uncaughtPromiseError.zone = Zone.current;\n uncaughtPromiseError.task = Zone.currentTask;\n _uncaughtPromiseErrors.push(uncaughtPromiseError);\n api.scheduleMicroTask(); // to make sure that it is running\n }\n }\n }\n // Resolving an already resolved promise is a noop.\n return promise;\n }\n const REJECTION_HANDLED_HANDLER = __symbol__('rejectionHandledHandler');\n function clearRejectedNoCatch(promise) {\n if (promise[symbolState] === REJECTED_NO_CATCH) {\n // if the promise is rejected no catch status\n // and queue.length > 0, means there is a error handler\n // here to handle the rejected promise, we should trigger\n // windows.rejectionhandled eventHandler or nodejs rejectionHandled\n // eventHandler\n try {\n const handler = Zone[REJECTION_HANDLED_HANDLER];\n if (handler && typeof handler === 'function') {\n handler.call(this, { rejection: promise[symbolValue], promise: promise });\n }\n }\n catch (err) {\n }\n promise[symbolState] = REJECTED;\n for (let i = 0; i < _uncaughtPromiseErrors.length; i++) {\n if (promise === _uncaughtPromiseErrors[i].promise) {\n _uncaughtPromiseErrors.splice(i, 1);\n }\n }\n }\n }\n function scheduleResolveOrReject(promise, zone, chainPromise, onFulfilled, onRejected) {\n clearRejectedNoCatch(promise);\n const promiseState = promise[symbolState];\n const delegate = promiseState ?\n (typeof onFulfilled === 'function') ? onFulfilled : forwardResolution :\n (typeof onRejected === 'function') ? onRejected :\n forwardRejection;\n zone.scheduleMicroTask(source, () => {\n try {\n const parentPromiseValue = promise[symbolValue];\n const isFinallyPromise = !!chainPromise && symbolFinally === chainPromise[symbolFinally];\n if (isFinallyPromise) {\n // if the promise is generated from finally call, keep parent promise's state and value\n chainPromise[symbolParentPromiseValue] = parentPromiseValue;\n chainPromise[symbolParentPromiseState] = promiseState;\n }\n // should not pass value to finally callback\n const value = zone.run(delegate, undefined, isFinallyPromise && delegate !== forwardRejection && delegate !== forwardResolution ?\n [] :\n [parentPromiseValue]);\n resolvePromise(chainPromise, true, value);\n }\n catch (error) {\n // if error occurs, should always return this error\n resolvePromise(chainPromise, false, error);\n }\n }, chainPromise);\n }\n const ZONE_AWARE_PROMISE_TO_STRING = 'function ZoneAwarePromise() { [native code] }';\n const noop = function () { };\n const AggregateError = global.AggregateError;\n class ZoneAwarePromise {\n static toString() {\n return ZONE_AWARE_PROMISE_TO_STRING;\n }\n static resolve(value) {\n return resolvePromise(new this(null), RESOLVED, value);\n }\n static reject(error) {\n return resolvePromise(new this(null), REJECTED, error);\n }\n static any(values) {\n if (!values || typeof values[Symbol.iterator] !== 'function') {\n return Promise.reject(new AggregateError([], 'All promises were rejected'));\n }\n const promises = [];\n let count = 0;\n try {\n for (let v of values) {\n count++;\n promises.push(ZoneAwarePromise.resolve(v));\n }\n }\n catch (err) {\n return Promise.reject(new AggregateError([], 'All promises were rejected'));\n }\n if (count === 0) {\n return Promise.reject(new AggregateError([], 'All promises were rejected'));\n }\n let finished = false;\n const errors = [];\n return new ZoneAwarePromise((resolve, reject) => {\n for (let i = 0; i < promises.length; i++) {\n promises[i].then(v => {\n if (finished) {\n return;\n }\n finished = true;\n resolve(v);\n }, err => {\n errors.push(err);\n count--;\n if (count === 0) {\n finished = true;\n reject(new AggregateError(errors, 'All promises were rejected'));\n }\n });\n }\n });\n }\n ;\n static race(values) {\n let resolve;\n let reject;\n let promise = new this((res, rej) => {\n resolve = res;\n reject = rej;\n });\n function onResolve(value) {\n resolve(value);\n }\n function onReject(error) {\n reject(error);\n }\n for (let value of values) {\n if (!isThenable(value)) {\n value = this.resolve(value);\n }\n value.then(onResolve, onReject);\n }\n return promise;\n }\n static all(values) {\n return ZoneAwarePromise.allWithCallback(values);\n }\n static allSettled(values) {\n const P = this && this.prototype instanceof ZoneAwarePromise ? this : ZoneAwarePromise;\n return P.allWithCallback(values, {\n thenCallback: (value) => ({ status: 'fulfilled', value }),\n errorCallback: (err) => ({ status: 'rejected', reason: err })\n });\n }\n static allWithCallback(values, callback) {\n let resolve;\n let reject;\n let promise = new this((res, rej) => {\n resolve = res;\n reject = rej;\n });\n // Start at 2 to prevent prematurely resolving if .then is called immediately.\n let unresolvedCount = 2;\n let valueIndex = 0;\n const resolvedValues = [];\n for (let value of values) {\n if (!isThenable(value)) {\n value = this.resolve(value);\n }\n const curValueIndex = valueIndex;\n try {\n value.then((value) => {\n resolvedValues[curValueIndex] = callback ? callback.thenCallback(value) : value;\n unresolvedCount--;\n if (unresolvedCount === 0) {\n resolve(resolvedValues);\n }\n }, (err) => {\n if (!callback) {\n reject(err);\n }\n else {\n resolvedValues[curValueIndex] = callback.errorCallback(err);\n unresolvedCount--;\n if (unresolvedCount === 0) {\n resolve(resolvedValues);\n }\n }\n });\n }\n catch (thenErr) {\n reject(thenErr);\n }\n unresolvedCount++;\n valueIndex++;\n }\n // Make the unresolvedCount zero-based again.\n unresolvedCount -= 2;\n if (unresolvedCount === 0) {\n resolve(resolvedValues);\n }\n return promise;\n }\n constructor(executor) {\n const promise = this;\n if (!(promise instanceof ZoneAwarePromise)) {\n throw new Error('Must be an instanceof Promise.');\n }\n promise[symbolState] = UNRESOLVED;\n promise[symbolValue] = []; // queue;\n try {\n const onceWrapper = once();\n executor &&\n executor(onceWrapper(makeResolver(promise, RESOLVED)), onceWrapper(makeResolver(promise, REJECTED)));\n }\n catch (error) {\n resolvePromise(promise, false, error);\n }\n }\n get [Symbol.toStringTag]() {\n return 'Promise';\n }\n get [Symbol.species]() {\n return ZoneAwarePromise;\n }\n then(onFulfilled, onRejected) {\n var _a;\n // We must read `Symbol.species` safely because `this` may be anything. For instance, `this`\n // may be an object without a prototype (created through `Object.create(null)`); thus\n // `this.constructor` will be undefined. One of the use cases is SystemJS creating\n // prototype-less objects (modules) via `Object.create(null)`. The SystemJS creates an empty\n // object and copies promise properties into that object (within the `getOrCreateLoad`\n // function). The zone.js then checks if the resolved value has the `then` method and invokes\n // it with the `value` context. Otherwise, this will throw an error: `TypeError: Cannot read\n // properties of undefined (reading 'Symbol(Symbol.species)')`.\n let C = (_a = this.constructor) === null || _a === void 0 ? void 0 : _a[Symbol.species];\n if (!C || typeof C !== 'function') {\n C = this.constructor || ZoneAwarePromise;\n }\n const chainPromise = new C(noop);\n const zone = Zone.current;\n if (this[symbolState] == UNRESOLVED) {\n this[symbolValue].push(zone, chainPromise, onFulfilled, onRejected);\n }\n else {\n scheduleResolveOrReject(this, zone, chainPromise, onFulfilled, onRejected);\n }\n return chainPromise;\n }\n catch(onRejected) {\n return this.then(null, onRejected);\n }\n finally(onFinally) {\n var _a;\n // See comment on the call to `then` about why thee `Symbol.species` is safely accessed.\n let C = (_a = this.constructor) === null || _a === void 0 ? void 0 : _a[Symbol.species];\n if (!C || typeof C !== 'function') {\n C = ZoneAwarePromise;\n }\n const chainPromise = new C(noop);\n chainPromise[symbolFinally] = symbolFinally;\n const zone = Zone.current;\n if (this[symbolState] == UNRESOLVED) {\n this[symbolValue].push(zone, chainPromise, onFinally, onFinally);\n }\n else {\n scheduleResolveOrReject(this, zone, chainPromise, onFinally, onFinally);\n }\n return chainPromise;\n }\n }\n // Protect against aggressive optimizers dropping seemingly unused properties.\n // E.g. Closure Compiler in advanced mode.\n ZoneAwarePromise['resolve'] = ZoneAwarePromise.resolve;\n ZoneAwarePromise['reject'] = ZoneAwarePromise.reject;\n ZoneAwarePromise['race'] = ZoneAwarePromise.race;\n ZoneAwarePromise['all'] = ZoneAwarePromise.all;\n const NativePromise = global[symbolPromise] = global['Promise'];\n global['Promise'] = ZoneAwarePromise;\n const symbolThenPatched = __symbol__('thenPatched');\n function patchThen(Ctor) {\n const proto = Ctor.prototype;\n const prop = ObjectGetOwnPropertyDescriptor(proto, 'then');\n if (prop && (prop.writable === false || !prop.configurable)) {\n // check Ctor.prototype.then propertyDescriptor is writable or not\n // in meteor env, writable is false, we should ignore such case\n return;\n }\n const originalThen = proto.then;\n // Keep a reference to the original method.\n proto[symbolThen] = originalThen;\n Ctor.prototype.then = function (onResolve, onReject) {\n const wrapped = new ZoneAwarePromise((resolve, reject) => {\n originalThen.call(this, resolve, reject);\n });\n return wrapped.then(onResolve, onReject);\n };\n Ctor[symbolThenPatched] = true;\n }\n api.patchThen = patchThen;\n function zoneify(fn) {\n return function (self, args) {\n let resultPromise = fn.apply(self, args);\n if (resultPromise instanceof ZoneAwarePromise) {\n return resultPromise;\n }\n let ctor = resultPromise.constructor;\n if (!ctor[symbolThenPatched]) {\n patchThen(ctor);\n }\n return resultPromise;\n };\n }\n if (NativePromise) {\n patchThen(NativePromise);\n patchMethod(global, 'fetch', delegate => zoneify(delegate));\n }\n // This is not part of public API, but it is useful for tests, so we expose it.\n Promise[Zone.__symbol__('uncaughtPromiseErrors')] = _uncaughtPromiseErrors;\n return ZoneAwarePromise;\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// override Function.prototype.toString to make zone.js patched function\n// look like native function\nZone.__load_patch('toString', (global) => {\n // patch Func.prototype.toString to let them look like native\n const originalFunctionToString = Function.prototype.toString;\n const ORIGINAL_DELEGATE_SYMBOL = zoneSymbol('OriginalDelegate');\n const PROMISE_SYMBOL = zoneSymbol('Promise');\n const ERROR_SYMBOL = zoneSymbol('Error');\n const newFunctionToString = function toString() {\n if (typeof this === 'function') {\n const originalDelegate = this[ORIGINAL_DELEGATE_SYMBOL];\n if (originalDelegate) {\n if (typeof originalDelegate === 'function') {\n return originalFunctionToString.call(originalDelegate);\n }\n else {\n return Object.prototype.toString.call(originalDelegate);\n }\n }\n if (this === Promise) {\n const nativePromise = global[PROMISE_SYMBOL];\n if (nativePromise) {\n return originalFunctionToString.call(nativePromise);\n }\n }\n if (this === Error) {\n const nativeError = global[ERROR_SYMBOL];\n if (nativeError) {\n return originalFunctionToString.call(nativeError);\n }\n }\n }\n return originalFunctionToString.call(this);\n };\n newFunctionToString[ORIGINAL_DELEGATE_SYMBOL] = originalFunctionToString;\n Function.prototype.toString = newFunctionToString;\n // patch Object.prototype.toString to let them look like native\n const originalObjectToString = Object.prototype.toString;\n const PROMISE_OBJECT_TO_STRING = '[object Promise]';\n Object.prototype.toString = function () {\n if (typeof Promise === 'function' && this instanceof Promise) {\n return PROMISE_OBJECT_TO_STRING;\n }\n return originalObjectToString.call(this);\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 */\nlet passiveSupported = false;\nif (typeof window !== 'undefined') {\n try {\n const options = Object.defineProperty({}, 'passive', {\n get: function () {\n passiveSupported = true;\n }\n });\n // Note: We pass the `options` object as the event handler too. This is not compatible with the\n // signature of `addEventListener` or `removeEventListener` but enables us to remove the handler\n // without an actual handler.\n window.addEventListener('test', options, options);\n window.removeEventListener('test', options, options);\n }\n catch (err) {\n passiveSupported = false;\n }\n}\n// an identifier to tell ZoneTask do not create a new invoke closure\nconst OPTIMIZED_ZONE_EVENT_TASK_DATA = {\n useG: true\n};\nconst zoneSymbolEventNames = {};\nconst globalSources = {};\nconst EVENT_NAME_SYMBOL_REGX = new RegExp('^' + ZONE_SYMBOL_PREFIX + '(\\\\w+)(true|false)$');\nconst IMMEDIATE_PROPAGATION_SYMBOL = zoneSymbol('propagationStopped');\nfunction prepareEventNames(eventName, eventNameToString) {\n const falseEventName = (eventNameToString ? eventNameToString(eventName) : eventName) + FALSE_STR;\n const trueEventName = (eventNameToString ? eventNameToString(eventName) : eventName) + TRUE_STR;\n const symbol = ZONE_SYMBOL_PREFIX + falseEventName;\n const symbolCapture = ZONE_SYMBOL_PREFIX + trueEventName;\n zoneSymbolEventNames[eventName] = {};\n zoneSymbolEventNames[eventName][FALSE_STR] = symbol;\n zoneSymbolEventNames[eventName][TRUE_STR] = symbolCapture;\n}\nfunction patchEventTarget(_global, api, apis, patchOptions) {\n const ADD_EVENT_LISTENER = (patchOptions && patchOptions.add) || ADD_EVENT_LISTENER_STR;\n const REMOVE_EVENT_LISTENER = (patchOptions && patchOptions.rm) || REMOVE_EVENT_LISTENER_STR;\n const LISTENERS_EVENT_LISTENER = (patchOptions && patchOptions.listeners) || 'eventListeners';\n const REMOVE_ALL_LISTENERS_EVENT_LISTENER = (patchOptions && patchOptions.rmAll) || 'removeAllListeners';\n const zoneSymbolAddEventListener = zoneSymbol(ADD_EVENT_LISTENER);\n const ADD_EVENT_LISTENER_SOURCE = '.' + ADD_EVENT_LISTENER + ':';\n const PREPEND_EVENT_LISTENER = 'prependListener';\n const PREPEND_EVENT_LISTENER_SOURCE = '.' + PREPEND_EVENT_LISTENER + ':';\n const invokeTask = function (task, target, event) {\n // for better performance, check isRemoved which is set\n // by removeEventListener\n if (task.isRemoved) {\n return;\n }\n const delegate = task.callback;\n if (typeof delegate === 'object' && delegate.handleEvent) {\n // create the bind version of handleEvent when invoke\n task.callback = (event) => delegate.handleEvent(event);\n task.originalDelegate = delegate;\n }\n // invoke static task.invoke\n // need to try/catch error here, otherwise, the error in one event listener\n // will break the executions of the other event listeners. Also error will\n // not remove the event listener when `once` options is true.\n let error;\n try {\n task.invoke(task, target, [event]);\n }\n catch (err) {\n error = err;\n }\n const options = task.options;\n if (options && typeof options === 'object' && options.once) {\n // if options.once is true, after invoke once remove listener here\n // only browser need to do this, nodejs eventEmitter will cal removeListener\n // inside EventEmitter.once\n const delegate = task.originalDelegate ? task.originalDelegate : task.callback;\n target[REMOVE_EVENT_LISTENER].call(target, event.type, delegate, options);\n }\n return error;\n };\n function globalCallback(context, event, isCapture) {\n // https://github.com/angular/zone.js/issues/911, in IE, sometimes\n // event will be undefined, so we need to use window.event\n event = event || _global.event;\n if (!event) {\n return;\n }\n // event.target is needed for Samsung TV and SourceBuffer\n // || global is needed https://github.com/angular/zone.js/issues/190\n const target = context || event.target || _global;\n const tasks = target[zoneSymbolEventNames[event.type][isCapture ? TRUE_STR : FALSE_STR]];\n if (tasks) {\n const errors = [];\n // invoke all tasks which attached to current target with given event.type and capture = false\n // for performance concern, if task.length === 1, just invoke\n if (tasks.length === 1) {\n const err = invokeTask(tasks[0], target, event);\n err && errors.push(err);\n }\n else {\n // https://github.com/angular/zone.js/issues/836\n // copy the tasks array before invoke, to avoid\n // the callback will remove itself or other listener\n const copyTasks = tasks.slice();\n for (let i = 0; i < copyTasks.length; i++) {\n if (event && event[IMMEDIATE_PROPAGATION_SYMBOL] === true) {\n break;\n }\n const err = invokeTask(copyTasks[i], target, event);\n err && errors.push(err);\n }\n }\n // Since there is only one error, we don't need to schedule microTask\n // to throw the error.\n if (errors.length === 1) {\n throw errors[0];\n }\n else {\n for (let i = 0; i < errors.length; i++) {\n const err = errors[i];\n api.nativeScheduleMicroTask(() => {\n throw err;\n });\n }\n }\n }\n }\n // global shared zoneAwareCallback to handle all event callback with capture = false\n const globalZoneAwareCallback = function (event) {\n return globalCallback(this, event, false);\n };\n // global shared zoneAwareCallback to handle all event callback with capture = true\n const globalZoneAwareCaptureCallback = function (event) {\n return globalCallback(this, event, true);\n };\n function patchEventTargetMethods(obj, patchOptions) {\n if (!obj) {\n return false;\n }\n let useGlobalCallback = true;\n if (patchOptions && patchOptions.useG !== undefined) {\n useGlobalCallback = patchOptions.useG;\n }\n const validateHandler = patchOptions && patchOptions.vh;\n let checkDuplicate = true;\n if (patchOptions && patchOptions.chkDup !== undefined) {\n checkDuplicate = patchOptions.chkDup;\n }\n let returnTarget = false;\n if (patchOptions && patchOptions.rt !== undefined) {\n returnTarget = patchOptions.rt;\n }\n let proto = obj;\n while (proto && !proto.hasOwnProperty(ADD_EVENT_LISTENER)) {\n proto = ObjectGetPrototypeOf(proto);\n }\n if (!proto && obj[ADD_EVENT_LISTENER]) {\n // somehow we did not find it, but we can see it. This happens on IE for Window properties.\n proto = obj;\n }\n if (!proto) {\n return false;\n }\n if (proto[zoneSymbolAddEventListener]) {\n return false;\n }\n const eventNameToString = patchOptions && patchOptions.eventNameToString;\n // a shared global taskData to pass data for scheduleEventTask\n // so we do not need to create a new object just for pass some data\n const taskData = {};\n const nativeAddEventListener = proto[zoneSymbolAddEventListener] = proto[ADD_EVENT_LISTENER];\n const nativeRemoveEventListener = proto[zoneSymbol(REMOVE_EVENT_LISTENER)] =\n proto[REMOVE_EVENT_LISTENER];\n const nativeListeners = proto[zoneSymbol(LISTENERS_EVENT_LISTENER)] =\n proto[LISTENERS_EVENT_LISTENER];\n const nativeRemoveAllListeners = proto[zoneSymbol(REMOVE_ALL_LISTENERS_EVENT_LISTENER)] =\n proto[REMOVE_ALL_LISTENERS_EVENT_LISTENER];\n let nativePrependEventListener;\n if (patchOptions && patchOptions.prepend) {\n nativePrependEventListener = proto[zoneSymbol(patchOptions.prepend)] =\n proto[patchOptions.prepend];\n }\n /**\n * This util function will build an option object with passive option\n * to handle all possible input from the user.\n */\n function buildEventListenerOptions(options, passive) {\n if (!passiveSupported && typeof options === 'object' && options) {\n // doesn't support passive but user want to pass an object as options.\n // this will not work on some old browser, so we just pass a boolean\n // as useCapture parameter\n return !!options.capture;\n }\n if (!passiveSupported || !passive) {\n return options;\n }\n if (typeof options === 'boolean') {\n return { capture: options, passive: true };\n }\n if (!options) {\n return { passive: true };\n }\n if (typeof options === 'object' && options.passive !== false) {\n return Object.assign(Object.assign({}, options), { passive: true });\n }\n return options;\n }\n const customScheduleGlobal = function (task) {\n // if there is already a task for the eventName + capture,\n // just return, because we use the shared globalZoneAwareCallback here.\n if (taskData.isExisting) {\n return;\n }\n return nativeAddEventListener.call(taskData.target, taskData.eventName, taskData.capture ? globalZoneAwareCaptureCallback : globalZoneAwareCallback, taskData.options);\n };\n const customCancelGlobal = function (task) {\n // if task is not marked as isRemoved, this call is directly\n // from Zone.prototype.cancelTask, we should remove the task\n // from tasksList of target first\n if (!task.isRemoved) {\n const symbolEventNames = zoneSymbolEventNames[task.eventName];\n let symbolEventName;\n if (symbolEventNames) {\n symbolEventName = symbolEventNames[task.capture ? TRUE_STR : FALSE_STR];\n }\n const existingTasks = symbolEventName && task.target[symbolEventName];\n if (existingTasks) {\n for (let i = 0; i < existingTasks.length; i++) {\n const existingTask = existingTasks[i];\n if (existingTask === task) {\n existingTasks.splice(i, 1);\n // set isRemoved to data for faster invokeTask check\n task.isRemoved = true;\n if (existingTasks.length === 0) {\n // all tasks for the eventName + capture have gone,\n // remove globalZoneAwareCallback and remove the task cache from target\n task.allRemoved = true;\n task.target[symbolEventName] = null;\n }\n break;\n }\n }\n }\n }\n // if all tasks for the eventName + capture have gone,\n // we will really remove the global event callback,\n // if not, return\n if (!task.allRemoved) {\n return;\n }\n return nativeRemoveEventListener.call(task.target, task.eventName, task.capture ? globalZoneAwareCaptureCallback : globalZoneAwareCallback, task.options);\n };\n const customScheduleNonGlobal = function (task) {\n return nativeAddEventListener.call(taskData.target, taskData.eventName, task.invoke, taskData.options);\n };\n const customSchedulePrepend = function (task) {\n return nativePrependEventListener.call(taskData.target, taskData.eventName, task.invoke, taskData.options);\n };\n const customCancelNonGlobal = function (task) {\n return nativeRemoveEventListener.call(task.target, task.eventName, task.invoke, task.options);\n };\n const customSchedule = useGlobalCallback ? customScheduleGlobal : customScheduleNonGlobal;\n const customCancel = useGlobalCallback ? customCancelGlobal : customCancelNonGlobal;\n const compareTaskCallbackVsDelegate = function (task, delegate) {\n const typeOfDelegate = typeof delegate;\n return (typeOfDelegate === 'function' && task.callback === delegate) ||\n (typeOfDelegate === 'object' && task.originalDelegate === delegate);\n };\n const compare = (patchOptions && patchOptions.diff) ? patchOptions.diff : compareTaskCallbackVsDelegate;\n const unpatchedEvents = Zone[zoneSymbol('UNPATCHED_EVENTS')];\n const passiveEvents = _global[zoneSymbol('PASSIVE_EVENTS')];\n const makeAddListener = function (nativeListener, addSource, customScheduleFn, customCancelFn, returnTarget = false, prepend = false) {\n return function () {\n const target = this || _global;\n let eventName = arguments[0];\n if (patchOptions && patchOptions.transferEventName) {\n eventName = patchOptions.transferEventName(eventName);\n }\n let delegate = arguments[1];\n if (!delegate) {\n return nativeListener.apply(this, arguments);\n }\n if (isNode && eventName === 'uncaughtException') {\n // don't patch uncaughtException of nodejs to prevent endless loop\n return nativeListener.apply(this, arguments);\n }\n // don't create the bind delegate function for handleEvent\n // case here to improve addEventListener performance\n // we will create the bind delegate when invoke\n let isHandleEvent = false;\n if (typeof delegate !== 'function') {\n if (!delegate.handleEvent) {\n return nativeListener.apply(this, arguments);\n }\n isHandleEvent = true;\n }\n if (validateHandler && !validateHandler(nativeListener, delegate, target, arguments)) {\n return;\n }\n const passive = passiveSupported && !!passiveEvents && passiveEvents.indexOf(eventName) !== -1;\n const options = buildEventListenerOptions(arguments[2], passive);\n if (unpatchedEvents) {\n // check unpatched list\n for (let i = 0; i < unpatchedEvents.length; i++) {\n if (eventName === unpatchedEvents[i]) {\n if (passive) {\n return nativeListener.call(target, eventName, delegate, options);\n }\n else {\n return nativeListener.apply(this, arguments);\n }\n }\n }\n }\n const capture = !options ? false : typeof options === 'boolean' ? true : options.capture;\n const once = options && typeof options === 'object' ? options.once : false;\n const zone = Zone.current;\n let symbolEventNames = zoneSymbolEventNames[eventName];\n if (!symbolEventNames) {\n prepareEventNames(eventName, eventNameToString);\n symbolEventNames = zoneSymbolEventNames[eventName];\n }\n const symbolEventName = symbolEventNames[capture ? TRUE_STR : FALSE_STR];\n let existingTasks = target[symbolEventName];\n let isExisting = false;\n if (existingTasks) {\n // already have task registered\n isExisting = true;\n if (checkDuplicate) {\n for (let i = 0; i < existingTasks.length; i++) {\n if (compare(existingTasks[i], delegate)) {\n // same callback, same capture, same event name, just return\n return;\n }\n }\n }\n }\n else {\n existingTasks = target[symbolEventName] = [];\n }\n let source;\n const constructorName = target.constructor['name'];\n const targetSource = globalSources[constructorName];\n if (targetSource) {\n source = targetSource[eventName];\n }\n if (!source) {\n source = constructorName + addSource +\n (eventNameToString ? eventNameToString(eventName) : eventName);\n }\n // do not create a new object as task.data to pass those things\n // just use the global shared one\n taskData.options = options;\n if (once) {\n // if addEventListener with once options, we don't pass it to\n // native addEventListener, instead we keep the once setting\n // and handle ourselves.\n taskData.options.once = false;\n }\n taskData.target = target;\n taskData.capture = capture;\n taskData.eventName = eventName;\n taskData.isExisting = isExisting;\n const data = useGlobalCallback ? OPTIMIZED_ZONE_EVENT_TASK_DATA : undefined;\n // keep taskData into data to allow onScheduleEventTask to access the task information\n if (data) {\n data.taskData = taskData;\n }\n const task = zone.scheduleEventTask(source, delegate, data, customScheduleFn, customCancelFn);\n // should clear taskData.target to avoid memory leak\n // issue, https://github.com/angular/angular/issues/20442\n taskData.target = null;\n // need to clear up taskData because it is a global object\n if (data) {\n data.taskData = null;\n }\n // have to save those information to task in case\n // application may call task.zone.cancelTask() directly\n if (once) {\n options.once = true;\n }\n if (!(!passiveSupported && typeof task.options === 'boolean')) {\n // if not support passive, and we pass an option object\n // to addEventListener, we should save the options to task\n task.options = options;\n }\n task.target = target;\n task.capture = capture;\n task.eventName = eventName;\n if (isHandleEvent) {\n // save original delegate for compare to check duplicate\n task.originalDelegate = delegate;\n }\n if (!prepend) {\n existingTasks.push(task);\n }\n else {\n existingTasks.unshift(task);\n }\n if (returnTarget) {\n return target;\n }\n };\n };\n proto[ADD_EVENT_LISTENER] = makeAddListener(nativeAddEventListener, ADD_EVENT_LISTENER_SOURCE, customSchedule, customCancel, returnTarget);\n if (nativePrependEventListener) {\n proto[PREPEND_EVENT_LISTENER] = makeAddListener(nativePrependEventListener, PREPEND_EVENT_LISTENER_SOURCE, customSchedulePrepend, customCancel, returnTarget, true);\n }\n proto[REMOVE_EVENT_LISTENER] = function () {\n const target = this || _global;\n let eventName = arguments[0];\n if (patchOptions && patchOptions.transferEventName) {\n eventName = patchOptions.transferEventName(eventName);\n }\n const options = arguments[2];\n const capture = !options ? false : typeof options === 'boolean' ? true : options.capture;\n const delegate = arguments[1];\n if (!delegate) {\n return nativeRemoveEventListener.apply(this, arguments);\n }\n if (validateHandler &&\n !validateHandler(nativeRemoveEventListener, delegate, target, arguments)) {\n return;\n }\n const symbolEventNames = zoneSymbolEventNames[eventName];\n let symbolEventName;\n if (symbolEventNames) {\n symbolEventName = symbolEventNames[capture ? TRUE_STR : FALSE_STR];\n }\n const existingTasks = symbolEventName && target[symbolEventName];\n if (existingTasks) {\n for (let i = 0; i < existingTasks.length; i++) {\n const existingTask = existingTasks[i];\n if (compare(existingTask, delegate)) {\n existingTasks.splice(i, 1);\n // set isRemoved to data for faster invokeTask check\n existingTask.isRemoved = true;\n if (existingTasks.length === 0) {\n // all tasks for the eventName + capture have gone,\n // remove globalZoneAwareCallback and remove the task cache from target\n existingTask.allRemoved = true;\n target[symbolEventName] = null;\n // in the target, we have an event listener which is added by on_property\n // such as target.onclick = function() {}, so we need to clear this internal\n // property too if all delegates all removed\n if (typeof eventName === 'string') {\n const onPropertySymbol = ZONE_SYMBOL_PREFIX + 'ON_PROPERTY' + eventName;\n target[onPropertySymbol] = null;\n }\n }\n existingTask.zone.cancelTask(existingTask);\n if (returnTarget) {\n return target;\n }\n return;\n }\n }\n }\n // issue 930, didn't find the event name or callback\n // from zone kept existingTasks, the callback maybe\n // added outside of zone, we need to call native removeEventListener\n // to try to remove it.\n return nativeRemoveEventListener.apply(this, arguments);\n };\n proto[LISTENERS_EVENT_LISTENER] = function () {\n const target = this || _global;\n let eventName = arguments[0];\n if (patchOptions && patchOptions.transferEventName) {\n eventName = patchOptions.transferEventName(eventName);\n }\n const listeners = [];\n const tasks = findEventTasks(target, eventNameToString ? eventNameToString(eventName) : eventName);\n for (let i = 0; i < tasks.length; i++) {\n const task = tasks[i];\n let delegate = task.originalDelegate ? task.originalDelegate : task.callback;\n listeners.push(delegate);\n }\n return listeners;\n };\n proto[REMOVE_ALL_LISTENERS_EVENT_LISTENER] = function () {\n const target = this || _global;\n let eventName = arguments[0];\n if (!eventName) {\n const keys = Object.keys(target);\n for (let i = 0; i < keys.length; i++) {\n const prop = keys[i];\n const match = EVENT_NAME_SYMBOL_REGX.exec(prop);\n let evtName = match && match[1];\n // in nodejs EventEmitter, removeListener event is\n // used for monitoring the removeListener call,\n // so just keep removeListener eventListener until\n // all other eventListeners are removed\n if (evtName && evtName !== 'removeListener') {\n this[REMOVE_ALL_LISTENERS_EVENT_LISTENER].call(this, evtName);\n }\n }\n // remove removeListener listener finally\n this[REMOVE_ALL_LISTENERS_EVENT_LISTENER].call(this, 'removeListener');\n }\n else {\n if (patchOptions && patchOptions.transferEventName) {\n eventName = patchOptions.transferEventName(eventName);\n }\n const symbolEventNames = zoneSymbolEventNames[eventName];\n if (symbolEventNames) {\n const symbolEventName = symbolEventNames[FALSE_STR];\n const symbolCaptureEventName = symbolEventNames[TRUE_STR];\n const tasks = target[symbolEventName];\n const captureTasks = target[symbolCaptureEventName];\n if (tasks) {\n const removeTasks = tasks.slice();\n for (let i = 0; i < removeTasks.length; i++) {\n const task = removeTasks[i];\n let delegate = task.originalDelegate ? task.originalDelegate : task.callback;\n this[REMOVE_EVENT_LISTENER].call(this, eventName, delegate, task.options);\n }\n }\n if (captureTasks) {\n const removeTasks = captureTasks.slice();\n for (let i = 0; i < removeTasks.length; i++) {\n const task = removeTasks[i];\n let delegate = task.originalDelegate ? task.originalDelegate : task.callback;\n this[REMOVE_EVENT_LISTENER].call(this, eventName, delegate, task.options);\n }\n }\n }\n }\n if (returnTarget) {\n return this;\n }\n };\n // for native toString patch\n attachOriginToPatched(proto[ADD_EVENT_LISTENER], nativeAddEventListener);\n attachOriginToPatched(proto[REMOVE_EVENT_LISTENER], nativeRemoveEventListener);\n if (nativeRemoveAllListeners) {\n attachOriginToPatched(proto[REMOVE_ALL_LISTENERS_EVENT_LISTENER], nativeRemoveAllListeners);\n }\n if (nativeListeners) {\n attachOriginToPatched(proto[LISTENERS_EVENT_LISTENER], nativeListeners);\n }\n return true;\n }\n let results = [];\n for (let i = 0; i < apis.length; i++) {\n results[i] = patchEventTargetMethods(apis[i], patchOptions);\n }\n return results;\n}\nfunction findEventTasks(target, eventName) {\n if (!eventName) {\n const foundTasks = [];\n for (let prop in target) {\n const match = EVENT_NAME_SYMBOL_REGX.exec(prop);\n let evtName = match && match[1];\n if (evtName && (!eventName || evtName === eventName)) {\n const tasks = target[prop];\n if (tasks) {\n for (let i = 0; i < tasks.length; i++) {\n foundTasks.push(tasks[i]);\n }\n }\n }\n }\n return foundTasks;\n }\n let symbolEventName = zoneSymbolEventNames[eventName];\n if (!symbolEventName) {\n prepareEventNames(eventName);\n symbolEventName = zoneSymbolEventNames[eventName];\n }\n const captureFalseTasks = target[symbolEventName[FALSE_STR]];\n const captureTrueTasks = target[symbolEventName[TRUE_STR]];\n if (!captureFalseTasks) {\n return captureTrueTasks ? captureTrueTasks.slice() : [];\n }\n else {\n return captureTrueTasks ? captureFalseTasks.concat(captureTrueTasks) :\n captureFalseTasks.slice();\n }\n}\nfunction patchEventPrototype(global, api) {\n const Event = global['Event'];\n if (Event && Event.prototype) {\n api.patchMethod(Event.prototype, 'stopImmediatePropagation', (delegate) => function (self, args) {\n self[IMMEDIATE_PROPAGATION_SYMBOL] = true;\n // we need to call the native stopImmediatePropagation\n // in case in some hybrid application, some part of\n // application will be controlled by zone, some are not\n delegate && delegate.apply(self, args);\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 */\nfunction patchCallbacks(api, target, targetName, method, callbacks) {\n const symbol = Zone.__symbol__(method);\n if (target[symbol]) {\n return;\n }\n const nativeDelegate = target[symbol] = target[method];\n target[method] = function (name, opts, options) {\n if (opts && opts.prototype) {\n callbacks.forEach(function (callback) {\n const source = `${targetName}.${method}::` + callback;\n const prototype = opts.prototype;\n // Note: the `patchCallbacks` is used for patching the `document.registerElement` and\n // `customElements.define`. We explicitly wrap the patching code into try-catch since\n // callbacks may be already patched by other web components frameworks (e.g. LWC), and they\n // make those properties non-writable. This means that patching callback will throw an error\n // `cannot assign to read-only property`. See this code as an example:\n // https://github.com/salesforce/lwc/blob/master/packages/@lwc/engine-core/src/framework/base-bridge-element.ts#L180-L186\n // We don't want to stop the application rendering if we couldn't patch some\n // callback, e.g. `attributeChangedCallback`.\n try {\n if (prototype.hasOwnProperty(callback)) {\n const descriptor = api.ObjectGetOwnPropertyDescriptor(prototype, callback);\n if (descriptor && descriptor.value) {\n descriptor.value = api.wrapWithCurrentZone(descriptor.value, source);\n api._redefineProperty(opts.prototype, callback, descriptor);\n }\n else if (prototype[callback]) {\n prototype[callback] = api.wrapWithCurrentZone(prototype[callback], source);\n }\n }\n else if (prototype[callback]) {\n prototype[callback] = api.wrapWithCurrentZone(prototype[callback], source);\n }\n }\n catch (_a) {\n // Note: we leave the catch block empty since there's no way to handle the error related\n // to non-writable property.\n }\n });\n }\n return nativeDelegate.call(target, name, opts, options);\n };\n api.attachOriginToPatched(target[method], nativeDelegate);\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 filterProperties(target, onProperties, ignoreProperties) {\n if (!ignoreProperties || ignoreProperties.length === 0) {\n return onProperties;\n }\n const tip = ignoreProperties.filter(ip => ip.target === target);\n if (!tip || tip.length === 0) {\n return onProperties;\n }\n const targetIgnoreProperties = tip[0].ignoreProperties;\n return onProperties.filter(op => targetIgnoreProperties.indexOf(op) === -1);\n}\nfunction patchFilteredProperties(target, onProperties, ignoreProperties, prototype) {\n // check whether target is available, sometimes target will be undefined\n // because different browser or some 3rd party plugin.\n if (!target) {\n return;\n }\n const filteredProperties = filterProperties(target, onProperties, ignoreProperties);\n patchOnProperties(target, filteredProperties, prototype);\n}\n/**\n * Get all event name properties which the event name startsWith `on`\n * from the target object itself, inherited properties are not considered.\n */\nfunction getOnEventNames(target) {\n return Object.getOwnPropertyNames(target)\n .filter(name => name.startsWith('on') && name.length > 2)\n .map(name => name.substring(2));\n}\nfunction propertyDescriptorPatch(api, _global) {\n if (isNode && !isMix) {\n return;\n }\n if (Zone[api.symbol('patchEvents')]) {\n // events are already been patched by legacy patch.\n return;\n }\n const ignoreProperties = _global['__Zone_ignore_on_properties'];\n // for browsers that we can patch the descriptor: Chrome & Firefox\n let patchTargets = [];\n if (isBrowser) {\n const internalWindow = window;\n patchTargets = patchTargets.concat([\n 'Document', 'SVGElement', 'Element', 'HTMLElement', 'HTMLBodyElement', 'HTMLMediaElement',\n 'HTMLFrameSetElement', 'HTMLFrameElement', 'HTMLIFrameElement', 'HTMLMarqueeElement', 'Worker'\n ]);\n const ignoreErrorProperties = isIE() ? [{ target: internalWindow, ignoreProperties: ['error'] }] : [];\n // in IE/Edge, onProp not exist in window object, but in WindowPrototype\n // so we need to pass WindowPrototype to check onProp exist or not\n patchFilteredProperties(internalWindow, getOnEventNames(internalWindow), ignoreProperties ? ignoreProperties.concat(ignoreErrorProperties) : ignoreProperties, ObjectGetPrototypeOf(internalWindow));\n }\n patchTargets = patchTargets.concat([\n 'XMLHttpRequest', 'XMLHttpRequestEventTarget', 'IDBIndex', 'IDBRequest', 'IDBOpenDBRequest',\n 'IDBDatabase', 'IDBTransaction', 'IDBCursor', 'WebSocket'\n ]);\n for (let i = 0; i < patchTargets.length; i++) {\n const target = _global[patchTargets[i]];\n target && target.prototype &&\n patchFilteredProperties(target.prototype, getOnEventNames(target.prototype), ignoreProperties);\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 */\nZone.__load_patch('util', (global, Zone, api) => {\n // Collect native event names by looking at properties\n // on the global namespace, e.g. 'onclick'.\n const eventNames = getOnEventNames(global);\n api.patchOnProperties = patchOnProperties;\n api.patchMethod = patchMethod;\n api.bindArguments = bindArguments;\n api.patchMacroTask = patchMacroTask;\n // In earlier version of zone.js (<0.9.0), we use env name `__zone_symbol__BLACK_LISTED_EVENTS` to\n // define which events will not be patched by `Zone.js`.\n // In newer version (>=0.9.0), we change the env name to `__zone_symbol__UNPATCHED_EVENTS` to keep\n // the name consistent with angular repo.\n // The `__zone_symbol__BLACK_LISTED_EVENTS` is deprecated, but it is still be supported for\n // backwards compatibility.\n const SYMBOL_BLACK_LISTED_EVENTS = Zone.__symbol__('BLACK_LISTED_EVENTS');\n const SYMBOL_UNPATCHED_EVENTS = Zone.__symbol__('UNPATCHED_EVENTS');\n if (global[SYMBOL_UNPATCHED_EVENTS]) {\n global[SYMBOL_BLACK_LISTED_EVENTS] = global[SYMBOL_UNPATCHED_EVENTS];\n }\n if (global[SYMBOL_BLACK_LISTED_EVENTS]) {\n Zone[SYMBOL_BLACK_LISTED_EVENTS] = Zone[SYMBOL_UNPATCHED_EVENTS] =\n global[SYMBOL_BLACK_LISTED_EVENTS];\n }\n api.patchEventPrototype = patchEventPrototype;\n api.patchEventTarget = patchEventTarget;\n api.isIEOrEdge = isIEOrEdge;\n api.ObjectDefineProperty = ObjectDefineProperty;\n api.ObjectGetOwnPropertyDescriptor = ObjectGetOwnPropertyDescriptor;\n api.ObjectCreate = ObjectCreate;\n api.ArraySlice = ArraySlice;\n api.patchClass = patchClass;\n api.wrapWithCurrentZone = wrapWithCurrentZone;\n api.filterProperties = filterProperties;\n api.attachOriginToPatched = attachOriginToPatched;\n api._redefineProperty = Object.defineProperty;\n api.patchCallbacks = patchCallbacks;\n api.getGlobalObjects = () => ({\n globalSources,\n zoneSymbolEventNames,\n eventNames,\n isBrowser,\n isMix,\n isNode,\n TRUE_STR,\n FALSE_STR,\n ZONE_SYMBOL_PREFIX,\n ADD_EVENT_LISTENER_STR,\n REMOVE_EVENT_LISTENER_STR\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 taskSymbol = zoneSymbol('zoneTask');\nfunction patchTimer(window, setName, cancelName, nameSuffix) {\n let setNative = null;\n let clearNative = null;\n setName += nameSuffix;\n cancelName += nameSuffix;\n const tasksByHandleId = {};\n function scheduleTask(task) {\n const data = task.data;\n data.args[0] = function () {\n return task.invoke.apply(this, arguments);\n };\n data.handleId = setNative.apply(window, data.args);\n return task;\n }\n function clearTask(task) {\n return clearNative.call(window, task.data.handleId);\n }\n setNative =\n patchMethod(window, setName, (delegate) => function (self, args) {\n if (typeof args[0] === 'function') {\n const options = {\n isPeriodic: nameSuffix === 'Interval',\n delay: (nameSuffix === 'Timeout' || nameSuffix === 'Interval') ? args[1] || 0 :\n undefined,\n args: args\n };\n const callback = args[0];\n args[0] = function timer() {\n try {\n return callback.apply(this, arguments);\n }\n finally {\n // issue-934, task will be cancelled\n // even it is a periodic task such as\n // setInterval\n // https://github.com/angular/angular/issues/40387\n // Cleanup tasksByHandleId should be handled before scheduleTask\n // Since some zoneSpec may intercept and doesn't trigger\n // scheduleFn(scheduleTask) provided here.\n if (!(options.isPeriodic)) {\n if (typeof options.handleId === 'number') {\n // in non-nodejs env, we remove timerId\n // from local cache\n delete tasksByHandleId[options.handleId];\n }\n else if (options.handleId) {\n // Node returns complex objects as handleIds\n // we remove task reference from timer object\n options.handleId[taskSymbol] = null;\n }\n }\n }\n };\n const task = scheduleMacroTaskWithCurrentZone(setName, args[0], options, scheduleTask, clearTask);\n if (!task) {\n return task;\n }\n // Node.js must additionally support the ref and unref functions.\n const handle = task.data.handleId;\n if (typeof handle === 'number') {\n // for non nodejs env, we save handleId: task\n // mapping in local cache for clearTimeout\n tasksByHandleId[handle] = task;\n }\n else if (handle) {\n // for nodejs env, we save task\n // reference in timerId Object for clearTimeout\n handle[taskSymbol] = task;\n }\n // check whether handle is null, because some polyfill or browser\n // may return undefined from setTimeout/setInterval/setImmediate/requestAnimationFrame\n if (handle && handle.ref && handle.unref && typeof handle.ref === 'function' &&\n typeof handle.unref === 'function') {\n task.ref = handle.ref.bind(handle);\n task.unref = handle.unref.bind(handle);\n }\n if (typeof handle === 'number' || handle) {\n return handle;\n }\n return task;\n }\n else {\n // cause an error by calling it directly.\n return delegate.apply(window, args);\n }\n });\n clearNative =\n patchMethod(window, cancelName, (delegate) => function (self, args) {\n const id = args[0];\n let task;\n if (typeof id === 'number') {\n // non nodejs env.\n task = tasksByHandleId[id];\n }\n else {\n // nodejs env.\n task = id && id[taskSymbol];\n // other environments.\n if (!task) {\n task = id;\n }\n }\n if (task && typeof task.type === 'string') {\n if (task.state !== 'notScheduled' &&\n (task.cancelFn && task.data.isPeriodic || task.runCount === 0)) {\n if (typeof id === 'number') {\n delete tasksByHandleId[id];\n }\n else if (id) {\n id[taskSymbol] = null;\n }\n // Do not cancel already canceled functions\n task.zone.cancelTask(task);\n }\n }\n else {\n // cause an error by calling it directly.\n delegate.apply(window, args);\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 */\nfunction patchCustomElements(_global, api) {\n const { isBrowser, isMix } = api.getGlobalObjects();\n if ((!isBrowser && !isMix) || !_global['customElements'] || !('customElements' in _global)) {\n return;\n }\n const callbacks = ['connectedCallback', 'disconnectedCallback', 'adoptedCallback', 'attributeChangedCallback'];\n api.patchCallbacks(api, _global.customElements, 'customElements', 'define', callbacks);\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 eventTargetPatch(_global, api) {\n if (Zone[api.symbol('patchEventTarget')]) {\n // EventTarget is already patched.\n return;\n }\n const { eventNames, zoneSymbolEventNames, TRUE_STR, FALSE_STR, ZONE_SYMBOL_PREFIX } = api.getGlobalObjects();\n // predefine all __zone_symbol__ + eventName + true/false string\n for (let i = 0; i < eventNames.length; i++) {\n const eventName = eventNames[i];\n const falseEventName = eventName + FALSE_STR;\n const trueEventName = eventName + TRUE_STR;\n const symbol = ZONE_SYMBOL_PREFIX + falseEventName;\n const symbolCapture = ZONE_SYMBOL_PREFIX + trueEventName;\n zoneSymbolEventNames[eventName] = {};\n zoneSymbolEventNames[eventName][FALSE_STR] = symbol;\n zoneSymbolEventNames[eventName][TRUE_STR] = symbolCapture;\n }\n const EVENT_TARGET = _global['EventTarget'];\n if (!EVENT_TARGET || !EVENT_TARGET.prototype) {\n return;\n }\n api.patchEventTarget(_global, api, [EVENT_TARGET && EVENT_TARGET.prototype]);\n return true;\n}\nfunction patchEvent(global, api) {\n api.patchEventPrototype(global, api);\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 */\nZone.__load_patch('legacy', (global) => {\n const legacyPatch = global[Zone.__symbol__('legacyPatch')];\n if (legacyPatch) {\n legacyPatch();\n }\n});\nZone.__load_patch('queueMicrotask', (global, Zone, api) => {\n api.patchMethod(global, 'queueMicrotask', delegate => {\n return function (self, args) {\n Zone.current.scheduleMicroTask('queueMicrotask', args[0]);\n };\n });\n});\nZone.__load_patch('timers', (global) => {\n const set = 'set';\n const clear = 'clear';\n patchTimer(global, set, clear, 'Timeout');\n patchTimer(global, set, clear, 'Interval');\n patchTimer(global, set, clear, 'Immediate');\n});\nZone.__load_patch('requestAnimationFrame', (global) => {\n patchTimer(global, 'request', 'cancel', 'AnimationFrame');\n patchTimer(global, 'mozRequest', 'mozCancel', 'AnimationFrame');\n patchTimer(global, 'webkitRequest', 'webkitCancel', 'AnimationFrame');\n});\nZone.__load_patch('blocking', (global, Zone) => {\n const blockingMethods = ['alert', 'prompt', 'confirm'];\n for (let i = 0; i < blockingMethods.length; i++) {\n const name = blockingMethods[i];\n patchMethod(global, name, (delegate, symbol, name) => {\n return function (s, args) {\n return Zone.current.run(delegate, global, args, name);\n };\n });\n }\n});\nZone.__load_patch('EventTarget', (global, Zone, api) => {\n patchEvent(global, api);\n eventTargetPatch(global, api);\n // patch XMLHttpRequestEventTarget's addEventListener/removeEventListener\n const XMLHttpRequestEventTarget = global['XMLHttpRequestEventTarget'];\n if (XMLHttpRequestEventTarget && XMLHttpRequestEventTarget.prototype) {\n api.patchEventTarget(global, api, [XMLHttpRequestEventTarget.prototype]);\n }\n});\nZone.__load_patch('MutationObserver', (global, Zone, api) => {\n patchClass('MutationObserver');\n patchClass('WebKitMutationObserver');\n});\nZone.__load_patch('IntersectionObserver', (global, Zone, api) => {\n patchClass('IntersectionObserver');\n});\nZone.__load_patch('FileReader', (global, Zone, api) => {\n patchClass('FileReader');\n});\nZone.__load_patch('on_property', (global, Zone, api) => {\n propertyDescriptorPatch(api, global);\n});\nZone.__load_patch('customElements', (global, Zone, api) => {\n patchCustomElements(global, api);\n});\nZone.__load_patch('XHR', (global, Zone) => {\n // Treat XMLHttpRequest as a macrotask.\n patchXHR(global);\n const XHR_TASK = zoneSymbol('xhrTask');\n const XHR_SYNC = zoneSymbol('xhrSync');\n const XHR_LISTENER = zoneSymbol('xhrListener');\n const XHR_SCHEDULED = zoneSymbol('xhrScheduled');\n const XHR_URL = zoneSymbol('xhrURL');\n const XHR_ERROR_BEFORE_SCHEDULED = zoneSymbol('xhrErrorBeforeScheduled');\n function patchXHR(window) {\n const XMLHttpRequest = window['XMLHttpRequest'];\n if (!XMLHttpRequest) {\n // XMLHttpRequest is not available in service worker\n return;\n }\n const XMLHttpRequestPrototype = XMLHttpRequest.prototype;\n function findPendingTask(target) {\n return target[XHR_TASK];\n }\n let oriAddListener = XMLHttpRequestPrototype[ZONE_SYMBOL_ADD_EVENT_LISTENER];\n let oriRemoveListener = XMLHttpRequestPrototype[ZONE_SYMBOL_REMOVE_EVENT_LISTENER];\n if (!oriAddListener) {\n const XMLHttpRequestEventTarget = window['XMLHttpRequestEventTarget'];\n if (XMLHttpRequestEventTarget) {\n const XMLHttpRequestEventTargetPrototype = XMLHttpRequestEventTarget.prototype;\n oriAddListener = XMLHttpRequestEventTargetPrototype[ZONE_SYMBOL_ADD_EVENT_LISTENER];\n oriRemoveListener = XMLHttpRequestEventTargetPrototype[ZONE_SYMBOL_REMOVE_EVENT_LISTENER];\n }\n }\n const READY_STATE_CHANGE = 'readystatechange';\n const SCHEDULED = 'scheduled';\n function scheduleTask(task) {\n const data = task.data;\n const target = data.target;\n target[XHR_SCHEDULED] = false;\n target[XHR_ERROR_BEFORE_SCHEDULED] = false;\n // remove existing event listener\n const listener = target[XHR_LISTENER];\n if (!oriAddListener) {\n oriAddListener = target[ZONE_SYMBOL_ADD_EVENT_LISTENER];\n oriRemoveListener = target[ZONE_SYMBOL_REMOVE_EVENT_LISTENER];\n }\n if (listener) {\n oriRemoveListener.call(target, READY_STATE_CHANGE, listener);\n }\n const newListener = target[XHR_LISTENER] = () => {\n if (target.readyState === target.DONE) {\n // sometimes on some browsers XMLHttpRequest will fire onreadystatechange with\n // readyState=4 multiple times, so we need to check task state here\n if (!data.aborted && target[XHR_SCHEDULED] && task.state === SCHEDULED) {\n // check whether the xhr has registered onload listener\n // if that is the case, the task should invoke after all\n // onload listeners finish.\n // Also if the request failed without response (status = 0), the load event handler\n // will not be triggered, in that case, we should also invoke the placeholder callback\n // to close the XMLHttpRequest::send macroTask.\n // https://github.com/angular/angular/issues/38795\n const loadTasks = target[Zone.__symbol__('loadfalse')];\n if (target.status !== 0 && loadTasks && loadTasks.length > 0) {\n const oriInvoke = task.invoke;\n task.invoke = function () {\n // need to load the tasks again, because in other\n // load listener, they may remove themselves\n const loadTasks = target[Zone.__symbol__('loadfalse')];\n for (let i = 0; i < loadTasks.length; i++) {\n if (loadTasks[i] === task) {\n loadTasks.splice(i, 1);\n }\n }\n if (!data.aborted && task.state === SCHEDULED) {\n oriInvoke.call(task);\n }\n };\n loadTasks.push(task);\n }\n else {\n task.invoke();\n }\n }\n else if (!data.aborted && target[XHR_SCHEDULED] === false) {\n // error occurs when xhr.send()\n target[XHR_ERROR_BEFORE_SCHEDULED] = true;\n }\n }\n };\n oriAddListener.call(target, READY_STATE_CHANGE, newListener);\n const storedTask = target[XHR_TASK];\n if (!storedTask) {\n target[XHR_TASK] = task;\n }\n sendNative.apply(target, data.args);\n target[XHR_SCHEDULED] = true;\n return task;\n }\n function placeholderCallback() { }\n function clearTask(task) {\n const data = task.data;\n // Note - ideally, we would call data.target.removeEventListener here, but it's too late\n // to prevent it from firing. So instead, we store info for the event listener.\n data.aborted = true;\n return abortNative.apply(data.target, data.args);\n }\n const openNative = patchMethod(XMLHttpRequestPrototype, 'open', () => function (self, args) {\n self[XHR_SYNC] = args[2] == false;\n self[XHR_URL] = args[1];\n return openNative.apply(self, args);\n });\n const XMLHTTPREQUEST_SOURCE = 'XMLHttpRequest.send';\n const fetchTaskAborting = zoneSymbol('fetchTaskAborting');\n const fetchTaskScheduling = zoneSymbol('fetchTaskScheduling');\n const sendNative = patchMethod(XMLHttpRequestPrototype, 'send', () => function (self, args) {\n if (Zone.current[fetchTaskScheduling] === true) {\n // a fetch is scheduling, so we are using xhr to polyfill fetch\n // and because we already schedule macroTask for fetch, we should\n // not schedule a macroTask for xhr again\n return sendNative.apply(self, args);\n }\n if (self[XHR_SYNC]) {\n // if the XHR is sync there is no task to schedule, just execute the code.\n return sendNative.apply(self, args);\n }\n else {\n const options = { target: self, url: self[XHR_URL], isPeriodic: false, args: args, aborted: false };\n const task = scheduleMacroTaskWithCurrentZone(XMLHTTPREQUEST_SOURCE, placeholderCallback, options, scheduleTask, clearTask);\n if (self && self[XHR_ERROR_BEFORE_SCHEDULED] === true && !options.aborted &&\n task.state === SCHEDULED) {\n // xhr request throw error when send\n // we should invoke task instead of leaving a scheduled\n // pending macroTask\n task.invoke();\n }\n }\n });\n const abortNative = patchMethod(XMLHttpRequestPrototype, 'abort', () => function (self, args) {\n const task = findPendingTask(self);\n if (task && typeof task.type == 'string') {\n // If the XHR has already completed, do nothing.\n // If the XHR has already been aborted, do nothing.\n // Fix #569, call abort multiple times before done will cause\n // macroTask task count be negative number\n if (task.cancelFn == null || (task.data && task.data.aborted)) {\n return;\n }\n task.zone.cancelTask(task);\n }\n else if (Zone.current[fetchTaskAborting] === true) {\n // the abort is called from fetch polyfill, we need to call native abort of XHR.\n return abortNative.apply(self, args);\n }\n // Otherwise, we are trying to abort an XHR which has not yet been sent, so there is no\n // task\n // to cancel. Do nothing.\n });\n }\n});\nZone.__load_patch('geolocation', (global) => {\n /// GEO_LOCATION\n if (global['navigator'] && global['navigator'].geolocation) {\n patchPrototype(global['navigator'].geolocation, ['getCurrentPosition', 'watchPosition']);\n }\n});\nZone.__load_patch('PromiseRejectionEvent', (global, Zone) => {\n // handle unhandled promise rejection\n function findPromiseRejectionHandler(evtName) {\n return function (e) {\n const eventTasks = findEventTasks(global, evtName);\n eventTasks.forEach(eventTask => {\n // windows has added unhandledrejection event listener\n // trigger the event listener\n const PromiseRejectionEvent = global['PromiseRejectionEvent'];\n if (PromiseRejectionEvent) {\n const evt = new PromiseRejectionEvent(evtName, { promise: e.promise, reason: e.rejection });\n eventTask.invoke(evt);\n }\n });\n };\n }\n if (global['PromiseRejectionEvent']) {\n Zone[zoneSymbol('unhandledPromiseRejectionHandler')] =\n findPromiseRejectionHandler('unhandledrejection');\n Zone[zoneSymbol('rejectionHandledHandler')] =\n findPromiseRejectionHandler('rejectionhandled');\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\nexport enum TagContentType {\n RAW_TEXT,\n ESCAPABLE_RAW_TEXT,\n PARSABLE_DATA\n}\n\nexport interface TagDefinition {\n closedByParent: boolean;\n implicitNamespacePrefix: string|null;\n isVoid: boolean;\n ignoreFirstLf: boolean;\n canSelfClose: boolean;\n preventNamespaceInheritance: boolean;\n\n isClosedByChild(name: string): boolean;\n getContentType(prefix?: string): TagContentType;\n}\n\nexport function splitNsName(elementName: string): [string|null, string] {\n if (elementName[0] != ':') {\n return [null, elementName];\n }\n\n const colonIndex = elementName.indexOf(':', 1);\n\n if (colonIndex === -1) {\n throw new Error(`Unsupported format \"${elementName}\" expecting \":namespace:name\"`);\n }\n\n return [elementName.slice(1, colonIndex), elementName.slice(colonIndex + 1)];\n}\n\n// `` tags work the same regardless the namespace\nexport function isNgContainer(tagName: string): boolean {\n return splitNsName(tagName)[1] === 'ng-container';\n}\n\n// `` tags work the same regardless the namespace\nexport function isNgContent(tagName: string): boolean {\n return splitNsName(tagName)[1] === 'ng-content';\n}\n\n// `` tags work the same regardless the namespace\nexport function isNgTemplate(tagName: string): boolean {\n return splitNsName(tagName)[1] === 'ng-template';\n}\n\nexport function getNsPrefix(fullName: string): string;\nexport function getNsPrefix(fullName: null): null;\nexport function getNsPrefix(fullName: string|null): string|null {\n return fullName === null ? null : splitNsName(fullName)[0];\n}\n\nexport function mergeNsAndName(prefix: string, localName: string): string {\n return prefix ? `:${prefix}:${localName}` : localName;\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\nimport {TagContentType, TagDefinition} from './tags';\n\nexport class HtmlTagDefinition implements TagDefinition {\n private closedByChildren: {[key: string]: boolean} = {};\n private contentType: TagContentType|\n {default: TagContentType, [namespace: string]: TagContentType};\n\n closedByParent: boolean = false;\n implicitNamespacePrefix: string|null;\n isVoid: boolean;\n ignoreFirstLf: boolean;\n canSelfClose: boolean = false;\n preventNamespaceInheritance: boolean;\n\n constructor({\n closedByChildren,\n implicitNamespacePrefix,\n contentType = TagContentType.PARSABLE_DATA,\n closedByParent = false,\n isVoid = false,\n ignoreFirstLf = false,\n preventNamespaceInheritance = false\n }: {\n closedByChildren?: string[],\n closedByParent?: boolean,\n implicitNamespacePrefix?: string,\n contentType?: TagContentType|{default: TagContentType, [namespace: string]: TagContentType},\n isVoid?: boolean,\n ignoreFirstLf?: boolean,\n preventNamespaceInheritance?: boolean\n } = {}) {\n if (closedByChildren && closedByChildren.length > 0) {\n closedByChildren.forEach(tagName => this.closedByChildren[tagName] = true);\n }\n this.isVoid = isVoid;\n this.closedByParent = closedByParent || isVoid;\n this.implicitNamespacePrefix = implicitNamespacePrefix || null;\n this.contentType = contentType;\n this.ignoreFirstLf = ignoreFirstLf;\n this.preventNamespaceInheritance = preventNamespaceInheritance;\n }\n\n isClosedByChild(name: string): boolean {\n return this.isVoid || name.toLowerCase() in this.closedByChildren;\n }\n\n getContentType(prefix?: string): TagContentType {\n if (typeof this.contentType === 'object') {\n const overrideType = prefix === undefined ? undefined : this.contentType[prefix];\n return overrideType ?? this.contentType.default;\n }\n return this.contentType;\n }\n}\n\nlet _DEFAULT_TAG_DEFINITION!: HtmlTagDefinition;\n\n// see https://www.w3.org/TR/html51/syntax.html#optional-tags\n// This implementation does not fully conform to the HTML5 spec.\nlet TAG_DEFINITIONS!: {[key: string]: HtmlTagDefinition};\n\nexport function getHtmlTagDefinition(tagName: string): HtmlTagDefinition {\n if (!TAG_DEFINITIONS) {\n _DEFAULT_TAG_DEFINITION = new HtmlTagDefinition();\n TAG_DEFINITIONS = {\n 'base': new HtmlTagDefinition({isVoid: true}),\n 'meta': new HtmlTagDefinition({isVoid: true}),\n 'area': new HtmlTagDefinition({isVoid: true}),\n 'embed': new HtmlTagDefinition({isVoid: true}),\n 'link': new HtmlTagDefinition({isVoid: true}),\n 'img': new HtmlTagDefinition({isVoid: true}),\n 'input': new HtmlTagDefinition({isVoid: true}),\n 'param': new HtmlTagDefinition({isVoid: true}),\n 'hr': new HtmlTagDefinition({isVoid: true}),\n 'br': new HtmlTagDefinition({isVoid: true}),\n 'source': new HtmlTagDefinition({isVoid: true}),\n 'track': new HtmlTagDefinition({isVoid: true}),\n 'wbr': new HtmlTagDefinition({isVoid: true}),\n 'p': new HtmlTagDefinition({\n closedByChildren: [\n 'address', 'article', 'aside', 'blockquote', 'div', 'dl', 'fieldset',\n 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5',\n 'h6', 'header', 'hgroup', 'hr', 'main', 'nav', 'ol',\n 'p', 'pre', 'section', 'table', 'ul'\n ],\n closedByParent: true\n }),\n 'thead': new HtmlTagDefinition({closedByChildren: ['tbody', 'tfoot']}),\n 'tbody': new HtmlTagDefinition({closedByChildren: ['tbody', 'tfoot'], closedByParent: true}),\n 'tfoot': new HtmlTagDefinition({closedByChildren: ['tbody'], closedByParent: true}),\n 'tr': new HtmlTagDefinition({closedByChildren: ['tr'], closedByParent: true}),\n 'td': new HtmlTagDefinition({closedByChildren: ['td', 'th'], closedByParent: true}),\n 'th': new HtmlTagDefinition({closedByChildren: ['td', 'th'], closedByParent: true}),\n 'col': new HtmlTagDefinition({isVoid: true}),\n 'svg': new HtmlTagDefinition({implicitNamespacePrefix: 'svg'}),\n 'foreignObject': new HtmlTagDefinition({\n // Usually the implicit namespace here would be redundant since it will be inherited from\n // the parent `svg`, but we have to do it for `foreignObject`, because the way the parser\n // works is that the parent node of an end tag is its own start tag which means that\n // the `preventNamespaceInheritance` on `foreignObject` would have it default to the\n // implicit namespace which is `html`, unless specified otherwise.\n implicitNamespacePrefix: 'svg',\n // We want to prevent children of foreignObject from inheriting its namespace, because\n // the point of the element is to allow nodes from other namespaces to be inserted.\n preventNamespaceInheritance: true,\n }),\n 'math': new HtmlTagDefinition({implicitNamespacePrefix: 'math'}),\n 'li': new HtmlTagDefinition({closedByChildren: ['li'], closedByParent: true}),\n 'dt': new HtmlTagDefinition({closedByChildren: ['dt', 'dd']}),\n 'dd': new HtmlTagDefinition({closedByChildren: ['dt', 'dd'], closedByParent: true}),\n 'rb': new HtmlTagDefinition(\n {closedByChildren: ['rb', 'rt', 'rtc', 'rp'], closedByParent: true}),\n 'rt': new HtmlTagDefinition(\n {closedByChildren: ['rb', 'rt', 'rtc', 'rp'], closedByParent: true}),\n 'rtc': new HtmlTagDefinition({closedByChildren: ['rb', 'rtc', 'rp'], closedByParent: true}),\n 'rp': new HtmlTagDefinition(\n {closedByChildren: ['rb', 'rt', 'rtc', 'rp'], closedByParent: true}),\n 'optgroup': new HtmlTagDefinition({closedByChildren: ['optgroup'], closedByParent: true}),\n 'option':\n new HtmlTagDefinition({closedByChildren: ['option', 'optgroup'], closedByParent: true}),\n 'pre': new HtmlTagDefinition({ignoreFirstLf: true}),\n 'listing': new HtmlTagDefinition({ignoreFirstLf: true}),\n 'style': new HtmlTagDefinition({contentType: TagContentType.RAW_TEXT}),\n 'script': new HtmlTagDefinition({contentType: TagContentType.RAW_TEXT}),\n 'title': new HtmlTagDefinition({\n // The browser supports two separate `title` tags which have to use\n // a different content type: `HTMLTitleElement` and `SVGTitleElement`\n contentType: {default: TagContentType.ESCAPABLE_RAW_TEXT, svg: TagContentType.PARSABLE_DATA}\n }),\n 'textarea': new HtmlTagDefinition(\n {contentType: TagContentType.ESCAPABLE_RAW_TEXT, ignoreFirstLf: true}),\n };\n }\n // We have to make both a case-sensitive and a case-insensitive lookup, because\n // HTML tag names are case insensitive, whereas some SVG tags are case sensitive.\n return TAG_DEFINITIONS[tagName] ?? TAG_DEFINITIONS[tagName.toLowerCase()] ??\n _DEFAULT_TAG_DEFINITION;\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\nimport {getHtmlTagDefinition} from './ml_parser/html_tags';\n\nconst _SELECTOR_REGEXP = new RegExp(\n '(\\\\:not\\\\()|' + // 1: \":not(\"\n '(([\\\\.\\\\#]?)[-\\\\w]+)|' + // 2: \"tag\"; 3: \".\"/\"#\";\n // \"-\" should appear first in the regexp below as FF31 parses \"[.-\\w]\" as a range\n // 4: attribute; 5: attribute_string; 6: attribute_value\n '(?:\\\\[([-.\\\\w*\\\\\\\\$]+)(?:=([\\\"\\']?)([^\\\\]\\\"\\']*)\\\\5)?\\\\])|' + // \"[name]\", \"[name=value]\",\n // \"[name=\"value\"]\",\n // \"[name='value']\"\n '(\\\\))|' + // 7: \")\"\n '(\\\\s*,\\\\s*)', // 8: \",\"\n 'g');\n\n/**\n * These offsets should match the match-groups in `_SELECTOR_REGEXP` offsets.\n */\nconst enum SelectorRegexp {\n ALL = 0, // The whole match\n NOT = 1,\n TAG = 2,\n PREFIX = 3,\n ATTRIBUTE = 4,\n ATTRIBUTE_STRING = 5,\n ATTRIBUTE_VALUE = 6,\n NOT_END = 7,\n SEPARATOR = 8,\n}\n/**\n * A css selector contains an element name,\n * css classes and attribute/value pairs with the purpose\n * of selecting subsets out of them.\n */\nexport class CssSelector {\n element: string|null = null;\n classNames: string[] = [];\n /**\n * The selectors are encoded in pairs where:\n * - even locations are attribute names\n * - odd locations are attribute values.\n *\n * Example:\n * Selector: `[key1=value1][key2]` would parse to:\n * ```\n * ['key1', 'value1', 'key2', '']\n * ```\n */\n attrs: string[] = [];\n notSelectors: CssSelector[] = [];\n\n static parse(selector: string): CssSelector[] {\n const results: CssSelector[] = [];\n const _addResult = (res: CssSelector[], cssSel: CssSelector) => {\n if (cssSel.notSelectors.length > 0 && !cssSel.element && cssSel.classNames.length == 0 &&\n cssSel.attrs.length == 0) {\n cssSel.element = '*';\n }\n res.push(cssSel);\n };\n let cssSelector = new CssSelector();\n let match: string[]|null;\n let current = cssSelector;\n let inNot = false;\n _SELECTOR_REGEXP.lastIndex = 0;\n while (match = _SELECTOR_REGEXP.exec(selector)) {\n if (match[SelectorRegexp.NOT]) {\n if (inNot) {\n throw new Error('Nesting :not in a selector is not allowed');\n }\n inNot = true;\n current = new CssSelector();\n cssSelector.notSelectors.push(current);\n }\n const tag = match[SelectorRegexp.TAG];\n if (tag) {\n const prefix = match[SelectorRegexp.PREFIX];\n if (prefix === '#') {\n // #hash\n current.addAttribute('id', tag.slice(1));\n } else if (prefix === '.') {\n // Class\n current.addClassName(tag.slice(1));\n } else {\n // Element\n current.setElement(tag);\n }\n }\n const attribute = match[SelectorRegexp.ATTRIBUTE];\n\n if (attribute) {\n current.addAttribute(\n current.unescapeAttribute(attribute), match[SelectorRegexp.ATTRIBUTE_VALUE]);\n }\n if (match[SelectorRegexp.NOT_END]) {\n inNot = false;\n current = cssSelector;\n }\n if (match[SelectorRegexp.SEPARATOR]) {\n if (inNot) {\n throw new Error('Multiple selectors in :not are not supported');\n }\n _addResult(results, cssSelector);\n cssSelector = current = new CssSelector();\n }\n }\n _addResult(results, cssSelector);\n return results;\n }\n\n /**\n * Unescape `\\$` sequences from the CSS attribute selector.\n *\n * This is needed because `$` can have a special meaning in CSS selectors,\n * but we might want to match an attribute that contains `$`.\n * [MDN web link for more\n * info](https://developer.mozilla.org/en-US/docs/Web/CSS/Attribute_selectors).\n * @param attr the attribute to unescape.\n * @returns the unescaped string.\n */\n unescapeAttribute(attr: string): string {\n let result = '';\n let escaping = false;\n for (let i = 0; i < attr.length; i++) {\n const char = attr.charAt(i);\n if (char === '\\\\') {\n escaping = true;\n continue;\n }\n if (char === '$' && !escaping) {\n throw new Error(\n `Error in attribute selector \"${attr}\". ` +\n `Unescaped \"$\" is not supported. Please escape with \"\\\\$\".`);\n }\n escaping = false;\n result += char;\n }\n return result;\n }\n\n /**\n * Escape `$` sequences from the CSS attribute selector.\n *\n * This is needed because `$` can have a special meaning in CSS selectors,\n * with this method we are escaping `$` with `\\$'.\n * [MDN web link for more\n * info](https://developer.mozilla.org/en-US/docs/Web/CSS/Attribute_selectors).\n * @param attr the attribute to escape.\n * @returns the escaped string. \n */\n escapeAttribute(attr: string): string {\n return attr.replace(/\\\\/g, '\\\\\\\\').replace(/\\$/g, '\\\\$');\n }\n\n isElementSelector(): boolean {\n return this.hasElementSelector() && this.classNames.length == 0 && this.attrs.length == 0 &&\n this.notSelectors.length === 0;\n }\n\n hasElementSelector(): boolean {\n return !!this.element;\n }\n\n setElement(element: string|null = null) {\n this.element = element;\n }\n\n /** Gets a template string for an element that matches the selector. */\n getMatchingElementTemplate(): string {\n const tagName = this.element || 'div';\n const classAttr = this.classNames.length > 0 ? ` class=\"${this.classNames.join(' ')}\"` : '';\n\n let attrs = '';\n for (let i = 0; i < this.attrs.length; i += 2) {\n const attrName = this.attrs[i];\n const attrValue = this.attrs[i + 1] !== '' ? `=\"${this.attrs[i + 1]}\"` : '';\n attrs += ` ${attrName}${attrValue}`;\n }\n\n return getHtmlTagDefinition(tagName).isVoid ? `<${tagName}${classAttr}${attrs}/>` :\n `<${tagName}${classAttr}${attrs}>`;\n }\n\n getAttrs(): string[] {\n const result: string[] = [];\n if (this.classNames.length > 0) {\n result.push('class', this.classNames.join(' '));\n }\n return result.concat(this.attrs);\n }\n\n addAttribute(name: string, value: string = '') {\n this.attrs.push(name, value && value.toLowerCase() || '');\n }\n\n addClassName(name: string) {\n this.classNames.push(name.toLowerCase());\n }\n\n toString(): string {\n let res: string = this.element || '';\n if (this.classNames) {\n this.classNames.forEach(klass => res += `.${klass}`);\n }\n if (this.attrs) {\n for (let i = 0; i < this.attrs.length; i += 2) {\n const name = this.escapeAttribute(this.attrs[i]);\n const value = this.attrs[i + 1];\n res += `[${name}${value ? '=' + value : ''}]`;\n }\n }\n this.notSelectors.forEach(notSelector => res += `:not(${notSelector})`);\n return res;\n }\n}\n\n/**\n * Reads a list of CssSelectors and allows to calculate which ones\n * are contained in a given CssSelector.\n */\nexport class SelectorMatcher {\n static createNotMatcher(notSelectors: CssSelector[]): SelectorMatcher {\n const notMatcher = new SelectorMatcher();\n notMatcher.addSelectables(notSelectors, null);\n return notMatcher;\n }\n\n private _elementMap = new Map[]>();\n private _elementPartialMap = new Map>();\n private _classMap = new Map[]>();\n private _classPartialMap = new Map>();\n private _attrValueMap = new Map[]>>();\n private _attrValuePartialMap = new Map>>();\n private _listContexts: SelectorListContext[] = [];\n\n addSelectables(cssSelectors: CssSelector[], callbackCtxt?: T) {\n let listContext: SelectorListContext = null!;\n if (cssSelectors.length > 1) {\n listContext = new SelectorListContext(cssSelectors);\n this._listContexts.push(listContext);\n }\n for (let i = 0; i < cssSelectors.length; i++) {\n this._addSelectable(cssSelectors[i], callbackCtxt as T, listContext);\n }\n }\n\n /**\n * Add an object that can be found later on by calling `match`.\n * @param cssSelector A css selector\n * @param callbackCtxt An opaque object that will be given to the callback of the `match` function\n */\n private _addSelectable(\n cssSelector: CssSelector, callbackCtxt: T, listContext: SelectorListContext) {\n let matcher: SelectorMatcher = this;\n const element = cssSelector.element;\n const classNames = cssSelector.classNames;\n const attrs = cssSelector.attrs;\n const selectable = new SelectorContext(cssSelector, callbackCtxt, listContext);\n\n if (element) {\n const isTerminal = attrs.length === 0 && classNames.length === 0;\n if (isTerminal) {\n this._addTerminal(matcher._elementMap, element, selectable);\n } else {\n matcher = this._addPartial(matcher._elementPartialMap, element);\n }\n }\n\n if (classNames) {\n for (let i = 0; i < classNames.length; i++) {\n const isTerminal = attrs.length === 0 && i === classNames.length - 1;\n const className = classNames[i];\n if (isTerminal) {\n this._addTerminal(matcher._classMap, className, selectable);\n } else {\n matcher = this._addPartial(matcher._classPartialMap, className);\n }\n }\n }\n\n if (attrs) {\n for (let i = 0; i < attrs.length; i += 2) {\n const isTerminal = i === attrs.length - 2;\n const name = attrs[i];\n const value = attrs[i + 1];\n if (isTerminal) {\n const terminalMap = matcher._attrValueMap;\n let terminalValuesMap = terminalMap.get(name);\n if (!terminalValuesMap) {\n terminalValuesMap = new Map[]>();\n terminalMap.set(name, terminalValuesMap);\n }\n this._addTerminal(terminalValuesMap, value, selectable);\n } else {\n const partialMap = matcher._attrValuePartialMap;\n let partialValuesMap = partialMap.get(name);\n if (!partialValuesMap) {\n partialValuesMap = new Map>();\n partialMap.set(name, partialValuesMap);\n }\n matcher = this._addPartial(partialValuesMap, value);\n }\n }\n }\n }\n\n private _addTerminal(\n map: Map[]>, name: string, selectable: SelectorContext) {\n let terminalList = map.get(name);\n if (!terminalList) {\n terminalList = [];\n map.set(name, terminalList);\n }\n terminalList.push(selectable);\n }\n\n private _addPartial(map: Map>, name: string): SelectorMatcher {\n let matcher = map.get(name);\n if (!matcher) {\n matcher = new SelectorMatcher();\n map.set(name, matcher);\n }\n return matcher;\n }\n\n /**\n * Find the objects that have been added via `addSelectable`\n * whose css selector is contained in the given css selector.\n * @param cssSelector A css selector\n * @param matchedCallback This callback will be called with the object handed into `addSelectable`\n * @return boolean true if a match was found\n */\n match(cssSelector: CssSelector, matchedCallback: ((c: CssSelector, a: T) => void)|null): boolean {\n let result = false;\n const element = cssSelector.element!;\n const classNames = cssSelector.classNames;\n const attrs = cssSelector.attrs;\n\n for (let i = 0; i < this._listContexts.length; i++) {\n this._listContexts[i].alreadyMatched = false;\n }\n\n result = this._matchTerminal(this._elementMap, element, cssSelector, matchedCallback) || result;\n result = this._matchPartial(this._elementPartialMap, element, cssSelector, matchedCallback) ||\n result;\n\n if (classNames) {\n for (let i = 0; i < classNames.length; i++) {\n const className = classNames[i];\n result =\n this._matchTerminal(this._classMap, className, cssSelector, matchedCallback) || result;\n result =\n this._matchPartial(this._classPartialMap, className, cssSelector, matchedCallback) ||\n result;\n }\n }\n\n if (attrs) {\n for (let i = 0; i < attrs.length; i += 2) {\n const name = attrs[i];\n const value = attrs[i + 1];\n\n const terminalValuesMap = this._attrValueMap.get(name)!;\n if (value) {\n result =\n this._matchTerminal(terminalValuesMap, '', cssSelector, matchedCallback) || result;\n }\n result =\n this._matchTerminal(terminalValuesMap, value, cssSelector, matchedCallback) || result;\n\n const partialValuesMap = this._attrValuePartialMap.get(name)!;\n if (value) {\n result = this._matchPartial(partialValuesMap, '', cssSelector, matchedCallback) || result;\n }\n result =\n this._matchPartial(partialValuesMap, value, cssSelector, matchedCallback) || result;\n }\n }\n return result;\n }\n\n /** @internal */\n _matchTerminal(\n map: Map[]>, name: string, cssSelector: CssSelector,\n matchedCallback: ((c: CssSelector, a: any) => void)|null): boolean {\n if (!map || typeof name !== 'string') {\n return false;\n }\n\n let selectables: SelectorContext[] = map.get(name) || [];\n const starSelectables: SelectorContext[] = map.get('*')!;\n if (starSelectables) {\n selectables = selectables.concat(starSelectables);\n }\n if (selectables.length === 0) {\n return false;\n }\n let selectable: SelectorContext;\n let result = false;\n for (let i = 0; i < selectables.length; i++) {\n selectable = selectables[i];\n result = selectable.finalize(cssSelector, matchedCallback) || result;\n }\n return result;\n }\n\n /** @internal */\n _matchPartial(\n map: Map>, name: string, cssSelector: CssSelector,\n matchedCallback: ((c: CssSelector, a: any) => void)|null): boolean {\n if (!map || typeof name !== 'string') {\n return false;\n }\n\n const nestedSelector = map.get(name);\n if (!nestedSelector) {\n return false;\n }\n // TODO(perf): get rid of recursion and measure again\n // TODO(perf): don't pass the whole selector into the recursion,\n // but only the not processed parts\n return nestedSelector.match(cssSelector, matchedCallback);\n }\n}\n\n\nexport class SelectorListContext {\n alreadyMatched: boolean = false;\n\n constructor(public selectors: CssSelector[]) {}\n}\n\n// Store context to pass back selector and context when a selector is matched\nexport class SelectorContext {\n notSelectors: CssSelector[];\n\n constructor(\n public selector: CssSelector, public cbContext: T, public listContext: SelectorListContext) {\n this.notSelectors = selector.notSelectors;\n }\n\n finalize(cssSelector: CssSelector, callback: ((c: CssSelector, a: T) => void)|null): boolean {\n let result = true;\n if (this.notSelectors.length > 0 && (!this.listContext || !this.listContext.alreadyMatched)) {\n const notMatcher = SelectorMatcher.createNotMatcher(this.notSelectors);\n result = !notMatcher.match(cssSelector, null);\n }\n if (result && callback && (!this.listContext || !this.listContext.alreadyMatched)) {\n if (this.listContext) {\n this.listContext.alreadyMatched = true;\n }\n callback(this.selector, this.cbContext);\n }\n return result;\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// Attention:\n// This file duplicates types and values from @angular/core\n// so that we are able to make @angular/compiler independent of @angular/core.\n// This is important to prevent a build cycle, as @angular/core needs to\n// be compiled with the compiler.\n\nimport {CssSelector} from './selector';\n\n// Stores the default value of `emitDistinctChangesOnly` when the `emitDistinctChangesOnly` is not\n// explicitly set.\nexport const emitDistinctChangesOnlyDefaultValue = true;\n\nexport enum ViewEncapsulation {\n Emulated = 0,\n // Historically the 1 value was for `Native` encapsulation which has been removed as of v11.\n None = 2,\n ShadowDom = 3\n}\n\nexport enum ChangeDetectionStrategy {\n OnPush = 0,\n Default = 1\n}\n\nexport interface Input {\n bindingPropertyName?: string;\n}\n\nexport interface Output {\n bindingPropertyName?: string;\n}\n\nexport interface HostBinding {\n hostPropertyName?: string;\n}\n\nexport interface HostListener {\n eventName?: string;\n args?: string[];\n}\n\nexport interface SchemaMetadata {\n name: string;\n}\n\nexport const CUSTOM_ELEMENTS_SCHEMA: SchemaMetadata = {\n name: 'custom-elements'\n};\n\nexport const NO_ERRORS_SCHEMA: SchemaMetadata = {\n name: 'no-errors-schema'\n};\n\nexport interface Type extends Function {\n new(...args: any[]): any;\n}\nexport const Type = Function;\n\nexport enum SecurityContext {\n NONE = 0,\n HTML = 1,\n STYLE = 2,\n SCRIPT = 3,\n URL = 4,\n RESOURCE_URL = 5,\n}\n\n/**\n * Injection flags for DI.\n */\nexport const enum InjectFlags {\n Default = 0,\n\n /**\n * Specifies that an injector should retrieve a dependency from any injector until reaching the\n * host element of the current component. (Only used with Element Injector)\n */\n Host = 1 << 0,\n /** Don't descend into ancestors of the node requesting injection. */\n Self = 1 << 1,\n /** Skip the node that is requesting injection. */\n SkipSelf = 1 << 2,\n /** Inject `defaultValue` instead if token not found. */\n Optional = 1 << 3,\n /**\n * This token is being injected into a pipe.\n * @internal\n */\n ForPipe = 1 << 4,\n}\n\nexport enum MissingTranslationStrategy {\n Error = 0,\n Warning = 1,\n Ignore = 2,\n}\n\n/**\n * Flags used to generate R3-style CSS Selectors. They are pasted from\n * core/src/render3/projection.ts because they cannot be referenced directly.\n */\nexport const enum SelectorFlags {\n /** Indicates this is the beginning of a new negative selector */\n NOT = 0b0001,\n\n /** Mode for matching attributes */\n ATTRIBUTE = 0b0010,\n\n /** Mode for matching tag names */\n ELEMENT = 0b0100,\n\n /** Mode for matching class names */\n CLASS = 0b1000,\n}\n\n// These are a copy the CSS types from core/src/render3/interfaces/projection.ts\n// They are duplicated here as they cannot be directly referenced from core.\nexport type R3CssSelector = (string|SelectorFlags)[];\nexport type R3CssSelectorList = R3CssSelector[];\n\nfunction parserSelectorToSimpleSelector(selector: CssSelector): R3CssSelector {\n const classes = selector.classNames && selector.classNames.length ?\n [SelectorFlags.CLASS, ...selector.classNames] :\n [];\n const elementName = selector.element && selector.element !== '*' ? selector.element : '';\n return [elementName, ...selector.attrs, ...classes];\n}\n\nfunction parserSelectorToNegativeSelector(selector: CssSelector): R3CssSelector {\n const classes = selector.classNames && selector.classNames.length ?\n [SelectorFlags.CLASS, ...selector.classNames] :\n [];\n\n if (selector.element) {\n return [\n SelectorFlags.NOT | SelectorFlags.ELEMENT, selector.element, ...selector.attrs, ...classes\n ];\n } else if (selector.attrs.length) {\n return [SelectorFlags.NOT | SelectorFlags.ATTRIBUTE, ...selector.attrs, ...classes];\n } else {\n return selector.classNames && selector.classNames.length ?\n [SelectorFlags.NOT | SelectorFlags.CLASS, ...selector.classNames] :\n [];\n }\n}\n\nfunction parserSelectorToR3Selector(selector: CssSelector): R3CssSelector {\n const positive = parserSelectorToSimpleSelector(selector);\n\n const negative: R3CssSelectorList = selector.notSelectors && selector.notSelectors.length ?\n selector.notSelectors.map(notSelector => parserSelectorToNegativeSelector(notSelector)) :\n [];\n\n return positive.concat(...negative);\n}\n\nexport function parseSelectorToR3Selector(selector: string|null): R3CssSelectorList {\n return selector ? CssSelector.parse(selector).map(parserSelectorToR3Selector) : [];\n}\n\n// Pasted from render3/interfaces/definition since it cannot be referenced directly\n/**\n * Flags passed into template functions to determine which blocks (i.e. creation, update)\n * should be executed.\n *\n * Typically, a template runs both the creation block and the update block on initialization and\n * subsequent runs only execute the update block. However, dynamically created views require that\n * the creation block be executed separately from the update block (for backwards compat).\n */\nexport const enum RenderFlags {\n /* Whether to run the creation block (e.g. create elements and directives) */\n Create = 0b01,\n\n /* Whether to run the update block (e.g. refresh bindings) */\n Update = 0b10\n}\n\n// Pasted from render3/interfaces/node.ts\n/**\n * A set of marker values to be used in the attributes arrays. These markers indicate that some\n * items are not regular attributes and the processing should be adapted accordingly.\n */\nexport const enum AttributeMarker {\n /**\n * Marker indicates that the following 3 values in the attributes array are:\n * namespaceUri, attributeName, attributeValue\n * in that order.\n */\n NamespaceURI = 0,\n\n /**\n * Signals class declaration.\n *\n * Each value following `Classes` designates a class name to include on the element.\n * ## Example:\n *\n * Given:\n * ```\n *
...\n * ```\n *\n * the generated code is:\n * ```\n * var _c1 = [AttributeMarker.Classes, 'foo', 'bar', 'baz'];\n * ```\n */\n Classes = 1,\n\n /**\n * Signals style declaration.\n *\n * Each pair of values following `Styles` designates a style name and value to include on the\n * element.\n * ## Example:\n *\n * Given:\n * ```\n *
...
\n * ```\n *\n * the generated code is:\n * ```\n * var _c1 = [AttributeMarker.Styles, 'width', '100px', 'height'. '200px', 'color', 'red'];\n * ```\n */\n Styles = 2,\n\n /**\n * Signals that the following attribute names were extracted from input or output bindings.\n *\n * For example, given the following HTML:\n *\n * ```\n *
\n * ```\n *\n * the generated code is:\n *\n * ```\n * var _c1 = ['moo', 'car', AttributeMarker.Bindings, 'foo', 'bar'];\n * ```\n */\n Bindings = 3,\n\n /**\n * Signals that the following attribute names were hoisted from an inline-template declaration.\n *\n * For example, given the following HTML:\n *\n * ```\n *
\n * ```\n *\n * the generated code for the `template()` instruction would include:\n *\n * ```\n * ['dirA', '', AttributeMarker.Bindings, 'dirB', AttributeMarker.Template, 'ngFor', 'ngForOf',\n * 'ngForTrackBy', 'let-value']\n * ```\n *\n * while the generated code for the `element()` instruction inside the template function would\n * include:\n *\n * ```\n * ['dirA', '', AttributeMarker.Bindings, 'dirB']\n * ```\n */\n Template = 4,\n\n /**\n * Signals that the following attribute is `ngProjectAs` and its value is a parsed `CssSelector`.\n *\n * For example, given the following HTML:\n *\n * ```\n *

\n * ```\n *\n * the generated code for the `element()` instruction would include:\n *\n * ```\n * ['attr', 'value', AttributeMarker.ProjectAs, ['', 'title', '']]\n * ```\n */\n ProjectAs = 5,\n\n /**\n * Signals that the following attribute will be translated by runtime i18n\n *\n * For example, given the following HTML:\n *\n * ```\n *
\n * ```\n *\n * the generated code is:\n *\n * ```\n * var _c1 = ['moo', 'car', AttributeMarker.I18n, 'foo', 'bar'];\n */\n I18n = 6,\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\nconst DASH_CASE_REGEXP = /-+([a-z0-9])/g;\n\nexport function dashCaseToCamelCase(input: string): string {\n return input.replace(DASH_CASE_REGEXP, (...m: any[]) => m[1].toUpperCase());\n}\n\nexport function splitAtColon(input: string, defaultValues: string[]): string[] {\n return _splitAt(input, ':', defaultValues);\n}\n\nexport function splitAtPeriod(input: string, defaultValues: string[]): string[] {\n return _splitAt(input, '.', defaultValues);\n}\n\nfunction _splitAt(input: string, character: string, defaultValues: string[]): string[] {\n const characterIndex = input.indexOf(character);\n if (characterIndex == -1) return defaultValues;\n return [input.slice(0, characterIndex).trim(), input.slice(characterIndex + 1).trim()];\n}\n\nexport function noUndefined(val: T|undefined): T {\n return val === undefined ? null! : val;\n}\n\nexport function error(msg: string): never {\n throw new Error(`Internal Error: ${msg}`);\n}\n\n// Escape characters that have a special meaning in Regular Expressions\nexport function escapeRegExp(s: string): string {\n return s.replace(/([.*+?^=!:${}()|[\\]\\/\\\\])/g, '\\\\$1');\n}\n\nexport type Byte = number;\n\nexport function utf8Encode(str: string): Byte[] {\n let encoded: Byte[] = [];\n for (let index = 0; index < str.length; index++) {\n let codePoint = str.charCodeAt(index);\n\n // decode surrogate\n // see https://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n if (codePoint >= 0xd800 && codePoint <= 0xdbff && str.length > (index + 1)) {\n const low = str.charCodeAt(index + 1);\n if (low >= 0xdc00 && low <= 0xdfff) {\n index++;\n codePoint = ((codePoint - 0xd800) << 10) + low - 0xdc00 + 0x10000;\n }\n }\n\n if (codePoint <= 0x7f) {\n encoded.push(codePoint);\n } else if (codePoint <= 0x7ff) {\n encoded.push(((codePoint >> 6) & 0x1F) | 0xc0, (codePoint & 0x3f) | 0x80);\n } else if (codePoint <= 0xffff) {\n encoded.push(\n (codePoint >> 12) | 0xe0, ((codePoint >> 6) & 0x3f) | 0x80, (codePoint & 0x3f) | 0x80);\n } else if (codePoint <= 0x1fffff) {\n encoded.push(\n ((codePoint >> 18) & 0x07) | 0xf0, ((codePoint >> 12) & 0x3f) | 0x80,\n ((codePoint >> 6) & 0x3f) | 0x80, (codePoint & 0x3f) | 0x80);\n }\n }\n\n return encoded;\n}\n\nexport function stringify(token: any): string {\n if (typeof token === 'string') {\n return token;\n }\n\n if (Array.isArray(token)) {\n return '[' + token.map(stringify).join(', ') + ']';\n }\n\n if (token == null) {\n return '' + token;\n }\n\n if (token.overriddenName) {\n return `${token.overriddenName}`;\n }\n\n if (token.name) {\n return `${token.name}`;\n }\n\n if (!token.toString) {\n return 'object';\n }\n\n // WARNING: do not try to `JSON.stringify(token)` here\n // see https://github.com/angular/angular/issues/23440\n const res = token.toString();\n\n if (res == null) {\n return '' + res;\n }\n\n const newLineIndex = res.indexOf('\\n');\n return newLineIndex === -1 ? res : res.substring(0, newLineIndex);\n}\n\nexport class Version {\n public readonly major: string;\n public readonly minor: string;\n public readonly patch: string;\n\n constructor(public full: string) {\n const splits = full.split('.');\n this.major = splits[0];\n this.minor = splits[1];\n this.patch = splits.slice(2).join('.');\n }\n}\n\nexport interface Console {\n log(message: string): void;\n warn(message: string): void;\n}\n\n\ndeclare var WorkerGlobalScope: any;\n// CommonJS / Node have global context exposed as \"global\" variable.\n// We don't want to include the whole node.d.ts this this compilation unit so we'll just fake\n// the global \"global\" var for now.\ndeclare var global: any;\n\n// Check `global` first, because in Node tests both `global` and `window` may be defined and our\n// `_global` variable should point to the NodeJS `global` in that case. Note: Typeof/Instanceof\n// checks are considered side-effects in Terser. We explicitly mark this as side-effect free:\n// https://github.com/terser/terser/issues/250.\nconst _global: {[name: string]: any} = (/* @__PURE__ */ (\n () => (typeof global !== 'undefined' && global) || (typeof window !== 'undefined' && window) ||\n (typeof self !== 'undefined' && typeof WorkerGlobalScope !== 'undefined' &&\n self instanceof WorkerGlobalScope && self))());\n\nexport {_global as global};\n\nexport function newArray(size: number): T[];\nexport function newArray(size: number, value: T): T[];\nexport function newArray(size: number, value?: T): T[] {\n const list: T[] = [];\n for (let i = 0; i < size; i++) {\n list.push(value!);\n }\n return list;\n}\n\n/**\n * Partitions a given array into 2 arrays, based on a boolean value returned by the condition\n * function.\n *\n * @param arr Input array that should be partitioned\n * @param conditionFn Condition function that is called for each item in a given array and returns a\n * boolean value.\n */\nexport function partitionArray(\n arr: (T|F)[], conditionFn: (value: T|F) => boolean): [T[], F[]] {\n const truthy: T[] = [];\n const falsy: F[] = [];\n for (const item of arr) {\n (conditionFn(item) ? truthy : falsy).push(item as any);\n }\n return [truthy, falsy];\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 * Represents a big integer using a buffer of its individual digits, with the least significant\n * digit stored at the beginning of the array (little endian).\n *\n * For performance reasons, each instance is mutable. The addition operation can be done in-place\n * to reduce memory pressure of allocation for the digits array.\n */\nexport class BigInteger {\n static zero(): BigInteger {\n return new BigInteger([0]);\n }\n\n static one(): BigInteger {\n return new BigInteger([1]);\n }\n\n /**\n * Creates a big integer using its individual digits in little endian storage.\n */\n private constructor(private readonly digits: number[]) {}\n\n /**\n * Creates a clone of this instance.\n */\n clone(): BigInteger {\n return new BigInteger(this.digits.slice());\n }\n\n /**\n * Returns a new big integer with the sum of `this` and `other` as its value. This does not mutate\n * `this` but instead returns a new instance, unlike `addToSelf`.\n */\n add(other: BigInteger): BigInteger {\n const result = this.clone();\n result.addToSelf(other);\n return result;\n }\n\n /**\n * Adds `other` to the instance itself, thereby mutating its value.\n */\n addToSelf(other: BigInteger): void {\n const maxNrOfDigits = Math.max(this.digits.length, other.digits.length);\n let carry = 0;\n for (let i = 0; i < maxNrOfDigits; i++) {\n let digitSum = carry;\n if (i < this.digits.length) {\n digitSum += this.digits[i];\n }\n if (i < other.digits.length) {\n digitSum += other.digits[i];\n }\n\n if (digitSum >= 10) {\n this.digits[i] = digitSum - 10;\n carry = 1;\n } else {\n this.digits[i] = digitSum;\n carry = 0;\n }\n }\n\n // Apply a remaining carry if needed.\n if (carry > 0) {\n this.digits[maxNrOfDigits] = 1;\n }\n }\n\n /**\n * Builds the decimal string representation of the big integer. As this is stored in\n * little endian, the digits are concatenated in reverse order.\n */\n toString(): string {\n let res = '';\n for (let i = this.digits.length - 1; i >= 0; i--) {\n res += this.digits[i];\n }\n return res;\n }\n}\n\n/**\n * Represents a big integer which is optimized for multiplication operations, as its power-of-twos\n * are memoized. See `multiplyBy()` for details on the multiplication algorithm.\n */\nexport class BigIntForMultiplication {\n /**\n * Stores all memoized power-of-twos, where each index represents `this.number * 2^index`.\n */\n private readonly powerOfTwos: BigInteger[];\n\n constructor(value: BigInteger) {\n this.powerOfTwos = [value];\n }\n\n /**\n * Returns the big integer itself.\n */\n getValue(): BigInteger {\n return this.powerOfTwos[0];\n }\n\n /**\n * Computes the value for `num * b`, where `num` is a JS number and `b` is a big integer. The\n * value for `b` is represented by a storage model that is optimized for this computation.\n *\n * This operation is implemented in N(log2(num)) by continuous halving of the number, where the\n * least-significant bit (LSB) is tested in each iteration. If the bit is set, the bit's index is\n * used as exponent into the power-of-two multiplication of `b`.\n *\n * As an example, consider the multiplication num=42, b=1337. In binary 42 is 0b00101010 and the\n * algorithm unrolls into the following iterations:\n *\n * Iteration | num | LSB | b * 2^iter | Add? | product\n * -----------|------------|------|------------|------|--------\n * 0 | 0b00101010 | 0 | 1337 | No | 0\n * 1 | 0b00010101 | 1 | 2674 | Yes | 2674\n * 2 | 0b00001010 | 0 | 5348 | No | 2674\n * 3 | 0b00000101 | 1 | 10696 | Yes | 13370\n * 4 | 0b00000010 | 0 | 21392 | No | 13370\n * 5 | 0b00000001 | 1 | 42784 | Yes | 56154\n * 6 | 0b00000000 | 0 | 85568 | No | 56154\n *\n * The computed product of 56154 is indeed the correct result.\n *\n * The `BigIntForMultiplication` representation for a big integer provides memoized access to the\n * power-of-two values to reduce the workload in computing those values.\n */\n multiplyBy(num: number): BigInteger {\n const product = BigInteger.zero();\n this.multiplyByAndAddTo(num, product);\n return product;\n }\n\n /**\n * See `multiplyBy()` for details. This function allows for the computed product to be added\n * directly to the provided result big integer.\n */\n multiplyByAndAddTo(num: number, result: BigInteger): void {\n for (let exponent = 0; num !== 0; num = num >>> 1, exponent++) {\n if (num & 1) {\n const value = this.getMultipliedByPowerOfTwo(exponent);\n result.addToSelf(value);\n }\n }\n }\n\n /**\n * Computes and memoizes the big integer value for `this.number * 2^exponent`.\n */\n private getMultipliedByPowerOfTwo(exponent: number): BigInteger {\n // Compute the powers up until the requested exponent, where each value is computed from its\n // predecessor. This is simple as `this.number * 2^(exponent - 1)` only has to be doubled (i.e.\n // added to itself) to reach `this.number * 2^exponent`.\n for (let i = this.powerOfTwos.length; i <= exponent; i++) {\n const previousPower = this.powerOfTwos[i - 1];\n this.powerOfTwos[i] = previousPower.add(previousPower);\n }\n return this.powerOfTwos[exponent];\n }\n}\n\n/**\n * Represents an exponentiation operation for the provided base, of which exponents are computed and\n * memoized. The results are represented by a `BigIntForMultiplication` which is tailored for\n * multiplication operations by memoizing the power-of-twos. This effectively results in a matrix\n * representation that is lazily computed upon request.\n */\nexport class BigIntExponentiation {\n private readonly exponents = [new BigIntForMultiplication(BigInteger.one())];\n\n constructor(private readonly base: number) {}\n\n /**\n * Compute the value for `this.base^exponent`, resulting in a big integer that is optimized for\n * further multiplication operations.\n */\n toThePowerOf(exponent: number): BigIntForMultiplication {\n // Compute the results up until the requested exponent, where every value is computed from its\n // predecessor. This is because `this.base^(exponent - 1)` only has to be multiplied by `base`\n // to reach `this.base^exponent`.\n for (let i = this.exponents.length; i <= exponent; i++) {\n const value = this.exponents[i - 1].multiplyBy(this.base);\n this.exponents[i] = new BigIntForMultiplication(value);\n }\n return this.exponents[exponent];\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\nimport {Byte, newArray, utf8Encode} from '../util';\nimport {BigIntExponentiation} from './big_integer';\n\nimport * as i18n from './i18n_ast';\n\n/**\n * Return the message id or compute it using the XLIFF1 digest.\n */\nexport function digest(message: i18n.Message): string {\n return message.id || computeDigest(message);\n}\n\n/**\n * Compute the message id using the XLIFF1 digest.\n */\nexport function computeDigest(message: i18n.Message): string {\n return sha1(serializeNodes(message.nodes).join('') + `[${message.meaning}]`);\n}\n\n/**\n * Return the message id or compute it using the XLIFF2/XMB/$localize digest.\n */\nexport function decimalDigest(message: i18n.Message): string {\n return message.id || computeDecimalDigest(message);\n}\n\n/**\n * Compute the message id using the XLIFF2/XMB/$localize digest.\n */\nexport function computeDecimalDigest(message: i18n.Message): string {\n const visitor = new _SerializerIgnoreIcuExpVisitor();\n const parts = message.nodes.map(a => a.visit(visitor, null));\n return computeMsgId(parts.join(''), message.meaning);\n}\n\n/**\n * Serialize the i18n ast to something xml-like in order to generate an UID.\n *\n * The visitor is also used in the i18n parser tests\n *\n * @internal\n */\nclass _SerializerVisitor implements i18n.Visitor {\n visitText(text: i18n.Text, context: any): any {\n return text.value;\n }\n\n visitContainer(container: i18n.Container, context: any): any {\n return `[${container.children.map(child => child.visit(this)).join(', ')}]`;\n }\n\n visitIcu(icu: i18n.Icu, context: any): any {\n const strCases =\n Object.keys(icu.cases).map((k: string) => `${k} {${icu.cases[k].visit(this)}}`);\n return `{${icu.expression}, ${icu.type}, ${strCases.join(', ')}}`;\n }\n\n visitTagPlaceholder(ph: i18n.TagPlaceholder, context: any): any {\n return ph.isVoid ?\n `` :\n `${\n ph.children.map(child => child.visit(this)).join(', ')}`;\n }\n\n visitPlaceholder(ph: i18n.Placeholder, context: any): any {\n return ph.value ? `${ph.value}` : ``;\n }\n\n visitIcuPlaceholder(ph: i18n.IcuPlaceholder, context?: any): any {\n return `${ph.value.visit(this)}`;\n }\n}\n\nconst serializerVisitor = new _SerializerVisitor();\n\nexport function serializeNodes(nodes: i18n.Node[]): string[] {\n return nodes.map(a => a.visit(serializerVisitor, null));\n}\n\n/**\n * Serialize the i18n ast to something xml-like in order to generate an UID.\n *\n * Ignore the ICU expressions so that message IDs stays identical if only the expression changes.\n *\n * @internal\n */\nclass _SerializerIgnoreIcuExpVisitor extends _SerializerVisitor {\n override visitIcu(icu: i18n.Icu, context: any): any {\n let strCases = Object.keys(icu.cases).map((k: string) => `${k} {${icu.cases[k].visit(this)}}`);\n // Do not take the expression into account\n return `{${icu.type}, ${strCases.join(', ')}}`;\n }\n}\n\n/**\n * Compute the SHA1 of the given string\n *\n * see https://csrc.nist.gov/publications/fips/fips180-4/fips-180-4.pdf\n *\n * WARNING: this function has not been designed not tested with security in mind.\n * DO NOT USE IT IN A SECURITY SENSITIVE CONTEXT.\n */\nexport function sha1(str: string): string {\n const utf8 = utf8Encode(str);\n const words32 = bytesToWords32(utf8, Endian.Big);\n const len = utf8.length * 8;\n\n const w = newArray(80);\n let a = 0x67452301, b = 0xefcdab89, c = 0x98badcfe, d = 0x10325476, e = 0xc3d2e1f0;\n\n words32[len >> 5] |= 0x80 << (24 - len % 32);\n words32[((len + 64 >> 9) << 4) + 15] = len;\n\n for (let i = 0; i < words32.length; i += 16) {\n const h0 = a, h1 = b, h2 = c, h3 = d, h4 = e;\n\n for (let j = 0; j < 80; j++) {\n if (j < 16) {\n w[j] = words32[i + j];\n } else {\n w[j] = rol32(w[j - 3] ^ w[j - 8] ^ w[j - 14] ^ w[j - 16], 1);\n }\n\n const fkVal = fk(j, b, c, d);\n const f = fkVal[0];\n const k = fkVal[1];\n const temp = [rol32(a, 5), f, e, k, w[j]].reduce(add32);\n e = d;\n d = c;\n c = rol32(b, 30);\n b = a;\n a = temp;\n }\n a = add32(a, h0);\n b = add32(b, h1);\n c = add32(c, h2);\n d = add32(d, h3);\n e = add32(e, h4);\n }\n\n return bytesToHexString(words32ToByteString([a, b, c, d, e]));\n}\n\nfunction fk(index: number, b: number, c: number, d: number): [number, number] {\n if (index < 20) {\n return [(b & c) | (~b & d), 0x5a827999];\n }\n\n if (index < 40) {\n return [b ^ c ^ d, 0x6ed9eba1];\n }\n\n if (index < 60) {\n return [(b & c) | (b & d) | (c & d), 0x8f1bbcdc];\n }\n\n return [b ^ c ^ d, 0xca62c1d6];\n}\n\n/**\n * Compute the fingerprint of the given string\n *\n * The output is 64 bit number encoded as a decimal string\n *\n * based on:\n * https://github.com/google/closure-compiler/blob/master/src/com/google/javascript/jscomp/GoogleJsMessageIdGenerator.java\n */\nexport function fingerprint(str: string): [number, number] {\n const utf8 = utf8Encode(str);\n\n let hi = hash32(utf8, 0);\n let lo = hash32(utf8, 102072);\n\n if (hi == 0 && (lo == 0 || lo == 1)) {\n hi = hi ^ 0x130f9bef;\n lo = lo ^ -0x6b5f56d8;\n }\n\n return [hi, lo];\n}\n\nexport function computeMsgId(msg: string, meaning: string = ''): string {\n let msgFingerprint = fingerprint(msg);\n\n if (meaning) {\n const meaningFingerprint = fingerprint(meaning);\n msgFingerprint = add64(rol64(msgFingerprint, 1), meaningFingerprint);\n }\n\n const hi = msgFingerprint[0];\n const lo = msgFingerprint[1];\n\n return wordsToDecimalString(hi & 0x7fffffff, lo);\n}\n\nfunction hash32(bytes: Byte[], c: number): number {\n let a = 0x9e3779b9, b = 0x9e3779b9;\n let i: number;\n\n const len = bytes.length;\n\n for (i = 0; i + 12 <= len; i += 12) {\n a = add32(a, wordAt(bytes, i, Endian.Little));\n b = add32(b, wordAt(bytes, i + 4, Endian.Little));\n c = add32(c, wordAt(bytes, i + 8, Endian.Little));\n const res = mix(a, b, c);\n a = res[0], b = res[1], c = res[2];\n }\n\n a = add32(a, wordAt(bytes, i, Endian.Little));\n b = add32(b, wordAt(bytes, i + 4, Endian.Little));\n // the first byte of c is reserved for the length\n c = add32(c, len);\n c = add32(c, wordAt(bytes, i + 8, Endian.Little) << 8);\n\n return mix(a, b, c)[2];\n}\n\n// clang-format off\nfunction mix(a: number, b: number, c: number): [number, number, number] {\n a = sub32(a, b); a = sub32(a, c); a ^= c >>> 13;\n b = sub32(b, c); b = sub32(b, a); b ^= a << 8;\n c = sub32(c, a); c = sub32(c, b); c ^= b >>> 13;\n a = sub32(a, b); a = sub32(a, c); a ^= c >>> 12;\n b = sub32(b, c); b = sub32(b, a); b ^= a << 16;\n c = sub32(c, a); c = sub32(c, b); c ^= b >>> 5;\n a = sub32(a, b); a = sub32(a, c); a ^= c >>> 3;\n b = sub32(b, c); b = sub32(b, a); b ^= a << 10;\n c = sub32(c, a); c = sub32(c, b); c ^= b >>> 15;\n return [a, b, c];\n}\n// clang-format on\n\n// Utils\n\nenum Endian {\n Little,\n Big,\n}\n\nfunction add32(a: number, b: number): number {\n return add32to64(a, b)[1];\n}\n\nfunction add32to64(a: number, b: number): [number, number] {\n const low = (a & 0xffff) + (b & 0xffff);\n const high = (a >>> 16) + (b >>> 16) + (low >>> 16);\n return [high >>> 16, (high << 16) | (low & 0xffff)];\n}\n\nfunction add64(a: [number, number], b: [number, number]): [number, number] {\n const ah = a[0], al = a[1];\n const bh = b[0], bl = b[1];\n const result = add32to64(al, bl);\n const carry = result[0];\n const l = result[1];\n const h = add32(add32(ah, bh), carry);\n return [h, l];\n}\n\nfunction sub32(a: number, b: number): number {\n const low = (a & 0xffff) - (b & 0xffff);\n const high = (a >> 16) - (b >> 16) + (low >> 16);\n return (high << 16) | (low & 0xffff);\n}\n\n// Rotate a 32b number left `count` position\nfunction rol32(a: number, count: number): number {\n return (a << count) | (a >>> (32 - count));\n}\n\n// Rotate a 64b number left `count` position\nfunction rol64(num: [number, number], count: number): [number, number] {\n const hi = num[0], lo = num[1];\n const h = (hi << count) | (lo >>> (32 - count));\n const l = (lo << count) | (hi >>> (32 - count));\n return [h, l];\n}\n\nfunction bytesToWords32(bytes: Byte[], endian: Endian): number[] {\n const size = (bytes.length + 3) >>> 2;\n const words32 = [];\n\n for (let i = 0; i < size; i++) {\n words32[i] = wordAt(bytes, i * 4, endian);\n }\n\n return words32;\n}\n\nfunction byteAt(bytes: Byte[], index: number): Byte {\n return index >= bytes.length ? 0 : bytes[index];\n}\n\nfunction wordAt(bytes: Byte[], index: number, endian: Endian): number {\n let word = 0;\n if (endian === Endian.Big) {\n for (let i = 0; i < 4; i++) {\n word += byteAt(bytes, index + i) << (24 - 8 * i);\n }\n } else {\n for (let i = 0; i < 4; i++) {\n word += byteAt(bytes, index + i) << 8 * i;\n }\n }\n return word;\n}\n\nfunction words32ToByteString(words32: number[]): Byte[] {\n return words32.reduce((bytes, word) => bytes.concat(word32ToByteString(word)), [] as Byte[]);\n}\n\nfunction word32ToByteString(word: number): Byte[] {\n let bytes: Byte[] = [];\n for (let i = 0; i < 4; i++) {\n bytes.push((word >>> 8 * (3 - i)) & 0xff);\n }\n return bytes;\n}\n\nfunction bytesToHexString(bytes: Byte[]): string {\n let hex: string = '';\n for (let i = 0; i < bytes.length; i++) {\n const b = byteAt(bytes, i);\n hex += (b >>> 4).toString(16) + (b & 0x0f).toString(16);\n }\n return hex.toLowerCase();\n}\n\n/**\n * Create a shared exponentiation pool for base-256 computations. This shared pool provides memoized\n * power-of-256 results with memoized power-of-two computations for efficient multiplication.\n *\n * For our purposes, this can be safely stored as a global without memory concerns. The reason is\n * that we encode two words, so only need the 0th (for the low word) and 4th (for the high word)\n * exponent.\n */\nconst base256 = new BigIntExponentiation(256);\n\n/**\n * Represents two 32-bit words as a single decimal number. This requires a big integer storage\n * model as JS numbers are not accurate enough to represent the 64-bit number.\n *\n * Based on https://www.danvk.org/hex2dec.html\n */\nfunction wordsToDecimalString(hi: number, lo: number): string {\n // Encode the four bytes in lo in the lower digits of the decimal number.\n // Note: the multiplication results in lo itself but represented by a big integer using its\n // decimal digits.\n const decimal = base256.toThePowerOf(0).multiplyBy(lo);\n\n // Encode the four bytes in hi above the four lo bytes. lo is a maximum of (2^8)^4, which is why\n // this multiplication factor is applied.\n base256.toThePowerOf(4).multiplyByAndAddTo(hi, decimal);\n\n return decimal.toString();\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\nimport {computeMsgId} from '../i18n/digest';\nimport {Message} from '../i18n/i18n_ast';\nimport {ParseSourceSpan} from '../parse_util';\nimport {I18nMeta} from '../render3/view/i18n/meta';\n\n//// Types\nexport enum TypeModifier {\n None = 0,\n Const = 1 << 0,\n}\n\nexport abstract class Type {\n constructor(public modifiers: TypeModifier = TypeModifier.None) {}\n abstract visitType(visitor: TypeVisitor, context: any): any;\n\n hasModifier(modifier: TypeModifier): boolean {\n return (this.modifiers & modifier) !== 0;\n }\n}\n\nexport enum BuiltinTypeName {\n Dynamic,\n Bool,\n String,\n Int,\n Number,\n Function,\n Inferred,\n None,\n}\n\nexport class BuiltinType extends Type {\n constructor(public name: BuiltinTypeName, modifiers?: TypeModifier) {\n super(modifiers);\n }\n override visitType(visitor: TypeVisitor, context: any): any {\n return visitor.visitBuiltinType(this, context);\n }\n}\n\nexport class ExpressionType extends Type {\n constructor(\n public value: Expression, modifiers?: TypeModifier, public typeParams: Type[]|null = null) {\n super(modifiers);\n }\n override visitType(visitor: TypeVisitor, context: any): any {\n return visitor.visitExpressionType(this, context);\n }\n}\n\n\nexport class ArrayType extends Type {\n constructor(public of: Type, modifiers?: TypeModifier) {\n super(modifiers);\n }\n override visitType(visitor: TypeVisitor, context: any): any {\n return visitor.visitArrayType(this, context);\n }\n}\n\n\nexport class MapType extends Type {\n public valueType: Type|null;\n constructor(valueType: Type|null|undefined, modifiers?: TypeModifier) {\n super(modifiers);\n this.valueType = valueType || null;\n }\n override visitType(visitor: TypeVisitor, context: any): any {\n return visitor.visitMapType(this, context);\n }\n}\n\nexport const DYNAMIC_TYPE = new BuiltinType(BuiltinTypeName.Dynamic);\nexport const INFERRED_TYPE = new BuiltinType(BuiltinTypeName.Inferred);\nexport const BOOL_TYPE = new BuiltinType(BuiltinTypeName.Bool);\nexport const INT_TYPE = new BuiltinType(BuiltinTypeName.Int);\nexport const NUMBER_TYPE = new BuiltinType(BuiltinTypeName.Number);\nexport const STRING_TYPE = new BuiltinType(BuiltinTypeName.String);\nexport const FUNCTION_TYPE = new BuiltinType(BuiltinTypeName.Function);\nexport const NONE_TYPE = new BuiltinType(BuiltinTypeName.None);\n\nexport interface TypeVisitor {\n visitBuiltinType(type: BuiltinType, context: any): any;\n visitExpressionType(type: ExpressionType, context: any): any;\n visitArrayType(type: ArrayType, context: any): any;\n visitMapType(type: MapType, context: any): any;\n}\n\n///// Expressions\n\nexport enum UnaryOperator {\n Minus,\n Plus,\n}\n\nexport enum BinaryOperator {\n Equals,\n NotEquals,\n Identical,\n NotIdentical,\n Minus,\n Plus,\n Divide,\n Multiply,\n Modulo,\n And,\n Or,\n BitwiseAnd,\n Lower,\n LowerEquals,\n Bigger,\n BiggerEquals,\n NullishCoalesce,\n}\n\nexport function nullSafeIsEquivalent(\n base: T|null, other: T|null) {\n if (base == null || other == null) {\n return base == other;\n }\n return base.isEquivalent(other);\n}\n\nfunction areAllEquivalentPredicate(\n base: T[], other: T[], equivalentPredicate: (baseElement: T, otherElement: T) => boolean) {\n const len = base.length;\n if (len !== other.length) {\n return false;\n }\n for (let i = 0; i < len; i++) {\n if (!equivalentPredicate(base[i], other[i])) {\n return false;\n }\n }\n return true;\n}\n\nexport function areAllEquivalent(\n base: T[], other: T[]) {\n return areAllEquivalentPredicate(\n base, other, (baseElement: T, otherElement: T) => baseElement.isEquivalent(otherElement));\n}\n\nexport abstract class Expression {\n public type: Type|null;\n public sourceSpan: ParseSourceSpan|null;\n\n constructor(type: Type|null|undefined, sourceSpan?: ParseSourceSpan|null) {\n this.type = type || null;\n this.sourceSpan = sourceSpan || null;\n }\n\n abstract visitExpression(visitor: ExpressionVisitor, context: any): any;\n\n /**\n * Calculates whether this expression produces the same value as the given expression.\n * Note: We don't check Types nor ParseSourceSpans nor function arguments.\n */\n abstract isEquivalent(e: Expression): boolean;\n\n /**\n * Return true if the expression is constant.\n */\n abstract isConstant(): boolean;\n\n prop(name: string, sourceSpan?: ParseSourceSpan|null): ReadPropExpr {\n return new ReadPropExpr(this, name, null, sourceSpan);\n }\n\n key(index: Expression, type?: Type|null, sourceSpan?: ParseSourceSpan|null): ReadKeyExpr {\n return new ReadKeyExpr(this, index, type, sourceSpan);\n }\n\n callFn(params: Expression[], sourceSpan?: ParseSourceSpan|null, pure?: boolean):\n InvokeFunctionExpr {\n return new InvokeFunctionExpr(this, params, null, sourceSpan, pure);\n }\n\n instantiate(params: Expression[], type?: Type|null, sourceSpan?: ParseSourceSpan|null):\n InstantiateExpr {\n return new InstantiateExpr(this, params, type, sourceSpan);\n }\n\n conditional(\n trueCase: Expression, falseCase: Expression|null = null,\n sourceSpan?: ParseSourceSpan|null): ConditionalExpr {\n return new ConditionalExpr(this, trueCase, falseCase, null, sourceSpan);\n }\n\n equals(rhs: Expression, sourceSpan?: ParseSourceSpan|null): BinaryOperatorExpr {\n return new BinaryOperatorExpr(BinaryOperator.Equals, this, rhs, null, sourceSpan);\n }\n notEquals(rhs: Expression, sourceSpan?: ParseSourceSpan|null): BinaryOperatorExpr {\n return new BinaryOperatorExpr(BinaryOperator.NotEquals, this, rhs, null, sourceSpan);\n }\n identical(rhs: Expression, sourceSpan?: ParseSourceSpan|null): BinaryOperatorExpr {\n return new BinaryOperatorExpr(BinaryOperator.Identical, this, rhs, null, sourceSpan);\n }\n notIdentical(rhs: Expression, sourceSpan?: ParseSourceSpan|null): BinaryOperatorExpr {\n return new BinaryOperatorExpr(BinaryOperator.NotIdentical, this, rhs, null, sourceSpan);\n }\n minus(rhs: Expression, sourceSpan?: ParseSourceSpan|null): BinaryOperatorExpr {\n return new BinaryOperatorExpr(BinaryOperator.Minus, this, rhs, null, sourceSpan);\n }\n plus(rhs: Expression, sourceSpan?: ParseSourceSpan|null): BinaryOperatorExpr {\n return new BinaryOperatorExpr(BinaryOperator.Plus, this, rhs, null, sourceSpan);\n }\n divide(rhs: Expression, sourceSpan?: ParseSourceSpan|null): BinaryOperatorExpr {\n return new BinaryOperatorExpr(BinaryOperator.Divide, this, rhs, null, sourceSpan);\n }\n multiply(rhs: Expression, sourceSpan?: ParseSourceSpan|null): BinaryOperatorExpr {\n return new BinaryOperatorExpr(BinaryOperator.Multiply, this, rhs, null, sourceSpan);\n }\n modulo(rhs: Expression, sourceSpan?: ParseSourceSpan|null): BinaryOperatorExpr {\n return new BinaryOperatorExpr(BinaryOperator.Modulo, this, rhs, null, sourceSpan);\n }\n and(rhs: Expression, sourceSpan?: ParseSourceSpan|null): BinaryOperatorExpr {\n return new BinaryOperatorExpr(BinaryOperator.And, this, rhs, null, sourceSpan);\n }\n bitwiseAnd(rhs: Expression, sourceSpan?: ParseSourceSpan|null, parens: boolean = true):\n BinaryOperatorExpr {\n return new BinaryOperatorExpr(BinaryOperator.BitwiseAnd, this, rhs, null, sourceSpan, parens);\n }\n or(rhs: Expression, sourceSpan?: ParseSourceSpan|null): BinaryOperatorExpr {\n return new BinaryOperatorExpr(BinaryOperator.Or, this, rhs, null, sourceSpan);\n }\n lower(rhs: Expression, sourceSpan?: ParseSourceSpan|null): BinaryOperatorExpr {\n return new BinaryOperatorExpr(BinaryOperator.Lower, this, rhs, null, sourceSpan);\n }\n lowerEquals(rhs: Expression, sourceSpan?: ParseSourceSpan|null): BinaryOperatorExpr {\n return new BinaryOperatorExpr(BinaryOperator.LowerEquals, this, rhs, null, sourceSpan);\n }\n bigger(rhs: Expression, sourceSpan?: ParseSourceSpan|null): BinaryOperatorExpr {\n return new BinaryOperatorExpr(BinaryOperator.Bigger, this, rhs, null, sourceSpan);\n }\n biggerEquals(rhs: Expression, sourceSpan?: ParseSourceSpan|null): BinaryOperatorExpr {\n return new BinaryOperatorExpr(BinaryOperator.BiggerEquals, this, rhs, null, sourceSpan);\n }\n isBlank(sourceSpan?: ParseSourceSpan|null): Expression {\n // Note: We use equals by purpose here to compare to null and undefined in JS.\n // We use the typed null to allow strictNullChecks to narrow types.\n return this.equals(TYPED_NULL_EXPR, sourceSpan);\n }\n nullishCoalesce(rhs: Expression, sourceSpan?: ParseSourceSpan|null): BinaryOperatorExpr {\n return new BinaryOperatorExpr(BinaryOperator.NullishCoalesce, this, rhs, null, sourceSpan);\n }\n\n toStmt(): Statement {\n return new ExpressionStatement(this, null);\n }\n}\n\nexport class ReadVarExpr extends Expression {\n constructor(public name: string, type?: Type|null, sourceSpan?: ParseSourceSpan|null) {\n super(type, sourceSpan);\n }\n\n override isEquivalent(e: Expression): boolean {\n return e instanceof ReadVarExpr && this.name === e.name;\n }\n\n override isConstant() {\n return false;\n }\n\n override visitExpression(visitor: ExpressionVisitor, context: any): any {\n return visitor.visitReadVarExpr(this, context);\n }\n\n set(value: Expression): WriteVarExpr {\n return new WriteVarExpr(this.name, value, null, this.sourceSpan);\n }\n}\n\nexport class TypeofExpr extends Expression {\n constructor(public expr: Expression, type?: Type|null, sourceSpan?: ParseSourceSpan|null) {\n super(type, sourceSpan);\n }\n\n override visitExpression(visitor: ExpressionVisitor, context: any) {\n return visitor.visitTypeofExpr(this, context);\n }\n\n override isEquivalent(e: Expression): boolean {\n return e instanceof TypeofExpr && e.expr.isEquivalent(this.expr);\n }\n\n override isConstant(): boolean {\n return this.expr.isConstant();\n }\n}\n\nexport class WrappedNodeExpr extends Expression {\n constructor(public node: T, type?: Type|null, sourceSpan?: ParseSourceSpan|null) {\n super(type, sourceSpan);\n }\n\n override isEquivalent(e: Expression): boolean {\n return e instanceof WrappedNodeExpr && this.node === e.node;\n }\n\n override isConstant() {\n return false;\n }\n\n override visitExpression(visitor: ExpressionVisitor, context: any): any {\n return visitor.visitWrappedNodeExpr(this, context);\n }\n}\n\nexport class WriteVarExpr extends Expression {\n public value: Expression;\n constructor(\n public name: string, value: Expression, type?: Type|null, sourceSpan?: ParseSourceSpan|null) {\n super(type || value.type, sourceSpan);\n this.value = value;\n }\n\n override isEquivalent(e: Expression): boolean {\n return e instanceof WriteVarExpr && this.name === e.name && this.value.isEquivalent(e.value);\n }\n\n override isConstant() {\n return false;\n }\n\n override visitExpression(visitor: ExpressionVisitor, context: any): any {\n return visitor.visitWriteVarExpr(this, context);\n }\n\n toDeclStmt(type?: Type|null, modifiers?: StmtModifier): DeclareVarStmt {\n return new DeclareVarStmt(this.name, this.value, type, modifiers, this.sourceSpan);\n }\n\n toConstDecl(): DeclareVarStmt {\n return this.toDeclStmt(INFERRED_TYPE, StmtModifier.Final);\n }\n}\n\n\nexport class WriteKeyExpr extends Expression {\n public value: Expression;\n constructor(\n public receiver: Expression, public index: Expression, value: Expression, type?: Type|null,\n sourceSpan?: ParseSourceSpan|null) {\n super(type || value.type, sourceSpan);\n this.value = value;\n }\n\n override isEquivalent(e: Expression): boolean {\n return e instanceof WriteKeyExpr && this.receiver.isEquivalent(e.receiver) &&\n this.index.isEquivalent(e.index) && this.value.isEquivalent(e.value);\n }\n\n override isConstant() {\n return false;\n }\n\n override visitExpression(visitor: ExpressionVisitor, context: any): any {\n return visitor.visitWriteKeyExpr(this, context);\n }\n}\n\n\nexport class WritePropExpr extends Expression {\n public value: Expression;\n constructor(\n public receiver: Expression, public name: string, value: Expression, type?: Type|null,\n sourceSpan?: ParseSourceSpan|null) {\n super(type || value.type, sourceSpan);\n this.value = value;\n }\n\n override isEquivalent(e: Expression): boolean {\n return e instanceof WritePropExpr && this.receiver.isEquivalent(e.receiver) &&\n this.name === e.name && this.value.isEquivalent(e.value);\n }\n\n override isConstant() {\n return false;\n }\n\n override visitExpression(visitor: ExpressionVisitor, context: any): any {\n return visitor.visitWritePropExpr(this, context);\n }\n}\n\nexport class InvokeFunctionExpr extends Expression {\n constructor(\n public fn: Expression, public args: Expression[], type?: Type|null,\n sourceSpan?: ParseSourceSpan|null, public pure = false) {\n super(type, sourceSpan);\n }\n\n override isEquivalent(e: Expression): boolean {\n return e instanceof InvokeFunctionExpr && this.fn.isEquivalent(e.fn) &&\n areAllEquivalent(this.args, e.args) && this.pure === e.pure;\n }\n\n override isConstant() {\n return false;\n }\n\n override visitExpression(visitor: ExpressionVisitor, context: any): any {\n return visitor.visitInvokeFunctionExpr(this, context);\n }\n}\n\n\nexport class TaggedTemplateExpr extends Expression {\n constructor(\n public tag: Expression, public template: TemplateLiteral, type?: Type|null,\n sourceSpan?: ParseSourceSpan|null) {\n super(type, sourceSpan);\n }\n\n override isEquivalent(e: Expression): boolean {\n return e instanceof TaggedTemplateExpr && this.tag.isEquivalent(e.tag) &&\n areAllEquivalentPredicate(\n this.template.elements, e.template.elements, (a, b) => a.text === b.text) &&\n areAllEquivalent(this.template.expressions, e.template.expressions);\n }\n\n override isConstant() {\n return false;\n }\n\n override visitExpression(visitor: ExpressionVisitor, context: any): any {\n return visitor.visitTaggedTemplateExpr(this, context);\n }\n}\n\n\nexport class InstantiateExpr extends Expression {\n constructor(\n public classExpr: Expression, public args: Expression[], type?: Type|null,\n sourceSpan?: ParseSourceSpan|null) {\n super(type, sourceSpan);\n }\n\n override isEquivalent(e: Expression): boolean {\n return e instanceof InstantiateExpr && this.classExpr.isEquivalent(e.classExpr) &&\n areAllEquivalent(this.args, e.args);\n }\n\n override isConstant() {\n return false;\n }\n\n override visitExpression(visitor: ExpressionVisitor, context: any): any {\n return visitor.visitInstantiateExpr(this, context);\n }\n}\n\n\nexport class LiteralExpr extends Expression {\n constructor(\n public value: number|string|boolean|null|undefined, type?: Type|null,\n sourceSpan?: ParseSourceSpan|null) {\n super(type, sourceSpan);\n }\n\n override isEquivalent(e: Expression): boolean {\n return e instanceof LiteralExpr && this.value === e.value;\n }\n\n override isConstant() {\n return true;\n }\n\n override visitExpression(visitor: ExpressionVisitor, context: any): any {\n return visitor.visitLiteralExpr(this, context);\n }\n}\n\nexport class TemplateLiteral {\n constructor(public elements: TemplateLiteralElement[], public expressions: Expression[]) {}\n}\nexport class TemplateLiteralElement {\n rawText: string;\n constructor(public text: string, public sourceSpan?: ParseSourceSpan, rawText?: string) {\n // If `rawText` is not provided, try to extract the raw string from its\n // associated `sourceSpan`. If that is also not available, \"fake\" the raw\n // string instead by escaping the following control sequences:\n // - \"\\\" would otherwise indicate that the next character is a control character.\n // - \"`\" and \"${\" are template string control sequences that would otherwise prematurely\n // indicate the end of the template literal element.\n this.rawText =\n rawText ?? sourceSpan?.toString() ?? escapeForTemplateLiteral(escapeSlashes(text));\n }\n}\n\nexport class LiteralPiece {\n constructor(public text: string, public sourceSpan: ParseSourceSpan) {}\n}\nexport class PlaceholderPiece {\n /**\n * Create a new instance of a `PlaceholderPiece`.\n *\n * @param text the name of this placeholder (e.g. `PH_1`).\n * @param sourceSpan the location of this placeholder in its localized message the source code.\n * @param associatedMessage reference to another message that this placeholder is associated with.\n * The `associatedMessage` is mainly used to provide a relationship to an ICU message that has\n * been extracted out from the message containing the placeholder.\n */\n constructor(\n public text: string, public sourceSpan: ParseSourceSpan, public associatedMessage?: Message) {\n }\n}\n\nexport type MessagePiece = LiteralPiece|PlaceholderPiece;\n\nconst MEANING_SEPARATOR = '|';\nconst ID_SEPARATOR = '@@';\nconst LEGACY_ID_INDICATOR = '␟';\n\nexport class LocalizedString extends Expression {\n constructor(\n readonly metaBlock: I18nMeta, readonly messageParts: LiteralPiece[],\n readonly placeHolderNames: PlaceholderPiece[], readonly expressions: Expression[],\n sourceSpan?: ParseSourceSpan|null) {\n super(STRING_TYPE, sourceSpan);\n }\n\n override isEquivalent(e: Expression): boolean {\n // return e instanceof LocalizedString && this.message === e.message;\n return false;\n }\n\n override isConstant() {\n return false;\n }\n\n override visitExpression(visitor: ExpressionVisitor, context: any): any {\n return visitor.visitLocalizedString(this, context);\n }\n\n /**\n * Serialize the given `meta` and `messagePart` into \"cooked\" and \"raw\" strings that can be used\n * in a `$localize` tagged string. The format of the metadata is the same as that parsed by\n * `parseI18nMeta()`.\n *\n * @param meta The metadata to serialize\n * @param messagePart The first part of the tagged string\n */\n serializeI18nHead(): CookedRawString {\n let metaBlock = this.metaBlock.description || '';\n if (this.metaBlock.meaning) {\n metaBlock = `${this.metaBlock.meaning}${MEANING_SEPARATOR}${metaBlock}`;\n }\n if (this.metaBlock.customId) {\n metaBlock = `${metaBlock}${ID_SEPARATOR}${this.metaBlock.customId}`;\n }\n if (this.metaBlock.legacyIds) {\n this.metaBlock.legacyIds.forEach(legacyId => {\n metaBlock = `${metaBlock}${LEGACY_ID_INDICATOR}${legacyId}`;\n });\n }\n return createCookedRawString(\n metaBlock, this.messageParts[0].text, this.getMessagePartSourceSpan(0));\n }\n\n getMessagePartSourceSpan(i: number): ParseSourceSpan|null {\n return this.messageParts[i]?.sourceSpan ?? this.sourceSpan;\n }\n\n getPlaceholderSourceSpan(i: number): ParseSourceSpan {\n return this.placeHolderNames[i]?.sourceSpan ?? this.expressions[i]?.sourceSpan ??\n this.sourceSpan;\n }\n\n /**\n * Serialize the given `placeholderName` and `messagePart` into \"cooked\" and \"raw\" strings that\n * can be used in a `$localize` tagged string.\n *\n * The format is `:[@@]:`.\n *\n * The `associated-id` is the message id of the (usually an ICU) message to which this placeholder\n * refers.\n *\n * @param partIndex The index of the message part to serialize.\n */\n serializeI18nTemplatePart(partIndex: number): CookedRawString {\n const placeholder = this.placeHolderNames[partIndex - 1];\n const messagePart = this.messageParts[partIndex];\n let metaBlock = placeholder.text;\n if (placeholder.associatedMessage?.legacyIds.length === 0) {\n metaBlock += `${ID_SEPARATOR}${\n computeMsgId(\n placeholder.associatedMessage.messageString, placeholder.associatedMessage.meaning)}`;\n }\n return createCookedRawString(\n metaBlock, messagePart.text, this.getMessagePartSourceSpan(partIndex));\n }\n}\n\n/**\n * A structure to hold the cooked and raw strings of a template literal element, along with its\n * source-span range.\n */\nexport interface CookedRawString {\n cooked: string;\n raw: string;\n range: ParseSourceSpan|null;\n}\n\nconst escapeSlashes = (str: string): string => str.replace(/\\\\/g, '\\\\\\\\');\nconst escapeStartingColon = (str: string): string => str.replace(/^:/, '\\\\:');\nconst escapeColons = (str: string): string => str.replace(/:/g, '\\\\:');\nconst escapeForTemplateLiteral = (str: string): string =>\n str.replace(/`/g, '\\\\`').replace(/\\${/g, '$\\\\{');\n\n/**\n * Creates a `{cooked, raw}` object from the `metaBlock` and `messagePart`.\n *\n * The `raw` text must have various character sequences escaped:\n * * \"\\\" would otherwise indicate that the next character is a control character.\n * * \"`\" and \"${\" are template string control sequences that would otherwise prematurely indicate\n * the end of a message part.\n * * \":\" inside a metablock would prematurely indicate the end of the metablock.\n * * \":\" at the start of a messagePart with no metablock would erroneously indicate the start of a\n * metablock.\n *\n * @param metaBlock Any metadata that should be prepended to the string\n * @param messagePart The message part of the string\n */\nfunction createCookedRawString(\n metaBlock: string, messagePart: string, range: ParseSourceSpan|null): CookedRawString {\n if (metaBlock === '') {\n return {\n cooked: messagePart,\n raw: escapeForTemplateLiteral(escapeStartingColon(escapeSlashes(messagePart))),\n range,\n };\n } else {\n return {\n cooked: `:${metaBlock}:${messagePart}`,\n raw: escapeForTemplateLiteral(\n `:${escapeColons(escapeSlashes(metaBlock))}:${escapeSlashes(messagePart)}`),\n range,\n };\n }\n}\n\nexport class ExternalExpr extends Expression {\n constructor(\n public value: ExternalReference, type?: Type|null, public typeParams: Type[]|null = null,\n sourceSpan?: ParseSourceSpan|null) {\n super(type, sourceSpan);\n }\n\n override isEquivalent(e: Expression): boolean {\n return e instanceof ExternalExpr && this.value.name === e.value.name &&\n this.value.moduleName === e.value.moduleName && this.value.runtime === e.value.runtime;\n }\n\n override isConstant() {\n return false;\n }\n\n override visitExpression(visitor: ExpressionVisitor, context: any): any {\n return visitor.visitExternalExpr(this, context);\n }\n}\n\nexport class ExternalReference {\n constructor(public moduleName: string|null, public name: string|null, public runtime?: any|null) {\n }\n // Note: no isEquivalent method here as we use this as an interface too.\n}\n\nexport class ConditionalExpr extends Expression {\n public trueCase: Expression;\n\n constructor(\n public condition: Expression, trueCase: Expression, public falseCase: Expression|null = null,\n type?: Type|null, sourceSpan?: ParseSourceSpan|null) {\n super(type || trueCase.type, sourceSpan);\n this.trueCase = trueCase;\n }\n\n override isEquivalent(e: Expression): boolean {\n return e instanceof ConditionalExpr && this.condition.isEquivalent(e.condition) &&\n this.trueCase.isEquivalent(e.trueCase) && nullSafeIsEquivalent(this.falseCase, e.falseCase);\n }\n\n override isConstant() {\n return false;\n }\n\n override visitExpression(visitor: ExpressionVisitor, context: any): any {\n return visitor.visitConditionalExpr(this, context);\n }\n}\n\n\nexport class NotExpr extends Expression {\n constructor(public condition: Expression, sourceSpan?: ParseSourceSpan|null) {\n super(BOOL_TYPE, sourceSpan);\n }\n\n override isEquivalent(e: Expression): boolean {\n return e instanceof NotExpr && this.condition.isEquivalent(e.condition);\n }\n\n override isConstant() {\n return false;\n }\n\n override visitExpression(visitor: ExpressionVisitor, context: any): any {\n return visitor.visitNotExpr(this, context);\n }\n}\n\nexport class FnParam {\n constructor(public name: string, public type: Type|null = null) {}\n\n isEquivalent(param: FnParam): boolean {\n return this.name === param.name;\n }\n}\n\n\nexport class FunctionExpr extends Expression {\n constructor(\n public params: FnParam[], public statements: Statement[], type?: Type|null,\n sourceSpan?: ParseSourceSpan|null, public name?: string|null) {\n super(type, sourceSpan);\n }\n\n override isEquivalent(e: Expression): boolean {\n return e instanceof FunctionExpr && areAllEquivalent(this.params, e.params) &&\n areAllEquivalent(this.statements, e.statements);\n }\n\n override isConstant() {\n return false;\n }\n\n override visitExpression(visitor: ExpressionVisitor, context: any): any {\n return visitor.visitFunctionExpr(this, context);\n }\n\n toDeclStmt(name: string, modifiers?: StmtModifier): DeclareFunctionStmt {\n return new DeclareFunctionStmt(\n name, this.params, this.statements, this.type, modifiers, this.sourceSpan);\n }\n}\n\n\nexport class UnaryOperatorExpr extends Expression {\n constructor(\n public operator: UnaryOperator, public expr: Expression, type?: Type|null,\n sourceSpan?: ParseSourceSpan|null, public parens: boolean = true) {\n super(type || NUMBER_TYPE, sourceSpan);\n }\n\n override isEquivalent(e: Expression): boolean {\n return e instanceof UnaryOperatorExpr && this.operator === e.operator &&\n this.expr.isEquivalent(e.expr);\n }\n\n override isConstant() {\n return false;\n }\n\n override visitExpression(visitor: ExpressionVisitor, context: any): any {\n return visitor.visitUnaryOperatorExpr(this, context);\n }\n}\n\n\nexport class BinaryOperatorExpr extends Expression {\n public lhs: Expression;\n constructor(\n public operator: BinaryOperator, lhs: Expression, public rhs: Expression, type?: Type|null,\n sourceSpan?: ParseSourceSpan|null, public parens: boolean = true) {\n super(type || lhs.type, sourceSpan);\n this.lhs = lhs;\n }\n\n override isEquivalent(e: Expression): boolean {\n return e instanceof BinaryOperatorExpr && this.operator === e.operator &&\n this.lhs.isEquivalent(e.lhs) && this.rhs.isEquivalent(e.rhs);\n }\n\n override isConstant() {\n return false;\n }\n\n override visitExpression(visitor: ExpressionVisitor, context: any): any {\n return visitor.visitBinaryOperatorExpr(this, context);\n }\n}\n\n\nexport class ReadPropExpr extends Expression {\n constructor(\n public receiver: Expression, public name: string, type?: Type|null,\n sourceSpan?: ParseSourceSpan|null) {\n super(type, sourceSpan);\n }\n\n override isEquivalent(e: Expression): boolean {\n return e instanceof ReadPropExpr && this.receiver.isEquivalent(e.receiver) &&\n this.name === e.name;\n }\n\n override isConstant() {\n return false;\n }\n\n override visitExpression(visitor: ExpressionVisitor, context: any): any {\n return visitor.visitReadPropExpr(this, context);\n }\n\n set(value: Expression): WritePropExpr {\n return new WritePropExpr(this.receiver, this.name, value, null, this.sourceSpan);\n }\n}\n\n\nexport class ReadKeyExpr extends Expression {\n constructor(\n public receiver: Expression, public index: Expression, type?: Type|null,\n sourceSpan?: ParseSourceSpan|null) {\n super(type, sourceSpan);\n }\n\n override isEquivalent(e: Expression): boolean {\n return e instanceof ReadKeyExpr && this.receiver.isEquivalent(e.receiver) &&\n this.index.isEquivalent(e.index);\n }\n\n override isConstant() {\n return false;\n }\n\n override visitExpression(visitor: ExpressionVisitor, context: any): any {\n return visitor.visitReadKeyExpr(this, context);\n }\n\n set(value: Expression): WriteKeyExpr {\n return new WriteKeyExpr(this.receiver, this.index, value, null, this.sourceSpan);\n }\n}\n\n\nexport class LiteralArrayExpr extends Expression {\n public entries: Expression[];\n constructor(entries: Expression[], type?: Type|null, sourceSpan?: ParseSourceSpan|null) {\n super(type, sourceSpan);\n this.entries = entries;\n }\n\n override isConstant() {\n return this.entries.every(e => e.isConstant());\n }\n\n override isEquivalent(e: Expression): boolean {\n return e instanceof LiteralArrayExpr && areAllEquivalent(this.entries, e.entries);\n }\n override visitExpression(visitor: ExpressionVisitor, context: any): any {\n return visitor.visitLiteralArrayExpr(this, context);\n }\n}\n\nexport class LiteralMapEntry {\n constructor(public key: string, public value: Expression, public quoted: boolean) {}\n isEquivalent(e: LiteralMapEntry): boolean {\n return this.key === e.key && this.value.isEquivalent(e.value);\n }\n}\n\nexport class LiteralMapExpr extends Expression {\n public valueType: Type|null = null;\n constructor(\n public entries: LiteralMapEntry[], type?: MapType|null, sourceSpan?: ParseSourceSpan|null) {\n super(type, sourceSpan);\n if (type) {\n this.valueType = type.valueType;\n }\n }\n\n override isEquivalent(e: Expression): boolean {\n return e instanceof LiteralMapExpr && areAllEquivalent(this.entries, e.entries);\n }\n\n override isConstant() {\n return this.entries.every(e => e.value.isConstant());\n }\n\n override visitExpression(visitor: ExpressionVisitor, context: any): any {\n return visitor.visitLiteralMapExpr(this, context);\n }\n}\n\nexport class CommaExpr extends Expression {\n constructor(public parts: Expression[], sourceSpan?: ParseSourceSpan|null) {\n super(parts[parts.length - 1].type, sourceSpan);\n }\n\n override isEquivalent(e: Expression): boolean {\n return e instanceof CommaExpr && areAllEquivalent(this.parts, e.parts);\n }\n\n override isConstant() {\n return false;\n }\n\n override visitExpression(visitor: ExpressionVisitor, context: any): any {\n return visitor.visitCommaExpr(this, context);\n }\n}\n\nexport interface ExpressionVisitor {\n visitReadVarExpr(ast: ReadVarExpr, context: any): any;\n visitWriteVarExpr(expr: WriteVarExpr, context: any): any;\n visitWriteKeyExpr(expr: WriteKeyExpr, context: any): any;\n visitWritePropExpr(expr: WritePropExpr, context: any): any;\n visitInvokeFunctionExpr(ast: InvokeFunctionExpr, context: any): any;\n visitTaggedTemplateExpr(ast: TaggedTemplateExpr, context: any): any;\n visitInstantiateExpr(ast: InstantiateExpr, context: any): any;\n visitLiteralExpr(ast: LiteralExpr, context: any): any;\n visitLocalizedString(ast: LocalizedString, context: any): any;\n visitExternalExpr(ast: ExternalExpr, context: any): any;\n visitConditionalExpr(ast: ConditionalExpr, context: any): any;\n visitNotExpr(ast: NotExpr, context: any): any;\n visitFunctionExpr(ast: FunctionExpr, context: any): any;\n visitUnaryOperatorExpr(ast: UnaryOperatorExpr, context: any): any;\n visitBinaryOperatorExpr(ast: BinaryOperatorExpr, context: any): any;\n visitReadPropExpr(ast: ReadPropExpr, context: any): any;\n visitReadKeyExpr(ast: ReadKeyExpr, context: any): any;\n visitLiteralArrayExpr(ast: LiteralArrayExpr, context: any): any;\n visitLiteralMapExpr(ast: LiteralMapExpr, context: any): any;\n visitCommaExpr(ast: CommaExpr, context: any): any;\n visitWrappedNodeExpr(ast: WrappedNodeExpr, context: any): any;\n visitTypeofExpr(ast: TypeofExpr, context: any): any;\n}\n\nexport const NULL_EXPR = new LiteralExpr(null, null, null);\nexport const TYPED_NULL_EXPR = new LiteralExpr(null, INFERRED_TYPE, null);\n\n//// Statements\nexport enum StmtModifier {\n None = 0,\n Final = 1 << 0,\n Private = 1 << 1,\n Exported = 1 << 2,\n Static = 1 << 3,\n}\n\nexport class LeadingComment {\n constructor(public text: string, public multiline: boolean, public trailingNewline: boolean) {}\n toString() {\n return this.multiline ? ` ${this.text} ` : this.text;\n }\n}\nexport class JSDocComment extends LeadingComment {\n constructor(public tags: JSDocTag[]) {\n super('', /* multiline */ true, /* trailingNewline */ true);\n }\n override toString(): string {\n return serializeTags(this.tags);\n }\n}\n\nexport abstract class Statement {\n constructor(\n public modifiers: StmtModifier = StmtModifier.None,\n public sourceSpan: ParseSourceSpan|null = null, public leadingComments?: LeadingComment[]) {}\n /**\n * Calculates whether this statement produces the same value as the given statement.\n * Note: We don't check Types nor ParseSourceSpans nor function arguments.\n */\n abstract isEquivalent(stmt: Statement): boolean;\n\n abstract visitStatement(visitor: StatementVisitor, context: any): any;\n\n hasModifier(modifier: StmtModifier): boolean {\n return (this.modifiers & modifier) !== 0;\n }\n\n addLeadingComment(leadingComment: LeadingComment): void {\n this.leadingComments = this.leadingComments ?? [];\n this.leadingComments.push(leadingComment);\n }\n}\n\n\nexport class DeclareVarStmt extends Statement {\n public type: Type|null;\n constructor(\n public name: string, public value?: Expression, type?: Type|null, modifiers?: StmtModifier,\n sourceSpan?: ParseSourceSpan|null, leadingComments?: LeadingComment[]) {\n super(modifiers, sourceSpan, leadingComments);\n this.type = type || (value && value.type) || null;\n }\n override isEquivalent(stmt: Statement): boolean {\n return stmt instanceof DeclareVarStmt && this.name === stmt.name &&\n (this.value ? !!stmt.value && this.value.isEquivalent(stmt.value) : !stmt.value);\n }\n override visitStatement(visitor: StatementVisitor, context: any): any {\n return visitor.visitDeclareVarStmt(this, context);\n }\n}\n\nexport class DeclareFunctionStmt extends Statement {\n public type: Type|null;\n constructor(\n public name: string, public params: FnParam[], public statements: Statement[],\n type?: Type|null, modifiers?: StmtModifier, sourceSpan?: ParseSourceSpan|null,\n leadingComments?: LeadingComment[]) {\n super(modifiers, sourceSpan, leadingComments);\n this.type = type || null;\n }\n override isEquivalent(stmt: Statement): boolean {\n return stmt instanceof DeclareFunctionStmt && areAllEquivalent(this.params, stmt.params) &&\n areAllEquivalent(this.statements, stmt.statements);\n }\n override visitStatement(visitor: StatementVisitor, context: any): any {\n return visitor.visitDeclareFunctionStmt(this, context);\n }\n}\n\nexport class ExpressionStatement extends Statement {\n constructor(\n public expr: Expression, sourceSpan?: ParseSourceSpan|null,\n leadingComments?: LeadingComment[]) {\n super(StmtModifier.None, sourceSpan, leadingComments);\n }\n override isEquivalent(stmt: Statement): boolean {\n return stmt instanceof ExpressionStatement && this.expr.isEquivalent(stmt.expr);\n }\n override visitStatement(visitor: StatementVisitor, context: any): any {\n return visitor.visitExpressionStmt(this, context);\n }\n}\n\n\nexport class ReturnStatement extends Statement {\n constructor(\n public value: Expression, sourceSpan: ParseSourceSpan|null = null,\n leadingComments?: LeadingComment[]) {\n super(StmtModifier.None, sourceSpan, leadingComments);\n }\n override isEquivalent(stmt: Statement): boolean {\n return stmt instanceof ReturnStatement && this.value.isEquivalent(stmt.value);\n }\n override visitStatement(visitor: StatementVisitor, context: any): any {\n return visitor.visitReturnStmt(this, context);\n }\n}\n\nexport class IfStmt extends Statement {\n constructor(\n public condition: Expression, public trueCase: Statement[],\n public falseCase: Statement[] = [], sourceSpan?: ParseSourceSpan|null,\n leadingComments?: LeadingComment[]) {\n super(StmtModifier.None, sourceSpan, leadingComments);\n }\n override isEquivalent(stmt: Statement): boolean {\n return stmt instanceof IfStmt && this.condition.isEquivalent(stmt.condition) &&\n areAllEquivalent(this.trueCase, stmt.trueCase) &&\n areAllEquivalent(this.falseCase, stmt.falseCase);\n }\n override visitStatement(visitor: StatementVisitor, context: any): any {\n return visitor.visitIfStmt(this, context);\n }\n}\n\nexport interface StatementVisitor {\n visitDeclareVarStmt(stmt: DeclareVarStmt, context: any): any;\n visitDeclareFunctionStmt(stmt: DeclareFunctionStmt, context: any): any;\n visitExpressionStmt(stmt: ExpressionStatement, context: any): any;\n visitReturnStmt(stmt: ReturnStatement, context: any): any;\n visitIfStmt(stmt: IfStmt, context: any): any;\n}\n\nexport class RecursiveAstVisitor implements StatementVisitor, ExpressionVisitor {\n visitType(ast: Type, context: any): any {\n return ast;\n }\n visitExpression(ast: Expression, context: any): any {\n if (ast.type) {\n ast.type.visitType(this, context);\n }\n return ast;\n }\n visitBuiltinType(type: BuiltinType, context: any): any {\n return this.visitType(type, context);\n }\n visitExpressionType(type: ExpressionType, context: any): any {\n type.value.visitExpression(this, context);\n if (type.typeParams !== null) {\n type.typeParams.forEach(param => this.visitType(param, context));\n }\n return this.visitType(type, context);\n }\n visitArrayType(type: ArrayType, context: any): any {\n return this.visitType(type, context);\n }\n visitMapType(type: MapType, context: any): any {\n return this.visitType(type, context);\n }\n visitWrappedNodeExpr(ast: WrappedNodeExpr, context: any): any {\n return ast;\n }\n visitTypeofExpr(ast: TypeofExpr, context: any): any {\n return this.visitExpression(ast, context);\n }\n visitReadVarExpr(ast: ReadVarExpr, context: any): any {\n return this.visitExpression(ast, context);\n }\n visitWriteVarExpr(ast: WriteVarExpr, context: any): any {\n ast.value.visitExpression(this, context);\n return this.visitExpression(ast, context);\n }\n visitWriteKeyExpr(ast: WriteKeyExpr, context: any): any {\n ast.receiver.visitExpression(this, context);\n ast.index.visitExpression(this, context);\n ast.value.visitExpression(this, context);\n return this.visitExpression(ast, context);\n }\n visitWritePropExpr(ast: WritePropExpr, context: any): any {\n ast.receiver.visitExpression(this, context);\n ast.value.visitExpression(this, context);\n return this.visitExpression(ast, context);\n }\n visitInvokeFunctionExpr(ast: InvokeFunctionExpr, context: any): any {\n ast.fn.visitExpression(this, context);\n this.visitAllExpressions(ast.args, context);\n return this.visitExpression(ast, context);\n }\n visitTaggedTemplateExpr(ast: TaggedTemplateExpr, context: any): any {\n ast.tag.visitExpression(this, context);\n this.visitAllExpressions(ast.template.expressions, context);\n return this.visitExpression(ast, context);\n }\n visitInstantiateExpr(ast: InstantiateExpr, context: any): any {\n ast.classExpr.visitExpression(this, context);\n this.visitAllExpressions(ast.args, context);\n return this.visitExpression(ast, context);\n }\n visitLiteralExpr(ast: LiteralExpr, context: any): any {\n return this.visitExpression(ast, context);\n }\n visitLocalizedString(ast: LocalizedString, context: any): any {\n return this.visitExpression(ast, context);\n }\n visitExternalExpr(ast: ExternalExpr, context: any): any {\n if (ast.typeParams) {\n ast.typeParams.forEach(type => type.visitType(this, context));\n }\n return this.visitExpression(ast, context);\n }\n visitConditionalExpr(ast: ConditionalExpr, context: any): any {\n ast.condition.visitExpression(this, context);\n ast.trueCase.visitExpression(this, context);\n ast.falseCase!.visitExpression(this, context);\n return this.visitExpression(ast, context);\n }\n visitNotExpr(ast: NotExpr, context: any): any {\n ast.condition.visitExpression(this, context);\n return this.visitExpression(ast, context);\n }\n visitFunctionExpr(ast: FunctionExpr, context: any): any {\n this.visitAllStatements(ast.statements, context);\n return this.visitExpression(ast, context);\n }\n visitUnaryOperatorExpr(ast: UnaryOperatorExpr, context: any): any {\n ast.expr.visitExpression(this, context);\n return this.visitExpression(ast, context);\n }\n visitBinaryOperatorExpr(ast: BinaryOperatorExpr, context: any): any {\n ast.lhs.visitExpression(this, context);\n ast.rhs.visitExpression(this, context);\n return this.visitExpression(ast, context);\n }\n visitReadPropExpr(ast: ReadPropExpr, context: any): any {\n ast.receiver.visitExpression(this, context);\n return this.visitExpression(ast, context);\n }\n visitReadKeyExpr(ast: ReadKeyExpr, context: any): any {\n ast.receiver.visitExpression(this, context);\n ast.index.visitExpression(this, context);\n return this.visitExpression(ast, context);\n }\n visitLiteralArrayExpr(ast: LiteralArrayExpr, context: any): any {\n this.visitAllExpressions(ast.entries, context);\n return this.visitExpression(ast, context);\n }\n visitLiteralMapExpr(ast: LiteralMapExpr, context: any): any {\n ast.entries.forEach((entry) => entry.value.visitExpression(this, context));\n return this.visitExpression(ast, context);\n }\n visitCommaExpr(ast: CommaExpr, context: any): any {\n this.visitAllExpressions(ast.parts, context);\n return this.visitExpression(ast, context);\n }\n visitAllExpressions(exprs: Expression[], context: any): void {\n exprs.forEach(expr => expr.visitExpression(this, context));\n }\n\n visitDeclareVarStmt(stmt: DeclareVarStmt, context: any): any {\n if (stmt.value) {\n stmt.value.visitExpression(this, context);\n }\n if (stmt.type) {\n stmt.type.visitType(this, context);\n }\n return stmt;\n }\n visitDeclareFunctionStmt(stmt: DeclareFunctionStmt, context: any): any {\n this.visitAllStatements(stmt.statements, context);\n if (stmt.type) {\n stmt.type.visitType(this, context);\n }\n return stmt;\n }\n visitExpressionStmt(stmt: ExpressionStatement, context: any): any {\n stmt.expr.visitExpression(this, context);\n return stmt;\n }\n visitReturnStmt(stmt: ReturnStatement, context: any): any {\n stmt.value.visitExpression(this, context);\n return stmt;\n }\n visitIfStmt(stmt: IfStmt, context: any): any {\n stmt.condition.visitExpression(this, context);\n this.visitAllStatements(stmt.trueCase, context);\n this.visitAllStatements(stmt.falseCase, context);\n return stmt;\n }\n visitAllStatements(stmts: Statement[], context: any): void {\n stmts.forEach(stmt => stmt.visitStatement(this, context));\n }\n}\n\nexport function leadingComment(\n text: string, multiline: boolean = false, trailingNewline: boolean = true): LeadingComment {\n return new LeadingComment(text, multiline, trailingNewline);\n}\n\nexport function jsDocComment(tags: JSDocTag[] = []): JSDocComment {\n return new JSDocComment(tags);\n}\n\nexport function variable(\n name: string, type?: Type|null, sourceSpan?: ParseSourceSpan|null): ReadVarExpr {\n return new ReadVarExpr(name, type, sourceSpan);\n}\n\nexport function importExpr(\n id: ExternalReference, typeParams: Type[]|null = null,\n sourceSpan?: ParseSourceSpan|null): ExternalExpr {\n return new ExternalExpr(id, null, typeParams, sourceSpan);\n}\n\nexport function importType(\n id: ExternalReference, typeParams?: Type[]|null, typeModifiers?: TypeModifier): ExpressionType|\n null {\n return id != null ? expressionType(importExpr(id, typeParams, null), typeModifiers) : null;\n}\n\nexport function expressionType(\n expr: Expression, typeModifiers?: TypeModifier, typeParams?: Type[]|null): ExpressionType {\n return new ExpressionType(expr, typeModifiers, typeParams);\n}\n\nexport function typeofExpr(expr: Expression) {\n return new TypeofExpr(expr);\n}\n\nexport function literalArr(\n values: Expression[], type?: Type|null, sourceSpan?: ParseSourceSpan|null): LiteralArrayExpr {\n return new LiteralArrayExpr(values, type, sourceSpan);\n}\n\nexport function literalMap(\n values: {key: string, quoted: boolean, value: Expression}[],\n type: MapType|null = null): LiteralMapExpr {\n return new LiteralMapExpr(\n values.map(e => new LiteralMapEntry(e.key, e.value, e.quoted)), type, null);\n}\n\nexport function unary(\n operator: UnaryOperator, expr: Expression, type?: Type,\n sourceSpan?: ParseSourceSpan|null): UnaryOperatorExpr {\n return new UnaryOperatorExpr(operator, expr, type, sourceSpan);\n}\n\nexport function not(expr: Expression, sourceSpan?: ParseSourceSpan|null): NotExpr {\n return new NotExpr(expr, sourceSpan);\n}\n\nexport function fn(\n params: FnParam[], body: Statement[], type?: Type|null, sourceSpan?: ParseSourceSpan|null,\n name?: string|null): FunctionExpr {\n return new FunctionExpr(params, body, type, sourceSpan, name);\n}\n\nexport function ifStmt(\n condition: Expression, thenClause: Statement[], elseClause?: Statement[],\n sourceSpan?: ParseSourceSpan, leadingComments?: LeadingComment[]) {\n return new IfStmt(condition, thenClause, elseClause, sourceSpan, leadingComments);\n}\n\nexport function taggedTemplate(\n tag: Expression, template: TemplateLiteral, type?: Type|null,\n sourceSpan?: ParseSourceSpan|null): TaggedTemplateExpr {\n return new TaggedTemplateExpr(tag, template, type, sourceSpan);\n}\n\nexport function literal(\n value: any, type?: Type|null, sourceSpan?: ParseSourceSpan|null): LiteralExpr {\n return new LiteralExpr(value, type, sourceSpan);\n}\n\nexport function localizedString(\n metaBlock: I18nMeta, messageParts: LiteralPiece[], placeholderNames: PlaceholderPiece[],\n expressions: Expression[], sourceSpan?: ParseSourceSpan|null): LocalizedString {\n return new LocalizedString(metaBlock, messageParts, placeholderNames, expressions, sourceSpan);\n}\n\nexport function isNull(exp: Expression): boolean {\n return exp instanceof LiteralExpr && exp.value === null;\n}\n\n// The list of JSDoc tags that we currently support. Extend it if needed.\nexport const enum JSDocTagName {\n Desc = 'desc',\n Id = 'id',\n Meaning = 'meaning',\n Suppress = 'suppress',\n}\n\n/*\n * TypeScript has an API for JSDoc already, but it's not exposed.\n * https://github.com/Microsoft/TypeScript/issues/7393\n * For now we create types that are similar to theirs so that migrating\n * to their API will be easier. See e.g. `ts.JSDocTag` and `ts.JSDocComment`.\n */\nexport type JSDocTag = {\n // `tagName` is e.g. \"param\" in an `@param` declaration\n tagName: JSDocTagName|string,\n // Any remaining text on the tag, e.g. the description\n text?: string,\n}|{\n // no `tagName` for plain text documentation that occurs before any `@param` lines\n tagName?: undefined, text: string,\n};\n\n/*\n * Serializes a `Tag` into a string.\n * Returns a string like \" @foo {bar} baz\" (note the leading whitespace before `@foo`).\n */\nfunction tagToString(tag: JSDocTag): string {\n let out = '';\n if (tag.tagName) {\n out += ` @${tag.tagName}`;\n }\n if (tag.text) {\n if (tag.text.match(/\\/\\*|\\*\\//)) {\n throw new Error('JSDoc text cannot contain \"/*\" and \"*/\"');\n }\n out += ' ' + tag.text.replace(/@/g, '\\\\@');\n }\n return out;\n}\n\nfunction serializeTags(tags: JSDocTag[]): string {\n if (tags.length === 0) return '';\n\n if (tags.length === 1 && tags[0].tagName && !tags[0].text) {\n // The JSDOC comment is a single simple tag: e.g `/** @tagname */`.\n return `*${tagToString(tags[0])} `;\n }\n\n let out = '*\\n';\n for (const tag of tags) {\n out += ' *';\n // If the tagToString is multi-line, insert \" * \" prefixes on lines.\n out += tagToString(tag).replace(/\\n/g, '\\n * ');\n out += '\\n';\n }\n out += ' ';\n return out;\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\nimport * as o from './output/output_ast';\n\nconst CONSTANT_PREFIX = '_c';\n\n/**\n * `ConstantPool` tries to reuse literal factories when two or more literals are identical.\n * We determine whether literals are identical by creating a key out of their AST using the\n * `KeyVisitor`. This constant is used to replace dynamic expressions which can't be safely\n * converted into a key. E.g. given an expression `{foo: bar()}`, since we don't know what\n * the result of `bar` will be, we create a key that looks like `{foo: }`. Note\n * that we use a variable, rather than something like `null` in order to avoid collisions.\n */\nconst UNKNOWN_VALUE_KEY = o.variable('');\n\n/**\n * Context to use when producing a key.\n *\n * This ensures we see the constant not the reference variable when producing\n * a key.\n */\nconst KEY_CONTEXT = {};\n\n/**\n * Generally all primitive values are excluded from the `ConstantPool`, but there is an exclusion\n * for strings that reach a certain length threshold. This constant defines the length threshold for\n * strings.\n */\nconst POOL_INCLUSION_LENGTH_THRESHOLD_FOR_STRINGS = 50;\n\n/**\n * A node that is a place-holder that allows the node to be replaced when the actual\n * node is known.\n *\n * This allows the constant pool to change an expression from a direct reference to\n * a constant to a shared constant. It returns a fix-up node that is later allowed to\n * change the referenced expression.\n */\nclass FixupExpression extends o.Expression {\n private original: o.Expression;\n\n // TODO(issue/24571): remove '!'.\n shared!: boolean;\n\n constructor(public resolved: o.Expression) {\n super(resolved.type);\n this.original = resolved;\n }\n\n override visitExpression(visitor: o.ExpressionVisitor, context: any): any {\n if (context === KEY_CONTEXT) {\n // When producing a key we want to traverse the constant not the\n // variable used to refer to it.\n return this.original.visitExpression(visitor, context);\n } else {\n return this.resolved.visitExpression(visitor, context);\n }\n }\n\n override isEquivalent(e: o.Expression): boolean {\n return e instanceof FixupExpression && this.resolved.isEquivalent(e.resolved);\n }\n\n override isConstant() {\n return true;\n }\n\n fixup(expression: o.Expression) {\n this.resolved = expression;\n this.shared = true;\n }\n}\n\n/**\n * A constant pool allows a code emitter to share constant in an output context.\n *\n * The constant pool also supports sharing access to ivy definitions references.\n */\nexport class ConstantPool {\n statements: o.Statement[] = [];\n private literals = new Map();\n private literalFactories = new Map();\n\n private nextNameIndex = 0;\n\n constructor(private readonly isClosureCompilerEnabled: boolean = false) {}\n\n getConstLiteral(literal: o.Expression, forceShared?: boolean): o.Expression {\n if ((literal instanceof o.LiteralExpr && !isLongStringLiteral(literal)) ||\n literal instanceof FixupExpression) {\n // Do no put simple literals into the constant pool or try to produce a constant for a\n // reference to a constant.\n return literal;\n }\n const key = this.keyOf(literal);\n let fixup = this.literals.get(key);\n let newValue = false;\n if (!fixup) {\n fixup = new FixupExpression(literal);\n this.literals.set(key, fixup);\n newValue = true;\n }\n\n if ((!newValue && !fixup.shared) || (newValue && forceShared)) {\n // Replace the expression with a variable\n const name = this.freshName();\n let definition: o.WriteVarExpr;\n let usage: o.Expression;\n if (this.isClosureCompilerEnabled && isLongStringLiteral(literal)) {\n // For string literals, Closure will **always** inline the string at\n // **all** usages, duplicating it each time. For large strings, this\n // unnecessarily bloats bundle size. To work around this restriction, we\n // wrap the string in a function, and call that function for each usage.\n // This tricks Closure into using inline logic for functions instead of\n // string literals. Function calls are only inlined if the body is small\n // enough to be worth it. By doing this, very large strings will be\n // shared across multiple usages, rather than duplicating the string at\n // each usage site.\n //\n // const myStr = function() { return \"very very very long string\"; };\n // const usage1 = myStr();\n // const usage2 = myStr();\n definition = o.variable(name).set(new o.FunctionExpr(\n [], // Params.\n [\n // Statements.\n new o.ReturnStatement(literal),\n ],\n ));\n usage = o.variable(name).callFn([]);\n } else {\n // Just declare and use the variable directly, without a function call\n // indirection. This saves a few bytes and avoids an unnecessary call.\n definition = o.variable(name).set(literal);\n usage = o.variable(name);\n }\n\n this.statements.push(definition.toDeclStmt(o.INFERRED_TYPE, o.StmtModifier.Final));\n fixup.fixup(usage);\n }\n\n return fixup;\n }\n\n getLiteralFactory(literal: o.LiteralArrayExpr|o.LiteralMapExpr):\n {literalFactory: o.Expression, literalFactoryArguments: o.Expression[]} {\n // Create a pure function that builds an array of a mix of constant and variable expressions\n if (literal instanceof o.LiteralArrayExpr) {\n const argumentsForKey = literal.entries.map(e => e.isConstant() ? e : UNKNOWN_VALUE_KEY);\n const key = this.keyOf(o.literalArr(argumentsForKey));\n return this._getLiteralFactory(key, literal.entries, entries => o.literalArr(entries));\n } else {\n const expressionForKey = o.literalMap(\n literal.entries.map(e => ({\n key: e.key,\n value: e.value.isConstant() ? e.value : UNKNOWN_VALUE_KEY,\n quoted: e.quoted\n })));\n const key = this.keyOf(expressionForKey);\n return this._getLiteralFactory(\n key, literal.entries.map(e => e.value),\n entries => o.literalMap(entries.map((value, index) => ({\n key: literal.entries[index].key,\n value,\n quoted: literal.entries[index].quoted\n }))));\n }\n }\n\n private _getLiteralFactory(\n key: string, values: o.Expression[], resultMap: (parameters: o.Expression[]) => o.Expression):\n {literalFactory: o.Expression, literalFactoryArguments: o.Expression[]} {\n let literalFactory = this.literalFactories.get(key);\n const literalFactoryArguments = values.filter((e => !e.isConstant()));\n if (!literalFactory) {\n const resultExpressions = values.map(\n (e, index) => e.isConstant() ? this.getConstLiteral(e, true) : o.variable(`a${index}`));\n const parameters =\n resultExpressions.filter(isVariable).map(e => new o.FnParam(e.name!, o.DYNAMIC_TYPE));\n const pureFunctionDeclaration =\n o.fn(parameters, [new o.ReturnStatement(resultMap(resultExpressions))], o.INFERRED_TYPE);\n const name = this.freshName();\n this.statements.push(o.variable(name)\n .set(pureFunctionDeclaration)\n .toDeclStmt(o.INFERRED_TYPE, o.StmtModifier.Final));\n literalFactory = o.variable(name);\n this.literalFactories.set(key, literalFactory);\n }\n return {literalFactory, literalFactoryArguments};\n }\n\n /**\n * Produce a unique name.\n *\n * The name might be unique among different prefixes if any of the prefixes end in\n * a digit so the prefix should be a constant string (not based on user input) and\n * must not end in a digit.\n */\n uniqueName(prefix: string): string {\n return `${prefix}${this.nextNameIndex++}`;\n }\n\n private freshName(): string {\n return this.uniqueName(CONSTANT_PREFIX);\n }\n\n private keyOf(expression: o.Expression) {\n return expression.visitExpression(new KeyVisitor(), KEY_CONTEXT);\n }\n}\n\n/**\n * Visitor used to determine if 2 expressions are equivalent and can be shared in the\n * `ConstantPool`.\n *\n * When the id (string) generated by the visitor is equal, expressions are considered equivalent.\n */\nclass KeyVisitor implements o.ExpressionVisitor {\n visitLiteralExpr(ast: o.LiteralExpr): string {\n return `${typeof ast.value === 'string' ? '\"' + ast.value + '\"' : ast.value}`;\n }\n\n visitLiteralArrayExpr(ast: o.LiteralArrayExpr, context: object): string {\n return `[${ast.entries.map(entry => entry.visitExpression(this, context)).join(',')}]`;\n }\n\n visitLiteralMapExpr(ast: o.LiteralMapExpr, context: object): string {\n const mapKey = (entry: o.LiteralMapEntry) => {\n const quote = entry.quoted ? '\"' : '';\n return `${quote}${entry.key}${quote}`;\n };\n const mapEntry = (entry: o.LiteralMapEntry) =>\n `${mapKey(entry)}:${entry.value.visitExpression(this, context)}`;\n return `{${ast.entries.map(mapEntry).join(',')}`;\n }\n\n visitExternalExpr(ast: o.ExternalExpr): string {\n return ast.value.moduleName ? `EX:${ast.value.moduleName}:${ast.value.name}` :\n `EX:${ast.value.runtime.name}`;\n }\n\n visitReadVarExpr(node: o.ReadVarExpr) {\n return `VAR:${node.name}`;\n }\n\n visitTypeofExpr(node: o.TypeofExpr, context: any): string {\n return `TYPEOF:${node.expr.visitExpression(this, context)}`;\n }\n\n visitWrappedNodeExpr = invalid;\n visitWriteVarExpr = invalid;\n visitWriteKeyExpr = invalid;\n visitWritePropExpr = invalid;\n visitInvokeFunctionExpr = invalid;\n visitTaggedTemplateExpr = invalid;\n visitInstantiateExpr = invalid;\n visitConditionalExpr = invalid;\n visitNotExpr = invalid;\n visitAssertNotNullExpr = invalid;\n visitCastExpr = invalid;\n visitFunctionExpr = invalid;\n visitUnaryOperatorExpr = invalid;\n visitBinaryOperatorExpr = invalid;\n visitReadPropExpr = invalid;\n visitReadKeyExpr = invalid;\n visitCommaExpr = invalid;\n visitLocalizedString = invalid;\n}\n\nfunction invalid(this: o.ExpressionVisitor, arg: o.Expression|o.Statement): never {\n throw new Error(\n `Invalid state: Visitor ${this.constructor.name} doesn't handle ${arg.constructor.name}`);\n}\n\nfunction isVariable(e: o.Expression): e is o.ReadVarExpr {\n return e instanceof o.ReadVarExpr;\n}\n\nfunction isLongStringLiteral(expr: o.Expression): boolean {\n return expr instanceof o.LiteralExpr && typeof expr.value === 'string' &&\n expr.value.length >= POOL_INCLUSION_LENGTH_THRESHOLD_FOR_STRINGS;\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\nimport * as o from '../output/output_ast';\n\nconst CORE = '@angular/core';\n\nexport class Identifiers {\n /* Methods */\n static NEW_METHOD = 'factory';\n static TRANSFORM_METHOD = 'transform';\n static PATCH_DEPS = 'patchedDeps';\n\n static core: o.ExternalReference = {name: null, moduleName: CORE};\n\n /* Instructions */\n static namespaceHTML: o.ExternalReference = {name: 'ɵɵnamespaceHTML', moduleName: CORE};\n\n static namespaceMathML: o.ExternalReference = {name: 'ɵɵnamespaceMathML', moduleName: CORE};\n\n static namespaceSVG: o.ExternalReference = {name: 'ɵɵnamespaceSVG', moduleName: CORE};\n\n static element: o.ExternalReference = {name: 'ɵɵelement', moduleName: CORE};\n\n static elementStart: o.ExternalReference = {name: 'ɵɵelementStart', moduleName: CORE};\n\n static elementEnd: o.ExternalReference = {name: 'ɵɵelementEnd', moduleName: CORE};\n\n static advance: o.ExternalReference = {name: 'ɵɵadvance', moduleName: CORE};\n\n static syntheticHostProperty:\n o.ExternalReference = {name: 'ɵɵsyntheticHostProperty', moduleName: CORE};\n\n static syntheticHostListener:\n o.ExternalReference = {name: 'ɵɵsyntheticHostListener', moduleName: CORE};\n\n static attribute: o.ExternalReference = {name: 'ɵɵattribute', moduleName: CORE};\n\n static attributeInterpolate1:\n o.ExternalReference = {name: 'ɵɵattributeInterpolate1', moduleName: CORE};\n static attributeInterpolate2:\n o.ExternalReference = {name: 'ɵɵattributeInterpolate2', moduleName: CORE};\n static attributeInterpolate3:\n o.ExternalReference = {name: 'ɵɵattributeInterpolate3', moduleName: CORE};\n static attributeInterpolate4:\n o.ExternalReference = {name: 'ɵɵattributeInterpolate4', moduleName: CORE};\n static attributeInterpolate5:\n o.ExternalReference = {name: 'ɵɵattributeInterpolate5', moduleName: CORE};\n static attributeInterpolate6:\n o.ExternalReference = {name: 'ɵɵattributeInterpolate6', moduleName: CORE};\n static attributeInterpolate7:\n o.ExternalReference = {name: 'ɵɵattributeInterpolate7', moduleName: CORE};\n static attributeInterpolate8:\n o.ExternalReference = {name: 'ɵɵattributeInterpolate8', moduleName: CORE};\n static attributeInterpolateV:\n o.ExternalReference = {name: 'ɵɵattributeInterpolateV', moduleName: CORE};\n\n static classProp: o.ExternalReference = {name: 'ɵɵclassProp', moduleName: CORE};\n\n static elementContainerStart:\n o.ExternalReference = {name: 'ɵɵelementContainerStart', moduleName: CORE};\n\n static elementContainerEnd:\n o.ExternalReference = {name: 'ɵɵelementContainerEnd', moduleName: CORE};\n\n static elementContainer: o.ExternalReference = {name: 'ɵɵelementContainer', moduleName: CORE};\n\n static styleMap: o.ExternalReference = {name: 'ɵɵstyleMap', moduleName: CORE};\n\n static styleMapInterpolate1:\n o.ExternalReference = {name: 'ɵɵstyleMapInterpolate1', moduleName: CORE};\n static styleMapInterpolate2:\n o.ExternalReference = {name: 'ɵɵstyleMapInterpolate2', moduleName: CORE};\n static styleMapInterpolate3:\n o.ExternalReference = {name: 'ɵɵstyleMapInterpolate3', moduleName: CORE};\n static styleMapInterpolate4:\n o.ExternalReference = {name: 'ɵɵstyleMapInterpolate4', moduleName: CORE};\n static styleMapInterpolate5:\n o.ExternalReference = {name: 'ɵɵstyleMapInterpolate5', moduleName: CORE};\n static styleMapInterpolate6:\n o.ExternalReference = {name: 'ɵɵstyleMapInterpolate6', moduleName: CORE};\n static styleMapInterpolate7:\n o.ExternalReference = {name: 'ɵɵstyleMapInterpolate7', moduleName: CORE};\n static styleMapInterpolate8:\n o.ExternalReference = {name: 'ɵɵstyleMapInterpolate8', moduleName: CORE};\n static styleMapInterpolateV:\n o.ExternalReference = {name: 'ɵɵstyleMapInterpolateV', moduleName: CORE};\n\n static classMap: o.ExternalReference = {name: 'ɵɵclassMap', moduleName: CORE};\n\n static classMapInterpolate1:\n o.ExternalReference = {name: 'ɵɵclassMapInterpolate1', moduleName: CORE};\n static classMapInterpolate2:\n o.ExternalReference = {name: 'ɵɵclassMapInterpolate2', moduleName: CORE};\n static classMapInterpolate3:\n o.ExternalReference = {name: 'ɵɵclassMapInterpolate3', moduleName: CORE};\n static classMapInterpolate4:\n o.ExternalReference = {name: 'ɵɵclassMapInterpolate4', moduleName: CORE};\n static classMapInterpolate5:\n o.ExternalReference = {name: 'ɵɵclassMapInterpolate5', moduleName: CORE};\n static classMapInterpolate6:\n o.ExternalReference = {name: 'ɵɵclassMapInterpolate6', moduleName: CORE};\n static classMapInterpolate7:\n o.ExternalReference = {name: 'ɵɵclassMapInterpolate7', moduleName: CORE};\n static classMapInterpolate8:\n o.ExternalReference = {name: 'ɵɵclassMapInterpolate8', moduleName: CORE};\n static classMapInterpolateV:\n o.ExternalReference = {name: 'ɵɵclassMapInterpolateV', moduleName: CORE};\n\n static styleProp: o.ExternalReference = {name: 'ɵɵstyleProp', moduleName: CORE};\n\n static stylePropInterpolate1:\n o.ExternalReference = {name: 'ɵɵstylePropInterpolate1', moduleName: CORE};\n static stylePropInterpolate2:\n o.ExternalReference = {name: 'ɵɵstylePropInterpolate2', moduleName: CORE};\n static stylePropInterpolate3:\n o.ExternalReference = {name: 'ɵɵstylePropInterpolate3', moduleName: CORE};\n static stylePropInterpolate4:\n o.ExternalReference = {name: 'ɵɵstylePropInterpolate4', moduleName: CORE};\n static stylePropInterpolate5:\n o.ExternalReference = {name: 'ɵɵstylePropInterpolate5', moduleName: CORE};\n static stylePropInterpolate6:\n o.ExternalReference = {name: 'ɵɵstylePropInterpolate6', moduleName: CORE};\n static stylePropInterpolate7:\n o.ExternalReference = {name: 'ɵɵstylePropInterpolate7', moduleName: CORE};\n static stylePropInterpolate8:\n o.ExternalReference = {name: 'ɵɵstylePropInterpolate8', moduleName: CORE};\n static stylePropInterpolateV:\n o.ExternalReference = {name: 'ɵɵstylePropInterpolateV', moduleName: CORE};\n\n static nextContext: o.ExternalReference = {name: 'ɵɵnextContext', moduleName: CORE};\n\n static resetView: o.ExternalReference = {name: 'ɵɵresetView', moduleName: CORE};\n\n static templateCreate: o.ExternalReference = {name: 'ɵɵtemplate', moduleName: CORE};\n\n static text: o.ExternalReference = {name: 'ɵɵtext', moduleName: CORE};\n\n static enableBindings: o.ExternalReference = {name: 'ɵɵenableBindings', moduleName: CORE};\n\n static disableBindings: o.ExternalReference = {name: 'ɵɵdisableBindings', moduleName: CORE};\n\n static getCurrentView: o.ExternalReference = {name: 'ɵɵgetCurrentView', moduleName: CORE};\n\n static textInterpolate: o.ExternalReference = {name: 'ɵɵtextInterpolate', moduleName: CORE};\n static textInterpolate1: o.ExternalReference = {name: 'ɵɵtextInterpolate1', moduleName: CORE};\n static textInterpolate2: o.ExternalReference = {name: 'ɵɵtextInterpolate2', moduleName: CORE};\n static textInterpolate3: o.ExternalReference = {name: 'ɵɵtextInterpolate3', moduleName: CORE};\n static textInterpolate4: o.ExternalReference = {name: 'ɵɵtextInterpolate4', moduleName: CORE};\n static textInterpolate5: o.ExternalReference = {name: 'ɵɵtextInterpolate5', moduleName: CORE};\n static textInterpolate6: o.ExternalReference = {name: 'ɵɵtextInterpolate6', moduleName: CORE};\n static textInterpolate7: o.ExternalReference = {name: 'ɵɵtextInterpolate7', moduleName: CORE};\n static textInterpolate8: o.ExternalReference = {name: 'ɵɵtextInterpolate8', moduleName: CORE};\n static textInterpolateV: o.ExternalReference = {name: 'ɵɵtextInterpolateV', moduleName: CORE};\n\n static restoreView: o.ExternalReference = {name: 'ɵɵrestoreView', moduleName: CORE};\n\n static pureFunction0: o.ExternalReference = {name: 'ɵɵpureFunction0', moduleName: CORE};\n static pureFunction1: o.ExternalReference = {name: 'ɵɵpureFunction1', moduleName: CORE};\n static pureFunction2: o.ExternalReference = {name: 'ɵɵpureFunction2', moduleName: CORE};\n static pureFunction3: o.ExternalReference = {name: 'ɵɵpureFunction3', moduleName: CORE};\n static pureFunction4: o.ExternalReference = {name: 'ɵɵpureFunction4', moduleName: CORE};\n static pureFunction5: o.ExternalReference = {name: 'ɵɵpureFunction5', moduleName: CORE};\n static pureFunction6: o.ExternalReference = {name: 'ɵɵpureFunction6', moduleName: CORE};\n static pureFunction7: o.ExternalReference = {name: 'ɵɵpureFunction7', moduleName: CORE};\n static pureFunction8: o.ExternalReference = {name: 'ɵɵpureFunction8', moduleName: CORE};\n static pureFunctionV: o.ExternalReference = {name: 'ɵɵpureFunctionV', moduleName: CORE};\n\n static pipeBind1: o.ExternalReference = {name: 'ɵɵpipeBind1', moduleName: CORE};\n static pipeBind2: o.ExternalReference = {name: 'ɵɵpipeBind2', moduleName: CORE};\n static pipeBind3: o.ExternalReference = {name: 'ɵɵpipeBind3', moduleName: CORE};\n static pipeBind4: o.ExternalReference = {name: 'ɵɵpipeBind4', moduleName: CORE};\n static pipeBindV: o.ExternalReference = {name: 'ɵɵpipeBindV', moduleName: CORE};\n\n static hostProperty: o.ExternalReference = {name: 'ɵɵhostProperty', moduleName: CORE};\n\n static property: o.ExternalReference = {name: 'ɵɵproperty', moduleName: CORE};\n\n static propertyInterpolate:\n o.ExternalReference = {name: 'ɵɵpropertyInterpolate', moduleName: CORE};\n static propertyInterpolate1:\n o.ExternalReference = {name: 'ɵɵpropertyInterpolate1', moduleName: CORE};\n static propertyInterpolate2:\n o.ExternalReference = {name: 'ɵɵpropertyInterpolate2', moduleName: CORE};\n static propertyInterpolate3:\n o.ExternalReference = {name: 'ɵɵpropertyInterpolate3', moduleName: CORE};\n static propertyInterpolate4:\n o.ExternalReference = {name: 'ɵɵpropertyInterpolate4', moduleName: CORE};\n static propertyInterpolate5:\n o.ExternalReference = {name: 'ɵɵpropertyInterpolate5', moduleName: CORE};\n static propertyInterpolate6:\n o.ExternalReference = {name: 'ɵɵpropertyInterpolate6', moduleName: CORE};\n static propertyInterpolate7:\n o.ExternalReference = {name: 'ɵɵpropertyInterpolate7', moduleName: CORE};\n static propertyInterpolate8:\n o.ExternalReference = {name: 'ɵɵpropertyInterpolate8', moduleName: CORE};\n static propertyInterpolateV:\n o.ExternalReference = {name: 'ɵɵpropertyInterpolateV', moduleName: CORE};\n\n static i18n: o.ExternalReference = {name: 'ɵɵi18n', moduleName: CORE};\n static i18nAttributes: o.ExternalReference = {name: 'ɵɵi18nAttributes', moduleName: CORE};\n static i18nExp: o.ExternalReference = {name: 'ɵɵi18nExp', moduleName: CORE};\n static i18nStart: o.ExternalReference = {name: 'ɵɵi18nStart', moduleName: CORE};\n static i18nEnd: o.ExternalReference = {name: 'ɵɵi18nEnd', moduleName: CORE};\n static i18nApply: o.ExternalReference = {name: 'ɵɵi18nApply', moduleName: CORE};\n static i18nPostprocess: o.ExternalReference = {name: 'ɵɵi18nPostprocess', moduleName: CORE};\n\n static pipe: o.ExternalReference = {name: 'ɵɵpipe', moduleName: CORE};\n\n static projection: o.ExternalReference = {name: 'ɵɵprojection', moduleName: CORE};\n static projectionDef: o.ExternalReference = {name: 'ɵɵprojectionDef', moduleName: CORE};\n\n static reference: o.ExternalReference = {name: 'ɵɵreference', moduleName: CORE};\n\n static inject: o.ExternalReference = {name: 'ɵɵinject', moduleName: CORE};\n\n static injectAttribute: o.ExternalReference = {name: 'ɵɵinjectAttribute', moduleName: CORE};\n\n static directiveInject: o.ExternalReference = {name: 'ɵɵdirectiveInject', moduleName: CORE};\n static invalidFactory: o.ExternalReference = {name: 'ɵɵinvalidFactory', moduleName: CORE};\n static invalidFactoryDep: o.ExternalReference = {name: 'ɵɵinvalidFactoryDep', moduleName: CORE};\n\n static templateRefExtractor:\n o.ExternalReference = {name: 'ɵɵtemplateRefExtractor', moduleName: CORE};\n\n static forwardRef: o.ExternalReference = {name: 'forwardRef', moduleName: CORE};\n static resolveForwardRef: o.ExternalReference = {name: 'resolveForwardRef', moduleName: CORE};\n\n static ɵɵdefineInjectable: o.ExternalReference = {name: 'ɵɵdefineInjectable', moduleName: CORE};\n static declareInjectable: o.ExternalReference = {name: 'ɵɵngDeclareInjectable', moduleName: CORE};\n static InjectableDeclaration:\n o.ExternalReference = {name: 'ɵɵInjectableDeclaration', moduleName: CORE};\n\n static resolveWindow: o.ExternalReference = {name: 'ɵɵresolveWindow', moduleName: CORE};\n static resolveDocument: o.ExternalReference = {name: 'ɵɵresolveDocument', moduleName: CORE};\n static resolveBody: o.ExternalReference = {name: 'ɵɵresolveBody', moduleName: CORE};\n\n static defineComponent: o.ExternalReference = {name: 'ɵɵdefineComponent', moduleName: CORE};\n static declareComponent: o.ExternalReference = {name: 'ɵɵngDeclareComponent', moduleName: CORE};\n\n static setComponentScope: o.ExternalReference = {name: 'ɵɵsetComponentScope', moduleName: CORE};\n\n static ChangeDetectionStrategy: o.ExternalReference = {\n name: 'ChangeDetectionStrategy',\n moduleName: CORE,\n };\n static ViewEncapsulation: o.ExternalReference = {\n name: 'ViewEncapsulation',\n moduleName: CORE,\n };\n\n static ComponentDeclaration: o.ExternalReference = {\n name: 'ɵɵComponentDeclaration',\n moduleName: CORE,\n };\n\n static FactoryDeclaration: o.ExternalReference = {\n name: 'ɵɵFactoryDeclaration',\n moduleName: CORE,\n };\n static declareFactory: o.ExternalReference = {name: 'ɵɵngDeclareFactory', moduleName: CORE};\n static FactoryTarget: o.ExternalReference = {name: 'ɵɵFactoryTarget', moduleName: CORE};\n\n static defineDirective: o.ExternalReference = {name: 'ɵɵdefineDirective', moduleName: CORE};\n static declareDirective: o.ExternalReference = {name: 'ɵɵngDeclareDirective', moduleName: CORE};\n\n static DirectiveDeclaration: o.ExternalReference = {\n name: 'ɵɵDirectiveDeclaration',\n moduleName: CORE,\n };\n\n static InjectorDef: o.ExternalReference = {name: 'ɵɵInjectorDef', moduleName: CORE};\n static InjectorDeclaration:\n o.ExternalReference = {name: 'ɵɵInjectorDeclaration', moduleName: CORE};\n\n static defineInjector: o.ExternalReference = {name: 'ɵɵdefineInjector', moduleName: CORE};\n static declareInjector: o.ExternalReference = {name: 'ɵɵngDeclareInjector', moduleName: CORE};\n\n static NgModuleDeclaration: o.ExternalReference = {\n name: 'ɵɵNgModuleDeclaration',\n moduleName: CORE,\n };\n\n static ModuleWithProviders: o.ExternalReference = {\n name: 'ModuleWithProviders',\n moduleName: CORE,\n };\n\n static defineNgModule: o.ExternalReference = {name: 'ɵɵdefineNgModule', moduleName: CORE};\n static declareNgModule: o.ExternalReference = {name: 'ɵɵngDeclareNgModule', moduleName: CORE};\n static setNgModuleScope: o.ExternalReference = {name: 'ɵɵsetNgModuleScope', moduleName: CORE};\n static registerNgModuleType:\n o.ExternalReference = {name: 'ɵɵregisterNgModuleType', moduleName: CORE};\n\n\n static PipeDeclaration: o.ExternalReference = {name: 'ɵɵPipeDeclaration', moduleName: CORE};\n\n static definePipe: o.ExternalReference = {name: 'ɵɵdefinePipe', moduleName: CORE};\n static declarePipe: o.ExternalReference = {name: 'ɵɵngDeclarePipe', moduleName: CORE};\n\n static declareClassMetadata:\n o.ExternalReference = {name: 'ɵɵngDeclareClassMetadata', moduleName: CORE};\n static setClassMetadata: o.ExternalReference = {name: 'ɵsetClassMetadata', moduleName: CORE};\n\n static queryRefresh: o.ExternalReference = {name: 'ɵɵqueryRefresh', moduleName: CORE};\n static viewQuery: o.ExternalReference = {name: 'ɵɵviewQuery', moduleName: CORE};\n static loadQuery: o.ExternalReference = {name: 'ɵɵloadQuery', moduleName: CORE};\n static contentQuery: o.ExternalReference = {name: 'ɵɵcontentQuery', moduleName: CORE};\n\n static NgOnChangesFeature: o.ExternalReference = {name: 'ɵɵNgOnChangesFeature', moduleName: CORE};\n\n static InheritDefinitionFeature:\n o.ExternalReference = {name: 'ɵɵInheritDefinitionFeature', moduleName: CORE};\n\n static CopyDefinitionFeature:\n o.ExternalReference = {name: 'ɵɵCopyDefinitionFeature', moduleName: CORE};\n\n static StandaloneFeature: o.ExternalReference = {name: 'ɵɵStandaloneFeature', moduleName: CORE};\n\n static ProvidersFeature: o.ExternalReference = {name: 'ɵɵProvidersFeature', moduleName: CORE};\n\n static listener: o.ExternalReference = {name: 'ɵɵlistener', moduleName: CORE};\n\n static getInheritedFactory: o.ExternalReference = {\n name: 'ɵɵgetInheritedFactory',\n moduleName: CORE,\n };\n\n // sanitization-related functions\n static sanitizeHtml: o.ExternalReference = {name: 'ɵɵsanitizeHtml', moduleName: CORE};\n static sanitizeStyle: o.ExternalReference = {name: 'ɵɵsanitizeStyle', moduleName: CORE};\n static sanitizeResourceUrl:\n o.ExternalReference = {name: 'ɵɵsanitizeResourceUrl', moduleName: CORE};\n static sanitizeScript: o.ExternalReference = {name: 'ɵɵsanitizeScript', moduleName: CORE};\n static sanitizeUrl: o.ExternalReference = {name: 'ɵɵsanitizeUrl', moduleName: CORE};\n static sanitizeUrlOrResourceUrl:\n o.ExternalReference = {name: 'ɵɵsanitizeUrlOrResourceUrl', moduleName: CORE};\n static trustConstantHtml: o.ExternalReference = {name: 'ɵɵtrustConstantHtml', moduleName: CORE};\n static trustConstantResourceUrl:\n o.ExternalReference = {name: 'ɵɵtrustConstantResourceUrl', moduleName: CORE};\n static validateIframeAttribute:\n o.ExternalReference = {name: 'ɵɵvalidateIframeAttribute', moduleName: 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\nimport {utf8Encode} from '../util';\n\n// https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit\nconst VERSION = 3;\n\nconst JS_B64_PREFIX = '# sourceMappingURL=data:application/json;base64,';\n\ntype Segment = {\n col0: number,\n sourceUrl?: string,\n sourceLine0?: number,\n sourceCol0?: number,\n};\n\nexport type SourceMap = {\n version: number,\n file?: string,\n sourceRoot: string,\n sources: string[],\n sourcesContent: (string|null)[],\n mappings: string,\n};\n\nexport class SourceMapGenerator {\n private sourcesContent: Map = new Map();\n private lines: Segment[][] = [];\n private lastCol0: number = 0;\n private hasMappings = false;\n\n constructor(private file: string|null = null) {}\n\n // The content is `null` when the content is expected to be loaded using the URL\n addSource(url: string, content: string|null = null): this {\n if (!this.sourcesContent.has(url)) {\n this.sourcesContent.set(url, content);\n }\n return this;\n }\n\n addLine(): this {\n this.lines.push([]);\n this.lastCol0 = 0;\n return this;\n }\n\n addMapping(col0: number, sourceUrl?: string, sourceLine0?: number, sourceCol0?: number): this {\n if (!this.currentLine) {\n throw new Error(`A line must be added before mappings can be added`);\n }\n if (sourceUrl != null && !this.sourcesContent.has(sourceUrl)) {\n throw new Error(`Unknown source file \"${sourceUrl}\"`);\n }\n if (col0 == null) {\n throw new Error(`The column in the generated code must be provided`);\n }\n if (col0 < this.lastCol0) {\n throw new Error(`Mapping should be added in output order`);\n }\n if (sourceUrl && (sourceLine0 == null || sourceCol0 == null)) {\n throw new Error(`The source location must be provided when a source url is provided`);\n }\n\n this.hasMappings = true;\n this.lastCol0 = col0;\n this.currentLine.push({col0, sourceUrl, sourceLine0, sourceCol0});\n return this;\n }\n\n /**\n * @internal strip this from published d.ts files due to\n * https://github.com/microsoft/TypeScript/issues/36216\n */\n private get currentLine(): Segment[]|null {\n return this.lines.slice(-1)[0];\n }\n\n toJSON(): SourceMap|null {\n if (!this.hasMappings) {\n return null;\n }\n\n const sourcesIndex = new Map();\n const sources: string[] = [];\n const sourcesContent: (string|null)[] = [];\n\n Array.from(this.sourcesContent.keys()).forEach((url: string, i: number) => {\n sourcesIndex.set(url, i);\n sources.push(url);\n sourcesContent.push(this.sourcesContent.get(url) || null);\n });\n\n let mappings: string = '';\n let lastCol0: number = 0;\n let lastSourceIndex: number = 0;\n let lastSourceLine0: number = 0;\n let lastSourceCol0: number = 0;\n\n this.lines.forEach(segments => {\n lastCol0 = 0;\n\n mappings += segments\n .map(segment => {\n // zero-based starting column of the line in the generated code\n let segAsStr = toBase64VLQ(segment.col0 - lastCol0);\n lastCol0 = segment.col0;\n\n if (segment.sourceUrl != null) {\n // zero-based index into the “sources” list\n segAsStr +=\n toBase64VLQ(sourcesIndex.get(segment.sourceUrl)! - lastSourceIndex);\n lastSourceIndex = sourcesIndex.get(segment.sourceUrl)!;\n // the zero-based starting line in the original source\n segAsStr += toBase64VLQ(segment.sourceLine0! - lastSourceLine0);\n lastSourceLine0 = segment.sourceLine0!;\n // the zero-based starting column in the original source\n segAsStr += toBase64VLQ(segment.sourceCol0! - lastSourceCol0);\n lastSourceCol0 = segment.sourceCol0!;\n }\n\n return segAsStr;\n })\n .join(',');\n mappings += ';';\n });\n\n mappings = mappings.slice(0, -1);\n\n return {\n 'file': this.file || '',\n 'version': VERSION,\n 'sourceRoot': '',\n 'sources': sources,\n 'sourcesContent': sourcesContent,\n 'mappings': mappings,\n };\n }\n\n toJsComment(): string {\n return this.hasMappings ? '//' + JS_B64_PREFIX + toBase64String(JSON.stringify(this, null, 0)) :\n '';\n }\n}\n\nexport function toBase64String(value: string): string {\n let b64 = '';\n const encoded = utf8Encode(value);\n for (let i = 0; i < encoded.length;) {\n const i1 = encoded[i++];\n const i2 = i < encoded.length ? encoded[i++] : null;\n const i3 = i < encoded.length ? encoded[i++] : null;\n b64 += toBase64Digit(i1 >> 2);\n b64 += toBase64Digit(((i1 & 3) << 4) | (i2 === null ? 0 : i2 >> 4));\n b64 += i2 === null ? '=' : toBase64Digit(((i2 & 15) << 2) | (i3 === null ? 0 : i3 >> 6));\n b64 += i2 === null || i3 === null ? '=' : toBase64Digit(i3 & 63);\n }\n\n return b64;\n}\n\nfunction toBase64VLQ(value: number): string {\n value = value < 0 ? ((-value) << 1) + 1 : value << 1;\n\n let out = '';\n do {\n let digit = value & 31;\n value = value >> 5;\n if (value > 0) {\n digit = digit | 32;\n }\n out += toBase64Digit(digit);\n } while (value > 0);\n\n return out;\n}\n\nconst B64_DIGITS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\nfunction toBase64Digit(value: number): string {\n if (value < 0 || value >= 64) {\n throw new Error(`Can only encode value in the range [0, 63]`);\n }\n\n return B64_DIGITS[value];\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\nimport {ParseSourceSpan} from '../parse_util';\n\nimport * as o from './output_ast';\nimport {SourceMapGenerator} from './source_map';\n\nconst _SINGLE_QUOTE_ESCAPE_STRING_RE = /'|\\\\|\\n|\\r|\\$/g;\nconst _LEGAL_IDENTIFIER_RE = /^[$A-Z_][0-9A-Z_$]*$/i;\nconst _INDENT_WITH = ' ';\n\nclass _EmittedLine {\n partsLength = 0;\n parts: string[] = [];\n srcSpans: (ParseSourceSpan|null)[] = [];\n constructor(public indent: number) {}\n}\n\nexport class EmitterVisitorContext {\n static createRoot(): EmitterVisitorContext {\n return new EmitterVisitorContext(0);\n }\n\n private _lines: _EmittedLine[];\n\n constructor(private _indent: number) {\n this._lines = [new _EmittedLine(_indent)];\n }\n\n /**\n * @internal strip this from published d.ts files due to\n * https://github.com/microsoft/TypeScript/issues/36216\n */\n private get _currentLine(): _EmittedLine {\n return this._lines[this._lines.length - 1];\n }\n\n println(from?: {sourceSpan: ParseSourceSpan|null}|null, lastPart: string = ''): void {\n this.print(from || null, lastPart, true);\n }\n\n lineIsEmpty(): boolean {\n return this._currentLine.parts.length === 0;\n }\n\n lineLength(): number {\n return this._currentLine.indent * _INDENT_WITH.length + this._currentLine.partsLength;\n }\n\n print(from: {sourceSpan: ParseSourceSpan|null}|null, part: string, newLine: boolean = false) {\n if (part.length > 0) {\n this._currentLine.parts.push(part);\n this._currentLine.partsLength += part.length;\n this._currentLine.srcSpans.push(from && from.sourceSpan || null);\n }\n if (newLine) {\n this._lines.push(new _EmittedLine(this._indent));\n }\n }\n\n removeEmptyLastLine() {\n if (this.lineIsEmpty()) {\n this._lines.pop();\n }\n }\n\n incIndent() {\n this._indent++;\n if (this.lineIsEmpty()) {\n this._currentLine.indent = this._indent;\n }\n }\n\n decIndent() {\n this._indent--;\n if (this.lineIsEmpty()) {\n this._currentLine.indent = this._indent;\n }\n }\n\n toSource(): string {\n return this.sourceLines\n .map(l => l.parts.length > 0 ? _createIndent(l.indent) + l.parts.join('') : '')\n .join('\\n');\n }\n\n toSourceMapGenerator(genFilePath: string, startsAtLine: number = 0): SourceMapGenerator {\n const map = new SourceMapGenerator(genFilePath);\n\n let firstOffsetMapped = false;\n const mapFirstOffsetIfNeeded = () => {\n if (!firstOffsetMapped) {\n // Add a single space so that tools won't try to load the file from disk.\n // Note: We are using virtual urls like `ng:///`, so we have to\n // provide a content here.\n map.addSource(genFilePath, ' ').addMapping(0, genFilePath, 0, 0);\n firstOffsetMapped = true;\n }\n };\n\n for (let i = 0; i < startsAtLine; i++) {\n map.addLine();\n mapFirstOffsetIfNeeded();\n }\n\n this.sourceLines.forEach((line, lineIdx) => {\n map.addLine();\n\n const spans = line.srcSpans;\n const parts = line.parts;\n let col0 = line.indent * _INDENT_WITH.length;\n let spanIdx = 0;\n // skip leading parts without source spans\n while (spanIdx < spans.length && !spans[spanIdx]) {\n col0 += parts[spanIdx].length;\n spanIdx++;\n }\n if (spanIdx < spans.length && lineIdx === 0 && col0 === 0) {\n firstOffsetMapped = true;\n } else {\n mapFirstOffsetIfNeeded();\n }\n\n while (spanIdx < spans.length) {\n const span = spans[spanIdx]!;\n const source = span.start.file;\n const sourceLine = span.start.line;\n const sourceCol = span.start.col;\n map.addSource(source.url, source.content)\n .addMapping(col0, source.url, sourceLine, sourceCol);\n\n col0 += parts[spanIdx].length;\n spanIdx++;\n\n // assign parts without span or the same span to the previous segment\n while (spanIdx < spans.length && (span === spans[spanIdx] || !spans[spanIdx])) {\n col0 += parts[spanIdx].length;\n spanIdx++;\n }\n }\n });\n\n return map;\n }\n\n spanOf(line: number, column: number): ParseSourceSpan|null {\n const emittedLine = this._lines[line];\n if (emittedLine) {\n let columnsLeft = column - _createIndent(emittedLine.indent).length;\n for (let partIndex = 0; partIndex < emittedLine.parts.length; partIndex++) {\n const part = emittedLine.parts[partIndex];\n if (part.length > columnsLeft) {\n return emittedLine.srcSpans[partIndex];\n }\n columnsLeft -= part.length;\n }\n }\n return null;\n }\n\n /**\n * @internal strip this from published d.ts files due to\n * https://github.com/microsoft/TypeScript/issues/36216\n */\n private get sourceLines(): _EmittedLine[] {\n if (this._lines.length && this._lines[this._lines.length - 1].parts.length === 0) {\n return this._lines.slice(0, -1);\n }\n return this._lines;\n }\n}\n\nexport abstract class AbstractEmitterVisitor implements o.StatementVisitor, o.ExpressionVisitor {\n constructor(private _escapeDollarInStrings: boolean) {}\n\n protected printLeadingComments(stmt: o.Statement, ctx: EmitterVisitorContext): void {\n if (stmt.leadingComments === undefined) {\n return;\n }\n for (const comment of stmt.leadingComments) {\n if (comment instanceof o.JSDocComment) {\n ctx.print(stmt, `/*${comment.toString()}*/`, comment.trailingNewline);\n } else {\n if (comment.multiline) {\n ctx.print(stmt, `/* ${comment.text} */`, comment.trailingNewline);\n } else {\n comment.text.split('\\n').forEach((line) => {\n ctx.println(stmt, `// ${line}`);\n });\n }\n }\n }\n }\n\n visitExpressionStmt(stmt: o.ExpressionStatement, ctx: EmitterVisitorContext): any {\n this.printLeadingComments(stmt, ctx);\n stmt.expr.visitExpression(this, ctx);\n ctx.println(stmt, ';');\n return null;\n }\n\n visitReturnStmt(stmt: o.ReturnStatement, ctx: EmitterVisitorContext): any {\n this.printLeadingComments(stmt, ctx);\n ctx.print(stmt, `return `);\n stmt.value.visitExpression(this, ctx);\n ctx.println(stmt, ';');\n return null;\n }\n\n visitIfStmt(stmt: o.IfStmt, ctx: EmitterVisitorContext): any {\n this.printLeadingComments(stmt, ctx);\n ctx.print(stmt, `if (`);\n stmt.condition.visitExpression(this, ctx);\n ctx.print(stmt, `) {`);\n const hasElseCase = stmt.falseCase != null && stmt.falseCase.length > 0;\n if (stmt.trueCase.length <= 1 && !hasElseCase) {\n ctx.print(stmt, ` `);\n this.visitAllStatements(stmt.trueCase, ctx);\n ctx.removeEmptyLastLine();\n ctx.print(stmt, ` `);\n } else {\n ctx.println();\n ctx.incIndent();\n this.visitAllStatements(stmt.trueCase, ctx);\n ctx.decIndent();\n if (hasElseCase) {\n ctx.println(stmt, `} else {`);\n ctx.incIndent();\n this.visitAllStatements(stmt.falseCase, ctx);\n ctx.decIndent();\n }\n }\n ctx.println(stmt, `}`);\n return null;\n }\n\n abstract visitDeclareVarStmt(stmt: o.DeclareVarStmt, ctx: EmitterVisitorContext): any;\n\n visitWriteVarExpr(expr: o.WriteVarExpr, ctx: EmitterVisitorContext): any {\n const lineWasEmpty = ctx.lineIsEmpty();\n if (!lineWasEmpty) {\n ctx.print(expr, '(');\n }\n ctx.print(expr, `${expr.name} = `);\n expr.value.visitExpression(this, ctx);\n if (!lineWasEmpty) {\n ctx.print(expr, ')');\n }\n return null;\n }\n visitWriteKeyExpr(expr: o.WriteKeyExpr, ctx: EmitterVisitorContext): any {\n const lineWasEmpty = ctx.lineIsEmpty();\n if (!lineWasEmpty) {\n ctx.print(expr, '(');\n }\n expr.receiver.visitExpression(this, ctx);\n ctx.print(expr, `[`);\n expr.index.visitExpression(this, ctx);\n ctx.print(expr, `] = `);\n expr.value.visitExpression(this, ctx);\n if (!lineWasEmpty) {\n ctx.print(expr, ')');\n }\n return null;\n }\n visitWritePropExpr(expr: o.WritePropExpr, ctx: EmitterVisitorContext): any {\n const lineWasEmpty = ctx.lineIsEmpty();\n if (!lineWasEmpty) {\n ctx.print(expr, '(');\n }\n expr.receiver.visitExpression(this, ctx);\n ctx.print(expr, `.${expr.name} = `);\n expr.value.visitExpression(this, ctx);\n if (!lineWasEmpty) {\n ctx.print(expr, ')');\n }\n return null;\n }\n\n visitInvokeFunctionExpr(expr: o.InvokeFunctionExpr, ctx: EmitterVisitorContext): any {\n expr.fn.visitExpression(this, ctx);\n ctx.print(expr, `(`);\n this.visitAllExpressions(expr.args, ctx, ',');\n ctx.print(expr, `)`);\n return null;\n }\n visitTaggedTemplateExpr(expr: o.TaggedTemplateExpr, ctx: EmitterVisitorContext): any {\n expr.tag.visitExpression(this, ctx);\n ctx.print(expr, '`' + expr.template.elements[0].rawText);\n for (let i = 1; i < expr.template.elements.length; i++) {\n ctx.print(expr, '${');\n expr.template.expressions[i - 1].visitExpression(this, ctx);\n ctx.print(expr, `}${expr.template.elements[i].rawText}`);\n }\n ctx.print(expr, '`');\n return null;\n }\n visitWrappedNodeExpr(ast: o.WrappedNodeExpr, ctx: EmitterVisitorContext): any {\n throw new Error('Abstract emitter cannot visit WrappedNodeExpr.');\n }\n visitTypeofExpr(expr: o.TypeofExpr, ctx: EmitterVisitorContext): any {\n ctx.print(expr, 'typeof ');\n expr.expr.visitExpression(this, ctx);\n }\n visitReadVarExpr(ast: o.ReadVarExpr, ctx: EmitterVisitorContext): any {\n ctx.print(ast, ast.name);\n return null;\n }\n visitInstantiateExpr(ast: o.InstantiateExpr, ctx: EmitterVisitorContext): any {\n ctx.print(ast, `new `);\n ast.classExpr.visitExpression(this, ctx);\n ctx.print(ast, `(`);\n this.visitAllExpressions(ast.args, ctx, ',');\n ctx.print(ast, `)`);\n return null;\n }\n\n visitLiteralExpr(ast: o.LiteralExpr, ctx: EmitterVisitorContext): any {\n const value = ast.value;\n if (typeof value === 'string') {\n ctx.print(ast, escapeIdentifier(value, this._escapeDollarInStrings));\n } else {\n ctx.print(ast, `${value}`);\n }\n return null;\n }\n\n visitLocalizedString(ast: o.LocalizedString, ctx: EmitterVisitorContext): any {\n const head = ast.serializeI18nHead();\n ctx.print(ast, '$localize `' + head.raw);\n for (let i = 1; i < ast.messageParts.length; i++) {\n ctx.print(ast, '${');\n ast.expressions[i - 1].visitExpression(this, ctx);\n ctx.print(ast, `}${ast.serializeI18nTemplatePart(i).raw}`);\n }\n ctx.print(ast, '`');\n return null;\n }\n\n abstract visitExternalExpr(ast: o.ExternalExpr, ctx: EmitterVisitorContext): any;\n\n visitConditionalExpr(ast: o.ConditionalExpr, ctx: EmitterVisitorContext): any {\n ctx.print(ast, `(`);\n ast.condition.visitExpression(this, ctx);\n ctx.print(ast, '? ');\n ast.trueCase.visitExpression(this, ctx);\n ctx.print(ast, ': ');\n ast.falseCase!.visitExpression(this, ctx);\n ctx.print(ast, `)`);\n return null;\n }\n visitNotExpr(ast: o.NotExpr, ctx: EmitterVisitorContext): any {\n ctx.print(ast, '!');\n ast.condition.visitExpression(this, ctx);\n return null;\n }\n abstract visitFunctionExpr(ast: o.FunctionExpr, ctx: EmitterVisitorContext): any;\n abstract visitDeclareFunctionStmt(stmt: o.DeclareFunctionStmt, context: any): any;\n\n visitUnaryOperatorExpr(ast: o.UnaryOperatorExpr, ctx: EmitterVisitorContext): any {\n let opStr: string;\n switch (ast.operator) {\n case o.UnaryOperator.Plus:\n opStr = '+';\n break;\n case o.UnaryOperator.Minus:\n opStr = '-';\n break;\n default:\n throw new Error(`Unknown operator ${ast.operator}`);\n }\n if (ast.parens) ctx.print(ast, `(`);\n ctx.print(ast, opStr);\n ast.expr.visitExpression(this, ctx);\n if (ast.parens) ctx.print(ast, `)`);\n return null;\n }\n\n visitBinaryOperatorExpr(ast: o.BinaryOperatorExpr, ctx: EmitterVisitorContext): any {\n let opStr: string;\n switch (ast.operator) {\n case o.BinaryOperator.Equals:\n opStr = '==';\n break;\n case o.BinaryOperator.Identical:\n opStr = '===';\n break;\n case o.BinaryOperator.NotEquals:\n opStr = '!=';\n break;\n case o.BinaryOperator.NotIdentical:\n opStr = '!==';\n break;\n case o.BinaryOperator.And:\n opStr = '&&';\n break;\n case o.BinaryOperator.BitwiseAnd:\n opStr = '&';\n break;\n case o.BinaryOperator.Or:\n opStr = '||';\n break;\n case o.BinaryOperator.Plus:\n opStr = '+';\n break;\n case o.BinaryOperator.Minus:\n opStr = '-';\n break;\n case o.BinaryOperator.Divide:\n opStr = '/';\n break;\n case o.BinaryOperator.Multiply:\n opStr = '*';\n break;\n case o.BinaryOperator.Modulo:\n opStr = '%';\n break;\n case o.BinaryOperator.Lower:\n opStr = '<';\n break;\n case o.BinaryOperator.LowerEquals:\n opStr = '<=';\n break;\n case o.BinaryOperator.Bigger:\n opStr = '>';\n break;\n case o.BinaryOperator.BiggerEquals:\n opStr = '>=';\n break;\n case o.BinaryOperator.NullishCoalesce:\n opStr = '??';\n break;\n default:\n throw new Error(`Unknown operator ${ast.operator}`);\n }\n if (ast.parens) ctx.print(ast, `(`);\n ast.lhs.visitExpression(this, ctx);\n ctx.print(ast, ` ${opStr} `);\n ast.rhs.visitExpression(this, ctx);\n if (ast.parens) ctx.print(ast, `)`);\n return null;\n }\n\n visitReadPropExpr(ast: o.ReadPropExpr, ctx: EmitterVisitorContext): any {\n ast.receiver.visitExpression(this, ctx);\n ctx.print(ast, `.`);\n ctx.print(ast, ast.name);\n return null;\n }\n visitReadKeyExpr(ast: o.ReadKeyExpr, ctx: EmitterVisitorContext): any {\n ast.receiver.visitExpression(this, ctx);\n ctx.print(ast, `[`);\n ast.index.visitExpression(this, ctx);\n ctx.print(ast, `]`);\n return null;\n }\n visitLiteralArrayExpr(ast: o.LiteralArrayExpr, ctx: EmitterVisitorContext): any {\n ctx.print(ast, `[`);\n this.visitAllExpressions(ast.entries, ctx, ',');\n ctx.print(ast, `]`);\n return null;\n }\n visitLiteralMapExpr(ast: o.LiteralMapExpr, ctx: EmitterVisitorContext): any {\n ctx.print(ast, `{`);\n this.visitAllObjects(entry => {\n ctx.print(ast, `${escapeIdentifier(entry.key, this._escapeDollarInStrings, entry.quoted)}:`);\n entry.value.visitExpression(this, ctx);\n }, ast.entries, ctx, ',');\n ctx.print(ast, `}`);\n return null;\n }\n visitCommaExpr(ast: o.CommaExpr, ctx: EmitterVisitorContext): any {\n ctx.print(ast, '(');\n this.visitAllExpressions(ast.parts, ctx, ',');\n ctx.print(ast, ')');\n return null;\n }\n visitAllExpressions(expressions: o.Expression[], ctx: EmitterVisitorContext, separator: string):\n void {\n this.visitAllObjects(expr => expr.visitExpression(this, ctx), expressions, ctx, separator);\n }\n\n visitAllObjects(\n handler: (t: T) => void, expressions: T[], ctx: EmitterVisitorContext,\n separator: string): void {\n let incrementedIndent = false;\n for (let i = 0; i < expressions.length; i++) {\n if (i > 0) {\n if (ctx.lineLength() > 80) {\n ctx.print(null, separator, true);\n if (!incrementedIndent) {\n // continuation are marked with double indent.\n ctx.incIndent();\n ctx.incIndent();\n incrementedIndent = true;\n }\n } else {\n ctx.print(null, separator, false);\n }\n }\n handler(expressions[i]);\n }\n if (incrementedIndent) {\n // continuation are marked with double indent.\n ctx.decIndent();\n ctx.decIndent();\n }\n }\n\n visitAllStatements(statements: o.Statement[], ctx: EmitterVisitorContext): void {\n statements.forEach((stmt) => stmt.visitStatement(this, ctx));\n }\n}\n\nexport function escapeIdentifier(\n input: string, escapeDollar: boolean, alwaysQuote: boolean = true): any {\n if (input == null) {\n return null;\n }\n const body = input.replace(_SINGLE_QUOTE_ESCAPE_STRING_RE, (...match: string[]) => {\n if (match[0] == '$') {\n return escapeDollar ? '\\\\$' : '$';\n } else if (match[0] == '\\n') {\n return '\\\\n';\n } else if (match[0] == '\\r') {\n return '\\\\r';\n } else {\n return `\\\\${match[0]}`;\n }\n });\n const requiresQuotes = alwaysQuote || !_LEGAL_IDENTIFIER_RE.test(body);\n return requiresQuotes ? `'${body}'` : body;\n}\n\nfunction _createIndent(count: number): string {\n let res = '';\n for (let i = 0; i < count; i++) {\n res += _INDENT_WITH;\n }\n return res;\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\nimport {escapeIdentifier} from '../output/abstract_emitter';\nimport * as o from '../output/output_ast';\n\nimport {Identifiers} from './r3_identifiers';\n\nexport function typeWithParameters(type: o.Expression, numParams: number): o.ExpressionType {\n if (numParams === 0) {\n return o.expressionType(type);\n }\n const params: o.Type[] = [];\n for (let i = 0; i < numParams; i++) {\n params.push(o.DYNAMIC_TYPE);\n }\n return o.expressionType(type, undefined, params);\n}\n\nexport interface R3Reference {\n value: o.Expression;\n type: o.Expression;\n}\n\n/**\n * Result of compilation of a render3 code unit, e.g. component, directive, pipe, etc.\n */\nexport interface R3CompiledExpression {\n expression: o.Expression;\n type: o.Type;\n statements: o.Statement[];\n}\n\nconst ANIMATE_SYMBOL_PREFIX = '@';\nexport function prepareSyntheticPropertyName(name: string) {\n return `${ANIMATE_SYMBOL_PREFIX}${name}`;\n}\n\nexport function prepareSyntheticListenerName(name: string, phase: string) {\n return `${ANIMATE_SYMBOL_PREFIX}${name}.${phase}`;\n}\n\nexport function getSafePropertyAccessString(accessor: string, name: string): string {\n const escapedName = escapeIdentifier(name, false, false);\n return escapedName !== name ? `${accessor}[${escapedName}]` : `${accessor}.${name}`;\n}\n\nexport function prepareSyntheticListenerFunctionName(name: string, phase: string) {\n return `animation_${name}_${phase}`;\n}\n\nexport function jitOnlyGuardedExpression(expr: o.Expression): o.Expression {\n return guardedExpression('ngJitMode', expr);\n}\n\nexport function devOnlyGuardedExpression(expr: o.Expression): o.Expression {\n return guardedExpression('ngDevMode', expr);\n}\n\nexport function guardedExpression(guard: string, expr: o.Expression): o.Expression {\n const guardExpr = new o.ExternalExpr({name: guard, moduleName: null});\n const guardNotDefined = new o.BinaryOperatorExpr(\n o.BinaryOperator.Identical, new o.TypeofExpr(guardExpr), o.literal('undefined'));\n const guardUndefinedOrTrue = new o.BinaryOperatorExpr(\n o.BinaryOperator.Or, guardNotDefined, guardExpr, /* type */ undefined,\n /* sourceSpan */ undefined, true);\n return new o.BinaryOperatorExpr(o.BinaryOperator.And, guardUndefinedOrTrue, expr);\n}\n\nexport function wrapReference(value: any): R3Reference {\n const wrapped = new o.WrappedNodeExpr(value);\n return {value: wrapped, type: wrapped};\n}\n\nexport function refsToArray(refs: R3Reference[], shouldForwardDeclare: boolean): o.Expression {\n const values = o.literalArr(refs.map(ref => ref.value));\n return shouldForwardDeclare ? o.fn([], [new o.ReturnStatement(values)]) : values;\n}\n\n\n/**\n * Describes an expression that may have been wrapped in a `forwardRef()` guard.\n *\n * This is used when describing expressions that can refer to types that may eagerly reference types\n * that have not yet been defined.\n */\nexport interface MaybeForwardRefExpression {\n /**\n * The unwrapped expression.\n */\n expression: T;\n /**\n * Specified whether the `expression` contains a reference to something that has not yet been\n * defined, and whether the expression is still wrapped in a `forwardRef()` call.\n *\n * If this value is `ForwardRefHandling.None` then the `expression` is safe to use as-is.\n *\n * Otherwise the `expression` was wrapped in a call to `forwardRef()` and must not be eagerly\n * evaluated. Instead it must be wrapped in a function closure that will be evaluated lazily to\n * allow the definition of the expression to be evaluated first.\n *\n * In full AOT compilation it can be safe to unwrap the `forwardRef()` call up front if the\n * expression will actually be evaluated lazily inside a function call after the value of\n * `expression` has been defined.\n *\n * But in other cases, such as partial AOT compilation or JIT compilation the expression will be\n * evaluated eagerly in top level code so will need to continue to be wrapped in a `forwardRef()`\n * call.\n *\n */\n forwardRef: ForwardRefHandling;\n}\n\nexport function createMayBeForwardRefExpression(\n expression: T, forwardRef: ForwardRefHandling): MaybeForwardRefExpression {\n return {expression, forwardRef};\n}\n\n/**\n * Convert a `MaybeForwardRefExpression` to an `Expression`, possibly wrapping its expression in a\n * `forwardRef()` call.\n *\n * If `MaybeForwardRefExpression.forwardRef` is `ForwardRefHandling.Unwrapped` then the expression\n * was originally wrapped in a `forwardRef()` call to prevent the value from being eagerly evaluated\n * in the code.\n *\n * See `packages/compiler-cli/src/ngtsc/annotations/src/injectable.ts` and\n * `packages/compiler/src/jit_compiler_facade.ts` for more information.\n */\nexport function convertFromMaybeForwardRefExpression(\n {expression, forwardRef}: MaybeForwardRefExpression): o.Expression {\n switch (forwardRef) {\n case ForwardRefHandling.None:\n case ForwardRefHandling.Wrapped:\n return expression;\n case ForwardRefHandling.Unwrapped:\n return generateForwardRef(expression);\n }\n}\n\n/**\n * Generate an expression that has the given `expr` wrapped in the following form:\n *\n * ```\n * forwardRef(() => expr)\n * ```\n */\nexport function generateForwardRef(expr: o.Expression): o.Expression {\n return o.importExpr(Identifiers.forwardRef).callFn([o.fn([], [new o.ReturnStatement(expr)])]);\n}\n\n/**\n * Specifies how a forward ref has been handled in a MaybeForwardRefExpression\n */\nexport const enum ForwardRefHandling {\n /** The expression was not wrapped in a `forwardRef()` call in the first place. */\n None,\n /** The expression is still wrapped in a `forwardRef()` call. */\n Wrapped,\n /** The expression was wrapped in a `forwardRef()` call but has since been unwrapped. */\n Unwrapped,\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 */\nimport {InjectFlags} from '../core';\nimport * as o from '../output/output_ast';\nimport {Identifiers as R3} from '../render3/r3_identifiers';\nimport {R3CompiledExpression, R3Reference, typeWithParameters} from './util';\n\n\n/**\n * Metadata required by the factory generator to generate a `factory` function for a type.\n */\nexport interface R3ConstructorFactoryMetadata {\n /**\n * String name of the type being generated (used to name the factory function).\n */\n name: string;\n\n /**\n * An expression representing the interface type being constructed.\n */\n type: R3Reference;\n\n /**\n * An expression representing the constructor type, intended for use within a class definition\n * itself.\n *\n * This can differ from the outer `type` if the class is being compiled by ngcc and is inside\n * an IIFE structure that uses a different name internally.\n */\n internalType: o.Expression;\n\n /** Number of arguments for the `type`. */\n typeArgumentCount: number;\n\n /**\n * Regardless of whether `fnOrClass` is a constructor function or a user-defined factory, it\n * may have 0 or more parameters, which will be injected according to the `R3DependencyMetadata`\n * for those parameters. If this is `null`, then the type's constructor is nonexistent and will\n * be inherited from `fnOrClass` which is interpreted as the current type. If this is `'invalid'`,\n * then one or more of the parameters wasn't resolvable and any attempt to use these deps will\n * result in a runtime error.\n */\n deps: R3DependencyMetadata[]|'invalid'|null;\n\n /**\n * Type of the target being created by the factory.\n */\n target: FactoryTarget;\n}\n\nexport enum R3FactoryDelegateType {\n Class = 0,\n Function = 1,\n}\n\nexport interface R3DelegatedFnOrClassMetadata extends R3ConstructorFactoryMetadata {\n delegate: o.Expression;\n delegateType: R3FactoryDelegateType;\n delegateDeps: R3DependencyMetadata[];\n}\n\nexport interface R3ExpressionFactoryMetadata extends R3ConstructorFactoryMetadata {\n expression: o.Expression;\n}\n\nexport type R3FactoryMetadata =\n R3ConstructorFactoryMetadata|R3DelegatedFnOrClassMetadata|R3ExpressionFactoryMetadata;\n\nexport enum FactoryTarget {\n Directive = 0,\n Component = 1,\n Injectable = 2,\n Pipe = 3,\n NgModule = 4,\n}\n\nexport interface R3DependencyMetadata {\n /**\n * An expression representing the token or value to be injected.\n * Or `null` if the dependency could not be resolved - making it invalid.\n */\n token: o.Expression|null;\n\n /**\n * If an @Attribute decorator is present, this is the literal type of the attribute name, or\n * the unknown type if no literal type is available (e.g. the attribute name is an expression).\n * Otherwise it is null;\n */\n attributeNameType: o.Expression|null;\n\n /**\n * Whether the dependency has an @Host qualifier.\n */\n host: boolean;\n\n /**\n * Whether the dependency has an @Optional qualifier.\n */\n optional: boolean;\n\n /**\n * Whether the dependency has an @Self qualifier.\n */\n self: boolean;\n\n /**\n * Whether the dependency has an @SkipSelf qualifier.\n */\n skipSelf: boolean;\n}\n\n/**\n * Construct a factory function expression for the given `R3FactoryMetadata`.\n */\nexport function compileFactoryFunction(meta: R3FactoryMetadata): R3CompiledExpression {\n const t = o.variable('t');\n let baseFactoryVar: o.ReadVarExpr|null = null;\n\n // The type to instantiate via constructor invocation. If there is no delegated factory, meaning\n // this type is always created by constructor invocation, then this is the type-to-create\n // parameter provided by the user (t) if specified, or the current type if not. If there is a\n // delegated factory (which is used to create the current type) then this is only the type-to-\n // create parameter (t).\n const typeForCtor = !isDelegatedFactoryMetadata(meta) ?\n new o.BinaryOperatorExpr(o.BinaryOperator.Or, t, meta.internalType) :\n t;\n\n let ctorExpr: o.Expression|null = null;\n if (meta.deps !== null) {\n // There is a constructor (either explicitly or implicitly defined).\n if (meta.deps !== 'invalid') {\n ctorExpr = new o.InstantiateExpr(typeForCtor, injectDependencies(meta.deps, meta.target));\n }\n } else {\n // There is no constructor, use the base class' factory to construct typeForCtor.\n baseFactoryVar = o.variable(`ɵ${meta.name}_BaseFactory`);\n ctorExpr = baseFactoryVar.callFn([typeForCtor]);\n }\n\n const body: o.Statement[] = [];\n let retExpr: o.Expression|null = null;\n\n function makeConditionalFactory(nonCtorExpr: o.Expression): o.ReadVarExpr {\n const r = o.variable('r');\n body.push(r.set(o.NULL_EXPR).toDeclStmt());\n const ctorStmt = ctorExpr !== null ? r.set(ctorExpr).toStmt() :\n o.importExpr(R3.invalidFactory).callFn([]).toStmt();\n body.push(o.ifStmt(t, [ctorStmt], [r.set(nonCtorExpr).toStmt()]));\n return r;\n }\n\n if (isDelegatedFactoryMetadata(meta)) {\n // This type is created with a delegated factory. If a type parameter is not specified, call\n // the factory instead.\n const delegateArgs = injectDependencies(meta.delegateDeps, meta.target);\n // Either call `new delegate(...)` or `delegate(...)` depending on meta.delegateType.\n const factoryExpr = new (\n meta.delegateType === R3FactoryDelegateType.Class ?\n o.InstantiateExpr :\n o.InvokeFunctionExpr)(meta.delegate, delegateArgs);\n retExpr = makeConditionalFactory(factoryExpr);\n } else if (isExpressionFactoryMetadata(meta)) {\n // TODO(alxhub): decide whether to lower the value here or in the caller\n retExpr = makeConditionalFactory(meta.expression);\n } else {\n retExpr = ctorExpr;\n }\n\n\n if (retExpr === null) {\n // The expression cannot be formed so render an `ɵɵinvalidFactory()` call.\n body.push(o.importExpr(R3.invalidFactory).callFn([]).toStmt());\n } else if (baseFactoryVar !== null) {\n // This factory uses a base factory, so call `ɵɵgetInheritedFactory()` to compute it.\n const getInheritedFactoryCall =\n o.importExpr(R3.getInheritedFactory).callFn([meta.internalType]);\n // Memoize the base factoryFn: `baseFactory || (baseFactory = ɵɵgetInheritedFactory(...))`\n const baseFactory = new o.BinaryOperatorExpr(\n o.BinaryOperator.Or, baseFactoryVar, baseFactoryVar.set(getInheritedFactoryCall));\n body.push(new o.ReturnStatement(baseFactory.callFn([typeForCtor])));\n } else {\n // This is straightforward factory, just return it.\n body.push(new o.ReturnStatement(retExpr));\n }\n\n let factoryFn: o.Expression = o.fn(\n [new o.FnParam('t', o.DYNAMIC_TYPE)], body, o.INFERRED_TYPE, undefined,\n `${meta.name}_Factory`);\n\n if (baseFactoryVar !== null) {\n // There is a base factory variable so wrap its declaration along with the factory function into\n // an IIFE.\n factoryFn = o.fn([], [\n new o.DeclareVarStmt(baseFactoryVar.name!), new o.ReturnStatement(factoryFn)\n ]).callFn([], /* sourceSpan */ undefined, /* pure */ true);\n }\n\n return {\n expression: factoryFn,\n statements: [],\n type: createFactoryType(meta),\n };\n}\n\nexport function createFactoryType(meta: R3FactoryMetadata) {\n const ctorDepsType =\n meta.deps !== null && meta.deps !== 'invalid' ? createCtorDepsType(meta.deps) : o.NONE_TYPE;\n return o.expressionType(o.importExpr(\n R3.FactoryDeclaration,\n [typeWithParameters(meta.type.type, meta.typeArgumentCount), ctorDepsType]));\n}\n\nfunction injectDependencies(deps: R3DependencyMetadata[], target: FactoryTarget): o.Expression[] {\n return deps.map((dep, index) => compileInjectDependency(dep, target, index));\n}\n\nfunction compileInjectDependency(\n dep: R3DependencyMetadata, target: FactoryTarget, index: number): o.Expression {\n // Interpret the dependency according to its resolved type.\n if (dep.token === null) {\n return o.importExpr(R3.invalidFactoryDep).callFn([o.literal(index)]);\n } else if (dep.attributeNameType === null) {\n // Build up the injection flags according to the metadata.\n const flags = InjectFlags.Default | (dep.self ? InjectFlags.Self : 0) |\n (dep.skipSelf ? InjectFlags.SkipSelf : 0) | (dep.host ? InjectFlags.Host : 0) |\n (dep.optional ? InjectFlags.Optional : 0) |\n (target === FactoryTarget.Pipe ? InjectFlags.ForPipe : 0);\n\n // If this dependency is optional or otherwise has non-default flags, then additional\n // parameters describing how to inject the dependency must be passed to the inject function\n // that's being used.\n let flagsParam: o.LiteralExpr|null =\n (flags !== InjectFlags.Default || dep.optional) ? o.literal(flags) : null;\n\n // Build up the arguments to the injectFn call.\n const injectArgs = [dep.token];\n if (flagsParam) {\n injectArgs.push(flagsParam);\n }\n const injectFn = getInjectFn(target);\n return o.importExpr(injectFn).callFn(injectArgs);\n } else {\n // The `dep.attributeTypeName` value is defined, which indicates that this is an `@Attribute()`\n // type dependency. For the generated JS we still want to use the `dep.token` value in case the\n // name given for the attribute is not a string literal. For example given `@Attribute(foo())`,\n // we want to generate `ɵɵinjectAttribute(foo())`.\n //\n // The `dep.attributeTypeName` is only actually used (in `createCtorDepType()`) to generate\n // typings.\n return o.importExpr(R3.injectAttribute).callFn([dep.token]);\n }\n}\n\nfunction createCtorDepsType(deps: R3DependencyMetadata[]): o.Type {\n let hasTypes = false;\n const attributeTypes = deps.map(dep => {\n const type = createCtorDepType(dep);\n if (type !== null) {\n hasTypes = true;\n return type;\n } else {\n return o.literal(null);\n }\n });\n\n if (hasTypes) {\n return o.expressionType(o.literalArr(attributeTypes));\n } else {\n return o.NONE_TYPE;\n }\n}\n\nfunction createCtorDepType(dep: R3DependencyMetadata): o.LiteralMapExpr|null {\n const entries: {key: string, quoted: boolean, value: o.Expression}[] = [];\n\n if (dep.attributeNameType !== null) {\n entries.push({key: 'attribute', value: dep.attributeNameType, quoted: false});\n }\n if (dep.optional) {\n entries.push({key: 'optional', value: o.literal(true), quoted: false});\n }\n if (dep.host) {\n entries.push({key: 'host', value: o.literal(true), quoted: false});\n }\n if (dep.self) {\n entries.push({key: 'self', value: o.literal(true), quoted: false});\n }\n if (dep.skipSelf) {\n entries.push({key: 'skipSelf', value: o.literal(true), quoted: false});\n }\n\n return entries.length > 0 ? o.literalMap(entries) : null;\n}\n\nexport function isDelegatedFactoryMetadata(meta: R3FactoryMetadata):\n meta is R3DelegatedFnOrClassMetadata {\n return (meta as any).delegateType !== undefined;\n}\n\nexport function isExpressionFactoryMetadata(meta: R3FactoryMetadata):\n meta is R3ExpressionFactoryMetadata {\n return (meta as any).expression !== undefined;\n}\n\nfunction getInjectFn(target: FactoryTarget): o.ExternalReference {\n switch (target) {\n case FactoryTarget.Component:\n case FactoryTarget.Directive:\n case FactoryTarget.Pipe:\n return R3.directiveInject;\n case FactoryTarget.NgModule:\n case FactoryTarget.Injectable:\n default:\n return R3.inject;\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\nimport {SecurityContext} from '../core';\nimport {AST, BindingType, BoundElementProperty, ParsedEvent, ParsedEventType} from '../expression_parser/ast';\nimport {I18nMeta} from '../i18n/i18n_ast';\nimport {ParseSourceSpan} from '../parse_util';\n\nexport interface Node {\n sourceSpan: ParseSourceSpan;\n visit(visitor: Visitor): Result;\n}\n\n/**\n * This is an R3 `Node`-like wrapper for a raw `html.Comment` node. We do not currently\n * require the implementation of a visitor for Comments as they are only collected at\n * the top-level of the R3 AST, and only if `Render3ParseOptions['collectCommentNodes']`\n * is true.\n */\nexport class Comment implements Node {\n constructor(public value: string, public sourceSpan: ParseSourceSpan) {}\n visit(_visitor: Visitor): Result {\n throw new Error('visit() not implemented for Comment');\n }\n}\n\nexport class Text implements Node {\n constructor(public value: string, public sourceSpan: ParseSourceSpan) {}\n visit(visitor: Visitor): Result {\n return visitor.visitText(this);\n }\n}\n\nexport class BoundText implements Node {\n constructor(public value: AST, public sourceSpan: ParseSourceSpan, public i18n?: I18nMeta) {}\n visit(visitor: Visitor): Result {\n return visitor.visitBoundText(this);\n }\n}\n\n/**\n * Represents a text attribute in the template.\n *\n * `valueSpan` may not be present in cases where there is no value `
`.\n * `keySpan` may also not be present for synthetic attributes from ICU expansions.\n */\nexport class TextAttribute implements Node {\n constructor(\n public name: string, public value: string, public sourceSpan: ParseSourceSpan,\n readonly keySpan: ParseSourceSpan|undefined, public valueSpan?: ParseSourceSpan,\n public i18n?: I18nMeta) {}\n visit(visitor: Visitor): Result {\n return visitor.visitTextAttribute(this);\n }\n}\n\nexport class BoundAttribute implements Node {\n constructor(\n public name: string, public type: BindingType, public securityContext: SecurityContext,\n public value: AST, public unit: string|null, public sourceSpan: ParseSourceSpan,\n readonly keySpan: ParseSourceSpan, public valueSpan: ParseSourceSpan|undefined,\n public i18n: I18nMeta|undefined) {}\n\n static fromBoundElementProperty(prop: BoundElementProperty, i18n?: I18nMeta): BoundAttribute {\n if (prop.keySpan === undefined) {\n throw new Error(\n `Unexpected state: keySpan must be defined for bound attributes but was not for ${\n prop.name}: ${prop.sourceSpan}`);\n }\n return new BoundAttribute(\n prop.name, prop.type, prop.securityContext, prop.value, prop.unit, prop.sourceSpan,\n prop.keySpan, prop.valueSpan, i18n);\n }\n\n visit(visitor: Visitor): Result {\n return visitor.visitBoundAttribute(this);\n }\n}\n\nexport class BoundEvent implements Node {\n constructor(\n public name: string, public type: ParsedEventType, public handler: AST,\n public target: string|null, public phase: string|null, public sourceSpan: ParseSourceSpan,\n public handlerSpan: ParseSourceSpan, readonly keySpan: ParseSourceSpan) {}\n\n static fromParsedEvent(event: ParsedEvent) {\n const target: string|null = event.type === ParsedEventType.Regular ? event.targetOrPhase : null;\n const phase: string|null =\n event.type === ParsedEventType.Animation ? event.targetOrPhase : null;\n if (event.keySpan === undefined) {\n throw new Error(`Unexpected state: keySpan must be defined for bound event but was not for ${\n event.name}: ${event.sourceSpan}`);\n }\n return new BoundEvent(\n event.name, event.type, event.handler, target, phase, event.sourceSpan, event.handlerSpan,\n event.keySpan);\n }\n\n visit(visitor: Visitor): Result {\n return visitor.visitBoundEvent(this);\n }\n}\n\nexport class Element implements Node {\n constructor(\n public name: string, public attributes: TextAttribute[], public inputs: BoundAttribute[],\n public outputs: BoundEvent[], public children: Node[], public references: Reference[],\n public sourceSpan: ParseSourceSpan, public startSourceSpan: ParseSourceSpan,\n public endSourceSpan: ParseSourceSpan|null, public i18n?: I18nMeta) {}\n visit(visitor: Visitor): Result {\n return visitor.visitElement(this);\n }\n}\n\nexport class Template implements Node {\n constructor(\n // tagName is the name of the container element, if applicable.\n // `null` is a special case for when there is a structural directive on an `ng-template` so\n // the renderer can differentiate between the synthetic template and the one written in the\n // file.\n public tagName: string|null,\n public attributes: TextAttribute[],\n public inputs: BoundAttribute[],\n public outputs: BoundEvent[],\n public templateAttrs: (BoundAttribute|TextAttribute)[],\n public children: Node[],\n public references: Reference[],\n public variables: Variable[],\n public sourceSpan: ParseSourceSpan,\n public startSourceSpan: ParseSourceSpan,\n public endSourceSpan: ParseSourceSpan|null,\n public i18n?: I18nMeta,\n ) {}\n visit(visitor: Visitor): Result {\n return visitor.visitTemplate(this);\n }\n}\n\nexport class Content implements Node {\n readonly name = 'ng-content';\n\n constructor(\n public selector: string, public attributes: TextAttribute[],\n public sourceSpan: ParseSourceSpan, public i18n?: I18nMeta) {}\n visit(visitor: Visitor): Result {\n return visitor.visitContent(this);\n }\n}\n\nexport class Variable implements Node {\n constructor(\n public name: string, public value: string, public sourceSpan: ParseSourceSpan,\n readonly keySpan: ParseSourceSpan, public valueSpan?: ParseSourceSpan) {}\n visit(visitor: Visitor): Result {\n return visitor.visitVariable(this);\n }\n}\n\nexport class Reference implements Node {\n constructor(\n public name: string, public value: string, public sourceSpan: ParseSourceSpan,\n readonly keySpan: ParseSourceSpan, public valueSpan?: ParseSourceSpan) {}\n visit(visitor: Visitor): Result {\n return visitor.visitReference(this);\n }\n}\n\nexport class Icu implements Node {\n constructor(\n public vars: {[name: string]: BoundText},\n public placeholders: {[name: string]: Text|BoundText}, public sourceSpan: ParseSourceSpan,\n public i18n?: I18nMeta) {}\n visit(visitor: Visitor): Result {\n return visitor.visitIcu(this);\n }\n}\n\nexport interface Visitor {\n // Returning a truthy value from `visit()` will prevent `visitAll()` from the call to the typed\n // method and result returned will become the result included in `visitAll()`s result array.\n visit?(node: Node): Result;\n\n visitElement(element: Element): Result;\n visitTemplate(template: Template): Result;\n visitContent(content: Content): Result;\n visitVariable(variable: Variable): Result;\n visitReference(reference: Reference): Result;\n visitTextAttribute(attribute: TextAttribute): Result;\n visitBoundAttribute(attribute: BoundAttribute): Result;\n visitBoundEvent(attribute: BoundEvent): Result;\n visitText(text: Text): Result;\n visitBoundText(text: BoundText): Result;\n visitIcu(icu: Icu): Result;\n}\n\nexport class NullVisitor implements Visitor {\n visitElement(element: Element): void {}\n visitTemplate(template: Template): void {}\n visitContent(content: Content): void {}\n visitVariable(variable: Variable): void {}\n visitReference(reference: Reference): void {}\n visitTextAttribute(attribute: TextAttribute): void {}\n visitBoundAttribute(attribute: BoundAttribute): void {}\n visitBoundEvent(attribute: BoundEvent): void {}\n visitText(text: Text): void {}\n visitBoundText(text: BoundText): void {}\n visitIcu(icu: Icu): void {}\n}\n\nexport class RecursiveVisitor implements Visitor {\n visitElement(element: Element): void {\n visitAll(this, element.attributes);\n visitAll(this, element.inputs);\n visitAll(this, element.outputs);\n visitAll(this, element.children);\n visitAll(this, element.references);\n }\n visitTemplate(template: Template): void {\n visitAll(this, template.attributes);\n visitAll(this, template.inputs);\n visitAll(this, template.outputs);\n visitAll(this, template.children);\n visitAll(this, template.references);\n visitAll(this, template.variables);\n }\n visitContent(content: Content): void {}\n visitVariable(variable: Variable): void {}\n visitReference(reference: Reference): void {}\n visitTextAttribute(attribute: TextAttribute): void {}\n visitBoundAttribute(attribute: BoundAttribute): void {}\n visitBoundEvent(attribute: BoundEvent): void {}\n visitText(text: Text): void {}\n visitBoundText(text: BoundText): void {}\n visitIcu(icu: Icu): void {}\n}\n\nexport class TransformVisitor implements Visitor {\n visitElement(element: Element): Node {\n const newAttributes = transformAll(this, element.attributes);\n const newInputs = transformAll(this, element.inputs);\n const newOutputs = transformAll(this, element.outputs);\n const newChildren = transformAll(this, element.children);\n const newReferences = transformAll(this, element.references);\n if (newAttributes != element.attributes || newInputs != element.inputs ||\n newOutputs != element.outputs || newChildren != element.children ||\n newReferences != element.references) {\n return new Element(\n element.name, newAttributes, newInputs, newOutputs, newChildren, newReferences,\n element.sourceSpan, element.startSourceSpan, element.endSourceSpan);\n }\n return element;\n }\n\n visitTemplate(template: Template): Node {\n const newAttributes = transformAll(this, template.attributes);\n const newInputs = transformAll(this, template.inputs);\n const newOutputs = transformAll(this, template.outputs);\n const newTemplateAttrs = transformAll(this, template.templateAttrs);\n const newChildren = transformAll(this, template.children);\n const newReferences = transformAll(this, template.references);\n const newVariables = transformAll(this, template.variables);\n if (newAttributes != template.attributes || newInputs != template.inputs ||\n newOutputs != template.outputs || newTemplateAttrs != template.templateAttrs ||\n newChildren != template.children || newReferences != template.references ||\n newVariables != template.variables) {\n return new Template(\n template.tagName, newAttributes, newInputs, newOutputs, newTemplateAttrs, newChildren,\n newReferences, newVariables, template.sourceSpan, template.startSourceSpan,\n template.endSourceSpan);\n }\n return template;\n }\n\n visitContent(content: Content): Node {\n return content;\n }\n\n visitVariable(variable: Variable): Node {\n return variable;\n }\n visitReference(reference: Reference): Node {\n return reference;\n }\n visitTextAttribute(attribute: TextAttribute): Node {\n return attribute;\n }\n visitBoundAttribute(attribute: BoundAttribute): Node {\n return attribute;\n }\n visitBoundEvent(attribute: BoundEvent): Node {\n return attribute;\n }\n visitText(text: Text): Node {\n return text;\n }\n visitBoundText(text: BoundText): Node {\n return text;\n }\n visitIcu(icu: Icu): Node {\n return icu;\n }\n}\n\nexport function visitAll(visitor: Visitor, nodes: Node[]): Result[] {\n const result: Result[] = [];\n if (visitor.visit) {\n for (const node of nodes) {\n const newNode = visitor.visit(node) || node.visit(visitor);\n }\n } else {\n for (const node of nodes) {\n const newNode = node.visit(visitor);\n if (newNode) {\n result.push(newNode);\n }\n }\n }\n return result;\n}\n\nexport function transformAll(\n visitor: Visitor, nodes: Result[]): Result[] {\n const result: Result[] = [];\n let changed = false;\n for (const node of nodes) {\n const newNode = node.visit(visitor);\n if (newNode) {\n result.push(newNode as Result);\n }\n changed = changed || newNode != node;\n }\n return changed ? result : nodes;\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\nimport {ParseSourceSpan} from '../parse_util';\n\n/**\n * Describes the text contents of a placeholder as it appears in an ICU expression, including its\n * source span information.\n */\nexport interface MessagePlaceholder {\n /** The text contents of the placeholder */\n text: string;\n\n /** The source span of the placeholder */\n sourceSpan: ParseSourceSpan;\n}\n\nexport class Message {\n sources: MessageSpan[];\n id: string = this.customId;\n /** The ids to use if there are no custom id and if `i18nLegacyMessageIdFormat` is not empty */\n legacyIds: string[] = [];\n\n messageString = serializeMessage(this.nodes);\n\n /**\n * @param nodes message AST\n * @param placeholders maps placeholder names to static content and their source spans\n * @param placeholderToMessage maps placeholder names to messages (used for nested ICU messages)\n * @param meaning\n * @param description\n * @param customId\n */\n constructor(\n public nodes: Node[], public placeholders: {[phName: string]: MessagePlaceholder},\n public placeholderToMessage: {[phName: string]: Message}, public meaning: string,\n public description: string, public customId: string) {\n if (nodes.length) {\n this.sources = [{\n filePath: nodes[0].sourceSpan.start.file.url,\n startLine: nodes[0].sourceSpan.start.line + 1,\n startCol: nodes[0].sourceSpan.start.col + 1,\n endLine: nodes[nodes.length - 1].sourceSpan.end.line + 1,\n endCol: nodes[0].sourceSpan.start.col + 1\n }];\n } else {\n this.sources = [];\n }\n }\n}\n\n// line and columns indexes are 1 based\nexport interface MessageSpan {\n filePath: string;\n startLine: number;\n startCol: number;\n endLine: number;\n endCol: number;\n}\n\nexport interface Node {\n sourceSpan: ParseSourceSpan;\n visit(visitor: Visitor, context?: any): any;\n}\n\nexport class Text implements Node {\n constructor(public value: string, public sourceSpan: ParseSourceSpan) {}\n\n visit(visitor: Visitor, context?: any): any {\n return visitor.visitText(this, context);\n }\n}\n\n// TODO(vicb): do we really need this node (vs an array) ?\nexport class Container implements Node {\n constructor(public children: Node[], public sourceSpan: ParseSourceSpan) {}\n\n visit(visitor: Visitor, context?: any): any {\n return visitor.visitContainer(this, context);\n }\n}\n\nexport class Icu implements Node {\n // TODO(issue/24571): remove '!'.\n public expressionPlaceholder!: string;\n constructor(\n public expression: string, public type: string, public cases: {[k: string]: Node},\n public sourceSpan: ParseSourceSpan) {}\n\n visit(visitor: Visitor, context?: any): any {\n return visitor.visitIcu(this, context);\n }\n}\n\nexport class TagPlaceholder implements Node {\n constructor(\n public tag: string, public attrs: {[k: string]: string}, public startName: string,\n public closeName: string, public children: Node[], public isVoid: boolean,\n // TODO sourceSpan should cover all (we need a startSourceSpan and endSourceSpan)\n public sourceSpan: ParseSourceSpan, public startSourceSpan: ParseSourceSpan|null,\n public endSourceSpan: ParseSourceSpan|null) {}\n\n visit(visitor: Visitor, context?: any): any {\n return visitor.visitTagPlaceholder(this, context);\n }\n}\n\nexport class Placeholder implements Node {\n constructor(public value: string, public name: string, public sourceSpan: ParseSourceSpan) {}\n\n visit(visitor: Visitor, context?: any): any {\n return visitor.visitPlaceholder(this, context);\n }\n}\n\nexport class IcuPlaceholder implements Node {\n /** Used to capture a message computed from a previous processing pass (see `setI18nRefs()`). */\n previousMessage?: Message;\n constructor(public value: Icu, public name: string, public sourceSpan: ParseSourceSpan) {}\n\n visit(visitor: Visitor, context?: any): any {\n return visitor.visitIcuPlaceholder(this, context);\n }\n}\n\n/**\n * Each HTML node that is affect by an i18n tag will also have an `i18n` property that is of type\n * `I18nMeta`.\n * This information is either a `Message`, which indicates it is the root of an i18n message, or a\n * `Node`, which indicates is it part of a containing `Message`.\n */\nexport type I18nMeta = Message|Node;\n\nexport interface Visitor {\n visitText(text: Text, context?: any): any;\n visitContainer(container: Container, context?: any): any;\n visitIcu(icu: Icu, context?: any): any;\n visitTagPlaceholder(ph: TagPlaceholder, context?: any): any;\n visitPlaceholder(ph: Placeholder, context?: any): any;\n visitIcuPlaceholder(ph: IcuPlaceholder, context?: any): any;\n}\n\n// Clone the AST\nexport class CloneVisitor implements Visitor {\n visitText(text: Text, context?: any): Text {\n return new Text(text.value, text.sourceSpan);\n }\n\n visitContainer(container: Container, context?: any): Container {\n const children = container.children.map(n => n.visit(this, context));\n return new Container(children, container.sourceSpan);\n }\n\n visitIcu(icu: Icu, context?: any): Icu {\n const cases: {[k: string]: Node} = {};\n Object.keys(icu.cases).forEach(key => cases[key] = icu.cases[key].visit(this, context));\n const msg = new Icu(icu.expression, icu.type, cases, icu.sourceSpan);\n msg.expressionPlaceholder = icu.expressionPlaceholder;\n return msg;\n }\n\n visitTagPlaceholder(ph: TagPlaceholder, context?: any): TagPlaceholder {\n const children = ph.children.map(n => n.visit(this, context));\n return new TagPlaceholder(\n ph.tag, ph.attrs, ph.startName, ph.closeName, children, ph.isVoid, ph.sourceSpan,\n ph.startSourceSpan, ph.endSourceSpan);\n }\n\n visitPlaceholder(ph: Placeholder, context?: any): Placeholder {\n return new Placeholder(ph.value, ph.name, ph.sourceSpan);\n }\n\n visitIcuPlaceholder(ph: IcuPlaceholder, context?: any): IcuPlaceholder {\n return new IcuPlaceholder(ph.value, ph.name, ph.sourceSpan);\n }\n}\n\n// Visit all the nodes recursively\nexport class RecurseVisitor implements Visitor {\n visitText(text: Text, context?: any): any {}\n\n visitContainer(container: Container, context?: any): any {\n container.children.forEach(child => child.visit(this));\n }\n\n visitIcu(icu: Icu, context?: any): any {\n Object.keys(icu.cases).forEach(k => {\n icu.cases[k].visit(this);\n });\n }\n\n visitTagPlaceholder(ph: TagPlaceholder, context?: any): any {\n ph.children.forEach(child => child.visit(this));\n }\n\n visitPlaceholder(ph: Placeholder, context?: any): any {}\n\n visitIcuPlaceholder(ph: IcuPlaceholder, context?: any): any {}\n}\n\n\n/**\n * Serialize the message to the Localize backtick string format that would appear in compiled code.\n */\nfunction serializeMessage(messageNodes: Node[]): string {\n const visitor = new LocalizeMessageStringVisitor();\n const str = messageNodes.map(n => n.visit(visitor)).join('');\n return str;\n}\n\nclass LocalizeMessageStringVisitor implements Visitor {\n visitText(text: Text): any {\n return text.value;\n }\n\n visitContainer(container: Container): any {\n return container.children.map(child => child.visit(this)).join('');\n }\n\n visitIcu(icu: Icu): any {\n const strCases =\n Object.keys(icu.cases).map((k: string) => `${k} {${icu.cases[k].visit(this)}}`);\n return `{${icu.expressionPlaceholder}, ${icu.type}, ${strCases.join(' ')}}`;\n }\n\n visitTagPlaceholder(ph: TagPlaceholder): any {\n const children = ph.children.map(child => child.visit(this)).join('');\n return `{$${ph.startName}}${children}{$${ph.closeName}}`;\n }\n\n visitPlaceholder(ph: Placeholder): any {\n return `{$${ph.name}}`;\n }\n\n visitIcuPlaceholder(ph: IcuPlaceholder): any {\n return `{$${ph.name}}`;\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\nimport * as i18n from '../i18n_ast';\n\nexport abstract class Serializer {\n // - The `placeholders` and `placeholderToMessage` properties are irrelevant in the input messages\n // - The `id` contains the message id that the serializer is expected to use\n // - Placeholder names are already map to public names using the provided mapper\n abstract write(messages: i18n.Message[], locale: string|null): string;\n\n abstract load(content: string, url: string):\n {locale: string|null, i18nNodesByMsgId: {[msgId: string]: i18n.Node[]}};\n\n abstract digest(message: i18n.Message): string;\n\n // Creates a name mapper, see `PlaceholderMapper`\n // Returning `null` means that no name mapping is used.\n createNameMapper(message: i18n.Message): PlaceholderMapper|null {\n return null;\n }\n}\n\n/**\n * A `PlaceholderMapper` converts placeholder names from internal to serialized representation and\n * back.\n *\n * It should be used for serialization format that put constraints on the placeholder names.\n */\nexport interface PlaceholderMapper {\n toPublicName(internalName: string): string|null;\n\n toInternalName(publicName: string): string|null;\n}\n\n/**\n * A simple mapper that take a function to transform an internal name to a public name\n */\nexport class SimplePlaceholderMapper extends i18n.RecurseVisitor implements PlaceholderMapper {\n private internalToPublic: {[k: string]: string} = {};\n private publicToNextId: {[k: string]: number} = {};\n private publicToInternal: {[k: string]: string} = {};\n\n // create a mapping from the message\n constructor(message: i18n.Message, private mapName: (name: string) => string) {\n super();\n message.nodes.forEach(node => node.visit(this));\n }\n\n toPublicName(internalName: string): string|null {\n return this.internalToPublic.hasOwnProperty(internalName) ?\n this.internalToPublic[internalName] :\n null;\n }\n\n toInternalName(publicName: string): string|null {\n return this.publicToInternal.hasOwnProperty(publicName) ? this.publicToInternal[publicName] :\n null;\n }\n\n override visitText(text: i18n.Text, context?: any): any {\n return null;\n }\n\n override visitTagPlaceholder(ph: i18n.TagPlaceholder, context?: any): any {\n this.visitPlaceholderName(ph.startName);\n super.visitTagPlaceholder(ph, context);\n this.visitPlaceholderName(ph.closeName);\n }\n\n override visitPlaceholder(ph: i18n.Placeholder, context?: any): any {\n this.visitPlaceholderName(ph.name);\n }\n\n override visitIcuPlaceholder(ph: i18n.IcuPlaceholder, context?: any): any {\n this.visitPlaceholderName(ph.name);\n }\n\n // XMB placeholders could only contains A-Z, 0-9 and _\n private visitPlaceholderName(internalName: string): void {\n if (!internalName || this.internalToPublic.hasOwnProperty(internalName)) {\n return;\n }\n\n let publicName = this.mapName(internalName);\n\n if (this.publicToInternal.hasOwnProperty(publicName)) {\n // Create a new XMB when it has already been used\n const nextId = this.publicToNextId[publicName];\n this.publicToNextId[publicName] = nextId + 1;\n publicName = `${publicName}_${nextId}`;\n } else {\n this.publicToNextId[publicName] = 1;\n }\n\n this.internalToPublic[internalName] = publicName;\n this.publicToInternal[publicName] = internalName;\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\nexport interface IVisitor {\n visitTag(tag: Tag): any;\n visitText(text: Text): any;\n visitDeclaration(decl: Declaration): any;\n visitDoctype(doctype: Doctype): any;\n}\n\nclass _Visitor implements IVisitor {\n visitTag(tag: Tag): string {\n const strAttrs = this._serializeAttributes(tag.attrs);\n\n if (tag.children.length == 0) {\n return `<${tag.name}${strAttrs}/>`;\n }\n\n const strChildren = tag.children.map(node => node.visit(this));\n return `<${tag.name}${strAttrs}>${strChildren.join('')}`;\n }\n\n visitText(text: Text): string {\n return text.value;\n }\n\n visitDeclaration(decl: Declaration): string {\n return ``;\n }\n\n private _serializeAttributes(attrs: {[k: string]: string}) {\n const strAttrs = Object.keys(attrs).map((name: string) => `${name}=\"${attrs[name]}\"`).join(' ');\n return strAttrs.length > 0 ? ' ' + strAttrs : '';\n }\n\n visitDoctype(doctype: Doctype): any {\n return ``;\n }\n}\n\nconst _visitor = new _Visitor();\n\nexport function serialize(nodes: Node[]): string {\n return nodes.map((node: Node): string => node.visit(_visitor)).join('');\n}\n\nexport interface Node {\n visit(visitor: IVisitor): any;\n}\n\nexport class Declaration implements Node {\n public attrs: {[k: string]: string} = {};\n\n constructor(unescapedAttrs: {[k: string]: string}) {\n Object.keys(unescapedAttrs).forEach((k: string) => {\n this.attrs[k] = escapeXml(unescapedAttrs[k]);\n });\n }\n\n visit(visitor: IVisitor): any {\n return visitor.visitDeclaration(this);\n }\n}\n\nexport class Doctype implements Node {\n constructor(public rootTag: string, public dtd: string) {}\n\n visit(visitor: IVisitor): any {\n return visitor.visitDoctype(this);\n }\n}\n\nexport class Tag implements Node {\n public attrs: {[k: string]: string} = {};\n\n constructor(\n public name: string, unescapedAttrs: {[k: string]: string} = {},\n public children: Node[] = []) {\n Object.keys(unescapedAttrs).forEach((k: string) => {\n this.attrs[k] = escapeXml(unescapedAttrs[k]);\n });\n }\n\n visit(visitor: IVisitor): any {\n return visitor.visitTag(this);\n }\n}\n\nexport class Text implements Node {\n value: string;\n constructor(unescapedValue: string) {\n this.value = escapeXml(unescapedValue);\n }\n\n visit(visitor: IVisitor): any {\n return visitor.visitText(this);\n }\n}\n\nexport class CR extends Text {\n constructor(ws: number = 0) {\n super(`\\n${new Array(ws + 1).join(' ')}`);\n }\n}\n\nconst _ESCAPED_CHARS: [RegExp, string][] = [\n [/&/g, '&'],\n [/\"/g, '"'],\n [/'/g, '''],\n [//g, '>'],\n];\n\n// Escape `_ESCAPED_CHARS` characters in the given text with encoded entities\nexport function escapeXml(text: string): string {\n return _ESCAPED_CHARS.reduce(\n (text: string, entry: [RegExp, string]) => text.replace(entry[0], entry[1]), text);\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\nimport {decimalDigest} from '../digest';\nimport * as i18n from '../i18n_ast';\n\nimport {PlaceholderMapper, Serializer, SimplePlaceholderMapper} from './serializer';\nimport * as xml from './xml_helper';\n\nconst _MESSAGES_TAG = 'messagebundle';\nconst _MESSAGE_TAG = 'msg';\nconst _PLACEHOLDER_TAG = 'ph';\nconst _EXAMPLE_TAG = 'ex';\nconst _SOURCE_TAG = 'source';\n\nconst _DOCTYPE = `\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n`;\n\nexport class Xmb extends Serializer {\n override write(messages: i18n.Message[], locale: string|null): string {\n const exampleVisitor = new ExampleVisitor();\n const visitor = new _Visitor();\n let rootNode = new xml.Tag(_MESSAGES_TAG);\n\n messages.forEach(message => {\n const attrs: {[k: string]: string} = {id: message.id};\n\n if (message.description) {\n attrs['desc'] = message.description;\n }\n\n if (message.meaning) {\n attrs['meaning'] = message.meaning;\n }\n\n let sourceTags: xml.Tag[] = [];\n message.sources.forEach((source: i18n.MessageSpan) => {\n sourceTags.push(new xml.Tag(\n _SOURCE_TAG, {},\n [new xml.Text(`${source.filePath}:${source.startLine}${\n source.endLine !== source.startLine ? ',' + source.endLine : ''}`)]));\n });\n\n rootNode.children.push(\n new xml.CR(2),\n new xml.Tag(_MESSAGE_TAG, attrs, [...sourceTags, ...visitor.serialize(message.nodes)]));\n });\n\n rootNode.children.push(new xml.CR());\n\n return xml.serialize([\n new xml.Declaration({version: '1.0', encoding: 'UTF-8'}),\n new xml.CR(),\n new xml.Doctype(_MESSAGES_TAG, _DOCTYPE),\n new xml.CR(),\n exampleVisitor.addDefaultExamples(rootNode),\n new xml.CR(),\n ]);\n }\n\n override load(content: string, url: string):\n {locale: string, i18nNodesByMsgId: {[msgId: string]: i18n.Node[]}} {\n throw new Error('Unsupported');\n }\n\n override digest(message: i18n.Message): string {\n return digest(message);\n }\n\n\n override createNameMapper(message: i18n.Message): PlaceholderMapper {\n return new SimplePlaceholderMapper(message, toPublicName);\n }\n}\n\nclass _Visitor implements i18n.Visitor {\n visitText(text: i18n.Text, context?: any): xml.Node[] {\n return [new xml.Text(text.value)];\n }\n\n visitContainer(container: i18n.Container, context: any): xml.Node[] {\n const nodes: xml.Node[] = [];\n container.children.forEach((node: i18n.Node) => nodes.push(...node.visit(this)));\n return nodes;\n }\n\n visitIcu(icu: i18n.Icu, context?: any): xml.Node[] {\n const nodes = [new xml.Text(`{${icu.expressionPlaceholder}, ${icu.type}, `)];\n\n Object.keys(icu.cases).forEach((c: string) => {\n nodes.push(new xml.Text(`${c} {`), ...icu.cases[c].visit(this), new xml.Text(`} `));\n });\n\n nodes.push(new xml.Text(`}`));\n\n return nodes;\n }\n\n visitTagPlaceholder(ph: i18n.TagPlaceholder, context?: any): xml.Node[] {\n const startTagAsText = new xml.Text(`<${ph.tag}>`);\n const startEx = new xml.Tag(_EXAMPLE_TAG, {}, [startTagAsText]);\n // TC requires PH to have a non empty EX, and uses the text node to show the \"original\" value.\n const startTagPh =\n new xml.Tag(_PLACEHOLDER_TAG, {name: ph.startName}, [startEx, startTagAsText]);\n if (ph.isVoid) {\n // void tags have no children nor closing tags\n return [startTagPh];\n }\n\n const closeTagAsText = new xml.Text(``);\n const closeEx = new xml.Tag(_EXAMPLE_TAG, {}, [closeTagAsText]);\n // TC requires PH to have a non empty EX, and uses the text node to show the \"original\" value.\n const closeTagPh =\n new xml.Tag(_PLACEHOLDER_TAG, {name: ph.closeName}, [closeEx, closeTagAsText]);\n\n return [startTagPh, ...this.serialize(ph.children), closeTagPh];\n }\n\n visitPlaceholder(ph: i18n.Placeholder, context?: any): xml.Node[] {\n const interpolationAsText = new xml.Text(`{{${ph.value}}}`);\n // Example tag needs to be not-empty for TC.\n const exTag = new xml.Tag(_EXAMPLE_TAG, {}, [interpolationAsText]);\n return [\n // TC requires PH to have a non empty EX, and uses the text node to show the \"original\" value.\n new xml.Tag(_PLACEHOLDER_TAG, {name: ph.name}, [exTag, interpolationAsText])\n ];\n }\n\n visitIcuPlaceholder(ph: i18n.IcuPlaceholder, context?: any): xml.Node[] {\n const icuExpression = ph.value.expression;\n const icuType = ph.value.type;\n const icuCases = Object.keys(ph.value.cases).map((value: string) => value + ' {...}').join(' ');\n const icuAsText = new xml.Text(`{${icuExpression}, ${icuType}, ${icuCases}}`);\n const exTag = new xml.Tag(_EXAMPLE_TAG, {}, [icuAsText]);\n return [\n // TC requires PH to have a non empty EX, and uses the text node to show the \"original\" value.\n new xml.Tag(_PLACEHOLDER_TAG, {name: ph.name}, [exTag, icuAsText])\n ];\n }\n\n serialize(nodes: i18n.Node[]): xml.Node[] {\n return [].concat(...nodes.map(node => node.visit(this)));\n }\n}\n\nexport function digest(message: i18n.Message): string {\n return decimalDigest(message);\n}\n\n// TC requires at least one non-empty example on placeholders\nclass ExampleVisitor implements xml.IVisitor {\n addDefaultExamples(node: xml.Node): xml.Node {\n node.visit(this);\n return node;\n }\n\n visitTag(tag: xml.Tag): void {\n if (tag.name === _PLACEHOLDER_TAG) {\n if (!tag.children || tag.children.length == 0) {\n const exText = new xml.Text(tag.attrs['name'] || '...');\n tag.children = [new xml.Tag(_EXAMPLE_TAG, {}, [exText])];\n }\n } else if (tag.children) {\n tag.children.forEach(node => node.visit(this));\n }\n }\n\n visitText(text: xml.Text): void {}\n visitDeclaration(decl: xml.Declaration): void {}\n visitDoctype(doctype: xml.Doctype): void {}\n}\n\n// XMB/XTB placeholders can only contain A-Z, 0-9 and _\nexport function toPublicName(internalName: string): string {\n return internalName.toUpperCase().replace(/[^A-Z0-9_]/g, '_');\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 */\nimport * as i18n from '../../../i18n/i18n_ast';\nimport {toPublicName} from '../../../i18n/serializers/xmb';\nimport * as html from '../../../ml_parser/ast';\nimport * as o from '../../../output/output_ast';\nimport * as t from '../../r3_ast';\n\n/* Closure variables holding messages must be named `MSG_[A-Z0-9]+` */\nconst CLOSURE_TRANSLATION_VAR_PREFIX = 'MSG_';\n\n/**\n * Prefix for non-`goog.getMsg` i18n-related vars.\n * Note: the prefix uses lowercase characters intentionally due to a Closure behavior that\n * considers variables like `I18N_0` as constants and throws an error when their value changes.\n */\nexport const TRANSLATION_VAR_PREFIX = 'i18n_';\n\n/** Name of the i18n attributes **/\nexport const I18N_ATTR = 'i18n';\nexport const I18N_ATTR_PREFIX = 'i18n-';\n\n/** Prefix of var expressions used in ICUs */\nexport const I18N_ICU_VAR_PREFIX = 'VAR_';\n\n/** Prefix of ICU expressions for post processing */\nexport const I18N_ICU_MAPPING_PREFIX = 'I18N_EXP_';\n\n/** Placeholder wrapper for i18n expressions **/\nexport const I18N_PLACEHOLDER_SYMBOL = '�';\n\nexport function isI18nAttribute(name: string): boolean {\n return name === I18N_ATTR || name.startsWith(I18N_ATTR_PREFIX);\n}\n\nexport function isI18nRootNode(meta?: i18n.I18nMeta): meta is i18n.Message {\n return meta instanceof i18n.Message;\n}\n\nexport function isSingleI18nIcu(meta?: i18n.I18nMeta): boolean {\n return isI18nRootNode(meta) && meta.nodes.length === 1 && meta.nodes[0] instanceof i18n.Icu;\n}\n\nexport function hasI18nMeta(node: t.Node&{i18n?: i18n.I18nMeta}): boolean {\n return !!node.i18n;\n}\n\nexport function hasI18nAttrs(element: html.Element): boolean {\n return element.attrs.some((attr: html.Attribute) => isI18nAttribute(attr.name));\n}\n\nexport function icuFromI18nMessage(message: i18n.Message) {\n return message.nodes[0] as i18n.IcuPlaceholder;\n}\n\nexport function wrapI18nPlaceholder(content: string|number, contextId: number = 0): string {\n const blockId = contextId > 0 ? `:${contextId}` : '';\n return `${I18N_PLACEHOLDER_SYMBOL}${content}${blockId}${I18N_PLACEHOLDER_SYMBOL}`;\n}\n\nexport function assembleI18nBoundString(\n strings: string[], bindingStartIndex: number = 0, contextId: number = 0): string {\n if (!strings.length) return '';\n let acc = '';\n const lastIdx = strings.length - 1;\n for (let i = 0; i < lastIdx; i++) {\n acc += `${strings[i]}${wrapI18nPlaceholder(bindingStartIndex + i, contextId)}`;\n }\n acc += strings[lastIdx];\n return acc;\n}\n\nexport function getSeqNumberGenerator(startsAt: number = 0): () => number {\n let current = startsAt;\n return () => current++;\n}\n\nexport function placeholdersToParams(placeholders: Map):\n {[name: string]: o.LiteralExpr} {\n const params: {[name: string]: o.LiteralExpr} = {};\n placeholders.forEach((values: string[], key: string) => {\n params[key] = o.literal(values.length > 1 ? `[${values.join('|')}]` : values[0]);\n });\n return params;\n}\n\nexport function updatePlaceholderMap(map: Map, name: string, ...values: any[]) {\n const current = map.get(name) || [];\n current.push(...values);\n map.set(name, current);\n}\n\nexport function assembleBoundTextPlaceholders(\n meta: i18n.I18nMeta, bindingStartIndex: number = 0, contextId: number = 0): Map {\n const startIdx = bindingStartIndex;\n const placeholders = new Map();\n const node =\n meta instanceof i18n.Message ? meta.nodes.find(node => node instanceof i18n.Container) : meta;\n if (node) {\n (node as i18n.Container)\n .children\n .filter((child: i18n.Node): child is i18n.Placeholder => child instanceof i18n.Placeholder)\n .forEach((child: i18n.Placeholder, idx: number) => {\n const content = wrapI18nPlaceholder(startIdx + idx, contextId);\n updatePlaceholderMap(placeholders, child.name, content);\n });\n }\n return placeholders;\n}\n\n/**\n * Format the placeholder names in a map of placeholders to expressions.\n *\n * The placeholder names are converted from \"internal\" format (e.g. `START_TAG_DIV_1`) to \"external\"\n * format (e.g. `startTagDiv_1`).\n *\n * @param params A map of placeholder names to expressions.\n * @param useCamelCase whether to camelCase the placeholder name when formatting.\n * @returns A new map of formatted placeholder names to expressions.\n */\nexport function formatI18nPlaceholderNamesInMap(\n params: {[name: string]: o.Expression} = {}, useCamelCase: boolean) {\n const _params: {[key: string]: o.Expression} = {};\n if (params && Object.keys(params).length) {\n Object.keys(params).forEach(\n key => _params[formatI18nPlaceholderName(key, useCamelCase)] = params[key]);\n }\n return _params;\n}\n\n/**\n * Converts internal placeholder names to public-facing format\n * (for example to use in goog.getMsg call).\n * Example: `START_TAG_DIV_1` is converted to `startTagDiv_1`.\n *\n * @param name The placeholder name that should be formatted\n * @returns Formatted placeholder name\n */\nexport function formatI18nPlaceholderName(name: string, useCamelCase: boolean = true): string {\n const publicName = toPublicName(name);\n if (!useCamelCase) {\n return publicName;\n }\n const chunks = publicName.split('_');\n if (chunks.length === 1) {\n // if no \"_\" found - just lowercase the value\n return name.toLowerCase();\n }\n let postfix;\n // eject last element if it's a number\n if (/^\\d+$/.test(chunks[chunks.length - 1])) {\n postfix = chunks.pop();\n }\n let raw = chunks.shift()!.toLowerCase();\n if (chunks.length) {\n raw += chunks.map(c => c.charAt(0).toUpperCase() + c.slice(1).toLowerCase()).join('');\n }\n return postfix ? `${raw}_${postfix}` : raw;\n}\n\n/**\n * Generates a prefix for translation const name.\n *\n * @param extra Additional local prefix that should be injected into translation var name\n * @returns Complete translation const prefix\n */\nexport function getTranslationConstPrefix(extra: string): string {\n return `${CLOSURE_TRANSLATION_VAR_PREFIX}${extra}`.toUpperCase();\n}\n\n/**\n * Generate AST to declare a variable. E.g. `var I18N_1;`.\n * @param variable the name of the variable to declare.\n */\nexport function declareI18nVariable(variable: o.ReadVarExpr): o.Statement {\n return new o.DeclareVarStmt(\n variable.name!, undefined, o.INFERRED_TYPE, undefined, variable.sourceSpan);\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\nimport {ConstantPool} from '../../constant_pool';\nimport {Interpolation} from '../../expression_parser/ast';\nimport * as o from '../../output/output_ast';\nimport {ParseSourceSpan} from '../../parse_util';\nimport {splitAtColon} from '../../util';\nimport * as t from '../r3_ast';\nimport {Identifiers as R3} from '../r3_identifiers';\nimport {ForwardRefHandling} from '../util';\n\nimport {R3QueryMetadata} from './api';\nimport {isI18nAttribute} from './i18n/util';\n\n\n/**\n * Checks whether an object key contains potentially unsafe chars, thus the key should be wrapped in\n * quotes. Note: we do not wrap all keys into quotes, as it may have impact on minification and may\n * bot work in some cases when object keys are mangled by minifier.\n *\n * TODO(FW-1136): this is a temporary solution, we need to come up with a better way of working with\n * inputs that contain potentially unsafe chars.\n */\nconst UNSAFE_OBJECT_KEY_NAME_REGEXP = /[-.]/;\n\n/** Name of the temporary to use during data binding */\nexport const TEMPORARY_NAME = '_t';\n\n/** Name of the context parameter passed into a template function */\nexport const CONTEXT_NAME = 'ctx';\n\n/** Name of the RenderFlag passed into a template function */\nexport const RENDER_FLAGS = 'rf';\n\n/** The prefix reference variables */\nexport const REFERENCE_PREFIX = '_r';\n\n/** The name of the implicit context reference */\nexport const IMPLICIT_REFERENCE = '$implicit';\n\n/** Non bindable attribute name **/\nexport const NON_BINDABLE_ATTR = 'ngNonBindable';\n\n/** Name for the variable keeping track of the context returned by `ɵɵrestoreView`. */\nexport const RESTORED_VIEW_CONTEXT_NAME = 'restoredCtx';\n\n/**\n * Maximum length of a single instruction chain. Because our output AST uses recursion, we're\n * limited in how many expressions we can nest before we reach the call stack limit. This\n * length is set very conservatively in order to reduce the chance of problems.\n */\nconst MAX_CHAIN_LENGTH = 500;\n\n/** Instructions that support chaining. */\nconst CHAINABLE_INSTRUCTIONS = new Set([\n R3.element,\n R3.elementStart,\n R3.elementEnd,\n R3.elementContainer,\n R3.elementContainerStart,\n R3.elementContainerEnd,\n R3.i18nExp,\n R3.listener,\n R3.classProp,\n R3.syntheticHostListener,\n R3.hostProperty,\n R3.syntheticHostProperty,\n R3.property,\n R3.propertyInterpolate1,\n R3.propertyInterpolate2,\n R3.propertyInterpolate3,\n R3.propertyInterpolate4,\n R3.propertyInterpolate5,\n R3.propertyInterpolate6,\n R3.propertyInterpolate7,\n R3.propertyInterpolate8,\n R3.propertyInterpolateV,\n R3.attribute,\n R3.attributeInterpolate1,\n R3.attributeInterpolate2,\n R3.attributeInterpolate3,\n R3.attributeInterpolate4,\n R3.attributeInterpolate5,\n R3.attributeInterpolate6,\n R3.attributeInterpolate7,\n R3.attributeInterpolate8,\n R3.attributeInterpolateV,\n R3.styleProp,\n R3.stylePropInterpolate1,\n R3.stylePropInterpolate2,\n R3.stylePropInterpolate3,\n R3.stylePropInterpolate4,\n R3.stylePropInterpolate5,\n R3.stylePropInterpolate6,\n R3.stylePropInterpolate7,\n R3.stylePropInterpolate8,\n R3.stylePropInterpolateV,\n R3.textInterpolate,\n R3.textInterpolate1,\n R3.textInterpolate2,\n R3.textInterpolate3,\n R3.textInterpolate4,\n R3.textInterpolate5,\n R3.textInterpolate6,\n R3.textInterpolate7,\n R3.textInterpolate8,\n R3.textInterpolateV,\n]);\n\n/**\n * Possible types that can be used to generate the parameters of an instruction call.\n * If the parameters are a function, the function will be invoked at the time the instruction\n * is generated.\n */\nexport type InstructionParams = (o.Expression|o.Expression[])|(() => (o.Expression|o.Expression[]));\n\n/** Necessary information to generate a call to an instruction function. */\nexport interface Instruction {\n span: ParseSourceSpan|null;\n reference: o.ExternalReference;\n paramsOrFn?: InstructionParams;\n}\n\n/** Generates a call to a single instruction. */\nexport function invokeInstruction(\n span: ParseSourceSpan|null, reference: o.ExternalReference,\n params: o.Expression[]): o.Expression {\n return o.importExpr(reference, null, span).callFn(params, span);\n}\n\n/**\n * Creates an allocator for a temporary variable.\n *\n * A variable declaration is added to the statements the first time the allocator is invoked.\n */\nexport function temporaryAllocator(statements: o.Statement[], name: string): () => o.ReadVarExpr {\n let temp: o.ReadVarExpr|null = null;\n return () => {\n if (!temp) {\n statements.push(new o.DeclareVarStmt(TEMPORARY_NAME, undefined, o.DYNAMIC_TYPE));\n temp = o.variable(name);\n }\n return temp;\n };\n}\n\n\nexport function invalid(this: t.Visitor, arg: o.Expression|o.Statement|t.Node): never {\n throw new Error(\n `Invalid state: Visitor ${this.constructor.name} doesn't handle ${arg.constructor.name}`);\n}\n\nexport function asLiteral(value: any): o.Expression {\n if (Array.isArray(value)) {\n return o.literalArr(value.map(asLiteral));\n }\n return o.literal(value, o.INFERRED_TYPE);\n}\n\nexport function conditionallyCreateMapObjectLiteral(\n keys: {[key: string]: string|string[]}, keepDeclared?: boolean): o.Expression|null {\n if (Object.getOwnPropertyNames(keys).length > 0) {\n return mapToExpression(keys, keepDeclared);\n }\n return null;\n}\n\nfunction mapToExpression(\n map: {[key: string]: string|string[]}, keepDeclared?: boolean): o.Expression {\n return o.literalMap(Object.getOwnPropertyNames(map).map(key => {\n // canonical syntax: `dirProp: publicProp`\n const value = map[key];\n let declaredName: string;\n let publicName: string;\n let minifiedName: string;\n let needsDeclaredName: boolean;\n if (Array.isArray(value)) {\n [publicName, declaredName] = value;\n minifiedName = key;\n needsDeclaredName = publicName !== declaredName;\n } else {\n minifiedName = declaredName = key;\n publicName = value;\n needsDeclaredName = false;\n }\n return {\n key: minifiedName,\n // put quotes around keys that contain potentially unsafe characters\n quoted: UNSAFE_OBJECT_KEY_NAME_REGEXP.test(minifiedName),\n value: (keepDeclared && needsDeclaredName) ?\n o.literalArr([asLiteral(publicName), asLiteral(declaredName)]) :\n asLiteral(publicName)\n };\n }));\n}\n\n/**\n * Remove trailing null nodes as they are implied.\n */\nexport function trimTrailingNulls(parameters: o.Expression[]): o.Expression[] {\n while (o.isNull(parameters[parameters.length - 1])) {\n parameters.pop();\n }\n return parameters;\n}\n\nexport function getQueryPredicate(\n query: R3QueryMetadata, constantPool: ConstantPool): o.Expression {\n if (Array.isArray(query.predicate)) {\n let predicate: o.Expression[] = [];\n query.predicate.forEach((selector: string): void => {\n // Each item in predicates array may contain strings with comma-separated refs\n // (for ex. 'ref, ref1, ..., refN'), thus we extract individual refs and store them\n // as separate array entities\n const selectors = selector.split(',').map(token => o.literal(token.trim()));\n predicate.push(...selectors);\n });\n return constantPool.getConstLiteral(o.literalArr(predicate), true);\n } else {\n // The original predicate may have been wrapped in a `forwardRef()` call.\n switch (query.predicate.forwardRef) {\n case ForwardRefHandling.None:\n case ForwardRefHandling.Unwrapped:\n return query.predicate.expression;\n case ForwardRefHandling.Wrapped:\n return o.importExpr(R3.resolveForwardRef).callFn([query.predicate.expression]);\n }\n }\n}\n\n/**\n * A representation for an object literal used during codegen of definition objects. The generic\n * type `T` allows to reference a documented type of the generated structure, such that the\n * property names that are set can be resolved to their documented declaration.\n */\nexport class DefinitionMap {\n values: {key: string, quoted: boolean, value: o.Expression}[] = [];\n\n set(key: keyof T, value: o.Expression|null): void {\n if (value) {\n this.values.push({key: key as string, value, quoted: false});\n }\n }\n\n toLiteralMap(): o.LiteralMapExpr {\n return o.literalMap(this.values);\n }\n}\n\n/**\n * Extract a map of properties to values for a given element or template node, which can be used\n * by the directive matching machinery.\n *\n * @param elOrTpl the element or template in question\n * @return an object set up for directive matching. For attributes on the element/template, this\n * object maps a property name to its (static) value. For any bindings, this map simply maps the\n * property name to an empty string.\n */\nexport function getAttrsForDirectiveMatching(elOrTpl: t.Element|\n t.Template): {[name: string]: string} {\n const attributesMap: {[name: string]: string} = {};\n\n\n if (elOrTpl instanceof t.Template && elOrTpl.tagName !== 'ng-template') {\n elOrTpl.templateAttrs.forEach(a => attributesMap[a.name] = '');\n } else {\n elOrTpl.attributes.forEach(a => {\n if (!isI18nAttribute(a.name)) {\n attributesMap[a.name] = a.value;\n }\n });\n\n elOrTpl.inputs.forEach(i => {\n attributesMap[i.name] = '';\n });\n elOrTpl.outputs.forEach(o => {\n attributesMap[o.name] = '';\n });\n }\n\n return attributesMap;\n}\n\n/**\n * Gets the number of arguments expected to be passed to a generated instruction in the case of\n * interpolation instructions.\n * @param interpolation An interpolation ast\n */\nexport function getInterpolationArgsLength(interpolation: Interpolation) {\n const {expressions, strings} = interpolation;\n if (expressions.length === 1 && strings.length === 2 && strings[0] === '' && strings[1] === '') {\n // If the interpolation has one interpolated value, but the prefix and suffix are both empty\n // strings, we only pass one argument, to a special instruction like `propertyInterpolate` or\n // `textInterpolate`.\n return 1;\n } else {\n return expressions.length + strings.length;\n }\n}\n\n/**\n * Generates the final instruction call statements based on the passed in configuration.\n * Will try to chain instructions as much as possible, if chaining is supported.\n */\nexport function getInstructionStatements(instructions: Instruction[]): o.Statement[] {\n const statements: o.Statement[] = [];\n let pendingExpression: o.Expression|null = null;\n let pendingExpressionType: o.ExternalReference|null = null;\n let chainLength = 0;\n\n for (const current of instructions) {\n const resolvedParams =\n (typeof current.paramsOrFn === 'function' ? current.paramsOrFn() : current.paramsOrFn) ??\n [];\n const params = Array.isArray(resolvedParams) ? resolvedParams : [resolvedParams];\n\n // If the current instruction is the same as the previous one\n // and it can be chained, add another call to the chain.\n if (chainLength < MAX_CHAIN_LENGTH && pendingExpressionType === current.reference &&\n CHAINABLE_INSTRUCTIONS.has(pendingExpressionType)) {\n // We'll always have a pending expression when there's a pending expression type.\n pendingExpression = pendingExpression!.callFn(params, pendingExpression!.sourceSpan);\n chainLength++;\n } else {\n if (pendingExpression !== null) {\n statements.push(pendingExpression.toStmt());\n }\n pendingExpression = invokeInstruction(current.span, current.reference, params);\n pendingExpressionType = current.reference;\n chainLength = 0;\n }\n }\n\n // Since the current instruction adds the previous one to the statements,\n // we may be left with the final one at the end that is still pending.\n if (pendingExpression !== null) {\n statements.push(pendingExpression.toStmt());\n }\n\n return statements;\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\nimport * as o from './output/output_ast';\nimport {compileFactoryFunction, FactoryTarget, R3DependencyMetadata, R3FactoryDelegateType, R3FactoryMetadata} from './render3/r3_factory';\nimport {Identifiers} from './render3/r3_identifiers';\nimport {convertFromMaybeForwardRefExpression, ForwardRefHandling, generateForwardRef, MaybeForwardRefExpression, R3CompiledExpression, R3Reference, typeWithParameters} from './render3/util';\nimport {DefinitionMap} from './render3/view/util';\n\nexport interface R3InjectableMetadata {\n name: string;\n type: R3Reference;\n internalType: o.Expression;\n typeArgumentCount: number;\n providedIn: MaybeForwardRefExpression;\n useClass?: MaybeForwardRefExpression;\n useFactory?: o.Expression;\n useExisting?: MaybeForwardRefExpression;\n useValue?: MaybeForwardRefExpression;\n deps?: R3DependencyMetadata[];\n}\n\nexport function compileInjectable(\n meta: R3InjectableMetadata, resolveForwardRefs: boolean): R3CompiledExpression {\n let result: {expression: o.Expression, statements: o.Statement[]}|null = null;\n\n const factoryMeta: R3FactoryMetadata = {\n name: meta.name,\n type: meta.type,\n internalType: meta.internalType,\n typeArgumentCount: meta.typeArgumentCount,\n deps: [],\n target: FactoryTarget.Injectable,\n };\n\n if (meta.useClass !== undefined) {\n // meta.useClass has two modes of operation. Either deps are specified, in which case `new` is\n // used to instantiate the class with dependencies injected, or deps are not specified and\n // the factory of the class is used to instantiate it.\n //\n // A special case exists for useClass: Type where Type is the injectable type itself and no\n // deps are specified, in which case 'useClass' is effectively ignored.\n\n const useClassOnSelf = meta.useClass.expression.isEquivalent(meta.internalType);\n let deps: R3DependencyMetadata[]|undefined = undefined;\n if (meta.deps !== undefined) {\n deps = meta.deps;\n }\n\n if (deps !== undefined) {\n // factory: () => new meta.useClass(...deps)\n result = compileFactoryFunction({\n ...factoryMeta,\n delegate: meta.useClass.expression,\n delegateDeps: deps,\n delegateType: R3FactoryDelegateType.Class,\n });\n } else if (useClassOnSelf) {\n result = compileFactoryFunction(factoryMeta);\n } else {\n result = {\n statements: [],\n expression: delegateToFactory(\n meta.type.value as o.WrappedNodeExpr,\n meta.useClass.expression as o.WrappedNodeExpr, resolveForwardRefs)\n };\n }\n } else if (meta.useFactory !== undefined) {\n if (meta.deps !== undefined) {\n result = compileFactoryFunction({\n ...factoryMeta,\n delegate: meta.useFactory,\n delegateDeps: meta.deps || [],\n delegateType: R3FactoryDelegateType.Function,\n });\n } else {\n result = {\n statements: [],\n expression: o.fn([], [new o.ReturnStatement(meta.useFactory.callFn([]))])\n };\n }\n } else if (meta.useValue !== undefined) {\n // Note: it's safe to use `meta.useValue` instead of the `USE_VALUE in meta` check used for\n // client code because meta.useValue is an Expression which will be defined even if the actual\n // value is undefined.\n result = compileFactoryFunction({\n ...factoryMeta,\n expression: meta.useValue.expression,\n });\n } else if (meta.useExisting !== undefined) {\n // useExisting is an `inject` call on the existing token.\n result = compileFactoryFunction({\n ...factoryMeta,\n expression: o.importExpr(Identifiers.inject).callFn([meta.useExisting.expression]),\n });\n } else {\n result = {\n statements: [],\n expression: delegateToFactory(\n meta.type.value as o.WrappedNodeExpr, meta.internalType as o.WrappedNodeExpr,\n resolveForwardRefs)\n };\n }\n\n const token = meta.internalType;\n\n const injectableProps =\n new DefinitionMap<{token: o.Expression, factory: o.Expression, providedIn: o.Expression}>();\n injectableProps.set('token', token);\n injectableProps.set('factory', result.expression);\n\n // Only generate providedIn property if it has a non-null value\n if ((meta.providedIn.expression as o.LiteralExpr).value !== null) {\n injectableProps.set('providedIn', convertFromMaybeForwardRefExpression(meta.providedIn));\n }\n\n const expression = o.importExpr(Identifiers.ɵɵdefineInjectable)\n .callFn([injectableProps.toLiteralMap()], undefined, true);\n return {\n expression,\n type: createInjectableType(meta),\n statements: result.statements,\n };\n}\n\nexport function createInjectableType(meta: R3InjectableMetadata) {\n return new o.ExpressionType(o.importExpr(\n Identifiers.InjectableDeclaration,\n [typeWithParameters(meta.type.type, meta.typeArgumentCount)]));\n}\n\nfunction delegateToFactory(\n type: o.WrappedNodeExpr, internalType: o.WrappedNodeExpr,\n unwrapForwardRefs: boolean): o.Expression {\n if (type.node === internalType.node) {\n // The types are the same, so we can simply delegate directly to the type's factory.\n // ```\n // factory: type.ɵfac\n // ```\n return internalType.prop('ɵfac');\n }\n\n if (!unwrapForwardRefs) {\n // The type is not wrapped in a `forwardRef()`, so we create a simple factory function that\n // accepts a sub-type as an argument.\n // ```\n // factory: function(t) { return internalType.ɵfac(t); }\n // ```\n return createFactoryFunction(internalType);\n }\n\n // The internalType is actually wrapped in a `forwardRef()` so we need to resolve that before\n // calling its factory.\n // ```\n // factory: function(t) { return core.resolveForwardRef(type).ɵfac(t); }\n // ```\n const unwrappedType = o.importExpr(Identifiers.resolveForwardRef).callFn([internalType]);\n return createFactoryFunction(unwrappedType);\n}\n\nfunction createFactoryFunction(type: o.Expression): o.FunctionExpr {\n return o.fn(\n [new o.FnParam('t', o.DYNAMIC_TYPE)],\n [new o.ReturnStatement(type.prop('ɵfac').callFn([o.variable('t')]))]);\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\nconst UNUSABLE_INTERPOLATION_REGEXPS = [\n /^\\s*$/, // empty\n /[<>]/, // html tag\n /^[{}]$/, // i18n expansion\n /&(#|[a-z])/i, // character reference,\n /^\\/\\//, // comment\n];\n\nexport function assertInterpolationSymbols(identifier: string, value: any): void {\n if (value != null && !(Array.isArray(value) && value.length == 2)) {\n throw new Error(`Expected '${identifier}' to be an array, [start, end].`);\n } else if (value != null) {\n const start = value[0] as string;\n const end = value[1] as string;\n // Check for unusable interpolation symbols\n UNUSABLE_INTERPOLATION_REGEXPS.forEach(regexp => {\n if (regexp.test(start) || regexp.test(end)) {\n throw new Error(`['${start}', '${end}'] contains unusable interpolation symbol.`);\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\nimport {assertInterpolationSymbols} from '../assertions';\n\nexport class InterpolationConfig {\n static fromArray(markers: [string, string]|null): InterpolationConfig {\n if (!markers) {\n return DEFAULT_INTERPOLATION_CONFIG;\n }\n\n assertInterpolationSymbols('interpolation', markers);\n return new InterpolationConfig(markers[0], markers[1]);\n }\n\n constructor(public start: string, public end: string) {}\n}\n\nexport const DEFAULT_INTERPOLATION_CONFIG: InterpolationConfig =\n new InterpolationConfig('{{', '}}');\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\nexport const $EOF = 0;\nexport const $BSPACE = 8;\nexport const $TAB = 9;\nexport const $LF = 10;\nexport const $VTAB = 11;\nexport const $FF = 12;\nexport const $CR = 13;\nexport const $SPACE = 32;\nexport const $BANG = 33;\nexport const $DQ = 34;\nexport const $HASH = 35;\nexport const $$ = 36;\nexport const $PERCENT = 37;\nexport const $AMPERSAND = 38;\nexport const $SQ = 39;\nexport const $LPAREN = 40;\nexport const $RPAREN = 41;\nexport const $STAR = 42;\nexport const $PLUS = 43;\nexport const $COMMA = 44;\nexport const $MINUS = 45;\nexport const $PERIOD = 46;\nexport const $SLASH = 47;\nexport const $COLON = 58;\nexport const $SEMICOLON = 59;\nexport const $LT = 60;\nexport const $EQ = 61;\nexport const $GT = 62;\nexport const $QUESTION = 63;\n\nexport const $0 = 48;\nexport const $7 = 55;\nexport const $9 = 57;\n\nexport const $A = 65;\nexport const $E = 69;\nexport const $F = 70;\nexport const $X = 88;\nexport const $Z = 90;\n\nexport const $LBRACKET = 91;\nexport const $BACKSLASH = 92;\nexport const $RBRACKET = 93;\nexport const $CARET = 94;\nexport const $_ = 95;\n\nexport const $a = 97;\nexport const $b = 98;\nexport const $e = 101;\nexport const $f = 102;\nexport const $n = 110;\nexport const $r = 114;\nexport const $t = 116;\nexport const $u = 117;\nexport const $v = 118;\nexport const $x = 120;\nexport const $z = 122;\n\nexport const $LBRACE = 123;\nexport const $BAR = 124;\nexport const $RBRACE = 125;\nexport const $NBSP = 160;\n\nexport const $PIPE = 124;\nexport const $TILDA = 126;\nexport const $AT = 64;\n\nexport const $BT = 96;\n\nexport function isWhitespace(code: number): boolean {\n return (code >= $TAB && code <= $SPACE) || (code == $NBSP);\n}\n\nexport function isDigit(code: number): boolean {\n return $0 <= code && code <= $9;\n}\n\nexport function isAsciiLetter(code: number): boolean {\n return code >= $a && code <= $z || code >= $A && code <= $Z;\n}\n\nexport function isAsciiHexDigit(code: number): boolean {\n return code >= $a && code <= $f || code >= $A && code <= $F || isDigit(code);\n}\n\nexport function isNewLine(code: number): boolean {\n return code === $LF || code === $CR;\n}\n\nexport function isOctalDigit(code: number): boolean {\n return $0 <= code && code <= $7;\n}\n\nexport function isQuote(code: number): boolean {\n return code === $SQ || code === $DQ || code === $BT;\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 */\nimport * as chars from './chars';\nimport {stringify} from './util';\n\nexport class ParseLocation {\n constructor(\n public file: ParseSourceFile, public offset: number, public line: number,\n public col: number) {}\n\n toString(): string {\n return this.offset != null ? `${this.file.url}@${this.line}:${this.col}` : this.file.url;\n }\n\n moveBy(delta: number): ParseLocation {\n const source = this.file.content;\n const len = source.length;\n let offset = this.offset;\n let line = this.line;\n let col = this.col;\n while (offset > 0 && delta < 0) {\n offset--;\n delta++;\n const ch = source.charCodeAt(offset);\n if (ch == chars.$LF) {\n line--;\n const priorLine =\n source.substring(0, offset - 1).lastIndexOf(String.fromCharCode(chars.$LF));\n col = priorLine > 0 ? offset - priorLine : offset;\n } else {\n col--;\n }\n }\n while (offset < len && delta > 0) {\n const ch = source.charCodeAt(offset);\n offset++;\n delta--;\n if (ch == chars.$LF) {\n line++;\n col = 0;\n } else {\n col++;\n }\n }\n return new ParseLocation(this.file, offset, line, col);\n }\n\n // Return the source around the location\n // Up to `maxChars` or `maxLines` on each side of the location\n getContext(maxChars: number, maxLines: number): {before: string, after: string}|null {\n const content = this.file.content;\n let startOffset = this.offset;\n\n if (startOffset != null) {\n if (startOffset > content.length - 1) {\n startOffset = content.length - 1;\n }\n let endOffset = startOffset;\n let ctxChars = 0;\n let ctxLines = 0;\n\n while (ctxChars < maxChars && startOffset > 0) {\n startOffset--;\n ctxChars++;\n if (content[startOffset] == '\\n') {\n if (++ctxLines == maxLines) {\n break;\n }\n }\n }\n\n ctxChars = 0;\n ctxLines = 0;\n while (ctxChars < maxChars && endOffset < content.length - 1) {\n endOffset++;\n ctxChars++;\n if (content[endOffset] == '\\n') {\n if (++ctxLines == maxLines) {\n break;\n }\n }\n }\n\n return {\n before: content.substring(startOffset, this.offset),\n after: content.substring(this.offset, endOffset + 1),\n };\n }\n\n return null;\n }\n}\n\nexport class ParseSourceFile {\n constructor(public content: string, public url: string) {}\n}\n\nexport class ParseSourceSpan {\n /**\n * Create an object that holds information about spans of tokens/nodes captured during\n * lexing/parsing of text.\n *\n * @param start\n * The location of the start of the span (having skipped leading trivia).\n * Skipping leading trivia makes source-spans more \"user friendly\", since things like HTML\n * elements will appear to begin at the start of the opening tag, rather than at the start of any\n * leading trivia, which could include newlines.\n *\n * @param end\n * The location of the end of the span.\n *\n * @param fullStart\n * The start of the token without skipping the leading trivia.\n * This is used by tooling that splits tokens further, such as extracting Angular interpolations\n * from text tokens. Such tooling creates new source-spans relative to the original token's\n * source-span. If leading trivia characters have been skipped then the new source-spans may be\n * incorrectly offset.\n *\n * @param details\n * Additional information (such as identifier names) that should be associated with the span.\n */\n constructor(\n public start: ParseLocation, public end: ParseLocation,\n public fullStart: ParseLocation = start, public details: string|null = null) {}\n\n toString(): string {\n return this.start.file.content.substring(this.start.offset, this.end.offset);\n }\n}\n\nexport enum ParseErrorLevel {\n WARNING,\n ERROR,\n}\n\nexport class ParseError {\n constructor(\n public span: ParseSourceSpan, public msg: string,\n public level: ParseErrorLevel = ParseErrorLevel.ERROR) {}\n\n contextualMessage(): string {\n const ctx = this.span.start.getContext(100, 3);\n return ctx ? `${this.msg} (\"${ctx.before}[${ParseErrorLevel[this.level]} ->]${ctx.after}\")` :\n this.msg;\n }\n\n toString(): string {\n const details = this.span.details ? `, ${this.span.details}` : '';\n return `${this.contextualMessage()}: ${this.span.start}${details}`;\n }\n}\n\n/**\n * Generates Source Span object for a given R3 Type for JIT mode.\n *\n * @param kind Component or Directive.\n * @param typeName name of the Component or Directive.\n * @param sourceUrl reference to Component or Directive source.\n * @returns instance of ParseSourceSpan that represent a given Component or Directive.\n */\nexport function r3JitTypeSourceSpan(\n kind: string, typeName: string, sourceUrl: string): ParseSourceSpan {\n const sourceFileName = `in ${kind} ${typeName} in ${sourceUrl}`;\n const sourceFile = new ParseSourceFile('', sourceFileName);\n return new ParseSourceSpan(\n new ParseLocation(sourceFile, -1, -1, -1), new ParseLocation(sourceFile, -1, -1, -1));\n}\n\nlet _anonymousTypeIndex = 0;\n\nexport function identifierName(compileIdentifier: CompileIdentifierMetadata|null|undefined): string|\n null {\n if (!compileIdentifier || !compileIdentifier.reference) {\n return null;\n }\n const ref = compileIdentifier.reference;\n if (ref['__anonymousType']) {\n return ref['__anonymousType'];\n }\n if (ref['__forward_ref__']) {\n // We do not want to try to stringify a `forwardRef()` function because that would cause the\n // inner function to be evaluated too early, defeating the whole point of the `forwardRef`.\n return '__forward_ref__';\n }\n let identifier = stringify(ref);\n if (identifier.indexOf('(') >= 0) {\n // case: anonymous functions!\n identifier = `anonymous_${_anonymousTypeIndex++}`;\n ref['__anonymousType'] = identifier;\n } else {\n identifier = sanitizeIdentifier(identifier);\n }\n return identifier;\n}\n\nexport interface CompileIdentifierMetadata {\n reference: any;\n}\n\nexport function sanitizeIdentifier(name: string): string {\n return name.replace(/\\W/g, '_');\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\nimport {AbstractEmitterVisitor, EmitterVisitorContext, escapeIdentifier} from './abstract_emitter';\nimport * as o from './output_ast';\n\n/**\n * In TypeScript, tagged template functions expect a \"template object\", which is an array of\n * \"cooked\" strings plus a `raw` property that contains an array of \"raw\" strings. This is\n * typically constructed with a function called `__makeTemplateObject(cooked, raw)`, but it may not\n * be available in all environments.\n *\n * This is a JavaScript polyfill that uses __makeTemplateObject when it's available, but otherwise\n * creates an inline helper with the same functionality.\n *\n * In the inline function, if `Object.defineProperty` is available we use that to attach the `raw`\n * array.\n */\nconst makeTemplateObjectPolyfill =\n '(this&&this.__makeTemplateObject||function(e,t){return Object.defineProperty?Object.defineProperty(e,\"raw\",{value:t}):e.raw=t,e})';\n\nexport abstract class AbstractJsEmitterVisitor extends AbstractEmitterVisitor {\n constructor() {\n super(false);\n }\n\n override visitWrappedNodeExpr(ast: o.WrappedNodeExpr, ctx: EmitterVisitorContext): any {\n throw new Error('Cannot emit a WrappedNodeExpr in Javascript.');\n }\n\n override visitDeclareVarStmt(stmt: o.DeclareVarStmt, ctx: EmitterVisitorContext): any {\n ctx.print(stmt, `var ${stmt.name}`);\n if (stmt.value) {\n ctx.print(stmt, ' = ');\n stmt.value.visitExpression(this, ctx);\n }\n ctx.println(stmt, `;`);\n return null;\n }\n override visitTaggedTemplateExpr(ast: o.TaggedTemplateExpr, ctx: EmitterVisitorContext): any {\n // The following convoluted piece of code is effectively the downlevelled equivalent of\n // ```\n // tag`...`\n // ```\n // which is effectively like:\n // ```\n // tag(__makeTemplateObject(cooked, raw), expression1, expression2, ...);\n // ```\n const elements = ast.template.elements;\n ast.tag.visitExpression(this, ctx);\n ctx.print(ast, `(${makeTemplateObjectPolyfill}(`);\n ctx.print(ast, `[${elements.map(part => escapeIdentifier(part.text, false)).join(', ')}], `);\n ctx.print(ast, `[${elements.map(part => escapeIdentifier(part.rawText, false)).join(', ')}])`);\n ast.template.expressions.forEach(expression => {\n ctx.print(ast, ', ');\n expression.visitExpression(this, ctx);\n });\n ctx.print(ast, ')');\n return null;\n }\n override visitFunctionExpr(ast: o.FunctionExpr, ctx: EmitterVisitorContext): any {\n ctx.print(ast, `function${ast.name ? ' ' + ast.name : ''}(`);\n this._visitParams(ast.params, ctx);\n ctx.println(ast, `) {`);\n ctx.incIndent();\n this.visitAllStatements(ast.statements, ctx);\n ctx.decIndent();\n ctx.print(ast, `}`);\n return null;\n }\n override visitDeclareFunctionStmt(stmt: o.DeclareFunctionStmt, ctx: EmitterVisitorContext): any {\n ctx.print(stmt, `function ${stmt.name}(`);\n this._visitParams(stmt.params, ctx);\n ctx.println(stmt, `) {`);\n ctx.incIndent();\n this.visitAllStatements(stmt.statements, ctx);\n ctx.decIndent();\n ctx.println(stmt, `}`);\n return null;\n }\n override visitLocalizedString(ast: o.LocalizedString, ctx: EmitterVisitorContext): any {\n // The following convoluted piece of code is effectively the downlevelled equivalent of\n // ```\n // $localize `...`\n // ```\n // which is effectively like:\n // ```\n // $localize(__makeTemplateObject(cooked, raw), expression1, expression2, ...);\n // ```\n ctx.print(ast, `$localize(${makeTemplateObjectPolyfill}(`);\n const parts = [ast.serializeI18nHead()];\n for (let i = 1; i < ast.messageParts.length; i++) {\n parts.push(ast.serializeI18nTemplatePart(i));\n }\n ctx.print(ast, `[${parts.map(part => escapeIdentifier(part.cooked, false)).join(', ')}], `);\n ctx.print(ast, `[${parts.map(part => escapeIdentifier(part.raw, false)).join(', ')}])`);\n ast.expressions.forEach(expression => {\n ctx.print(ast, ', ');\n expression.visitExpression(this, ctx);\n });\n ctx.print(ast, ')');\n return null;\n }\n\n private _visitParams(params: o.FnParam[], ctx: EmitterVisitorContext): void {\n this.visitAllObjects(param => ctx.print(null, param.name), params, ctx, ',');\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 * @fileoverview\n * A module to facilitate use of a Trusted Types policy within the JIT\n * compiler. It lazily constructs the Trusted Types policy, providing helper\n * utilities for promoting strings to Trusted Types. When Trusted Types are not\n * available, strings are used as a fallback.\n * @security All use of this module is security-sensitive and should go through\n * security review.\n */\n\nimport {global} from '../util';\n\n/**\n * While Angular only uses Trusted Types internally for the time being,\n * references to Trusted Types could leak into our core.d.ts, which would force\n * anyone compiling against @angular/core to provide the @types/trusted-types\n * package in their compilation unit.\n *\n * Until https://github.com/microsoft/TypeScript/issues/30024 is resolved, we\n * will keep Angular's public API surface free of references to Trusted Types.\n * For internal and semi-private APIs that need to reference Trusted Types, the\n * minimal type definitions for the Trusted Types API provided by this module\n * should be used instead. They are marked as \"declare\" to prevent them from\n * being renamed by compiler optimization.\n *\n * Adapted from\n * https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/trusted-types/index.d.ts\n * but restricted to the API surface used within Angular.\n */\n\nexport declare interface TrustedScript {\n __brand__: 'TrustedScript';\n}\n\nexport declare interface TrustedTypePolicyFactory {\n createPolicy(policyName: string, policyOptions: {\n createScript?: (input: string) => string,\n }): TrustedTypePolicy;\n}\n\nexport declare interface TrustedTypePolicy {\n createScript(input: string): TrustedScript;\n}\n\n\n/**\n * The Trusted Types policy, or null if Trusted Types are not\n * enabled/supported, or undefined if the policy has not been created yet.\n */\nlet policy: TrustedTypePolicy|null|undefined;\n\n/**\n * Returns the Trusted Types policy, or null if Trusted Types are not\n * enabled/supported. The first call to this function will create the policy.\n */\nfunction getPolicy(): TrustedTypePolicy|null {\n if (policy === undefined) {\n policy = null;\n if (global.trustedTypes) {\n try {\n policy =\n (global.trustedTypes as TrustedTypePolicyFactory).createPolicy('angular#unsafe-jit', {\n createScript: (s: string) => s,\n });\n } catch {\n // trustedTypes.createPolicy throws if called with a name that is\n // already registered, even in report-only mode. Until the API changes,\n // catch the error not to break the applications functionally. In such\n // cases, the code will fall back to using strings.\n }\n }\n }\n return policy;\n}\n\n/**\n * Unsafely promote a string to a TrustedScript, falling back to strings when\n * Trusted Types are not available.\n * @security In particular, it must be assured that the provided string will\n * never cause an XSS vulnerability if used in a context that will be\n * interpreted and executed as a script by a browser, e.g. when calling eval.\n */\nfunction trustedScriptFromString(script: string): TrustedScript|string {\n return getPolicy()?.createScript(script) || script;\n}\n\n/**\n * Unsafely call the Function constructor with the given string arguments.\n * @security This is a security-sensitive function; any use of this function\n * must go through security review. In particular, it must be assured that it\n * is only called from the JIT compiler, as use in other code can lead to XSS\n * vulnerabilities.\n */\nexport function newTrustedFunctionForJIT(...args: string[]): Function {\n if (!global.trustedTypes) {\n // In environments that don't support Trusted Types, fall back to the most\n // straightforward implementation:\n return new Function(...args);\n }\n\n // Chrome currently does not support passing TrustedScript to the Function\n // constructor. The following implements the workaround proposed on the page\n // below, where the Chromium bug is also referenced:\n // https://github.com/w3c/webappsec-trusted-types/wiki/Trusted-Types-for-function-constructor\n const fnArgs = args.slice(0, -1).join(',');\n const fnBody = args[args.length - 1];\n const body = `(function anonymous(${fnArgs}\n) { ${fnBody}\n})`;\n\n // Using eval directly confuses the compiler and prevents this module from\n // being stripped out of JS binaries even if not used. The global['eval']\n // indirection fixes that.\n const fn = global['eval'](trustedScriptFromString(body) as string) as Function;\n if (fn.bind === undefined) {\n // Workaround for a browser bug that only exists in Chrome 83, where passing\n // a TrustedScript to eval just returns the TrustedScript back without\n // evaluating it. In that case, fall back to the most straightforward\n // implementation:\n return new Function(...args);\n }\n\n // To completely mimic the behavior of calling \"new Function\", two more\n // things need to happen:\n // 1. Stringifying the resulting function should return its source code\n fn.toString = () => body;\n // 2. When calling the resulting function, `this` should refer to `global`\n return fn.bind(global);\n\n // When Trusted Types support in Function constructors is widely available,\n // the implementation of this function can be simplified to:\n // return new Function(...args.map(a => trustedScriptFromString(a)));\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\nimport {identifierName} from '../parse_util';\n\nimport {EmitterVisitorContext} from './abstract_emitter';\nimport {AbstractJsEmitterVisitor} from './abstract_js_emitter';\nimport * as o from './output_ast';\nimport {newTrustedFunctionForJIT} from './output_jit_trusted_types';\n\nexport interface ExternalReferenceResolver {\n resolveExternalReference(ref: o.ExternalReference): unknown;\n}\n\n/**\n * A helper class to manage the evaluation of JIT generated code.\n */\nexport class JitEvaluator {\n /**\n *\n * @param sourceUrl The URL of the generated code.\n * @param statements An array of Angular statement AST nodes to be evaluated.\n * @param refResolver Resolves `o.ExternalReference`s into values.\n * @param createSourceMaps If true then create a source-map for the generated code and include it\n * inline as a source-map comment.\n * @returns A map of all the variables in the generated code.\n */\n evaluateStatements(\n sourceUrl: string, statements: o.Statement[], refResolver: ExternalReferenceResolver,\n createSourceMaps: boolean): {[key: string]: any} {\n const converter = new JitEmitterVisitor(refResolver);\n const ctx = EmitterVisitorContext.createRoot();\n // Ensure generated code is in strict mode\n if (statements.length > 0 && !isUseStrictStatement(statements[0])) {\n statements = [\n o.literal('use strict').toStmt(),\n ...statements,\n ];\n }\n converter.visitAllStatements(statements, ctx);\n converter.createReturnStmt(ctx);\n return this.evaluateCode(sourceUrl, ctx, converter.getArgs(), createSourceMaps);\n }\n\n /**\n * Evaluate a piece of JIT generated code.\n * @param sourceUrl The URL of this generated code.\n * @param ctx A context object that contains an AST of the code to be evaluated.\n * @param vars A map containing the names and values of variables that the evaluated code might\n * reference.\n * @param createSourceMap If true then create a source-map for the generated code and include it\n * inline as a source-map comment.\n * @returns The result of evaluating the code.\n */\n evaluateCode(\n sourceUrl: string, ctx: EmitterVisitorContext, vars: {[key: string]: any},\n createSourceMap: boolean): any {\n let fnBody = `\"use strict\";${ctx.toSource()}\\n//# sourceURL=${sourceUrl}`;\n const fnArgNames: string[] = [];\n const fnArgValues: any[] = [];\n for (const argName in vars) {\n fnArgValues.push(vars[argName]);\n fnArgNames.push(argName);\n }\n if (createSourceMap) {\n // using `new Function(...)` generates a header, 1 line of no arguments, 2 lines otherwise\n // E.g. ```\n // function anonymous(a,b,c\n // /**/) { ... }```\n // We don't want to hard code this fact, so we auto detect it via an empty function first.\n const emptyFn = newTrustedFunctionForJIT(...fnArgNames.concat('return null;')).toString();\n const headerLines = emptyFn.slice(0, emptyFn.indexOf('return null;')).split('\\n').length - 1;\n fnBody += `\\n${ctx.toSourceMapGenerator(sourceUrl, headerLines).toJsComment()}`;\n }\n const fn = newTrustedFunctionForJIT(...fnArgNames.concat(fnBody));\n return this.executeFunction(fn, fnArgValues);\n }\n\n /**\n * Execute a JIT generated function by calling it.\n *\n * This method can be overridden in tests to capture the functions that are generated\n * by this `JitEvaluator` class.\n *\n * @param fn A function to execute.\n * @param args The arguments to pass to the function being executed.\n * @returns The return value of the executed function.\n */\n executeFunction(fn: Function, args: any[]) {\n return fn(...args);\n }\n}\n\n/**\n * An Angular AST visitor that converts AST nodes into executable JavaScript code.\n */\nexport class JitEmitterVisitor extends AbstractJsEmitterVisitor {\n private _evalArgNames: string[] = [];\n private _evalArgValues: any[] = [];\n private _evalExportedVars: string[] = [];\n\n constructor(private refResolver: ExternalReferenceResolver) {\n super();\n }\n\n createReturnStmt(ctx: EmitterVisitorContext) {\n const stmt = new o.ReturnStatement(new o.LiteralMapExpr(this._evalExportedVars.map(\n resultVar => new o.LiteralMapEntry(resultVar, o.variable(resultVar), false))));\n stmt.visitStatement(this, ctx);\n }\n\n getArgs(): {[key: string]: any} {\n const result: {[key: string]: any} = {};\n for (let i = 0; i < this._evalArgNames.length; i++) {\n result[this._evalArgNames[i]] = this._evalArgValues[i];\n }\n return result;\n }\n\n override visitExternalExpr(ast: o.ExternalExpr, ctx: EmitterVisitorContext): any {\n this._emitReferenceToExternal(ast, this.refResolver.resolveExternalReference(ast.value), ctx);\n return null;\n }\n\n override visitWrappedNodeExpr(ast: o.WrappedNodeExpr, ctx: EmitterVisitorContext): any {\n this._emitReferenceToExternal(ast, ast.node, ctx);\n return null;\n }\n\n override visitDeclareVarStmt(stmt: o.DeclareVarStmt, ctx: EmitterVisitorContext): any {\n if (stmt.hasModifier(o.StmtModifier.Exported)) {\n this._evalExportedVars.push(stmt.name);\n }\n return super.visitDeclareVarStmt(stmt, ctx);\n }\n\n override visitDeclareFunctionStmt(stmt: o.DeclareFunctionStmt, ctx: EmitterVisitorContext): any {\n if (stmt.hasModifier(o.StmtModifier.Exported)) {\n this._evalExportedVars.push(stmt.name);\n }\n return super.visitDeclareFunctionStmt(stmt, ctx);\n }\n\n private _emitReferenceToExternal(ast: o.Expression, value: any, ctx: EmitterVisitorContext):\n void {\n let id = this._evalArgValues.indexOf(value);\n if (id === -1) {\n id = this._evalArgValues.length;\n this._evalArgValues.push(value);\n const name = identifierName({reference: value}) || 'val';\n this._evalArgNames.push(`jit_${name}_${id}`);\n }\n ctx.print(ast, this._evalArgNames[id]);\n }\n}\n\n\nfunction isUseStrictStatement(statement: o.Statement): boolean {\n return statement.isEquivalent(o.literal('use strict').toStmt());\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\nimport * as o from '../output/output_ast';\nimport {Identifiers as R3} from './r3_identifiers';\nimport {R3CompiledExpression, R3Reference} from './util';\nimport {DefinitionMap} from './view/util';\n\nexport interface R3InjectorMetadata {\n name: string;\n type: R3Reference;\n internalType: o.Expression;\n providers: o.Expression|null;\n imports: o.Expression[];\n}\n\nexport function compileInjector(meta: R3InjectorMetadata): R3CompiledExpression {\n const definitionMap = new DefinitionMap<{providers: o.Expression; imports: o.Expression;}>();\n\n if (meta.providers !== null) {\n definitionMap.set('providers', meta.providers);\n }\n\n if (meta.imports.length > 0) {\n definitionMap.set('imports', o.literalArr(meta.imports));\n }\n\n const expression =\n o.importExpr(R3.defineInjector).callFn([definitionMap.toLiteralMap()], undefined, true);\n const type = createInjectorType(meta);\n return {expression, type, statements: []};\n}\n\nexport function createInjectorType(meta: R3InjectorMetadata): o.Type {\n return new o.ExpressionType(\n o.importExpr(R3.InjectorDeclaration, [new o.ExpressionType(meta.type.type)]));\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\nimport * as o from '../output/output_ast';\nimport {ExternalReferenceResolver} from '../output/output_jit';\n\n/**\n * Implementation of `CompileReflector` which resolves references to @angular/core\n * symbols at runtime, according to a consumer-provided mapping.\n *\n * Only supports `resolveExternalReference`, all other methods throw.\n */\nexport class R3JitReflector implements ExternalReferenceResolver {\n constructor(private context: {[key: string]: unknown}) {}\n\n resolveExternalReference(ref: o.ExternalReference): unknown {\n // This reflector only handles @angular/core imports.\n if (ref.moduleName !== '@angular/core') {\n throw new Error(`Cannot resolve external reference to ${\n ref.moduleName}, only references to @angular/core are supported.`);\n }\n if (!this.context.hasOwnProperty(ref.name!)) {\n throw new Error(`No value provided for @angular/core symbol '${ref.name!}'.`);\n }\n return this.context[ref.name!];\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\nimport {R3DeclareNgModuleFacade} from '../compiler_facade_interface';\nimport * as o from '../output/output_ast';\n\nimport {Identifiers as R3} from './r3_identifiers';\nimport {jitOnlyGuardedExpression, R3CompiledExpression, R3Reference, refsToArray} from './util';\nimport {DefinitionMap} from './view/util';\n\n/**\n * How the selector scope of an NgModule (its declarations, imports, and exports) should be emitted\n * as a part of the NgModule definition.\n */\nexport enum R3SelectorScopeMode {\n /**\n * Emit the declarations inline into the module definition.\n *\n * This option is useful in certain contexts where it's known that JIT support is required. The\n * tradeoff here is that this emit style prevents directives and pipes from being tree-shaken if\n * they are unused, but the NgModule is used.\n */\n Inline,\n\n /**\n * Emit the declarations using a side effectful function call, `ɵɵsetNgModuleScope`, that is\n * guarded with the `ngJitMode` flag.\n *\n * This form of emit supports JIT and can be optimized away if the `ngJitMode` flag is set to\n * false, which allows unused directives and pipes to be tree-shaken.\n */\n SideEffect,\n\n /**\n * Don't generate selector scopes at all.\n *\n * This is useful for contexts where JIT support is known to be unnecessary.\n */\n Omit,\n}\n\n/**\n * Metadata required by the module compiler to generate a module def (`ɵmod`) for a type.\n */\nexport interface R3NgModuleMetadata {\n /**\n * An expression representing the module type being compiled.\n */\n type: R3Reference;\n\n /**\n * An expression representing the module type being compiled, intended for use within a class\n * definition itself.\n *\n * This can differ from the outer `type` if the class is being compiled by ngcc and is inside\n * an IIFE structure that uses a different name internally.\n */\n internalType: o.Expression;\n\n /**\n * An expression intended for use by statements that are adjacent (i.e. tightly coupled) to but\n * not internal to a class definition.\n *\n * This can differ from the outer `type` if the class is being compiled by ngcc and is inside\n * an IIFE structure that uses a different name internally.\n */\n adjacentType: o.Expression;\n\n /**\n * An array of expressions representing the bootstrap components specified by the module.\n */\n bootstrap: R3Reference[];\n\n /**\n * An array of expressions representing the directives and pipes declared by the module.\n */\n declarations: R3Reference[];\n\n /**\n * Those declarations which should be visible to downstream consumers. If not specified, all\n * declarations are made visible to downstream consumers.\n */\n publicDeclarationTypes: o.Expression[]|null;\n\n /**\n * An array of expressions representing the imports of the module.\n */\n imports: R3Reference[];\n\n /**\n * Whether or not to include `imports` in generated type declarations.\n */\n includeImportTypes: boolean;\n\n /**\n * An array of expressions representing the exports of the module.\n */\n exports: R3Reference[];\n\n /**\n * How to emit the selector scope values (declarations, imports, exports).\n */\n selectorScopeMode: R3SelectorScopeMode;\n\n /**\n * Whether to generate closure wrappers for bootstrap, declarations, imports, and exports.\n */\n containsForwardDecls: boolean;\n\n /**\n * The set of schemas that declare elements to be allowed in the NgModule.\n */\n schemas: R3Reference[]|null;\n\n /** Unique ID or expression representing the unique ID of an NgModule. */\n id: o.Expression|null;\n}\n\n/**\n * The shape of the object literal that is passed to the `ɵɵdefineNgModule()` call.\n */\ninterface R3NgModuleDefMap {\n /**\n * An expression representing the module type being compiled.\n */\n type: o.Expression;\n /**\n * An expression evaluating to an array of expressions representing the bootstrap components\n * specified by the module.\n */\n bootstrap?: o.Expression;\n /**\n * An expression evaluating to an array of expressions representing the directives and pipes\n * declared by the module.\n */\n declarations?: o.Expression;\n /**\n * An expression evaluating to an array of expressions representing the imports of the module.\n */\n imports?: o.Expression;\n /**\n * An expression evaluating to an array of expressions representing the exports of the module.\n */\n exports?: o.Expression;\n /**\n * A literal array expression containing the schemas that declare elements to be allowed in the\n * NgModule.\n */\n schemas?: o.LiteralArrayExpr;\n /**\n * An expression evaluating to the unique ID of an NgModule.\n * */\n id?: o.Expression;\n}\n\n/**\n * Construct an `R3NgModuleDef` for the given `R3NgModuleMetadata`.\n */\nexport function compileNgModule(meta: R3NgModuleMetadata): R3CompiledExpression {\n const {\n adjacentType,\n internalType,\n bootstrap,\n declarations,\n imports,\n exports,\n schemas,\n containsForwardDecls,\n selectorScopeMode,\n id\n } = meta;\n\n const statements: o.Statement[] = [];\n const definitionMap = new DefinitionMap();\n definitionMap.set('type', internalType);\n\n if (bootstrap.length > 0) {\n definitionMap.set('bootstrap', refsToArray(bootstrap, containsForwardDecls));\n }\n\n if (selectorScopeMode === R3SelectorScopeMode.Inline) {\n // If requested to emit scope information inline, pass the `declarations`, `imports` and\n // `exports` to the `ɵɵdefineNgModule()` call directly.\n\n if (declarations.length > 0) {\n definitionMap.set('declarations', refsToArray(declarations, containsForwardDecls));\n }\n\n if (imports.length > 0) {\n definitionMap.set('imports', refsToArray(imports, containsForwardDecls));\n }\n\n if (exports.length > 0) {\n definitionMap.set('exports', refsToArray(exports, containsForwardDecls));\n }\n } else if (selectorScopeMode === R3SelectorScopeMode.SideEffect) {\n // In this mode, scope information is not passed into `ɵɵdefineNgModule` as it\n // would prevent tree-shaking of the declarations, imports and exports references. Instead, it's\n // patched onto the NgModule definition with a `ɵɵsetNgModuleScope` call that's guarded by the\n // `ngJitMode` flag.\n const setNgModuleScopeCall = generateSetNgModuleScopeCall(meta);\n if (setNgModuleScopeCall !== null) {\n statements.push(setNgModuleScopeCall);\n }\n } else {\n // Selector scope emit was not requested, so skip it.\n }\n\n if (schemas !== null && schemas.length > 0) {\n definitionMap.set('schemas', o.literalArr(schemas.map(ref => ref.value)));\n }\n\n if (id !== null) {\n definitionMap.set('id', id);\n\n // Generate a side-effectful call to register this NgModule by its id, as per the semantics of\n // NgModule ids.\n statements.push(o.importExpr(R3.registerNgModuleType).callFn([adjacentType, id]).toStmt());\n }\n\n const expression =\n o.importExpr(R3.defineNgModule).callFn([definitionMap.toLiteralMap()], undefined, true);\n const type = createNgModuleType(meta);\n\n return {expression, type, statements};\n}\n\n/**\n * This function is used in JIT mode to generate the call to `ɵɵdefineNgModule()` from a call to\n * `ɵɵngDeclareNgModule()`.\n */\nexport function compileNgModuleDeclarationExpression(meta: R3DeclareNgModuleFacade): o.Expression {\n const definitionMap = new DefinitionMap();\n definitionMap.set('type', new o.WrappedNodeExpr(meta.type));\n if (meta.bootstrap !== undefined) {\n definitionMap.set('bootstrap', new o.WrappedNodeExpr(meta.bootstrap));\n }\n if (meta.declarations !== undefined) {\n definitionMap.set('declarations', new o.WrappedNodeExpr(meta.declarations));\n }\n if (meta.imports !== undefined) {\n definitionMap.set('imports', new o.WrappedNodeExpr(meta.imports));\n }\n if (meta.exports !== undefined) {\n definitionMap.set('exports', new o.WrappedNodeExpr(meta.exports));\n }\n if (meta.schemas !== undefined) {\n definitionMap.set('schemas', new o.WrappedNodeExpr(meta.schemas));\n }\n if (meta.id !== undefined) {\n definitionMap.set('id', new o.WrappedNodeExpr(meta.id));\n }\n return o.importExpr(R3.defineNgModule).callFn([definitionMap.toLiteralMap()]);\n}\n\nexport function createNgModuleType(\n {type: moduleType, declarations, exports, imports, includeImportTypes, publicDeclarationTypes}:\n R3NgModuleMetadata): o.ExpressionType {\n return new o.ExpressionType(o.importExpr(R3.NgModuleDeclaration, [\n new o.ExpressionType(moduleType.type),\n publicDeclarationTypes === null ? tupleTypeOf(declarations) :\n tupleOfTypes(publicDeclarationTypes),\n includeImportTypes ? tupleTypeOf(imports) : o.NONE_TYPE,\n tupleTypeOf(exports),\n ]));\n}\n\n/**\n * Generates a function call to `ɵɵsetNgModuleScope` with all necessary information so that the\n * transitive module scope can be computed during runtime in JIT mode. This call is marked pure\n * such that the references to declarations, imports and exports may be elided causing these\n * symbols to become tree-shakeable.\n */\nfunction generateSetNgModuleScopeCall(meta: R3NgModuleMetadata): o.Statement|null {\n const {adjacentType: moduleType, declarations, imports, exports, containsForwardDecls} = meta;\n\n const scopeMap = new DefinitionMap<\n {declarations: o.Expression, imports: o.Expression, exports: o.Expression}>();\n\n if (declarations.length > 0) {\n scopeMap.set('declarations', refsToArray(declarations, containsForwardDecls));\n }\n\n if (imports.length > 0) {\n scopeMap.set('imports', refsToArray(imports, containsForwardDecls));\n }\n\n if (exports.length > 0) {\n scopeMap.set('exports', refsToArray(exports, containsForwardDecls));\n }\n\n if (Object.keys(scopeMap.values).length === 0) {\n return null;\n }\n\n // setNgModuleScope(...)\n const fnCall = new o.InvokeFunctionExpr(\n /* fn */ o.importExpr(R3.setNgModuleScope),\n /* args */[moduleType, scopeMap.toLiteralMap()]);\n\n // (ngJitMode guard) && setNgModuleScope(...)\n const guardedCall = jitOnlyGuardedExpression(fnCall);\n\n // function() { (ngJitMode guard) && setNgModuleScope(...); }\n const iife = new o.FunctionExpr(\n /* params */[],\n /* statements */[guardedCall.toStmt()]);\n\n // (function() { (ngJitMode guard) && setNgModuleScope(...); })()\n const iifeCall = new o.InvokeFunctionExpr(\n /* fn */ iife,\n /* args */[]);\n\n return iifeCall.toStmt();\n}\n\nfunction tupleTypeOf(exp: R3Reference[]): o.Type {\n const types = exp.map(ref => o.typeofExpr(ref.type));\n return exp.length > 0 ? o.expressionType(o.literalArr(types)) : o.NONE_TYPE;\n}\n\nfunction tupleOfTypes(types: o.Expression[]): o.Type {\n const typeofTypes = types.map(type => o.typeofExpr(type));\n return types.length > 0 ? o.expressionType(o.literalArr(typeofTypes)) : o.NONE_TYPE;\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 */\nimport * as o from '../output/output_ast';\n\nimport {R3DependencyMetadata} from './r3_factory';\nimport {Identifiers as R3} from './r3_identifiers';\nimport {R3CompiledExpression, R3Reference, typeWithParameters} from './util';\n\nexport interface R3PipeMetadata {\n /**\n * Name of the pipe type.\n */\n name: string;\n\n /**\n * An expression representing a reference to the pipe itself.\n */\n type: R3Reference;\n\n /**\n * An expression representing the pipe being compiled, intended for use within a class definition\n * itself.\n *\n * This can differ from the outer `type` if the class is being compiled by ngcc and is inside an\n * IIFE structure that uses a different name internally.\n */\n internalType: o.Expression;\n\n /**\n * Number of generic type parameters of the type itself.\n */\n typeArgumentCount: number;\n\n /**\n * Name of the pipe.\n */\n pipeName: string;\n\n /**\n * Dependencies of the pipe's constructor.\n */\n deps: R3DependencyMetadata[]|null;\n\n /**\n * Whether the pipe is marked as pure.\n */\n pure: boolean;\n\n /**\n * Whether the pipe is standalone.\n */\n isStandalone: boolean;\n}\n\nexport function compilePipeFromMetadata(metadata: R3PipeMetadata): R3CompiledExpression {\n const definitionMapValues: {key: string, quoted: boolean, value: o.Expression}[] = [];\n\n // e.g. `name: 'myPipe'`\n definitionMapValues.push({key: 'name', value: o.literal(metadata.pipeName), quoted: false});\n\n // e.g. `type: MyPipe`\n definitionMapValues.push({key: 'type', value: metadata.type.value, quoted: false});\n\n // e.g. `pure: true`\n definitionMapValues.push({key: 'pure', value: o.literal(metadata.pure), quoted: false});\n\n if (metadata.isStandalone) {\n definitionMapValues.push({key: 'standalone', value: o.literal(true), quoted: false});\n }\n\n const expression =\n o.importExpr(R3.definePipe).callFn([o.literalMap(definitionMapValues)], undefined, true);\n const type = createPipeType(metadata);\n\n return {expression, type, statements: []};\n}\n\nexport function createPipeType(metadata: R3PipeMetadata): o.Type {\n return new o.ExpressionType(o.importExpr(R3.PipeDeclaration, [\n typeWithParameters(metadata.type.type, metadata.typeArgumentCount),\n new o.ExpressionType(new o.LiteralExpr(metadata.pipeName)),\n new o.ExpressionType(new o.LiteralExpr(metadata.isStandalone)),\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\nimport {ChangeDetectionStrategy, ViewEncapsulation} from '../../core';\nimport {InterpolationConfig} from '../../ml_parser/interpolation_config';\nimport * as o from '../../output/output_ast';\nimport {ParseSourceSpan} from '../../parse_util';\nimport * as t from '../r3_ast';\nimport {R3DependencyMetadata} from '../r3_factory';\nimport {MaybeForwardRefExpression, R3Reference} from '../util';\n\n\n/**\n * Information needed to compile a directive for the render3 runtime.\n */\nexport interface R3DirectiveMetadata {\n /**\n * Name of the directive type.\n */\n name: string;\n\n /**\n * An expression representing a reference to the directive itself.\n */\n type: R3Reference;\n\n /**\n * An expression representing a reference to the directive being compiled, intended for use within\n * a class definition itself.\n *\n * This can differ from the outer `type` if the class is being compiled by ngcc and is inside\n * an IIFE structure that uses a different name internally.\n */\n internalType: o.Expression;\n\n /**\n * Number of generic type parameters of the type itself.\n */\n typeArgumentCount: number;\n\n /**\n * A source span for the directive type.\n */\n typeSourceSpan: ParseSourceSpan;\n\n /**\n * Dependencies of the directive's constructor.\n */\n deps: R3DependencyMetadata[]|'invalid'|null;\n\n /**\n * Unparsed selector of the directive, or `null` if there was no selector.\n */\n selector: string|null;\n\n /**\n * Information about the content queries made by the directive.\n */\n queries: R3QueryMetadata[];\n\n /**\n * Information about the view queries made by the directive.\n */\n viewQueries: R3QueryMetadata[];\n\n /**\n * Mappings indicating how the directive interacts with its host element (host bindings,\n * listeners, etc).\n */\n host: R3HostMetadata;\n\n /**\n * Information about usage of specific lifecycle events which require special treatment in the\n * code generator.\n */\n lifecycle: {\n /**\n * Whether the directive uses NgOnChanges.\n */\n usesOnChanges: boolean;\n };\n\n /**\n * A mapping of inputs from class property names to binding property names, or to a tuple of\n * binding property name and class property name if the names are different.\n */\n inputs: {[field: string]: string|[string, string]};\n\n /**\n * A mapping of outputs from class property names to binding property names, or to a tuple of\n * binding property name and class property name if the names are different.\n */\n outputs: {[field: string]: string};\n\n /**\n * Whether or not the component or directive inherits from another class\n */\n usesInheritance: boolean;\n\n /**\n * Whether or not the component or directive inherits its entire decorator from its base class.\n */\n fullInheritance: boolean;\n\n /**\n * Reference name under which to export the directive's type in a template,\n * if any.\n */\n exportAs: string[]|null;\n\n /**\n * The list of providers defined in the directive.\n */\n providers: o.Expression|null;\n\n /**\n * Whether or not the component or directive is standalone.\n */\n isStandalone: boolean;\n}\n\n/**\n * Specifies how a list of declaration type references should be emitted into the generated code.\n */\nexport const enum DeclarationListEmitMode {\n /**\n * The list of declarations is emitted into the generated code as is.\n *\n * ```\n * directives: [MyDir],\n * ```\n */\n Direct,\n\n /**\n * The list of declarations is emitted into the generated code wrapped inside a closure, which\n * is needed when at least one declaration is a forward reference.\n *\n * ```\n * directives: function () { return [MyDir, ForwardDir]; },\n * ```\n */\n Closure,\n\n /**\n * Similar to `Closure`, with the addition that the list of declarations can contain individual\n * items that are themselves forward references. This is relevant for JIT compilations, as\n * unwrapping the forwardRef cannot be done statically so must be deferred. This mode emits\n * the declaration list using a mapping transform through `resolveForwardRef` to ensure that\n * any forward references within the list are resolved when the outer closure is invoked.\n *\n * Consider the case where the runtime has captured two declarations in two distinct values:\n * ```\n * const dirA = MyDir;\n * const dirB = forwardRef(function() { return ForwardRef; });\n * ```\n *\n * This mode would emit the declarations captured in `dirA` and `dirB` as follows:\n * ```\n * directives: function () { return [dirA, dirB].map(ng.resolveForwardRef); },\n * ```\n */\n ClosureResolved,\n}\n\n/**\n * Information needed to compile a component for the render3 runtime.\n */\nexport interface R3ComponentMetadata extends\n R3DirectiveMetadata {\n /**\n * Information about the component's template.\n */\n template: {\n /**\n * Parsed nodes of the template.\n */\n nodes: t.Node[];\n\n /**\n * Any ng-content selectors extracted from the template. Contains `*` when an ng-content\n * element without selector is present.\n */\n ngContentSelectors: string[];\n };\n\n declarations: DeclarationT[];\n\n /**\n * Specifies how the 'directives' and/or `pipes` array, if generated, need to be emitted.\n */\n declarationListEmitMode: DeclarationListEmitMode;\n\n /**\n * A collection of styling data that will be applied and scoped to the component.\n */\n styles: string[];\n\n /**\n * An encapsulation policy for the component's styling.\n * Possible values:\n * - `ViewEncapsulation.Emulated`: Apply modified component styles in order to emulate\n * a native Shadow DOM CSS encapsulation behavior.\n * - `ViewEncapsulation.None`: Apply component styles globally without any sort of encapsulation.\n * - `ViewEncapsulation.ShadowDom`: Use the browser's native Shadow DOM API to encapsulate styles.\n */\n encapsulation: ViewEncapsulation;\n\n /**\n * A collection of animation triggers that will be used in the component template.\n */\n animations: o.Expression|null;\n\n /**\n * The list of view providers defined in the component.\n */\n viewProviders: o.Expression|null;\n\n /**\n * Path to the .ts file in which this template's generated code will be included, relative to\n * the compilation root. This will be used to generate identifiers that need to be globally\n * unique in certain contexts (such as g3).\n */\n relativeContextFilePath: string;\n\n /**\n * Whether translation variable name should contain external message id\n * (used by Closure Compiler's output of `goog.getMsg` for transition period).\n */\n i18nUseExternalIds: boolean;\n\n /**\n * Overrides the default interpolation start and end delimiters ({{ and }}).\n */\n interpolation: InterpolationConfig;\n\n /**\n * Strategy used for detecting changes in the component.\n */\n changeDetection?: ChangeDetectionStrategy;\n}\n\n\nexport enum R3TemplateDependencyKind {\n Directive = 0,\n Pipe = 1,\n NgModule = 2,\n}\n\n/**\n * A dependency that's used within a component template.\n */\nexport interface R3TemplateDependency {\n kind: R3TemplateDependencyKind;\n\n /**\n * The type of the dependency as an expression.\n */\n type: o.Expression;\n}\n\n/**\n * A dependency that's used within a component template\n */\nexport type R3TemplateDependencyMetadata =\n R3DirectiveDependencyMetadata|R3PipeDependencyMetadata|R3NgModuleDependencyMetadata;\n\n/**\n * Information about a directive that is used in a component template. Only the stable, public\n * facing information of the directive is stored here.\n */\nexport interface R3DirectiveDependencyMetadata extends R3TemplateDependency {\n kind: R3TemplateDependencyKind.Directive;\n\n /**\n * The selector of the directive.\n */\n selector: string;\n\n /**\n * The binding property names of the inputs of the directive.\n */\n inputs: string[];\n\n /**\n * The binding property names of the outputs of the directive.\n */\n outputs: string[];\n\n /**\n * Name under which the directive is exported, if any (exportAs in Angular). Null otherwise.\n */\n exportAs: string[]|null;\n\n /**\n * If true then this directive is actually a component; otherwise it is not.\n */\n isComponent: boolean;\n}\n\nexport interface R3PipeDependencyMetadata extends R3TemplateDependency {\n kind: R3TemplateDependencyKind.Pipe;\n\n name: string;\n}\n\nexport interface R3NgModuleDependencyMetadata extends R3TemplateDependency {\n kind: R3TemplateDependencyKind.NgModule;\n}\n\n/**\n * Information needed to compile a query (view or content).\n */\nexport interface R3QueryMetadata {\n /**\n * Name of the property on the class to update with query results.\n */\n propertyName: string;\n\n /**\n * Whether to read only the first matching result, or an array of results.\n */\n first: boolean;\n\n /**\n * Either an expression representing a type or `InjectionToken` for the query\n * predicate, or a set of string selectors.\n */\n predicate: MaybeForwardRefExpression|string[];\n\n /**\n * Whether to include only direct children or all descendants.\n */\n descendants: boolean;\n\n /**\n * If the `QueryList` should fire change event only if actual change to query was computed (vs old\n * behavior where the change was fired whenever the query was recomputed, even if the recomputed\n * query resulted in the same list.)\n */\n emitDistinctChangesOnly: boolean;\n\n /**\n * An expression representing a type to read from each matched node, or null if the default value\n * for a given node is to be returned.\n */\n read: o.Expression|null;\n\n /**\n * Whether or not this query should collect only static results.\n *\n * If static is true, the query's results will be set on the component after nodes are created,\n * but before change detection runs. This means that any results that relied upon change detection\n * to run (e.g. results inside *ngIf or *ngFor views) will not be collected. Query results are\n * available in the ngOnInit hook.\n *\n * If static is false, the query's results will be set on the component after change detection\n * runs. This means that the query results can contain nodes inside *ngIf or *ngFor views, but\n * the results will not be available in the ngOnInit hook (only in the ngAfterContentInit for\n * content hooks and ngAfterViewInit for view hooks).\n */\n static: boolean;\n}\n\n/**\n * Mappings indicating how the class interacts with its\n * host element (host bindings, listeners, etc).\n */\nexport interface R3HostMetadata {\n /**\n * A mapping of attribute binding keys to `o.Expression`s.\n */\n attributes: {[key: string]: o.Expression};\n\n /**\n * A mapping of event binding keys to unparsed expressions.\n */\n listeners: {[key: string]: string};\n\n /**\n * A mapping of property binding keys to unparsed expressions.\n */\n properties: {[key: string]: string};\n\n specialAttributes: {styleAttr?: string; classAttr?: string;};\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\nimport {SecurityContext} from '../core';\nimport {ParseSourceSpan} from '../parse_util';\n\nexport class ParserError {\n public message: string;\n constructor(\n message: string, public input: string, public errLocation: string, public ctxLocation?: any) {\n this.message = `Parser Error: ${message} ${errLocation} [${input}] in ${ctxLocation}`;\n }\n}\n\nexport class ParseSpan {\n constructor(public start: number, public end: number) {}\n toAbsolute(absoluteOffset: number): AbsoluteSourceSpan {\n return new AbsoluteSourceSpan(absoluteOffset + this.start, absoluteOffset + this.end);\n }\n}\n\nexport abstract class AST {\n constructor(\n public span: ParseSpan,\n /**\n * Absolute location of the expression AST in a source code file.\n */\n public sourceSpan: AbsoluteSourceSpan) {}\n\n abstract visit(visitor: AstVisitor, context?: any): any;\n\n toString(): string {\n return 'AST';\n }\n}\n\nexport abstract class ASTWithName extends AST {\n constructor(\n span: ParseSpan, sourceSpan: AbsoluteSourceSpan, public nameSpan: AbsoluteSourceSpan) {\n super(span, sourceSpan);\n }\n}\n\nexport class EmptyExpr extends AST {\n override visit(visitor: AstVisitor, context: any = null) {\n // do nothing\n }\n}\n\nexport class ImplicitReceiver extends AST {\n override visit(visitor: AstVisitor, context: any = null): any {\n return visitor.visitImplicitReceiver(this, context);\n }\n}\n\n/**\n * Receiver when something is accessed through `this` (e.g. `this.foo`). Note that this class\n * inherits from `ImplicitReceiver`, because accessing something through `this` is treated the\n * same as accessing it implicitly inside of an Angular template (e.g. `[attr.title]=\"this.title\"`\n * is the same as `[attr.title]=\"title\"`.). Inheriting allows for the `this` accesses to be treated\n * the same as implicit ones, except for a couple of exceptions like `$event` and `$any`.\n * TODO: we should find a way for this class not to extend from `ImplicitReceiver` in the future.\n */\nexport class ThisReceiver extends ImplicitReceiver {\n override visit(visitor: AstVisitor, context: any = null): any {\n return visitor.visitThisReceiver?.(this, context);\n }\n}\n\n/**\n * Multiple expressions separated by a semicolon.\n */\nexport class Chain extends AST {\n constructor(span: ParseSpan, sourceSpan: AbsoluteSourceSpan, public expressions: any[]) {\n super(span, sourceSpan);\n }\n override visit(visitor: AstVisitor, context: any = null): any {\n return visitor.visitChain(this, context);\n }\n}\n\nexport class Conditional extends AST {\n constructor(\n span: ParseSpan, sourceSpan: AbsoluteSourceSpan, public condition: AST, public trueExp: AST,\n public falseExp: AST) {\n super(span, sourceSpan);\n }\n override visit(visitor: AstVisitor, context: any = null): any {\n return visitor.visitConditional(this, context);\n }\n}\n\nexport class PropertyRead extends ASTWithName {\n constructor(\n span: ParseSpan, sourceSpan: AbsoluteSourceSpan, nameSpan: AbsoluteSourceSpan,\n public receiver: AST, public name: string) {\n super(span, sourceSpan, nameSpan);\n }\n override visit(visitor: AstVisitor, context: any = null): any {\n return visitor.visitPropertyRead(this, context);\n }\n}\n\nexport class PropertyWrite extends ASTWithName {\n constructor(\n span: ParseSpan, sourceSpan: AbsoluteSourceSpan, nameSpan: AbsoluteSourceSpan,\n public receiver: AST, public name: string, public value: AST) {\n super(span, sourceSpan, nameSpan);\n }\n override visit(visitor: AstVisitor, context: any = null): any {\n return visitor.visitPropertyWrite(this, context);\n }\n}\n\nexport class SafePropertyRead extends ASTWithName {\n constructor(\n span: ParseSpan, sourceSpan: AbsoluteSourceSpan, nameSpan: AbsoluteSourceSpan,\n public receiver: AST, public name: string) {\n super(span, sourceSpan, nameSpan);\n }\n override visit(visitor: AstVisitor, context: any = null): any {\n return visitor.visitSafePropertyRead(this, context);\n }\n}\n\nexport class KeyedRead extends AST {\n constructor(\n span: ParseSpan, sourceSpan: AbsoluteSourceSpan, public receiver: AST, public key: AST) {\n super(span, sourceSpan);\n }\n override visit(visitor: AstVisitor, context: any = null): any {\n return visitor.visitKeyedRead(this, context);\n }\n}\n\nexport class SafeKeyedRead extends AST {\n constructor(\n span: ParseSpan, sourceSpan: AbsoluteSourceSpan, public receiver: AST, public key: AST) {\n super(span, sourceSpan);\n }\n override visit(visitor: AstVisitor, context: any = null): any {\n return visitor.visitSafeKeyedRead(this, context);\n }\n}\n\nexport class KeyedWrite extends AST {\n constructor(\n span: ParseSpan, sourceSpan: AbsoluteSourceSpan, public receiver: AST, public key: AST,\n public value: AST) {\n super(span, sourceSpan);\n }\n override visit(visitor: AstVisitor, context: any = null): any {\n return visitor.visitKeyedWrite(this, context);\n }\n}\n\nexport class BindingPipe extends ASTWithName {\n constructor(\n span: ParseSpan, sourceSpan: AbsoluteSourceSpan, public exp: AST, public name: string,\n public args: any[], nameSpan: AbsoluteSourceSpan) {\n super(span, sourceSpan, nameSpan);\n }\n override visit(visitor: AstVisitor, context: any = null): any {\n return visitor.visitPipe(this, context);\n }\n}\n\nexport class LiteralPrimitive extends AST {\n constructor(span: ParseSpan, sourceSpan: AbsoluteSourceSpan, public value: any) {\n super(span, sourceSpan);\n }\n override visit(visitor: AstVisitor, context: any = null): any {\n return visitor.visitLiteralPrimitive(this, context);\n }\n}\n\nexport class LiteralArray extends AST {\n constructor(span: ParseSpan, sourceSpan: AbsoluteSourceSpan, public expressions: any[]) {\n super(span, sourceSpan);\n }\n override visit(visitor: AstVisitor, context: any = null): any {\n return visitor.visitLiteralArray(this, context);\n }\n}\n\nexport type LiteralMapKey = {\n key: string; quoted: boolean;\n};\n\nexport class LiteralMap extends AST {\n constructor(\n span: ParseSpan, sourceSpan: AbsoluteSourceSpan, public keys: LiteralMapKey[],\n public values: any[]) {\n super(span, sourceSpan);\n }\n override visit(visitor: AstVisitor, context: any = null): any {\n return visitor.visitLiteralMap(this, context);\n }\n}\n\nexport class Interpolation extends AST {\n constructor(\n span: ParseSpan, sourceSpan: AbsoluteSourceSpan, public strings: any[],\n public expressions: any[]) {\n super(span, sourceSpan);\n }\n override visit(visitor: AstVisitor, context: any = null): any {\n return visitor.visitInterpolation(this, context);\n }\n}\n\nexport class Binary extends AST {\n constructor(\n span: ParseSpan, sourceSpan: AbsoluteSourceSpan, public operation: string, public left: AST,\n public right: AST) {\n super(span, sourceSpan);\n }\n override visit(visitor: AstVisitor, context: any = null): any {\n return visitor.visitBinary(this, context);\n }\n}\n\n/**\n * For backwards compatibility reasons, `Unary` inherits from `Binary` and mimics the binary AST\n * node that was originally used. This inheritance relation can be deleted in some future major,\n * after consumers have been given a chance to fully support Unary.\n */\nexport class Unary extends Binary {\n // Redeclare the properties that are inherited from `Binary` as `never`, as consumers should not\n // depend on these fields when operating on `Unary`.\n override left: never = null as never;\n override right: never = null as never;\n override operation: never = null as never;\n\n /**\n * Creates a unary minus expression \"-x\", represented as `Binary` using \"0 - x\".\n */\n static createMinus(span: ParseSpan, sourceSpan: AbsoluteSourceSpan, expr: AST): Unary {\n return new Unary(\n span, sourceSpan, '-', expr, '-', new LiteralPrimitive(span, sourceSpan, 0), expr);\n }\n\n /**\n * Creates a unary plus expression \"+x\", represented as `Binary` using \"x - 0\".\n */\n static createPlus(span: ParseSpan, sourceSpan: AbsoluteSourceSpan, expr: AST): Unary {\n return new Unary(\n span, sourceSpan, '+', expr, '-', expr, new LiteralPrimitive(span, sourceSpan, 0));\n }\n\n /**\n * During the deprecation period this constructor is private, to avoid consumers from creating\n * a `Unary` with the fallback properties for `Binary`.\n */\n private constructor(\n span: ParseSpan, sourceSpan: AbsoluteSourceSpan, public operator: string, public expr: AST,\n binaryOp: string, binaryLeft: AST, binaryRight: AST) {\n super(span, sourceSpan, binaryOp, binaryLeft, binaryRight);\n }\n\n override visit(visitor: AstVisitor, context: any = null): any {\n if (visitor.visitUnary !== undefined) {\n return visitor.visitUnary(this, context);\n }\n return visitor.visitBinary(this, context);\n }\n}\n\nexport class PrefixNot extends AST {\n constructor(span: ParseSpan, sourceSpan: AbsoluteSourceSpan, public expression: AST) {\n super(span, sourceSpan);\n }\n override visit(visitor: AstVisitor, context: any = null): any {\n return visitor.visitPrefixNot(this, context);\n }\n}\n\nexport class NonNullAssert extends AST {\n constructor(span: ParseSpan, sourceSpan: AbsoluteSourceSpan, public expression: AST) {\n super(span, sourceSpan);\n }\n override visit(visitor: AstVisitor, context: any = null): any {\n return visitor.visitNonNullAssert(this, context);\n }\n}\n\nexport class Call extends AST {\n constructor(\n span: ParseSpan, sourceSpan: AbsoluteSourceSpan, public receiver: AST, public args: AST[],\n public argumentSpan: AbsoluteSourceSpan) {\n super(span, sourceSpan);\n }\n override visit(visitor: AstVisitor, context: any = null): any {\n return visitor.visitCall(this, context);\n }\n}\n\nexport class SafeCall extends AST {\n constructor(\n span: ParseSpan, sourceSpan: AbsoluteSourceSpan, public receiver: AST, public args: AST[],\n public argumentSpan: AbsoluteSourceSpan) {\n super(span, sourceSpan);\n }\n override visit(visitor: AstVisitor, context: any = null): any {\n return visitor.visitSafeCall(this, context);\n }\n}\n\n\n/**\n * Records the absolute position of a text span in a source file, where `start` and `end` are the\n * starting and ending byte offsets, respectively, of the text span in a source file.\n */\nexport class AbsoluteSourceSpan {\n constructor(public readonly start: number, public readonly end: number) {}\n}\n\nexport class ASTWithSource extends AST {\n constructor(\n public ast: AST, public source: string|null, public location: string, absoluteOffset: number,\n public errors: ParserError[]) {\n super(\n new ParseSpan(0, source === null ? 0 : source.length),\n new AbsoluteSourceSpan(\n absoluteOffset, source === null ? absoluteOffset : absoluteOffset + source.length));\n }\n override visit(visitor: AstVisitor, context: any = null): any {\n if (visitor.visitASTWithSource) {\n return visitor.visitASTWithSource(this, context);\n }\n return this.ast.visit(visitor, context);\n }\n override toString(): string {\n return `${this.source} in ${this.location}`;\n }\n}\n\n/**\n * TemplateBinding refers to a particular key-value pair in a microsyntax\n * expression. A few examples are:\n *\n * |---------------------|--------------|---------|--------------|\n * | expression | key | value | binding type |\n * |---------------------|--------------|---------|--------------|\n * | 1. let item | item | null | variable |\n * | 2. of items | ngForOf | items | expression |\n * | 3. let x = y | x | y | variable |\n * | 4. index as i | i | index | variable |\n * | 5. trackBy: func | ngForTrackBy | func | expression |\n * | 6. *ngIf=\"cond\" | ngIf | cond | expression |\n * |---------------------|--------------|---------|--------------|\n *\n * (6) is a notable exception because it is a binding from the template key in\n * the LHS of a HTML attribute to the expression in the RHS. All other bindings\n * in the example above are derived solely from the RHS.\n */\nexport type TemplateBinding = VariableBinding|ExpressionBinding;\n\nexport class VariableBinding {\n /**\n * @param sourceSpan entire span of the binding.\n * @param key name of the LHS along with its span.\n * @param value optional value for the RHS along with its span.\n */\n constructor(\n public readonly sourceSpan: AbsoluteSourceSpan,\n public readonly key: TemplateBindingIdentifier,\n public readonly value: TemplateBindingIdentifier|null) {}\n}\n\nexport class ExpressionBinding {\n /**\n * @param sourceSpan entire span of the binding.\n * @param key binding name, like ngForOf, ngForTrackBy, ngIf, along with its\n * span. Note that the length of the span may not be the same as\n * `key.source.length`. For example,\n * 1. key.source = ngFor, key.span is for \"ngFor\"\n * 2. key.source = ngForOf, key.span is for \"of\"\n * 3. key.source = ngForTrackBy, key.span is for \"trackBy\"\n * @param value optional expression for the RHS.\n */\n constructor(\n public readonly sourceSpan: AbsoluteSourceSpan,\n public readonly key: TemplateBindingIdentifier, public readonly value: ASTWithSource|null) {}\n}\n\nexport interface TemplateBindingIdentifier {\n source: string;\n span: AbsoluteSourceSpan;\n}\n\nexport interface AstVisitor {\n /**\n * The `visitUnary` method is declared as optional for backwards compatibility. In an upcoming\n * major release, this method will be made required.\n */\n visitUnary?(ast: Unary, context: any): any;\n visitBinary(ast: Binary, context: any): any;\n visitChain(ast: Chain, context: any): any;\n visitConditional(ast: Conditional, context: any): any;\n /**\n * The `visitThisReceiver` method is declared as optional for backwards compatibility.\n * In an upcoming major release, this method will be made required.\n */\n visitThisReceiver?(ast: ThisReceiver, context: any): any;\n visitImplicitReceiver(ast: ImplicitReceiver, context: any): any;\n visitInterpolation(ast: Interpolation, context: any): any;\n visitKeyedRead(ast: KeyedRead, context: any): any;\n visitKeyedWrite(ast: KeyedWrite, context: any): any;\n visitLiteralArray(ast: LiteralArray, context: any): any;\n visitLiteralMap(ast: LiteralMap, context: any): any;\n visitLiteralPrimitive(ast: LiteralPrimitive, context: any): any;\n visitPipe(ast: BindingPipe, context: any): any;\n visitPrefixNot(ast: PrefixNot, context: any): any;\n visitNonNullAssert(ast: NonNullAssert, context: any): any;\n visitPropertyRead(ast: PropertyRead, context: any): any;\n visitPropertyWrite(ast: PropertyWrite, context: any): any;\n visitSafePropertyRead(ast: SafePropertyRead, context: any): any;\n visitSafeKeyedRead(ast: SafeKeyedRead, context: any): any;\n visitCall(ast: Call, context: any): any;\n visitSafeCall(ast: SafeCall, context: any): any;\n visitASTWithSource?(ast: ASTWithSource, context: any): any;\n /**\n * This function is optionally defined to allow classes that implement this\n * interface to selectively decide if the specified `ast` should be visited.\n * @param ast node to visit\n * @param context context that gets passed to the node and all its children\n */\n visit?(ast: AST, context?: any): any;\n}\n\nexport class RecursiveAstVisitor implements AstVisitor {\n visit(ast: AST, context?: any): any {\n // The default implementation just visits every node.\n // Classes that extend RecursiveAstVisitor should override this function\n // to selectively visit the specified node.\n ast.visit(this, context);\n }\n visitUnary(ast: Unary, context: any): any {\n this.visit(ast.expr, context);\n }\n visitBinary(ast: Binary, context: any): any {\n this.visit(ast.left, context);\n this.visit(ast.right, context);\n }\n visitChain(ast: Chain, context: any): any {\n this.visitAll(ast.expressions, context);\n }\n visitConditional(ast: Conditional, context: any): any {\n this.visit(ast.condition, context);\n this.visit(ast.trueExp, context);\n this.visit(ast.falseExp, context);\n }\n visitPipe(ast: BindingPipe, context: any): any {\n this.visit(ast.exp, context);\n this.visitAll(ast.args, context);\n }\n visitImplicitReceiver(ast: ThisReceiver, context: any): any {}\n visitThisReceiver(ast: ThisReceiver, context: any): any {}\n visitInterpolation(ast: Interpolation, context: any): any {\n this.visitAll(ast.expressions, context);\n }\n visitKeyedRead(ast: KeyedRead, context: any): any {\n this.visit(ast.receiver, context);\n this.visit(ast.key, context);\n }\n visitKeyedWrite(ast: KeyedWrite, context: any): any {\n this.visit(ast.receiver, context);\n this.visit(ast.key, context);\n this.visit(ast.value, context);\n }\n visitLiteralArray(ast: LiteralArray, context: any): any {\n this.visitAll(ast.expressions, context);\n }\n visitLiteralMap(ast: LiteralMap, context: any): any {\n this.visitAll(ast.values, context);\n }\n visitLiteralPrimitive(ast: LiteralPrimitive, context: any): any {}\n visitPrefixNot(ast: PrefixNot, context: any): any {\n this.visit(ast.expression, context);\n }\n visitNonNullAssert(ast: NonNullAssert, context: any): any {\n this.visit(ast.expression, context);\n }\n visitPropertyRead(ast: PropertyRead, context: any): any {\n this.visit(ast.receiver, context);\n }\n visitPropertyWrite(ast: PropertyWrite, context: any): any {\n this.visit(ast.receiver, context);\n this.visit(ast.value, context);\n }\n visitSafePropertyRead(ast: SafePropertyRead, context: any): any {\n this.visit(ast.receiver, context);\n }\n visitSafeKeyedRead(ast: SafeKeyedRead, context: any): any {\n this.visit(ast.receiver, context);\n this.visit(ast.key, context);\n }\n visitCall(ast: Call, context: any): any {\n this.visit(ast.receiver, context);\n this.visitAll(ast.args, context);\n }\n visitSafeCall(ast: SafeCall, context: any): any {\n this.visit(ast.receiver, context);\n this.visitAll(ast.args, context);\n }\n // This is not part of the AstVisitor interface, just a helper method\n visitAll(asts: AST[], context: any): any {\n for (const ast of asts) {\n this.visit(ast, context);\n }\n }\n}\n\nexport class AstTransformer implements AstVisitor {\n visitImplicitReceiver(ast: ImplicitReceiver, context: any): AST {\n return ast;\n }\n\n visitThisReceiver(ast: ThisReceiver, context: any): AST {\n return ast;\n }\n\n visitInterpolation(ast: Interpolation, context: any): AST {\n return new Interpolation(ast.span, ast.sourceSpan, ast.strings, this.visitAll(ast.expressions));\n }\n\n visitLiteralPrimitive(ast: LiteralPrimitive, context: any): AST {\n return new LiteralPrimitive(ast.span, ast.sourceSpan, ast.value);\n }\n\n visitPropertyRead(ast: PropertyRead, context: any): AST {\n return new PropertyRead(\n ast.span, ast.sourceSpan, ast.nameSpan, ast.receiver.visit(this), ast.name);\n }\n\n visitPropertyWrite(ast: PropertyWrite, context: any): AST {\n return new PropertyWrite(\n ast.span, ast.sourceSpan, ast.nameSpan, ast.receiver.visit(this), ast.name,\n ast.value.visit(this));\n }\n\n visitSafePropertyRead(ast: SafePropertyRead, context: any): AST {\n return new SafePropertyRead(\n ast.span, ast.sourceSpan, ast.nameSpan, ast.receiver.visit(this), ast.name);\n }\n\n visitLiteralArray(ast: LiteralArray, context: any): AST {\n return new LiteralArray(ast.span, ast.sourceSpan, this.visitAll(ast.expressions));\n }\n\n visitLiteralMap(ast: LiteralMap, context: any): AST {\n return new LiteralMap(ast.span, ast.sourceSpan, ast.keys, this.visitAll(ast.values));\n }\n\n visitUnary(ast: Unary, context: any): AST {\n switch (ast.operator) {\n case '+':\n return Unary.createPlus(ast.span, ast.sourceSpan, ast.expr.visit(this));\n case '-':\n return Unary.createMinus(ast.span, ast.sourceSpan, ast.expr.visit(this));\n default:\n throw new Error(`Unknown unary operator ${ast.operator}`);\n }\n }\n\n visitBinary(ast: Binary, context: any): AST {\n return new Binary(\n ast.span, ast.sourceSpan, ast.operation, ast.left.visit(this), ast.right.visit(this));\n }\n\n visitPrefixNot(ast: PrefixNot, context: any): AST {\n return new PrefixNot(ast.span, ast.sourceSpan, ast.expression.visit(this));\n }\n\n visitNonNullAssert(ast: NonNullAssert, context: any): AST {\n return new NonNullAssert(ast.span, ast.sourceSpan, ast.expression.visit(this));\n }\n\n visitConditional(ast: Conditional, context: any): AST {\n return new Conditional(\n ast.span, ast.sourceSpan, ast.condition.visit(this), ast.trueExp.visit(this),\n ast.falseExp.visit(this));\n }\n\n visitPipe(ast: BindingPipe, context: any): AST {\n return new BindingPipe(\n ast.span, ast.sourceSpan, ast.exp.visit(this), ast.name, this.visitAll(ast.args),\n ast.nameSpan);\n }\n\n visitKeyedRead(ast: KeyedRead, context: any): AST {\n return new KeyedRead(ast.span, ast.sourceSpan, ast.receiver.visit(this), ast.key.visit(this));\n }\n\n visitKeyedWrite(ast: KeyedWrite, context: any): AST {\n return new KeyedWrite(\n ast.span, ast.sourceSpan, ast.receiver.visit(this), ast.key.visit(this),\n ast.value.visit(this));\n }\n\n visitCall(ast: Call, context: any): AST {\n return new Call(\n ast.span, ast.sourceSpan, ast.receiver.visit(this), this.visitAll(ast.args),\n ast.argumentSpan);\n }\n\n visitSafeCall(ast: SafeCall, context: any): AST {\n return new SafeCall(\n ast.span, ast.sourceSpan, ast.receiver.visit(this), this.visitAll(ast.args),\n ast.argumentSpan);\n }\n\n visitAll(asts: any[]): any[] {\n const res = [];\n for (let i = 0; i < asts.length; ++i) {\n res[i] = asts[i].visit(this);\n }\n return res;\n }\n\n visitChain(ast: Chain, context: any): AST {\n return new Chain(ast.span, ast.sourceSpan, this.visitAll(ast.expressions));\n }\n\n visitSafeKeyedRead(ast: SafeKeyedRead, context: any): AST {\n return new SafeKeyedRead(\n ast.span, ast.sourceSpan, ast.receiver.visit(this), ast.key.visit(this));\n }\n}\n\n// A transformer that only creates new nodes if the transformer makes a change or\n// a change is made a child node.\nexport class AstMemoryEfficientTransformer implements AstVisitor {\n visitImplicitReceiver(ast: ImplicitReceiver, context: any): AST {\n return ast;\n }\n\n visitThisReceiver(ast: ThisReceiver, context: any): AST {\n return ast;\n }\n\n visitInterpolation(ast: Interpolation, context: any): Interpolation {\n const expressions = this.visitAll(ast.expressions);\n if (expressions !== ast.expressions)\n return new Interpolation(ast.span, ast.sourceSpan, ast.strings, expressions);\n return ast;\n }\n\n visitLiteralPrimitive(ast: LiteralPrimitive, context: any): AST {\n return ast;\n }\n\n visitPropertyRead(ast: PropertyRead, context: any): AST {\n const receiver = ast.receiver.visit(this);\n if (receiver !== ast.receiver) {\n return new PropertyRead(ast.span, ast.sourceSpan, ast.nameSpan, receiver, ast.name);\n }\n return ast;\n }\n\n visitPropertyWrite(ast: PropertyWrite, context: any): AST {\n const receiver = ast.receiver.visit(this);\n const value = ast.value.visit(this);\n if (receiver !== ast.receiver || value !== ast.value) {\n return new PropertyWrite(ast.span, ast.sourceSpan, ast.nameSpan, receiver, ast.name, value);\n }\n return ast;\n }\n\n visitSafePropertyRead(ast: SafePropertyRead, context: any): AST {\n const receiver = ast.receiver.visit(this);\n if (receiver !== ast.receiver) {\n return new SafePropertyRead(ast.span, ast.sourceSpan, ast.nameSpan, receiver, ast.name);\n }\n return ast;\n }\n\n visitLiteralArray(ast: LiteralArray, context: any): AST {\n const expressions = this.visitAll(ast.expressions);\n if (expressions !== ast.expressions) {\n return new LiteralArray(ast.span, ast.sourceSpan, expressions);\n }\n return ast;\n }\n\n visitLiteralMap(ast: LiteralMap, context: any): AST {\n const values = this.visitAll(ast.values);\n if (values !== ast.values) {\n return new LiteralMap(ast.span, ast.sourceSpan, ast.keys, values);\n }\n return ast;\n }\n\n visitUnary(ast: Unary, context: any): AST {\n const expr = ast.expr.visit(this);\n if (expr !== ast.expr) {\n switch (ast.operator) {\n case '+':\n return Unary.createPlus(ast.span, ast.sourceSpan, expr);\n case '-':\n return Unary.createMinus(ast.span, ast.sourceSpan, expr);\n default:\n throw new Error(`Unknown unary operator ${ast.operator}`);\n }\n }\n return ast;\n }\n\n visitBinary(ast: Binary, context: any): AST {\n const left = ast.left.visit(this);\n const right = ast.right.visit(this);\n if (left !== ast.left || right !== ast.right) {\n return new Binary(ast.span, ast.sourceSpan, ast.operation, left, right);\n }\n return ast;\n }\n\n visitPrefixNot(ast: PrefixNot, context: any): AST {\n const expression = ast.expression.visit(this);\n if (expression !== ast.expression) {\n return new PrefixNot(ast.span, ast.sourceSpan, expression);\n }\n return ast;\n }\n\n visitNonNullAssert(ast: NonNullAssert, context: any): AST {\n const expression = ast.expression.visit(this);\n if (expression !== ast.expression) {\n return new NonNullAssert(ast.span, ast.sourceSpan, expression);\n }\n return ast;\n }\n\n visitConditional(ast: Conditional, context: any): AST {\n const condition = ast.condition.visit(this);\n const trueExp = ast.trueExp.visit(this);\n const falseExp = ast.falseExp.visit(this);\n if (condition !== ast.condition || trueExp !== ast.trueExp || falseExp !== ast.falseExp) {\n return new Conditional(ast.span, ast.sourceSpan, condition, trueExp, falseExp);\n }\n return ast;\n }\n\n visitPipe(ast: BindingPipe, context: any): AST {\n const exp = ast.exp.visit(this);\n const args = this.visitAll(ast.args);\n if (exp !== ast.exp || args !== ast.args) {\n return new BindingPipe(ast.span, ast.sourceSpan, exp, ast.name, args, ast.nameSpan);\n }\n return ast;\n }\n\n visitKeyedRead(ast: KeyedRead, context: any): AST {\n const obj = ast.receiver.visit(this);\n const key = ast.key.visit(this);\n if (obj !== ast.receiver || key !== ast.key) {\n return new KeyedRead(ast.span, ast.sourceSpan, obj, key);\n }\n return ast;\n }\n\n visitKeyedWrite(ast: KeyedWrite, context: any): AST {\n const obj = ast.receiver.visit(this);\n const key = ast.key.visit(this);\n const value = ast.value.visit(this);\n if (obj !== ast.receiver || key !== ast.key || value !== ast.value) {\n return new KeyedWrite(ast.span, ast.sourceSpan, obj, key, value);\n }\n return ast;\n }\n\n visitAll(asts: any[]): any[] {\n const res = [];\n let modified = false;\n for (let i = 0; i < asts.length; ++i) {\n const original = asts[i];\n const value = original.visit(this);\n res[i] = value;\n modified = modified || value !== original;\n }\n return modified ? res : asts;\n }\n\n visitChain(ast: Chain, context: any): AST {\n const expressions = this.visitAll(ast.expressions);\n if (expressions !== ast.expressions) {\n return new Chain(ast.span, ast.sourceSpan, expressions);\n }\n return ast;\n }\n\n\n visitCall(ast: Call, context: any): AST {\n const receiver = ast.receiver.visit(this);\n const args = this.visitAll(ast.args);\n if (receiver !== ast.receiver || args !== ast.args) {\n return new Call(ast.span, ast.sourceSpan, receiver, args, ast.argumentSpan);\n }\n return ast;\n }\n\n visitSafeCall(ast: SafeCall, context: any): AST {\n const receiver = ast.receiver.visit(this);\n const args = this.visitAll(ast.args);\n if (receiver !== ast.receiver || args !== ast.args) {\n return new SafeCall(ast.span, ast.sourceSpan, receiver, args, ast.argumentSpan);\n }\n return ast;\n }\n\n visitSafeKeyedRead(ast: SafeKeyedRead, context: any): AST {\n const obj = ast.receiver.visit(this);\n const key = ast.key.visit(this);\n if (obj !== ast.receiver || key !== ast.key) {\n return new SafeKeyedRead(ast.span, ast.sourceSpan, obj, key);\n }\n return ast;\n }\n}\n\n// Bindings\n\nexport class ParsedProperty {\n public readonly isLiteral: boolean;\n public readonly isAnimation: boolean;\n\n constructor(\n public name: string, public expression: ASTWithSource, public type: ParsedPropertyType,\n public sourceSpan: ParseSourceSpan, readonly keySpan: ParseSourceSpan,\n public valueSpan: ParseSourceSpan|undefined) {\n this.isLiteral = this.type === ParsedPropertyType.LITERAL_ATTR;\n this.isAnimation = this.type === ParsedPropertyType.ANIMATION;\n }\n}\n\nexport enum ParsedPropertyType {\n DEFAULT,\n LITERAL_ATTR,\n ANIMATION\n}\n\nexport const enum ParsedEventType {\n // DOM or Directive event\n Regular,\n // Animation specific event\n Animation,\n}\n\nexport class ParsedEvent {\n // Regular events have a target\n // Animation events have a phase\n constructor(\n public name: string, public targetOrPhase: string, public type: ParsedEventType,\n public handler: ASTWithSource, public sourceSpan: ParseSourceSpan,\n public handlerSpan: ParseSourceSpan, readonly keySpan: ParseSourceSpan) {}\n}\n\n/**\n * ParsedVariable represents a variable declaration in a microsyntax expression.\n */\nexport class ParsedVariable {\n constructor(\n public readonly name: string, public readonly value: string,\n public readonly sourceSpan: ParseSourceSpan, public readonly keySpan: ParseSourceSpan,\n public readonly valueSpan?: ParseSourceSpan) {}\n}\n\nexport const enum BindingType {\n // A regular binding to a property (e.g. `[property]=\"expression\"`).\n Property,\n // A binding to an element attribute (e.g. `[attr.name]=\"expression\"`).\n Attribute,\n // A binding to a CSS class (e.g. `[class.name]=\"condition\"`).\n Class,\n // A binding to a style rule (e.g. `[style.rule]=\"expression\"`).\n Style,\n // A binding to an animation reference (e.g. `[animate.key]=\"expression\"`).\n Animation,\n}\n\nexport class BoundElementProperty {\n constructor(\n public name: string, public type: BindingType, public securityContext: SecurityContext,\n public value: ASTWithSource, public unit: string|null, public sourceSpan: ParseSourceSpan,\n readonly keySpan: ParseSourceSpan|undefined, public valueSpan: ParseSourceSpan|undefined) {}\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\nimport * as cdAst from '../expression_parser/ast';\nimport * as o from '../output/output_ast';\nimport {ParseSourceSpan} from '../parse_util';\n\nexport class EventHandlerVars {\n static event = o.variable('$event');\n}\n\nexport interface LocalResolver {\n getLocal(name: string): o.Expression|null;\n notifyImplicitReceiverUse(): void;\n globals?: Set;\n maybeRestoreView(): void;\n}\n\n/**\n * Converts the given expression AST into an executable output AST, assuming the expression is\n * used in an action binding (e.g. an event handler).\n */\nexport function convertActionBinding(\n localResolver: LocalResolver|null, implicitReceiver: o.Expression, action: cdAst.AST,\n bindingId: string, baseSourceSpan?: ParseSourceSpan, implicitReceiverAccesses?: Set,\n globals?: Set): o.Statement[] {\n if (!localResolver) {\n localResolver = new DefaultLocalResolver(globals);\n }\n const actionWithoutBuiltins = convertPropertyBindingBuiltins(\n {\n createLiteralArrayConverter: (argCount: number) => {\n // Note: no caching for literal arrays in actions.\n return (args: o.Expression[]) => o.literalArr(args);\n },\n createLiteralMapConverter: (keys: {key: string, quoted: boolean}[]) => {\n // Note: no caching for literal maps in actions.\n return (values: o.Expression[]) => {\n const entries = keys.map((k, i) => ({\n key: k.key,\n value: values[i],\n quoted: k.quoted,\n }));\n return o.literalMap(entries);\n };\n },\n createPipeConverter: (name: string) => {\n throw new Error(`Illegal State: Actions are not allowed to contain pipes. Pipe: ${name}`);\n }\n },\n action);\n\n const visitor = new _AstToIrVisitor(\n localResolver, implicitReceiver, bindingId, /* supportsInterpolation */ false, baseSourceSpan,\n implicitReceiverAccesses);\n const actionStmts: o.Statement[] = [];\n flattenStatements(actionWithoutBuiltins.visit(visitor, _Mode.Statement), actionStmts);\n prependTemporaryDecls(visitor.temporaryCount, bindingId, actionStmts);\n\n if (visitor.usesImplicitReceiver) {\n localResolver.notifyImplicitReceiverUse();\n }\n\n const lastIndex = actionStmts.length - 1;\n if (lastIndex >= 0) {\n const lastStatement = actionStmts[lastIndex];\n // Ensure that the value of the last expression statement is returned\n if (lastStatement instanceof o.ExpressionStatement) {\n actionStmts[lastIndex] = new o.ReturnStatement(lastStatement.expr);\n }\n }\n return actionStmts;\n}\n\nexport interface BuiltinConverter {\n (args: o.Expression[]): o.Expression;\n}\n\nexport interface BuiltinConverterFactory {\n createLiteralArrayConverter(argCount: number): BuiltinConverter;\n createLiteralMapConverter(keys: {key: string, quoted: boolean}[]): BuiltinConverter;\n createPipeConverter(name: string, argCount: number): BuiltinConverter;\n}\n\nexport function convertPropertyBindingBuiltins(\n converterFactory: BuiltinConverterFactory, ast: cdAst.AST): cdAst.AST {\n return convertBuiltins(converterFactory, ast);\n}\n\nexport class ConvertPropertyBindingResult {\n constructor(public stmts: o.Statement[], public currValExpr: o.Expression) {}\n}\n\n/**\n * Converts the given expression AST into an executable output AST, assuming the expression\n * is used in property binding. The expression has to be preprocessed via\n * `convertPropertyBindingBuiltins`.\n */\nexport function convertPropertyBinding(\n localResolver: LocalResolver|null, implicitReceiver: o.Expression,\n expressionWithoutBuiltins: cdAst.AST, bindingId: string): ConvertPropertyBindingResult {\n if (!localResolver) {\n localResolver = new DefaultLocalResolver();\n }\n const visitor = new _AstToIrVisitor(\n localResolver, implicitReceiver, bindingId, /* supportsInterpolation */ false);\n const outputExpr: o.Expression = expressionWithoutBuiltins.visit(visitor, _Mode.Expression);\n const stmts: o.Statement[] = getStatementsFromVisitor(visitor, bindingId);\n\n if (visitor.usesImplicitReceiver) {\n localResolver.notifyImplicitReceiverUse();\n }\n\n return new ConvertPropertyBindingResult(stmts, outputExpr);\n}\n\n/**\n * Given some expression, such as a binding or interpolation expression, and a context expression to\n * look values up on, visit each facet of the given expression resolving values from the context\n * expression such that a list of arguments can be derived from the found values that can be used as\n * arguments to an external update instruction.\n *\n * @param localResolver The resolver to use to look up expressions by name appropriately\n * @param contextVariableExpression The expression representing the context variable used to create\n * the final argument expressions\n * @param expressionWithArgumentsToExtract The expression to visit to figure out what values need to\n * be resolved and what arguments list to build.\n * @param bindingId A name prefix used to create temporary variable names if they're needed for the\n * arguments generated\n * @returns An array of expressions that can be passed as arguments to instruction expressions like\n * `o.importExpr(R3.propertyInterpolate).callFn(result)`\n */\nexport function convertUpdateArguments(\n localResolver: LocalResolver, contextVariableExpression: o.Expression,\n expressionWithArgumentsToExtract: cdAst.Interpolation, bindingId: string) {\n const visitor = new _AstToIrVisitor(\n localResolver, contextVariableExpression, bindingId, /* supportsInterpolation */ true);\n const outputExpr = visitor.visitInterpolation(expressionWithArgumentsToExtract, _Mode.Expression);\n\n if (visitor.usesImplicitReceiver) {\n localResolver.notifyImplicitReceiverUse();\n }\n\n const stmts = getStatementsFromVisitor(visitor, bindingId);\n const args = outputExpr.args;\n return {stmts, args};\n}\n\nfunction getStatementsFromVisitor(visitor: _AstToIrVisitor, bindingId: string) {\n const stmts: o.Statement[] = [];\n for (let i = 0; i < visitor.temporaryCount; i++) {\n stmts.push(temporaryDeclaration(bindingId, i));\n }\n return stmts;\n}\n\nfunction convertBuiltins(converterFactory: BuiltinConverterFactory, ast: cdAst.AST): cdAst.AST {\n const visitor = new _BuiltinAstConverter(converterFactory);\n return ast.visit(visitor);\n}\n\nfunction temporaryName(bindingId: string, temporaryNumber: number): string {\n return `tmp_${bindingId}_${temporaryNumber}`;\n}\n\nfunction temporaryDeclaration(bindingId: string, temporaryNumber: number): o.Statement {\n return new o.DeclareVarStmt(temporaryName(bindingId, temporaryNumber));\n}\n\nfunction prependTemporaryDecls(\n temporaryCount: number, bindingId: string, statements: o.Statement[]) {\n for (let i = temporaryCount - 1; i >= 0; i--) {\n statements.unshift(temporaryDeclaration(bindingId, i));\n }\n}\n\nenum _Mode {\n Statement,\n Expression\n}\n\nfunction ensureStatementMode(mode: _Mode, ast: cdAst.AST) {\n if (mode !== _Mode.Statement) {\n throw new Error(`Expected a statement, but saw ${ast}`);\n }\n}\n\nfunction ensureExpressionMode(mode: _Mode, ast: cdAst.AST) {\n if (mode !== _Mode.Expression) {\n throw new Error(`Expected an expression, but saw ${ast}`);\n }\n}\n\nfunction convertToStatementIfNeeded(mode: _Mode, expr: o.Expression): o.Expression|o.Statement {\n if (mode === _Mode.Statement) {\n return expr.toStmt();\n } else {\n return expr;\n }\n}\n\nclass _BuiltinAstConverter extends cdAst.AstTransformer {\n constructor(private _converterFactory: BuiltinConverterFactory) {\n super();\n }\n override visitPipe(ast: cdAst.BindingPipe, context: any): any {\n const args = [ast.exp, ...ast.args].map(ast => ast.visit(this, context));\n return new BuiltinFunctionCall(\n ast.span, ast.sourceSpan, args,\n this._converterFactory.createPipeConverter(ast.name, args.length));\n }\n override visitLiteralArray(ast: cdAst.LiteralArray, context: any): any {\n const args = ast.expressions.map(ast => ast.visit(this, context));\n return new BuiltinFunctionCall(\n ast.span, ast.sourceSpan, args,\n this._converterFactory.createLiteralArrayConverter(ast.expressions.length));\n }\n override visitLiteralMap(ast: cdAst.LiteralMap, context: any): any {\n const args = ast.values.map(ast => ast.visit(this, context));\n\n return new BuiltinFunctionCall(\n ast.span, ast.sourceSpan, args, this._converterFactory.createLiteralMapConverter(ast.keys));\n }\n}\n\nclass _AstToIrVisitor implements cdAst.AstVisitor {\n private _nodeMap = new Map();\n private _resultMap = new Map();\n private _currentTemporary: number = 0;\n public temporaryCount: number = 0;\n public usesImplicitReceiver: boolean = false;\n\n constructor(\n private _localResolver: LocalResolver, private _implicitReceiver: o.Expression,\n private bindingId: string, private supportsInterpolation: boolean,\n private baseSourceSpan?: ParseSourceSpan, private implicitReceiverAccesses?: Set) {}\n\n visitUnary(ast: cdAst.Unary, mode: _Mode): any {\n let op: o.UnaryOperator;\n switch (ast.operator) {\n case '+':\n op = o.UnaryOperator.Plus;\n break;\n case '-':\n op = o.UnaryOperator.Minus;\n break;\n default:\n throw new Error(`Unsupported operator ${ast.operator}`);\n }\n\n return convertToStatementIfNeeded(\n mode,\n new o.UnaryOperatorExpr(\n op, this._visit(ast.expr, _Mode.Expression), undefined,\n this.convertSourceSpan(ast.span)));\n }\n\n visitBinary(ast: cdAst.Binary, mode: _Mode): any {\n let op: o.BinaryOperator;\n switch (ast.operation) {\n case '+':\n op = o.BinaryOperator.Plus;\n break;\n case '-':\n op = o.BinaryOperator.Minus;\n break;\n case '*':\n op = o.BinaryOperator.Multiply;\n break;\n case '/':\n op = o.BinaryOperator.Divide;\n break;\n case '%':\n op = o.BinaryOperator.Modulo;\n break;\n case '&&':\n op = o.BinaryOperator.And;\n break;\n case '||':\n op = o.BinaryOperator.Or;\n break;\n case '==':\n op = o.BinaryOperator.Equals;\n break;\n case '!=':\n op = o.BinaryOperator.NotEquals;\n break;\n case '===':\n op = o.BinaryOperator.Identical;\n break;\n case '!==':\n op = o.BinaryOperator.NotIdentical;\n break;\n case '<':\n op = o.BinaryOperator.Lower;\n break;\n case '>':\n op = o.BinaryOperator.Bigger;\n break;\n case '<=':\n op = o.BinaryOperator.LowerEquals;\n break;\n case '>=':\n op = o.BinaryOperator.BiggerEquals;\n break;\n case '??':\n return this.convertNullishCoalesce(ast, mode);\n default:\n throw new Error(`Unsupported operation ${ast.operation}`);\n }\n\n return convertToStatementIfNeeded(\n mode,\n new o.BinaryOperatorExpr(\n op, this._visit(ast.left, _Mode.Expression), this._visit(ast.right, _Mode.Expression),\n undefined, this.convertSourceSpan(ast.span)));\n }\n\n visitChain(ast: cdAst.Chain, mode: _Mode): any {\n ensureStatementMode(mode, ast);\n return this.visitAll(ast.expressions, mode);\n }\n\n visitConditional(ast: cdAst.Conditional, mode: _Mode): any {\n const value: o.Expression = this._visit(ast.condition, _Mode.Expression);\n return convertToStatementIfNeeded(\n mode,\n value.conditional(\n this._visit(ast.trueExp, _Mode.Expression), this._visit(ast.falseExp, _Mode.Expression),\n this.convertSourceSpan(ast.span)));\n }\n\n visitPipe(ast: cdAst.BindingPipe, mode: _Mode): any {\n throw new Error(\n `Illegal state: Pipes should have been converted into functions. Pipe: ${ast.name}`);\n }\n\n visitImplicitReceiver(ast: cdAst.ImplicitReceiver, mode: _Mode): any {\n ensureExpressionMode(mode, ast);\n this.usesImplicitReceiver = true;\n return this._implicitReceiver;\n }\n\n visitThisReceiver(ast: cdAst.ThisReceiver, mode: _Mode): any {\n return this.visitImplicitReceiver(ast, mode);\n }\n\n visitInterpolation(ast: cdAst.Interpolation, mode: _Mode): InterpolationExpression {\n if (!this.supportsInterpolation) {\n throw new Error('Unexpected interpolation');\n }\n\n ensureExpressionMode(mode, ast);\n let args: o.Expression[] = [];\n for (let i = 0; i < ast.strings.length - 1; i++) {\n args.push(o.literal(ast.strings[i]));\n args.push(this._visit(ast.expressions[i], _Mode.Expression));\n }\n args.push(o.literal(ast.strings[ast.strings.length - 1]));\n\n // If we're dealing with an interpolation of 1 value with an empty prefix and suffix, reduce the\n // args returned to just the value, because we're going to pass it to a special instruction.\n const strings = ast.strings;\n if (strings.length === 2 && strings[0] === '' && strings[1] === '') {\n // Single argument interpolate instructions.\n args = [args[1]];\n } else if (ast.expressions.length >= 9) {\n // 9 or more arguments must be passed to the `interpolateV`-style instructions, which accept\n // an array of arguments\n args = [o.literalArr(args)];\n }\n\n return new InterpolationExpression(args);\n }\n\n visitKeyedRead(ast: cdAst.KeyedRead, mode: _Mode): any {\n const leftMostSafe = this.leftMostSafeNode(ast);\n if (leftMostSafe) {\n return this.convertSafeAccess(ast, leftMostSafe, mode);\n } else {\n return convertToStatementIfNeeded(\n mode,\n this._visit(ast.receiver, _Mode.Expression).key(this._visit(ast.key, _Mode.Expression)));\n }\n }\n\n visitKeyedWrite(ast: cdAst.KeyedWrite, mode: _Mode): any {\n const obj: o.Expression = this._visit(ast.receiver, _Mode.Expression);\n const key: o.Expression = this._visit(ast.key, _Mode.Expression);\n const value: o.Expression = this._visit(ast.value, _Mode.Expression);\n\n if (obj === this._implicitReceiver) {\n this._localResolver.maybeRestoreView();\n }\n\n return convertToStatementIfNeeded(mode, obj.key(key).set(value));\n }\n\n visitLiteralArray(ast: cdAst.LiteralArray, mode: _Mode): any {\n throw new Error(`Illegal State: literal arrays should have been converted into functions`);\n }\n\n visitLiteralMap(ast: cdAst.LiteralMap, mode: _Mode): any {\n throw new Error(`Illegal State: literal maps should have been converted into functions`);\n }\n\n visitLiteralPrimitive(ast: cdAst.LiteralPrimitive, mode: _Mode): any {\n // For literal values of null, undefined, true, or false allow type interference\n // to infer the type.\n const type =\n ast.value === null || ast.value === undefined || ast.value === true || ast.value === true ?\n o.INFERRED_TYPE :\n undefined;\n return convertToStatementIfNeeded(\n mode, o.literal(ast.value, type, this.convertSourceSpan(ast.span)));\n }\n\n private _getLocal(name: string, receiver: cdAst.AST): o.Expression|null {\n if (this._localResolver.globals?.has(name) && receiver instanceof cdAst.ThisReceiver) {\n return null;\n }\n\n return this._localResolver.getLocal(name);\n }\n\n visitPrefixNot(ast: cdAst.PrefixNot, mode: _Mode): any {\n return convertToStatementIfNeeded(mode, o.not(this._visit(ast.expression, _Mode.Expression)));\n }\n\n visitNonNullAssert(ast: cdAst.NonNullAssert, mode: _Mode): any {\n return convertToStatementIfNeeded(mode, this._visit(ast.expression, _Mode.Expression));\n }\n\n visitPropertyRead(ast: cdAst.PropertyRead, mode: _Mode): any {\n const leftMostSafe = this.leftMostSafeNode(ast);\n if (leftMostSafe) {\n return this.convertSafeAccess(ast, leftMostSafe, mode);\n } else {\n let result: any = null;\n const prevUsesImplicitReceiver = this.usesImplicitReceiver;\n const receiver = this._visit(ast.receiver, _Mode.Expression);\n if (receiver === this._implicitReceiver) {\n result = this._getLocal(ast.name, ast.receiver);\n if (result) {\n // Restore the previous \"usesImplicitReceiver\" state since the implicit\n // receiver has been replaced with a resolved local expression.\n this.usesImplicitReceiver = prevUsesImplicitReceiver;\n this.addImplicitReceiverAccess(ast.name);\n }\n }\n if (result == null) {\n result = receiver.prop(ast.name, this.convertSourceSpan(ast.span));\n }\n return convertToStatementIfNeeded(mode, result);\n }\n }\n\n visitPropertyWrite(ast: cdAst.PropertyWrite, mode: _Mode): any {\n const receiver: o.Expression = this._visit(ast.receiver, _Mode.Expression);\n const prevUsesImplicitReceiver = this.usesImplicitReceiver;\n\n let varExpr: o.ReadPropExpr|null = null;\n if (receiver === this._implicitReceiver) {\n const localExpr = this._getLocal(ast.name, ast.receiver);\n if (localExpr) {\n if (localExpr instanceof o.ReadPropExpr) {\n // If the local variable is a property read expression, it's a reference\n // to a 'context.property' value and will be used as the target of the\n // write expression.\n varExpr = localExpr;\n // Restore the previous \"usesImplicitReceiver\" state since the implicit\n // receiver has been replaced with a resolved local expression.\n this.usesImplicitReceiver = prevUsesImplicitReceiver;\n this.addImplicitReceiverAccess(ast.name);\n } else {\n // Otherwise it's an error.\n const receiver = ast.name;\n const value = (ast.value instanceof cdAst.PropertyRead) ? ast.value.name : undefined;\n throw new Error(`Cannot assign value \"${value}\" to template variable \"${\n receiver}\". Template variables are read-only.`);\n }\n }\n }\n // If no local expression could be produced, use the original receiver's\n // property as the target.\n if (varExpr === null) {\n varExpr = receiver.prop(ast.name, this.convertSourceSpan(ast.span));\n }\n return convertToStatementIfNeeded(mode, varExpr.set(this._visit(ast.value, _Mode.Expression)));\n }\n\n visitSafePropertyRead(ast: cdAst.SafePropertyRead, mode: _Mode): any {\n return this.convertSafeAccess(ast, this.leftMostSafeNode(ast), mode);\n }\n\n visitSafeKeyedRead(ast: cdAst.SafeKeyedRead, mode: _Mode): any {\n return this.convertSafeAccess(ast, this.leftMostSafeNode(ast), mode);\n }\n\n visitAll(asts: cdAst.AST[], mode: _Mode): any {\n return asts.map(ast => this._visit(ast, mode));\n }\n\n visitCall(ast: cdAst.Call, mode: _Mode): any {\n const leftMostSafe = this.leftMostSafeNode(ast);\n if (leftMostSafe) {\n return this.convertSafeAccess(ast, leftMostSafe, mode);\n }\n\n const convertedArgs = this.visitAll(ast.args, _Mode.Expression);\n\n if (ast instanceof BuiltinFunctionCall) {\n return convertToStatementIfNeeded(mode, ast.converter(convertedArgs));\n }\n\n const receiver = ast.receiver;\n if (receiver instanceof cdAst.PropertyRead &&\n receiver.receiver instanceof cdAst.ImplicitReceiver &&\n !(receiver.receiver instanceof cdAst.ThisReceiver) && receiver.name === '$any') {\n if (convertedArgs.length !== 1) {\n throw new Error(`Invalid call to $any, expected 1 argument but received ${\n convertedArgs.length || 'none'}`);\n }\n return convertToStatementIfNeeded(mode, convertedArgs[0] as o.Expression);\n }\n\n const call = this._visit(receiver, _Mode.Expression)\n .callFn(convertedArgs, this.convertSourceSpan(ast.span));\n return convertToStatementIfNeeded(mode, call);\n }\n\n visitSafeCall(ast: cdAst.SafeCall, mode: _Mode): any {\n return this.convertSafeAccess(ast, this.leftMostSafeNode(ast), mode);\n }\n\n private _visit(ast: cdAst.AST, mode: _Mode): any {\n const result = this._resultMap.get(ast);\n if (result) return result;\n return (this._nodeMap.get(ast) || ast).visit(this, mode);\n }\n\n private convertSafeAccess(\n ast: cdAst.AST, leftMostSafe: cdAst.SafePropertyRead|cdAst.SafeKeyedRead|cdAst.SafeCall,\n mode: _Mode): any {\n // If the expression contains a safe access node on the left it needs to be converted to\n // an expression that guards the access to the member by checking the receiver for blank. As\n // execution proceeds from left to right, the left most part of the expression must be guarded\n // first but, because member access is left associative, the right side of the expression is at\n // the top of the AST. The desired result requires lifting a copy of the left part of the\n // expression up to test it for blank before generating the unguarded version.\n\n // Consider, for example the following expression: a?.b.c?.d.e\n\n // This results in the ast:\n // .\n // / \\\n // ?. e\n // / \\\n // . d\n // / \\\n // ?. c\n // / \\\n // a b\n\n // The following tree should be generated:\n //\n // /---- ? ----\\\n // / | \\\n // a /--- ? ---\\ null\n // / | \\\n // . . null\n // / \\ / \\\n // . c . e\n // / \\ / \\\n // a b . d\n // / \\\n // . c\n // / \\\n // a b\n //\n // Notice that the first guard condition is the left hand of the left most safe access node\n // which comes in as leftMostSafe to this routine.\n\n let guardedExpression = this._visit(leftMostSafe.receiver, _Mode.Expression);\n let temporary: o.ReadVarExpr|undefined = undefined;\n if (this.needsTemporaryInSafeAccess(leftMostSafe.receiver)) {\n // If the expression has method calls or pipes then we need to save the result into a\n // temporary variable to avoid calling stateful or impure code more than once.\n temporary = this.allocateTemporary();\n\n // Preserve the result in the temporary variable\n guardedExpression = temporary.set(guardedExpression);\n\n // Ensure all further references to the guarded expression refer to the temporary instead.\n this._resultMap.set(leftMostSafe.receiver, temporary);\n }\n const condition = guardedExpression.isBlank();\n\n // Convert the ast to an unguarded access to the receiver's member. The map will substitute\n // leftMostNode with its unguarded version in the call to `this.visit()`.\n if (leftMostSafe instanceof cdAst.SafeCall) {\n this._nodeMap.set(\n leftMostSafe,\n new cdAst.Call(\n leftMostSafe.span, leftMostSafe.sourceSpan, leftMostSafe.receiver, leftMostSafe.args,\n leftMostSafe.argumentSpan));\n } else if (leftMostSafe instanceof cdAst.SafeKeyedRead) {\n this._nodeMap.set(\n leftMostSafe,\n new cdAst.KeyedRead(\n leftMostSafe.span, leftMostSafe.sourceSpan, leftMostSafe.receiver, leftMostSafe.key));\n } else {\n this._nodeMap.set(\n leftMostSafe,\n new cdAst.PropertyRead(\n leftMostSafe.span, leftMostSafe.sourceSpan, leftMostSafe.nameSpan,\n leftMostSafe.receiver, leftMostSafe.name));\n }\n\n // Recursively convert the node now without the guarded member access.\n const access = this._visit(ast, _Mode.Expression);\n\n // Remove the mapping. This is not strictly required as the converter only traverses each node\n // once but is safer if the conversion is changed to traverse the nodes more than once.\n this._nodeMap.delete(leftMostSafe);\n\n // If we allocated a temporary, release it.\n if (temporary) {\n this.releaseTemporary(temporary);\n }\n\n // Produce the conditional\n return convertToStatementIfNeeded(mode, condition.conditional(o.NULL_EXPR, access));\n }\n\n private convertNullishCoalesce(ast: cdAst.Binary, mode: _Mode): any {\n const left: o.Expression = this._visit(ast.left, _Mode.Expression);\n const right: o.Expression = this._visit(ast.right, _Mode.Expression);\n const temporary = this.allocateTemporary();\n this.releaseTemporary(temporary);\n\n // Generate the following expression. It is identical to how TS\n // transpiles binary expressions with a nullish coalescing operator.\n // let temp;\n // (temp = a) !== null && temp !== undefined ? temp : b;\n return convertToStatementIfNeeded(\n mode,\n temporary.set(left)\n .notIdentical(o.NULL_EXPR)\n .and(temporary.notIdentical(o.literal(undefined)))\n .conditional(temporary, right));\n }\n\n // Given an expression of the form a?.b.c?.d.e then the left most safe node is\n // the (a?.b). The . and ?. are left associative thus can be rewritten as:\n // ((((a?.c).b).c)?.d).e. This returns the most deeply nested safe read or\n // safe method call as this needs to be transformed initially to:\n // a == null ? null : a.c.b.c?.d.e\n // then to:\n // a == null ? null : a.b.c == null ? null : a.b.c.d.e\n private leftMostSafeNode(ast: cdAst.AST): cdAst.SafePropertyRead|cdAst.SafeKeyedRead {\n const visit = (visitor: cdAst.AstVisitor, ast: cdAst.AST): any => {\n return (this._nodeMap.get(ast) || ast).visit(visitor);\n };\n return ast.visit({\n visitUnary(ast: cdAst.Unary) {\n return null;\n },\n visitBinary(ast: cdAst.Binary) {\n return null;\n },\n visitChain(ast: cdAst.Chain) {\n return null;\n },\n visitConditional(ast: cdAst.Conditional) {\n return null;\n },\n visitCall(ast: cdAst.Call) {\n return visit(this, ast.receiver);\n },\n visitSafeCall(ast: cdAst.SafeCall) {\n return visit(this, ast.receiver) || ast;\n },\n visitImplicitReceiver(ast: cdAst.ImplicitReceiver) {\n return null;\n },\n visitThisReceiver(ast: cdAst.ThisReceiver) {\n return null;\n },\n visitInterpolation(ast: cdAst.Interpolation) {\n return null;\n },\n visitKeyedRead(ast: cdAst.KeyedRead) {\n return visit(this, ast.receiver);\n },\n visitKeyedWrite(ast: cdAst.KeyedWrite) {\n return null;\n },\n visitLiteralArray(ast: cdAst.LiteralArray) {\n return null;\n },\n visitLiteralMap(ast: cdAst.LiteralMap) {\n return null;\n },\n visitLiteralPrimitive(ast: cdAst.LiteralPrimitive) {\n return null;\n },\n visitPipe(ast: cdAst.BindingPipe) {\n return null;\n },\n visitPrefixNot(ast: cdAst.PrefixNot) {\n return null;\n },\n visitNonNullAssert(ast: cdAst.NonNullAssert) {\n return null;\n },\n visitPropertyRead(ast: cdAst.PropertyRead) {\n return visit(this, ast.receiver);\n },\n visitPropertyWrite(ast: cdAst.PropertyWrite) {\n return null;\n },\n visitSafePropertyRead(ast: cdAst.SafePropertyRead) {\n return visit(this, ast.receiver) || ast;\n },\n visitSafeKeyedRead(ast: cdAst.SafeKeyedRead) {\n return visit(this, ast.receiver) || ast;\n }\n });\n }\n\n // Returns true of the AST includes a method or a pipe indicating that, if the\n // expression is used as the target of a safe property or method access then\n // the expression should be stored into a temporary variable.\n private needsTemporaryInSafeAccess(ast: cdAst.AST): boolean {\n const visit = (visitor: cdAst.AstVisitor, ast: cdAst.AST): boolean => {\n return ast && (this._nodeMap.get(ast) || ast).visit(visitor);\n };\n const visitSome = (visitor: cdAst.AstVisitor, ast: cdAst.AST[]): boolean => {\n return ast.some(ast => visit(visitor, ast));\n };\n return ast.visit({\n visitUnary(ast: cdAst.Unary): boolean {\n return visit(this, ast.expr);\n },\n visitBinary(ast: cdAst.Binary): boolean {\n return visit(this, ast.left) || visit(this, ast.right);\n },\n visitChain(ast: cdAst.Chain) {\n return false;\n },\n visitConditional(ast: cdAst.Conditional): boolean {\n return visit(this, ast.condition) || visit(this, ast.trueExp) || visit(this, ast.falseExp);\n },\n visitCall(ast: cdAst.Call) {\n return true;\n },\n visitSafeCall(ast: cdAst.SafeCall) {\n return true;\n },\n visitImplicitReceiver(ast: cdAst.ImplicitReceiver) {\n return false;\n },\n visitThisReceiver(ast: cdAst.ThisReceiver) {\n return false;\n },\n visitInterpolation(ast: cdAst.Interpolation) {\n return visitSome(this, ast.expressions);\n },\n visitKeyedRead(ast: cdAst.KeyedRead) {\n return false;\n },\n visitKeyedWrite(ast: cdAst.KeyedWrite) {\n return false;\n },\n visitLiteralArray(ast: cdAst.LiteralArray) {\n return true;\n },\n visitLiteralMap(ast: cdAst.LiteralMap) {\n return true;\n },\n visitLiteralPrimitive(ast: cdAst.LiteralPrimitive) {\n return false;\n },\n visitPipe(ast: cdAst.BindingPipe) {\n return true;\n },\n visitPrefixNot(ast: cdAst.PrefixNot) {\n return visit(this, ast.expression);\n },\n visitNonNullAssert(ast: cdAst.PrefixNot) {\n return visit(this, ast.expression);\n },\n visitPropertyRead(ast: cdAst.PropertyRead) {\n return false;\n },\n visitPropertyWrite(ast: cdAst.PropertyWrite) {\n return false;\n },\n visitSafePropertyRead(ast: cdAst.SafePropertyRead) {\n return false;\n },\n visitSafeKeyedRead(ast: cdAst.SafeKeyedRead) {\n return false;\n }\n });\n }\n\n private allocateTemporary(): o.ReadVarExpr {\n const tempNumber = this._currentTemporary++;\n this.temporaryCount = Math.max(this._currentTemporary, this.temporaryCount);\n return new o.ReadVarExpr(temporaryName(this.bindingId, tempNumber));\n }\n\n private releaseTemporary(temporary: o.ReadVarExpr) {\n this._currentTemporary--;\n if (temporary.name != temporaryName(this.bindingId, this._currentTemporary)) {\n throw new Error(`Temporary ${temporary.name} released out of order`);\n }\n }\n\n /**\n * Creates an absolute `ParseSourceSpan` from the relative `ParseSpan`.\n *\n * `ParseSpan` objects are relative to the start of the expression.\n * This method converts these to full `ParseSourceSpan` objects that\n * show where the span is within the overall source file.\n *\n * @param span the relative span to convert.\n * @returns a `ParseSourceSpan` for the given span or null if no\n * `baseSourceSpan` was provided to this class.\n */\n private convertSourceSpan(span: cdAst.ParseSpan) {\n if (this.baseSourceSpan) {\n const start = this.baseSourceSpan.start.moveBy(span.start);\n const end = this.baseSourceSpan.start.moveBy(span.end);\n const fullStart = this.baseSourceSpan.fullStart.moveBy(span.start);\n return new ParseSourceSpan(start, end, fullStart);\n } else {\n return null;\n }\n }\n\n /** Adds the name of an AST to the list of implicit receiver accesses. */\n private addImplicitReceiverAccess(name: string) {\n if (this.implicitReceiverAccesses) {\n this.implicitReceiverAccesses.add(name);\n }\n }\n}\n\nfunction flattenStatements(arg: any, output: o.Statement[]) {\n if (Array.isArray(arg)) {\n (arg).forEach((entry) => flattenStatements(entry, output));\n } else {\n output.push(arg);\n }\n}\n\nfunction unsupported(): never {\n throw new Error('Unsupported operation');\n}\n\nclass InterpolationExpression extends o.Expression {\n constructor(public args: o.Expression[]) {\n super(null, null);\n }\n\n override isConstant = unsupported;\n override isEquivalent = unsupported;\n override visitExpression = unsupported;\n}\n\nclass DefaultLocalResolver implements LocalResolver {\n constructor(public globals?: Set) {}\n notifyImplicitReceiverUse(): void {}\n maybeRestoreView(): void {}\n getLocal(name: string): o.Expression|null {\n if (name === EventHandlerVars.event.name) {\n return EventHandlerVars.event;\n }\n return null;\n }\n}\n\nexport class BuiltinFunctionCall extends cdAst.Call {\n constructor(\n span: cdAst.ParseSpan, sourceSpan: cdAst.AbsoluteSourceSpan, args: cdAst.AST[],\n public converter: BuiltinConverter) {\n super(span, sourceSpan, new cdAst.EmptyExpr(span, sourceSpan), args, 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\nimport {SecurityContext} from '../core';\n\n// =================================================================================================\n// =================================================================================================\n// =========== S T O P - S T O P - S T O P - S T O P - S T O P - S T O P ===========\n// =================================================================================================\n// =================================================================================================\n//\n// DO NOT EDIT THIS LIST OF SECURITY SENSITIVE PROPERTIES WITHOUT A SECURITY REVIEW!\n// Reach out to mprobst for details.\n//\n// =================================================================================================\n\n/** Map from tagName|propertyName to SecurityContext. Properties applying to all tags use '*'. */\nlet _SECURITY_SCHEMA!: {[k: string]: SecurityContext};\n\nexport function SECURITY_SCHEMA(): {[k: string]: SecurityContext} {\n if (!_SECURITY_SCHEMA) {\n _SECURITY_SCHEMA = {};\n // Case is insignificant below, all element and attribute names are lower-cased for lookup.\n\n registerContext(SecurityContext.HTML, [\n 'iframe|srcdoc',\n '*|innerHTML',\n '*|outerHTML',\n ]);\n registerContext(SecurityContext.STYLE, ['*|style']);\n // NB: no SCRIPT contexts here, they are never allowed due to the parser stripping them.\n registerContext(SecurityContext.URL, [\n '*|formAction',\n 'area|href',\n 'area|ping',\n 'audio|src',\n 'a|href',\n 'a|ping',\n 'blockquote|cite',\n 'body|background',\n 'del|cite',\n 'form|action',\n 'img|src',\n 'input|src',\n 'ins|cite',\n 'q|cite',\n 'source|src',\n 'track|src',\n 'video|poster',\n 'video|src',\n ]);\n registerContext(SecurityContext.RESOURCE_URL, [\n 'applet|code',\n 'applet|codebase',\n 'base|href',\n 'embed|src',\n 'frame|src',\n 'head|profile',\n 'html|manifest',\n 'iframe|src',\n 'link|href',\n 'media|src',\n 'object|codebase',\n 'object|data',\n 'script|src',\n ]);\n }\n return _SECURITY_SCHEMA;\n}\n\nfunction registerContext(ctx: SecurityContext, specs: string[]) {\n for (const spec of specs) _SECURITY_SCHEMA[spec.toLowerCase()] = ctx;\n}\n\n/**\n * The set of security-sensitive attributes of an `