blob: 0b0d0811d4e4ba9a7269b80384a84a57327ef9e0 [file] [log] [blame]
{"version":3,"file":"compiler.js","sources":["../../../packages/compiler/esm5/src/core.js","../../../packages/compiler/esm5/src/util.js","../../../packages/compiler/esm5/src/version.js","../../../packages/compiler/esm5/src/template_parser/template_ast.js","../../../packages/compiler/esm5/src/config.js","../../../packages/compiler/esm5/src/aot/static_symbol.js","../../../packages/compiler/esm5/src/compile_metadata.js","../../../packages/compiler/esm5/src/ast_path.js","../../../packages/compiler/esm5/src/ml_parser/ast.js","../../../packages/compiler/esm5/src/assertions.js","../../../packages/compiler/esm5/src/ml_parser/interpolation_config.js","../../../packages/compiler/esm5/src/style_url_resolver.js","../../../packages/compiler/esm5/src/ml_parser/tags.js","../../../packages/compiler/esm5/src/template_parser/template_preparser.js","../../../packages/compiler/esm5/src/directive_normalizer.js","../../../packages/compiler/esm5/src/directive_resolver.js","../../../packages/compiler/esm5/src/chars.js","../../../packages/compiler/esm5/src/expression_parser/lexer.js","../../../packages/compiler/esm5/src/expression_parser/ast.js","../../../packages/compiler/esm5/src/expression_parser/parser.js","../../../packages/compiler/esm5/src/parse_util.js","../../../packages/compiler/esm5/src/ml_parser/lexer.js","../../../packages/compiler/esm5/src/ml_parser/parser.js","../../../packages/compiler/esm5/src/i18n/digest.js","../../../packages/compiler/esm5/src/i18n/i18n_ast.js","../../../packages/compiler/esm5/src/ml_parser/html_tags.js","../../../packages/compiler/esm5/src/i18n/serializers/placeholder.js","../../../packages/compiler/esm5/src/i18n/i18n_parser.js","../../../packages/compiler/esm5/src/i18n/parse_util.js","../../../packages/compiler/esm5/src/i18n/extractor_merger.js","../../../packages/compiler/esm5/src/ml_parser/xml_tags.js","../../../packages/compiler/esm5/src/ml_parser/xml_parser.js","../../../packages/compiler/esm5/src/i18n/serializers/serializer.js","../../../packages/compiler/esm5/src/i18n/serializers/xml_helper.js","../../../packages/compiler/esm5/src/i18n/serializers/xliff.js","../../../packages/compiler/esm5/src/i18n/serializers/xliff2.js","../../../packages/compiler/esm5/src/i18n/serializers/xmb.js","../../../packages/compiler/esm5/src/i18n/serializers/xtb.js","../../../packages/compiler/esm5/src/ml_parser/html_parser.js","../../../packages/compiler/esm5/src/i18n/translation_bundle.js","../../../packages/compiler/esm5/src/i18n/i18n_html_parser.js","../../../packages/compiler/esm5/src/aot/util.js","../../../packages/compiler/esm5/src/identifiers.js","../../../packages/compiler/esm5/src/lifecycle_reflector.js","../../../packages/compiler/esm5/src/selector.js","../../../packages/compiler/esm5/src/metadata_resolver.js","../../../packages/compiler/esm5/src/output/output_ast.js","../../../packages/compiler/esm5/src/provider_analyzer.js","../../../packages/compiler/esm5/src/output/value_util.js","../../../packages/compiler/esm5/src/view_compiler/provider_compiler.js","../../../packages/compiler/esm5/src/ng_module_compiler.js","../../../packages/compiler/esm5/src/ng_module_resolver.js","../../../packages/compiler/esm5/src/output/source_map.js","../../../packages/compiler/esm5/src/output/abstract_emitter.js","../../../packages/compiler/esm5/src/output/ts_emitter.js","../../../packages/compiler/esm5/src/pipe_resolver.js","../../../packages/compiler/esm5/src/schema/dom_security_schema.js","../../../packages/compiler/esm5/src/schema/element_schema_registry.js","../../../packages/compiler/esm5/src/schema/dom_element_schema_registry.js","../../../packages/compiler/esm5/src/shadow_css.js","../../../packages/compiler/esm5/src/style_compiler.js","../../../packages/compiler/esm5/src/ml_parser/html_whitespaces.js","../../../packages/compiler/esm5/src/ml_parser/icu_ast_expander.js","../../../packages/compiler/esm5/src/template_parser/binding_parser.js","../../../packages/compiler/esm5/src/template_parser/template_parser.js","../../../packages/compiler/esm5/src/compiler_util/expression_converter.js","../../../packages/compiler/esm5/src/view_compiler/type_check_compiler.js","../../../packages/compiler/esm5/src/view_compiler/view_compiler.js","../../../packages/compiler/esm5/src/i18n/message_bundle.js","../../../packages/compiler/esm5/src/aot/generated_file.js","../../../packages/compiler/esm5/src/aot/lazy_routes.js","../../../packages/compiler/esm5/src/aot/static_symbol_resolver.js","../../../packages/compiler/esm5/src/aot/summary_serializer.js","../../../packages/compiler/esm5/src/aot/compiler.js","../../../packages/compiler/esm5/src/aot/formatted_error.js","../../../packages/compiler/esm5/src/aot/static_reflector.js","../../../packages/compiler/esm5/src/aot/summary_resolver.js","../../../packages/compiler/esm5/src/aot/compiler_factory.js","../../../packages/compiler/esm5/src/summary_resolver.js","../../../packages/compiler/esm5/src/output/output_interpreter.js","../../../packages/compiler/esm5/src/output/abstract_js_emitter.js","../../../packages/compiler/esm5/src/output/output_jit.js","../../../packages/compiler/esm5/src/jit/compiler.js","../../../packages/compiler/esm5/src/compile_reflector.js","../../../packages/compiler/esm5/src/url_resolver.js","../../../packages/compiler/esm5/src/resource_loader.js","../../../packages/compiler/esm5/src/i18n/extractor.js","../../../packages/compiler/esm5/src/i18n/index.js","../../../packages/compiler/esm5/src/compiler.js","../../../packages/compiler/esm5/public_api.js","../../../packages/compiler/esm5/compiler.js"],"sourcesContent":["/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this 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 tslib_1 from \"tslib\";\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/**\n * @record\n */\nexport function Inject() { }\nfunction Inject_tsickle_Closure_declarations() {\n /** @type {?} */\n Inject.prototype.token;\n}\nexport var /** @type {?} */ createInject = makeMetadataFactory('Inject', function (token) { return ({ token: token }); });\nexport var /** @type {?} */ createInjectionToken = makeMetadataFactory('InjectionToken', function (desc) { return ({ _desc: desc }); });\n/**\n * @record\n */\nexport function Attribute() { }\nfunction Attribute_tsickle_Closure_declarations() {\n /** @type {?|undefined} */\n Attribute.prototype.attributeName;\n}\nexport var /** @type {?} */ createAttribute = makeMetadataFactory('Attribute', function (attributeName) { return ({ attributeName: attributeName }); });\n/**\n * @record\n */\nexport function Query() { }\nfunction Query_tsickle_Closure_declarations() {\n /** @type {?} */\n Query.prototype.descendants;\n /** @type {?} */\n Query.prototype.first;\n /** @type {?} */\n Query.prototype.read;\n /** @type {?} */\n Query.prototype.isViewQuery;\n /** @type {?} */\n Query.prototype.selector;\n}\nexport var /** @type {?} */ createContentChildren = makeMetadataFactory('ContentChildren', function (selector, data) {\n if (data === void 0) { data = {}; }\n return (tslib_1.__assign({ selector: selector, first: false, isViewQuery: false, descendants: false }, data));\n});\nexport var /** @type {?} */ createContentChild = makeMetadataFactory('ContentChild', function (selector, data) {\n if (data === void 0) { data = {}; }\n return (tslib_1.__assign({ selector: selector, first: true, isViewQuery: false, descendants: true }, data));\n});\nexport var /** @type {?} */ createViewChildren = makeMetadataFactory('ViewChildren', function (selector, data) {\n if (data === void 0) { data = {}; }\n return (tslib_1.__assign({ selector: selector, first: false, isViewQuery: true, descendants: true }, data));\n});\nexport var /** @type {?} */ createViewChild = makeMetadataFactory('ViewChild', function (selector, data) {\n return (tslib_1.__assign({ selector: selector, first: true, isViewQuery: true, descendants: true }, data));\n});\n/**\n * @record\n */\nexport function Directive() { }\nfunction Directive_tsickle_Closure_declarations() {\n /** @type {?|undefined} */\n Directive.prototype.selector;\n /** @type {?|undefined} */\n Directive.prototype.inputs;\n /** @type {?|undefined} */\n Directive.prototype.outputs;\n /** @type {?|undefined} */\n Directive.prototype.host;\n /** @type {?|undefined} */\n Directive.prototype.providers;\n /** @type {?|undefined} */\n Directive.prototype.exportAs;\n /** @type {?|undefined} */\n Directive.prototype.queries;\n /** @type {?|undefined} */\n Directive.prototype.guards;\n}\nexport var /** @type {?} */ createDirective = makeMetadataFactory('Directive', function (dir) {\n if (dir === void 0) { dir = {}; }\n return dir;\n});\n/**\n * @record\n */\nexport function Component() { }\nfunction Component_tsickle_Closure_declarations() {\n /** @type {?|undefined} */\n Component.prototype.changeDetection;\n /** @type {?|undefined} */\n Component.prototype.viewProviders;\n /** @type {?|undefined} */\n Component.prototype.moduleId;\n /** @type {?|undefined} */\n Component.prototype.templateUrl;\n /** @type {?|undefined} */\n Component.prototype.template;\n /** @type {?|undefined} */\n Component.prototype.styleUrls;\n /** @type {?|undefined} */\n Component.prototype.styles;\n /** @type {?|undefined} */\n Component.prototype.animations;\n /** @type {?|undefined} */\n Component.prototype.encapsulation;\n /** @type {?|undefined} */\n Component.prototype.interpolation;\n /** @type {?|undefined} */\n Component.prototype.entryComponents;\n /** @type {?|undefined} */\n Component.prototype.preserveWhitespaces;\n}\n/** @enum {number} */\nvar ViewEncapsulation = {\n Emulated: 0,\n Native: 1,\n None: 2,\n};\nexport { ViewEncapsulation };\nViewEncapsulation[ViewEncapsulation.Emulated] = \"Emulated\";\nViewEncapsulation[ViewEncapsulation.Native] = \"Native\";\nViewEncapsulation[ViewEncapsulation.None] = \"None\";\n/** @enum {number} */\nvar ChangeDetectionStrategy = {\n OnPush: 0,\n Default: 1,\n};\nexport { ChangeDetectionStrategy };\nChangeDetectionStrategy[ChangeDetectionStrategy.OnPush] = \"OnPush\";\nChangeDetectionStrategy[ChangeDetectionStrategy.Default] = \"Default\";\nexport var /** @type {?} */ createComponent = makeMetadataFactory('Component', function (c) {\n if (c === void 0) { c = {}; }\n return (tslib_1.__assign({ changeDetection: ChangeDetectionStrategy.Default }, c));\n});\n/**\n * @record\n */\nexport function Pipe() { }\nfunction Pipe_tsickle_Closure_declarations() {\n /** @type {?} */\n Pipe.prototype.name;\n /** @type {?|undefined} */\n Pipe.prototype.pure;\n}\nexport var /** @type {?} */ createPipe = makeMetadataFactory('Pipe', function (p) { return (tslib_1.__assign({ pure: true }, p)); });\n/**\n * @record\n */\nexport function Input() { }\nfunction Input_tsickle_Closure_declarations() {\n /** @type {?|undefined} */\n Input.prototype.bindingPropertyName;\n}\nexport var /** @type {?} */ createInput = makeMetadataFactory('Input', function (bindingPropertyName) { return ({ bindingPropertyName: bindingPropertyName }); });\n/**\n * @record\n */\nexport function Output() { }\nfunction Output_tsickle_Closure_declarations() {\n /** @type {?|undefined} */\n Output.prototype.bindingPropertyName;\n}\nexport var /** @type {?} */ createOutput = makeMetadataFactory('Output', function (bindingPropertyName) { return ({ bindingPropertyName: bindingPropertyName }); });\n/**\n * @record\n */\nexport function HostBinding() { }\nfunction HostBinding_tsickle_Closure_declarations() {\n /** @type {?|undefined} */\n HostBinding.prototype.hostPropertyName;\n}\nexport var /** @type {?} */ createHostBinding = makeMetadataFactory('HostBinding', function (hostPropertyName) { return ({ hostPropertyName: hostPropertyName }); });\n/**\n * @record\n */\nexport function HostListener() { }\nfunction HostListener_tsickle_Closure_declarations() {\n /** @type {?|undefined} */\n HostListener.prototype.eventName;\n /** @type {?|undefined} */\n HostListener.prototype.args;\n}\nexport var /** @type {?} */ createHostListener = makeMetadataFactory('HostListener', function (eventName, args) { return ({ eventName: eventName, args: args }); });\n/**\n * @record\n */\nexport function NgModule() { }\nfunction NgModule_tsickle_Closure_declarations() {\n /** @type {?|undefined} */\n NgModule.prototype.providers;\n /** @type {?|undefined} */\n NgModule.prototype.declarations;\n /** @type {?|undefined} */\n NgModule.prototype.imports;\n /** @type {?|undefined} */\n NgModule.prototype.exports;\n /** @type {?|undefined} */\n NgModule.prototype.entryComponents;\n /** @type {?|undefined} */\n NgModule.prototype.bootstrap;\n /** @type {?|undefined} */\n NgModule.prototype.schemas;\n /** @type {?|undefined} */\n NgModule.prototype.id;\n}\nexport var /** @type {?} */ createNgModule = makeMetadataFactory('NgModule', function (ngModule) { return ngModule; });\n/**\n * @record\n */\nexport function ModuleWithProviders() { }\nfunction ModuleWithProviders_tsickle_Closure_declarations() {\n /** @type {?} */\n ModuleWithProviders.prototype.ngModule;\n /** @type {?|undefined} */\n ModuleWithProviders.prototype.providers;\n}\n/**\n * @record\n */\nexport function SchemaMetadata() { }\nfunction SchemaMetadata_tsickle_Closure_declarations() {\n /** @type {?} */\n SchemaMetadata.prototype.name;\n}\nexport var /** @type {?} */ CUSTOM_ELEMENTS_SCHEMA = {\n name: 'custom-elements'\n};\nexport var /** @type {?} */ NO_ERRORS_SCHEMA = {\n name: 'no-errors-schema'\n};\nexport var /** @type {?} */ createOptional = makeMetadataFactory('Optional');\nexport var /** @type {?} */ createInjectable = makeMetadataFactory('Injectable');\nexport var /** @type {?} */ createSelf = makeMetadataFactory('Self');\nexport var /** @type {?} */ createSkipSelf = makeMetadataFactory('SkipSelf');\nexport var /** @type {?} */ createHost = makeMetadataFactory('Host');\nexport var /** @type {?} */ Type = Function;\n/** @enum {number} */\nvar SecurityContext = {\n NONE: 0,\n HTML: 1,\n STYLE: 2,\n SCRIPT: 3,\n URL: 4,\n RESOURCE_URL: 5,\n};\nexport { SecurityContext };\nSecurityContext[SecurityContext.NONE] = \"NONE\";\nSecurityContext[SecurityContext.HTML] = \"HTML\";\nSecurityContext[SecurityContext.STYLE] = \"STYLE\";\nSecurityContext[SecurityContext.SCRIPT] = \"SCRIPT\";\nSecurityContext[SecurityContext.URL] = \"URL\";\nSecurityContext[SecurityContext.RESOURCE_URL] = \"RESOURCE_URL\";\n/** @enum {number} */\nvar NodeFlags = {\n None: 0,\n TypeElement: 1,\n TypeText: 2,\n ProjectedTemplate: 4,\n CatRenderNode: 3,\n TypeNgContent: 8,\n TypePipe: 16,\n TypePureArray: 32,\n TypePureObject: 64,\n TypePurePipe: 128,\n CatPureExpression: 224,\n TypeValueProvider: 256,\n TypeClassProvider: 512,\n TypeFactoryProvider: 1024,\n TypeUseExistingProvider: 2048,\n LazyProvider: 4096,\n PrivateProvider: 8192,\n TypeDirective: 16384,\n Component: 32768,\n CatProviderNoDirective: 3840,\n CatProvider: 20224,\n OnInit: 65536,\n OnDestroy: 131072,\n DoCheck: 262144,\n OnChanges: 524288,\n AfterContentInit: 1048576,\n AfterContentChecked: 2097152,\n AfterViewInit: 4194304,\n AfterViewChecked: 8388608,\n EmbeddedViews: 16777216,\n ComponentView: 33554432,\n TypeContentQuery: 67108864,\n TypeViewQuery: 134217728,\n StaticQuery: 268435456,\n DynamicQuery: 536870912,\n CatQuery: 201326592,\n // mutually exclusive values...\n Types: 201347067,\n};\nexport { NodeFlags };\n/** @enum {number} */\nvar DepFlags = {\n None: 0,\n SkipSelf: 1,\n Optional: 2,\n Value: 8,\n};\nexport { DepFlags };\n/** @enum {number} */\nvar ArgumentType = { Inline: 0, Dynamic: 1, };\nexport { ArgumentType };\n/** @enum {number} */\nvar BindingFlags = {\n TypeElementAttribute: 1,\n TypeElementClass: 2,\n TypeElementStyle: 4,\n TypeProperty: 8,\n SyntheticProperty: 16,\n SyntheticHostProperty: 32,\n CatSyntheticProperty: 48,\n // mutually exclusive values...\n Types: 15,\n};\nexport { BindingFlags };\n/** @enum {number} */\nvar QueryBindingType = { First: 0, All: 1, };\nexport { QueryBindingType };\n/** @enum {number} */\nvar QueryValueType = {\n ElementRef: 0,\n RenderElement: 1,\n TemplateRef: 2,\n ViewContainerRef: 3,\n Provider: 4,\n};\nexport { QueryValueType };\n/** @enum {number} */\nvar ViewFlags = {\n None: 0,\n OnPush: 2,\n};\nexport { ViewFlags };\n/** @enum {number} */\nvar MissingTranslationStrategy = {\n Error: 0,\n Warning: 1,\n Ignore: 2,\n};\nexport { MissingTranslationStrategy };\nMissingTranslationStrategy[MissingTranslationStrategy.Error] = \"Error\";\nMissingTranslationStrategy[MissingTranslationStrategy.Warning] = \"Warning\";\nMissingTranslationStrategy[MissingTranslationStrategy.Ignore] = \"Ignore\";\n/**\n * @record\n */\nexport function MetadataFactory() { }\nfunction MetadataFactory_tsickle_Closure_declarations() {\n /* TODO: handle strange member:\n (...args: any[]): T;\n */\n /** @type {?} */\n MetadataFactory.prototype.isTypeOf;\n /** @type {?} */\n MetadataFactory.prototype.ngMetadataName;\n}\n/**\n * @template T\n * @param {?} name\n * @param {?=} props\n * @return {?}\n */\nfunction makeMetadataFactory(name, props) {\n var /** @type {?} */ factory = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var /** @type {?} */ values = props ? props.apply(void 0, args) : {};\n return tslib_1.__assign({ ngMetadataName: name }, values);\n };\n factory.isTypeOf = function (obj) { return obj && obj.ngMetadataName === name; };\n factory.ngMetadataName = name;\n return factory;\n}\n/**\n * @record\n */\nexport function Route() { }\nfunction Route_tsickle_Closure_declarations() {\n /** @type {?|undefined} */\n Route.prototype.children;\n /** @type {?|undefined} */\n Route.prototype.loadChildren;\n}\n//# sourceMappingURL=core.js.map","/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nvar /** @type {?} */ DASH_CASE_REGEXP = /-+([a-z0-9])/g;\n/**\n * @param {?} input\n * @return {?}\n */\nexport function dashCaseToCamelCase(input) {\n return input.replace(DASH_CASE_REGEXP, function () {\n var m = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n m[_i] = arguments[_i];\n }\n return m[1].toUpperCase();\n });\n}\n/**\n * @param {?} input\n * @param {?} defaultValues\n * @return {?}\n */\nexport function splitAtColon(input, defaultValues) {\n return _splitAt(input, ':', defaultValues);\n}\n/**\n * @param {?} input\n * @param {?} defaultValues\n * @return {?}\n */\nexport function splitAtPeriod(input, defaultValues) {\n return _splitAt(input, '.', defaultValues);\n}\n/**\n * @param {?} input\n * @param {?} character\n * @param {?} defaultValues\n * @return {?}\n */\nfunction _splitAt(input, character, defaultValues) {\n var /** @type {?} */ characterIndex = input.indexOf(character);\n if (characterIndex == -1)\n return defaultValues;\n return [input.slice(0, characterIndex).trim(), input.slice(characterIndex + 1).trim()];\n}\n/**\n * @param {?} value\n * @param {?} visitor\n * @param {?} context\n * @return {?}\n */\nexport function visitValue(value, visitor, context) {\n if (Array.isArray(value)) {\n return visitor.visitArray(/** @type {?} */ (value), context);\n }\n if (isStrictStringMap(value)) {\n return visitor.visitStringMap(/** @type {?} */ (value), context);\n }\n if (value == null || typeof value == 'string' || typeof value == 'number' ||\n typeof value == 'boolean') {\n return visitor.visitPrimitive(value, context);\n }\n return visitor.visitOther(value, context);\n}\n/**\n * @param {?} val\n * @return {?}\n */\nexport function isDefined(val) {\n return val !== null && val !== undefined;\n}\n/**\n * @template T\n * @param {?} val\n * @return {?}\n */\nexport function noUndefined(val) {\n return val === undefined ? /** @type {?} */ ((null)) : val;\n}\n/**\n * @record\n */\nexport function ValueVisitor() { }\nfunction ValueVisitor_tsickle_Closure_declarations() {\n /** @type {?} */\n ValueVisitor.prototype.visitArray;\n /** @type {?} */\n ValueVisitor.prototype.visitStringMap;\n /** @type {?} */\n ValueVisitor.prototype.visitPrimitive;\n /** @type {?} */\n ValueVisitor.prototype.visitOther;\n}\nvar ValueTransformer = /** @class */ (function () {\n function ValueTransformer() {\n }\n /**\n * @param {?} arr\n * @param {?} context\n * @return {?}\n */\n ValueTransformer.prototype.visitArray = /**\n * @param {?} arr\n * @param {?} context\n * @return {?}\n */\n function (arr, context) {\n var _this = this;\n return arr.map(function (value) { return visitValue(value, _this, context); });\n };\n /**\n * @param {?} map\n * @param {?} context\n * @return {?}\n */\n ValueTransformer.prototype.visitStringMap = /**\n * @param {?} map\n * @param {?} context\n * @return {?}\n */\n function (map, context) {\n var _this = this;\n var /** @type {?} */ result = {};\n Object.keys(map).forEach(function (key) { result[key] = visitValue(map[key], _this, context); });\n return result;\n };\n /**\n * @param {?} value\n * @param {?} context\n * @return {?}\n */\n ValueTransformer.prototype.visitPrimitive = /**\n * @param {?} value\n * @param {?} context\n * @return {?}\n */\n function (value, context) { return value; };\n /**\n * @param {?} value\n * @param {?} context\n * @return {?}\n */\n ValueTransformer.prototype.visitOther = /**\n * @param {?} value\n * @param {?} context\n * @return {?}\n */\n function (value, context) { return value; };\n return ValueTransformer;\n}());\nexport { ValueTransformer };\nexport var /** @type {?} */ SyncAsync = {\n assertSync: function (value) {\n if (isPromise(value)) {\n throw new Error(\"Illegal state: value cannot be a promise\");\n }\n return value;\n },\n then: function (value, cb) { return isPromise(value) ? value.then(cb) : cb(value); },\n all: function (syncAsyncValues) {\n return syncAsyncValues.some(isPromise) ? Promise.all(syncAsyncValues) : /** @type {?} */ (syncAsyncValues);\n }\n};\n/**\n * @param {?} msg\n * @param {?=} parseErrors\n * @return {?}\n */\nexport function syntaxError(msg, parseErrors) {\n var /** @type {?} */ error = Error(msg);\n (/** @type {?} */ (error))[ERROR_SYNTAX_ERROR] = true;\n if (parseErrors)\n (/** @type {?} */ (error))[ERROR_PARSE_ERRORS] = parseErrors;\n return error;\n}\nvar /** @type {?} */ ERROR_SYNTAX_ERROR = 'ngSyntaxError';\nvar /** @type {?} */ ERROR_PARSE_ERRORS = 'ngParseErrors';\n/**\n * @param {?} error\n * @return {?}\n */\nexport function isSyntaxError(error) {\n return (/** @type {?} */ (error))[ERROR_SYNTAX_ERROR];\n}\n/**\n * @param {?} error\n * @return {?}\n */\nexport function getParseErrors(error) {\n return (/** @type {?} */ (error))[ERROR_PARSE_ERRORS] || [];\n}\n/**\n * @param {?} s\n * @return {?}\n */\nexport function escapeRegExp(s) {\n return s.replace(/([.*+?^=!:${}()|[\\]\\/\\\\])/g, '\\\\$1');\n}\nvar /** @type {?} */ STRING_MAP_PROTO = Object.getPrototypeOf({});\n/**\n * @param {?} obj\n * @return {?}\n */\nfunction isStrictStringMap(obj) {\n return typeof obj === 'object' && obj !== null && Object.getPrototypeOf(obj) === STRING_MAP_PROTO;\n}\n/**\n * @param {?} str\n * @return {?}\n */\nexport function utf8Encode(str) {\n var /** @type {?} */ encoded = '';\n for (var /** @type {?} */ index = 0; index < str.length; index++) {\n var /** @type {?} */ codePoint = str.charCodeAt(index);\n // decode surrogate\n // see https://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n if (codePoint >= 0xd800 && codePoint <= 0xdbff && str.length > (index + 1)) {\n var /** @type {?} */ low = str.charCodeAt(index + 1);\n if (low >= 0xdc00 && low <= 0xdfff) {\n index++;\n codePoint = ((codePoint - 0xd800) << 10) + low - 0xdc00 + 0x10000;\n }\n }\n if (codePoint <= 0x7f) {\n encoded += String.fromCharCode(codePoint);\n }\n else if (codePoint <= 0x7ff) {\n encoded += String.fromCharCode(((codePoint >> 6) & 0x1F) | 0xc0, (codePoint & 0x3f) | 0x80);\n }\n else if (codePoint <= 0xffff) {\n encoded += String.fromCharCode((codePoint >> 12) | 0xe0, ((codePoint >> 6) & 0x3f) | 0x80, (codePoint & 0x3f) | 0x80);\n }\n else if (codePoint <= 0x1fffff) {\n encoded += String.fromCharCode(((codePoint >> 18) & 0x07) | 0xf0, ((codePoint >> 12) & 0x3f) | 0x80, ((codePoint >> 6) & 0x3f) | 0x80, (codePoint & 0x3f) | 0x80);\n }\n }\n return encoded;\n}\n/**\n * @record\n */\nexport function OutputContext() { }\nfunction OutputContext_tsickle_Closure_declarations() {\n /** @type {?} */\n OutputContext.prototype.genFilePath;\n /** @type {?} */\n OutputContext.prototype.statements;\n /** @type {?} */\n OutputContext.prototype.importExpr;\n}\n/**\n * @param {?} token\n * @return {?}\n */\nexport function stringify(token) {\n if (typeof token === 'string') {\n return token;\n }\n if (token instanceof Array) {\n return '[' + token.map(stringify).join(', ') + ']';\n }\n if (token == null) {\n return '' + token;\n }\n if (token.overriddenName) {\n return \"\" + token.overriddenName;\n }\n if (token.name) {\n return \"\" + token.name;\n }\n var /** @type {?} */ res = token.toString();\n if (res == null) {\n return '' + res;\n }\n var /** @type {?} */ newLineIndex = res.indexOf('\\n');\n return newLineIndex === -1 ? res : res.substring(0, newLineIndex);\n}\n/**\n * Lazily retrieves the reference value from a forwardRef.\n * @param {?} type\n * @return {?}\n */\nexport function resolveForwardRef(type) {\n if (typeof type === 'function' && type.hasOwnProperty('__forward_ref__')) {\n return type();\n }\n else {\n return type;\n }\n}\n/**\n * Determine if the argument is shaped like a Promise\n * @param {?} obj\n * @return {?}\n */\nexport function isPromise(obj) {\n // allow any Promise/A+ compliant thenable.\n // It's up to the caller to ensure that obj.then conforms to the spec\n return !!obj && typeof obj.then === 'function';\n}\nvar Version = /** @class */ (function () {\n function Version(full) {\n this.full = full;\n var /** @type {?} */ splits = full.split('.');\n this.major = splits[0];\n this.minor = splits[1];\n this.patch = splits.slice(2).join('.');\n }\n return Version;\n}());\nexport { Version };\nfunction Version_tsickle_Closure_declarations() {\n /** @type {?} */\n Version.prototype.major;\n /** @type {?} */\n Version.prototype.minor;\n /** @type {?} */\n Version.prototype.patch;\n /** @type {?} */\n Version.prototype.full;\n}\n/**\n * @record\n */\nexport function Console() { }\nfunction Console_tsickle_Closure_declarations() {\n /** @type {?} */\n Console.prototype.log;\n /** @type {?} */\n Console.prototype.warn;\n}\n//# sourceMappingURL=util.js.map","/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this 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 { Version } from './util';\n/**\n * \\@stable\n */\nexport var /** @type {?} */ VERSION = new Version('5.2.0');\n//# sourceMappingURL=version.js.map","/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this 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 tslib_1 from \"tslib\";\n/**\n * An Abstract Syntax Tree node representing part of a parsed Angular template.\n * @record\n */\nexport function TemplateAst() { }\nfunction TemplateAst_tsickle_Closure_declarations() {\n /**\n * The source span from which this node was parsed.\n * @type {?}\n */\n TemplateAst.prototype.sourceSpan;\n /**\n * Visit this node and possibly transform it.\n * @type {?}\n */\n TemplateAst.prototype.visit;\n}\n/**\n * A segment of text within the template.\n */\nvar /**\n * A segment of text within the template.\n */\nTextAst = /** @class */ (function () {\n function TextAst(value, ngContentIndex, sourceSpan) {\n this.value = value;\n this.ngContentIndex = ngContentIndex;\n this.sourceSpan = sourceSpan;\n }\n /**\n * @param {?} visitor\n * @param {?} context\n * @return {?}\n */\n TextAst.prototype.visit = /**\n * @param {?} visitor\n * @param {?} context\n * @return {?}\n */\n function (visitor, context) { return visitor.visitText(this, context); };\n return TextAst;\n}());\n/**\n * A segment of text within the template.\n */\nexport { TextAst };\nfunction TextAst_tsickle_Closure_declarations() {\n /** @type {?} */\n TextAst.prototype.value;\n /** @type {?} */\n TextAst.prototype.ngContentIndex;\n /** @type {?} */\n TextAst.prototype.sourceSpan;\n}\n/**\n * A bound expression within the text of a template.\n */\nvar /**\n * A bound expression within the text of a template.\n */\nBoundTextAst = /** @class */ (function () {\n function BoundTextAst(value, ngContentIndex, sourceSpan) {\n this.value = value;\n this.ngContentIndex = ngContentIndex;\n this.sourceSpan = sourceSpan;\n }\n /**\n * @param {?} visitor\n * @param {?} context\n * @return {?}\n */\n BoundTextAst.prototype.visit = /**\n * @param {?} visitor\n * @param {?} context\n * @return {?}\n */\n function (visitor, context) {\n return visitor.visitBoundText(this, context);\n };\n return BoundTextAst;\n}());\n/**\n * A bound expression within the text of a template.\n */\nexport { BoundTextAst };\nfunction BoundTextAst_tsickle_Closure_declarations() {\n /** @type {?} */\n BoundTextAst.prototype.value;\n /** @type {?} */\n BoundTextAst.prototype.ngContentIndex;\n /** @type {?} */\n BoundTextAst.prototype.sourceSpan;\n}\n/**\n * A plain attribute on an element.\n */\nvar /**\n * A plain attribute on an element.\n */\nAttrAst = /** @class */ (function () {\n function AttrAst(name, value, sourceSpan) {\n this.name = name;\n this.value = value;\n this.sourceSpan = sourceSpan;\n }\n /**\n * @param {?} visitor\n * @param {?} context\n * @return {?}\n */\n AttrAst.prototype.visit = /**\n * @param {?} visitor\n * @param {?} context\n * @return {?}\n */\n function (visitor, context) { return visitor.visitAttr(this, context); };\n return AttrAst;\n}());\n/**\n * A plain attribute on an element.\n */\nexport { AttrAst };\nfunction AttrAst_tsickle_Closure_declarations() {\n /** @type {?} */\n AttrAst.prototype.name;\n /** @type {?} */\n AttrAst.prototype.value;\n /** @type {?} */\n AttrAst.prototype.sourceSpan;\n}\n/**\n * A binding for an element property (e.g. `[property]=\"expression\"`) or an animation trigger (e.g.\n * `[\\@trigger]=\"stateExp\"`)\n */\nvar /**\n * A binding for an element property (e.g. `[property]=\"expression\"`) or an animation trigger (e.g.\n * `[\\@trigger]=\"stateExp\"`)\n */\nBoundElementPropertyAst = /** @class */ (function () {\n function BoundElementPropertyAst(name, type, securityContext, value, unit, sourceSpan) {\n this.name = name;\n this.type = type;\n this.securityContext = securityContext;\n this.value = value;\n this.unit = unit;\n this.sourceSpan = sourceSpan;\n this.isAnimation = this.type === PropertyBindingType.Animation;\n }\n /**\n * @param {?} visitor\n * @param {?} context\n * @return {?}\n */\n BoundElementPropertyAst.prototype.visit = /**\n * @param {?} visitor\n * @param {?} context\n * @return {?}\n */\n function (visitor, context) {\n return visitor.visitElementProperty(this, context);\n };\n return BoundElementPropertyAst;\n}());\n/**\n * A binding for an element property (e.g. `[property]=\"expression\"`) or an animation trigger (e.g.\n * `[\\@trigger]=\"stateExp\"`)\n */\nexport { BoundElementPropertyAst };\nfunction BoundElementPropertyAst_tsickle_Closure_declarations() {\n /** @type {?} */\n BoundElementPropertyAst.prototype.isAnimation;\n /** @type {?} */\n BoundElementPropertyAst.prototype.name;\n /** @type {?} */\n BoundElementPropertyAst.prototype.type;\n /** @type {?} */\n BoundElementPropertyAst.prototype.securityContext;\n /** @type {?} */\n BoundElementPropertyAst.prototype.value;\n /** @type {?} */\n BoundElementPropertyAst.prototype.unit;\n /** @type {?} */\n BoundElementPropertyAst.prototype.sourceSpan;\n}\n/**\n * A binding for an element event (e.g. `(event)=\"handler()\"`) or an animation trigger event (e.g.\n * `(\\@trigger.phase)=\"callback($event)\"`).\n */\nvar /**\n * A binding for an element event (e.g. `(event)=\"handler()\"`) or an animation trigger event (e.g.\n * `(\\@trigger.phase)=\"callback($event)\"`).\n */\nBoundEventAst = /** @class */ (function () {\n function BoundEventAst(name, target, phase, handler, sourceSpan) {\n this.name = name;\n this.target = target;\n this.phase = phase;\n this.handler = handler;\n this.sourceSpan = sourceSpan;\n this.fullName = BoundEventAst.calcFullName(this.name, this.target, this.phase);\n this.isAnimation = !!this.phase;\n }\n /**\n * @param {?} name\n * @param {?} target\n * @param {?} phase\n * @return {?}\n */\n BoundEventAst.calcFullName = /**\n * @param {?} name\n * @param {?} target\n * @param {?} phase\n * @return {?}\n */\n function (name, target, phase) {\n if (target) {\n return target + \":\" + name;\n }\n else if (phase) {\n return \"@\" + name + \".\" + phase;\n }\n else {\n return name;\n }\n };\n /**\n * @param {?} visitor\n * @param {?} context\n * @return {?}\n */\n BoundEventAst.prototype.visit = /**\n * @param {?} visitor\n * @param {?} context\n * @return {?}\n */\n function (visitor, context) {\n return visitor.visitEvent(this, context);\n };\n return BoundEventAst;\n}());\n/**\n * A binding for an element event (e.g. `(event)=\"handler()\"`) or an animation trigger event (e.g.\n * `(\\@trigger.phase)=\"callback($event)\"`).\n */\nexport { BoundEventAst };\nfunction BoundEventAst_tsickle_Closure_declarations() {\n /** @type {?} */\n BoundEventAst.prototype.fullName;\n /** @type {?} */\n BoundEventAst.prototype.isAnimation;\n /** @type {?} */\n BoundEventAst.prototype.name;\n /** @type {?} */\n BoundEventAst.prototype.target;\n /** @type {?} */\n BoundEventAst.prototype.phase;\n /** @type {?} */\n BoundEventAst.prototype.handler;\n /** @type {?} */\n BoundEventAst.prototype.sourceSpan;\n}\n/**\n * A reference declaration on an element (e.g. `let someName=\"expression\"`).\n */\nvar /**\n * A reference declaration on an element (e.g. `let someName=\"expression\"`).\n */\nReferenceAst = /** @class */ (function () {\n function ReferenceAst(name, value, sourceSpan) {\n this.name = name;\n this.value = value;\n this.sourceSpan = sourceSpan;\n }\n /**\n * @param {?} visitor\n * @param {?} context\n * @return {?}\n */\n ReferenceAst.prototype.visit = /**\n * @param {?} visitor\n * @param {?} context\n * @return {?}\n */\n function (visitor, context) {\n return visitor.visitReference(this, context);\n };\n return ReferenceAst;\n}());\n/**\n * A reference declaration on an element (e.g. `let someName=\"expression\"`).\n */\nexport { ReferenceAst };\nfunction ReferenceAst_tsickle_Closure_declarations() {\n /** @type {?} */\n ReferenceAst.prototype.name;\n /** @type {?} */\n ReferenceAst.prototype.value;\n /** @type {?} */\n ReferenceAst.prototype.sourceSpan;\n}\n/**\n * A variable declaration on a <ng-template> (e.g. `var-someName=\"someLocalName\"`).\n */\nvar /**\n * A variable declaration on a <ng-template> (e.g. `var-someName=\"someLocalName\"`).\n */\nVariableAst = /** @class */ (function () {\n function VariableAst(name, value, sourceSpan) {\n this.name = name;\n this.value = value;\n this.sourceSpan = sourceSpan;\n }\n /**\n * @param {?} visitor\n * @param {?} context\n * @return {?}\n */\n VariableAst.prototype.visit = /**\n * @param {?} visitor\n * @param {?} context\n * @return {?}\n */\n function (visitor, context) {\n return visitor.visitVariable(this, context);\n };\n return VariableAst;\n}());\n/**\n * A variable declaration on a <ng-template> (e.g. `var-someName=\"someLocalName\"`).\n */\nexport { VariableAst };\nfunction VariableAst_tsickle_Closure_declarations() {\n /** @type {?} */\n VariableAst.prototype.name;\n /** @type {?} */\n VariableAst.prototype.value;\n /** @type {?} */\n VariableAst.prototype.sourceSpan;\n}\n/**\n * An element declaration in a template.\n */\nvar /**\n * An element declaration in a template.\n */\nElementAst = /** @class */ (function () {\n function ElementAst(name, attrs, inputs, outputs, references, directives, providers, hasViewContainer, queryMatches, children, ngContentIndex, sourceSpan, endSourceSpan) {\n this.name = name;\n this.attrs = attrs;\n this.inputs = inputs;\n this.outputs = outputs;\n this.references = references;\n this.directives = directives;\n this.providers = providers;\n this.hasViewContainer = hasViewContainer;\n this.queryMatches = queryMatches;\n this.children = children;\n this.ngContentIndex = ngContentIndex;\n this.sourceSpan = sourceSpan;\n this.endSourceSpan = endSourceSpan;\n }\n /**\n * @param {?} visitor\n * @param {?} context\n * @return {?}\n */\n ElementAst.prototype.visit = /**\n * @param {?} visitor\n * @param {?} context\n * @return {?}\n */\n function (visitor, context) {\n return visitor.visitElement(this, context);\n };\n return ElementAst;\n}());\n/**\n * An element declaration in a template.\n */\nexport { ElementAst };\nfunction ElementAst_tsickle_Closure_declarations() {\n /** @type {?} */\n ElementAst.prototype.name;\n /** @type {?} */\n ElementAst.prototype.attrs;\n /** @type {?} */\n ElementAst.prototype.inputs;\n /** @type {?} */\n ElementAst.prototype.outputs;\n /** @type {?} */\n ElementAst.prototype.references;\n /** @type {?} */\n ElementAst.prototype.directives;\n /** @type {?} */\n ElementAst.prototype.providers;\n /** @type {?} */\n ElementAst.prototype.hasViewContainer;\n /** @type {?} */\n ElementAst.prototype.queryMatches;\n /** @type {?} */\n ElementAst.prototype.children;\n /** @type {?} */\n ElementAst.prototype.ngContentIndex;\n /** @type {?} */\n ElementAst.prototype.sourceSpan;\n /** @type {?} */\n ElementAst.prototype.endSourceSpan;\n}\n/**\n * A `<ng-template>` element included in an Angular template.\n */\nvar /**\n * A `<ng-template>` element included in an Angular template.\n */\nEmbeddedTemplateAst = /** @class */ (function () {\n function EmbeddedTemplateAst(attrs, outputs, references, variables, directives, providers, hasViewContainer, queryMatches, children, ngContentIndex, sourceSpan) {\n this.attrs = attrs;\n this.outputs = outputs;\n this.references = references;\n this.variables = variables;\n this.directives = directives;\n this.providers = providers;\n this.hasViewContainer = hasViewContainer;\n this.queryMatches = queryMatches;\n this.children = children;\n this.ngContentIndex = ngContentIndex;\n this.sourceSpan = sourceSpan;\n }\n /**\n * @param {?} visitor\n * @param {?} context\n * @return {?}\n */\n EmbeddedTemplateAst.prototype.visit = /**\n * @param {?} visitor\n * @param {?} context\n * @return {?}\n */\n function (visitor, context) {\n return visitor.visitEmbeddedTemplate(this, context);\n };\n return EmbeddedTemplateAst;\n}());\n/**\n * A `<ng-template>` element included in an Angular template.\n */\nexport { EmbeddedTemplateAst };\nfunction EmbeddedTemplateAst_tsickle_Closure_declarations() {\n /** @type {?} */\n EmbeddedTemplateAst.prototype.attrs;\n /** @type {?} */\n EmbeddedTemplateAst.prototype.outputs;\n /** @type {?} */\n EmbeddedTemplateAst.prototype.references;\n /** @type {?} */\n EmbeddedTemplateAst.prototype.variables;\n /** @type {?} */\n EmbeddedTemplateAst.prototype.directives;\n /** @type {?} */\n EmbeddedTemplateAst.prototype.providers;\n /** @type {?} */\n EmbeddedTemplateAst.prototype.hasViewContainer;\n /** @type {?} */\n EmbeddedTemplateAst.prototype.queryMatches;\n /** @type {?} */\n EmbeddedTemplateAst.prototype.children;\n /** @type {?} */\n EmbeddedTemplateAst.prototype.ngContentIndex;\n /** @type {?} */\n EmbeddedTemplateAst.prototype.sourceSpan;\n}\n/**\n * A directive property with a bound value (e.g. `*ngIf=\"condition\").\n */\nvar /**\n * A directive property with a bound value (e.g. `*ngIf=\"condition\").\n */\nBoundDirectivePropertyAst = /** @class */ (function () {\n function BoundDirectivePropertyAst(directiveName, templateName, value, sourceSpan) {\n this.directiveName = directiveName;\n this.templateName = templateName;\n this.value = value;\n this.sourceSpan = sourceSpan;\n }\n /**\n * @param {?} visitor\n * @param {?} context\n * @return {?}\n */\n BoundDirectivePropertyAst.prototype.visit = /**\n * @param {?} visitor\n * @param {?} context\n * @return {?}\n */\n function (visitor, context) {\n return visitor.visitDirectiveProperty(this, context);\n };\n return BoundDirectivePropertyAst;\n}());\n/**\n * A directive property with a bound value (e.g. `*ngIf=\"condition\").\n */\nexport { BoundDirectivePropertyAst };\nfunction BoundDirectivePropertyAst_tsickle_Closure_declarations() {\n /** @type {?} */\n BoundDirectivePropertyAst.prototype.directiveName;\n /** @type {?} */\n BoundDirectivePropertyAst.prototype.templateName;\n /** @type {?} */\n BoundDirectivePropertyAst.prototype.value;\n /** @type {?} */\n BoundDirectivePropertyAst.prototype.sourceSpan;\n}\n/**\n * A directive declared on an element.\n */\nvar /**\n * A directive declared on an element.\n */\nDirectiveAst = /** @class */ (function () {\n function DirectiveAst(directive, inputs, hostProperties, hostEvents, contentQueryStartId, sourceSpan) {\n this.directive = directive;\n this.inputs = inputs;\n this.hostProperties = hostProperties;\n this.hostEvents = hostEvents;\n this.contentQueryStartId = contentQueryStartId;\n this.sourceSpan = sourceSpan;\n }\n /**\n * @param {?} visitor\n * @param {?} context\n * @return {?}\n */\n DirectiveAst.prototype.visit = /**\n * @param {?} visitor\n * @param {?} context\n * @return {?}\n */\n function (visitor, context) {\n return visitor.visitDirective(this, context);\n };\n return DirectiveAst;\n}());\n/**\n * A directive declared on an element.\n */\nexport { DirectiveAst };\nfunction DirectiveAst_tsickle_Closure_declarations() {\n /** @type {?} */\n DirectiveAst.prototype.directive;\n /** @type {?} */\n DirectiveAst.prototype.inputs;\n /** @type {?} */\n DirectiveAst.prototype.hostProperties;\n /** @type {?} */\n DirectiveAst.prototype.hostEvents;\n /** @type {?} */\n DirectiveAst.prototype.contentQueryStartId;\n /** @type {?} */\n DirectiveAst.prototype.sourceSpan;\n}\n/**\n * A provider declared on an element\n */\nvar /**\n * A provider declared on an element\n */\nProviderAst = /** @class */ (function () {\n function ProviderAst(token, multiProvider, eager, providers, providerType, lifecycleHooks, sourceSpan) {\n this.token = token;\n this.multiProvider = multiProvider;\n this.eager = eager;\n this.providers = providers;\n this.providerType = providerType;\n this.lifecycleHooks = lifecycleHooks;\n this.sourceSpan = sourceSpan;\n }\n /**\n * @param {?} visitor\n * @param {?} context\n * @return {?}\n */\n ProviderAst.prototype.visit = /**\n * @param {?} visitor\n * @param {?} context\n * @return {?}\n */\n function (visitor, context) {\n // No visit method in the visitor for now...\n return null;\n };\n return ProviderAst;\n}());\n/**\n * A provider declared on an element\n */\nexport { ProviderAst };\nfunction ProviderAst_tsickle_Closure_declarations() {\n /** @type {?} */\n ProviderAst.prototype.token;\n /** @type {?} */\n ProviderAst.prototype.multiProvider;\n /** @type {?} */\n ProviderAst.prototype.eager;\n /** @type {?} */\n ProviderAst.prototype.providers;\n /** @type {?} */\n ProviderAst.prototype.providerType;\n /** @type {?} */\n ProviderAst.prototype.lifecycleHooks;\n /** @type {?} */\n ProviderAst.prototype.sourceSpan;\n}\n/** @enum {number} */\nvar ProviderAstType = {\n PublicService: 0,\n PrivateService: 1,\n Component: 2,\n Directive: 3,\n Builtin: 4,\n};\nexport { ProviderAstType };\nProviderAstType[ProviderAstType.PublicService] = \"PublicService\";\nProviderAstType[ProviderAstType.PrivateService] = \"PrivateService\";\nProviderAstType[ProviderAstType.Component] = \"Component\";\nProviderAstType[ProviderAstType.Directive] = \"Directive\";\nProviderAstType[ProviderAstType.Builtin] = \"Builtin\";\n/**\n * Position where content is to be projected (instance of `<ng-content>` in a template).\n */\nvar /**\n * Position where content is to be projected (instance of `<ng-content>` in a template).\n */\nNgContentAst = /** @class */ (function () {\n function NgContentAst(index, ngContentIndex, sourceSpan) {\n this.index = index;\n this.ngContentIndex = ngContentIndex;\n this.sourceSpan = sourceSpan;\n }\n /**\n * @param {?} visitor\n * @param {?} context\n * @return {?}\n */\n NgContentAst.prototype.visit = /**\n * @param {?} visitor\n * @param {?} context\n * @return {?}\n */\n function (visitor, context) {\n return visitor.visitNgContent(this, context);\n };\n return NgContentAst;\n}());\n/**\n * Position where content is to be projected (instance of `<ng-content>` in a template).\n */\nexport { NgContentAst };\nfunction NgContentAst_tsickle_Closure_declarations() {\n /** @type {?} */\n NgContentAst.prototype.index;\n /** @type {?} */\n NgContentAst.prototype.ngContentIndex;\n /** @type {?} */\n NgContentAst.prototype.sourceSpan;\n}\n/** @enum {number} */\nvar PropertyBindingType = {\n /**\n * A normal binding to a property (e.g. `[property]=\"expression\"`).\n */\n Property: 0,\n /**\n * A binding to an element attribute (e.g. `[attr.name]=\"expression\"`).\n */\n Attribute: 1,\n /**\n * A binding to a CSS class (e.g. `[class.name]=\"condition\"`).\n */\n Class: 2,\n /**\n * A binding to a style rule (e.g. `[style.rule]=\"expression\"`).\n */\n Style: 3,\n /**\n * A binding to an animation reference (e.g. `[animate.key]=\"expression\"`).\n */\n Animation: 4,\n};\nexport { PropertyBindingType };\nPropertyBindingType[PropertyBindingType.Property] = \"Property\";\nPropertyBindingType[PropertyBindingType.Attribute] = \"Attribute\";\nPropertyBindingType[PropertyBindingType.Class] = \"Class\";\nPropertyBindingType[PropertyBindingType.Style] = \"Style\";\nPropertyBindingType[PropertyBindingType.Animation] = \"Animation\";\n/**\n * @record\n */\nexport function QueryMatch() { }\nfunction QueryMatch_tsickle_Closure_declarations() {\n /** @type {?} */\n QueryMatch.prototype.queryId;\n /** @type {?} */\n QueryMatch.prototype.value;\n}\n/**\n * A visitor for {\\@link TemplateAst} trees that will process each node.\n * @record\n */\nexport function TemplateAstVisitor() { }\nfunction TemplateAstVisitor_tsickle_Closure_declarations() {\n /** @type {?|undefined} */\n TemplateAstVisitor.prototype.visit;\n /** @type {?} */\n TemplateAstVisitor.prototype.visitNgContent;\n /** @type {?} */\n TemplateAstVisitor.prototype.visitEmbeddedTemplate;\n /** @type {?} */\n TemplateAstVisitor.prototype.visitElement;\n /** @type {?} */\n TemplateAstVisitor.prototype.visitReference;\n /** @type {?} */\n TemplateAstVisitor.prototype.visitVariable;\n /** @type {?} */\n TemplateAstVisitor.prototype.visitEvent;\n /** @type {?} */\n TemplateAstVisitor.prototype.visitElementProperty;\n /** @type {?} */\n TemplateAstVisitor.prototype.visitAttr;\n /** @type {?} */\n TemplateAstVisitor.prototype.visitBoundText;\n /** @type {?} */\n TemplateAstVisitor.prototype.visitText;\n /** @type {?} */\n TemplateAstVisitor.prototype.visitDirective;\n /** @type {?} */\n TemplateAstVisitor.prototype.visitDirectiveProperty;\n}\n/**\n * A visitor that accepts each node but doesn't do anything. It is intended to be used\n * as the base class for a visitor that is only interested in a subset of the node types.\n */\nvar /**\n * A visitor that accepts each node but doesn't do anything. It is intended to be used\n * as the base class for a visitor that is only interested in a subset of the node types.\n */\nNullTemplateVisitor = /** @class */ (function () {\n function NullTemplateVisitor() {\n }\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n NullTemplateVisitor.prototype.visitNgContent = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) { };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n NullTemplateVisitor.prototype.visitEmbeddedTemplate = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) { };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n NullTemplateVisitor.prototype.visitElement = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) { };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n NullTemplateVisitor.prototype.visitReference = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) { };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n NullTemplateVisitor.prototype.visitVariable = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) { };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n NullTemplateVisitor.prototype.visitEvent = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) { };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n NullTemplateVisitor.prototype.visitElementProperty = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) { };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n NullTemplateVisitor.prototype.visitAttr = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) { };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n NullTemplateVisitor.prototype.visitBoundText = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) { };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n NullTemplateVisitor.prototype.visitText = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) { };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n NullTemplateVisitor.prototype.visitDirective = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) { };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n NullTemplateVisitor.prototype.visitDirectiveProperty = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) { };\n return NullTemplateVisitor;\n}());\n/**\n * A visitor that accepts each node but doesn't do anything. It is intended to be used\n * as the base class for a visitor that is only interested in a subset of the node types.\n */\nexport { NullTemplateVisitor };\n/**\n * Base class that can be used to build a visitor that visits each node\n * in an template ast recursively.\n */\nvar /**\n * Base class that can be used to build a visitor that visits each node\n * in an template ast recursively.\n */\nRecursiveTemplateAstVisitor = /** @class */ (function (_super) {\n tslib_1.__extends(RecursiveTemplateAstVisitor, _super);\n function RecursiveTemplateAstVisitor() {\n return _super.call(this) || this;\n }\n // Nodes with children\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n RecursiveTemplateAstVisitor.prototype.visitEmbeddedTemplate = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) {\n return this.visitChildren(context, function (visit) {\n visit(ast.attrs);\n visit(ast.references);\n visit(ast.variables);\n visit(ast.directives);\n visit(ast.providers);\n visit(ast.children);\n });\n };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n RecursiveTemplateAstVisitor.prototype.visitElement = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) {\n return this.visitChildren(context, function (visit) {\n visit(ast.attrs);\n visit(ast.inputs);\n visit(ast.outputs);\n visit(ast.references);\n visit(ast.directives);\n visit(ast.providers);\n visit(ast.children);\n });\n };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n RecursiveTemplateAstVisitor.prototype.visitDirective = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) {\n return this.visitChildren(context, function (visit) {\n visit(ast.inputs);\n visit(ast.hostProperties);\n visit(ast.hostEvents);\n });\n };\n /**\n * @template T\n * @param {?} context\n * @param {?} cb\n * @return {?}\n */\n RecursiveTemplateAstVisitor.prototype.visitChildren = /**\n * @template T\n * @param {?} context\n * @param {?} cb\n * @return {?}\n */\n function (context, cb) {\n var /** @type {?} */ results = [];\n var /** @type {?} */ t = this;\n /**\n * @template T\n * @param {?} children\n * @return {?}\n */\n function visit(children) {\n if (children && children.length)\n results.push(templateVisitAll(t, children, context));\n }\n cb(visit);\n return [].concat.apply([], results);\n };\n return RecursiveTemplateAstVisitor;\n}(NullTemplateVisitor));\n/**\n * Base class that can be used to build a visitor that visits each node\n * in an template ast recursively.\n */\nexport { RecursiveTemplateAstVisitor };\n/**\n * Visit every node in a list of {\\@link TemplateAst}s with the given {\\@link TemplateAstVisitor}.\n * @param {?} visitor\n * @param {?} asts\n * @param {?=} context\n * @return {?}\n */\nexport function templateVisitAll(visitor, asts, context) {\n if (context === void 0) { context = null; }\n var /** @type {?} */ result = [];\n var /** @type {?} */ visit = visitor.visit ?\n function (ast) { return ((visitor.visit))(ast, context) || ast.visit(visitor, context); } :\n function (ast) { return ast.visit(visitor, context); };\n asts.forEach(function (ast) {\n var /** @type {?} */ astResult = visit(ast);\n if (astResult) {\n result.push(astResult);\n }\n });\n return result;\n}\n//# sourceMappingURL=template_ast.js.map","/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this 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 { ViewEncapsulation } from './core';\nimport { noUndefined } from './util';\nvar CompilerConfig = /** @class */ (function () {\n function CompilerConfig(_a) {\n var _b = _a === void 0 ? {} : _a, _c = _b.defaultEncapsulation, defaultEncapsulation = _c === void 0 ? ViewEncapsulation.Emulated : _c, _d = _b.useJit, useJit = _d === void 0 ? true : _d, _e = _b.jitDevMode, jitDevMode = _e === void 0 ? false : _e, _f = _b.missingTranslation, missingTranslation = _f === void 0 ? null : _f, enableLegacyTemplate = _b.enableLegacyTemplate, preserveWhitespaces = _b.preserveWhitespaces, strictInjectionParameters = _b.strictInjectionParameters;\n this.defaultEncapsulation = defaultEncapsulation;\n this.useJit = !!useJit;\n this.jitDevMode = !!jitDevMode;\n this.missingTranslation = missingTranslation;\n this.enableLegacyTemplate = enableLegacyTemplate === true;\n this.preserveWhitespaces = preserveWhitespacesDefault(noUndefined(preserveWhitespaces));\n this.strictInjectionParameters = strictInjectionParameters === true;\n }\n return CompilerConfig;\n}());\nexport { CompilerConfig };\nfunction CompilerConfig_tsickle_Closure_declarations() {\n /** @type {?} */\n CompilerConfig.prototype.defaultEncapsulation;\n /** @type {?} */\n CompilerConfig.prototype.enableLegacyTemplate;\n /** @type {?} */\n CompilerConfig.prototype.useJit;\n /** @type {?} */\n CompilerConfig.prototype.jitDevMode;\n /** @type {?} */\n CompilerConfig.prototype.missingTranslation;\n /** @type {?} */\n CompilerConfig.prototype.preserveWhitespaces;\n /** @type {?} */\n CompilerConfig.prototype.strictInjectionParameters;\n}\n/**\n * @param {?} preserveWhitespacesOption\n * @param {?=} defaultSetting\n * @return {?}\n */\nexport function preserveWhitespacesDefault(preserveWhitespacesOption, defaultSetting) {\n if (defaultSetting === void 0) { defaultSetting = true; }\n return preserveWhitespacesOption === null ? defaultSetting : preserveWhitespacesOption;\n}\n//# sourceMappingURL=config.js.map","/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * A token representing the a reference to a static type.\n *\n * This token is unique for a filePath and name and can be used as a hash table key.\n */\nvar /**\n * A token representing the a reference to a static type.\n *\n * This token is unique for a filePath and name and can be used as a hash table key.\n */\nStaticSymbol = /** @class */ (function () {\n function StaticSymbol(filePath, name, members) {\n this.filePath = filePath;\n this.name = name;\n this.members = members;\n }\n /**\n * @return {?}\n */\n StaticSymbol.prototype.assertNoMembers = /**\n * @return {?}\n */\n function () {\n if (this.members.length) {\n throw new Error(\"Illegal state: symbol without members expected, but got \" + JSON.stringify(this) + \".\");\n }\n };\n return StaticSymbol;\n}());\n/**\n * A token representing the a reference to a static type.\n *\n * This token is unique for a filePath and name and can be used as a hash table key.\n */\nexport { StaticSymbol };\nfunction StaticSymbol_tsickle_Closure_declarations() {\n /** @type {?} */\n StaticSymbol.prototype.filePath;\n /** @type {?} */\n StaticSymbol.prototype.name;\n /** @type {?} */\n StaticSymbol.prototype.members;\n}\n/**\n * A cache of static symbol used by the StaticReflector to return the same symbol for the\n * same symbol values.\n */\nvar /**\n * A cache of static symbol used by the StaticReflector to return the same symbol for the\n * same symbol values.\n */\nStaticSymbolCache = /** @class */ (function () {\n function StaticSymbolCache() {\n this.cache = new Map();\n }\n /**\n * @param {?} declarationFile\n * @param {?} name\n * @param {?=} members\n * @return {?}\n */\n StaticSymbolCache.prototype.get = /**\n * @param {?} declarationFile\n * @param {?} name\n * @param {?=} members\n * @return {?}\n */\n function (declarationFile, name, members) {\n members = members || [];\n var /** @type {?} */ memberSuffix = members.length ? \".\" + members.join('.') : '';\n var /** @type {?} */ key = \"\\\"\" + declarationFile + \"\\\".\" + name + memberSuffix;\n var /** @type {?} */ result = this.cache.get(key);\n if (!result) {\n result = new StaticSymbol(declarationFile, name, members);\n this.cache.set(key, result);\n }\n return result;\n };\n return StaticSymbolCache;\n}());\n/**\n * A cache of static symbol used by the StaticReflector to return the same symbol for the\n * same symbol values.\n */\nexport { StaticSymbolCache };\nfunction StaticSymbolCache_tsickle_Closure_declarations() {\n /** @type {?} */\n StaticSymbolCache.prototype.cache;\n}\n//# sourceMappingURL=static_symbol.js.map","/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this 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 { StaticSymbol } from './aot/static_symbol';\nimport { splitAtColon, stringify } from './util';\n// group 0: \"[prop] or (event) or @trigger\"\n// group 1: \"prop\" from \"[prop]\"\n// group 2: \"event\" from \"(event)\"\n// group 3: \"@trigger\" from \"@trigger\"\nvar /** @type {?} */ HOST_REG_EXP = /^(?:(?:\\[([^\\]]+)\\])|(?:\\(([^\\)]+)\\)))|(\\@[-\\w]+)$/;\n/**\n * @param {?} name\n * @return {?}\n */\nfunction _sanitizeIdentifier(name) {\n return name.replace(/\\W/g, '_');\n}\nvar /** @type {?} */ _anonymousTypeIndex = 0;\n/**\n * @param {?} compileIdentifier\n * @return {?}\n */\nexport function identifierName(compileIdentifier) {\n if (!compileIdentifier || !compileIdentifier.reference) {\n return null;\n }\n var /** @type {?} */ ref = compileIdentifier.reference;\n if (ref instanceof StaticSymbol) {\n return ref.name;\n }\n if (ref['__anonymousType']) {\n return ref['__anonymousType'];\n }\n var /** @type {?} */ identifier = stringify(ref);\n if (identifier.indexOf('(') >= 0) {\n // case: anonymous functions!\n identifier = \"anonymous_\" + _anonymousTypeIndex++;\n ref['__anonymousType'] = identifier;\n }\n else {\n identifier = _sanitizeIdentifier(identifier);\n }\n return identifier;\n}\n/**\n * @param {?} compileIdentifier\n * @return {?}\n */\nexport function identifierModuleUrl(compileIdentifier) {\n var /** @type {?} */ ref = compileIdentifier.reference;\n if (ref instanceof StaticSymbol) {\n return ref.filePath;\n }\n // Runtime type\n return \"./\" + stringify(ref);\n}\n/**\n * @param {?} compType\n * @param {?} embeddedTemplateIndex\n * @return {?}\n */\nexport function viewClassName(compType, embeddedTemplateIndex) {\n return \"View_\" + identifierName({ reference: compType }) + \"_\" + embeddedTemplateIndex;\n}\n/**\n * @param {?} compType\n * @return {?}\n */\nexport function rendererTypeName(compType) {\n return \"RenderType_\" + identifierName({ reference: compType });\n}\n/**\n * @param {?} compType\n * @return {?}\n */\nexport function hostViewClassName(compType) {\n return \"HostView_\" + identifierName({ reference: compType });\n}\n/**\n * @param {?} compType\n * @return {?}\n */\nexport function componentFactoryName(compType) {\n return identifierName({ reference: compType }) + \"NgFactory\";\n}\n/**\n * @record\n */\nexport function ProxyClass() { }\nfunction ProxyClass_tsickle_Closure_declarations() {\n /** @type {?} */\n ProxyClass.prototype.setDelegate;\n}\n/**\n * @record\n */\nexport function CompileIdentifierMetadata() { }\nfunction CompileIdentifierMetadata_tsickle_Closure_declarations() {\n /** @type {?} */\n CompileIdentifierMetadata.prototype.reference;\n}\n/** @enum {number} */\nvar CompileSummaryKind = {\n Pipe: 0,\n Directive: 1,\n NgModule: 2,\n Injectable: 3,\n};\nexport { CompileSummaryKind };\nCompileSummaryKind[CompileSummaryKind.Pipe] = \"Pipe\";\nCompileSummaryKind[CompileSummaryKind.Directive] = \"Directive\";\nCompileSummaryKind[CompileSummaryKind.NgModule] = \"NgModule\";\nCompileSummaryKind[CompileSummaryKind.Injectable] = \"Injectable\";\n/**\n * A CompileSummary is the data needed to use a directive / pipe / module\n * in other modules / components. However, this data is not enough to compile\n * the directive / module itself.\n * @record\n */\nexport function CompileTypeSummary() { }\nfunction CompileTypeSummary_tsickle_Closure_declarations() {\n /** @type {?} */\n CompileTypeSummary.prototype.summaryKind;\n /** @type {?} */\n CompileTypeSummary.prototype.type;\n}\n/**\n * @record\n */\nexport function CompileDiDependencyMetadata() { }\nfunction CompileDiDependencyMetadata_tsickle_Closure_declarations() {\n /** @type {?|undefined} */\n CompileDiDependencyMetadata.prototype.isAttribute;\n /** @type {?|undefined} */\n CompileDiDependencyMetadata.prototype.isSelf;\n /** @type {?|undefined} */\n CompileDiDependencyMetadata.prototype.isHost;\n /** @type {?|undefined} */\n CompileDiDependencyMetadata.prototype.isSkipSelf;\n /** @type {?|undefined} */\n CompileDiDependencyMetadata.prototype.isOptional;\n /** @type {?|undefined} */\n CompileDiDependencyMetadata.prototype.isValue;\n /** @type {?|undefined} */\n CompileDiDependencyMetadata.prototype.token;\n /** @type {?|undefined} */\n CompileDiDependencyMetadata.prototype.value;\n}\n/**\n * @record\n */\nexport function CompileProviderMetadata() { }\nfunction CompileProviderMetadata_tsickle_Closure_declarations() {\n /** @type {?} */\n CompileProviderMetadata.prototype.token;\n /** @type {?|undefined} */\n CompileProviderMetadata.prototype.useClass;\n /** @type {?|undefined} */\n CompileProviderMetadata.prototype.useValue;\n /** @type {?|undefined} */\n CompileProviderMetadata.prototype.useExisting;\n /** @type {?|undefined} */\n CompileProviderMetadata.prototype.useFactory;\n /** @type {?|undefined} */\n CompileProviderMetadata.prototype.deps;\n /** @type {?|undefined} */\n CompileProviderMetadata.prototype.multi;\n}\n/**\n * @record\n */\nexport function CompileFactoryMetadata() { }\nfunction CompileFactoryMetadata_tsickle_Closure_declarations() {\n /** @type {?} */\n CompileFactoryMetadata.prototype.diDeps;\n /** @type {?} */\n CompileFactoryMetadata.prototype.reference;\n}\n/**\n * @param {?} token\n * @return {?}\n */\nexport function tokenName(token) {\n return token.value != null ? _sanitizeIdentifier(token.value) : identifierName(token.identifier);\n}\n/**\n * @param {?} token\n * @return {?}\n */\nexport function tokenReference(token) {\n if (token.identifier != null) {\n return token.identifier.reference;\n }\n else {\n return token.value;\n }\n}\n/**\n * @record\n */\nexport function CompileTokenMetadata() { }\nfunction CompileTokenMetadata_tsickle_Closure_declarations() {\n /** @type {?|undefined} */\n CompileTokenMetadata.prototype.value;\n /** @type {?|undefined} */\n CompileTokenMetadata.prototype.identifier;\n}\n/**\n * Metadata regarding compilation of a type.\n * @record\n */\nexport function CompileTypeMetadata() { }\nfunction CompileTypeMetadata_tsickle_Closure_declarations() {\n /** @type {?} */\n CompileTypeMetadata.prototype.diDeps;\n /** @type {?} */\n CompileTypeMetadata.prototype.lifecycleHooks;\n /** @type {?} */\n CompileTypeMetadata.prototype.reference;\n}\n/**\n * @record\n */\nexport function CompileQueryMetadata() { }\nfunction CompileQueryMetadata_tsickle_Closure_declarations() {\n /** @type {?} */\n CompileQueryMetadata.prototype.selectors;\n /** @type {?} */\n CompileQueryMetadata.prototype.descendants;\n /** @type {?} */\n CompileQueryMetadata.prototype.first;\n /** @type {?} */\n CompileQueryMetadata.prototype.propertyName;\n /** @type {?} */\n CompileQueryMetadata.prototype.read;\n}\n/**\n * Metadata about a stylesheet\n */\nvar /**\n * Metadata about a stylesheet\n */\nCompileStylesheetMetadata = /** @class */ (function () {\n function CompileStylesheetMetadata(_a) {\n var _b = _a === void 0 ? {} : _a, moduleUrl = _b.moduleUrl, styles = _b.styles, styleUrls = _b.styleUrls;\n this.moduleUrl = moduleUrl || null;\n this.styles = _normalizeArray(styles);\n this.styleUrls = _normalizeArray(styleUrls);\n }\n return CompileStylesheetMetadata;\n}());\n/**\n * Metadata about a stylesheet\n */\nexport { CompileStylesheetMetadata };\nfunction CompileStylesheetMetadata_tsickle_Closure_declarations() {\n /** @type {?} */\n CompileStylesheetMetadata.prototype.moduleUrl;\n /** @type {?} */\n CompileStylesheetMetadata.prototype.styles;\n /** @type {?} */\n CompileStylesheetMetadata.prototype.styleUrls;\n}\n/**\n * Summary Metadata regarding compilation of a template.\n * @record\n */\nexport function CompileTemplateSummary() { }\nfunction CompileTemplateSummary_tsickle_Closure_declarations() {\n /** @type {?} */\n CompileTemplateSummary.prototype.ngContentSelectors;\n /** @type {?} */\n CompileTemplateSummary.prototype.encapsulation;\n}\n/**\n * Metadata regarding compilation of a template.\n */\nvar /**\n * Metadata regarding compilation of a template.\n */\nCompileTemplateMetadata = /** @class */ (function () {\n function CompileTemplateMetadata(_a) {\n var encapsulation = _a.encapsulation, template = _a.template, templateUrl = _a.templateUrl, htmlAst = _a.htmlAst, styles = _a.styles, styleUrls = _a.styleUrls, externalStylesheets = _a.externalStylesheets, animations = _a.animations, ngContentSelectors = _a.ngContentSelectors, interpolation = _a.interpolation, isInline = _a.isInline, preserveWhitespaces = _a.preserveWhitespaces;\n this.encapsulation = encapsulation;\n this.template = template;\n this.templateUrl = templateUrl;\n this.htmlAst = htmlAst;\n this.styles = _normalizeArray(styles);\n this.styleUrls = _normalizeArray(styleUrls);\n this.externalStylesheets = _normalizeArray(externalStylesheets);\n this.animations = animations ? flatten(animations) : [];\n this.ngContentSelectors = ngContentSelectors || [];\n if (interpolation && interpolation.length != 2) {\n throw new Error(\"'interpolation' should have a start and an end symbol.\");\n }\n this.interpolation = interpolation;\n this.isInline = isInline;\n this.preserveWhitespaces = preserveWhitespaces;\n }\n /**\n * @return {?}\n */\n CompileTemplateMetadata.prototype.toSummary = /**\n * @return {?}\n */\n function () {\n return {\n ngContentSelectors: this.ngContentSelectors,\n encapsulation: this.encapsulation,\n };\n };\n return CompileTemplateMetadata;\n}());\n/**\n * Metadata regarding compilation of a template.\n */\nexport { CompileTemplateMetadata };\nfunction CompileTemplateMetadata_tsickle_Closure_declarations() {\n /** @type {?} */\n CompileTemplateMetadata.prototype.encapsulation;\n /** @type {?} */\n CompileTemplateMetadata.prototype.template;\n /** @type {?} */\n CompileTemplateMetadata.prototype.templateUrl;\n /** @type {?} */\n CompileTemplateMetadata.prototype.htmlAst;\n /** @type {?} */\n CompileTemplateMetadata.prototype.isInline;\n /** @type {?} */\n CompileTemplateMetadata.prototype.styles;\n /** @type {?} */\n CompileTemplateMetadata.prototype.styleUrls;\n /** @type {?} */\n CompileTemplateMetadata.prototype.externalStylesheets;\n /** @type {?} */\n CompileTemplateMetadata.prototype.animations;\n /** @type {?} */\n CompileTemplateMetadata.prototype.ngContentSelectors;\n /** @type {?} */\n CompileTemplateMetadata.prototype.interpolation;\n /** @type {?} */\n CompileTemplateMetadata.prototype.preserveWhitespaces;\n}\n/**\n * @record\n */\nexport function CompileEntryComponentMetadata() { }\nfunction CompileEntryComponentMetadata_tsickle_Closure_declarations() {\n /** @type {?} */\n CompileEntryComponentMetadata.prototype.componentType;\n /** @type {?} */\n CompileEntryComponentMetadata.prototype.componentFactory;\n}\n/**\n * @record\n */\nexport function CompileDirectiveSummary() { }\nfunction CompileDirectiveSummary_tsickle_Closure_declarations() {\n /** @type {?} */\n CompileDirectiveSummary.prototype.type;\n /** @type {?} */\n CompileDirectiveSummary.prototype.isComponent;\n /** @type {?} */\n CompileDirectiveSummary.prototype.selector;\n /** @type {?} */\n CompileDirectiveSummary.prototype.exportAs;\n /** @type {?} */\n CompileDirectiveSummary.prototype.inputs;\n /** @type {?} */\n CompileDirectiveSummary.prototype.outputs;\n /** @type {?} */\n CompileDirectiveSummary.prototype.hostListeners;\n /** @type {?} */\n CompileDirectiveSummary.prototype.hostProperties;\n /** @type {?} */\n CompileDirectiveSummary.prototype.hostAttributes;\n /** @type {?} */\n CompileDirectiveSummary.prototype.providers;\n /** @type {?} */\n CompileDirectiveSummary.prototype.viewProviders;\n /** @type {?} */\n CompileDirectiveSummary.prototype.queries;\n /** @type {?} */\n CompileDirectiveSummary.prototype.guards;\n /** @type {?} */\n CompileDirectiveSummary.prototype.viewQueries;\n /** @type {?} */\n CompileDirectiveSummary.prototype.entryComponents;\n /** @type {?} */\n CompileDirectiveSummary.prototype.changeDetection;\n /** @type {?} */\n CompileDirectiveSummary.prototype.template;\n /** @type {?} */\n CompileDirectiveSummary.prototype.componentViewType;\n /** @type {?} */\n CompileDirectiveSummary.prototype.rendererType;\n /** @type {?} */\n CompileDirectiveSummary.prototype.componentFactory;\n}\n/**\n * Metadata regarding compilation of a directive.\n */\nvar /**\n * Metadata regarding compilation of a directive.\n */\nCompileDirectiveMetadata = /** @class */ (function () {\n function CompileDirectiveMetadata(_a) {\n var isHost = _a.isHost, type = _a.type, isComponent = _a.isComponent, selector = _a.selector, exportAs = _a.exportAs, changeDetection = _a.changeDetection, inputs = _a.inputs, outputs = _a.outputs, hostListeners = _a.hostListeners, hostProperties = _a.hostProperties, hostAttributes = _a.hostAttributes, providers = _a.providers, viewProviders = _a.viewProviders, queries = _a.queries, guards = _a.guards, viewQueries = _a.viewQueries, entryComponents = _a.entryComponents, template = _a.template, componentViewType = _a.componentViewType, rendererType = _a.rendererType, componentFactory = _a.componentFactory;\n this.isHost = !!isHost;\n this.type = type;\n this.isComponent = isComponent;\n this.selector = selector;\n this.exportAs = exportAs;\n this.changeDetection = changeDetection;\n this.inputs = inputs;\n this.outputs = outputs;\n this.hostListeners = hostListeners;\n this.hostProperties = hostProperties;\n this.hostAttributes = hostAttributes;\n this.providers = _normalizeArray(providers);\n this.viewProviders = _normalizeArray(viewProviders);\n this.queries = _normalizeArray(queries);\n this.guards = guards;\n this.viewQueries = _normalizeArray(viewQueries);\n this.entryComponents = _normalizeArray(entryComponents);\n this.template = template;\n this.componentViewType = componentViewType;\n this.rendererType = rendererType;\n this.componentFactory = componentFactory;\n }\n /**\n * @param {?} __0\n * @return {?}\n */\n CompileDirectiveMetadata.create = /**\n * @param {?} __0\n * @return {?}\n */\n function (_a) {\n var isHost = _a.isHost, type = _a.type, isComponent = _a.isComponent, selector = _a.selector, exportAs = _a.exportAs, changeDetection = _a.changeDetection, inputs = _a.inputs, outputs = _a.outputs, host = _a.host, providers = _a.providers, viewProviders = _a.viewProviders, queries = _a.queries, guards = _a.guards, viewQueries = _a.viewQueries, entryComponents = _a.entryComponents, template = _a.template, componentViewType = _a.componentViewType, rendererType = _a.rendererType, componentFactory = _a.componentFactory;\n var /** @type {?} */ hostListeners = {};\n var /** @type {?} */ hostProperties = {};\n var /** @type {?} */ hostAttributes = {};\n if (host != null) {\n Object.keys(host).forEach(function (key) {\n var /** @type {?} */ value = host[key];\n var /** @type {?} */ matches = key.match(HOST_REG_EXP);\n if (matches === null) {\n hostAttributes[key] = value;\n }\n else if (matches[1] != null) {\n hostProperties[matches[1]] = value;\n }\n else if (matches[2] != null) {\n hostListeners[matches[2]] = value;\n }\n });\n }\n var /** @type {?} */ inputsMap = {};\n if (inputs != null) {\n inputs.forEach(function (bindConfig) {\n // canonical syntax: `dirProp: elProp`\n // if there is no `:`, use dirProp = elProp\n var /** @type {?} */ parts = splitAtColon(bindConfig, [bindConfig, bindConfig]);\n inputsMap[parts[0]] = parts[1];\n });\n }\n var /** @type {?} */ outputsMap = {};\n if (outputs != null) {\n outputs.forEach(function (bindConfig) {\n // canonical syntax: `dirProp: elProp`\n // if there is no `:`, use dirProp = elProp\n var /** @type {?} */ parts = splitAtColon(bindConfig, [bindConfig, bindConfig]);\n outputsMap[parts[0]] = parts[1];\n });\n }\n return new CompileDirectiveMetadata({\n isHost: isHost,\n type: type,\n isComponent: !!isComponent, selector: selector, exportAs: exportAs, changeDetection: changeDetection,\n inputs: inputsMap,\n outputs: outputsMap,\n hostListeners: hostListeners,\n hostProperties: hostProperties,\n hostAttributes: hostAttributes,\n providers: providers,\n viewProviders: viewProviders,\n queries: queries,\n guards: guards,\n viewQueries: viewQueries,\n entryComponents: entryComponents,\n template: template,\n componentViewType: componentViewType,\n rendererType: rendererType,\n componentFactory: componentFactory,\n });\n };\n /**\n * @return {?}\n */\n CompileDirectiveMetadata.prototype.toSummary = /**\n * @return {?}\n */\n function () {\n return {\n summaryKind: CompileSummaryKind.Directive,\n type: this.type,\n isComponent: this.isComponent,\n selector: this.selector,\n exportAs: this.exportAs,\n inputs: this.inputs,\n outputs: this.outputs,\n hostListeners: this.hostListeners,\n hostProperties: this.hostProperties,\n hostAttributes: this.hostAttributes,\n providers: this.providers,\n viewProviders: this.viewProviders,\n queries: this.queries,\n guards: this.guards,\n viewQueries: this.viewQueries,\n entryComponents: this.entryComponents,\n changeDetection: this.changeDetection,\n template: this.template && this.template.toSummary(),\n componentViewType: this.componentViewType,\n rendererType: this.rendererType,\n componentFactory: this.componentFactory\n };\n };\n return CompileDirectiveMetadata;\n}());\n/**\n * Metadata regarding compilation of a directive.\n */\nexport { CompileDirectiveMetadata };\nfunction CompileDirectiveMetadata_tsickle_Closure_declarations() {\n /** @type {?} */\n CompileDirectiveMetadata.prototype.isHost;\n /** @type {?} */\n CompileDirectiveMetadata.prototype.type;\n /** @type {?} */\n CompileDirectiveMetadata.prototype.isComponent;\n /** @type {?} */\n CompileDirectiveMetadata.prototype.selector;\n /** @type {?} */\n CompileDirectiveMetadata.prototype.exportAs;\n /** @type {?} */\n CompileDirectiveMetadata.prototype.changeDetection;\n /** @type {?} */\n CompileDirectiveMetadata.prototype.inputs;\n /** @type {?} */\n CompileDirectiveMetadata.prototype.outputs;\n /** @type {?} */\n CompileDirectiveMetadata.prototype.hostListeners;\n /** @type {?} */\n CompileDirectiveMetadata.prototype.hostProperties;\n /** @type {?} */\n CompileDirectiveMetadata.prototype.hostAttributes;\n /** @type {?} */\n CompileDirectiveMetadata.prototype.providers;\n /** @type {?} */\n CompileDirectiveMetadata.prototype.viewProviders;\n /** @type {?} */\n CompileDirectiveMetadata.prototype.queries;\n /** @type {?} */\n CompileDirectiveMetadata.prototype.guards;\n /** @type {?} */\n CompileDirectiveMetadata.prototype.viewQueries;\n /** @type {?} */\n CompileDirectiveMetadata.prototype.entryComponents;\n /** @type {?} */\n CompileDirectiveMetadata.prototype.template;\n /** @type {?} */\n CompileDirectiveMetadata.prototype.componentViewType;\n /** @type {?} */\n CompileDirectiveMetadata.prototype.rendererType;\n /** @type {?} */\n CompileDirectiveMetadata.prototype.componentFactory;\n}\n/**\n * @record\n */\nexport function CompilePipeSummary() { }\nfunction CompilePipeSummary_tsickle_Closure_declarations() {\n /** @type {?} */\n CompilePipeSummary.prototype.type;\n /** @type {?} */\n CompilePipeSummary.prototype.name;\n /** @type {?} */\n CompilePipeSummary.prototype.pure;\n}\nvar CompilePipeMetadata = /** @class */ (function () {\n function CompilePipeMetadata(_a) {\n var type = _a.type, name = _a.name, pure = _a.pure;\n this.type = type;\n this.name = name;\n this.pure = !!pure;\n }\n /**\n * @return {?}\n */\n CompilePipeMetadata.prototype.toSummary = /**\n * @return {?}\n */\n function () {\n return {\n summaryKind: CompileSummaryKind.Pipe,\n type: this.type,\n name: this.name,\n pure: this.pure\n };\n };\n return CompilePipeMetadata;\n}());\nexport { CompilePipeMetadata };\nfunction CompilePipeMetadata_tsickle_Closure_declarations() {\n /** @type {?} */\n CompilePipeMetadata.prototype.type;\n /** @type {?} */\n CompilePipeMetadata.prototype.name;\n /** @type {?} */\n CompilePipeMetadata.prototype.pure;\n}\n/**\n * @record\n */\nexport function CompileNgModuleSummary() { }\nfunction CompileNgModuleSummary_tsickle_Closure_declarations() {\n /** @type {?} */\n CompileNgModuleSummary.prototype.type;\n /** @type {?} */\n CompileNgModuleSummary.prototype.exportedDirectives;\n /** @type {?} */\n CompileNgModuleSummary.prototype.exportedPipes;\n /** @type {?} */\n CompileNgModuleSummary.prototype.entryComponents;\n /** @type {?} */\n CompileNgModuleSummary.prototype.providers;\n /** @type {?} */\n CompileNgModuleSummary.prototype.modules;\n}\n/**\n * Metadata regarding compilation of a module.\n */\nvar /**\n * Metadata regarding compilation of a module.\n */\nCompileNgModuleMetadata = /** @class */ (function () {\n function CompileNgModuleMetadata(_a) {\n var type = _a.type, providers = _a.providers, declaredDirectives = _a.declaredDirectives, exportedDirectives = _a.exportedDirectives, declaredPipes = _a.declaredPipes, exportedPipes = _a.exportedPipes, entryComponents = _a.entryComponents, bootstrapComponents = _a.bootstrapComponents, importedModules = _a.importedModules, exportedModules = _a.exportedModules, schemas = _a.schemas, transitiveModule = _a.transitiveModule, id = _a.id;\n this.type = type || null;\n this.declaredDirectives = _normalizeArray(declaredDirectives);\n this.exportedDirectives = _normalizeArray(exportedDirectives);\n this.declaredPipes = _normalizeArray(declaredPipes);\n this.exportedPipes = _normalizeArray(exportedPipes);\n this.providers = _normalizeArray(providers);\n this.entryComponents = _normalizeArray(entryComponents);\n this.bootstrapComponents = _normalizeArray(bootstrapComponents);\n this.importedModules = _normalizeArray(importedModules);\n this.exportedModules = _normalizeArray(exportedModules);\n this.schemas = _normalizeArray(schemas);\n this.id = id || null;\n this.transitiveModule = transitiveModule || null;\n }\n /**\n * @return {?}\n */\n CompileNgModuleMetadata.prototype.toSummary = /**\n * @return {?}\n */\n function () {\n var /** @type {?} */ module = /** @type {?} */ ((this.transitiveModule));\n return {\n summaryKind: CompileSummaryKind.NgModule,\n type: this.type,\n entryComponents: module.entryComponents,\n providers: module.providers,\n modules: module.modules,\n exportedDirectives: module.exportedDirectives,\n exportedPipes: module.exportedPipes\n };\n };\n return CompileNgModuleMetadata;\n}());\n/**\n * Metadata regarding compilation of a module.\n */\nexport { CompileNgModuleMetadata };\nfunction CompileNgModuleMetadata_tsickle_Closure_declarations() {\n /** @type {?} */\n CompileNgModuleMetadata.prototype.type;\n /** @type {?} */\n CompileNgModuleMetadata.prototype.declaredDirectives;\n /** @type {?} */\n CompileNgModuleMetadata.prototype.exportedDirectives;\n /** @type {?} */\n CompileNgModuleMetadata.prototype.declaredPipes;\n /** @type {?} */\n CompileNgModuleMetadata.prototype.exportedPipes;\n /** @type {?} */\n CompileNgModuleMetadata.prototype.entryComponents;\n /** @type {?} */\n CompileNgModuleMetadata.prototype.bootstrapComponents;\n /** @type {?} */\n CompileNgModuleMetadata.prototype.providers;\n /** @type {?} */\n CompileNgModuleMetadata.prototype.importedModules;\n /** @type {?} */\n CompileNgModuleMetadata.prototype.exportedModules;\n /** @type {?} */\n CompileNgModuleMetadata.prototype.schemas;\n /** @type {?} */\n CompileNgModuleMetadata.prototype.id;\n /** @type {?} */\n CompileNgModuleMetadata.prototype.transitiveModule;\n}\nvar TransitiveCompileNgModuleMetadata = /** @class */ (function () {\n function TransitiveCompileNgModuleMetadata() {\n this.directivesSet = new Set();\n this.directives = [];\n this.exportedDirectivesSet = new Set();\n this.exportedDirectives = [];\n this.pipesSet = new Set();\n this.pipes = [];\n this.exportedPipesSet = new Set();\n this.exportedPipes = [];\n this.modulesSet = new Set();\n this.modules = [];\n this.entryComponentsSet = new Set();\n this.entryComponents = [];\n this.providers = [];\n }\n /**\n * @param {?} provider\n * @param {?} module\n * @return {?}\n */\n TransitiveCompileNgModuleMetadata.prototype.addProvider = /**\n * @param {?} provider\n * @param {?} module\n * @return {?}\n */\n function (provider, module) {\n this.providers.push({ provider: provider, module: module });\n };\n /**\n * @param {?} id\n * @return {?}\n */\n TransitiveCompileNgModuleMetadata.prototype.addDirective = /**\n * @param {?} id\n * @return {?}\n */\n function (id) {\n if (!this.directivesSet.has(id.reference)) {\n this.directivesSet.add(id.reference);\n this.directives.push(id);\n }\n };\n /**\n * @param {?} id\n * @return {?}\n */\n TransitiveCompileNgModuleMetadata.prototype.addExportedDirective = /**\n * @param {?} id\n * @return {?}\n */\n function (id) {\n if (!this.exportedDirectivesSet.has(id.reference)) {\n this.exportedDirectivesSet.add(id.reference);\n this.exportedDirectives.push(id);\n }\n };\n /**\n * @param {?} id\n * @return {?}\n */\n TransitiveCompileNgModuleMetadata.prototype.addPipe = /**\n * @param {?} id\n * @return {?}\n */\n function (id) {\n if (!this.pipesSet.has(id.reference)) {\n this.pipesSet.add(id.reference);\n this.pipes.push(id);\n }\n };\n /**\n * @param {?} id\n * @return {?}\n */\n TransitiveCompileNgModuleMetadata.prototype.addExportedPipe = /**\n * @param {?} id\n * @return {?}\n */\n function (id) {\n if (!this.exportedPipesSet.has(id.reference)) {\n this.exportedPipesSet.add(id.reference);\n this.exportedPipes.push(id);\n }\n };\n /**\n * @param {?} id\n * @return {?}\n */\n TransitiveCompileNgModuleMetadata.prototype.addModule = /**\n * @param {?} id\n * @return {?}\n */\n function (id) {\n if (!this.modulesSet.has(id.reference)) {\n this.modulesSet.add(id.reference);\n this.modules.push(id);\n }\n };\n /**\n * @param {?} ec\n * @return {?}\n */\n TransitiveCompileNgModuleMetadata.prototype.addEntryComponent = /**\n * @param {?} ec\n * @return {?}\n */\n function (ec) {\n if (!this.entryComponentsSet.has(ec.componentType)) {\n this.entryComponentsSet.add(ec.componentType);\n this.entryComponents.push(ec);\n }\n };\n return TransitiveCompileNgModuleMetadata;\n}());\nexport { TransitiveCompileNgModuleMetadata };\nfunction TransitiveCompileNgModuleMetadata_tsickle_Closure_declarations() {\n /** @type {?} */\n TransitiveCompileNgModuleMetadata.prototype.directivesSet;\n /** @type {?} */\n TransitiveCompileNgModuleMetadata.prototype.directives;\n /** @type {?} */\n TransitiveCompileNgModuleMetadata.prototype.exportedDirectivesSet;\n /** @type {?} */\n TransitiveCompileNgModuleMetadata.prototype.exportedDirectives;\n /** @type {?} */\n TransitiveCompileNgModuleMetadata.prototype.pipesSet;\n /** @type {?} */\n TransitiveCompileNgModuleMetadata.prototype.pipes;\n /** @type {?} */\n TransitiveCompileNgModuleMetadata.prototype.exportedPipesSet;\n /** @type {?} */\n TransitiveCompileNgModuleMetadata.prototype.exportedPipes;\n /** @type {?} */\n TransitiveCompileNgModuleMetadata.prototype.modulesSet;\n /** @type {?} */\n TransitiveCompileNgModuleMetadata.prototype.modules;\n /** @type {?} */\n TransitiveCompileNgModuleMetadata.prototype.entryComponentsSet;\n /** @type {?} */\n TransitiveCompileNgModuleMetadata.prototype.entryComponents;\n /** @type {?} */\n TransitiveCompileNgModuleMetadata.prototype.providers;\n}\n/**\n * @param {?} obj\n * @return {?}\n */\nfunction _normalizeArray(obj) {\n return obj || [];\n}\nvar ProviderMeta = /** @class */ (function () {\n function ProviderMeta(token, _a) {\n var useClass = _a.useClass, useValue = _a.useValue, useExisting = _a.useExisting, useFactory = _a.useFactory, deps = _a.deps, multi = _a.multi;\n this.token = token;\n this.useClass = useClass || null;\n this.useValue = useValue;\n this.useExisting = useExisting;\n this.useFactory = useFactory || null;\n this.dependencies = deps || null;\n this.multi = !!multi;\n }\n return ProviderMeta;\n}());\nexport { ProviderMeta };\nfunction ProviderMeta_tsickle_Closure_declarations() {\n /** @type {?} */\n ProviderMeta.prototype.token;\n /** @type {?} */\n ProviderMeta.prototype.useClass;\n /** @type {?} */\n ProviderMeta.prototype.useValue;\n /** @type {?} */\n ProviderMeta.prototype.useExisting;\n /** @type {?} */\n ProviderMeta.prototype.useFactory;\n /** @type {?} */\n ProviderMeta.prototype.dependencies;\n /** @type {?} */\n ProviderMeta.prototype.multi;\n}\n/**\n * @template T\n * @param {?} list\n * @return {?}\n */\nexport function flatten(list) {\n return list.reduce(function (flat, item) {\n var /** @type {?} */ flatItem = Array.isArray(item) ? flatten(item) : item;\n return (/** @type {?} */ (flat)).concat(flatItem);\n }, []);\n}\n/**\n * @param {?} url\n * @return {?}\n */\nfunction jitSourceUrl(url) {\n // Note: We need 3 \"/\" so that ng shows up as a separate domain\n // in the chrome dev tools.\n return url.replace(/(\\w+:\\/\\/[\\w:-]+)?(\\/+)?/, 'ng:///');\n}\n/**\n * @param {?} ngModuleType\n * @param {?} compMeta\n * @param {?} templateMeta\n * @return {?}\n */\nexport function templateSourceUrl(ngModuleType, compMeta, templateMeta) {\n var /** @type {?} */ url;\n if (templateMeta.isInline) {\n if (compMeta.type.reference instanceof StaticSymbol) {\n // Note: a .ts file might contain multiple components with inline templates,\n // so we need to give them unique urls, as these will be used for sourcemaps.\n url = compMeta.type.reference.filePath + \".\" + compMeta.type.reference.name + \".html\";\n }\n else {\n url = identifierName(ngModuleType) + \"/\" + identifierName(compMeta.type) + \".html\";\n }\n }\n else {\n url = /** @type {?} */ ((templateMeta.templateUrl));\n }\n return compMeta.type.reference instanceof StaticSymbol ? url : jitSourceUrl(url);\n}\n/**\n * @param {?} meta\n * @param {?} id\n * @return {?}\n */\nexport function sharedStylesheetJitUrl(meta, id) {\n var /** @type {?} */ pathParts = /** @type {?} */ ((meta.moduleUrl)).split(/\\/\\\\/g);\n var /** @type {?} */ baseName = pathParts[pathParts.length - 1];\n return jitSourceUrl(\"css/\" + id + baseName + \".ngstyle.js\");\n}\n/**\n * @param {?} moduleMeta\n * @return {?}\n */\nexport function ngModuleJitUrl(moduleMeta) {\n return jitSourceUrl(identifierName(moduleMeta.type) + \"/module.ngfactory.js\");\n}\n/**\n * @param {?} ngModuleType\n * @param {?} compMeta\n * @return {?}\n */\nexport function templateJitUrl(ngModuleType, compMeta) {\n return jitSourceUrl(identifierName(ngModuleType) + \"/\" + identifierName(compMeta.type) + \".ngfactory.js\");\n}\n//# sourceMappingURL=compile_metadata.js.map","/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * A path is an ordered set of elements. Typically a path is to a\n * particular offset in a source file. The head of the list is the top\n * most node. The tail is the node that contains the offset directly.\n *\n * For example, the expresion `a + b + c` might have an ast that looks\n * like:\n * +\n * / \\\n * a +\n * / \\\n * b c\n *\n * The path to the node at offset 9 would be `['+' at 1-10, '+' at 7-10,\n * 'c' at 9-10]` and the path the node at offset 1 would be\n * `['+' at 1-10, 'a' at 1-2]`.\n */\nvar /**\n * A path is an ordered set of elements. Typically a path is to a\n * particular offset in a source file. The head of the list is the top\n * most node. The tail is the node that contains the offset directly.\n *\n * For example, the expresion `a + b + c` might have an ast that looks\n * like:\n * +\n * / \\\n * a +\n * / \\\n * b c\n *\n * The path to the node at offset 9 would be `['+' at 1-10, '+' at 7-10,\n * 'c' at 9-10]` and the path the node at offset 1 would be\n * `['+' at 1-10, 'a' at 1-2]`.\n */\nAstPath = /** @class */ (function () {\n function AstPath(path, position) {\n if (position === void 0) { position = -1; }\n this.path = path;\n this.position = position;\n }\n Object.defineProperty(AstPath.prototype, \"empty\", {\n get: /**\n * @return {?}\n */\n function () { return !this.path || !this.path.length; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(AstPath.prototype, \"head\", {\n get: /**\n * @return {?}\n */\n function () { return this.path[0]; },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(AstPath.prototype, \"tail\", {\n get: /**\n * @return {?}\n */\n function () { return this.path[this.path.length - 1]; },\n enumerable: true,\n configurable: true\n });\n /**\n * @param {?} node\n * @return {?}\n */\n AstPath.prototype.parentOf = /**\n * @param {?} node\n * @return {?}\n */\n function (node) {\n return node && this.path[this.path.indexOf(node) - 1];\n };\n /**\n * @param {?} node\n * @return {?}\n */\n AstPath.prototype.childOf = /**\n * @param {?} node\n * @return {?}\n */\n function (node) { return this.path[this.path.indexOf(node) + 1]; };\n /**\n * @template N\n * @param {?} ctor\n * @return {?}\n */\n AstPath.prototype.first = /**\n * @template N\n * @param {?} ctor\n * @return {?}\n */\n function (ctor) {\n for (var /** @type {?} */ i = this.path.length - 1; i >= 0; i--) {\n var /** @type {?} */ item = this.path[i];\n if (item instanceof ctor)\n return /** @type {?} */ (item);\n }\n };\n /**\n * @param {?} node\n * @return {?}\n */\n AstPath.prototype.push = /**\n * @param {?} node\n * @return {?}\n */\n function (node) { this.path.push(node); };\n /**\n * @return {?}\n */\n AstPath.prototype.pop = /**\n * @return {?}\n */\n function () { return /** @type {?} */ ((this.path.pop())); };\n return AstPath;\n}());\n/**\n * A path is an ordered set of elements. Typically a path is to a\n * particular offset in a source file. The head of the list is the top\n * most node. The tail is the node that contains the offset directly.\n *\n * For example, the expresion `a + b + c` might have an ast that looks\n * like:\n * +\n * / \\\n * a +\n * / \\\n * b c\n *\n * The path to the node at offset 9 would be `['+' at 1-10, '+' at 7-10,\n * 'c' at 9-10]` and the path the node at offset 1 would be\n * `['+' at 1-10, 'a' at 1-2]`.\n */\nexport { AstPath };\nfunction AstPath_tsickle_Closure_declarations() {\n /** @type {?} */\n AstPath.prototype.path;\n /** @type {?} */\n AstPath.prototype.position;\n}\n//# sourceMappingURL=ast_path.js.map","/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this 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 tslib_1 from \"tslib\";\nimport { AstPath } from '../ast_path';\n/**\n * @record\n */\nexport function Node() { }\nfunction Node_tsickle_Closure_declarations() {\n /** @type {?} */\n Node.prototype.sourceSpan;\n /** @type {?} */\n Node.prototype.visit;\n}\nvar Text = /** @class */ (function () {\n function Text(value, sourceSpan) {\n this.value = value;\n this.sourceSpan = sourceSpan;\n }\n /**\n * @param {?} visitor\n * @param {?} context\n * @return {?}\n */\n Text.prototype.visit = /**\n * @param {?} visitor\n * @param {?} context\n * @return {?}\n */\n function (visitor, context) { return visitor.visitText(this, context); };\n return Text;\n}());\nexport { Text };\nfunction Text_tsickle_Closure_declarations() {\n /** @type {?} */\n Text.prototype.value;\n /** @type {?} */\n Text.prototype.sourceSpan;\n}\nvar Expansion = /** @class */ (function () {\n function Expansion(switchValue, type, cases, sourceSpan, switchValueSourceSpan) {\n this.switchValue = switchValue;\n this.type = type;\n this.cases = cases;\n this.sourceSpan = sourceSpan;\n this.switchValueSourceSpan = switchValueSourceSpan;\n }\n /**\n * @param {?} visitor\n * @param {?} context\n * @return {?}\n */\n Expansion.prototype.visit = /**\n * @param {?} visitor\n * @param {?} context\n * @return {?}\n */\n function (visitor, context) { return visitor.visitExpansion(this, context); };\n return Expansion;\n}());\nexport { Expansion };\nfunction Expansion_tsickle_Closure_declarations() {\n /** @type {?} */\n Expansion.prototype.switchValue;\n /** @type {?} */\n Expansion.prototype.type;\n /** @type {?} */\n Expansion.prototype.cases;\n /** @type {?} */\n Expansion.prototype.sourceSpan;\n /** @type {?} */\n Expansion.prototype.switchValueSourceSpan;\n}\nvar ExpansionCase = /** @class */ (function () {\n function ExpansionCase(value, expression, sourceSpan, valueSourceSpan, expSourceSpan) {\n this.value = value;\n this.expression = expression;\n this.sourceSpan = sourceSpan;\n this.valueSourceSpan = valueSourceSpan;\n this.expSourceSpan = expSourceSpan;\n }\n /**\n * @param {?} visitor\n * @param {?} context\n * @return {?}\n */\n ExpansionCase.prototype.visit = /**\n * @param {?} visitor\n * @param {?} context\n * @return {?}\n */\n function (visitor, context) { return visitor.visitExpansionCase(this, context); };\n return ExpansionCase;\n}());\nexport { ExpansionCase };\nfunction ExpansionCase_tsickle_Closure_declarations() {\n /** @type {?} */\n ExpansionCase.prototype.value;\n /** @type {?} */\n ExpansionCase.prototype.expression;\n /** @type {?} */\n ExpansionCase.prototype.sourceSpan;\n /** @type {?} */\n ExpansionCase.prototype.valueSourceSpan;\n /** @type {?} */\n ExpansionCase.prototype.expSourceSpan;\n}\nvar Attribute = /** @class */ (function () {\n function Attribute(name, value, sourceSpan, valueSpan) {\n this.name = name;\n this.value = value;\n this.sourceSpan = sourceSpan;\n this.valueSpan = valueSpan;\n }\n /**\n * @param {?} visitor\n * @param {?} context\n * @return {?}\n */\n Attribute.prototype.visit = /**\n * @param {?} visitor\n * @param {?} context\n * @return {?}\n */\n function (visitor, context) { return visitor.visitAttribute(this, context); };\n return Attribute;\n}());\nexport { Attribute };\nfunction Attribute_tsickle_Closure_declarations() {\n /** @type {?} */\n Attribute.prototype.name;\n /** @type {?} */\n Attribute.prototype.value;\n /** @type {?} */\n Attribute.prototype.sourceSpan;\n /** @type {?} */\n Attribute.prototype.valueSpan;\n}\nvar Element = /** @class */ (function () {\n function Element(name, attrs, children, sourceSpan, startSourceSpan, endSourceSpan) {\n if (startSourceSpan === void 0) { startSourceSpan = null; }\n if (endSourceSpan === void 0) { endSourceSpan = null; }\n this.name = name;\n this.attrs = attrs;\n this.children = children;\n this.sourceSpan = sourceSpan;\n this.startSourceSpan = startSourceSpan;\n this.endSourceSpan = endSourceSpan;\n }\n /**\n * @param {?} visitor\n * @param {?} context\n * @return {?}\n */\n Element.prototype.visit = /**\n * @param {?} visitor\n * @param {?} context\n * @return {?}\n */\n function (visitor, context) { return visitor.visitElement(this, context); };\n return Element;\n}());\nexport { Element };\nfunction Element_tsickle_Closure_declarations() {\n /** @type {?} */\n Element.prototype.name;\n /** @type {?} */\n Element.prototype.attrs;\n /** @type {?} */\n Element.prototype.children;\n /** @type {?} */\n Element.prototype.sourceSpan;\n /** @type {?} */\n Element.prototype.startSourceSpan;\n /** @type {?} */\n Element.prototype.endSourceSpan;\n}\nvar Comment = /** @class */ (function () {\n function Comment(value, sourceSpan) {\n this.value = value;\n this.sourceSpan = sourceSpan;\n }\n /**\n * @param {?} visitor\n * @param {?} context\n * @return {?}\n */\n Comment.prototype.visit = /**\n * @param {?} visitor\n * @param {?} context\n * @return {?}\n */\n function (visitor, context) { return visitor.visitComment(this, context); };\n return Comment;\n}());\nexport { Comment };\nfunction Comment_tsickle_Closure_declarations() {\n /** @type {?} */\n Comment.prototype.value;\n /** @type {?} */\n Comment.prototype.sourceSpan;\n}\n/**\n * @record\n */\nexport function Visitor() { }\nfunction Visitor_tsickle_Closure_declarations() {\n /** @type {?|undefined} */\n Visitor.prototype.visit;\n /** @type {?} */\n Visitor.prototype.visitElement;\n /** @type {?} */\n Visitor.prototype.visitAttribute;\n /** @type {?} */\n Visitor.prototype.visitText;\n /** @type {?} */\n Visitor.prototype.visitComment;\n /** @type {?} */\n Visitor.prototype.visitExpansion;\n /** @type {?} */\n Visitor.prototype.visitExpansionCase;\n}\n/**\n * @param {?} visitor\n * @param {?} nodes\n * @param {?=} context\n * @return {?}\n */\nexport function visitAll(visitor, nodes, context) {\n if (context === void 0) { context = null; }\n var /** @type {?} */ result = [];\n var /** @type {?} */ visit = visitor.visit ?\n function (ast) { return ((visitor.visit))(ast, context) || ast.visit(visitor, context); } :\n function (ast) { return ast.visit(visitor, context); };\n nodes.forEach(function (ast) {\n var /** @type {?} */ astResult = visit(ast);\n if (astResult) {\n result.push(astResult);\n }\n });\n return result;\n}\nvar RecursiveVisitor = /** @class */ (function () {\n function RecursiveVisitor() {\n }\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n RecursiveVisitor.prototype.visitElement = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) {\n this.visitChildren(context, function (visit) {\n visit(ast.attrs);\n visit(ast.children);\n });\n };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n RecursiveVisitor.prototype.visitAttribute = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) { };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n RecursiveVisitor.prototype.visitText = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) { };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n RecursiveVisitor.prototype.visitComment = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) { };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n RecursiveVisitor.prototype.visitExpansion = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) {\n return this.visitChildren(context, function (visit) { visit(ast.cases); });\n };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n RecursiveVisitor.prototype.visitExpansionCase = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) { };\n /**\n * @template T\n * @param {?} context\n * @param {?} cb\n * @return {?}\n */\n RecursiveVisitor.prototype.visitChildren = /**\n * @template T\n * @param {?} context\n * @param {?} cb\n * @return {?}\n */\n function (context, cb) {\n var /** @type {?} */ results = [];\n var /** @type {?} */ t = this;\n /**\n * @template T\n * @param {?} children\n * @return {?}\n */\n function visit(children) {\n if (children)\n results.push(visitAll(t, children, context));\n }\n cb(visit);\n return [].concat.apply([], results);\n };\n return RecursiveVisitor;\n}());\nexport { RecursiveVisitor };\n/**\n * @param {?} ast\n * @return {?}\n */\nfunction spanOf(ast) {\n var /** @type {?} */ start = ast.sourceSpan.start.offset;\n var /** @type {?} */ end = ast.sourceSpan.end.offset;\n if (ast instanceof Element) {\n if (ast.endSourceSpan) {\n end = ast.endSourceSpan.end.offset;\n }\n else if (ast.children && ast.children.length) {\n end = spanOf(ast.children[ast.children.length - 1]).end;\n }\n }\n return { start: start, end: end };\n}\n/**\n * @param {?} nodes\n * @param {?} position\n * @return {?}\n */\nexport function findNode(nodes, position) {\n var /** @type {?} */ path = [];\n var /** @type {?} */ visitor = new /** @class */ (function (_super) {\n tslib_1.__extends(class_1, _super);\n function class_1() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n class_1.prototype.visit = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) {\n var /** @type {?} */ span = spanOf(ast);\n if (span.start <= position && position < span.end) {\n path.push(ast);\n }\n else {\n // Returning a value here will result in the children being skipped.\n return true;\n }\n };\n return class_1;\n }(RecursiveVisitor));\n visitAll(visitor, nodes);\n return new AstPath(path, position);\n}\n//# sourceMappingURL=ast.js.map","/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source 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 * @param {?} identifier\n * @param {?} value\n * @return {?}\n */\nexport function assertArrayOfStrings(identifier, value) {\n if (value == null) {\n return;\n }\n if (!Array.isArray(value)) {\n throw new Error(\"Expected '\" + identifier + \"' to be an array of strings.\");\n }\n for (var /** @type {?} */ i = 0; i < value.length; i += 1) {\n if (typeof value[i] !== 'string') {\n throw new Error(\"Expected '\" + identifier + \"' to be an array of strings.\");\n }\n }\n}\nvar /** @type {?} */ INTERPOLATION_BLACKLIST_REGEXPS = [\n /^\\s*$/,\n /[<>]/,\n /^[{}]$/,\n /&(#|[a-z])/i,\n /^\\/\\//,\n];\n/**\n * @param {?} identifier\n * @param {?} value\n * @return {?}\n */\nexport function assertInterpolationSymbols(identifier, value) {\n if (value != null && !(Array.isArray(value) && value.length == 2)) {\n throw new Error(\"Expected '\" + identifier + \"' to be an array, [start, end].\");\n }\n else if (value != null) {\n var /** @type {?} */ start_1 = /** @type {?} */ (value[0]);\n var /** @type {?} */ end_1 = /** @type {?} */ (value[1]);\n // black list checking\n INTERPOLATION_BLACKLIST_REGEXPS.forEach(function (regexp) {\n if (regexp.test(start_1) || regexp.test(end_1)) {\n throw new Error(\"['\" + start_1 + \"', '\" + end_1 + \"'] contains unusable interpolation symbol.\");\n }\n });\n }\n}\n//# sourceMappingURL=assertions.js.map","/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this 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 { assertInterpolationSymbols } from '../assertions';\nvar InterpolationConfig = /** @class */ (function () {\n function InterpolationConfig(start, end) {\n this.start = start;\n this.end = end;\n }\n /**\n * @param {?} markers\n * @return {?}\n */\n InterpolationConfig.fromArray = /**\n * @param {?} markers\n * @return {?}\n */\n function (markers) {\n if (!markers) {\n return DEFAULT_INTERPOLATION_CONFIG;\n }\n assertInterpolationSymbols('interpolation', markers);\n return new InterpolationConfig(markers[0], markers[1]);\n };\n return InterpolationConfig;\n}());\nexport { InterpolationConfig };\nfunction InterpolationConfig_tsickle_Closure_declarations() {\n /** @type {?} */\n InterpolationConfig.prototype.start;\n /** @type {?} */\n InterpolationConfig.prototype.end;\n}\nexport var /** @type {?} */ DEFAULT_INTERPOLATION_CONFIG = new InterpolationConfig('{{', '}}');\n//# sourceMappingURL=interpolation_config.js.map","/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nvar StyleWithImports = /** @class */ (function () {\n function StyleWithImports(style, styleUrls) {\n this.style = style;\n this.styleUrls = styleUrls;\n }\n return StyleWithImports;\n}());\nexport { StyleWithImports };\nfunction StyleWithImports_tsickle_Closure_declarations() {\n /** @type {?} */\n StyleWithImports.prototype.style;\n /** @type {?} */\n StyleWithImports.prototype.styleUrls;\n}\n/**\n * @param {?} url\n * @return {?}\n */\nexport function isStyleUrlResolvable(url) {\n if (url == null || url.length === 0 || url[0] == '/')\n return false;\n var /** @type {?} */ schemeMatch = url.match(URL_WITH_SCHEMA_REGEXP);\n return schemeMatch === null || schemeMatch[1] == 'package' || schemeMatch[1] == 'asset';\n}\n/**\n * Rewrites stylesheets by resolving and removing the \\@import urls that\n * are either relative or don't have a `package:` scheme\n * @param {?} resolver\n * @param {?} baseUrl\n * @param {?} cssText\n * @return {?}\n */\nexport function extractStyleUrls(resolver, baseUrl, cssText) {\n var /** @type {?} */ foundUrls = [];\n var /** @type {?} */ modifiedCssText = cssText.replace(CSS_STRIPPABLE_COMMENT_REGEXP, '')\n .replace(CSS_IMPORT_REGEXP, function () {\n var m = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n m[_i] = arguments[_i];\n }\n var /** @type {?} */ url = m[1] || m[2];\n if (!isStyleUrlResolvable(url)) {\n // Do not attempt to resolve non-package absolute URLs with URI\n // scheme\n return m[0];\n }\n foundUrls.push(resolver.resolve(baseUrl, url));\n return '';\n });\n return new StyleWithImports(modifiedCssText, foundUrls);\n}\nvar /** @type {?} */ CSS_IMPORT_REGEXP = /@import\\s+(?:url\\()?\\s*(?:(?:['\"]([^'\"]*))|([^;\\)\\s]*))[^;]*;?/g;\nvar /** @type {?} */ CSS_STRIPPABLE_COMMENT_REGEXP = /\\/\\*(?!#\\s*(?:sourceURL|sourceMappingURL)=)[\\s\\S]+?\\*\\//g;\nvar /** @type {?} */ URL_WITH_SCHEMA_REGEXP = /^([^:/?#]+):/;\n//# sourceMappingURL=style_url_resolver.js.map","/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** @enum {number} */\nvar TagContentType = {\n RAW_TEXT: 0,\n ESCAPABLE_RAW_TEXT: 1,\n PARSABLE_DATA: 2,\n};\nexport { TagContentType };\nTagContentType[TagContentType.RAW_TEXT] = \"RAW_TEXT\";\nTagContentType[TagContentType.ESCAPABLE_RAW_TEXT] = \"ESCAPABLE_RAW_TEXT\";\nTagContentType[TagContentType.PARSABLE_DATA] = \"PARSABLE_DATA\";\n/**\n * @record\n */\nexport function TagDefinition() { }\nfunction TagDefinition_tsickle_Closure_declarations() {\n /** @type {?} */\n TagDefinition.prototype.closedByParent;\n /** @type {?} */\n TagDefinition.prototype.requiredParents;\n /** @type {?} */\n TagDefinition.prototype.parentToAdd;\n /** @type {?} */\n TagDefinition.prototype.implicitNamespacePrefix;\n /** @type {?} */\n TagDefinition.prototype.contentType;\n /** @type {?} */\n TagDefinition.prototype.isVoid;\n /** @type {?} */\n TagDefinition.prototype.ignoreFirstLf;\n /** @type {?} */\n TagDefinition.prototype.canSelfClose;\n /** @type {?} */\n TagDefinition.prototype.requireExtraParent;\n /** @type {?} */\n TagDefinition.prototype.isClosedByChild;\n}\n/**\n * @param {?} elementName\n * @return {?}\n */\nexport function splitNsName(elementName) {\n if (elementName[0] != ':') {\n return [null, elementName];\n }\n var /** @type {?} */ colonIndex = elementName.indexOf(':', 1);\n if (colonIndex == -1) {\n throw new Error(\"Unsupported format \\\"\" + elementName + \"\\\" expecting \\\":namespace:name\\\"\");\n }\n return [elementName.slice(1, colonIndex), elementName.slice(colonIndex + 1)];\n}\n/**\n * @param {?} tagName\n * @return {?}\n */\nexport function isNgContainer(tagName) {\n return splitNsName(tagName)[1] === 'ng-container';\n}\n/**\n * @param {?} tagName\n * @return {?}\n */\nexport function isNgContent(tagName) {\n return splitNsName(tagName)[1] === 'ng-content';\n}\n/**\n * @param {?} tagName\n * @return {?}\n */\nexport function isNgTemplate(tagName) {\n return splitNsName(tagName)[1] === 'ng-template';\n}\n/**\n * @param {?} fullName\n * @return {?}\n */\nexport function getNsPrefix(fullName) {\n return fullName === null ? null : splitNsName(fullName)[0];\n}\n/**\n * @param {?} prefix\n * @param {?} localName\n * @return {?}\n */\nexport function mergeNsAndName(prefix, localName) {\n return prefix ? \":\" + prefix + \":\" + localName : localName;\n}\n// see http://www.w3.org/TR/html51/syntax.html#named-character-references\n// see https://html.spec.whatwg.org/multipage/entities.json\n// This list is not exhaustive to keep the compiler footprint low.\n// The `&#123;` / `&#x1ab;` syntax should be used when the named character reference does not\n// exist.\nexport var /** @type {?} */ NAMED_ENTITIES = {\n 'Aacute': '\\u00C1',\n 'aacute': '\\u00E1',\n 'Acirc': '\\u00C2',\n 'acirc': '\\u00E2',\n 'acute': '\\u00B4',\n 'AElig': '\\u00C6',\n 'aelig': '\\u00E6',\n 'Agrave': '\\u00C0',\n 'agrave': '\\u00E0',\n 'alefsym': '\\u2135',\n 'Alpha': '\\u0391',\n 'alpha': '\\u03B1',\n 'amp': '&',\n 'and': '\\u2227',\n 'ang': '\\u2220',\n 'apos': '\\u0027',\n 'Aring': '\\u00C5',\n 'aring': '\\u00E5',\n 'asymp': '\\u2248',\n 'Atilde': '\\u00C3',\n 'atilde': '\\u00E3',\n 'Auml': '\\u00C4',\n 'auml': '\\u00E4',\n 'bdquo': '\\u201E',\n 'Beta': '\\u0392',\n 'beta': '\\u03B2',\n 'brvbar': '\\u00A6',\n 'bull': '\\u2022',\n 'cap': '\\u2229',\n 'Ccedil': '\\u00C7',\n 'ccedil': '\\u00E7',\n 'cedil': '\\u00B8',\n 'cent': '\\u00A2',\n 'Chi': '\\u03A7',\n 'chi': '\\u03C7',\n 'circ': '\\u02C6',\n 'clubs': '\\u2663',\n 'cong': '\\u2245',\n 'copy': '\\u00A9',\n 'crarr': '\\u21B5',\n 'cup': '\\u222A',\n 'curren': '\\u00A4',\n 'dagger': '\\u2020',\n 'Dagger': '\\u2021',\n 'darr': '\\u2193',\n 'dArr': '\\u21D3',\n 'deg': '\\u00B0',\n 'Delta': '\\u0394',\n 'delta': '\\u03B4',\n 'diams': '\\u2666',\n 'divide': '\\u00F7',\n 'Eacute': '\\u00C9',\n 'eacute': '\\u00E9',\n 'Ecirc': '\\u00CA',\n 'ecirc': '\\u00EA',\n 'Egrave': '\\u00C8',\n 'egrave': '\\u00E8',\n 'empty': '\\u2205',\n 'emsp': '\\u2003',\n 'ensp': '\\u2002',\n 'Epsilon': '\\u0395',\n 'epsilon': '\\u03B5',\n 'equiv': '\\u2261',\n 'Eta': '\\u0397',\n 'eta': '\\u03B7',\n 'ETH': '\\u00D0',\n 'eth': '\\u00F0',\n 'Euml': '\\u00CB',\n 'euml': '\\u00EB',\n 'euro': '\\u20AC',\n 'exist': '\\u2203',\n 'fnof': '\\u0192',\n 'forall': '\\u2200',\n 'frac12': '\\u00BD',\n 'frac14': '\\u00BC',\n 'frac34': '\\u00BE',\n 'frasl': '\\u2044',\n 'Gamma': '\\u0393',\n 'gamma': '\\u03B3',\n 'ge': '\\u2265',\n 'gt': '>',\n 'harr': '\\u2194',\n 'hArr': '\\u21D4',\n 'hearts': '\\u2665',\n 'hellip': '\\u2026',\n 'Iacute': '\\u00CD',\n 'iacute': '\\u00ED',\n 'Icirc': '\\u00CE',\n 'icirc': '\\u00EE',\n 'iexcl': '\\u00A1',\n 'Igrave': '\\u00CC',\n 'igrave': '\\u00EC',\n 'image': '\\u2111',\n 'infin': '\\u221E',\n 'int': '\\u222B',\n 'Iota': '\\u0399',\n 'iota': '\\u03B9',\n 'iquest': '\\u00BF',\n 'isin': '\\u2208',\n 'Iuml': '\\u00CF',\n 'iuml': '\\u00EF',\n 'Kappa': '\\u039A',\n 'kappa': '\\u03BA',\n 'Lambda': '\\u039B',\n 'lambda': '\\u03BB',\n 'lang': '\\u27E8',\n 'laquo': '\\u00AB',\n 'larr': '\\u2190',\n 'lArr': '\\u21D0',\n 'lceil': '\\u2308',\n 'ldquo': '\\u201C',\n 'le': '\\u2264',\n 'lfloor': '\\u230A',\n 'lowast': '\\u2217',\n 'loz': '\\u25CA',\n 'lrm': '\\u200E',\n 'lsaquo': '\\u2039',\n 'lsquo': '\\u2018',\n 'lt': '<',\n 'macr': '\\u00AF',\n 'mdash': '\\u2014',\n 'micro': '\\u00B5',\n 'middot': '\\u00B7',\n 'minus': '\\u2212',\n 'Mu': '\\u039C',\n 'mu': '\\u03BC',\n 'nabla': '\\u2207',\n 'nbsp': '\\u00A0',\n 'ndash': '\\u2013',\n 'ne': '\\u2260',\n 'ni': '\\u220B',\n 'not': '\\u00AC',\n 'notin': '\\u2209',\n 'nsub': '\\u2284',\n 'Ntilde': '\\u00D1',\n 'ntilde': '\\u00F1',\n 'Nu': '\\u039D',\n 'nu': '\\u03BD',\n 'Oacute': '\\u00D3',\n 'oacute': '\\u00F3',\n 'Ocirc': '\\u00D4',\n 'ocirc': '\\u00F4',\n 'OElig': '\\u0152',\n 'oelig': '\\u0153',\n 'Ograve': '\\u00D2',\n 'ograve': '\\u00F2',\n 'oline': '\\u203E',\n 'Omega': '\\u03A9',\n 'omega': '\\u03C9',\n 'Omicron': '\\u039F',\n 'omicron': '\\u03BF',\n 'oplus': '\\u2295',\n 'or': '\\u2228',\n 'ordf': '\\u00AA',\n 'ordm': '\\u00BA',\n 'Oslash': '\\u00D8',\n 'oslash': '\\u00F8',\n 'Otilde': '\\u00D5',\n 'otilde': '\\u00F5',\n 'otimes': '\\u2297',\n 'Ouml': '\\u00D6',\n 'ouml': '\\u00F6',\n 'para': '\\u00B6',\n 'permil': '\\u2030',\n 'perp': '\\u22A5',\n 'Phi': '\\u03A6',\n 'phi': '\\u03C6',\n 'Pi': '\\u03A0',\n 'pi': '\\u03C0',\n 'piv': '\\u03D6',\n 'plusmn': '\\u00B1',\n 'pound': '\\u00A3',\n 'prime': '\\u2032',\n 'Prime': '\\u2033',\n 'prod': '\\u220F',\n 'prop': '\\u221D',\n 'Psi': '\\u03A8',\n 'psi': '\\u03C8',\n 'quot': '\\u0022',\n 'radic': '\\u221A',\n 'rang': '\\u27E9',\n 'raquo': '\\u00BB',\n 'rarr': '\\u2192',\n 'rArr': '\\u21D2',\n 'rceil': '\\u2309',\n 'rdquo': '\\u201D',\n 'real': '\\u211C',\n 'reg': '\\u00AE',\n 'rfloor': '\\u230B',\n 'Rho': '\\u03A1',\n 'rho': '\\u03C1',\n 'rlm': '\\u200F',\n 'rsaquo': '\\u203A',\n 'rsquo': '\\u2019',\n 'sbquo': '\\u201A',\n 'Scaron': '\\u0160',\n 'scaron': '\\u0161',\n 'sdot': '\\u22C5',\n 'sect': '\\u00A7',\n 'shy': '\\u00AD',\n 'Sigma': '\\u03A3',\n 'sigma': '\\u03C3',\n 'sigmaf': '\\u03C2',\n 'sim': '\\u223C',\n 'spades': '\\u2660',\n 'sub': '\\u2282',\n 'sube': '\\u2286',\n 'sum': '\\u2211',\n 'sup': '\\u2283',\n 'sup1': '\\u00B9',\n 'sup2': '\\u00B2',\n 'sup3': '\\u00B3',\n 'supe': '\\u2287',\n 'szlig': '\\u00DF',\n 'Tau': '\\u03A4',\n 'tau': '\\u03C4',\n 'there4': '\\u2234',\n 'Theta': '\\u0398',\n 'theta': '\\u03B8',\n 'thetasym': '\\u03D1',\n 'thinsp': '\\u2009',\n 'THORN': '\\u00DE',\n 'thorn': '\\u00FE',\n 'tilde': '\\u02DC',\n 'times': '\\u00D7',\n 'trade': '\\u2122',\n 'Uacute': '\\u00DA',\n 'uacute': '\\u00FA',\n 'uarr': '\\u2191',\n 'uArr': '\\u21D1',\n 'Ucirc': '\\u00DB',\n 'ucirc': '\\u00FB',\n 'Ugrave': '\\u00D9',\n 'ugrave': '\\u00F9',\n 'uml': '\\u00A8',\n 'upsih': '\\u03D2',\n 'Upsilon': '\\u03A5',\n 'upsilon': '\\u03C5',\n 'Uuml': '\\u00DC',\n 'uuml': '\\u00FC',\n 'weierp': '\\u2118',\n 'Xi': '\\u039E',\n 'xi': '\\u03BE',\n 'Yacute': '\\u00DD',\n 'yacute': '\\u00FD',\n 'yen': '\\u00A5',\n 'yuml': '\\u00FF',\n 'Yuml': '\\u0178',\n 'Zeta': '\\u0396',\n 'zeta': '\\u03B6',\n 'zwj': '\\u200D',\n 'zwnj': '\\u200C',\n};\n// The &ngsp; pseudo-entity is denoting a space. see:\n// https://github.com/dart-lang/angular/blob/0bb611387d29d65b5af7f9d2515ab571fd3fbee4/_tests/test/compiler/preserve_whitespace_test.dart\nexport var /** @type {?} */ NGSP_UNICODE = '\\uE500';\nNAMED_ENTITIES['ngsp'] = NGSP_UNICODE;\n//# sourceMappingURL=tags.js.map","/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this 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 { isNgContent } from '../ml_parser/tags';\nvar /** @type {?} */ NG_CONTENT_SELECT_ATTR = 'select';\nvar /** @type {?} */ LINK_ELEMENT = 'link';\nvar /** @type {?} */ LINK_STYLE_REL_ATTR = 'rel';\nvar /** @type {?} */ LINK_STYLE_HREF_ATTR = 'href';\nvar /** @type {?} */ LINK_STYLE_REL_VALUE = 'stylesheet';\nvar /** @type {?} */ STYLE_ELEMENT = 'style';\nvar /** @type {?} */ SCRIPT_ELEMENT = 'script';\nvar /** @type {?} */ NG_NON_BINDABLE_ATTR = 'ngNonBindable';\nvar /** @type {?} */ NG_PROJECT_AS = 'ngProjectAs';\n/**\n * @param {?} ast\n * @return {?}\n */\nexport function preparseElement(ast) {\n var /** @type {?} */ selectAttr = /** @type {?} */ ((null));\n var /** @type {?} */ hrefAttr = /** @type {?} */ ((null));\n var /** @type {?} */ relAttr = /** @type {?} */ ((null));\n var /** @type {?} */ nonBindable = false;\n var /** @type {?} */ projectAs = /** @type {?} */ ((null));\n ast.attrs.forEach(function (attr) {\n var /** @type {?} */ lcAttrName = attr.name.toLowerCase();\n if (lcAttrName == NG_CONTENT_SELECT_ATTR) {\n selectAttr = attr.value;\n }\n else if (lcAttrName == LINK_STYLE_HREF_ATTR) {\n hrefAttr = attr.value;\n }\n else if (lcAttrName == LINK_STYLE_REL_ATTR) {\n relAttr = attr.value;\n }\n else if (attr.name == NG_NON_BINDABLE_ATTR) {\n nonBindable = true;\n }\n else if (attr.name == NG_PROJECT_AS) {\n if (attr.value.length > 0) {\n projectAs = attr.value;\n }\n }\n });\n selectAttr = normalizeNgContentSelect(selectAttr);\n var /** @type {?} */ nodeName = ast.name.toLowerCase();\n var /** @type {?} */ type = PreparsedElementType.OTHER;\n if (isNgContent(nodeName)) {\n type = PreparsedElementType.NG_CONTENT;\n }\n else if (nodeName == STYLE_ELEMENT) {\n type = PreparsedElementType.STYLE;\n }\n else if (nodeName == SCRIPT_ELEMENT) {\n type = PreparsedElementType.SCRIPT;\n }\n else if (nodeName == LINK_ELEMENT && relAttr == LINK_STYLE_REL_VALUE) {\n type = PreparsedElementType.STYLESHEET;\n }\n return new PreparsedElement(type, selectAttr, hrefAttr, nonBindable, projectAs);\n}\n/** @enum {number} */\nvar PreparsedElementType = {\n NG_CONTENT: 0,\n STYLE: 1,\n STYLESHEET: 2,\n SCRIPT: 3,\n OTHER: 4,\n};\nexport { PreparsedElementType };\nPreparsedElementType[PreparsedElementType.NG_CONTENT] = \"NG_CONTENT\";\nPreparsedElementType[PreparsedElementType.STYLE] = \"STYLE\";\nPreparsedElementType[PreparsedElementType.STYLESHEET] = \"STYLESHEET\";\nPreparsedElementType[PreparsedElementType.SCRIPT] = \"SCRIPT\";\nPreparsedElementType[PreparsedElementType.OTHER] = \"OTHER\";\nvar PreparsedElement = /** @class */ (function () {\n function PreparsedElement(type, selectAttr, hrefAttr, nonBindable, projectAs) {\n this.type = type;\n this.selectAttr = selectAttr;\n this.hrefAttr = hrefAttr;\n this.nonBindable = nonBindable;\n this.projectAs = projectAs;\n }\n return PreparsedElement;\n}());\nexport { PreparsedElement };\nfunction PreparsedElement_tsickle_Closure_declarations() {\n /** @type {?} */\n PreparsedElement.prototype.type;\n /** @type {?} */\n PreparsedElement.prototype.selectAttr;\n /** @type {?} */\n PreparsedElement.prototype.hrefAttr;\n /** @type {?} */\n PreparsedElement.prototype.nonBindable;\n /** @type {?} */\n PreparsedElement.prototype.projectAs;\n}\n/**\n * @param {?} selectAttr\n * @return {?}\n */\nfunction normalizeNgContentSelect(selectAttr) {\n if (selectAttr === null || selectAttr.length === 0) {\n return '*';\n }\n return selectAttr;\n}\n//# sourceMappingURL=template_preparser.js.map","/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this 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 { CompileStylesheetMetadata, CompileTemplateMetadata, templateSourceUrl } from './compile_metadata';\nimport { preserveWhitespacesDefault } from './config';\nimport { ViewEncapsulation } from './core';\nimport * as html from './ml_parser/ast';\nimport { InterpolationConfig } from './ml_parser/interpolation_config';\nimport { extractStyleUrls, isStyleUrlResolvable } from './style_url_resolver';\nimport { PreparsedElementType, preparseElement } from './template_parser/template_preparser';\nimport { SyncAsync, isDefined, stringify, syntaxError } from './util';\n/**\n * @record\n */\nexport function PrenormalizedTemplateMetadata() { }\nfunction PrenormalizedTemplateMetadata_tsickle_Closure_declarations() {\n /** @type {?} */\n PrenormalizedTemplateMetadata.prototype.ngModuleType;\n /** @type {?} */\n PrenormalizedTemplateMetadata.prototype.componentType;\n /** @type {?} */\n PrenormalizedTemplateMetadata.prototype.moduleUrl;\n /** @type {?} */\n PrenormalizedTemplateMetadata.prototype.template;\n /** @type {?} */\n PrenormalizedTemplateMetadata.prototype.templateUrl;\n /** @type {?} */\n PrenormalizedTemplateMetadata.prototype.styles;\n /** @type {?} */\n PrenormalizedTemplateMetadata.prototype.styleUrls;\n /** @type {?} */\n PrenormalizedTemplateMetadata.prototype.interpolation;\n /** @type {?} */\n PrenormalizedTemplateMetadata.prototype.encapsulation;\n /** @type {?} */\n PrenormalizedTemplateMetadata.prototype.animations;\n /** @type {?} */\n PrenormalizedTemplateMetadata.prototype.preserveWhitespaces;\n}\nvar DirectiveNormalizer = /** @class */ (function () {\n function DirectiveNormalizer(_resourceLoader, _urlResolver, _htmlParser, _config) {\n this._resourceLoader = _resourceLoader;\n this._urlResolver = _urlResolver;\n this._htmlParser = _htmlParser;\n this._config = _config;\n this._resourceLoaderCache = new Map();\n }\n /**\n * @return {?}\n */\n DirectiveNormalizer.prototype.clearCache = /**\n * @return {?}\n */\n function () { this._resourceLoaderCache.clear(); };\n /**\n * @param {?} normalizedDirective\n * @return {?}\n */\n DirectiveNormalizer.prototype.clearCacheFor = /**\n * @param {?} normalizedDirective\n * @return {?}\n */\n function (normalizedDirective) {\n var _this = this;\n if (!normalizedDirective.isComponent) {\n return;\n }\n var /** @type {?} */ template = /** @type {?} */ ((normalizedDirective.template));\n this._resourceLoaderCache.delete(/** @type {?} */ ((template.templateUrl)));\n template.externalStylesheets.forEach(function (stylesheet) { _this._resourceLoaderCache.delete(/** @type {?} */ ((stylesheet.moduleUrl))); });\n };\n /**\n * @param {?} url\n * @return {?}\n */\n DirectiveNormalizer.prototype._fetch = /**\n * @param {?} url\n * @return {?}\n */\n function (url) {\n var /** @type {?} */ result = this._resourceLoaderCache.get(url);\n if (!result) {\n result = this._resourceLoader.get(url);\n this._resourceLoaderCache.set(url, result);\n }\n return result;\n };\n /**\n * @param {?} prenormData\n * @return {?}\n */\n DirectiveNormalizer.prototype.normalizeTemplate = /**\n * @param {?} prenormData\n * @return {?}\n */\n function (prenormData) {\n var _this = this;\n if (isDefined(prenormData.template)) {\n if (isDefined(prenormData.templateUrl)) {\n throw syntaxError(\"'\" + stringify(prenormData.componentType) + \"' component cannot define both template and templateUrl\");\n }\n if (typeof prenormData.template !== 'string') {\n throw syntaxError(\"The template specified for component \" + stringify(prenormData.componentType) + \" is not a string\");\n }\n }\n else if (isDefined(prenormData.templateUrl)) {\n if (typeof prenormData.templateUrl !== 'string') {\n throw syntaxError(\"The templateUrl specified for component \" + stringify(prenormData.componentType) + \" is not a string\");\n }\n }\n else {\n throw syntaxError(\"No template specified for component \" + stringify(prenormData.componentType));\n }\n if (isDefined(prenormData.preserveWhitespaces) &&\n typeof prenormData.preserveWhitespaces !== 'boolean') {\n throw syntaxError(\"The preserveWhitespaces option for component \" + stringify(prenormData.componentType) + \" must be a boolean\");\n }\n return SyncAsync.then(this._preParseTemplate(prenormData), function (preparsedTemplate) { return _this._normalizeTemplateMetadata(prenormData, preparsedTemplate); });\n };\n /**\n * @param {?} prenomData\n * @return {?}\n */\n DirectiveNormalizer.prototype._preParseTemplate = /**\n * @param {?} prenomData\n * @return {?}\n */\n function (prenomData) {\n var _this = this;\n var /** @type {?} */ template;\n var /** @type {?} */ templateUrl;\n if (prenomData.template != null) {\n template = prenomData.template;\n templateUrl = prenomData.moduleUrl;\n }\n else {\n templateUrl = this._urlResolver.resolve(prenomData.moduleUrl, /** @type {?} */ ((prenomData.templateUrl)));\n template = this._fetch(templateUrl);\n }\n return SyncAsync.then(template, function (template) { return _this._preparseLoadedTemplate(prenomData, template, templateUrl); });\n };\n /**\n * @param {?} prenormData\n * @param {?} template\n * @param {?} templateAbsUrl\n * @return {?}\n */\n DirectiveNormalizer.prototype._preparseLoadedTemplate = /**\n * @param {?} prenormData\n * @param {?} template\n * @param {?} templateAbsUrl\n * @return {?}\n */\n function (prenormData, template, templateAbsUrl) {\n var /** @type {?} */ isInline = !!prenormData.template;\n var /** @type {?} */ interpolationConfig = InterpolationConfig.fromArray(/** @type {?} */ ((prenormData.interpolation)));\n var /** @type {?} */ rootNodesAndErrors = this._htmlParser.parse(template, templateSourceUrl({ reference: prenormData.ngModuleType }, { type: { reference: prenormData.componentType } }, { isInline: isInline, templateUrl: templateAbsUrl }), true, interpolationConfig);\n if (rootNodesAndErrors.errors.length > 0) {\n var /** @type {?} */ errorString = rootNodesAndErrors.errors.join('\\n');\n throw syntaxError(\"Template parse errors:\\n\" + errorString);\n }\n var /** @type {?} */ templateMetadataStyles = this._normalizeStylesheet(new CompileStylesheetMetadata({ styles: prenormData.styles, moduleUrl: prenormData.moduleUrl }));\n var /** @type {?} */ visitor = new TemplatePreparseVisitor();\n html.visitAll(visitor, rootNodesAndErrors.rootNodes);\n var /** @type {?} */ templateStyles = this._normalizeStylesheet(new CompileStylesheetMetadata({ styles: visitor.styles, styleUrls: visitor.styleUrls, moduleUrl: templateAbsUrl }));\n var /** @type {?} */ styles = templateMetadataStyles.styles.concat(templateStyles.styles);\n var /** @type {?} */ inlineStyleUrls = templateMetadataStyles.styleUrls.concat(templateStyles.styleUrls);\n var /** @type {?} */ styleUrls = this\n ._normalizeStylesheet(new CompileStylesheetMetadata({ styleUrls: prenormData.styleUrls, moduleUrl: prenormData.moduleUrl }))\n .styleUrls;\n return {\n template: template,\n templateUrl: templateAbsUrl, isInline: isInline,\n htmlAst: rootNodesAndErrors, styles: styles, inlineStyleUrls: inlineStyleUrls, styleUrls: styleUrls,\n ngContentSelectors: visitor.ngContentSelectors,\n };\n };\n /**\n * @param {?} prenormData\n * @param {?} preparsedTemplate\n * @return {?}\n */\n DirectiveNormalizer.prototype._normalizeTemplateMetadata = /**\n * @param {?} prenormData\n * @param {?} preparsedTemplate\n * @return {?}\n */\n function (prenormData, preparsedTemplate) {\n var _this = this;\n return SyncAsync.then(this._loadMissingExternalStylesheets(preparsedTemplate.styleUrls.concat(preparsedTemplate.inlineStyleUrls)), function (externalStylesheets) {\n return _this._normalizeLoadedTemplateMetadata(prenormData, preparsedTemplate, externalStylesheets);\n });\n };\n /**\n * @param {?} prenormData\n * @param {?} preparsedTemplate\n * @param {?} stylesheets\n * @return {?}\n */\n DirectiveNormalizer.prototype._normalizeLoadedTemplateMetadata = /**\n * @param {?} prenormData\n * @param {?} preparsedTemplate\n * @param {?} stylesheets\n * @return {?}\n */\n function (prenormData, preparsedTemplate, stylesheets) {\n var _this = this;\n // Algorithm:\n // - produce exactly 1 entry per original styleUrl in\n // CompileTemplateMetadata.externalStylesheets whith all styles inlined\n // - inline all styles that are referenced by the template into CompileTemplateMetadata.styles.\n // Reason: be able to determine how many stylesheets there are even without loading\n // the template nor the stylesheets, so we can create a stub for TypeScript always synchronously\n // (as resouce loading may be async)\n var /** @type {?} */ styles = preparsedTemplate.styles.slice();\n this._inlineStyles(preparsedTemplate.inlineStyleUrls, stylesheets, styles);\n var /** @type {?} */ styleUrls = preparsedTemplate.styleUrls;\n var /** @type {?} */ externalStylesheets = styleUrls.map(function (styleUrl) {\n var /** @type {?} */ stylesheet = /** @type {?} */ ((stylesheets.get(styleUrl)));\n var /** @type {?} */ styles = stylesheet.styles.slice();\n _this._inlineStyles(stylesheet.styleUrls, stylesheets, styles);\n return new CompileStylesheetMetadata({ moduleUrl: styleUrl, styles: styles });\n });\n var /** @type {?} */ encapsulation = prenormData.encapsulation;\n if (encapsulation == null) {\n encapsulation = this._config.defaultEncapsulation;\n }\n if (encapsulation === ViewEncapsulation.Emulated && styles.length === 0 &&\n styleUrls.length === 0) {\n encapsulation = ViewEncapsulation.None;\n }\n return new CompileTemplateMetadata({\n encapsulation: encapsulation,\n template: preparsedTemplate.template,\n templateUrl: preparsedTemplate.templateUrl,\n htmlAst: preparsedTemplate.htmlAst, styles: styles, styleUrls: styleUrls,\n ngContentSelectors: preparsedTemplate.ngContentSelectors,\n animations: prenormData.animations,\n interpolation: prenormData.interpolation,\n isInline: preparsedTemplate.isInline, externalStylesheets: externalStylesheets,\n preserveWhitespaces: preserveWhitespacesDefault(prenormData.preserveWhitespaces, this._config.preserveWhitespaces),\n });\n };\n /**\n * @param {?} styleUrls\n * @param {?} stylesheets\n * @param {?} targetStyles\n * @return {?}\n */\n DirectiveNormalizer.prototype._inlineStyles = /**\n * @param {?} styleUrls\n * @param {?} stylesheets\n * @param {?} targetStyles\n * @return {?}\n */\n function (styleUrls, stylesheets, targetStyles) {\n var _this = this;\n styleUrls.forEach(function (styleUrl) {\n var /** @type {?} */ stylesheet = /** @type {?} */ ((stylesheets.get(styleUrl)));\n stylesheet.styles.forEach(function (style) { return targetStyles.push(style); });\n _this._inlineStyles(stylesheet.styleUrls, stylesheets, targetStyles);\n });\n };\n /**\n * @param {?} styleUrls\n * @param {?=} loadedStylesheets\n * @return {?}\n */\n DirectiveNormalizer.prototype._loadMissingExternalStylesheets = /**\n * @param {?} styleUrls\n * @param {?=} loadedStylesheets\n * @return {?}\n */\n function (styleUrls, loadedStylesheets) {\n var _this = this;\n if (loadedStylesheets === void 0) { loadedStylesheets = new Map(); }\n return SyncAsync.then(SyncAsync.all(styleUrls.filter(function (styleUrl) { return !loadedStylesheets.has(styleUrl); })\n .map(function (styleUrl) {\n return SyncAsync.then(_this._fetch(styleUrl), function (loadedStyle) {\n var /** @type {?} */ stylesheet = _this._normalizeStylesheet(new CompileStylesheetMetadata({ styles: [loadedStyle], moduleUrl: styleUrl }));\n loadedStylesheets.set(styleUrl, stylesheet);\n return _this._loadMissingExternalStylesheets(stylesheet.styleUrls, loadedStylesheets);\n });\n })), function (_) { return loadedStylesheets; });\n };\n /**\n * @param {?} stylesheet\n * @return {?}\n */\n DirectiveNormalizer.prototype._normalizeStylesheet = /**\n * @param {?} stylesheet\n * @return {?}\n */\n function (stylesheet) {\n var _this = this;\n var /** @type {?} */ moduleUrl = /** @type {?} */ ((stylesheet.moduleUrl));\n var /** @type {?} */ allStyleUrls = stylesheet.styleUrls.filter(isStyleUrlResolvable)\n .map(function (url) { return _this._urlResolver.resolve(moduleUrl, url); });\n var /** @type {?} */ allStyles = stylesheet.styles.map(function (style) {\n var /** @type {?} */ styleWithImports = extractStyleUrls(_this._urlResolver, moduleUrl, style);\n allStyleUrls.push.apply(allStyleUrls, styleWithImports.styleUrls);\n return styleWithImports.style;\n });\n return new CompileStylesheetMetadata({ styles: allStyles, styleUrls: allStyleUrls, moduleUrl: moduleUrl });\n };\n return DirectiveNormalizer;\n}());\nexport { DirectiveNormalizer };\nfunction DirectiveNormalizer_tsickle_Closure_declarations() {\n /** @type {?} */\n DirectiveNormalizer.prototype._resourceLoaderCache;\n /** @type {?} */\n DirectiveNormalizer.prototype._resourceLoader;\n /** @type {?} */\n DirectiveNormalizer.prototype._urlResolver;\n /** @type {?} */\n DirectiveNormalizer.prototype._htmlParser;\n /** @type {?} */\n DirectiveNormalizer.prototype._config;\n}\n/**\n * @record\n */\nfunction PreparsedTemplate() { }\nfunction PreparsedTemplate_tsickle_Closure_declarations() {\n /** @type {?} */\n PreparsedTemplate.prototype.template;\n /** @type {?} */\n PreparsedTemplate.prototype.templateUrl;\n /** @type {?} */\n PreparsedTemplate.prototype.isInline;\n /** @type {?} */\n PreparsedTemplate.prototype.htmlAst;\n /** @type {?} */\n PreparsedTemplate.prototype.styles;\n /** @type {?} */\n PreparsedTemplate.prototype.inlineStyleUrls;\n /** @type {?} */\n PreparsedTemplate.prototype.styleUrls;\n /** @type {?} */\n PreparsedTemplate.prototype.ngContentSelectors;\n}\nvar TemplatePreparseVisitor = /** @class */ (function () {\n function TemplatePreparseVisitor() {\n this.ngContentSelectors = [];\n this.styles = [];\n this.styleUrls = [];\n this.ngNonBindableStackCount = 0;\n }\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n TemplatePreparseVisitor.prototype.visitElement = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) {\n var /** @type {?} */ preparsedElement = preparseElement(ast);\n switch (preparsedElement.type) {\n case PreparsedElementType.NG_CONTENT:\n if (this.ngNonBindableStackCount === 0) {\n this.ngContentSelectors.push(preparsedElement.selectAttr);\n }\n break;\n case PreparsedElementType.STYLE:\n var /** @type {?} */ textContent_1 = '';\n ast.children.forEach(function (child) {\n if (child instanceof html.Text) {\n textContent_1 += child.value;\n }\n });\n this.styles.push(textContent_1);\n break;\n case PreparsedElementType.STYLESHEET:\n this.styleUrls.push(preparsedElement.hrefAttr);\n break;\n default:\n break;\n }\n if (preparsedElement.nonBindable) {\n this.ngNonBindableStackCount++;\n }\n html.visitAll(this, ast.children);\n if (preparsedElement.nonBindable) {\n this.ngNonBindableStackCount--;\n }\n return null;\n };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n TemplatePreparseVisitor.prototype.visitExpansion = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) { html.visitAll(this, ast.cases); };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n TemplatePreparseVisitor.prototype.visitExpansionCase = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) {\n html.visitAll(this, ast.expression);\n };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n TemplatePreparseVisitor.prototype.visitComment = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) { return null; };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n TemplatePreparseVisitor.prototype.visitAttribute = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) { return null; };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n TemplatePreparseVisitor.prototype.visitText = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) { return null; };\n return TemplatePreparseVisitor;\n}());\nfunction TemplatePreparseVisitor_tsickle_Closure_declarations() {\n /** @type {?} */\n TemplatePreparseVisitor.prototype.ngContentSelectors;\n /** @type {?} */\n TemplatePreparseVisitor.prototype.styles;\n /** @type {?} */\n TemplatePreparseVisitor.prototype.styleUrls;\n /** @type {?} */\n TemplatePreparseVisitor.prototype.ngNonBindableStackCount;\n}\n//# sourceMappingURL=directive_normalizer.js.map","/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this 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 tslib_1 from \"tslib\";\nimport { createComponent, createContentChild, createContentChildren, createDirective, createHostBinding, createHostListener, createInput, createOutput, createViewChild, createViewChildren } from './core';\nimport { resolveForwardRef, splitAtColon, stringify } from './util';\nvar /** @type {?} */ QUERY_METADATA_IDENTIFIERS = [\n createViewChild,\n createViewChildren,\n createContentChild,\n createContentChildren,\n];\nvar DirectiveResolver = /** @class */ (function () {\n function DirectiveResolver(_reflector) {\n this._reflector = _reflector;\n }\n /**\n * @param {?} type\n * @return {?}\n */\n DirectiveResolver.prototype.isDirective = /**\n * @param {?} type\n * @return {?}\n */\n function (type) {\n var /** @type {?} */ typeMetadata = this._reflector.annotations(resolveForwardRef(type));\n return typeMetadata && typeMetadata.some(isDirectiveMetadata);\n };\n /**\n * @param {?} type\n * @param {?=} throwIfNotFound\n * @return {?}\n */\n DirectiveResolver.prototype.resolve = /**\n * @param {?} type\n * @param {?=} throwIfNotFound\n * @return {?}\n */\n function (type, throwIfNotFound) {\n if (throwIfNotFound === void 0) { throwIfNotFound = true; }\n var /** @type {?} */ typeMetadata = this._reflector.annotations(resolveForwardRef(type));\n if (typeMetadata) {\n var /** @type {?} */ metadata = findLast(typeMetadata, isDirectiveMetadata);\n if (metadata) {\n var /** @type {?} */ propertyMetadata = this._reflector.propMetadata(type);\n var /** @type {?} */ guards = this._reflector.guards(type);\n return this._mergeWithPropertyMetadata(metadata, propertyMetadata, guards, type);\n }\n }\n if (throwIfNotFound) {\n throw new Error(\"No Directive annotation found on \" + stringify(type));\n }\n return null;\n };\n /**\n * @param {?} dm\n * @param {?} propertyMetadata\n * @param {?} guards\n * @param {?} directiveType\n * @return {?}\n */\n DirectiveResolver.prototype._mergeWithPropertyMetadata = /**\n * @param {?} dm\n * @param {?} propertyMetadata\n * @param {?} guards\n * @param {?} directiveType\n * @return {?}\n */\n function (dm, propertyMetadata, guards, directiveType) {\n var /** @type {?} */ inputs = [];\n var /** @type {?} */ outputs = [];\n var /** @type {?} */ host = {};\n var /** @type {?} */ queries = {};\n Object.keys(propertyMetadata).forEach(function (propName) {\n var /** @type {?} */ input = findLast(propertyMetadata[propName], function (a) { return createInput.isTypeOf(a); });\n if (input) {\n if (input.bindingPropertyName) {\n inputs.push(propName + \": \" + input.bindingPropertyName);\n }\n else {\n inputs.push(propName);\n }\n }\n var /** @type {?} */ output = findLast(propertyMetadata[propName], function (a) { return createOutput.isTypeOf(a); });\n if (output) {\n if (output.bindingPropertyName) {\n outputs.push(propName + \": \" + output.bindingPropertyName);\n }\n else {\n outputs.push(propName);\n }\n }\n var /** @type {?} */ hostBindings = propertyMetadata[propName].filter(function (a) { return createHostBinding.isTypeOf(a); });\n hostBindings.forEach(function (hostBinding) {\n if (hostBinding.hostPropertyName) {\n var /** @type {?} */ startWith = hostBinding.hostPropertyName[0];\n if (startWith === '(') {\n throw new Error(\"@HostBinding can not bind to events. Use @HostListener instead.\");\n }\n else if (startWith === '[') {\n throw new Error(\"@HostBinding parameter should be a property name, 'class.<name>', or 'attr.<name>'.\");\n }\n host[\"[\" + hostBinding.hostPropertyName + \"]\"] = propName;\n }\n else {\n host[\"[\" + propName + \"]\"] = propName;\n }\n });\n var /** @type {?} */ hostListeners = propertyMetadata[propName].filter(function (a) { return createHostListener.isTypeOf(a); });\n hostListeners.forEach(function (hostListener) {\n var /** @type {?} */ args = hostListener.args || [];\n host[\"(\" + hostListener.eventName + \")\"] = propName + \"(\" + args.join(',') + \")\";\n });\n var /** @type {?} */ query = findLast(propertyMetadata[propName], function (a) { return QUERY_METADATA_IDENTIFIERS.some(function (i) { return i.isTypeOf(a); }); });\n if (query) {\n queries[propName] = query;\n }\n });\n return this._merge(dm, inputs, outputs, host, queries, guards, directiveType);\n };\n /**\n * @param {?} def\n * @return {?}\n */\n DirectiveResolver.prototype._extractPublicName = /**\n * @param {?} def\n * @return {?}\n */\n function (def) { return splitAtColon(def, [/** @type {?} */ ((null)), def])[1].trim(); };\n /**\n * @param {?} bindings\n * @return {?}\n */\n DirectiveResolver.prototype._dedupeBindings = /**\n * @param {?} bindings\n * @return {?}\n */\n function (bindings) {\n var /** @type {?} */ names = new Set();\n var /** @type {?} */ publicNames = new Set();\n var /** @type {?} */ reversedResult = [];\n // go last to first to allow later entries to overwrite previous entries\n for (var /** @type {?} */ i = bindings.length - 1; i >= 0; i--) {\n var /** @type {?} */ binding = bindings[i];\n var /** @type {?} */ name_1 = this._extractPublicName(binding);\n publicNames.add(name_1);\n if (!names.has(name_1)) {\n names.add(name_1);\n reversedResult.push(binding);\n }\n }\n return reversedResult.reverse();\n };\n /**\n * @param {?} directive\n * @param {?} inputs\n * @param {?} outputs\n * @param {?} host\n * @param {?} queries\n * @param {?} guards\n * @param {?} directiveType\n * @return {?}\n */\n DirectiveResolver.prototype._merge = /**\n * @param {?} directive\n * @param {?} inputs\n * @param {?} outputs\n * @param {?} host\n * @param {?} queries\n * @param {?} guards\n * @param {?} directiveType\n * @return {?}\n */\n function (directive, inputs, outputs, host, queries, guards, directiveType) {\n var /** @type {?} */ mergedInputs = this._dedupeBindings(directive.inputs ? directive.inputs.concat(inputs) : inputs);\n var /** @type {?} */ mergedOutputs = this._dedupeBindings(directive.outputs ? directive.outputs.concat(outputs) : outputs);\n var /** @type {?} */ mergedHost = directive.host ? tslib_1.__assign({}, directive.host, host) : host;\n var /** @type {?} */ mergedQueries = directive.queries ? tslib_1.__assign({}, directive.queries, queries) : queries;\n if (createComponent.isTypeOf(directive)) {\n var /** @type {?} */ comp = /** @type {?} */ (directive);\n return createComponent({\n selector: comp.selector,\n inputs: mergedInputs,\n outputs: mergedOutputs,\n host: mergedHost,\n exportAs: comp.exportAs,\n moduleId: comp.moduleId,\n queries: mergedQueries,\n changeDetection: comp.changeDetection,\n providers: comp.providers,\n viewProviders: comp.viewProviders,\n entryComponents: comp.entryComponents,\n template: comp.template,\n templateUrl: comp.templateUrl,\n styles: comp.styles,\n styleUrls: comp.styleUrls,\n encapsulation: comp.encapsulation,\n animations: comp.animations,\n interpolation: comp.interpolation,\n preserveWhitespaces: directive.preserveWhitespaces,\n });\n }\n else {\n return createDirective({\n selector: directive.selector,\n inputs: mergedInputs,\n outputs: mergedOutputs,\n host: mergedHost,\n exportAs: directive.exportAs,\n queries: mergedQueries,\n providers: directive.providers, guards: guards\n });\n }\n };\n return DirectiveResolver;\n}());\nexport { DirectiveResolver };\nfunction DirectiveResolver_tsickle_Closure_declarations() {\n /** @type {?} */\n DirectiveResolver.prototype._reflector;\n}\n/**\n * @param {?} type\n * @return {?}\n */\nfunction isDirectiveMetadata(type) {\n return createDirective.isTypeOf(type) || createComponent.isTypeOf(type);\n}\n/**\n * @template T\n * @param {?} arr\n * @param {?} condition\n * @return {?}\n */\nexport function findLast(arr, condition) {\n for (var /** @type {?} */ i = arr.length - 1; i >= 0; i--) {\n if (condition(arr[i])) {\n return arr[i];\n }\n }\n return null;\n}\n//# sourceMappingURL=directive_resolver.js.map","/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nexport var /** @type {?} */ $EOF = 0;\nexport var /** @type {?} */ $TAB = 9;\nexport var /** @type {?} */ $LF = 10;\nexport var /** @type {?} */ $VTAB = 11;\nexport var /** @type {?} */ $FF = 12;\nexport var /** @type {?} */ $CR = 13;\nexport var /** @type {?} */ $SPACE = 32;\nexport var /** @type {?} */ $BANG = 33;\nexport var /** @type {?} */ $DQ = 34;\nexport var /** @type {?} */ $HASH = 35;\nexport var /** @type {?} */ $$ = 36;\nexport var /** @type {?} */ $PERCENT = 37;\nexport var /** @type {?} */ $AMPERSAND = 38;\nexport var /** @type {?} */ $SQ = 39;\nexport var /** @type {?} */ $LPAREN = 40;\nexport var /** @type {?} */ $RPAREN = 41;\nexport var /** @type {?} */ $STAR = 42;\nexport var /** @type {?} */ $PLUS = 43;\nexport var /** @type {?} */ $COMMA = 44;\nexport var /** @type {?} */ $MINUS = 45;\nexport var /** @type {?} */ $PERIOD = 46;\nexport var /** @type {?} */ $SLASH = 47;\nexport var /** @type {?} */ $COLON = 58;\nexport var /** @type {?} */ $SEMICOLON = 59;\nexport var /** @type {?} */ $LT = 60;\nexport var /** @type {?} */ $EQ = 61;\nexport var /** @type {?} */ $GT = 62;\nexport var /** @type {?} */ $QUESTION = 63;\nexport var /** @type {?} */ $0 = 48;\nexport var /** @type {?} */ $9 = 57;\nexport var /** @type {?} */ $A = 65;\nexport var /** @type {?} */ $E = 69;\nexport var /** @type {?} */ $F = 70;\nexport var /** @type {?} */ $X = 88;\nexport var /** @type {?} */ $Z = 90;\nexport var /** @type {?} */ $LBRACKET = 91;\nexport var /** @type {?} */ $BACKSLASH = 92;\nexport var /** @type {?} */ $RBRACKET = 93;\nexport var /** @type {?} */ $CARET = 94;\nexport var /** @type {?} */ $_ = 95;\nexport var /** @type {?} */ $a = 97;\nexport var /** @type {?} */ $e = 101;\nexport var /** @type {?} */ $f = 102;\nexport var /** @type {?} */ $n = 110;\nexport var /** @type {?} */ $r = 114;\nexport var /** @type {?} */ $t = 116;\nexport var /** @type {?} */ $u = 117;\nexport var /** @type {?} */ $v = 118;\nexport var /** @type {?} */ $x = 120;\nexport var /** @type {?} */ $z = 122;\nexport var /** @type {?} */ $LBRACE = 123;\nexport var /** @type {?} */ $BAR = 124;\nexport var /** @type {?} */ $RBRACE = 125;\nexport var /** @type {?} */ $NBSP = 160;\nexport var /** @type {?} */ $PIPE = 124;\nexport var /** @type {?} */ $TILDA = 126;\nexport var /** @type {?} */ $AT = 64;\nexport var /** @type {?} */ $BT = 96;\n/**\n * @param {?} code\n * @return {?}\n */\nexport function isWhitespace(code) {\n return (code >= $TAB && code <= $SPACE) || (code == $NBSP);\n}\n/**\n * @param {?} code\n * @return {?}\n */\nexport function isDigit(code) {\n return $0 <= code && code <= $9;\n}\n/**\n * @param {?} code\n * @return {?}\n */\nexport function isAsciiLetter(code) {\n return code >= $a && code <= $z || code >= $A && code <= $Z;\n}\n/**\n * @param {?} code\n * @return {?}\n */\nexport function isAsciiHexDigit(code) {\n return code >= $a && code <= $f || code >= $A && code <= $F || isDigit(code);\n}\n//# sourceMappingURL=chars.js.map","/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this 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';\n/** @enum {number} */\nvar TokenType = {\n Character: 0,\n Identifier: 1,\n Keyword: 2,\n String: 3,\n Operator: 4,\n Number: 5,\n Error: 6,\n};\nexport { TokenType };\nTokenType[TokenType.Character] = \"Character\";\nTokenType[TokenType.Identifier] = \"Identifier\";\nTokenType[TokenType.Keyword] = \"Keyword\";\nTokenType[TokenType.String] = \"String\";\nTokenType[TokenType.Operator] = \"Operator\";\nTokenType[TokenType.Number] = \"Number\";\nTokenType[TokenType.Error] = \"Error\";\nvar /** @type {?} */ KEYWORDS = ['var', 'let', 'as', 'null', 'undefined', 'true', 'false', 'if', 'else', 'this'];\nvar Lexer = /** @class */ (function () {\n function Lexer() {\n }\n /**\n * @param {?} text\n * @return {?}\n */\n Lexer.prototype.tokenize = /**\n * @param {?} text\n * @return {?}\n */\n function (text) {\n var /** @type {?} */ scanner = new _Scanner(text);\n var /** @type {?} */ tokens = [];\n var /** @type {?} */ token = scanner.scanToken();\n while (token != null) {\n tokens.push(token);\n token = scanner.scanToken();\n }\n return tokens;\n };\n return Lexer;\n}());\nexport { Lexer };\nvar Token = /** @class */ (function () {\n function Token(index, type, numValue, strValue) {\n this.index = index;\n this.type = type;\n this.numValue = numValue;\n this.strValue = strValue;\n }\n /**\n * @param {?} code\n * @return {?}\n */\n Token.prototype.isCharacter = /**\n * @param {?} code\n * @return {?}\n */\n function (code) {\n return this.type == TokenType.Character && this.numValue == code;\n };\n /**\n * @return {?}\n */\n Token.prototype.isNumber = /**\n * @return {?}\n */\n function () { return this.type == TokenType.Number; };\n /**\n * @return {?}\n */\n Token.prototype.isString = /**\n * @return {?}\n */\n function () { return this.type == TokenType.String; };\n /**\n * @param {?} operater\n * @return {?}\n */\n Token.prototype.isOperator = /**\n * @param {?} operater\n * @return {?}\n */\n function (operater) {\n return this.type == TokenType.Operator && this.strValue == operater;\n };\n /**\n * @return {?}\n */\n Token.prototype.isIdentifier = /**\n * @return {?}\n */\n function () { return this.type == TokenType.Identifier; };\n /**\n * @return {?}\n */\n Token.prototype.isKeyword = /**\n * @return {?}\n */\n function () { return this.type == TokenType.Keyword; };\n /**\n * @return {?}\n */\n Token.prototype.isKeywordLet = /**\n * @return {?}\n */\n function () { return this.type == TokenType.Keyword && this.strValue == 'let'; };\n /**\n * @return {?}\n */\n Token.prototype.isKeywordAs = /**\n * @return {?}\n */\n function () { return this.type == TokenType.Keyword && this.strValue == 'as'; };\n /**\n * @return {?}\n */\n Token.prototype.isKeywordNull = /**\n * @return {?}\n */\n function () { return this.type == TokenType.Keyword && this.strValue == 'null'; };\n /**\n * @return {?}\n */\n Token.prototype.isKeywordUndefined = /**\n * @return {?}\n */\n function () {\n return this.type == TokenType.Keyword && this.strValue == 'undefined';\n };\n /**\n * @return {?}\n */\n Token.prototype.isKeywordTrue = /**\n * @return {?}\n */\n function () { return this.type == TokenType.Keyword && this.strValue == 'true'; };\n /**\n * @return {?}\n */\n Token.prototype.isKeywordFalse = /**\n * @return {?}\n */\n function () { return this.type == TokenType.Keyword && this.strValue == 'false'; };\n /**\n * @return {?}\n */\n Token.prototype.isKeywordThis = /**\n * @return {?}\n */\n function () { return this.type == TokenType.Keyword && this.strValue == 'this'; };\n /**\n * @return {?}\n */\n Token.prototype.isError = /**\n * @return {?}\n */\n function () { return this.type == TokenType.Error; };\n /**\n * @return {?}\n */\n Token.prototype.toNumber = /**\n * @return {?}\n */\n function () { return this.type == TokenType.Number ? this.numValue : -1; };\n /**\n * @return {?}\n */\n Token.prototype.toString = /**\n * @return {?}\n */\n function () {\n switch (this.type) {\n case TokenType.Character:\n case TokenType.Identifier:\n case TokenType.Keyword:\n case TokenType.Operator:\n case TokenType.String:\n case TokenType.Error:\n return this.strValue;\n case TokenType.Number:\n return this.numValue.toString();\n default:\n return null;\n }\n };\n return Token;\n}());\nexport { Token };\nfunction Token_tsickle_Closure_declarations() {\n /** @type {?} */\n Token.prototype.index;\n /** @type {?} */\n Token.prototype.type;\n /** @type {?} */\n Token.prototype.numValue;\n /** @type {?} */\n Token.prototype.strValue;\n}\n/**\n * @param {?} index\n * @param {?} code\n * @return {?}\n */\nfunction newCharacterToken(index, code) {\n return new Token(index, TokenType.Character, code, String.fromCharCode(code));\n}\n/**\n * @param {?} index\n * @param {?} text\n * @return {?}\n */\nfunction newIdentifierToken(index, text) {\n return new Token(index, TokenType.Identifier, 0, text);\n}\n/**\n * @param {?} index\n * @param {?} text\n * @return {?}\n */\nfunction newKeywordToken(index, text) {\n return new Token(index, TokenType.Keyword, 0, text);\n}\n/**\n * @param {?} index\n * @param {?} text\n * @return {?}\n */\nfunction newOperatorToken(index, text) {\n return new Token(index, TokenType.Operator, 0, text);\n}\n/**\n * @param {?} index\n * @param {?} text\n * @return {?}\n */\nfunction newStringToken(index, text) {\n return new Token(index, TokenType.String, 0, text);\n}\n/**\n * @param {?} index\n * @param {?} n\n * @return {?}\n */\nfunction newNumberToken(index, n) {\n return new Token(index, TokenType.Number, n, '');\n}\n/**\n * @param {?} index\n * @param {?} message\n * @return {?}\n */\nfunction newErrorToken(index, message) {\n return new Token(index, TokenType.Error, 0, message);\n}\nexport var /** @type {?} */ EOF = new Token(-1, TokenType.Character, 0, '');\nvar _Scanner = /** @class */ (function () {\n function _Scanner(input) {\n this.input = input;\n this.peek = 0;\n this.index = -1;\n this.length = input.length;\n this.advance();\n }\n /**\n * @return {?}\n */\n _Scanner.prototype.advance = /**\n * @return {?}\n */\n function () {\n this.peek = ++this.index >= this.length ? chars.$EOF : this.input.charCodeAt(this.index);\n };\n /**\n * @return {?}\n */\n _Scanner.prototype.scanToken = /**\n * @return {?}\n */\n function () {\n var /** @type {?} */ input = this.input, /** @type {?} */ length = this.length;\n var /** @type {?} */ peek = this.peek, /** @type {?} */ index = this.index;\n // Skip whitespace.\n while (peek <= chars.$SPACE) {\n if (++index >= length) {\n peek = chars.$EOF;\n break;\n }\n else {\n peek = input.charCodeAt(index);\n }\n }\n this.peek = peek;\n this.index = index;\n if (index >= length) {\n return null;\n }\n // Handle identifiers and numbers.\n if (isIdentifierStart(peek))\n return this.scanIdentifier();\n if (chars.isDigit(peek))\n return this.scanNumber(index);\n var /** @type {?} */ start = index;\n switch (peek) {\n case chars.$PERIOD:\n this.advance();\n return chars.isDigit(this.peek) ? this.scanNumber(start) :\n newCharacterToken(start, chars.$PERIOD);\n case chars.$LPAREN:\n case chars.$RPAREN:\n case chars.$LBRACE:\n case chars.$RBRACE:\n case chars.$LBRACKET:\n case chars.$RBRACKET:\n case chars.$COMMA:\n case chars.$COLON:\n case chars.$SEMICOLON:\n return this.scanCharacter(start, peek);\n case chars.$SQ:\n case chars.$DQ:\n return this.scanString();\n case chars.$HASH:\n case chars.$PLUS:\n case chars.$MINUS:\n case chars.$STAR:\n case chars.$SLASH:\n case chars.$PERCENT:\n case chars.$CARET:\n return this.scanOperator(start, String.fromCharCode(peek));\n case chars.$QUESTION:\n return this.scanComplexOperator(start, '?', chars.$PERIOD, '.');\n case chars.$LT:\n case chars.$GT:\n return this.scanComplexOperator(start, String.fromCharCode(peek), chars.$EQ, '=');\n case chars.$BANG:\n case chars.$EQ:\n return this.scanComplexOperator(start, String.fromCharCode(peek), chars.$EQ, '=', chars.$EQ, '=');\n case chars.$AMPERSAND:\n return this.scanComplexOperator(start, '&', chars.$AMPERSAND, '&');\n case chars.$BAR:\n return this.scanComplexOperator(start, '|', chars.$BAR, '|');\n case chars.$NBSP:\n while (chars.isWhitespace(this.peek))\n this.advance();\n return this.scanToken();\n }\n this.advance();\n return this.error(\"Unexpected character [\" + String.fromCharCode(peek) + \"]\", 0);\n };\n /**\n * @param {?} start\n * @param {?} code\n * @return {?}\n */\n _Scanner.prototype.scanCharacter = /**\n * @param {?} start\n * @param {?} code\n * @return {?}\n */\n function (start, code) {\n this.advance();\n return newCharacterToken(start, code);\n };\n /**\n * @param {?} start\n * @param {?} str\n * @return {?}\n */\n _Scanner.prototype.scanOperator = /**\n * @param {?} start\n * @param {?} str\n * @return {?}\n */\n function (start, str) {\n this.advance();\n return newOperatorToken(start, str);\n };\n /**\n * Tokenize a 2/3 char long operator\n *\n * @param start start index in the expression\n * @param one first symbol (always part of the operator)\n * @param twoCode code point for the second symbol\n * @param two second symbol (part of the operator when the second code point matches)\n * @param threeCode code point for the third symbol\n * @param three third symbol (part of the operator when provided and matches source expression)\n */\n /**\n * Tokenize a 2/3 char long operator\n *\n * @param {?} start start index in the expression\n * @param {?} one first symbol (always part of the operator)\n * @param {?} twoCode code point for the second symbol\n * @param {?} two second symbol (part of the operator when the second code point matches)\n * @param {?=} threeCode code point for the third symbol\n * @param {?=} three third symbol (part of the operator when provided and matches source expression)\n * @return {?}\n */\n _Scanner.prototype.scanComplexOperator = /**\n * Tokenize a 2/3 char long operator\n *\n * @param {?} start start index in the expression\n * @param {?} one first symbol (always part of the operator)\n * @param {?} twoCode code point for the second symbol\n * @param {?} two second symbol (part of the operator when the second code point matches)\n * @param {?=} threeCode code point for the third symbol\n * @param {?=} three third symbol (part of the operator when provided and matches source expression)\n * @return {?}\n */\n function (start, one, twoCode, two, threeCode, three) {\n this.advance();\n var /** @type {?} */ str = one;\n if (this.peek == twoCode) {\n this.advance();\n str += two;\n }\n if (threeCode != null && this.peek == threeCode) {\n this.advance();\n str += three;\n }\n return newOperatorToken(start, str);\n };\n /**\n * @return {?}\n */\n _Scanner.prototype.scanIdentifier = /**\n * @return {?}\n */\n function () {\n var /** @type {?} */ start = this.index;\n this.advance();\n while (isIdentifierPart(this.peek))\n this.advance();\n var /** @type {?} */ str = this.input.substring(start, this.index);\n return KEYWORDS.indexOf(str) > -1 ? newKeywordToken(start, str) :\n newIdentifierToken(start, str);\n };\n /**\n * @param {?} start\n * @return {?}\n */\n _Scanner.prototype.scanNumber = /**\n * @param {?} start\n * @return {?}\n */\n function (start) {\n var /** @type {?} */ simple = (this.index === start);\n this.advance(); // Skip initial digit.\n while (true) {\n if (chars.isDigit(this.peek)) {\n // Do nothing.\n }\n else if (this.peek == chars.$PERIOD) {\n simple = false;\n }\n else if (isExponentStart(this.peek)) {\n this.advance();\n if (isExponentSign(this.peek))\n this.advance();\n if (!chars.isDigit(this.peek))\n return this.error('Invalid exponent', -1);\n simple = false;\n }\n else {\n break;\n }\n this.advance();\n }\n var /** @type {?} */ str = this.input.substring(start, this.index);\n var /** @type {?} */ value = simple ? parseIntAutoRadix(str) : parseFloat(str);\n return newNumberToken(start, value);\n };\n /**\n * @return {?}\n */\n _Scanner.prototype.scanString = /**\n * @return {?}\n */\n function () {\n var /** @type {?} */ start = this.index;\n var /** @type {?} */ quote = this.peek;\n this.advance(); // Skip initial quote.\n var /** @type {?} */ buffer = '';\n var /** @type {?} */ marker = this.index;\n var /** @type {?} */ input = this.input;\n while (this.peek != quote) {\n if (this.peek == chars.$BACKSLASH) {\n buffer += input.substring(marker, this.index);\n this.advance();\n var /** @type {?} */ unescapedCode = void 0;\n // Workaround for TS2.1-introduced type strictness\n this.peek = this.peek;\n if (this.peek == chars.$u) {\n // 4 character hex code for unicode character.\n var /** @type {?} */ hex = input.substring(this.index + 1, this.index + 5);\n if (/^[0-9a-f]+$/i.test(hex)) {\n unescapedCode = parseInt(hex, 16);\n }\n else {\n return this.error(\"Invalid unicode escape [\\\\u\" + hex + \"]\", 0);\n }\n for (var /** @type {?} */ i = 0; i < 5; i++) {\n this.advance();\n }\n }\n else {\n unescapedCode = unescape(this.peek);\n this.advance();\n }\n buffer += String.fromCharCode(unescapedCode);\n marker = this.index;\n }\n else if (this.peek == chars.$EOF) {\n return this.error('Unterminated quote', 0);\n }\n else {\n this.advance();\n }\n }\n var /** @type {?} */ last = input.substring(marker, this.index);\n this.advance(); // Skip terminating quote.\n return newStringToken(start, buffer + last);\n };\n /**\n * @param {?} message\n * @param {?} offset\n * @return {?}\n */\n _Scanner.prototype.error = /**\n * @param {?} message\n * @param {?} offset\n * @return {?}\n */\n function (message, offset) {\n var /** @type {?} */ position = this.index + offset;\n return newErrorToken(position, \"Lexer Error: \" + message + \" at column \" + position + \" in expression [\" + this.input + \"]\");\n };\n return _Scanner;\n}());\nfunction _Scanner_tsickle_Closure_declarations() {\n /** @type {?} */\n _Scanner.prototype.length;\n /** @type {?} */\n _Scanner.prototype.peek;\n /** @type {?} */\n _Scanner.prototype.index;\n /** @type {?} */\n _Scanner.prototype.input;\n}\n/**\n * @param {?} code\n * @return {?}\n */\nfunction isIdentifierStart(code) {\n return (chars.$a <= code && code <= chars.$z) || (chars.$A <= code && code <= chars.$Z) ||\n (code == chars.$_) || (code == chars.$$);\n}\n/**\n * @param {?} input\n * @return {?}\n */\nexport function isIdentifier(input) {\n if (input.length == 0)\n return false;\n var /** @type {?} */ scanner = new _Scanner(input);\n if (!isIdentifierStart(scanner.peek))\n return false;\n scanner.advance();\n while (scanner.peek !== chars.$EOF) {\n if (!isIdentifierPart(scanner.peek))\n return false;\n scanner.advance();\n }\n return true;\n}\n/**\n * @param {?} code\n * @return {?}\n */\nfunction isIdentifierPart(code) {\n return chars.isAsciiLetter(code) || chars.isDigit(code) || (code == chars.$_) ||\n (code == chars.$$);\n}\n/**\n * @param {?} code\n * @return {?}\n */\nfunction isExponentStart(code) {\n return code == chars.$e || code == chars.$E;\n}\n/**\n * @param {?} code\n * @return {?}\n */\nfunction isExponentSign(code) {\n return code == chars.$MINUS || code == chars.$PLUS;\n}\n/**\n * @param {?} code\n * @return {?}\n */\nexport function isQuote(code) {\n return code === chars.$SQ || code === chars.$DQ || code === chars.$BT;\n}\n/**\n * @param {?} code\n * @return {?}\n */\nfunction unescape(code) {\n switch (code) {\n case chars.$n:\n return chars.$LF;\n case chars.$f:\n return chars.$FF;\n case chars.$r:\n return chars.$CR;\n case chars.$t:\n return chars.$TAB;\n case chars.$v:\n return chars.$VTAB;\n default:\n return code;\n }\n}\n/**\n * @param {?} text\n * @return {?}\n */\nfunction parseIntAutoRadix(text) {\n var /** @type {?} */ result = parseInt(text);\n if (isNaN(result)) {\n throw new Error('Invalid integer literal when parsing ' + text);\n }\n return result;\n}\n//# sourceMappingURL=lexer.js.map","/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this 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 tslib_1 from \"tslib\";\nvar ParserError = /** @class */ (function () {\n function ParserError(message, input, errLocation, ctxLocation) {\n this.input = input;\n this.errLocation = errLocation;\n this.ctxLocation = ctxLocation;\n this.message = \"Parser Error: \" + message + \" \" + errLocation + \" [\" + input + \"] in \" + ctxLocation;\n }\n return ParserError;\n}());\nexport { ParserError };\nfunction ParserError_tsickle_Closure_declarations() {\n /** @type {?} */\n ParserError.prototype.message;\n /** @type {?} */\n ParserError.prototype.input;\n /** @type {?} */\n ParserError.prototype.errLocation;\n /** @type {?} */\n ParserError.prototype.ctxLocation;\n}\nvar ParseSpan = /** @class */ (function () {\n function ParseSpan(start, end) {\n this.start = start;\n this.end = end;\n }\n return ParseSpan;\n}());\nexport { ParseSpan };\nfunction ParseSpan_tsickle_Closure_declarations() {\n /** @type {?} */\n ParseSpan.prototype.start;\n /** @type {?} */\n ParseSpan.prototype.end;\n}\nvar AST = /** @class */ (function () {\n function AST(span) {\n this.span = span;\n }\n /**\n * @param {?} visitor\n * @param {?=} context\n * @return {?}\n */\n AST.prototype.visit = /**\n * @param {?} visitor\n * @param {?=} context\n * @return {?}\n */\n function (visitor, context) {\n if (context === void 0) { context = null; }\n return null;\n };\n /**\n * @return {?}\n */\n AST.prototype.toString = /**\n * @return {?}\n */\n function () { return 'AST'; };\n return AST;\n}());\nexport { AST };\nfunction AST_tsickle_Closure_declarations() {\n /** @type {?} */\n AST.prototype.span;\n}\n/**\n * Represents a quoted expression of the form:\n *\n * quote = prefix `:` uninterpretedExpression\n * prefix = identifier\n * uninterpretedExpression = arbitrary string\n *\n * A quoted expression is meant to be pre-processed by an AST transformer that\n * converts it into another AST that no longer contains quoted expressions.\n * It is meant to allow third-party developers to extend Angular template\n * expression language. The `uninterpretedExpression` part of the quote is\n * therefore not interpreted by the Angular's own expression parser.\n */\nvar /**\n * Represents a quoted expression of the form:\n *\n * quote = prefix `:` uninterpretedExpression\n * prefix = identifier\n * uninterpretedExpression = arbitrary string\n *\n * A quoted expression is meant to be pre-processed by an AST transformer that\n * converts it into another AST that no longer contains quoted expressions.\n * It is meant to allow third-party developers to extend Angular template\n * expression language. The `uninterpretedExpression` part of the quote is\n * therefore not interpreted by the Angular's own expression parser.\n */\nQuote = /** @class */ (function (_super) {\n tslib_1.__extends(Quote, _super);\n function Quote(span, prefix, uninterpretedExpression, location) {\n var _this = _super.call(this, span) || this;\n _this.prefix = prefix;\n _this.uninterpretedExpression = uninterpretedExpression;\n _this.location = location;\n return _this;\n }\n /**\n * @param {?} visitor\n * @param {?=} context\n * @return {?}\n */\n Quote.prototype.visit = /**\n * @param {?} visitor\n * @param {?=} context\n * @return {?}\n */\n function (visitor, context) {\n if (context === void 0) { context = null; }\n return visitor.visitQuote(this, context);\n };\n /**\n * @return {?}\n */\n Quote.prototype.toString = /**\n * @return {?}\n */\n function () { return 'Quote'; };\n return Quote;\n}(AST));\n/**\n * Represents a quoted expression of the form:\n *\n * quote = prefix `:` uninterpretedExpression\n * prefix = identifier\n * uninterpretedExpression = arbitrary string\n *\n * A quoted expression is meant to be pre-processed by an AST transformer that\n * converts it into another AST that no longer contains quoted expressions.\n * It is meant to allow third-party developers to extend Angular template\n * expression language. The `uninterpretedExpression` part of the quote is\n * therefore not interpreted by the Angular's own expression parser.\n */\nexport { Quote };\nfunction Quote_tsickle_Closure_declarations() {\n /** @type {?} */\n Quote.prototype.prefix;\n /** @type {?} */\n Quote.prototype.uninterpretedExpression;\n /** @type {?} */\n Quote.prototype.location;\n}\nvar EmptyExpr = /** @class */ (function (_super) {\n tslib_1.__extends(EmptyExpr, _super);\n function EmptyExpr() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * @param {?} visitor\n * @param {?=} context\n * @return {?}\n */\n EmptyExpr.prototype.visit = /**\n * @param {?} visitor\n * @param {?=} context\n * @return {?}\n */\n function (visitor, context) {\n if (context === void 0) { context = null; }\n // do nothing\n };\n return EmptyExpr;\n}(AST));\nexport { EmptyExpr };\nvar ImplicitReceiver = /** @class */ (function (_super) {\n tslib_1.__extends(ImplicitReceiver, _super);\n function ImplicitReceiver() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * @param {?} visitor\n * @param {?=} context\n * @return {?}\n */\n ImplicitReceiver.prototype.visit = /**\n * @param {?} visitor\n * @param {?=} context\n * @return {?}\n */\n function (visitor, context) {\n if (context === void 0) { context = null; }\n return visitor.visitImplicitReceiver(this, context);\n };\n return ImplicitReceiver;\n}(AST));\nexport { ImplicitReceiver };\n/**\n * Multiple expressions separated by a semicolon.\n */\nvar /**\n * Multiple expressions separated by a semicolon.\n */\nChain = /** @class */ (function (_super) {\n tslib_1.__extends(Chain, _super);\n function Chain(span, expressions) {\n var _this = _super.call(this, span) || this;\n _this.expressions = expressions;\n return _this;\n }\n /**\n * @param {?} visitor\n * @param {?=} context\n * @return {?}\n */\n Chain.prototype.visit = /**\n * @param {?} visitor\n * @param {?=} context\n * @return {?}\n */\n function (visitor, context) {\n if (context === void 0) { context = null; }\n return visitor.visitChain(this, context);\n };\n return Chain;\n}(AST));\n/**\n * Multiple expressions separated by a semicolon.\n */\nexport { Chain };\nfunction Chain_tsickle_Closure_declarations() {\n /** @type {?} */\n Chain.prototype.expressions;\n}\nvar Conditional = /** @class */ (function (_super) {\n tslib_1.__extends(Conditional, _super);\n function Conditional(span, condition, trueExp, falseExp) {\n var _this = _super.call(this, span) || this;\n _this.condition = condition;\n _this.trueExp = trueExp;\n _this.falseExp = falseExp;\n return _this;\n }\n /**\n * @param {?} visitor\n * @param {?=} context\n * @return {?}\n */\n Conditional.prototype.visit = /**\n * @param {?} visitor\n * @param {?=} context\n * @return {?}\n */\n function (visitor, context) {\n if (context === void 0) { context = null; }\n return visitor.visitConditional(this, context);\n };\n return Conditional;\n}(AST));\nexport { Conditional };\nfunction Conditional_tsickle_Closure_declarations() {\n /** @type {?} */\n Conditional.prototype.condition;\n /** @type {?} */\n Conditional.prototype.trueExp;\n /** @type {?} */\n Conditional.prototype.falseExp;\n}\nvar PropertyRead = /** @class */ (function (_super) {\n tslib_1.__extends(PropertyRead, _super);\n function PropertyRead(span, receiver, name) {\n var _this = _super.call(this, span) || this;\n _this.receiver = receiver;\n _this.name = name;\n return _this;\n }\n /**\n * @param {?} visitor\n * @param {?=} context\n * @return {?}\n */\n PropertyRead.prototype.visit = /**\n * @param {?} visitor\n * @param {?=} context\n * @return {?}\n */\n function (visitor, context) {\n if (context === void 0) { context = null; }\n return visitor.visitPropertyRead(this, context);\n };\n return PropertyRead;\n}(AST));\nexport { PropertyRead };\nfunction PropertyRead_tsickle_Closure_declarations() {\n /** @type {?} */\n PropertyRead.prototype.receiver;\n /** @type {?} */\n PropertyRead.prototype.name;\n}\nvar PropertyWrite = /** @class */ (function (_super) {\n tslib_1.__extends(PropertyWrite, _super);\n function PropertyWrite(span, receiver, name, value) {\n var _this = _super.call(this, span) || this;\n _this.receiver = receiver;\n _this.name = name;\n _this.value = value;\n return _this;\n }\n /**\n * @param {?} visitor\n * @param {?=} context\n * @return {?}\n */\n PropertyWrite.prototype.visit = /**\n * @param {?} visitor\n * @param {?=} context\n * @return {?}\n */\n function (visitor, context) {\n if (context === void 0) { context = null; }\n return visitor.visitPropertyWrite(this, context);\n };\n return PropertyWrite;\n}(AST));\nexport { PropertyWrite };\nfunction PropertyWrite_tsickle_Closure_declarations() {\n /** @type {?} */\n PropertyWrite.prototype.receiver;\n /** @type {?} */\n PropertyWrite.prototype.name;\n /** @type {?} */\n PropertyWrite.prototype.value;\n}\nvar SafePropertyRead = /** @class */ (function (_super) {\n tslib_1.__extends(SafePropertyRead, _super);\n function SafePropertyRead(span, receiver, name) {\n var _this = _super.call(this, span) || this;\n _this.receiver = receiver;\n _this.name = name;\n return _this;\n }\n /**\n * @param {?} visitor\n * @param {?=} context\n * @return {?}\n */\n SafePropertyRead.prototype.visit = /**\n * @param {?} visitor\n * @param {?=} context\n * @return {?}\n */\n function (visitor, context) {\n if (context === void 0) { context = null; }\n return visitor.visitSafePropertyRead(this, context);\n };\n return SafePropertyRead;\n}(AST));\nexport { SafePropertyRead };\nfunction SafePropertyRead_tsickle_Closure_declarations() {\n /** @type {?} */\n SafePropertyRead.prototype.receiver;\n /** @type {?} */\n SafePropertyRead.prototype.name;\n}\nvar KeyedRead = /** @class */ (function (_super) {\n tslib_1.__extends(KeyedRead, _super);\n function KeyedRead(span, obj, key) {\n var _this = _super.call(this, span) || this;\n _this.obj = obj;\n _this.key = key;\n return _this;\n }\n /**\n * @param {?} visitor\n * @param {?=} context\n * @return {?}\n */\n KeyedRead.prototype.visit = /**\n * @param {?} visitor\n * @param {?=} context\n * @return {?}\n */\n function (visitor, context) {\n if (context === void 0) { context = null; }\n return visitor.visitKeyedRead(this, context);\n };\n return KeyedRead;\n}(AST));\nexport { KeyedRead };\nfunction KeyedRead_tsickle_Closure_declarations() {\n /** @type {?} */\n KeyedRead.prototype.obj;\n /** @type {?} */\n KeyedRead.prototype.key;\n}\nvar KeyedWrite = /** @class */ (function (_super) {\n tslib_1.__extends(KeyedWrite, _super);\n function KeyedWrite(span, obj, key, value) {\n var _this = _super.call(this, span) || this;\n _this.obj = obj;\n _this.key = key;\n _this.value = value;\n return _this;\n }\n /**\n * @param {?} visitor\n * @param {?=} context\n * @return {?}\n */\n KeyedWrite.prototype.visit = /**\n * @param {?} visitor\n * @param {?=} context\n * @return {?}\n */\n function (visitor, context) {\n if (context === void 0) { context = null; }\n return visitor.visitKeyedWrite(this, context);\n };\n return KeyedWrite;\n}(AST));\nexport { KeyedWrite };\nfunction KeyedWrite_tsickle_Closure_declarations() {\n /** @type {?} */\n KeyedWrite.prototype.obj;\n /** @type {?} */\n KeyedWrite.prototype.key;\n /** @type {?} */\n KeyedWrite.prototype.value;\n}\nvar BindingPipe = /** @class */ (function (_super) {\n tslib_1.__extends(BindingPipe, _super);\n function BindingPipe(span, exp, name, args) {\n var _this = _super.call(this, span) || this;\n _this.exp = exp;\n _this.name = name;\n _this.args = args;\n return _this;\n }\n /**\n * @param {?} visitor\n * @param {?=} context\n * @return {?}\n */\n BindingPipe.prototype.visit = /**\n * @param {?} visitor\n * @param {?=} context\n * @return {?}\n */\n function (visitor, context) {\n if (context === void 0) { context = null; }\n return visitor.visitPipe(this, context);\n };\n return BindingPipe;\n}(AST));\nexport { BindingPipe };\nfunction BindingPipe_tsickle_Closure_declarations() {\n /** @type {?} */\n BindingPipe.prototype.exp;\n /** @type {?} */\n BindingPipe.prototype.name;\n /** @type {?} */\n BindingPipe.prototype.args;\n}\nvar LiteralPrimitive = /** @class */ (function (_super) {\n tslib_1.__extends(LiteralPrimitive, _super);\n function LiteralPrimitive(span, value) {\n var _this = _super.call(this, span) || this;\n _this.value = value;\n return _this;\n }\n /**\n * @param {?} visitor\n * @param {?=} context\n * @return {?}\n */\n LiteralPrimitive.prototype.visit = /**\n * @param {?} visitor\n * @param {?=} context\n * @return {?}\n */\n function (visitor, context) {\n if (context === void 0) { context = null; }\n return visitor.visitLiteralPrimitive(this, context);\n };\n return LiteralPrimitive;\n}(AST));\nexport { LiteralPrimitive };\nfunction LiteralPrimitive_tsickle_Closure_declarations() {\n /** @type {?} */\n LiteralPrimitive.prototype.value;\n}\nvar LiteralArray = /** @class */ (function (_super) {\n tslib_1.__extends(LiteralArray, _super);\n function LiteralArray(span, expressions) {\n var _this = _super.call(this, span) || this;\n _this.expressions = expressions;\n return _this;\n }\n /**\n * @param {?} visitor\n * @param {?=} context\n * @return {?}\n */\n LiteralArray.prototype.visit = /**\n * @param {?} visitor\n * @param {?=} context\n * @return {?}\n */\n function (visitor, context) {\n if (context === void 0) { context = null; }\n return visitor.visitLiteralArray(this, context);\n };\n return LiteralArray;\n}(AST));\nexport { LiteralArray };\nfunction LiteralArray_tsickle_Closure_declarations() {\n /** @type {?} */\n LiteralArray.prototype.expressions;\n}\nvar LiteralMap = /** @class */ (function (_super) {\n tslib_1.__extends(LiteralMap, _super);\n function LiteralMap(span, keys, values) {\n var _this = _super.call(this, span) || this;\n _this.keys = keys;\n _this.values = values;\n return _this;\n }\n /**\n * @param {?} visitor\n * @param {?=} context\n * @return {?}\n */\n LiteralMap.prototype.visit = /**\n * @param {?} visitor\n * @param {?=} context\n * @return {?}\n */\n function (visitor, context) {\n if (context === void 0) { context = null; }\n return visitor.visitLiteralMap(this, context);\n };\n return LiteralMap;\n}(AST));\nexport { LiteralMap };\nfunction LiteralMap_tsickle_Closure_declarations() {\n /** @type {?} */\n LiteralMap.prototype.keys;\n /** @type {?} */\n LiteralMap.prototype.values;\n}\nvar Interpolation = /** @class */ (function (_super) {\n tslib_1.__extends(Interpolation, _super);\n function Interpolation(span, strings, expressions) {\n var _this = _super.call(this, span) || this;\n _this.strings = strings;\n _this.expressions = expressions;\n return _this;\n }\n /**\n * @param {?} visitor\n * @param {?=} context\n * @return {?}\n */\n Interpolation.prototype.visit = /**\n * @param {?} visitor\n * @param {?=} context\n * @return {?}\n */\n function (visitor, context) {\n if (context === void 0) { context = null; }\n return visitor.visitInterpolation(this, context);\n };\n return Interpolation;\n}(AST));\nexport { Interpolation };\nfunction Interpolation_tsickle_Closure_declarations() {\n /** @type {?} */\n Interpolation.prototype.strings;\n /** @type {?} */\n Interpolation.prototype.expressions;\n}\nvar Binary = /** @class */ (function (_super) {\n tslib_1.__extends(Binary, _super);\n function Binary(span, operation, left, right) {\n var _this = _super.call(this, span) || this;\n _this.operation = operation;\n _this.left = left;\n _this.right = right;\n return _this;\n }\n /**\n * @param {?} visitor\n * @param {?=} context\n * @return {?}\n */\n Binary.prototype.visit = /**\n * @param {?} visitor\n * @param {?=} context\n * @return {?}\n */\n function (visitor, context) {\n if (context === void 0) { context = null; }\n return visitor.visitBinary(this, context);\n };\n return Binary;\n}(AST));\nexport { Binary };\nfunction Binary_tsickle_Closure_declarations() {\n /** @type {?} */\n Binary.prototype.operation;\n /** @type {?} */\n Binary.prototype.left;\n /** @type {?} */\n Binary.prototype.right;\n}\nvar PrefixNot = /** @class */ (function (_super) {\n tslib_1.__extends(PrefixNot, _super);\n function PrefixNot(span, expression) {\n var _this = _super.call(this, span) || this;\n _this.expression = expression;\n return _this;\n }\n /**\n * @param {?} visitor\n * @param {?=} context\n * @return {?}\n */\n PrefixNot.prototype.visit = /**\n * @param {?} visitor\n * @param {?=} context\n * @return {?}\n */\n function (visitor, context) {\n if (context === void 0) { context = null; }\n return visitor.visitPrefixNot(this, context);\n };\n return PrefixNot;\n}(AST));\nexport { PrefixNot };\nfunction PrefixNot_tsickle_Closure_declarations() {\n /** @type {?} */\n PrefixNot.prototype.expression;\n}\nvar NonNullAssert = /** @class */ (function (_super) {\n tslib_1.__extends(NonNullAssert, _super);\n function NonNullAssert(span, expression) {\n var _this = _super.call(this, span) || this;\n _this.expression = expression;\n return _this;\n }\n /**\n * @param {?} visitor\n * @param {?=} context\n * @return {?}\n */\n NonNullAssert.prototype.visit = /**\n * @param {?} visitor\n * @param {?=} context\n * @return {?}\n */\n function (visitor, context) {\n if (context === void 0) { context = null; }\n return visitor.visitNonNullAssert(this, context);\n };\n return NonNullAssert;\n}(AST));\nexport { NonNullAssert };\nfunction NonNullAssert_tsickle_Closure_declarations() {\n /** @type {?} */\n NonNullAssert.prototype.expression;\n}\nvar MethodCall = /** @class */ (function (_super) {\n tslib_1.__extends(MethodCall, _super);\n function MethodCall(span, receiver, name, args) {\n var _this = _super.call(this, span) || this;\n _this.receiver = receiver;\n _this.name = name;\n _this.args = args;\n return _this;\n }\n /**\n * @param {?} visitor\n * @param {?=} context\n * @return {?}\n */\n MethodCall.prototype.visit = /**\n * @param {?} visitor\n * @param {?=} context\n * @return {?}\n */\n function (visitor, context) {\n if (context === void 0) { context = null; }\n return visitor.visitMethodCall(this, context);\n };\n return MethodCall;\n}(AST));\nexport { MethodCall };\nfunction MethodCall_tsickle_Closure_declarations() {\n /** @type {?} */\n MethodCall.prototype.receiver;\n /** @type {?} */\n MethodCall.prototype.name;\n /** @type {?} */\n MethodCall.prototype.args;\n}\nvar SafeMethodCall = /** @class */ (function (_super) {\n tslib_1.__extends(SafeMethodCall, _super);\n function SafeMethodCall(span, receiver, name, args) {\n var _this = _super.call(this, span) || this;\n _this.receiver = receiver;\n _this.name = name;\n _this.args = args;\n return _this;\n }\n /**\n * @param {?} visitor\n * @param {?=} context\n * @return {?}\n */\n SafeMethodCall.prototype.visit = /**\n * @param {?} visitor\n * @param {?=} context\n * @return {?}\n */\n function (visitor, context) {\n if (context === void 0) { context = null; }\n return visitor.visitSafeMethodCall(this, context);\n };\n return SafeMethodCall;\n}(AST));\nexport { SafeMethodCall };\nfunction SafeMethodCall_tsickle_Closure_declarations() {\n /** @type {?} */\n SafeMethodCall.prototype.receiver;\n /** @type {?} */\n SafeMethodCall.prototype.name;\n /** @type {?} */\n SafeMethodCall.prototype.args;\n}\nvar FunctionCall = /** @class */ (function (_super) {\n tslib_1.__extends(FunctionCall, _super);\n function FunctionCall(span, target, args) {\n var _this = _super.call(this, span) || this;\n _this.target = target;\n _this.args = args;\n return _this;\n }\n /**\n * @param {?} visitor\n * @param {?=} context\n * @return {?}\n */\n FunctionCall.prototype.visit = /**\n * @param {?} visitor\n * @param {?=} context\n * @return {?}\n */\n function (visitor, context) {\n if (context === void 0) { context = null; }\n return visitor.visitFunctionCall(this, context);\n };\n return FunctionCall;\n}(AST));\nexport { FunctionCall };\nfunction FunctionCall_tsickle_Closure_declarations() {\n /** @type {?} */\n FunctionCall.prototype.target;\n /** @type {?} */\n FunctionCall.prototype.args;\n}\nvar ASTWithSource = /** @class */ (function (_super) {\n tslib_1.__extends(ASTWithSource, _super);\n function ASTWithSource(ast, source, location, errors) {\n var _this = _super.call(this, new ParseSpan(0, source == null ? 0 : source.length)) || this;\n _this.ast = ast;\n _this.source = source;\n _this.location = location;\n _this.errors = errors;\n return _this;\n }\n /**\n * @param {?} visitor\n * @param {?=} context\n * @return {?}\n */\n ASTWithSource.prototype.visit = /**\n * @param {?} visitor\n * @param {?=} context\n * @return {?}\n */\n function (visitor, context) {\n if (context === void 0) { context = null; }\n return this.ast.visit(visitor, context);\n };\n /**\n * @return {?}\n */\n ASTWithSource.prototype.toString = /**\n * @return {?}\n */\n function () { return this.source + \" in \" + this.location; };\n return ASTWithSource;\n}(AST));\nexport { ASTWithSource };\nfunction ASTWithSource_tsickle_Closure_declarations() {\n /** @type {?} */\n ASTWithSource.prototype.ast;\n /** @type {?} */\n ASTWithSource.prototype.source;\n /** @type {?} */\n ASTWithSource.prototype.location;\n /** @type {?} */\n ASTWithSource.prototype.errors;\n}\nvar TemplateBinding = /** @class */ (function () {\n function TemplateBinding(span, key, keyIsVar, name, expression) {\n this.span = span;\n this.key = key;\n this.keyIsVar = keyIsVar;\n this.name = name;\n this.expression = expression;\n }\n return TemplateBinding;\n}());\nexport { TemplateBinding };\nfunction TemplateBinding_tsickle_Closure_declarations() {\n /** @type {?} */\n TemplateBinding.prototype.span;\n /** @type {?} */\n TemplateBinding.prototype.key;\n /** @type {?} */\n TemplateBinding.prototype.keyIsVar;\n /** @type {?} */\n TemplateBinding.prototype.name;\n /** @type {?} */\n TemplateBinding.prototype.expression;\n}\n/**\n * @record\n */\nexport function AstVisitor() { }\nfunction AstVisitor_tsickle_Closure_declarations() {\n /** @type {?} */\n AstVisitor.prototype.visitBinary;\n /** @type {?} */\n AstVisitor.prototype.visitChain;\n /** @type {?} */\n AstVisitor.prototype.visitConditional;\n /** @type {?} */\n AstVisitor.prototype.visitFunctionCall;\n /** @type {?} */\n AstVisitor.prototype.visitImplicitReceiver;\n /** @type {?} */\n AstVisitor.prototype.visitInterpolation;\n /** @type {?} */\n AstVisitor.prototype.visitKeyedRead;\n /** @type {?} */\n AstVisitor.prototype.visitKeyedWrite;\n /** @type {?} */\n AstVisitor.prototype.visitLiteralArray;\n /** @type {?} */\n AstVisitor.prototype.visitLiteralMap;\n /** @type {?} */\n AstVisitor.prototype.visitLiteralPrimitive;\n /** @type {?} */\n AstVisitor.prototype.visitMethodCall;\n /** @type {?} */\n AstVisitor.prototype.visitPipe;\n /** @type {?} */\n AstVisitor.prototype.visitPrefixNot;\n /** @type {?} */\n AstVisitor.prototype.visitNonNullAssert;\n /** @type {?} */\n AstVisitor.prototype.visitPropertyRead;\n /** @type {?} */\n AstVisitor.prototype.visitPropertyWrite;\n /** @type {?} */\n AstVisitor.prototype.visitQuote;\n /** @type {?} */\n AstVisitor.prototype.visitSafeMethodCall;\n /** @type {?} */\n AstVisitor.prototype.visitSafePropertyRead;\n /** @type {?|undefined} */\n AstVisitor.prototype.visit;\n}\nvar NullAstVisitor = /** @class */ (function () {\n function NullAstVisitor() {\n }\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n NullAstVisitor.prototype.visitBinary = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) { };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n NullAstVisitor.prototype.visitChain = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) { };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n NullAstVisitor.prototype.visitConditional = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) { };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n NullAstVisitor.prototype.visitFunctionCall = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) { };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n NullAstVisitor.prototype.visitImplicitReceiver = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) { };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n NullAstVisitor.prototype.visitInterpolation = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) { };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n NullAstVisitor.prototype.visitKeyedRead = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) { };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n NullAstVisitor.prototype.visitKeyedWrite = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) { };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n NullAstVisitor.prototype.visitLiteralArray = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) { };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n NullAstVisitor.prototype.visitLiteralMap = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) { };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n NullAstVisitor.prototype.visitLiteralPrimitive = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) { };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n NullAstVisitor.prototype.visitMethodCall = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) { };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n NullAstVisitor.prototype.visitPipe = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) { };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n NullAstVisitor.prototype.visitPrefixNot = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) { };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n NullAstVisitor.prototype.visitNonNullAssert = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) { };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n NullAstVisitor.prototype.visitPropertyRead = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) { };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n NullAstVisitor.prototype.visitPropertyWrite = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) { };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n NullAstVisitor.prototype.visitQuote = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) { };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n NullAstVisitor.prototype.visitSafeMethodCall = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) { };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n NullAstVisitor.prototype.visitSafePropertyRead = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) { };\n return NullAstVisitor;\n}());\nexport { NullAstVisitor };\nvar RecursiveAstVisitor = /** @class */ (function () {\n function RecursiveAstVisitor() {\n }\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n RecursiveAstVisitor.prototype.visitBinary = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) {\n ast.left.visit(this);\n ast.right.visit(this);\n return null;\n };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n RecursiveAstVisitor.prototype.visitChain = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) { return this.visitAll(ast.expressions, context); };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n RecursiveAstVisitor.prototype.visitConditional = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) {\n ast.condition.visit(this);\n ast.trueExp.visit(this);\n ast.falseExp.visit(this);\n return null;\n };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n RecursiveAstVisitor.prototype.visitPipe = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) {\n ast.exp.visit(this);\n this.visitAll(ast.args, context);\n return null;\n };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n RecursiveAstVisitor.prototype.visitFunctionCall = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) {\n /** @type {?} */ ((ast.target)).visit(this);\n this.visitAll(ast.args, context);\n return null;\n };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n RecursiveAstVisitor.prototype.visitImplicitReceiver = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) { return null; };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n RecursiveAstVisitor.prototype.visitInterpolation = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) {\n return this.visitAll(ast.expressions, context);\n };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n RecursiveAstVisitor.prototype.visitKeyedRead = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) {\n ast.obj.visit(this);\n ast.key.visit(this);\n return null;\n };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n RecursiveAstVisitor.prototype.visitKeyedWrite = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) {\n ast.obj.visit(this);\n ast.key.visit(this);\n ast.value.visit(this);\n return null;\n };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n RecursiveAstVisitor.prototype.visitLiteralArray = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) {\n return this.visitAll(ast.expressions, context);\n };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n RecursiveAstVisitor.prototype.visitLiteralMap = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) { return this.visitAll(ast.values, context); };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n RecursiveAstVisitor.prototype.visitLiteralPrimitive = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) { return null; };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n RecursiveAstVisitor.prototype.visitMethodCall = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) {\n ast.receiver.visit(this);\n return this.visitAll(ast.args, context);\n };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n RecursiveAstVisitor.prototype.visitPrefixNot = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) {\n ast.expression.visit(this);\n return null;\n };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n RecursiveAstVisitor.prototype.visitNonNullAssert = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) {\n ast.expression.visit(this);\n return null;\n };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n RecursiveAstVisitor.prototype.visitPropertyRead = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) {\n ast.receiver.visit(this);\n return null;\n };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n RecursiveAstVisitor.prototype.visitPropertyWrite = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) {\n ast.receiver.visit(this);\n ast.value.visit(this);\n return null;\n };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n RecursiveAstVisitor.prototype.visitSafePropertyRead = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) {\n ast.receiver.visit(this);\n return null;\n };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n RecursiveAstVisitor.prototype.visitSafeMethodCall = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) {\n ast.receiver.visit(this);\n return this.visitAll(ast.args, context);\n };\n /**\n * @param {?} asts\n * @param {?} context\n * @return {?}\n */\n RecursiveAstVisitor.prototype.visitAll = /**\n * @param {?} asts\n * @param {?} context\n * @return {?}\n */\n function (asts, context) {\n var _this = this;\n asts.forEach(function (ast) { return ast.visit(_this, context); });\n return null;\n };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n RecursiveAstVisitor.prototype.visitQuote = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) { return null; };\n return RecursiveAstVisitor;\n}());\nexport { RecursiveAstVisitor };\nvar AstTransformer = /** @class */ (function () {\n function AstTransformer() {\n }\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n AstTransformer.prototype.visitImplicitReceiver = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) { return ast; };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n AstTransformer.prototype.visitInterpolation = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) {\n return new Interpolation(ast.span, ast.strings, this.visitAll(ast.expressions));\n };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n AstTransformer.prototype.visitLiteralPrimitive = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) {\n return new LiteralPrimitive(ast.span, ast.value);\n };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n AstTransformer.prototype.visitPropertyRead = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) {\n return new PropertyRead(ast.span, ast.receiver.visit(this), ast.name);\n };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n AstTransformer.prototype.visitPropertyWrite = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) {\n return new PropertyWrite(ast.span, ast.receiver.visit(this), ast.name, ast.value.visit(this));\n };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n AstTransformer.prototype.visitSafePropertyRead = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) {\n return new SafePropertyRead(ast.span, ast.receiver.visit(this), ast.name);\n };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n AstTransformer.prototype.visitMethodCall = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) {\n return new MethodCall(ast.span, ast.receiver.visit(this), ast.name, this.visitAll(ast.args));\n };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n AstTransformer.prototype.visitSafeMethodCall = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) {\n return new SafeMethodCall(ast.span, ast.receiver.visit(this), ast.name, this.visitAll(ast.args));\n };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n AstTransformer.prototype.visitFunctionCall = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) {\n return new FunctionCall(ast.span, /** @type {?} */ ((ast.target)).visit(this), this.visitAll(ast.args));\n };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n AstTransformer.prototype.visitLiteralArray = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) {\n return new LiteralArray(ast.span, this.visitAll(ast.expressions));\n };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n AstTransformer.prototype.visitLiteralMap = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) {\n return new LiteralMap(ast.span, ast.keys, this.visitAll(ast.values));\n };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n AstTransformer.prototype.visitBinary = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) {\n return new Binary(ast.span, ast.operation, ast.left.visit(this), ast.right.visit(this));\n };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n AstTransformer.prototype.visitPrefixNot = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) {\n return new PrefixNot(ast.span, ast.expression.visit(this));\n };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n AstTransformer.prototype.visitNonNullAssert = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) {\n return new NonNullAssert(ast.span, ast.expression.visit(this));\n };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n AstTransformer.prototype.visitConditional = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) {\n return new Conditional(ast.span, ast.condition.visit(this), ast.trueExp.visit(this), ast.falseExp.visit(this));\n };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n AstTransformer.prototype.visitPipe = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) {\n return new BindingPipe(ast.span, ast.exp.visit(this), ast.name, this.visitAll(ast.args));\n };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n AstTransformer.prototype.visitKeyedRead = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) {\n return new KeyedRead(ast.span, ast.obj.visit(this), ast.key.visit(this));\n };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n AstTransformer.prototype.visitKeyedWrite = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) {\n return new KeyedWrite(ast.span, ast.obj.visit(this), ast.key.visit(this), ast.value.visit(this));\n };\n /**\n * @param {?} asts\n * @return {?}\n */\n AstTransformer.prototype.visitAll = /**\n * @param {?} asts\n * @return {?}\n */\n function (asts) {\n var /** @type {?} */ res = new Array(asts.length);\n for (var /** @type {?} */ i = 0; i < asts.length; ++i) {\n res[i] = asts[i].visit(this);\n }\n return res;\n };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n AstTransformer.prototype.visitChain = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) {\n return new Chain(ast.span, this.visitAll(ast.expressions));\n };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n AstTransformer.prototype.visitQuote = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) {\n return new Quote(ast.span, ast.prefix, ast.uninterpretedExpression, ast.location);\n };\n return AstTransformer;\n}());\nexport { AstTransformer };\n/**\n * @param {?} ast\n * @param {?} visitor\n * @param {?=} context\n * @return {?}\n */\nexport function visitAstChildren(ast, visitor, context) {\n /**\n * @param {?} ast\n * @return {?}\n */\n function visit(ast) {\n visitor.visit && visitor.visit(ast, context) || ast.visit(visitor, context);\n }\n /**\n * @template T\n * @param {?} asts\n * @return {?}\n */\n function visitAll(asts) { asts.forEach(visit); }\n ast.visit({\n visitBinary: /**\n * @param {?} ast\n * @return {?}\n */\n function (ast) {\n visit(ast.left);\n visit(ast.right);\n },\n visitChain: /**\n * @param {?} ast\n * @return {?}\n */\n function (ast) { visitAll(ast.expressions); },\n visitConditional: /**\n * @param {?} ast\n * @return {?}\n */\n function (ast) {\n visit(ast.condition);\n visit(ast.trueExp);\n visit(ast.falseExp);\n },\n visitFunctionCall: /**\n * @param {?} ast\n * @return {?}\n */\n function (ast) {\n if (ast.target) {\n visit(ast.target);\n }\n visitAll(ast.args);\n },\n visitImplicitReceiver: /**\n * @param {?} ast\n * @return {?}\n */\n function (ast) { },\n visitInterpolation: /**\n * @param {?} ast\n * @return {?}\n */\n function (ast) { visitAll(ast.expressions); },\n visitKeyedRead: /**\n * @param {?} ast\n * @return {?}\n */\n function (ast) {\n visit(ast.obj);\n visit(ast.key);\n },\n visitKeyedWrite: /**\n * @param {?} ast\n * @return {?}\n */\n function (ast) {\n visit(ast.obj);\n visit(ast.key);\n visit(ast.obj);\n },\n visitLiteralArray: /**\n * @param {?} ast\n * @return {?}\n */\n function (ast) { visitAll(ast.expressions); },\n visitLiteralMap: /**\n * @param {?} ast\n * @return {?}\n */\n function (ast) { },\n visitLiteralPrimitive: /**\n * @param {?} ast\n * @return {?}\n */\n function (ast) { },\n visitMethodCall: /**\n * @param {?} ast\n * @return {?}\n */\n function (ast) {\n visit(ast.receiver);\n visitAll(ast.args);\n },\n visitPipe: /**\n * @param {?} ast\n * @return {?}\n */\n function (ast) {\n visit(ast.exp);\n visitAll(ast.args);\n },\n visitPrefixNot: /**\n * @param {?} ast\n * @return {?}\n */\n function (ast) { visit(ast.expression); },\n visitNonNullAssert: /**\n * @param {?} ast\n * @return {?}\n */\n function (ast) { visit(ast.expression); },\n visitPropertyRead: /**\n * @param {?} ast\n * @return {?}\n */\n function (ast) { visit(ast.receiver); },\n visitPropertyWrite: /**\n * @param {?} ast\n * @return {?}\n */\n function (ast) {\n visit(ast.receiver);\n visit(ast.value);\n },\n visitQuote: /**\n * @param {?} ast\n * @return {?}\n */\n function (ast) { },\n visitSafeMethodCall: /**\n * @param {?} ast\n * @return {?}\n */\n function (ast) {\n visit(ast.receiver);\n visitAll(ast.args);\n },\n visitSafePropertyRead: /**\n * @param {?} ast\n * @return {?}\n */\n function (ast) { visit(ast.receiver); },\n });\n}\n//# sourceMappingURL=ast.js.map","/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this 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 { DEFAULT_INTERPOLATION_CONFIG } from '../ml_parser/interpolation_config';\nimport { escapeRegExp } from '../util';\nimport { ASTWithSource, Binary, BindingPipe, Chain, Conditional, EmptyExpr, FunctionCall, ImplicitReceiver, Interpolation, KeyedRead, KeyedWrite, LiteralArray, LiteralMap, LiteralPrimitive, MethodCall, NonNullAssert, ParseSpan, ParserError, PrefixNot, PropertyRead, PropertyWrite, Quote, SafeMethodCall, SafePropertyRead, TemplateBinding } from './ast';\nimport { EOF, TokenType, isIdentifier, isQuote } from './lexer';\nvar SplitInterpolation = /** @class */ (function () {\n function SplitInterpolation(strings, expressions, offsets) {\n this.strings = strings;\n this.expressions = expressions;\n this.offsets = offsets;\n }\n return SplitInterpolation;\n}());\nexport { SplitInterpolation };\nfunction SplitInterpolation_tsickle_Closure_declarations() {\n /** @type {?} */\n SplitInterpolation.prototype.strings;\n /** @type {?} */\n SplitInterpolation.prototype.expressions;\n /** @type {?} */\n SplitInterpolation.prototype.offsets;\n}\nvar TemplateBindingParseResult = /** @class */ (function () {\n function TemplateBindingParseResult(templateBindings, warnings, errors) {\n this.templateBindings = templateBindings;\n this.warnings = warnings;\n this.errors = errors;\n }\n return TemplateBindingParseResult;\n}());\nexport { TemplateBindingParseResult };\nfunction TemplateBindingParseResult_tsickle_Closure_declarations() {\n /** @type {?} */\n TemplateBindingParseResult.prototype.templateBindings;\n /** @type {?} */\n TemplateBindingParseResult.prototype.warnings;\n /** @type {?} */\n TemplateBindingParseResult.prototype.errors;\n}\n/**\n * @param {?} config\n * @return {?}\n */\nfunction _createInterpolateRegExp(config) {\n var /** @type {?} */ pattern = escapeRegExp(config.start) + '([\\\\s\\\\S]*?)' + escapeRegExp(config.end);\n return new RegExp(pattern, 'g');\n}\nvar Parser = /** @class */ (function () {\n function Parser(_lexer) {\n this._lexer = _lexer;\n this.errors = [];\n }\n /**\n * @param {?} input\n * @param {?} location\n * @param {?=} interpolationConfig\n * @return {?}\n */\n Parser.prototype.parseAction = /**\n * @param {?} input\n * @param {?} location\n * @param {?=} interpolationConfig\n * @return {?}\n */\n function (input, location, interpolationConfig) {\n if (interpolationConfig === void 0) { interpolationConfig = DEFAULT_INTERPOLATION_CONFIG; }\n this._checkNoInterpolation(input, location, interpolationConfig);\n var /** @type {?} */ sourceToLex = this._stripComments(input);\n var /** @type {?} */ tokens = this._lexer.tokenize(this._stripComments(input));\n var /** @type {?} */ ast = new _ParseAST(input, location, tokens, sourceToLex.length, true, this.errors, input.length - sourceToLex.length)\n .parseChain();\n return new ASTWithSource(ast, input, location, this.errors);\n };\n /**\n * @param {?} input\n * @param {?} location\n * @param {?=} interpolationConfig\n * @return {?}\n */\n Parser.prototype.parseBinding = /**\n * @param {?} input\n * @param {?} location\n * @param {?=} interpolationConfig\n * @return {?}\n */\n function (input, location, interpolationConfig) {\n if (interpolationConfig === void 0) { interpolationConfig = DEFAULT_INTERPOLATION_CONFIG; }\n var /** @type {?} */ ast = this._parseBindingAst(input, location, interpolationConfig);\n return new ASTWithSource(ast, input, location, this.errors);\n };\n /**\n * @param {?} input\n * @param {?} location\n * @param {?=} interpolationConfig\n * @return {?}\n */\n Parser.prototype.parseSimpleBinding = /**\n * @param {?} input\n * @param {?} location\n * @param {?=} interpolationConfig\n * @return {?}\n */\n function (input, location, interpolationConfig) {\n if (interpolationConfig === void 0) { interpolationConfig = DEFAULT_INTERPOLATION_CONFIG; }\n var /** @type {?} */ ast = this._parseBindingAst(input, location, interpolationConfig);\n var /** @type {?} */ errors = SimpleExpressionChecker.check(ast);\n if (errors.length > 0) {\n this._reportError(\"Host binding expression cannot contain \" + errors.join(' '), input, location);\n }\n return new ASTWithSource(ast, input, location, this.errors);\n };\n /**\n * @param {?} message\n * @param {?} input\n * @param {?} errLocation\n * @param {?=} ctxLocation\n * @return {?}\n */\n Parser.prototype._reportError = /**\n * @param {?} message\n * @param {?} input\n * @param {?} errLocation\n * @param {?=} ctxLocation\n * @return {?}\n */\n function (message, input, errLocation, ctxLocation) {\n this.errors.push(new ParserError(message, input, errLocation, ctxLocation));\n };\n /**\n * @param {?} input\n * @param {?} location\n * @param {?} interpolationConfig\n * @return {?}\n */\n Parser.prototype._parseBindingAst = /**\n * @param {?} input\n * @param {?} location\n * @param {?} interpolationConfig\n * @return {?}\n */\n function (input, location, interpolationConfig) {\n // Quotes expressions use 3rd-party expression language. We don't want to use\n // our lexer or parser for that, so we check for that ahead of time.\n var /** @type {?} */ quote = this._parseQuote(input, location);\n if (quote != null) {\n return quote;\n }\n this._checkNoInterpolation(input, location, interpolationConfig);\n var /** @type {?} */ sourceToLex = this._stripComments(input);\n var /** @type {?} */ tokens = this._lexer.tokenize(sourceToLex);\n return new _ParseAST(input, location, tokens, sourceToLex.length, false, this.errors, input.length - sourceToLex.length)\n .parseChain();\n };\n /**\n * @param {?} input\n * @param {?} location\n * @return {?}\n */\n Parser.prototype._parseQuote = /**\n * @param {?} input\n * @param {?} location\n * @return {?}\n */\n function (input, location) {\n if (input == null)\n return null;\n var /** @type {?} */ prefixSeparatorIndex = input.indexOf(':');\n if (prefixSeparatorIndex == -1)\n return null;\n var /** @type {?} */ prefix = input.substring(0, prefixSeparatorIndex).trim();\n if (!isIdentifier(prefix))\n return null;\n var /** @type {?} */ uninterpretedExpression = input.substring(prefixSeparatorIndex + 1);\n return new Quote(new ParseSpan(0, input.length), prefix, uninterpretedExpression, location);\n };\n /**\n * @param {?} prefixToken\n * @param {?} input\n * @param {?} location\n * @return {?}\n */\n Parser.prototype.parseTemplateBindings = /**\n * @param {?} prefixToken\n * @param {?} input\n * @param {?} location\n * @return {?}\n */\n function (prefixToken, input, location) {\n var /** @type {?} */ tokens = this._lexer.tokenize(input);\n if (prefixToken) {\n // Prefix the tokens with the tokens from prefixToken but have them take no space (0 index).\n var /** @type {?} */ prefixTokens = this._lexer.tokenize(prefixToken).map(function (t) {\n t.index = 0;\n return t;\n });\n tokens.unshift.apply(tokens, prefixTokens);\n }\n return new _ParseAST(input, location, tokens, input.length, false, this.errors, 0)\n .parseTemplateBindings();\n };\n /**\n * @param {?} input\n * @param {?} location\n * @param {?=} interpolationConfig\n * @return {?}\n */\n Parser.prototype.parseInterpolation = /**\n * @param {?} input\n * @param {?} location\n * @param {?=} interpolationConfig\n * @return {?}\n */\n function (input, location, interpolationConfig) {\n if (interpolationConfig === void 0) { interpolationConfig = DEFAULT_INTERPOLATION_CONFIG; }\n var /** @type {?} */ split = this.splitInterpolation(input, location, interpolationConfig);\n if (split == null)\n return null;\n var /** @type {?} */ expressions = [];\n for (var /** @type {?} */ i = 0; i < split.expressions.length; ++i) {\n var /** @type {?} */ expressionText = split.expressions[i];\n var /** @type {?} */ sourceToLex = this._stripComments(expressionText);\n var /** @type {?} */ tokens = this._lexer.tokenize(sourceToLex);\n var /** @type {?} */ ast = new _ParseAST(input, location, tokens, sourceToLex.length, false, this.errors, split.offsets[i] + (expressionText.length - sourceToLex.length))\n .parseChain();\n expressions.push(ast);\n }\n return new ASTWithSource(new Interpolation(new ParseSpan(0, input == null ? 0 : input.length), split.strings, expressions), input, location, this.errors);\n };\n /**\n * @param {?} input\n * @param {?} location\n * @param {?=} interpolationConfig\n * @return {?}\n */\n Parser.prototype.splitInterpolation = /**\n * @param {?} input\n * @param {?} location\n * @param {?=} interpolationConfig\n * @return {?}\n */\n function (input, location, interpolationConfig) {\n if (interpolationConfig === void 0) { interpolationConfig = DEFAULT_INTERPOLATION_CONFIG; }\n var /** @type {?} */ regexp = _createInterpolateRegExp(interpolationConfig);\n var /** @type {?} */ parts = input.split(regexp);\n if (parts.length <= 1) {\n return null;\n }\n var /** @type {?} */ strings = [];\n var /** @type {?} */ expressions = [];\n var /** @type {?} */ offsets = [];\n var /** @type {?} */ offset = 0;\n for (var /** @type {?} */ i = 0; i < parts.length; i++) {\n var /** @type {?} */ part = parts[i];\n if (i % 2 === 0) {\n // fixed string\n strings.push(part);\n offset += part.length;\n }\n else if (part.trim().length > 0) {\n offset += interpolationConfig.start.length;\n expressions.push(part);\n offsets.push(offset);\n offset += part.length + interpolationConfig.end.length;\n }\n else {\n this._reportError('Blank expressions are not allowed in interpolated strings', input, \"at column \" + this._findInterpolationErrorColumn(parts, i, interpolationConfig) + \" in\", location);\n expressions.push('$implict');\n offsets.push(offset);\n }\n }\n return new SplitInterpolation(strings, expressions, offsets);\n };\n /**\n * @param {?} input\n * @param {?} location\n * @return {?}\n */\n Parser.prototype.wrapLiteralPrimitive = /**\n * @param {?} input\n * @param {?} location\n * @return {?}\n */\n function (input, location) {\n return new ASTWithSource(new LiteralPrimitive(new ParseSpan(0, input == null ? 0 : input.length), input), input, location, this.errors);\n };\n /**\n * @param {?} input\n * @return {?}\n */\n Parser.prototype._stripComments = /**\n * @param {?} input\n * @return {?}\n */\n function (input) {\n var /** @type {?} */ i = this._commentStart(input);\n return i != null ? input.substring(0, i).trim() : input;\n };\n /**\n * @param {?} input\n * @return {?}\n */\n Parser.prototype._commentStart = /**\n * @param {?} input\n * @return {?}\n */\n function (input) {\n var /** @type {?} */ outerQuote = null;\n for (var /** @type {?} */ i = 0; i < input.length - 1; i++) {\n var /** @type {?} */ char = input.charCodeAt(i);\n var /** @type {?} */ nextChar = input.charCodeAt(i + 1);\n if (char === chars.$SLASH && nextChar == chars.$SLASH && outerQuote == null)\n return i;\n if (outerQuote === char) {\n outerQuote = null;\n }\n else if (outerQuote == null && isQuote(char)) {\n outerQuote = char;\n }\n }\n return null;\n };\n /**\n * @param {?} input\n * @param {?} location\n * @param {?} interpolationConfig\n * @return {?}\n */\n Parser.prototype._checkNoInterpolation = /**\n * @param {?} input\n * @param {?} location\n * @param {?} interpolationConfig\n * @return {?}\n */\n function (input, location, interpolationConfig) {\n var /** @type {?} */ regexp = _createInterpolateRegExp(interpolationConfig);\n var /** @type {?} */ parts = input.split(regexp);\n if (parts.length > 1) {\n this._reportError(\"Got interpolation (\" + interpolationConfig.start + interpolationConfig.end + \") where expression was expected\", input, \"at column \" + this._findInterpolationErrorColumn(parts, 1, interpolationConfig) + \" in\", location);\n }\n };\n /**\n * @param {?} parts\n * @param {?} partInErrIdx\n * @param {?} interpolationConfig\n * @return {?}\n */\n Parser.prototype._findInterpolationErrorColumn = /**\n * @param {?} parts\n * @param {?} partInErrIdx\n * @param {?} interpolationConfig\n * @return {?}\n */\n function (parts, partInErrIdx, interpolationConfig) {\n var /** @type {?} */ errLocation = '';\n for (var /** @type {?} */ j = 0; j < partInErrIdx; j++) {\n errLocation += j % 2 === 0 ?\n parts[j] :\n \"\" + interpolationConfig.start + parts[j] + interpolationConfig.end;\n }\n return errLocation.length;\n };\n return Parser;\n}());\nexport { Parser };\nfunction Parser_tsickle_Closure_declarations() {\n /** @type {?} */\n Parser.prototype.errors;\n /** @type {?} */\n Parser.prototype._lexer;\n}\nvar _ParseAST = /** @class */ (function () {\n function _ParseAST(input, location, tokens, inputLength, parseAction, errors, offset) {\n this.input = input;\n this.location = location;\n this.tokens = tokens;\n this.inputLength = inputLength;\n this.parseAction = parseAction;\n this.errors = errors;\n this.offset = offset;\n this.rparensExpected = 0;\n this.rbracketsExpected = 0;\n this.rbracesExpected = 0;\n this.index = 0;\n }\n /**\n * @param {?} offset\n * @return {?}\n */\n _ParseAST.prototype.peek = /**\n * @param {?} offset\n * @return {?}\n */\n function (offset) {\n var /** @type {?} */ i = this.index + offset;\n return i < this.tokens.length ? this.tokens[i] : EOF;\n };\n Object.defineProperty(_ParseAST.prototype, \"next\", {\n get: /**\n * @return {?}\n */\n function () { return this.peek(0); },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(_ParseAST.prototype, \"inputIndex\", {\n get: /**\n * @return {?}\n */\n function () {\n return (this.index < this.tokens.length) ? this.next.index + this.offset :\n this.inputLength + this.offset;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @param {?} start\n * @return {?}\n */\n _ParseAST.prototype.span = /**\n * @param {?} start\n * @return {?}\n */\n function (start) { return new ParseSpan(start, this.inputIndex); };\n /**\n * @return {?}\n */\n _ParseAST.prototype.advance = /**\n * @return {?}\n */\n function () { this.index++; };\n /**\n * @param {?} code\n * @return {?}\n */\n _ParseAST.prototype.optionalCharacter = /**\n * @param {?} code\n * @return {?}\n */\n function (code) {\n if (this.next.isCharacter(code)) {\n this.advance();\n return true;\n }\n else {\n return false;\n }\n };\n /**\n * @return {?}\n */\n _ParseAST.prototype.peekKeywordLet = /**\n * @return {?}\n */\n function () { return this.next.isKeywordLet(); };\n /**\n * @return {?}\n */\n _ParseAST.prototype.peekKeywordAs = /**\n * @return {?}\n */\n function () { return this.next.isKeywordAs(); };\n /**\n * @param {?} code\n * @return {?}\n */\n _ParseAST.prototype.expectCharacter = /**\n * @param {?} code\n * @return {?}\n */\n function (code) {\n if (this.optionalCharacter(code))\n return;\n this.error(\"Missing expected \" + String.fromCharCode(code));\n };\n /**\n * @param {?} op\n * @return {?}\n */\n _ParseAST.prototype.optionalOperator = /**\n * @param {?} op\n * @return {?}\n */\n function (op) {\n if (this.next.isOperator(op)) {\n this.advance();\n return true;\n }\n else {\n return false;\n }\n };\n /**\n * @param {?} operator\n * @return {?}\n */\n _ParseAST.prototype.expectOperator = /**\n * @param {?} operator\n * @return {?}\n */\n function (operator) {\n if (this.optionalOperator(operator))\n return;\n this.error(\"Missing expected operator \" + operator);\n };\n /**\n * @return {?}\n */\n _ParseAST.prototype.expectIdentifierOrKeyword = /**\n * @return {?}\n */\n function () {\n var /** @type {?} */ n = this.next;\n if (!n.isIdentifier() && !n.isKeyword()) {\n this.error(\"Unexpected token \" + n + \", expected identifier or keyword\");\n return '';\n }\n this.advance();\n return /** @type {?} */ (n.toString());\n };\n /**\n * @return {?}\n */\n _ParseAST.prototype.expectIdentifierOrKeywordOrString = /**\n * @return {?}\n */\n function () {\n var /** @type {?} */ n = this.next;\n if (!n.isIdentifier() && !n.isKeyword() && !n.isString()) {\n this.error(\"Unexpected token \" + n + \", expected identifier, keyword, or string\");\n return '';\n }\n this.advance();\n return /** @type {?} */ (n.toString());\n };\n /**\n * @return {?}\n */\n _ParseAST.prototype.parseChain = /**\n * @return {?}\n */\n function () {\n var /** @type {?} */ exprs = [];\n var /** @type {?} */ start = this.inputIndex;\n while (this.index < this.tokens.length) {\n var /** @type {?} */ expr = this.parsePipe();\n exprs.push(expr);\n if (this.optionalCharacter(chars.$SEMICOLON)) {\n if (!this.parseAction) {\n this.error('Binding expression cannot contain chained expression');\n }\n while (this.optionalCharacter(chars.$SEMICOLON)) {\n } // read all semicolons\n }\n else if (this.index < this.tokens.length) {\n this.error(\"Unexpected token '\" + this.next + \"'\");\n }\n }\n if (exprs.length == 0)\n return new EmptyExpr(this.span(start));\n if (exprs.length == 1)\n return exprs[0];\n return new Chain(this.span(start), exprs);\n };\n /**\n * @return {?}\n */\n _ParseAST.prototype.parsePipe = /**\n * @return {?}\n */\n function () {\n var /** @type {?} */ result = this.parseExpression();\n if (this.optionalOperator('|')) {\n if (this.parseAction) {\n this.error('Cannot have a pipe in an action expression');\n }\n do {\n var /** @type {?} */ name_1 = this.expectIdentifierOrKeyword();\n var /** @type {?} */ args = [];\n while (this.optionalCharacter(chars.$COLON)) {\n args.push(this.parseExpression());\n }\n result = new BindingPipe(this.span(result.span.start), result, name_1, args);\n } while (this.optionalOperator('|'));\n }\n return result;\n };\n /**\n * @return {?}\n */\n _ParseAST.prototype.parseExpression = /**\n * @return {?}\n */\n function () { return this.parseConditional(); };\n /**\n * @return {?}\n */\n _ParseAST.prototype.parseConditional = /**\n * @return {?}\n */\n function () {\n var /** @type {?} */ start = this.inputIndex;\n var /** @type {?} */ result = this.parseLogicalOr();\n if (this.optionalOperator('?')) {\n var /** @type {?} */ yes = this.parsePipe();\n var /** @type {?} */ no = void 0;\n if (!this.optionalCharacter(chars.$COLON)) {\n var /** @type {?} */ end = this.inputIndex;\n var /** @type {?} */ expression = this.input.substring(start, end);\n this.error(\"Conditional expression \" + expression + \" requires all 3 expressions\");\n no = new EmptyExpr(this.span(start));\n }\n else {\n no = this.parsePipe();\n }\n return new Conditional(this.span(start), result, yes, no);\n }\n else {\n return result;\n }\n };\n /**\n * @return {?}\n */\n _ParseAST.prototype.parseLogicalOr = /**\n * @return {?}\n */\n function () {\n // '||'\n var /** @type {?} */ result = this.parseLogicalAnd();\n while (this.optionalOperator('||')) {\n var /** @type {?} */ right = this.parseLogicalAnd();\n result = new Binary(this.span(result.span.start), '||', result, right);\n }\n return result;\n };\n /**\n * @return {?}\n */\n _ParseAST.prototype.parseLogicalAnd = /**\n * @return {?}\n */\n function () {\n // '&&'\n var /** @type {?} */ result = this.parseEquality();\n while (this.optionalOperator('&&')) {\n var /** @type {?} */ right = this.parseEquality();\n result = new Binary(this.span(result.span.start), '&&', result, right);\n }\n return result;\n };\n /**\n * @return {?}\n */\n _ParseAST.prototype.parseEquality = /**\n * @return {?}\n */\n function () {\n // '==','!=','===','!=='\n var /** @type {?} */ result = this.parseRelational();\n while (this.next.type == TokenType.Operator) {\n var /** @type {?} */ operator = this.next.strValue;\n switch (operator) {\n case '==':\n case '===':\n case '!=':\n case '!==':\n this.advance();\n var /** @type {?} */ right = this.parseRelational();\n result = new Binary(this.span(result.span.start), operator, result, right);\n continue;\n }\n break;\n }\n return result;\n };\n /**\n * @return {?}\n */\n _ParseAST.prototype.parseRelational = /**\n * @return {?}\n */\n function () {\n // '<', '>', '<=', '>='\n var /** @type {?} */ result = this.parseAdditive();\n while (this.next.type == TokenType.Operator) {\n var /** @type {?} */ operator = this.next.strValue;\n switch (operator) {\n case '<':\n case '>':\n case '<=':\n case '>=':\n this.advance();\n var /** @type {?} */ right = this.parseAdditive();\n result = new Binary(this.span(result.span.start), operator, result, right);\n continue;\n }\n break;\n }\n return result;\n };\n /**\n * @return {?}\n */\n _ParseAST.prototype.parseAdditive = /**\n * @return {?}\n */\n function () {\n // '+', '-'\n var /** @type {?} */ result = this.parseMultiplicative();\n while (this.next.type == TokenType.Operator) {\n var /** @type {?} */ operator = this.next.strValue;\n switch (operator) {\n case '+':\n case '-':\n this.advance();\n var /** @type {?} */ right = this.parseMultiplicative();\n result = new Binary(this.span(result.span.start), operator, result, right);\n continue;\n }\n break;\n }\n return result;\n };\n /**\n * @return {?}\n */\n _ParseAST.prototype.parseMultiplicative = /**\n * @return {?}\n */\n function () {\n // '*', '%', '/'\n var /** @type {?} */ result = this.parsePrefix();\n while (this.next.type == TokenType.Operator) {\n var /** @type {?} */ operator = this.next.strValue;\n switch (operator) {\n case '*':\n case '%':\n case '/':\n this.advance();\n var /** @type {?} */ right = this.parsePrefix();\n result = new Binary(this.span(result.span.start), operator, result, right);\n continue;\n }\n break;\n }\n return result;\n };\n /**\n * @return {?}\n */\n _ParseAST.prototype.parsePrefix = /**\n * @return {?}\n */\n function () {\n if (this.next.type == TokenType.Operator) {\n var /** @type {?} */ start = this.inputIndex;\n var /** @type {?} */ operator = this.next.strValue;\n var /** @type {?} */ result = void 0;\n switch (operator) {\n case '+':\n this.advance();\n return this.parsePrefix();\n case '-':\n this.advance();\n result = this.parsePrefix();\n return new Binary(this.span(start), operator, new LiteralPrimitive(new ParseSpan(start, start), 0), result);\n case '!':\n this.advance();\n result = this.parsePrefix();\n return new PrefixNot(this.span(start), result);\n }\n }\n return this.parseCallChain();\n };\n /**\n * @return {?}\n */\n _ParseAST.prototype.parseCallChain = /**\n * @return {?}\n */\n function () {\n var /** @type {?} */ result = this.parsePrimary();\n while (true) {\n if (this.optionalCharacter(chars.$PERIOD)) {\n result = this.parseAccessMemberOrMethodCall(result, false);\n }\n else if (this.optionalOperator('?.')) {\n result = this.parseAccessMemberOrMethodCall(result, true);\n }\n else if (this.optionalCharacter(chars.$LBRACKET)) {\n this.rbracketsExpected++;\n var /** @type {?} */ key = this.parsePipe();\n this.rbracketsExpected--;\n this.expectCharacter(chars.$RBRACKET);\n if (this.optionalOperator('=')) {\n var /** @type {?} */ value = this.parseConditional();\n result = new KeyedWrite(this.span(result.span.start), result, key, value);\n }\n else {\n result = new KeyedRead(this.span(result.span.start), result, key);\n }\n }\n else if (this.optionalCharacter(chars.$LPAREN)) {\n this.rparensExpected++;\n var /** @type {?} */ args = this.parseCallArguments();\n this.rparensExpected--;\n this.expectCharacter(chars.$RPAREN);\n result = new FunctionCall(this.span(result.span.start), result, args);\n }\n else if (this.optionalOperator('!')) {\n result = new NonNullAssert(this.span(result.span.start), result);\n }\n else {\n return result;\n }\n }\n };\n /**\n * @return {?}\n */\n _ParseAST.prototype.parsePrimary = /**\n * @return {?}\n */\n function () {\n var /** @type {?} */ start = this.inputIndex;\n if (this.optionalCharacter(chars.$LPAREN)) {\n this.rparensExpected++;\n var /** @type {?} */ result = this.parsePipe();\n this.rparensExpected--;\n this.expectCharacter(chars.$RPAREN);\n return result;\n }\n else if (this.next.isKeywordNull()) {\n this.advance();\n return new LiteralPrimitive(this.span(start), null);\n }\n else if (this.next.isKeywordUndefined()) {\n this.advance();\n return new LiteralPrimitive(this.span(start), void 0);\n }\n else if (this.next.isKeywordTrue()) {\n this.advance();\n return new LiteralPrimitive(this.span(start), true);\n }\n else if (this.next.isKeywordFalse()) {\n this.advance();\n return new LiteralPrimitive(this.span(start), false);\n }\n else if (this.next.isKeywordThis()) {\n this.advance();\n return new ImplicitReceiver(this.span(start));\n }\n else if (this.optionalCharacter(chars.$LBRACKET)) {\n this.rbracketsExpected++;\n var /** @type {?} */ elements = this.parseExpressionList(chars.$RBRACKET);\n this.rbracketsExpected--;\n this.expectCharacter(chars.$RBRACKET);\n return new LiteralArray(this.span(start), elements);\n }\n else if (this.next.isCharacter(chars.$LBRACE)) {\n return this.parseLiteralMap();\n }\n else if (this.next.isIdentifier()) {\n return this.parseAccessMemberOrMethodCall(new ImplicitReceiver(this.span(start)), false);\n }\n else if (this.next.isNumber()) {\n var /** @type {?} */ value = this.next.toNumber();\n this.advance();\n return new LiteralPrimitive(this.span(start), value);\n }\n else if (this.next.isString()) {\n var /** @type {?} */ literalValue = this.next.toString();\n this.advance();\n return new LiteralPrimitive(this.span(start), literalValue);\n }\n else if (this.index >= this.tokens.length) {\n this.error(\"Unexpected end of expression: \" + this.input);\n return new EmptyExpr(this.span(start));\n }\n else {\n this.error(\"Unexpected token \" + this.next);\n return new EmptyExpr(this.span(start));\n }\n };\n /**\n * @param {?} terminator\n * @return {?}\n */\n _ParseAST.prototype.parseExpressionList = /**\n * @param {?} terminator\n * @return {?}\n */\n function (terminator) {\n var /** @type {?} */ result = [];\n if (!this.next.isCharacter(terminator)) {\n do {\n result.push(this.parsePipe());\n } while (this.optionalCharacter(chars.$COMMA));\n }\n return result;\n };\n /**\n * @return {?}\n */\n _ParseAST.prototype.parseLiteralMap = /**\n * @return {?}\n */\n function () {\n var /** @type {?} */ keys = [];\n var /** @type {?} */ values = [];\n var /** @type {?} */ start = this.inputIndex;\n this.expectCharacter(chars.$LBRACE);\n if (!this.optionalCharacter(chars.$RBRACE)) {\n this.rbracesExpected++;\n do {\n var /** @type {?} */ quoted = this.next.isString();\n var /** @type {?} */ key = this.expectIdentifierOrKeywordOrString();\n keys.push({ key: key, quoted: quoted });\n this.expectCharacter(chars.$COLON);\n values.push(this.parsePipe());\n } while (this.optionalCharacter(chars.$COMMA));\n this.rbracesExpected--;\n this.expectCharacter(chars.$RBRACE);\n }\n return new LiteralMap(this.span(start), keys, values);\n };\n /**\n * @param {?} receiver\n * @param {?=} isSafe\n * @return {?}\n */\n _ParseAST.prototype.parseAccessMemberOrMethodCall = /**\n * @param {?} receiver\n * @param {?=} isSafe\n * @return {?}\n */\n function (receiver, isSafe) {\n if (isSafe === void 0) { isSafe = false; }\n var /** @type {?} */ start = receiver.span.start;\n var /** @type {?} */ id = this.expectIdentifierOrKeyword();\n if (this.optionalCharacter(chars.$LPAREN)) {\n this.rparensExpected++;\n var /** @type {?} */ args = this.parseCallArguments();\n this.expectCharacter(chars.$RPAREN);\n this.rparensExpected--;\n var /** @type {?} */ span = this.span(start);\n return isSafe ? new SafeMethodCall(span, receiver, id, args) :\n new MethodCall(span, receiver, id, args);\n }\n else {\n if (isSafe) {\n if (this.optionalOperator('=')) {\n this.error('The \\'?.\\' operator cannot be used in the assignment');\n return new EmptyExpr(this.span(start));\n }\n else {\n return new SafePropertyRead(this.span(start), receiver, id);\n }\n }\n else {\n if (this.optionalOperator('=')) {\n if (!this.parseAction) {\n this.error('Bindings cannot contain assignments');\n return new EmptyExpr(this.span(start));\n }\n var /** @type {?} */ value = this.parseConditional();\n return new PropertyWrite(this.span(start), receiver, id, value);\n }\n else {\n return new PropertyRead(this.span(start), receiver, id);\n }\n }\n }\n };\n /**\n * @return {?}\n */\n _ParseAST.prototype.parseCallArguments = /**\n * @return {?}\n */\n function () {\n if (this.next.isCharacter(chars.$RPAREN))\n return [];\n var /** @type {?} */ positionals = [];\n do {\n positionals.push(this.parsePipe());\n } while (this.optionalCharacter(chars.$COMMA));\n return /** @type {?} */ (positionals);\n };\n /**\n * An identifier, a keyword, a string with an optional `-` inbetween.\n */\n /**\n * An identifier, a keyword, a string with an optional `-` inbetween.\n * @return {?}\n */\n _ParseAST.prototype.expectTemplateBindingKey = /**\n * An identifier, a keyword, a string with an optional `-` inbetween.\n * @return {?}\n */\n function () {\n var /** @type {?} */ result = '';\n var /** @type {?} */ operatorFound = false;\n do {\n result += this.expectIdentifierOrKeywordOrString();\n operatorFound = this.optionalOperator('-');\n if (operatorFound) {\n result += '-';\n }\n } while (operatorFound);\n return result.toString();\n };\n /**\n * @return {?}\n */\n _ParseAST.prototype.parseTemplateBindings = /**\n * @return {?}\n */\n function () {\n var /** @type {?} */ bindings = [];\n var /** @type {?} */ prefix = /** @type {?} */ ((null));\n var /** @type {?} */ warnings = [];\n while (this.index < this.tokens.length) {\n var /** @type {?} */ start = this.inputIndex;\n var /** @type {?} */ keyIsVar = this.peekKeywordLet();\n if (keyIsVar) {\n this.advance();\n }\n var /** @type {?} */ rawKey = this.expectTemplateBindingKey();\n var /** @type {?} */ key = rawKey;\n if (!keyIsVar) {\n if (prefix == null) {\n prefix = key;\n }\n else {\n key = prefix + key[0].toUpperCase() + key.substring(1);\n }\n }\n this.optionalCharacter(chars.$COLON);\n var /** @type {?} */ name_2 = /** @type {?} */ ((null));\n var /** @type {?} */ expression = /** @type {?} */ ((null));\n if (keyIsVar) {\n if (this.optionalOperator('=')) {\n name_2 = this.expectTemplateBindingKey();\n }\n else {\n name_2 = '\\$implicit';\n }\n }\n else if (this.peekKeywordAs()) {\n var /** @type {?} */ letStart = this.inputIndex;\n this.advance(); // consume `as`\n name_2 = rawKey;\n key = this.expectTemplateBindingKey(); // read local var name\n keyIsVar = true;\n }\n else if (this.next !== EOF && !this.peekKeywordLet()) {\n var /** @type {?} */ start_1 = this.inputIndex;\n var /** @type {?} */ ast = this.parsePipe();\n var /** @type {?} */ source = this.input.substring(start_1 - this.offset, this.inputIndex - this.offset);\n expression = new ASTWithSource(ast, source, this.location, this.errors);\n }\n bindings.push(new TemplateBinding(this.span(start), key, keyIsVar, name_2, expression));\n if (this.peekKeywordAs() && !keyIsVar) {\n var /** @type {?} */ letStart = this.inputIndex;\n this.advance(); // consume `as`\n var /** @type {?} */ letName = this.expectTemplateBindingKey(); // read local var name\n bindings.push(new TemplateBinding(this.span(letStart), letName, true, key, /** @type {?} */ ((null))));\n }\n if (!this.optionalCharacter(chars.$SEMICOLON)) {\n this.optionalCharacter(chars.$COMMA);\n }\n }\n return new TemplateBindingParseResult(bindings, warnings, this.errors);\n };\n /**\n * @param {?} message\n * @param {?=} index\n * @return {?}\n */\n _ParseAST.prototype.error = /**\n * @param {?} message\n * @param {?=} index\n * @return {?}\n */\n function (message, index) {\n if (index === void 0) { index = null; }\n this.errors.push(new ParserError(message, this.input, this.locationText(index), this.location));\n this.skip();\n };\n /**\n * @param {?=} index\n * @return {?}\n */\n _ParseAST.prototype.locationText = /**\n * @param {?=} index\n * @return {?}\n */\n function (index) {\n if (index === void 0) { index = null; }\n if (index == null)\n index = this.index;\n return (index < this.tokens.length) ? \"at column \" + (this.tokens[index].index + 1) + \" in\" :\n \"at the end of the expression\";\n };\n /**\n * @return {?}\n */\n _ParseAST.prototype.skip = /**\n * @return {?}\n */\n function () {\n var /** @type {?} */ n = this.next;\n while (this.index < this.tokens.length && !n.isCharacter(chars.$SEMICOLON) &&\n (this.rparensExpected <= 0 || !n.isCharacter(chars.$RPAREN)) &&\n (this.rbracesExpected <= 0 || !n.isCharacter(chars.$RBRACE)) &&\n (this.rbracketsExpected <= 0 || !n.isCharacter(chars.$RBRACKET))) {\n if (this.next.isError()) {\n this.errors.push(new ParserError(/** @type {?} */ ((this.next.toString())), this.input, this.locationText(), this.location));\n }\n this.advance();\n n = this.next;\n }\n };\n return _ParseAST;\n}());\nexport { _ParseAST };\nfunction _ParseAST_tsickle_Closure_declarations() {\n /** @type {?} */\n _ParseAST.prototype.rparensExpected;\n /** @type {?} */\n _ParseAST.prototype.rbracketsExpected;\n /** @type {?} */\n _ParseAST.prototype.rbracesExpected;\n /** @type {?} */\n _ParseAST.prototype.index;\n /** @type {?} */\n _ParseAST.prototype.input;\n /** @type {?} */\n _ParseAST.prototype.location;\n /** @type {?} */\n _ParseAST.prototype.tokens;\n /** @type {?} */\n _ParseAST.prototype.inputLength;\n /** @type {?} */\n _ParseAST.prototype.parseAction;\n /** @type {?} */\n _ParseAST.prototype.errors;\n /** @type {?} */\n _ParseAST.prototype.offset;\n}\nvar SimpleExpressionChecker = /** @class */ (function () {\n function SimpleExpressionChecker() {\n this.errors = [];\n }\n /**\n * @param {?} ast\n * @return {?}\n */\n SimpleExpressionChecker.check = /**\n * @param {?} ast\n * @return {?}\n */\n function (ast) {\n var /** @type {?} */ s = new SimpleExpressionChecker();\n ast.visit(s);\n return s.errors;\n };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n SimpleExpressionChecker.prototype.visitImplicitReceiver = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) { };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n SimpleExpressionChecker.prototype.visitInterpolation = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) { };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n SimpleExpressionChecker.prototype.visitLiteralPrimitive = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) { };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n SimpleExpressionChecker.prototype.visitPropertyRead = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) { };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n SimpleExpressionChecker.prototype.visitPropertyWrite = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) { };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n SimpleExpressionChecker.prototype.visitSafePropertyRead = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) { };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n SimpleExpressionChecker.prototype.visitMethodCall = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) { };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n SimpleExpressionChecker.prototype.visitSafeMethodCall = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) { };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n SimpleExpressionChecker.prototype.visitFunctionCall = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) { };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n SimpleExpressionChecker.prototype.visitLiteralArray = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) { this.visitAll(ast.expressions); };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n SimpleExpressionChecker.prototype.visitLiteralMap = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) { this.visitAll(ast.values); };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n SimpleExpressionChecker.prototype.visitBinary = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) { };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n SimpleExpressionChecker.prototype.visitPrefixNot = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) { };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n SimpleExpressionChecker.prototype.visitNonNullAssert = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) { };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n SimpleExpressionChecker.prototype.visitConditional = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) { };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n SimpleExpressionChecker.prototype.visitPipe = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) { this.errors.push('pipes'); };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n SimpleExpressionChecker.prototype.visitKeyedRead = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) { };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n SimpleExpressionChecker.prototype.visitKeyedWrite = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) { };\n /**\n * @param {?} asts\n * @return {?}\n */\n SimpleExpressionChecker.prototype.visitAll = /**\n * @param {?} asts\n * @return {?}\n */\n function (asts) {\n var _this = this;\n return asts.map(function (node) { return node.visit(_this); });\n };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n SimpleExpressionChecker.prototype.visitChain = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) { };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n SimpleExpressionChecker.prototype.visitQuote = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) { };\n return SimpleExpressionChecker;\n}());\nfunction SimpleExpressionChecker_tsickle_Closure_declarations() {\n /** @type {?} */\n SimpleExpressionChecker.prototype.errors;\n}\n//# sourceMappingURL=parser.js.map","/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\nimport * as chars from './chars';\nimport { identifierModuleUrl, identifierName } from './compile_metadata';\nvar ParseLocation = /** @class */ (function () {\n function ParseLocation(file, offset, line, col) {\n this.file = file;\n this.offset = offset;\n this.line = line;\n this.col = col;\n }\n /**\n * @return {?}\n */\n ParseLocation.prototype.toString = /**\n * @return {?}\n */\n function () {\n return this.offset != null ? this.file.url + \"@\" + this.line + \":\" + this.col : this.file.url;\n };\n /**\n * @param {?} delta\n * @return {?}\n */\n ParseLocation.prototype.moveBy = /**\n * @param {?} delta\n * @return {?}\n */\n function (delta) {\n var /** @type {?} */ source = this.file.content;\n var /** @type {?} */ len = source.length;\n var /** @type {?} */ offset = this.offset;\n var /** @type {?} */ line = this.line;\n var /** @type {?} */ col = this.col;\n while (offset > 0 && delta < 0) {\n offset--;\n delta++;\n var /** @type {?} */ ch = source.charCodeAt(offset);\n if (ch == chars.$LF) {\n line--;\n var /** @type {?} */ priorLine = source.substr(0, offset - 1).lastIndexOf(String.fromCharCode(chars.$LF));\n col = priorLine > 0 ? offset - priorLine : offset;\n }\n else {\n col--;\n }\n }\n while (offset < len && delta > 0) {\n var /** @type {?} */ ch = source.charCodeAt(offset);\n offset++;\n delta--;\n if (ch == chars.$LF) {\n line++;\n col = 0;\n }\n else {\n col++;\n }\n }\n return new ParseLocation(this.file, offset, line, col);\n };\n // Return the source around the location\n // Up to `maxChars` or `maxLines` on each side of the location\n /**\n * @param {?} maxChars\n * @param {?} maxLines\n * @return {?}\n */\n ParseLocation.prototype.getContext = /**\n * @param {?} maxChars\n * @param {?} maxLines\n * @return {?}\n */\n function (maxChars, maxLines) {\n var /** @type {?} */ content = this.file.content;\n var /** @type {?} */ startOffset = this.offset;\n if (startOffset != null) {\n if (startOffset > content.length - 1) {\n startOffset = content.length - 1;\n }\n var /** @type {?} */ endOffset = startOffset;\n var /** @type {?} */ ctxChars = 0;\n var /** @type {?} */ ctxLines = 0;\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 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 return {\n before: content.substring(startOffset, this.offset),\n after: content.substring(this.offset, endOffset + 1),\n };\n }\n return null;\n };\n return ParseLocation;\n}());\nexport { ParseLocation };\nfunction ParseLocation_tsickle_Closure_declarations() {\n /** @type {?} */\n ParseLocation.prototype.file;\n /** @type {?} */\n ParseLocation.prototype.offset;\n /** @type {?} */\n ParseLocation.prototype.line;\n /** @type {?} */\n ParseLocation.prototype.col;\n}\nvar ParseSourceFile = /** @class */ (function () {\n function ParseSourceFile(content, url) {\n this.content = content;\n this.url = url;\n }\n return ParseSourceFile;\n}());\nexport { ParseSourceFile };\nfunction ParseSourceFile_tsickle_Closure_declarations() {\n /** @type {?} */\n ParseSourceFile.prototype.content;\n /** @type {?} */\n ParseSourceFile.prototype.url;\n}\nvar ParseSourceSpan = /** @class */ (function () {\n function ParseSourceSpan(start, end, details) {\n if (details === void 0) { details = null; }\n this.start = start;\n this.end = end;\n this.details = details;\n }\n /**\n * @return {?}\n */\n ParseSourceSpan.prototype.toString = /**\n * @return {?}\n */\n function () {\n return this.start.file.content.substring(this.start.offset, this.end.offset);\n };\n return ParseSourceSpan;\n}());\nexport { ParseSourceSpan };\nfunction ParseSourceSpan_tsickle_Closure_declarations() {\n /** @type {?} */\n ParseSourceSpan.prototype.start;\n /** @type {?} */\n ParseSourceSpan.prototype.end;\n /** @type {?} */\n ParseSourceSpan.prototype.details;\n}\n/** @enum {number} */\nvar ParseErrorLevel = {\n WARNING: 0,\n ERROR: 1,\n};\nexport { ParseErrorLevel };\nParseErrorLevel[ParseErrorLevel.WARNING] = \"WARNING\";\nParseErrorLevel[ParseErrorLevel.ERROR] = \"ERROR\";\nvar ParseError = /** @class */ (function () {\n function ParseError(span, msg, level) {\n if (level === void 0) { level = ParseErrorLevel.ERROR; }\n this.span = span;\n this.msg = msg;\n this.level = level;\n }\n /**\n * @return {?}\n */\n ParseError.prototype.contextualMessage = /**\n * @return {?}\n */\n function () {\n var /** @type {?} */ 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 * @return {?}\n */\n ParseError.prototype.toString = /**\n * @return {?}\n */\n function () {\n var /** @type {?} */ details = this.span.details ? \", \" + this.span.details : '';\n return this.contextualMessage() + \": \" + this.span.start + details;\n };\n return ParseError;\n}());\nexport { ParseError };\nfunction ParseError_tsickle_Closure_declarations() {\n /** @type {?} */\n ParseError.prototype.span;\n /** @type {?} */\n ParseError.prototype.msg;\n /** @type {?} */\n ParseError.prototype.level;\n}\n/**\n * @param {?} kind\n * @param {?} type\n * @return {?}\n */\nexport function typeSourceSpan(kind, type) {\n var /** @type {?} */ moduleUrl = identifierModuleUrl(type);\n var /** @type {?} */ sourceFileName = moduleUrl != null ? \"in \" + kind + \" \" + identifierName(type) + \" in \" + moduleUrl :\n \"in \" + kind + \" \" + identifierName(type);\n var /** @type {?} */ sourceFile = new ParseSourceFile('', sourceFileName);\n return new ParseSourceSpan(new ParseLocation(sourceFile, -1, -1, -1), new ParseLocation(sourceFile, -1, -1, -1));\n}\n//# sourceMappingURL=parse_util.js.map","/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this 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 tslib_1 from \"tslib\";\nimport * as chars from '../chars';\nimport { ParseError, ParseLocation, ParseSourceFile, ParseSourceSpan } from '../parse_util';\nimport { DEFAULT_INTERPOLATION_CONFIG } from './interpolation_config';\nimport { NAMED_ENTITIES, TagContentType } from './tags';\n/** @enum {number} */\nvar TokenType = {\n TAG_OPEN_START: 0,\n TAG_OPEN_END: 1,\n TAG_OPEN_END_VOID: 2,\n TAG_CLOSE: 3,\n TEXT: 4,\n ESCAPABLE_RAW_TEXT: 5,\n RAW_TEXT: 6,\n COMMENT_START: 7,\n COMMENT_END: 8,\n CDATA_START: 9,\n CDATA_END: 10,\n ATTR_NAME: 11,\n ATTR_VALUE: 12,\n DOC_TYPE: 13,\n EXPANSION_FORM_START: 14,\n EXPANSION_CASE_VALUE: 15,\n EXPANSION_CASE_EXP_START: 16,\n EXPANSION_CASE_EXP_END: 17,\n EXPANSION_FORM_END: 18,\n EOF: 19,\n};\nexport { TokenType };\nTokenType[TokenType.TAG_OPEN_START] = \"TAG_OPEN_START\";\nTokenType[TokenType.TAG_OPEN_END] = \"TAG_OPEN_END\";\nTokenType[TokenType.TAG_OPEN_END_VOID] = \"TAG_OPEN_END_VOID\";\nTokenType[TokenType.TAG_CLOSE] = \"TAG_CLOSE\";\nTokenType[TokenType.TEXT] = \"TEXT\";\nTokenType[TokenType.ESCAPABLE_RAW_TEXT] = \"ESCAPABLE_RAW_TEXT\";\nTokenType[TokenType.RAW_TEXT] = \"RAW_TEXT\";\nTokenType[TokenType.COMMENT_START] = \"COMMENT_START\";\nTokenType[TokenType.COMMENT_END] = \"COMMENT_END\";\nTokenType[TokenType.CDATA_START] = \"CDATA_START\";\nTokenType[TokenType.CDATA_END] = \"CDATA_END\";\nTokenType[TokenType.ATTR_NAME] = \"ATTR_NAME\";\nTokenType[TokenType.ATTR_VALUE] = \"ATTR_VALUE\";\nTokenType[TokenType.DOC_TYPE] = \"DOC_TYPE\";\nTokenType[TokenType.EXPANSION_FORM_START] = \"EXPANSION_FORM_START\";\nTokenType[TokenType.EXPANSION_CASE_VALUE] = \"EXPANSION_CASE_VALUE\";\nTokenType[TokenType.EXPANSION_CASE_EXP_START] = \"EXPANSION_CASE_EXP_START\";\nTokenType[TokenType.EXPANSION_CASE_EXP_END] = \"EXPANSION_CASE_EXP_END\";\nTokenType[TokenType.EXPANSION_FORM_END] = \"EXPANSION_FORM_END\";\nTokenType[TokenType.EOF] = \"EOF\";\nvar Token = /** @class */ (function () {\n function Token(type, parts, sourceSpan) {\n this.type = type;\n this.parts = parts;\n this.sourceSpan = sourceSpan;\n }\n return Token;\n}());\nexport { Token };\nfunction Token_tsickle_Closure_declarations() {\n /** @type {?} */\n Token.prototype.type;\n /** @type {?} */\n Token.prototype.parts;\n /** @type {?} */\n Token.prototype.sourceSpan;\n}\nvar TokenError = /** @class */ (function (_super) {\n tslib_1.__extends(TokenError, _super);\n function TokenError(errorMsg, tokenType, span) {\n var _this = _super.call(this, span, errorMsg) || this;\n _this.tokenType = tokenType;\n return _this;\n }\n return TokenError;\n}(ParseError));\nexport { TokenError };\nfunction TokenError_tsickle_Closure_declarations() {\n /** @type {?} */\n TokenError.prototype.tokenType;\n}\nvar TokenizeResult = /** @class */ (function () {\n function TokenizeResult(tokens, errors) {\n this.tokens = tokens;\n this.errors = errors;\n }\n return TokenizeResult;\n}());\nexport { TokenizeResult };\nfunction TokenizeResult_tsickle_Closure_declarations() {\n /** @type {?} */\n TokenizeResult.prototype.tokens;\n /** @type {?} */\n TokenizeResult.prototype.errors;\n}\n/**\n * @param {?} source\n * @param {?} url\n * @param {?} getTagDefinition\n * @param {?=} tokenizeExpansionForms\n * @param {?=} interpolationConfig\n * @return {?}\n */\nexport function tokenize(source, url, getTagDefinition, tokenizeExpansionForms, interpolationConfig) {\n if (tokenizeExpansionForms === void 0) { tokenizeExpansionForms = false; }\n if (interpolationConfig === void 0) { interpolationConfig = DEFAULT_INTERPOLATION_CONFIG; }\n return new _Tokenizer(new ParseSourceFile(source, url), getTagDefinition, tokenizeExpansionForms, interpolationConfig)\n .tokenize();\n}\nvar /** @type {?} */ _CR_OR_CRLF_REGEXP = /\\r\\n?/g;\n/**\n * @param {?} charCode\n * @return {?}\n */\nfunction _unexpectedCharacterErrorMsg(charCode) {\n var /** @type {?} */ char = charCode === chars.$EOF ? 'EOF' : String.fromCharCode(charCode);\n return \"Unexpected character \\\"\" + char + \"\\\"\";\n}\n/**\n * @param {?} entitySrc\n * @return {?}\n */\nfunction _unknownEntityErrorMsg(entitySrc) {\n return \"Unknown entity \\\"\" + entitySrc + \"\\\" - use the \\\"&#<decimal>;\\\" or \\\"&#x<hex>;\\\" syntax\";\n}\nvar _ControlFlowError = /** @class */ (function () {\n function _ControlFlowError(error) {\n this.error = error;\n }\n return _ControlFlowError;\n}());\nfunction _ControlFlowError_tsickle_Closure_declarations() {\n /** @type {?} */\n _ControlFlowError.prototype.error;\n}\nvar _Tokenizer = /** @class */ (function () {\n /**\n * @param _file The html source\n * @param _getTagDefinition\n * @param _tokenizeIcu Whether to tokenize ICU messages (considered as text nodes when false)\n * @param _interpolationConfig\n */\n function _Tokenizer(_file, _getTagDefinition, _tokenizeIcu, _interpolationConfig) {\n if (_interpolationConfig === void 0) { _interpolationConfig = DEFAULT_INTERPOLATION_CONFIG; }\n this._file = _file;\n this._getTagDefinition = _getTagDefinition;\n this._tokenizeIcu = _tokenizeIcu;\n this._interpolationConfig = _interpolationConfig;\n this._peek = -1;\n this._nextPeek = -1;\n this._index = -1;\n this._line = 0;\n this._column = -1;\n this._expansionCaseStack = [];\n this._inInterpolation = false;\n this.tokens = [];\n this.errors = [];\n this._input = _file.content;\n this._length = _file.content.length;\n this._advance();\n }\n /**\n * @param {?} content\n * @return {?}\n */\n _Tokenizer.prototype._processCarriageReturns = /**\n * @param {?} content\n * @return {?}\n */\n function (content) {\n // http://www.w3.org/TR/html5/syntax.html#preprocessing-the-input-stream\n // In order to keep the original position in the source, we can not\n // pre-process it.\n // Instead CRs are processed right before instantiating the tokens.\n return content.replace(_CR_OR_CRLF_REGEXP, '\\n');\n };\n /**\n * @return {?}\n */\n _Tokenizer.prototype.tokenize = /**\n * @return {?}\n */\n function () {\n while (this._peek !== chars.$EOF) {\n var /** @type {?} */ start = this._getLocation();\n try {\n if (this._attemptCharCode(chars.$LT)) {\n if (this._attemptCharCode(chars.$BANG)) {\n if (this._attemptCharCode(chars.$LBRACKET)) {\n this._consumeCdata(start);\n }\n else if (this._attemptCharCode(chars.$MINUS)) {\n this._consumeComment(start);\n }\n else {\n this._consumeDocType(start);\n }\n }\n else if (this._attemptCharCode(chars.$SLASH)) {\n this._consumeTagClose(start);\n }\n else {\n this._consumeTagOpen(start);\n }\n }\n else if (!(this._tokenizeIcu && this._tokenizeExpansionForm())) {\n this._consumeText();\n }\n }\n catch (/** @type {?} */ e) {\n if (e instanceof _ControlFlowError) {\n this.errors.push(e.error);\n }\n else {\n throw e;\n }\n }\n }\n this._beginToken(TokenType.EOF);\n this._endToken([]);\n return new TokenizeResult(mergeTextTokens(this.tokens), this.errors);\n };\n /**\n * \\@internal\n * @return {?} whether an ICU token has been created\n */\n _Tokenizer.prototype._tokenizeExpansionForm = /**\n * \\@internal\n * @return {?} whether an ICU token has been created\n */\n function () {\n if (isExpansionFormStart(this._input, this._index, this._interpolationConfig)) {\n this._consumeExpansionFormStart();\n return true;\n }\n if (isExpansionCaseStart(this._peek) && this._isInExpansionForm()) {\n this._consumeExpansionCaseStart();\n return true;\n }\n if (this._peek === chars.$RBRACE) {\n if (this._isInExpansionCase()) {\n this._consumeExpansionCaseEnd();\n return true;\n }\n if (this._isInExpansionForm()) {\n this._consumeExpansionFormEnd();\n return true;\n }\n }\n return false;\n };\n /**\n * @return {?}\n */\n _Tokenizer.prototype._getLocation = /**\n * @return {?}\n */\n function () {\n return new ParseLocation(this._file, this._index, this._line, this._column);\n };\n /**\n * @param {?=} start\n * @param {?=} end\n * @return {?}\n */\n _Tokenizer.prototype._getSpan = /**\n * @param {?=} start\n * @param {?=} end\n * @return {?}\n */\n function (start, end) {\n if (start === void 0) { start = this._getLocation(); }\n if (end === void 0) { end = this._getLocation(); }\n return new ParseSourceSpan(start, end);\n };\n /**\n * @param {?} type\n * @param {?=} start\n * @return {?}\n */\n _Tokenizer.prototype._beginToken = /**\n * @param {?} type\n * @param {?=} start\n * @return {?}\n */\n function (type, start) {\n if (start === void 0) { start = this._getLocation(); }\n this._currentTokenStart = start;\n this._currentTokenType = type;\n };\n /**\n * @param {?} parts\n * @param {?=} end\n * @return {?}\n */\n _Tokenizer.prototype._endToken = /**\n * @param {?} parts\n * @param {?=} end\n * @return {?}\n */\n function (parts, end) {\n if (end === void 0) { end = this._getLocation(); }\n var /** @type {?} */ token = new Token(this._currentTokenType, parts, new ParseSourceSpan(this._currentTokenStart, end));\n this.tokens.push(token);\n this._currentTokenStart = /** @type {?} */ ((null));\n this._currentTokenType = /** @type {?} */ ((null));\n return token;\n };\n /**\n * @param {?} msg\n * @param {?} span\n * @return {?}\n */\n _Tokenizer.prototype._createError = /**\n * @param {?} msg\n * @param {?} span\n * @return {?}\n */\n function (msg, span) {\n if (this._isInExpansionForm()) {\n msg += \" (Do you have an unescaped \\\"{\\\" in your template? Use \\\"{{ '{' }}\\\") to escape it.)\";\n }\n var /** @type {?} */ error = new TokenError(msg, this._currentTokenType, span);\n this._currentTokenStart = /** @type {?} */ ((null));\n this._currentTokenType = /** @type {?} */ ((null));\n return new _ControlFlowError(error);\n };\n /**\n * @return {?}\n */\n _Tokenizer.prototype._advance = /**\n * @return {?}\n */\n function () {\n if (this._index >= this._length) {\n throw this._createError(_unexpectedCharacterErrorMsg(chars.$EOF), this._getSpan());\n }\n if (this._peek === chars.$LF) {\n this._line++;\n this._column = 0;\n }\n else if (this._peek !== chars.$LF && this._peek !== chars.$CR) {\n this._column++;\n }\n this._index++;\n this._peek = this._index >= this._length ? chars.$EOF : this._input.charCodeAt(this._index);\n this._nextPeek =\n this._index + 1 >= this._length ? chars.$EOF : this._input.charCodeAt(this._index + 1);\n };\n /**\n * @param {?} charCode\n * @return {?}\n */\n _Tokenizer.prototype._attemptCharCode = /**\n * @param {?} charCode\n * @return {?}\n */\n function (charCode) {\n if (this._peek === charCode) {\n this._advance();\n return true;\n }\n return false;\n };\n /**\n * @param {?} charCode\n * @return {?}\n */\n _Tokenizer.prototype._attemptCharCodeCaseInsensitive = /**\n * @param {?} charCode\n * @return {?}\n */\n function (charCode) {\n if (compareCharCodeCaseInsensitive(this._peek, charCode)) {\n this._advance();\n return true;\n }\n return false;\n };\n /**\n * @param {?} charCode\n * @return {?}\n */\n _Tokenizer.prototype._requireCharCode = /**\n * @param {?} charCode\n * @return {?}\n */\n function (charCode) {\n var /** @type {?} */ location = this._getLocation();\n if (!this._attemptCharCode(charCode)) {\n throw this._createError(_unexpectedCharacterErrorMsg(this._peek), this._getSpan(location, location));\n }\n };\n /**\n * @param {?} chars\n * @return {?}\n */\n _Tokenizer.prototype._attemptStr = /**\n * @param {?} chars\n * @return {?}\n */\n function (chars) {\n var /** @type {?} */ len = chars.length;\n if (this._index + len > this._length) {\n return false;\n }\n var /** @type {?} */ initialPosition = this._savePosition();\n for (var /** @type {?} */ i = 0; i < len; i++) {\n if (!this._attemptCharCode(chars.charCodeAt(i))) {\n // If attempting to parse the string fails, we want to reset the parser\n // to where it was before the attempt\n this._restorePosition(initialPosition);\n return false;\n }\n }\n return true;\n };\n /**\n * @param {?} chars\n * @return {?}\n */\n _Tokenizer.prototype._attemptStrCaseInsensitive = /**\n * @param {?} chars\n * @return {?}\n */\n function (chars) {\n for (var /** @type {?} */ i = 0; i < chars.length; i++) {\n if (!this._attemptCharCodeCaseInsensitive(chars.charCodeAt(i))) {\n return false;\n }\n }\n return true;\n };\n /**\n * @param {?} chars\n * @return {?}\n */\n _Tokenizer.prototype._requireStr = /**\n * @param {?} chars\n * @return {?}\n */\n function (chars) {\n var /** @type {?} */ location = this._getLocation();\n if (!this._attemptStr(chars)) {\n throw this._createError(_unexpectedCharacterErrorMsg(this._peek), this._getSpan(location));\n }\n };\n /**\n * @param {?} predicate\n * @return {?}\n */\n _Tokenizer.prototype._attemptCharCodeUntilFn = /**\n * @param {?} predicate\n * @return {?}\n */\n function (predicate) {\n while (!predicate(this._peek)) {\n this._advance();\n }\n };\n /**\n * @param {?} predicate\n * @param {?} len\n * @return {?}\n */\n _Tokenizer.prototype._requireCharCodeUntilFn = /**\n * @param {?} predicate\n * @param {?} len\n * @return {?}\n */\n function (predicate, len) {\n var /** @type {?} */ start = this._getLocation();\n this._attemptCharCodeUntilFn(predicate);\n if (this._index - start.offset < len) {\n throw this._createError(_unexpectedCharacterErrorMsg(this._peek), this._getSpan(start, start));\n }\n };\n /**\n * @param {?} char\n * @return {?}\n */\n _Tokenizer.prototype._attemptUntilChar = /**\n * @param {?} char\n * @return {?}\n */\n function (char) {\n while (this._peek !== char) {\n this._advance();\n }\n };\n /**\n * @param {?} decodeEntities\n * @return {?}\n */\n _Tokenizer.prototype._readChar = /**\n * @param {?} decodeEntities\n * @return {?}\n */\n function (decodeEntities) {\n if (decodeEntities && this._peek === chars.$AMPERSAND) {\n return this._decodeEntity();\n }\n else {\n var /** @type {?} */ index = this._index;\n this._advance();\n return this._input[index];\n }\n };\n /**\n * @return {?}\n */\n _Tokenizer.prototype._decodeEntity = /**\n * @return {?}\n */\n function () {\n var /** @type {?} */ start = this._getLocation();\n this._advance();\n if (this._attemptCharCode(chars.$HASH)) {\n var /** @type {?} */ isHex = this._attemptCharCode(chars.$x) || this._attemptCharCode(chars.$X);\n var /** @type {?} */ numberStart = this._getLocation().offset;\n this._attemptCharCodeUntilFn(isDigitEntityEnd);\n if (this._peek != chars.$SEMICOLON) {\n throw this._createError(_unexpectedCharacterErrorMsg(this._peek), this._getSpan());\n }\n this._advance();\n var /** @type {?} */ strNum = this._input.substring(numberStart, this._index - 1);\n try {\n var /** @type {?} */ charCode = parseInt(strNum, isHex ? 16 : 10);\n return String.fromCharCode(charCode);\n }\n catch (/** @type {?} */ e) {\n var /** @type {?} */ entity = this._input.substring(start.offset + 1, this._index - 1);\n throw this._createError(_unknownEntityErrorMsg(entity), this._getSpan(start));\n }\n }\n else {\n var /** @type {?} */ startPosition = this._savePosition();\n this._attemptCharCodeUntilFn(isNamedEntityEnd);\n if (this._peek != chars.$SEMICOLON) {\n this._restorePosition(startPosition);\n return '&';\n }\n this._advance();\n var /** @type {?} */ name_1 = this._input.substring(start.offset + 1, this._index - 1);\n var /** @type {?} */ char = NAMED_ENTITIES[name_1];\n if (!char) {\n throw this._createError(_unknownEntityErrorMsg(name_1), this._getSpan(start));\n }\n return char;\n }\n };\n /**\n * @param {?} decodeEntities\n * @param {?} firstCharOfEnd\n * @param {?} attemptEndRest\n * @return {?}\n */\n _Tokenizer.prototype._consumeRawText = /**\n * @param {?} decodeEntities\n * @param {?} firstCharOfEnd\n * @param {?} attemptEndRest\n * @return {?}\n */\n function (decodeEntities, firstCharOfEnd, attemptEndRest) {\n var /** @type {?} */ tagCloseStart;\n var /** @type {?} */ textStart = this._getLocation();\n this._beginToken(decodeEntities ? TokenType.ESCAPABLE_RAW_TEXT : TokenType.RAW_TEXT, textStart);\n var /** @type {?} */ parts = [];\n while (true) {\n tagCloseStart = this._getLocation();\n if (this._attemptCharCode(firstCharOfEnd) && attemptEndRest()) {\n break;\n }\n if (this._index > tagCloseStart.offset) {\n // add the characters consumed by the previous if statement to the output\n parts.push(this._input.substring(tagCloseStart.offset, this._index));\n }\n while (this._peek !== firstCharOfEnd) {\n parts.push(this._readChar(decodeEntities));\n }\n }\n return this._endToken([this._processCarriageReturns(parts.join(''))], tagCloseStart);\n };\n /**\n * @param {?} start\n * @return {?}\n */\n _Tokenizer.prototype._consumeComment = /**\n * @param {?} start\n * @return {?}\n */\n function (start) {\n var _this = this;\n this._beginToken(TokenType.COMMENT_START, start);\n this._requireCharCode(chars.$MINUS);\n this._endToken([]);\n var /** @type {?} */ textToken = this._consumeRawText(false, chars.$MINUS, function () { return _this._attemptStr('->'); });\n this._beginToken(TokenType.COMMENT_END, textToken.sourceSpan.end);\n this._endToken([]);\n };\n /**\n * @param {?} start\n * @return {?}\n */\n _Tokenizer.prototype._consumeCdata = /**\n * @param {?} start\n * @return {?}\n */\n function (start) {\n var _this = this;\n this._beginToken(TokenType.CDATA_START, start);\n this._requireStr('CDATA[');\n this._endToken([]);\n var /** @type {?} */ textToken = this._consumeRawText(false, chars.$RBRACKET, function () { return _this._attemptStr(']>'); });\n this._beginToken(TokenType.CDATA_END, textToken.sourceSpan.end);\n this._endToken([]);\n };\n /**\n * @param {?} start\n * @return {?}\n */\n _Tokenizer.prototype._consumeDocType = /**\n * @param {?} start\n * @return {?}\n */\n function (start) {\n this._beginToken(TokenType.DOC_TYPE, start);\n this._attemptUntilChar(chars.$GT);\n this._advance();\n this._endToken([this._input.substring(start.offset + 2, this._index - 1)]);\n };\n /**\n * @return {?}\n */\n _Tokenizer.prototype._consumePrefixAndName = /**\n * @return {?}\n */\n function () {\n var /** @type {?} */ nameOrPrefixStart = this._index;\n var /** @type {?} */ prefix = /** @type {?} */ ((null));\n while (this._peek !== chars.$COLON && !isPrefixEnd(this._peek)) {\n this._advance();\n }\n var /** @type {?} */ nameStart;\n if (this._peek === chars.$COLON) {\n this._advance();\n prefix = this._input.substring(nameOrPrefixStart, this._index - 1);\n nameStart = this._index;\n }\n else {\n nameStart = nameOrPrefixStart;\n }\n this._requireCharCodeUntilFn(isNameEnd, this._index === nameStart ? 1 : 0);\n var /** @type {?} */ name = this._input.substring(nameStart, this._index);\n return [prefix, name];\n };\n /**\n * @param {?} start\n * @return {?}\n */\n _Tokenizer.prototype._consumeTagOpen = /**\n * @param {?} start\n * @return {?}\n */\n function (start) {\n var /** @type {?} */ savedPos = this._savePosition();\n var /** @type {?} */ tagName;\n var /** @type {?} */ lowercaseTagName;\n try {\n if (!chars.isAsciiLetter(this._peek)) {\n throw this._createError(_unexpectedCharacterErrorMsg(this._peek), this._getSpan());\n }\n var /** @type {?} */ nameStart = this._index;\n this._consumeTagOpenStart(start);\n tagName = this._input.substring(nameStart, this._index);\n lowercaseTagName = tagName.toLowerCase();\n this._attemptCharCodeUntilFn(isNotWhitespace);\n while (this._peek !== chars.$SLASH && this._peek !== chars.$GT) {\n this._consumeAttributeName();\n this._attemptCharCodeUntilFn(isNotWhitespace);\n if (this._attemptCharCode(chars.$EQ)) {\n this._attemptCharCodeUntilFn(isNotWhitespace);\n this._consumeAttributeValue();\n }\n this._attemptCharCodeUntilFn(isNotWhitespace);\n }\n this._consumeTagOpenEnd();\n }\n catch (/** @type {?} */ e) {\n if (e instanceof _ControlFlowError) {\n // When the start tag is invalid, assume we want a \"<\"\n this._restorePosition(savedPos);\n // Back to back text tokens are merged at the end\n this._beginToken(TokenType.TEXT, start);\n this._endToken(['<']);\n return;\n }\n throw e;\n }\n var /** @type {?} */ contentTokenType = this._getTagDefinition(tagName).contentType;\n if (contentTokenType === TagContentType.RAW_TEXT) {\n this._consumeRawTextWithTagClose(lowercaseTagName, false);\n }\n else if (contentTokenType === TagContentType.ESCAPABLE_RAW_TEXT) {\n this._consumeRawTextWithTagClose(lowercaseTagName, true);\n }\n };\n /**\n * @param {?} lowercaseTagName\n * @param {?} decodeEntities\n * @return {?}\n */\n _Tokenizer.prototype._consumeRawTextWithTagClose = /**\n * @param {?} lowercaseTagName\n * @param {?} decodeEntities\n * @return {?}\n */\n function (lowercaseTagName, decodeEntities) {\n var _this = this;\n var /** @type {?} */ textToken = this._consumeRawText(decodeEntities, chars.$LT, function () {\n if (!_this._attemptCharCode(chars.$SLASH))\n return false;\n _this._attemptCharCodeUntilFn(isNotWhitespace);\n if (!_this._attemptStrCaseInsensitive(lowercaseTagName))\n return false;\n _this._attemptCharCodeUntilFn(isNotWhitespace);\n return _this._attemptCharCode(chars.$GT);\n });\n this._beginToken(TokenType.TAG_CLOSE, textToken.sourceSpan.end);\n this._endToken([/** @type {?} */ ((null)), lowercaseTagName]);\n };\n /**\n * @param {?} start\n * @return {?}\n */\n _Tokenizer.prototype._consumeTagOpenStart = /**\n * @param {?} start\n * @return {?}\n */\n function (start) {\n this._beginToken(TokenType.TAG_OPEN_START, start);\n var /** @type {?} */ parts = this._consumePrefixAndName();\n this._endToken(parts);\n };\n /**\n * @return {?}\n */\n _Tokenizer.prototype._consumeAttributeName = /**\n * @return {?}\n */\n function () {\n this._beginToken(TokenType.ATTR_NAME);\n var /** @type {?} */ prefixAndName = this._consumePrefixAndName();\n this._endToken(prefixAndName);\n };\n /**\n * @return {?}\n */\n _Tokenizer.prototype._consumeAttributeValue = /**\n * @return {?}\n */\n function () {\n this._beginToken(TokenType.ATTR_VALUE);\n var /** @type {?} */ value;\n if (this._peek === chars.$SQ || this._peek === chars.$DQ) {\n var /** @type {?} */ quoteChar = this._peek;\n this._advance();\n var /** @type {?} */ parts = [];\n while (this._peek !== quoteChar) {\n parts.push(this._readChar(true));\n }\n value = parts.join('');\n this._advance();\n }\n else {\n var /** @type {?} */ valueStart = this._index;\n this._requireCharCodeUntilFn(isNameEnd, 1);\n value = this._input.substring(valueStart, this._index);\n }\n this._endToken([this._processCarriageReturns(value)]);\n };\n /**\n * @return {?}\n */\n _Tokenizer.prototype._consumeTagOpenEnd = /**\n * @return {?}\n */\n function () {\n var /** @type {?} */ tokenType = this._attemptCharCode(chars.$SLASH) ? TokenType.TAG_OPEN_END_VOID : TokenType.TAG_OPEN_END;\n this._beginToken(tokenType);\n this._requireCharCode(chars.$GT);\n this._endToken([]);\n };\n /**\n * @param {?} start\n * @return {?}\n */\n _Tokenizer.prototype._consumeTagClose = /**\n * @param {?} start\n * @return {?}\n */\n function (start) {\n this._beginToken(TokenType.TAG_CLOSE, start);\n this._attemptCharCodeUntilFn(isNotWhitespace);\n var /** @type {?} */ prefixAndName = this._consumePrefixAndName();\n this._attemptCharCodeUntilFn(isNotWhitespace);\n this._requireCharCode(chars.$GT);\n this._endToken(prefixAndName);\n };\n /**\n * @return {?}\n */\n _Tokenizer.prototype._consumeExpansionFormStart = /**\n * @return {?}\n */\n function () {\n this._beginToken(TokenType.EXPANSION_FORM_START, this._getLocation());\n this._requireCharCode(chars.$LBRACE);\n this._endToken([]);\n this._expansionCaseStack.push(TokenType.EXPANSION_FORM_START);\n this._beginToken(TokenType.RAW_TEXT, this._getLocation());\n var /** @type {?} */ condition = this._readUntil(chars.$COMMA);\n this._endToken([condition], this._getLocation());\n this._requireCharCode(chars.$COMMA);\n this._attemptCharCodeUntilFn(isNotWhitespace);\n this._beginToken(TokenType.RAW_TEXT, this._getLocation());\n var /** @type {?} */ type = this._readUntil(chars.$COMMA);\n this._endToken([type], this._getLocation());\n this._requireCharCode(chars.$COMMA);\n this._attemptCharCodeUntilFn(isNotWhitespace);\n };\n /**\n * @return {?}\n */\n _Tokenizer.prototype._consumeExpansionCaseStart = /**\n * @return {?}\n */\n function () {\n this._beginToken(TokenType.EXPANSION_CASE_VALUE, this._getLocation());\n var /** @type {?} */ value = this._readUntil(chars.$LBRACE).trim();\n this._endToken([value], this._getLocation());\n this._attemptCharCodeUntilFn(isNotWhitespace);\n this._beginToken(TokenType.EXPANSION_CASE_EXP_START, this._getLocation());\n this._requireCharCode(chars.$LBRACE);\n this._endToken([], this._getLocation());\n this._attemptCharCodeUntilFn(isNotWhitespace);\n this._expansionCaseStack.push(TokenType.EXPANSION_CASE_EXP_START);\n };\n /**\n * @return {?}\n */\n _Tokenizer.prototype._consumeExpansionCaseEnd = /**\n * @return {?}\n */\n function () {\n this._beginToken(TokenType.EXPANSION_CASE_EXP_END, this._getLocation());\n this._requireCharCode(chars.$RBRACE);\n this._endToken([], this._getLocation());\n this._attemptCharCodeUntilFn(isNotWhitespace);\n this._expansionCaseStack.pop();\n };\n /**\n * @return {?}\n */\n _Tokenizer.prototype._consumeExpansionFormEnd = /**\n * @return {?}\n */\n function () {\n this._beginToken(TokenType.EXPANSION_FORM_END, this._getLocation());\n this._requireCharCode(chars.$RBRACE);\n this._endToken([]);\n this._expansionCaseStack.pop();\n };\n /**\n * @return {?}\n */\n _Tokenizer.prototype._consumeText = /**\n * @return {?}\n */\n function () {\n var /** @type {?} */ start = this._getLocation();\n this._beginToken(TokenType.TEXT, start);\n var /** @type {?} */ parts = [];\n do {\n if (this._interpolationConfig && this._attemptStr(this._interpolationConfig.start)) {\n parts.push(this._interpolationConfig.start);\n this._inInterpolation = true;\n }\n else if (this._interpolationConfig && this._inInterpolation &&\n this._attemptStr(this._interpolationConfig.end)) {\n parts.push(this._interpolationConfig.end);\n this._inInterpolation = false;\n }\n else {\n parts.push(this._readChar(true));\n }\n } while (!this._isTextEnd());\n this._endToken([this._processCarriageReturns(parts.join(''))]);\n };\n /**\n * @return {?}\n */\n _Tokenizer.prototype._isTextEnd = /**\n * @return {?}\n */\n function () {\n if (this._peek === chars.$LT || this._peek === chars.$EOF) {\n return true;\n }\n if (this._tokenizeIcu && !this._inInterpolation) {\n if (isExpansionFormStart(this._input, this._index, this._interpolationConfig)) {\n // start of an expansion form\n return true;\n }\n if (this._peek === chars.$RBRACE && this._isInExpansionCase()) {\n // end of and expansion case\n return true;\n }\n }\n return false;\n };\n /**\n * @return {?}\n */\n _Tokenizer.prototype._savePosition = /**\n * @return {?}\n */\n function () {\n return [this._peek, this._index, this._column, this._line, this.tokens.length];\n };\n /**\n * @param {?} char\n * @return {?}\n */\n _Tokenizer.prototype._readUntil = /**\n * @param {?} char\n * @return {?}\n */\n function (char) {\n var /** @type {?} */ start = this._index;\n this._attemptUntilChar(char);\n return this._input.substring(start, this._index);\n };\n /**\n * @param {?} position\n * @return {?}\n */\n _Tokenizer.prototype._restorePosition = /**\n * @param {?} position\n * @return {?}\n */\n function (position) {\n this._peek = position[0];\n this._index = position[1];\n this._column = position[2];\n this._line = position[3];\n var /** @type {?} */ nbTokens = position[4];\n if (nbTokens < this.tokens.length) {\n // remove any extra tokens\n this.tokens = this.tokens.slice(0, nbTokens);\n }\n };\n /**\n * @return {?}\n */\n _Tokenizer.prototype._isInExpansionCase = /**\n * @return {?}\n */\n function () {\n return this._expansionCaseStack.length > 0 &&\n this._expansionCaseStack[this._expansionCaseStack.length - 1] ===\n TokenType.EXPANSION_CASE_EXP_START;\n };\n /**\n * @return {?}\n */\n _Tokenizer.prototype._isInExpansionForm = /**\n * @return {?}\n */\n function () {\n return this._expansionCaseStack.length > 0 &&\n this._expansionCaseStack[this._expansionCaseStack.length - 1] ===\n TokenType.EXPANSION_FORM_START;\n };\n return _Tokenizer;\n}());\nfunction _Tokenizer_tsickle_Closure_declarations() {\n /** @type {?} */\n _Tokenizer.prototype._input;\n /** @type {?} */\n _Tokenizer.prototype._length;\n /** @type {?} */\n _Tokenizer.prototype._peek;\n /** @type {?} */\n _Tokenizer.prototype._nextPeek;\n /** @type {?} */\n _Tokenizer.prototype._index;\n /** @type {?} */\n _Tokenizer.prototype._line;\n /** @type {?} */\n _Tokenizer.prototype._column;\n /** @type {?} */\n _Tokenizer.prototype._currentTokenStart;\n /** @type {?} */\n _Tokenizer.prototype._currentTokenType;\n /** @type {?} */\n _Tokenizer.prototype._expansionCaseStack;\n /** @type {?} */\n _Tokenizer.prototype._inInterpolation;\n /** @type {?} */\n _Tokenizer.prototype.tokens;\n /** @type {?} */\n _Tokenizer.prototype.errors;\n /** @type {?} */\n _Tokenizer.prototype._file;\n /** @type {?} */\n _Tokenizer.prototype._getTagDefinition;\n /** @type {?} */\n _Tokenizer.prototype._tokenizeIcu;\n /** @type {?} */\n _Tokenizer.prototype._interpolationConfig;\n}\n/**\n * @param {?} code\n * @return {?}\n */\nfunction isNotWhitespace(code) {\n return !chars.isWhitespace(code) || code === chars.$EOF;\n}\n/**\n * @param {?} code\n * @return {?}\n */\nfunction isNameEnd(code) {\n return chars.isWhitespace(code) || code === chars.$GT || code === chars.$SLASH ||\n code === chars.$SQ || code === chars.$DQ || code === chars.$EQ;\n}\n/**\n * @param {?} code\n * @return {?}\n */\nfunction isPrefixEnd(code) {\n return (code < chars.$a || chars.$z < code) && (code < chars.$A || chars.$Z < code) &&\n (code < chars.$0 || code > chars.$9);\n}\n/**\n * @param {?} code\n * @return {?}\n */\nfunction isDigitEntityEnd(code) {\n return code == chars.$SEMICOLON || code == chars.$EOF || !chars.isAsciiHexDigit(code);\n}\n/**\n * @param {?} code\n * @return {?}\n */\nfunction isNamedEntityEnd(code) {\n return code == chars.$SEMICOLON || code == chars.$EOF || !chars.isAsciiLetter(code);\n}\n/**\n * @param {?} input\n * @param {?} offset\n * @param {?} interpolationConfig\n * @return {?}\n */\nfunction isExpansionFormStart(input, offset, interpolationConfig) {\n var /** @type {?} */ isInterpolationStart = interpolationConfig ? input.indexOf(interpolationConfig.start, offset) == offset : false;\n return input.charCodeAt(offset) == chars.$LBRACE && !isInterpolationStart;\n}\n/**\n * @param {?} peek\n * @return {?}\n */\nfunction isExpansionCaseStart(peek) {\n return peek === chars.$EQ || chars.isAsciiLetter(peek) || chars.isDigit(peek);\n}\n/**\n * @param {?} code1\n * @param {?} code2\n * @return {?}\n */\nfunction compareCharCodeCaseInsensitive(code1, code2) {\n return toUpperCaseCharCode(code1) == toUpperCaseCharCode(code2);\n}\n/**\n * @param {?} code\n * @return {?}\n */\nfunction toUpperCaseCharCode(code) {\n return code >= chars.$a && code <= chars.$z ? code - chars.$a + chars.$A : code;\n}\n/**\n * @param {?} srcTokens\n * @return {?}\n */\nfunction mergeTextTokens(srcTokens) {\n var /** @type {?} */ dstTokens = [];\n var /** @type {?} */ lastDstToken = undefined;\n for (var /** @type {?} */ i = 0; i < srcTokens.length; i++) {\n var /** @type {?} */ token = srcTokens[i];\n if (lastDstToken && lastDstToken.type == TokenType.TEXT && token.type == TokenType.TEXT) {\n lastDstToken.parts[0] += token.parts[0];\n lastDstToken.sourceSpan.end = token.sourceSpan.end;\n }\n else {\n lastDstToken = token;\n dstTokens.push(lastDstToken);\n }\n }\n return dstTokens;\n}\n//# sourceMappingURL=lexer.js.map","/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this 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 tslib_1 from \"tslib\";\nimport { ParseError, ParseSourceSpan } from '../parse_util';\nimport * as html from './ast';\nimport { DEFAULT_INTERPOLATION_CONFIG } from './interpolation_config';\nimport * as lex from './lexer';\nimport { getNsPrefix, isNgContainer, mergeNsAndName } from './tags';\nvar TreeError = /** @class */ (function (_super) {\n tslib_1.__extends(TreeError, _super);\n function TreeError(elementName, span, msg) {\n var _this = _super.call(this, span, msg) || this;\n _this.elementName = elementName;\n return _this;\n }\n /**\n * @param {?} elementName\n * @param {?} span\n * @param {?} msg\n * @return {?}\n */\n TreeError.create = /**\n * @param {?} elementName\n * @param {?} span\n * @param {?} msg\n * @return {?}\n */\n function (elementName, span, msg) {\n return new TreeError(elementName, span, msg);\n };\n return TreeError;\n}(ParseError));\nexport { TreeError };\nfunction TreeError_tsickle_Closure_declarations() {\n /** @type {?} */\n TreeError.prototype.elementName;\n}\nvar ParseTreeResult = /** @class */ (function () {\n function ParseTreeResult(rootNodes, errors) {\n this.rootNodes = rootNodes;\n this.errors = errors;\n }\n return ParseTreeResult;\n}());\nexport { ParseTreeResult };\nfunction ParseTreeResult_tsickle_Closure_declarations() {\n /** @type {?} */\n ParseTreeResult.prototype.rootNodes;\n /** @type {?} */\n ParseTreeResult.prototype.errors;\n}\nvar Parser = /** @class */ (function () {\n function Parser(getTagDefinition) {\n this.getTagDefinition = getTagDefinition;\n }\n /**\n * @param {?} source\n * @param {?} url\n * @param {?=} parseExpansionForms\n * @param {?=} interpolationConfig\n * @return {?}\n */\n Parser.prototype.parse = /**\n * @param {?} source\n * @param {?} url\n * @param {?=} parseExpansionForms\n * @param {?=} interpolationConfig\n * @return {?}\n */\n function (source, url, parseExpansionForms, interpolationConfig) {\n if (parseExpansionForms === void 0) { parseExpansionForms = false; }\n if (interpolationConfig === void 0) { interpolationConfig = DEFAULT_INTERPOLATION_CONFIG; }\n var /** @type {?} */ tokensAndErrors = lex.tokenize(source, url, this.getTagDefinition, parseExpansionForms, interpolationConfig);\n var /** @type {?} */ treeAndErrors = new _TreeBuilder(tokensAndErrors.tokens, this.getTagDefinition).build();\n return new ParseTreeResult(treeAndErrors.rootNodes, (/** @type {?} */ (tokensAndErrors.errors)).concat(treeAndErrors.errors));\n };\n return Parser;\n}());\nexport { Parser };\nfunction Parser_tsickle_Closure_declarations() {\n /** @type {?} */\n Parser.prototype.getTagDefinition;\n}\nvar _TreeBuilder = /** @class */ (function () {\n function _TreeBuilder(tokens, getTagDefinition) {\n this.tokens = tokens;\n this.getTagDefinition = getTagDefinition;\n this._index = -1;\n this._rootNodes = [];\n this._errors = [];\n this._elementStack = [];\n this._advance();\n }\n /**\n * @return {?}\n */\n _TreeBuilder.prototype.build = /**\n * @return {?}\n */\n function () {\n while (this._peek.type !== lex.TokenType.EOF) {\n if (this._peek.type === lex.TokenType.TAG_OPEN_START) {\n this._consumeStartTag(this._advance());\n }\n else if (this._peek.type === lex.TokenType.TAG_CLOSE) {\n this._consumeEndTag(this._advance());\n }\n else if (this._peek.type === lex.TokenType.CDATA_START) {\n this._closeVoidElement();\n this._consumeCdata(this._advance());\n }\n else if (this._peek.type === lex.TokenType.COMMENT_START) {\n this._closeVoidElement();\n this._consumeComment(this._advance());\n }\n else if (this._peek.type === lex.TokenType.TEXT || this._peek.type === lex.TokenType.RAW_TEXT ||\n this._peek.type === lex.TokenType.ESCAPABLE_RAW_TEXT) {\n this._closeVoidElement();\n this._consumeText(this._advance());\n }\n else if (this._peek.type === lex.TokenType.EXPANSION_FORM_START) {\n this._consumeExpansion(this._advance());\n }\n else {\n // Skip all other tokens...\n this._advance();\n }\n }\n return new ParseTreeResult(this._rootNodes, this._errors);\n };\n /**\n * @return {?}\n */\n _TreeBuilder.prototype._advance = /**\n * @return {?}\n */\n function () {\n var /** @type {?} */ prev = this._peek;\n if (this._index < this.tokens.length - 1) {\n // Note: there is always an EOF token at the end\n this._index++;\n }\n this._peek = this.tokens[this._index];\n return prev;\n };\n /**\n * @param {?} type\n * @return {?}\n */\n _TreeBuilder.prototype._advanceIf = /**\n * @param {?} type\n * @return {?}\n */\n function (type) {\n if (this._peek.type === type) {\n return this._advance();\n }\n return null;\n };\n /**\n * @param {?} startToken\n * @return {?}\n */\n _TreeBuilder.prototype._consumeCdata = /**\n * @param {?} startToken\n * @return {?}\n */\n function (startToken) {\n this._consumeText(this._advance());\n this._advanceIf(lex.TokenType.CDATA_END);\n };\n /**\n * @param {?} token\n * @return {?}\n */\n _TreeBuilder.prototype._consumeComment = /**\n * @param {?} token\n * @return {?}\n */\n function (token) {\n var /** @type {?} */ text = this._advanceIf(lex.TokenType.RAW_TEXT);\n this._advanceIf(lex.TokenType.COMMENT_END);\n var /** @type {?} */ value = text != null ? text.parts[0].trim() : null;\n this._addToParent(new html.Comment(value, token.sourceSpan));\n };\n /**\n * @param {?} token\n * @return {?}\n */\n _TreeBuilder.prototype._consumeExpansion = /**\n * @param {?} token\n * @return {?}\n */\n function (token) {\n var /** @type {?} */ switchValue = this._advance();\n var /** @type {?} */ type = this._advance();\n var /** @type {?} */ cases = [];\n // read =\n while (this._peek.type === lex.TokenType.EXPANSION_CASE_VALUE) {\n var /** @type {?} */ expCase = this._parseExpansionCase();\n if (!expCase)\n return; // error\n cases.push(expCase);\n }\n // read the final }\n if (this._peek.type !== lex.TokenType.EXPANSION_FORM_END) {\n this._errors.push(TreeError.create(null, this._peek.sourceSpan, \"Invalid ICU message. Missing '}'.\"));\n return;\n }\n var /** @type {?} */ sourceSpan = new ParseSourceSpan(token.sourceSpan.start, this._peek.sourceSpan.end);\n this._addToParent(new html.Expansion(switchValue.parts[0], type.parts[0], cases, sourceSpan, switchValue.sourceSpan));\n this._advance();\n };\n /**\n * @return {?}\n */\n _TreeBuilder.prototype._parseExpansionCase = /**\n * @return {?}\n */\n function () {\n var /** @type {?} */ value = this._advance();\n // read {\n if (this._peek.type !== lex.TokenType.EXPANSION_CASE_EXP_START) {\n this._errors.push(TreeError.create(null, this._peek.sourceSpan, \"Invalid ICU message. Missing '{'.\"));\n return null;\n }\n // read until }\n var /** @type {?} */ start = this._advance();\n var /** @type {?} */ exp = this._collectExpansionExpTokens(start);\n if (!exp)\n return null;\n var /** @type {?} */ end = this._advance();\n exp.push(new lex.Token(lex.TokenType.EOF, [], end.sourceSpan));\n // parse everything in between { and }\n var /** @type {?} */ parsedExp = new _TreeBuilder(exp, this.getTagDefinition).build();\n if (parsedExp.errors.length > 0) {\n this._errors = this._errors.concat(/** @type {?} */ (parsedExp.errors));\n return null;\n }\n var /** @type {?} */ sourceSpan = new ParseSourceSpan(value.sourceSpan.start, end.sourceSpan.end);\n var /** @type {?} */ expSourceSpan = new ParseSourceSpan(start.sourceSpan.start, end.sourceSpan.end);\n return new html.ExpansionCase(value.parts[0], parsedExp.rootNodes, sourceSpan, value.sourceSpan, expSourceSpan);\n };\n /**\n * @param {?} start\n * @return {?}\n */\n _TreeBuilder.prototype._collectExpansionExpTokens = /**\n * @param {?} start\n * @return {?}\n */\n function (start) {\n var /** @type {?} */ exp = [];\n var /** @type {?} */ expansionFormStack = [lex.TokenType.EXPANSION_CASE_EXP_START];\n while (true) {\n if (this._peek.type === lex.TokenType.EXPANSION_FORM_START ||\n this._peek.type === lex.TokenType.EXPANSION_CASE_EXP_START) {\n expansionFormStack.push(this._peek.type);\n }\n if (this._peek.type === lex.TokenType.EXPANSION_CASE_EXP_END) {\n if (lastOnStack(expansionFormStack, lex.TokenType.EXPANSION_CASE_EXP_START)) {\n expansionFormStack.pop();\n if (expansionFormStack.length == 0)\n return exp;\n }\n else {\n this._errors.push(TreeError.create(null, start.sourceSpan, \"Invalid ICU message. Missing '}'.\"));\n return null;\n }\n }\n if (this._peek.type === lex.TokenType.EXPANSION_FORM_END) {\n if (lastOnStack(expansionFormStack, lex.TokenType.EXPANSION_FORM_START)) {\n expansionFormStack.pop();\n }\n else {\n this._errors.push(TreeError.create(null, start.sourceSpan, \"Invalid ICU message. Missing '}'.\"));\n return null;\n }\n }\n if (this._peek.type === lex.TokenType.EOF) {\n this._errors.push(TreeError.create(null, start.sourceSpan, \"Invalid ICU message. Missing '}'.\"));\n return null;\n }\n exp.push(this._advance());\n }\n };\n /**\n * @param {?} token\n * @return {?}\n */\n _TreeBuilder.prototype._consumeText = /**\n * @param {?} token\n * @return {?}\n */\n function (token) {\n var /** @type {?} */ text = token.parts[0];\n if (text.length > 0 && text[0] == '\\n') {\n var /** @type {?} */ parent_1 = this._getParentElement();\n if (parent_1 != null && parent_1.children.length == 0 &&\n this.getTagDefinition(parent_1.name).ignoreFirstLf) {\n text = text.substring(1);\n }\n }\n if (text.length > 0) {\n this._addToParent(new html.Text(text, token.sourceSpan));\n }\n };\n /**\n * @return {?}\n */\n _TreeBuilder.prototype._closeVoidElement = /**\n * @return {?}\n */\n function () {\n var /** @type {?} */ el = this._getParentElement();\n if (el && this.getTagDefinition(el.name).isVoid) {\n this._elementStack.pop();\n }\n };\n /**\n * @param {?} startTagToken\n * @return {?}\n */\n _TreeBuilder.prototype._consumeStartTag = /**\n * @param {?} startTagToken\n * @return {?}\n */\n function (startTagToken) {\n var /** @type {?} */ prefix = startTagToken.parts[0];\n var /** @type {?} */ name = startTagToken.parts[1];\n var /** @type {?} */ attrs = [];\n while (this._peek.type === lex.TokenType.ATTR_NAME) {\n attrs.push(this._consumeAttr(this._advance()));\n }\n var /** @type {?} */ fullName = this._getElementFullName(prefix, name, this._getParentElement());\n var /** @type {?} */ selfClosing = false;\n // Note: There could have been a tokenizer error\n // so that we don't get a token for the end tag...\n if (this._peek.type === lex.TokenType.TAG_OPEN_END_VOID) {\n this._advance();\n selfClosing = true;\n var /** @type {?} */ tagDef = this.getTagDefinition(fullName);\n if (!(tagDef.canSelfClose || getNsPrefix(fullName) !== null || tagDef.isVoid)) {\n this._errors.push(TreeError.create(fullName, startTagToken.sourceSpan, \"Only void and foreign elements can be self closed \\\"\" + startTagToken.parts[1] + \"\\\"\"));\n }\n }\n else if (this._peek.type === lex.TokenType.TAG_OPEN_END) {\n this._advance();\n selfClosing = false;\n }\n var /** @type {?} */ end = this._peek.sourceSpan.start;\n var /** @type {?} */ span = new ParseSourceSpan(startTagToken.sourceSpan.start, end);\n var /** @type {?} */ el = new html.Element(fullName, attrs, [], span, span, undefined);\n this._pushElement(el);\n if (selfClosing) {\n this._popElement(fullName);\n el.endSourceSpan = span;\n }\n };\n /**\n * @param {?} el\n * @return {?}\n */\n _TreeBuilder.prototype._pushElement = /**\n * @param {?} el\n * @return {?}\n */\n function (el) {\n var /** @type {?} */ parentEl = this._getParentElement();\n if (parentEl && this.getTagDefinition(parentEl.name).isClosedByChild(el.name)) {\n this._elementStack.pop();\n }\n var /** @type {?} */ tagDef = this.getTagDefinition(el.name);\n var _a = this._getParentElementSkippingContainers(), parent = _a.parent, container = _a.container;\n if (parent && tagDef.requireExtraParent(parent.name)) {\n var /** @type {?} */ newParent = new html.Element(tagDef.parentToAdd, [], [], el.sourceSpan, el.startSourceSpan, el.endSourceSpan);\n this._insertBeforeContainer(parent, container, newParent);\n }\n this._addToParent(el);\n this._elementStack.push(el);\n };\n /**\n * @param {?} endTagToken\n * @return {?}\n */\n _TreeBuilder.prototype._consumeEndTag = /**\n * @param {?} endTagToken\n * @return {?}\n */\n function (endTagToken) {\n var /** @type {?} */ fullName = this._getElementFullName(endTagToken.parts[0], endTagToken.parts[1], this._getParentElement());\n if (this._getParentElement()) {\n /** @type {?} */ ((this._getParentElement())).endSourceSpan = endTagToken.sourceSpan;\n }\n if (this.getTagDefinition(fullName).isVoid) {\n this._errors.push(TreeError.create(fullName, endTagToken.sourceSpan, \"Void elements do not have end tags \\\"\" + endTagToken.parts[1] + \"\\\"\"));\n }\n else if (!this._popElement(fullName)) {\n var /** @type {?} */ errMsg = \"Unexpected closing tag \\\"\" + fullName + \"\\\". It may happen when the tag has already been closed by another tag. For more info see https://www.w3.org/TR/html5/syntax.html#closing-elements-that-have-implied-end-tags\";\n this._errors.push(TreeError.create(fullName, endTagToken.sourceSpan, errMsg));\n }\n };\n /**\n * @param {?} fullName\n * @return {?}\n */\n _TreeBuilder.prototype._popElement = /**\n * @param {?} fullName\n * @return {?}\n */\n function (fullName) {\n for (var /** @type {?} */ stackIndex = this._elementStack.length - 1; stackIndex >= 0; stackIndex--) {\n var /** @type {?} */ el = this._elementStack[stackIndex];\n if (el.name == fullName) {\n this._elementStack.splice(stackIndex, this._elementStack.length - stackIndex);\n return true;\n }\n if (!this.getTagDefinition(el.name).closedByParent) {\n return false;\n }\n }\n return false;\n };\n /**\n * @param {?} attrName\n * @return {?}\n */\n _TreeBuilder.prototype._consumeAttr = /**\n * @param {?} attrName\n * @return {?}\n */\n function (attrName) {\n var /** @type {?} */ fullName = mergeNsAndName(attrName.parts[0], attrName.parts[1]);\n var /** @type {?} */ end = attrName.sourceSpan.end;\n var /** @type {?} */ value = '';\n var /** @type {?} */ valueSpan = /** @type {?} */ ((undefined));\n if (this._peek.type === lex.TokenType.ATTR_VALUE) {\n var /** @type {?} */ valueToken = this._advance();\n value = valueToken.parts[0];\n end = valueToken.sourceSpan.end;\n valueSpan = valueToken.sourceSpan;\n }\n return new html.Attribute(fullName, value, new ParseSourceSpan(attrName.sourceSpan.start, end), valueSpan);\n };\n /**\n * @return {?}\n */\n _TreeBuilder.prototype._getParentElement = /**\n * @return {?}\n */\n function () {\n return this._elementStack.length > 0 ? this._elementStack[this._elementStack.length - 1] : null;\n };\n /**\n * Returns the parent in the DOM and the container.\n *\n * `<ng-container>` elements are skipped as they are not rendered as DOM element.\n * @return {?}\n */\n _TreeBuilder.prototype._getParentElementSkippingContainers = /**\n * Returns the parent in the DOM and the container.\n *\n * `<ng-container>` elements are skipped as they are not rendered as DOM element.\n * @return {?}\n */\n function () {\n var /** @type {?} */ container = null;\n for (var /** @type {?} */ i = this._elementStack.length - 1; i >= 0; i--) {\n if (!isNgContainer(this._elementStack[i].name)) {\n return { parent: this._elementStack[i], container: container };\n }\n container = this._elementStack[i];\n }\n return { parent: null, container: container };\n };\n /**\n * @param {?} node\n * @return {?}\n */\n _TreeBuilder.prototype._addToParent = /**\n * @param {?} node\n * @return {?}\n */\n function (node) {\n var /** @type {?} */ parent = this._getParentElement();\n if (parent != null) {\n parent.children.push(node);\n }\n else {\n this._rootNodes.push(node);\n }\n };\n /**\n * Insert a node between the parent and the container.\n * When no container is given, the node is appended as a child of the parent.\n * Also updates the element stack accordingly.\n *\n * \\@internal\n * @param {?} parent\n * @param {?} container\n * @param {?} node\n * @return {?}\n */\n _TreeBuilder.prototype._insertBeforeContainer = /**\n * Insert a node between the parent and the container.\n * When no container is given, the node is appended as a child of the parent.\n * Also updates the element stack accordingly.\n *\n * \\@internal\n * @param {?} parent\n * @param {?} container\n * @param {?} node\n * @return {?}\n */\n function (parent, container, node) {\n if (!container) {\n this._addToParent(node);\n this._elementStack.push(node);\n }\n else {\n if (parent) {\n // replace the container with the new node in the children\n var /** @type {?} */ index = parent.children.indexOf(container);\n parent.children[index] = node;\n }\n else {\n this._rootNodes.push(node);\n }\n node.children.push(container);\n this._elementStack.splice(this._elementStack.indexOf(container), 0, node);\n }\n };\n /**\n * @param {?} prefix\n * @param {?} localName\n * @param {?} parentElement\n * @return {?}\n */\n _TreeBuilder.prototype._getElementFullName = /**\n * @param {?} prefix\n * @param {?} localName\n * @param {?} parentElement\n * @return {?}\n */\n function (prefix, localName, parentElement) {\n if (prefix == null) {\n prefix = /** @type {?} */ ((this.getTagDefinition(localName).implicitNamespacePrefix));\n if (prefix == null && parentElement != null) {\n prefix = getNsPrefix(parentElement.name);\n }\n }\n return mergeNsAndName(prefix, localName);\n };\n return _TreeBuilder;\n}());\nfunction _TreeBuilder_tsickle_Closure_declarations() {\n /** @type {?} */\n _TreeBuilder.prototype._index;\n /** @type {?} */\n _TreeBuilder.prototype._peek;\n /** @type {?} */\n _TreeBuilder.prototype._rootNodes;\n /** @type {?} */\n _TreeBuilder.prototype._errors;\n /** @type {?} */\n _TreeBuilder.prototype._elementStack;\n /** @type {?} */\n _TreeBuilder.prototype.tokens;\n /** @type {?} */\n _TreeBuilder.prototype.getTagDefinition;\n}\n/**\n * @param {?} stack\n * @param {?} element\n * @return {?}\n */\nfunction lastOnStack(stack, element) {\n return stack.length > 0 && stack[stack.length - 1] === element;\n}\n//# sourceMappingURL=parser.js.map","/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this 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 tslib_1 from \"tslib\";\nimport { utf8Encode } from '../util';\n/**\n * @param {?} message\n * @return {?}\n */\nexport function digest(message) {\n return message.id || sha1(serializeNodes(message.nodes).join('') + (\"[\" + message.meaning + \"]\"));\n}\n/**\n * @param {?} message\n * @return {?}\n */\nexport function decimalDigest(message) {\n if (message.id) {\n return message.id;\n }\n var /** @type {?} */ visitor = new _SerializerIgnoreIcuExpVisitor();\n var /** @type {?} */ parts = message.nodes.map(function (a) { return a.visit(visitor, null); });\n return computeMsgId(parts.join(''), message.meaning);\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 */\nvar /**\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 */\n_SerializerVisitor = /** @class */ (function () {\n function _SerializerVisitor() {\n }\n /**\n * @param {?} text\n * @param {?} context\n * @return {?}\n */\n _SerializerVisitor.prototype.visitText = /**\n * @param {?} text\n * @param {?} context\n * @return {?}\n */\n function (text, context) { return text.value; };\n /**\n * @param {?} container\n * @param {?} context\n * @return {?}\n */\n _SerializerVisitor.prototype.visitContainer = /**\n * @param {?} container\n * @param {?} context\n * @return {?}\n */\n function (container, context) {\n var _this = this;\n return \"[\" + container.children.map(function (child) { return child.visit(_this); }).join(', ') + \"]\";\n };\n /**\n * @param {?} icu\n * @param {?} context\n * @return {?}\n */\n _SerializerVisitor.prototype.visitIcu = /**\n * @param {?} icu\n * @param {?} context\n * @return {?}\n */\n function (icu, context) {\n var _this = this;\n var /** @type {?} */ strCases = Object.keys(icu.cases).map(function (k) { return k + \" {\" + icu.cases[k].visit(_this) + \"}\"; });\n return \"{\" + icu.expression + \", \" + icu.type + \", \" + strCases.join(', ') + \"}\";\n };\n /**\n * @param {?} ph\n * @param {?} context\n * @return {?}\n */\n _SerializerVisitor.prototype.visitTagPlaceholder = /**\n * @param {?} ph\n * @param {?} context\n * @return {?}\n */\n function (ph, context) {\n var _this = this;\n return ph.isVoid ?\n \"<ph tag name=\\\"\" + ph.startName + \"\\\"/>\" :\n \"<ph tag name=\\\"\" + ph.startName + \"\\\">\" + ph.children.map(function (child) { return child.visit(_this); }).join(', ') + \"</ph name=\\\"\" + ph.closeName + \"\\\">\";\n };\n /**\n * @param {?} ph\n * @param {?} context\n * @return {?}\n */\n _SerializerVisitor.prototype.visitPlaceholder = /**\n * @param {?} ph\n * @param {?} context\n * @return {?}\n */\n function (ph, context) {\n return ph.value ? \"<ph name=\\\"\" + ph.name + \"\\\">\" + ph.value + \"</ph>\" : \"<ph name=\\\"\" + ph.name + \"\\\"/>\";\n };\n /**\n * @param {?} ph\n * @param {?=} context\n * @return {?}\n */\n _SerializerVisitor.prototype.visitIcuPlaceholder = /**\n * @param {?} ph\n * @param {?=} context\n * @return {?}\n */\n function (ph, context) {\n return \"<ph icu name=\\\"\" + ph.name + \"\\\">\" + ph.value.visit(this) + \"</ph>\";\n };\n return _SerializerVisitor;\n}());\nvar /** @type {?} */ serializerVisitor = new _SerializerVisitor();\n/**\n * @param {?} nodes\n * @return {?}\n */\nexport function serializeNodes(nodes) {\n return nodes.map(function (a) { return a.visit(serializerVisitor, null); });\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 */\nvar /**\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 */\n_SerializerIgnoreIcuExpVisitor = /** @class */ (function (_super) {\n tslib_1.__extends(_SerializerIgnoreIcuExpVisitor, _super);\n function _SerializerIgnoreIcuExpVisitor() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * @param {?} icu\n * @param {?} context\n * @return {?}\n */\n _SerializerIgnoreIcuExpVisitor.prototype.visitIcu = /**\n * @param {?} icu\n * @param {?} context\n * @return {?}\n */\n function (icu, context) {\n var _this = this;\n var /** @type {?} */ strCases = Object.keys(icu.cases).map(function (k) { return k + \" {\" + icu.cases[k].visit(_this) + \"}\"; });\n // Do not take the expression into account\n return \"{\" + icu.type + \", \" + strCases.join(', ') + \"}\";\n };\n return _SerializerIgnoreIcuExpVisitor;\n}(_SerializerVisitor));\n/**\n * Compute the SHA1 of the given string\n *\n * see http://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 * @param {?} str\n * @return {?}\n */\nexport function sha1(str) {\n var /** @type {?} */ utf8 = utf8Encode(str);\n var /** @type {?} */ words32 = stringToWords32(utf8, Endian.Big);\n var /** @type {?} */ len = utf8.length * 8;\n var /** @type {?} */ w = new Array(80);\n var _a = [0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0], a = _a[0], b = _a[1], c = _a[2], d = _a[3], e = _a[4];\n words32[len >> 5] |= 0x80 << (24 - len % 32);\n words32[((len + 64 >> 9) << 4) + 15] = len;\n for (var /** @type {?} */ i = 0; i < words32.length; i += 16) {\n var _b = [a, b, c, d, e], h0 = _b[0], h1 = _b[1], h2 = _b[2], h3 = _b[3], h4 = _b[4];\n for (var /** @type {?} */ j = 0; j < 80; j++) {\n if (j < 16) {\n w[j] = words32[i + j];\n }\n else {\n w[j] = rol32(w[j - 3] ^ w[j - 8] ^ w[j - 14] ^ w[j - 16], 1);\n }\n var _c = fk(j, b, c, d), f = _c[0], k = _c[1];\n var /** @type {?} */ temp = [rol32(a, 5), f, e, k, w[j]].reduce(add32);\n _d = [d, c, rol32(b, 30), a, temp], e = _d[0], d = _d[1], c = _d[2], b = _d[3], a = _d[4];\n }\n _e = [add32(a, h0), add32(b, h1), add32(c, h2), add32(d, h3), add32(e, h4)], a = _e[0], b = _e[1], c = _e[2], d = _e[3], e = _e[4];\n }\n return byteStringToHexString(words32ToByteString([a, b, c, d, e]));\n var _d, _e;\n}\n/**\n * @param {?} index\n * @param {?} b\n * @param {?} c\n * @param {?} d\n * @return {?}\n */\nfunction fk(index, b, c, d) {\n if (index < 20) {\n return [(b & c) | (~b & d), 0x5a827999];\n }\n if (index < 40) {\n return [b ^ c ^ d, 0x6ed9eba1];\n }\n if (index < 60) {\n return [(b & c) | (b & d) | (c & d), 0x8f1bbcdc];\n }\n return [b ^ c ^ d, 0xca62c1d6];\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 * @param {?} str\n * @return {?}\n */\nexport function fingerprint(str) {\n var /** @type {?} */ utf8 = utf8Encode(str);\n var _a = [hash32(utf8, 0), hash32(utf8, 102072)], hi = _a[0], lo = _a[1];\n if (hi == 0 && (lo == 0 || lo == 1)) {\n hi = hi ^ 0x130f9bef;\n lo = lo ^ -0x6b5f56d8;\n }\n return [hi, lo];\n}\n/**\n * @param {?} msg\n * @param {?} meaning\n * @return {?}\n */\nexport function computeMsgId(msg, meaning) {\n var _a = fingerprint(msg), hi = _a[0], lo = _a[1];\n if (meaning) {\n var _b = fingerprint(meaning), him = _b[0], lom = _b[1];\n _c = add64(rol64([hi, lo], 1), [him, lom]), hi = _c[0], lo = _c[1];\n }\n return byteStringToDecString(words32ToByteString([hi & 0x7fffffff, lo]));\n var _c;\n}\n/**\n * @param {?} str\n * @param {?} c\n * @return {?}\n */\nfunction hash32(str, c) {\n var _a = [0x9e3779b9, 0x9e3779b9], a = _a[0], b = _a[1];\n var /** @type {?} */ i;\n var /** @type {?} */ len = str.length;\n for (i = 0; i + 12 <= len; i += 12) {\n a = add32(a, wordAt(str, i, Endian.Little));\n b = add32(b, wordAt(str, i + 4, Endian.Little));\n c = add32(c, wordAt(str, i + 8, Endian.Little));\n _b = mix([a, b, c]), a = _b[0], b = _b[1], c = _b[2];\n }\n a = add32(a, wordAt(str, i, Endian.Little));\n b = add32(b, wordAt(str, 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(str, i + 8, Endian.Little) << 8);\n return mix([a, b, c])[2];\n var _b;\n}\n/**\n * @param {?} __0\n * @return {?}\n */\nfunction mix(_a) {\n var a = _a[0], b = _a[1], c = _a[2];\n a = sub32(a, b);\n a = sub32(a, c);\n a ^= c >>> 13;\n b = sub32(b, c);\n b = sub32(b, a);\n b ^= a << 8;\n c = sub32(c, a);\n c = sub32(c, b);\n c ^= b >>> 13;\n a = sub32(a, b);\n a = sub32(a, c);\n a ^= c >>> 12;\n b = sub32(b, c);\n b = sub32(b, a);\n b ^= a << 16;\n c = sub32(c, a);\n c = sub32(c, b);\n c ^= b >>> 5;\n a = sub32(a, b);\n a = sub32(a, c);\n a ^= c >>> 3;\n b = sub32(b, c);\n b = sub32(b, a);\n b ^= a << 10;\n c = sub32(c, a);\n c = sub32(c, b);\n c ^= b >>> 15;\n return [a, b, c];\n}\n/** @enum {number} */\nvar Endian = {\n Little: 0,\n Big: 1,\n};\nEndian[Endian.Little] = \"Little\";\nEndian[Endian.Big] = \"Big\";\n/**\n * @param {?} a\n * @param {?} b\n * @return {?}\n */\nfunction add32(a, b) {\n return add32to64(a, b)[1];\n}\n/**\n * @param {?} a\n * @param {?} b\n * @return {?}\n */\nfunction add32to64(a, b) {\n var /** @type {?} */ low = (a & 0xffff) + (b & 0xffff);\n var /** @type {?} */ high = (a >>> 16) + (b >>> 16) + (low >>> 16);\n return [high >>> 16, (high << 16) | (low & 0xffff)];\n}\n/**\n * @param {?} __0\n * @param {?} __1\n * @return {?}\n */\nfunction add64(_a, _b) {\n var ah = _a[0], al = _a[1];\n var bh = _b[0], bl = _b[1];\n var _c = add32to64(al, bl), carry = _c[0], l = _c[1];\n var /** @type {?} */ h = add32(add32(ah, bh), carry);\n return [h, l];\n}\n/**\n * @param {?} a\n * @param {?} b\n * @return {?}\n */\nfunction sub32(a, b) {\n var /** @type {?} */ low = (a & 0xffff) - (b & 0xffff);\n var /** @type {?} */ high = (a >> 16) - (b >> 16) + (low >> 16);\n return (high << 16) | (low & 0xffff);\n}\n/**\n * @param {?} a\n * @param {?} count\n * @return {?}\n */\nfunction rol32(a, count) {\n return (a << count) | (a >>> (32 - count));\n}\n/**\n * @param {?} __0\n * @param {?} count\n * @return {?}\n */\nfunction rol64(_a, count) {\n var hi = _a[0], lo = _a[1];\n var /** @type {?} */ h = (hi << count) | (lo >>> (32 - count));\n var /** @type {?} */ l = (lo << count) | (hi >>> (32 - count));\n return [h, l];\n}\n/**\n * @param {?} str\n * @param {?} endian\n * @return {?}\n */\nfunction stringToWords32(str, endian) {\n var /** @type {?} */ words32 = Array((str.length + 3) >>> 2);\n for (var /** @type {?} */ i = 0; i < words32.length; i++) {\n words32[i] = wordAt(str, i * 4, endian);\n }\n return words32;\n}\n/**\n * @param {?} str\n * @param {?} index\n * @return {?}\n */\nfunction byteAt(str, index) {\n return index >= str.length ? 0 : str.charCodeAt(index) & 0xff;\n}\n/**\n * @param {?} str\n * @param {?} index\n * @param {?} endian\n * @return {?}\n */\nfunction wordAt(str, index, endian) {\n var /** @type {?} */ word = 0;\n if (endian === Endian.Big) {\n for (var /** @type {?} */ i = 0; i < 4; i++) {\n word += byteAt(str, index + i) << (24 - 8 * i);\n }\n }\n else {\n for (var /** @type {?} */ i = 0; i < 4; i++) {\n word += byteAt(str, index + i) << 8 * i;\n }\n }\n return word;\n}\n/**\n * @param {?} words32\n * @return {?}\n */\nfunction words32ToByteString(words32) {\n return words32.reduce(function (str, word) { return str + word32ToByteString(word); }, '');\n}\n/**\n * @param {?} word\n * @return {?}\n */\nfunction word32ToByteString(word) {\n var /** @type {?} */ str = '';\n for (var /** @type {?} */ i = 0; i < 4; i++) {\n str += String.fromCharCode((word >>> 8 * (3 - i)) & 0xff);\n }\n return str;\n}\n/**\n * @param {?} str\n * @return {?}\n */\nfunction byteStringToHexString(str) {\n var /** @type {?} */ hex = '';\n for (var /** @type {?} */ i = 0; i < str.length; i++) {\n var /** @type {?} */ b = byteAt(str, i);\n hex += (b >>> 4).toString(16) + (b & 0x0f).toString(16);\n }\n return hex.toLowerCase();\n}\n/**\n * @param {?} str\n * @return {?}\n */\nfunction byteStringToDecString(str) {\n var /** @type {?} */ decimal = '';\n var /** @type {?} */ toThePower = '1';\n for (var /** @type {?} */ i = str.length - 1; i >= 0; i--) {\n decimal = addBigInt(decimal, numberTimesBigInt(byteAt(str, i), toThePower));\n toThePower = numberTimesBigInt(256, toThePower);\n }\n return decimal.split('').reverse().join('');\n}\n/**\n * @param {?} x\n * @param {?} y\n * @return {?}\n */\nfunction addBigInt(x, y) {\n var /** @type {?} */ sum = '';\n var /** @type {?} */ len = Math.max(x.length, y.length);\n for (var /** @type {?} */ i = 0, /** @type {?} */ carry = 0; i < len || carry; i++) {\n var /** @type {?} */ tmpSum = carry + +(x[i] || 0) + +(y[i] || 0);\n if (tmpSum >= 10) {\n carry = 1;\n sum += tmpSum - 10;\n }\n else {\n carry = 0;\n sum += tmpSum;\n }\n }\n return sum;\n}\n/**\n * @param {?} num\n * @param {?} b\n * @return {?}\n */\nfunction numberTimesBigInt(num, b) {\n var /** @type {?} */ product = '';\n var /** @type {?} */ bToThePower = b;\n for (; num !== 0; num = num >>> 1) {\n if (num & 1)\n product = addBigInt(product, bToThePower);\n bToThePower = addBigInt(bToThePower, bToThePower);\n }\n return product;\n}\n//# sourceMappingURL=digest.js.map","/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nvar Message = /** @class */ (function () {\n /**\n * @param nodes message AST\n * @param placeholders maps placeholder names to static content\n * @param placeholderToMessage maps placeholder names to messages (used for nested ICU messages)\n * @param meaning\n * @param description\n * @param id\n */\n function Message(nodes, placeholders, placeholderToMessage, meaning, description, id) {\n this.nodes = nodes;\n this.placeholders = placeholders;\n this.placeholderToMessage = placeholderToMessage;\n this.meaning = meaning;\n this.description = description;\n this.id = id;\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 }\n else {\n this.sources = [];\n }\n }\n return Message;\n}());\nexport { Message };\nfunction Message_tsickle_Closure_declarations() {\n /** @type {?} */\n Message.prototype.sources;\n /** @type {?} */\n Message.prototype.nodes;\n /** @type {?} */\n Message.prototype.placeholders;\n /** @type {?} */\n Message.prototype.placeholderToMessage;\n /** @type {?} */\n Message.prototype.meaning;\n /** @type {?} */\n Message.prototype.description;\n /** @type {?} */\n Message.prototype.id;\n}\n/**\n * @record\n */\nexport function MessageSpan() { }\nfunction MessageSpan_tsickle_Closure_declarations() {\n /** @type {?} */\n MessageSpan.prototype.filePath;\n /** @type {?} */\n MessageSpan.prototype.startLine;\n /** @type {?} */\n MessageSpan.prototype.startCol;\n /** @type {?} */\n MessageSpan.prototype.endLine;\n /** @type {?} */\n MessageSpan.prototype.endCol;\n}\n/**\n * @record\n */\nexport function Node() { }\nfunction Node_tsickle_Closure_declarations() {\n /** @type {?} */\n Node.prototype.sourceSpan;\n /** @type {?} */\n Node.prototype.visit;\n}\nvar Text = /** @class */ (function () {\n function Text(value, sourceSpan) {\n this.value = value;\n this.sourceSpan = sourceSpan;\n }\n /**\n * @param {?} visitor\n * @param {?=} context\n * @return {?}\n */\n Text.prototype.visit = /**\n * @param {?} visitor\n * @param {?=} context\n * @return {?}\n */\n function (visitor, context) { return visitor.visitText(this, context); };\n return Text;\n}());\nexport { Text };\nfunction Text_tsickle_Closure_declarations() {\n /** @type {?} */\n Text.prototype.value;\n /** @type {?} */\n Text.prototype.sourceSpan;\n}\nvar Container = /** @class */ (function () {\n function Container(children, sourceSpan) {\n this.children = children;\n this.sourceSpan = sourceSpan;\n }\n /**\n * @param {?} visitor\n * @param {?=} context\n * @return {?}\n */\n Container.prototype.visit = /**\n * @param {?} visitor\n * @param {?=} context\n * @return {?}\n */\n function (visitor, context) { return visitor.visitContainer(this, context); };\n return Container;\n}());\nexport { Container };\nfunction Container_tsickle_Closure_declarations() {\n /** @type {?} */\n Container.prototype.children;\n /** @type {?} */\n Container.prototype.sourceSpan;\n}\nvar Icu = /** @class */ (function () {\n function Icu(expression, type, cases, sourceSpan) {\n this.expression = expression;\n this.type = type;\n this.cases = cases;\n this.sourceSpan = sourceSpan;\n }\n /**\n * @param {?} visitor\n * @param {?=} context\n * @return {?}\n */\n Icu.prototype.visit = /**\n * @param {?} visitor\n * @param {?=} context\n * @return {?}\n */\n function (visitor, context) { return visitor.visitIcu(this, context); };\n return Icu;\n}());\nexport { Icu };\nfunction Icu_tsickle_Closure_declarations() {\n /** @type {?} */\n Icu.prototype.expressionPlaceholder;\n /** @type {?} */\n Icu.prototype.expression;\n /** @type {?} */\n Icu.prototype.type;\n /** @type {?} */\n Icu.prototype.cases;\n /** @type {?} */\n Icu.prototype.sourceSpan;\n}\nvar TagPlaceholder = /** @class */ (function () {\n function TagPlaceholder(tag, attrs, startName, closeName, children, isVoid, sourceSpan) {\n this.tag = tag;\n this.attrs = attrs;\n this.startName = startName;\n this.closeName = closeName;\n this.children = children;\n this.isVoid = isVoid;\n this.sourceSpan = sourceSpan;\n }\n /**\n * @param {?} visitor\n * @param {?=} context\n * @return {?}\n */\n TagPlaceholder.prototype.visit = /**\n * @param {?} visitor\n * @param {?=} context\n * @return {?}\n */\n function (visitor, context) { return visitor.visitTagPlaceholder(this, context); };\n return TagPlaceholder;\n}());\nexport { TagPlaceholder };\nfunction TagPlaceholder_tsickle_Closure_declarations() {\n /** @type {?} */\n TagPlaceholder.prototype.tag;\n /** @type {?} */\n TagPlaceholder.prototype.attrs;\n /** @type {?} */\n TagPlaceholder.prototype.startName;\n /** @type {?} */\n TagPlaceholder.prototype.closeName;\n /** @type {?} */\n TagPlaceholder.prototype.children;\n /** @type {?} */\n TagPlaceholder.prototype.isVoid;\n /** @type {?} */\n TagPlaceholder.prototype.sourceSpan;\n}\nvar Placeholder = /** @class */ (function () {\n function Placeholder(value, name, sourceSpan) {\n this.value = value;\n this.name = name;\n this.sourceSpan = sourceSpan;\n }\n /**\n * @param {?} visitor\n * @param {?=} context\n * @return {?}\n */\n Placeholder.prototype.visit = /**\n * @param {?} visitor\n * @param {?=} context\n * @return {?}\n */\n function (visitor, context) { return visitor.visitPlaceholder(this, context); };\n return Placeholder;\n}());\nexport { Placeholder };\nfunction Placeholder_tsickle_Closure_declarations() {\n /** @type {?} */\n Placeholder.prototype.value;\n /** @type {?} */\n Placeholder.prototype.name;\n /** @type {?} */\n Placeholder.prototype.sourceSpan;\n}\nvar IcuPlaceholder = /** @class */ (function () {\n function IcuPlaceholder(value, name, sourceSpan) {\n this.value = value;\n this.name = name;\n this.sourceSpan = sourceSpan;\n }\n /**\n * @param {?} visitor\n * @param {?=} context\n * @return {?}\n */\n IcuPlaceholder.prototype.visit = /**\n * @param {?} visitor\n * @param {?=} context\n * @return {?}\n */\n function (visitor, context) { return visitor.visitIcuPlaceholder(this, context); };\n return IcuPlaceholder;\n}());\nexport { IcuPlaceholder };\nfunction IcuPlaceholder_tsickle_Closure_declarations() {\n /** @type {?} */\n IcuPlaceholder.prototype.value;\n /** @type {?} */\n IcuPlaceholder.prototype.name;\n /** @type {?} */\n IcuPlaceholder.prototype.sourceSpan;\n}\n/**\n * @record\n */\nexport function Visitor() { }\nfunction Visitor_tsickle_Closure_declarations() {\n /** @type {?} */\n Visitor.prototype.visitText;\n /** @type {?} */\n Visitor.prototype.visitContainer;\n /** @type {?} */\n Visitor.prototype.visitIcu;\n /** @type {?} */\n Visitor.prototype.visitTagPlaceholder;\n /** @type {?} */\n Visitor.prototype.visitPlaceholder;\n /** @type {?} */\n Visitor.prototype.visitIcuPlaceholder;\n}\nvar CloneVisitor = /** @class */ (function () {\n function CloneVisitor() {\n }\n /**\n * @param {?} text\n * @param {?=} context\n * @return {?}\n */\n CloneVisitor.prototype.visitText = /**\n * @param {?} text\n * @param {?=} context\n * @return {?}\n */\n function (text, context) { return new Text(text.value, text.sourceSpan); };\n /**\n * @param {?} container\n * @param {?=} context\n * @return {?}\n */\n CloneVisitor.prototype.visitContainer = /**\n * @param {?} container\n * @param {?=} context\n * @return {?}\n */\n function (container, context) {\n var _this = this;\n var /** @type {?} */ children = container.children.map(function (n) { return n.visit(_this, context); });\n return new Container(children, container.sourceSpan);\n };\n /**\n * @param {?} icu\n * @param {?=} context\n * @return {?}\n */\n CloneVisitor.prototype.visitIcu = /**\n * @param {?} icu\n * @param {?=} context\n * @return {?}\n */\n function (icu, context) {\n var _this = this;\n var /** @type {?} */ cases = {};\n Object.keys(icu.cases).forEach(function (key) { return cases[key] = icu.cases[key].visit(_this, context); });\n var /** @type {?} */ msg = new Icu(icu.expression, icu.type, cases, icu.sourceSpan);\n msg.expressionPlaceholder = icu.expressionPlaceholder;\n return msg;\n };\n /**\n * @param {?} ph\n * @param {?=} context\n * @return {?}\n */\n CloneVisitor.prototype.visitTagPlaceholder = /**\n * @param {?} ph\n * @param {?=} context\n * @return {?}\n */\n function (ph, context) {\n var _this = this;\n var /** @type {?} */ children = ph.children.map(function (n) { return n.visit(_this, context); });\n return new TagPlaceholder(ph.tag, ph.attrs, ph.startName, ph.closeName, children, ph.isVoid, ph.sourceSpan);\n };\n /**\n * @param {?} ph\n * @param {?=} context\n * @return {?}\n */\n CloneVisitor.prototype.visitPlaceholder = /**\n * @param {?} ph\n * @param {?=} context\n * @return {?}\n */\n function (ph, context) {\n return new Placeholder(ph.value, ph.name, ph.sourceSpan);\n };\n /**\n * @param {?} ph\n * @param {?=} context\n * @return {?}\n */\n CloneVisitor.prototype.visitIcuPlaceholder = /**\n * @param {?} ph\n * @param {?=} context\n * @return {?}\n */\n function (ph, context) {\n return new IcuPlaceholder(ph.value, ph.name, ph.sourceSpan);\n };\n return CloneVisitor;\n}());\nexport { CloneVisitor };\nvar RecurseVisitor = /** @class */ (function () {\n function RecurseVisitor() {\n }\n /**\n * @param {?} text\n * @param {?=} context\n * @return {?}\n */\n RecurseVisitor.prototype.visitText = /**\n * @param {?} text\n * @param {?=} context\n * @return {?}\n */\n function (text, context) { };\n /**\n * @param {?} container\n * @param {?=} context\n * @return {?}\n */\n RecurseVisitor.prototype.visitContainer = /**\n * @param {?} container\n * @param {?=} context\n * @return {?}\n */\n function (container, context) {\n var _this = this;\n container.children.forEach(function (child) { return child.visit(_this); });\n };\n /**\n * @param {?} icu\n * @param {?=} context\n * @return {?}\n */\n RecurseVisitor.prototype.visitIcu = /**\n * @param {?} icu\n * @param {?=} context\n * @return {?}\n */\n function (icu, context) {\n var _this = this;\n Object.keys(icu.cases).forEach(function (k) { icu.cases[k].visit(_this); });\n };\n /**\n * @param {?} ph\n * @param {?=} context\n * @return {?}\n */\n RecurseVisitor.prototype.visitTagPlaceholder = /**\n * @param {?} ph\n * @param {?=} context\n * @return {?}\n */\n function (ph, context) {\n var _this = this;\n ph.children.forEach(function (child) { return child.visit(_this); });\n };\n /**\n * @param {?} ph\n * @param {?=} context\n * @return {?}\n */\n RecurseVisitor.prototype.visitPlaceholder = /**\n * @param {?} ph\n * @param {?=} context\n * @return {?}\n */\n function (ph, context) { };\n /**\n * @param {?} ph\n * @param {?=} context\n * @return {?}\n */\n RecurseVisitor.prototype.visitIcuPlaceholder = /**\n * @param {?} ph\n * @param {?=} context\n * @return {?}\n */\n function (ph, context) { };\n return RecurseVisitor;\n}());\nexport { RecurseVisitor };\n//# sourceMappingURL=i18n_ast.js.map","/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this 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 { TagContentType } from './tags';\nvar HtmlTagDefinition = /** @class */ (function () {\n function HtmlTagDefinition(_a) {\n var _b = _a === void 0 ? {} : _a, closedByChildren = _b.closedByChildren, requiredParents = _b.requiredParents, implicitNamespacePrefix = _b.implicitNamespacePrefix, _c = _b.contentType, contentType = _c === void 0 ? TagContentType.PARSABLE_DATA : _c, _d = _b.closedByParent, closedByParent = _d === void 0 ? false : _d, _e = _b.isVoid, isVoid = _e === void 0 ? false : _e, _f = _b.ignoreFirstLf, ignoreFirstLf = _f === void 0 ? false : _f;\n var _this = this;\n this.closedByChildren = {};\n this.closedByParent = false;\n this.canSelfClose = false;\n if (closedByChildren && closedByChildren.length > 0) {\n closedByChildren.forEach(function (tagName) { return _this.closedByChildren[tagName] = true; });\n }\n this.isVoid = isVoid;\n this.closedByParent = closedByParent || isVoid;\n if (requiredParents && requiredParents.length > 0) {\n this.requiredParents = {};\n // The first parent is the list is automatically when none of the listed parents are present\n this.parentToAdd = requiredParents[0];\n requiredParents.forEach(function (tagName) { return _this.requiredParents[tagName] = true; });\n }\n this.implicitNamespacePrefix = implicitNamespacePrefix || null;\n this.contentType = contentType;\n this.ignoreFirstLf = ignoreFirstLf;\n }\n /**\n * @param {?} currentParent\n * @return {?}\n */\n HtmlTagDefinition.prototype.requireExtraParent = /**\n * @param {?} currentParent\n * @return {?}\n */\n function (currentParent) {\n if (!this.requiredParents) {\n return false;\n }\n if (!currentParent) {\n return true;\n }\n var /** @type {?} */ lcParent = currentParent.toLowerCase();\n var /** @type {?} */ isParentTemplate = lcParent === 'template' || currentParent === 'ng-template';\n return !isParentTemplate && this.requiredParents[lcParent] != true;\n };\n /**\n * @param {?} name\n * @return {?}\n */\n HtmlTagDefinition.prototype.isClosedByChild = /**\n * @param {?} name\n * @return {?}\n */\n function (name) {\n return this.isVoid || name.toLowerCase() in this.closedByChildren;\n };\n return HtmlTagDefinition;\n}());\nexport { HtmlTagDefinition };\nfunction HtmlTagDefinition_tsickle_Closure_declarations() {\n /** @type {?} */\n HtmlTagDefinition.prototype.closedByChildren;\n /** @type {?} */\n HtmlTagDefinition.prototype.closedByParent;\n /** @type {?} */\n HtmlTagDefinition.prototype.requiredParents;\n /** @type {?} */\n HtmlTagDefinition.prototype.parentToAdd;\n /** @type {?} */\n HtmlTagDefinition.prototype.implicitNamespacePrefix;\n /** @type {?} */\n HtmlTagDefinition.prototype.contentType;\n /** @type {?} */\n HtmlTagDefinition.prototype.isVoid;\n /** @type {?} */\n HtmlTagDefinition.prototype.ignoreFirstLf;\n /** @type {?} */\n HtmlTagDefinition.prototype.canSelfClose;\n}\n// see http://www.w3.org/TR/html51/syntax.html#optional-tags\n// This implementation does not fully conform to the HTML5 spec.\nvar /** @type {?} */ 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', 'footer', 'form',\n 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'header', 'hgroup', 'hr',\n 'main', 'nav', 'ol', '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({\n closedByChildren: ['tr'],\n requiredParents: ['tbody', 'tfoot', 'thead'],\n closedByParent: true\n }),\n 'td': new HtmlTagDefinition({ closedByChildren: ['td', 'th'], closedByParent: true }),\n 'th': new HtmlTagDefinition({ closedByChildren: ['td', 'th'], closedByParent: true }),\n 'col': new HtmlTagDefinition({ requiredParents: ['colgroup'], isVoid: true }),\n 'svg': new HtmlTagDefinition({ implicitNamespacePrefix: 'svg' }),\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({ closedByChildren: ['rb', 'rt', 'rtc', 'rp'], closedByParent: true }),\n 'rt': new HtmlTagDefinition({ closedByChildren: ['rb', 'rt', 'rtc', 'rp'], closedByParent: true }),\n 'rtc': new HtmlTagDefinition({ closedByChildren: ['rb', 'rtc', 'rp'], closedByParent: true }),\n 'rp': new HtmlTagDefinition({ closedByChildren: ['rb', 'rt', 'rtc', 'rp'], closedByParent: true }),\n 'optgroup': new HtmlTagDefinition({ closedByChildren: ['optgroup'], closedByParent: true }),\n 'option': 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({ contentType: TagContentType.ESCAPABLE_RAW_TEXT }),\n 'textarea': new HtmlTagDefinition({ contentType: TagContentType.ESCAPABLE_RAW_TEXT, ignoreFirstLf: true }),\n};\nvar /** @type {?} */ _DEFAULT_TAG_DEFINITION = new HtmlTagDefinition();\n/**\n * @param {?} tagName\n * @return {?}\n */\nexport function getHtmlTagDefinition(tagName) {\n return TAG_DEFINITIONS[tagName.toLowerCase()] || _DEFAULT_TAG_DEFINITION;\n}\n//# sourceMappingURL=html_tags.js.map","/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nvar /** @type {?} */ TAG_TO_PLACEHOLDER_NAMES = {\n 'A': 'LINK',\n 'B': 'BOLD_TEXT',\n 'BR': 'LINE_BREAK',\n 'EM': 'EMPHASISED_TEXT',\n 'H1': 'HEADING_LEVEL1',\n 'H2': 'HEADING_LEVEL2',\n 'H3': 'HEADING_LEVEL3',\n 'H4': 'HEADING_LEVEL4',\n 'H5': 'HEADING_LEVEL5',\n 'H6': 'HEADING_LEVEL6',\n 'HR': 'HORIZONTAL_RULE',\n 'I': 'ITALIC_TEXT',\n 'LI': 'LIST_ITEM',\n 'LINK': 'MEDIA_LINK',\n 'OL': 'ORDERED_LIST',\n 'P': 'PARAGRAPH',\n 'Q': 'QUOTATION',\n 'S': 'STRIKETHROUGH_TEXT',\n 'SMALL': 'SMALL_TEXT',\n 'SUB': 'SUBSTRIPT',\n 'SUP': 'SUPERSCRIPT',\n 'TBODY': 'TABLE_BODY',\n 'TD': 'TABLE_CELL',\n 'TFOOT': 'TABLE_FOOTER',\n 'TH': 'TABLE_HEADER_CELL',\n 'THEAD': 'TABLE_HEADER',\n 'TR': 'TABLE_ROW',\n 'TT': 'MONOSPACED_TEXT',\n 'U': 'UNDERLINED_TEXT',\n 'UL': 'UNORDERED_LIST',\n};\n/**\n * Creates unique names for placeholder with different content.\n *\n * Returns the same placeholder name when the content is identical.\n */\nvar /**\n * Creates unique names for placeholder with different content.\n *\n * Returns the same placeholder name when the content is identical.\n */\nPlaceholderRegistry = /** @class */ (function () {\n function PlaceholderRegistry() {\n this._placeHolderNameCounts = {};\n this._signatureToName = {};\n }\n /**\n * @param {?} tag\n * @param {?} attrs\n * @param {?} isVoid\n * @return {?}\n */\n PlaceholderRegistry.prototype.getStartTagPlaceholderName = /**\n * @param {?} tag\n * @param {?} attrs\n * @param {?} isVoid\n * @return {?}\n */\n function (tag, attrs, isVoid) {\n var /** @type {?} */ signature = this._hashTag(tag, attrs, isVoid);\n if (this._signatureToName[signature]) {\n return this._signatureToName[signature];\n }\n var /** @type {?} */ upperTag = tag.toUpperCase();\n var /** @type {?} */ baseName = TAG_TO_PLACEHOLDER_NAMES[upperTag] || \"TAG_\" + upperTag;\n var /** @type {?} */ name = this._generateUniqueName(isVoid ? baseName : \"START_\" + baseName);\n this._signatureToName[signature] = name;\n return name;\n };\n /**\n * @param {?} tag\n * @return {?}\n */\n PlaceholderRegistry.prototype.getCloseTagPlaceholderName = /**\n * @param {?} tag\n * @return {?}\n */\n function (tag) {\n var /** @type {?} */ signature = this._hashClosingTag(tag);\n if (this._signatureToName[signature]) {\n return this._signatureToName[signature];\n }\n var /** @type {?} */ upperTag = tag.toUpperCase();\n var /** @type {?} */ baseName = TAG_TO_PLACEHOLDER_NAMES[upperTag] || \"TAG_\" + upperTag;\n var /** @type {?} */ name = this._generateUniqueName(\"CLOSE_\" + baseName);\n this._signatureToName[signature] = name;\n return name;\n };\n /**\n * @param {?} name\n * @param {?} content\n * @return {?}\n */\n PlaceholderRegistry.prototype.getPlaceholderName = /**\n * @param {?} name\n * @param {?} content\n * @return {?}\n */\n function (name, content) {\n var /** @type {?} */ upperName = name.toUpperCase();\n var /** @type {?} */ signature = \"PH: \" + upperName + \"=\" + content;\n if (this._signatureToName[signature]) {\n return this._signatureToName[signature];\n }\n var /** @type {?} */ uniqueName = this._generateUniqueName(upperName);\n this._signatureToName[signature] = uniqueName;\n return uniqueName;\n };\n /**\n * @param {?} name\n * @return {?}\n */\n PlaceholderRegistry.prototype.getUniquePlaceholder = /**\n * @param {?} name\n * @return {?}\n */\n function (name) {\n return this._generateUniqueName(name.toUpperCase());\n };\n /**\n * @param {?} tag\n * @param {?} attrs\n * @param {?} isVoid\n * @return {?}\n */\n PlaceholderRegistry.prototype._hashTag = /**\n * @param {?} tag\n * @param {?} attrs\n * @param {?} isVoid\n * @return {?}\n */\n function (tag, attrs, isVoid) {\n var /** @type {?} */ start = \"<\" + tag;\n var /** @type {?} */ strAttrs = Object.keys(attrs).sort().map(function (name) { return \" \" + name + \"=\" + attrs[name]; }).join('');\n var /** @type {?} */ end = isVoid ? '/>' : \"></\" + tag + \">\";\n return start + strAttrs + end;\n };\n /**\n * @param {?} tag\n * @return {?}\n */\n PlaceholderRegistry.prototype._hashClosingTag = /**\n * @param {?} tag\n * @return {?}\n */\n function (tag) { return this._hashTag(\"/\" + tag, {}, false); };\n /**\n * @param {?} base\n * @return {?}\n */\n PlaceholderRegistry.prototype._generateUniqueName = /**\n * @param {?} base\n * @return {?}\n */\n function (base) {\n var /** @type {?} */ seen = this._placeHolderNameCounts.hasOwnProperty(base);\n if (!seen) {\n this._placeHolderNameCounts[base] = 1;\n return base;\n }\n var /** @type {?} */ id = this._placeHolderNameCounts[base];\n this._placeHolderNameCounts[base] = id + 1;\n return base + \"_\" + id;\n };\n return PlaceholderRegistry;\n}());\n/**\n * Creates unique names for placeholder with different content.\n *\n * Returns the same placeholder name when the content is identical.\n */\nexport { PlaceholderRegistry };\nfunction PlaceholderRegistry_tsickle_Closure_declarations() {\n /** @type {?} */\n PlaceholderRegistry.prototype._placeHolderNameCounts;\n /** @type {?} */\n PlaceholderRegistry.prototype._signatureToName;\n}\n//# sourceMappingURL=placeholder.js.map","/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this 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 { Lexer as ExpressionLexer } from '../expression_parser/lexer';\nimport { Parser as ExpressionParser } from '../expression_parser/parser';\nimport * as html from '../ml_parser/ast';\nimport { getHtmlTagDefinition } from '../ml_parser/html_tags';\nimport * as i18n from './i18n_ast';\nimport { PlaceholderRegistry } from './serializers/placeholder';\nvar /** @type {?} */ _expParser = new ExpressionParser(new ExpressionLexer());\n/**\n * Returns a function converting html nodes to an i18n Message given an interpolationConfig\n * @param {?} interpolationConfig\n * @return {?}\n */\nexport function createI18nMessageFactory(interpolationConfig) {\n var /** @type {?} */ visitor = new _I18nVisitor(_expParser, interpolationConfig);\n return function (nodes, meaning, description, id) {\n return visitor.toI18nMessage(nodes, meaning, description, id);\n };\n}\nvar _I18nVisitor = /** @class */ (function () {\n function _I18nVisitor(_expressionParser, _interpolationConfig) {\n this._expressionParser = _expressionParser;\n this._interpolationConfig = _interpolationConfig;\n }\n /**\n * @param {?} nodes\n * @param {?} meaning\n * @param {?} description\n * @param {?} id\n * @return {?}\n */\n _I18nVisitor.prototype.toI18nMessage = /**\n * @param {?} nodes\n * @param {?} meaning\n * @param {?} description\n * @param {?} id\n * @return {?}\n */\n function (nodes, meaning, description, id) {\n this._isIcu = nodes.length == 1 && nodes[0] instanceof html.Expansion;\n this._icuDepth = 0;\n this._placeholderRegistry = new PlaceholderRegistry();\n this._placeholderToContent = {};\n this._placeholderToMessage = {};\n var /** @type {?} */ i18nodes = html.visitAll(this, nodes, {});\n return new i18n.Message(i18nodes, this._placeholderToContent, this._placeholderToMessage, meaning, description, id);\n };\n /**\n * @param {?} el\n * @param {?} context\n * @return {?}\n */\n _I18nVisitor.prototype.visitElement = /**\n * @param {?} el\n * @param {?} context\n * @return {?}\n */\n function (el, context) {\n var /** @type {?} */ children = html.visitAll(this, el.children);\n var /** @type {?} */ attrs = {};\n el.attrs.forEach(function (attr) {\n // Do not visit the attributes, translatable ones are top-level ASTs\n attrs[attr.name] = attr.value;\n });\n var /** @type {?} */ isVoid = getHtmlTagDefinition(el.name).isVoid;\n var /** @type {?} */ startPhName = this._placeholderRegistry.getStartTagPlaceholderName(el.name, attrs, isVoid);\n this._placeholderToContent[startPhName] = /** @type {?} */ ((el.sourceSpan)).toString();\n var /** @type {?} */ closePhName = '';\n if (!isVoid) {\n closePhName = this._placeholderRegistry.getCloseTagPlaceholderName(el.name);\n this._placeholderToContent[closePhName] = \"</\" + el.name + \">\";\n }\n return new i18n.TagPlaceholder(el.name, attrs, startPhName, closePhName, children, isVoid, /** @type {?} */ ((el.sourceSpan)));\n };\n /**\n * @param {?} attribute\n * @param {?} context\n * @return {?}\n */\n _I18nVisitor.prototype.visitAttribute = /**\n * @param {?} attribute\n * @param {?} context\n * @return {?}\n */\n function (attribute, context) {\n return this._visitTextWithInterpolation(attribute.value, attribute.sourceSpan);\n };\n /**\n * @param {?} text\n * @param {?} context\n * @return {?}\n */\n _I18nVisitor.prototype.visitText = /**\n * @param {?} text\n * @param {?} context\n * @return {?}\n */\n function (text, context) {\n return this._visitTextWithInterpolation(text.value, /** @type {?} */ ((text.sourceSpan)));\n };\n /**\n * @param {?} comment\n * @param {?} context\n * @return {?}\n */\n _I18nVisitor.prototype.visitComment = /**\n * @param {?} comment\n * @param {?} context\n * @return {?}\n */\n function (comment, context) { return null; };\n /**\n * @param {?} icu\n * @param {?} context\n * @return {?}\n */\n _I18nVisitor.prototype.visitExpansion = /**\n * @param {?} icu\n * @param {?} context\n * @return {?}\n */\n function (icu, context) {\n var _this = this;\n this._icuDepth++;\n var /** @type {?} */ i18nIcuCases = {};\n var /** @type {?} */ i18nIcu = new i18n.Icu(icu.switchValue, icu.type, i18nIcuCases, icu.sourceSpan);\n icu.cases.forEach(function (caze) {\n i18nIcuCases[caze.value] = new i18n.Container(caze.expression.map(function (node) { return node.visit(_this, {}); }), caze.expSourceSpan);\n });\n this._icuDepth--;\n if (this._isIcu || this._icuDepth > 0) {\n // Returns an ICU node when:\n // - the message (vs a part of the message) is an ICU message, or\n // - the ICU message is nested.\n var /** @type {?} */ expPh = this._placeholderRegistry.getUniquePlaceholder(\"VAR_\" + icu.type);\n i18nIcu.expressionPlaceholder = expPh;\n this._placeholderToContent[expPh] = icu.switchValue;\n return i18nIcu;\n }\n // Else returns a placeholder\n // ICU placeholders should not be replaced with their original content but with the their\n // translations. We need to create a new visitor (they are not re-entrant) to compute the\n // message id.\n // TODO(vicb): add a html.Node -> i18n.Message cache to avoid having to re-create the msg\n var /** @type {?} */ phName = this._placeholderRegistry.getPlaceholderName('ICU', icu.sourceSpan.toString());\n var /** @type {?} */ visitor = new _I18nVisitor(this._expressionParser, this._interpolationConfig);\n this._placeholderToMessage[phName] = visitor.toI18nMessage([icu], '', '', '');\n return new i18n.IcuPlaceholder(i18nIcu, phName, icu.sourceSpan);\n };\n /**\n * @param {?} icuCase\n * @param {?} context\n * @return {?}\n */\n _I18nVisitor.prototype.visitExpansionCase = /**\n * @param {?} icuCase\n * @param {?} context\n * @return {?}\n */\n function (icuCase, context) {\n throw new Error('Unreachable code');\n };\n /**\n * @param {?} text\n * @param {?} sourceSpan\n * @return {?}\n */\n _I18nVisitor.prototype._visitTextWithInterpolation = /**\n * @param {?} text\n * @param {?} sourceSpan\n * @return {?}\n */\n function (text, sourceSpan) {\n var /** @type {?} */ splitInterpolation = this._expressionParser.splitInterpolation(text, sourceSpan.start.toString(), this._interpolationConfig);\n if (!splitInterpolation) {\n // No expression, return a single text\n return new i18n.Text(text, sourceSpan);\n }\n // Return a group of text + expressions\n var /** @type {?} */ nodes = [];\n var /** @type {?} */ container = new i18n.Container(nodes, sourceSpan);\n var _a = this._interpolationConfig, sDelimiter = _a.start, eDelimiter = _a.end;\n for (var /** @type {?} */ i = 0; i < splitInterpolation.strings.length - 1; i++) {\n var /** @type {?} */ expression = splitInterpolation.expressions[i];\n var /** @type {?} */ baseName = _extractPlaceholderName(expression) || 'INTERPOLATION';\n var /** @type {?} */ phName = this._placeholderRegistry.getPlaceholderName(baseName, expression);\n if (splitInterpolation.strings[i].length) {\n // No need to add empty strings\n nodes.push(new i18n.Text(splitInterpolation.strings[i], sourceSpan));\n }\n nodes.push(new i18n.Placeholder(expression, phName, sourceSpan));\n this._placeholderToContent[phName] = sDelimiter + expression + eDelimiter;\n }\n // The last index contains no expression\n var /** @type {?} */ lastStringIdx = splitInterpolation.strings.length - 1;\n if (splitInterpolation.strings[lastStringIdx].length) {\n nodes.push(new i18n.Text(splitInterpolation.strings[lastStringIdx], sourceSpan));\n }\n return container;\n };\n return _I18nVisitor;\n}());\nfunction _I18nVisitor_tsickle_Closure_declarations() {\n /** @type {?} */\n _I18nVisitor.prototype._isIcu;\n /** @type {?} */\n _I18nVisitor.prototype._icuDepth;\n /** @type {?} */\n _I18nVisitor.prototype._placeholderRegistry;\n /** @type {?} */\n _I18nVisitor.prototype._placeholderToContent;\n /** @type {?} */\n _I18nVisitor.prototype._placeholderToMessage;\n /** @type {?} */\n _I18nVisitor.prototype._expressionParser;\n /** @type {?} */\n _I18nVisitor.prototype._interpolationConfig;\n}\nvar /** @type {?} */ _CUSTOM_PH_EXP = /\\/\\/[\\s\\S]*i18n[\\s\\S]*\\([\\s\\S]*ph[\\s\\S]*=[\\s\\S]*(\"|')([\\s\\S]*?)\\1[\\s\\S]*\\)/g;\n/**\n * @param {?} input\n * @return {?}\n */\nfunction _extractPlaceholderName(input) {\n return input.split(_CUSTOM_PH_EXP)[2];\n}\n//# sourceMappingURL=i18n_parser.js.map","/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this 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 tslib_1 from \"tslib\";\nimport { ParseError } from '../parse_util';\n/**\n * An i18n error.\n */\nvar /**\n * An i18n error.\n */\nI18nError = /** @class */ (function (_super) {\n tslib_1.__extends(I18nError, _super);\n function I18nError(span, msg) {\n return _super.call(this, span, msg) || this;\n }\n return I18nError;\n}(ParseError));\n/**\n * An i18n error.\n */\nexport { I18nError };\n//# sourceMappingURL=parse_util.js.map","/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this 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 html from '../ml_parser/ast';\nimport { ParseTreeResult } from '../ml_parser/parser';\nimport * as i18n from './i18n_ast';\nimport { createI18nMessageFactory } from './i18n_parser';\nimport { I18nError } from './parse_util';\nvar /** @type {?} */ _I18N_ATTR = 'i18n';\nvar /** @type {?} */ _I18N_ATTR_PREFIX = 'i18n-';\nvar /** @type {?} */ _I18N_COMMENT_PREFIX_REGEXP = /^i18n:?/;\nvar /** @type {?} */ MEANING_SEPARATOR = '|';\nvar /** @type {?} */ ID_SEPARATOR = '@@';\nvar /** @type {?} */ i18nCommentsWarned = false;\n/**\n * Extract translatable messages from an html AST\n * @param {?} nodes\n * @param {?} interpolationConfig\n * @param {?} implicitTags\n * @param {?} implicitAttrs\n * @return {?}\n */\nexport function extractMessages(nodes, interpolationConfig, implicitTags, implicitAttrs) {\n var /** @type {?} */ visitor = new _Visitor(implicitTags, implicitAttrs);\n return visitor.extract(nodes, interpolationConfig);\n}\n/**\n * @param {?} nodes\n * @param {?} translations\n * @param {?} interpolationConfig\n * @param {?} implicitTags\n * @param {?} implicitAttrs\n * @return {?}\n */\nexport function mergeTranslations(nodes, translations, interpolationConfig, implicitTags, implicitAttrs) {\n var /** @type {?} */ visitor = new _Visitor(implicitTags, implicitAttrs);\n return visitor.merge(nodes, translations, interpolationConfig);\n}\nvar ExtractionResult = /** @class */ (function () {\n function ExtractionResult(messages, errors) {\n this.messages = messages;\n this.errors = errors;\n }\n return ExtractionResult;\n}());\nexport { ExtractionResult };\nfunction ExtractionResult_tsickle_Closure_declarations() {\n /** @type {?} */\n ExtractionResult.prototype.messages;\n /** @type {?} */\n ExtractionResult.prototype.errors;\n}\n/** @enum {number} */\nvar _VisitorMode = {\n Extract: 0,\n Merge: 1,\n};\n_VisitorMode[_VisitorMode.Extract] = \"Extract\";\n_VisitorMode[_VisitorMode.Merge] = \"Merge\";\n/**\n * This Visitor is used:\n * 1. to extract all the translatable strings from an html AST (see `extract()`),\n * 2. to replace the translatable strings with the actual translations (see `merge()`)\n *\n * \\@internal\n */\nvar /**\n * This Visitor is used:\n * 1. to extract all the translatable strings from an html AST (see `extract()`),\n * 2. to replace the translatable strings with the actual translations (see `merge()`)\n *\n * \\@internal\n */\n_Visitor = /** @class */ (function () {\n function _Visitor(_implicitTags, _implicitAttrs) {\n this._implicitTags = _implicitTags;\n this._implicitAttrs = _implicitAttrs;\n }\n /**\n * Extracts the messages from the tree\n */\n /**\n * Extracts the messages from the tree\n * @param {?} nodes\n * @param {?} interpolationConfig\n * @return {?}\n */\n _Visitor.prototype.extract = /**\n * Extracts the messages from the tree\n * @param {?} nodes\n * @param {?} interpolationConfig\n * @return {?}\n */\n function (nodes, interpolationConfig) {\n var _this = this;\n this._init(_VisitorMode.Extract, interpolationConfig);\n nodes.forEach(function (node) { return node.visit(_this, null); });\n if (this._inI18nBlock) {\n this._reportError(nodes[nodes.length - 1], 'Unclosed block');\n }\n return new ExtractionResult(this._messages, this._errors);\n };\n /**\n * Returns a tree where all translatable nodes are translated\n */\n /**\n * Returns a tree where all translatable nodes are translated\n * @param {?} nodes\n * @param {?} translations\n * @param {?} interpolationConfig\n * @return {?}\n */\n _Visitor.prototype.merge = /**\n * Returns a tree where all translatable nodes are translated\n * @param {?} nodes\n * @param {?} translations\n * @param {?} interpolationConfig\n * @return {?}\n */\n function (nodes, translations, interpolationConfig) {\n this._init(_VisitorMode.Merge, interpolationConfig);\n this._translations = translations;\n // Construct a single fake root element\n var /** @type {?} */ wrapper = new html.Element('wrapper', [], nodes, /** @type {?} */ ((undefined)), undefined, undefined);\n var /** @type {?} */ translatedNode = wrapper.visit(this, null);\n if (this._inI18nBlock) {\n this._reportError(nodes[nodes.length - 1], 'Unclosed block');\n }\n return new ParseTreeResult(translatedNode.children, this._errors);\n };\n /**\n * @param {?} icuCase\n * @param {?} context\n * @return {?}\n */\n _Visitor.prototype.visitExpansionCase = /**\n * @param {?} icuCase\n * @param {?} context\n * @return {?}\n */\n function (icuCase, context) {\n // Parse cases for translatable html attributes\n var /** @type {?} */ expression = html.visitAll(this, icuCase.expression, context);\n if (this._mode === _VisitorMode.Merge) {\n return new html.ExpansionCase(icuCase.value, expression, icuCase.sourceSpan, icuCase.valueSourceSpan, icuCase.expSourceSpan);\n }\n };\n /**\n * @param {?} icu\n * @param {?} context\n * @return {?}\n */\n _Visitor.prototype.visitExpansion = /**\n * @param {?} icu\n * @param {?} context\n * @return {?}\n */\n function (icu, context) {\n this._mayBeAddBlockChildren(icu);\n var /** @type {?} */ wasInIcu = this._inIcu;\n if (!this._inIcu) {\n // nested ICU messages should not be extracted but top-level translated as a whole\n if (this._isInTranslatableSection) {\n this._addMessage([icu]);\n }\n this._inIcu = true;\n }\n var /** @type {?} */ cases = html.visitAll(this, icu.cases, context);\n if (this._mode === _VisitorMode.Merge) {\n icu = new html.Expansion(icu.switchValue, icu.type, cases, icu.sourceSpan, icu.switchValueSourceSpan);\n }\n this._inIcu = wasInIcu;\n return icu;\n };\n /**\n * @param {?} comment\n * @param {?} context\n * @return {?}\n */\n _Visitor.prototype.visitComment = /**\n * @param {?} comment\n * @param {?} context\n * @return {?}\n */\n function (comment, context) {\n var /** @type {?} */ isOpening = _isOpeningComment(comment);\n if (isOpening && this._isInTranslatableSection) {\n this._reportError(comment, 'Could not start a block inside a translatable section');\n return;\n }\n var /** @type {?} */ isClosing = _isClosingComment(comment);\n if (isClosing && !this._inI18nBlock) {\n this._reportError(comment, 'Trying to close an unopened block');\n return;\n }\n if (!this._inI18nNode && !this._inIcu) {\n if (!this._inI18nBlock) {\n if (isOpening) {\n // deprecated from v5 you should use <ng-container i18n> instead of i18n comments\n if (!i18nCommentsWarned && /** @type {?} */ (console) && /** @type {?} */ (console.warn)) {\n i18nCommentsWarned = true;\n var /** @type {?} */ details = comment.sourceSpan.details ? \", \" + comment.sourceSpan.details : '';\n // TODO(ocombe): use a log service once there is a public one available\n console.warn(\"I18n comments are deprecated, use an <ng-container> element instead (\" + comment.sourceSpan.start + details + \")\");\n }\n this._inI18nBlock = true;\n this._blockStartDepth = this._depth;\n this._blockChildren = [];\n this._blockMeaningAndDesc = /** @type {?} */ ((comment.value)).replace(_I18N_COMMENT_PREFIX_REGEXP, '').trim();\n this._openTranslatableSection(comment);\n }\n }\n else {\n if (isClosing) {\n if (this._depth == this._blockStartDepth) {\n this._closeTranslatableSection(comment, this._blockChildren);\n this._inI18nBlock = false;\n var /** @type {?} */ message = /** @type {?} */ ((this._addMessage(this._blockChildren, this._blockMeaningAndDesc)));\n // merge attributes in sections\n var /** @type {?} */ nodes = this._translateMessage(comment, message);\n return html.visitAll(this, nodes);\n }\n else {\n this._reportError(comment, 'I18N blocks should not cross element boundaries');\n return;\n }\n }\n }\n }\n };\n /**\n * @param {?} text\n * @param {?} context\n * @return {?}\n */\n _Visitor.prototype.visitText = /**\n * @param {?} text\n * @param {?} context\n * @return {?}\n */\n function (text, context) {\n if (this._isInTranslatableSection) {\n this._mayBeAddBlockChildren(text);\n }\n return text;\n };\n /**\n * @param {?} el\n * @param {?} context\n * @return {?}\n */\n _Visitor.prototype.visitElement = /**\n * @param {?} el\n * @param {?} context\n * @return {?}\n */\n function (el, context) {\n var _this = this;\n this._mayBeAddBlockChildren(el);\n this._depth++;\n var /** @type {?} */ wasInI18nNode = this._inI18nNode;\n var /** @type {?} */ wasInImplicitNode = this._inImplicitNode;\n var /** @type {?} */ childNodes = [];\n var /** @type {?} */ translatedChildNodes = /** @type {?} */ ((undefined));\n // Extract:\n // - top level nodes with the (implicit) \"i18n\" attribute if not already in a section\n // - ICU messages\n var /** @type {?} */ i18nAttr = _getI18nAttr(el);\n var /** @type {?} */ i18nMeta = i18nAttr ? i18nAttr.value : '';\n var /** @type {?} */ isImplicit = this._implicitTags.some(function (tag) { return el.name === tag; }) && !this._inIcu &&\n !this._isInTranslatableSection;\n var /** @type {?} */ isTopLevelImplicit = !wasInImplicitNode && isImplicit;\n this._inImplicitNode = wasInImplicitNode || isImplicit;\n if (!this._isInTranslatableSection && !this._inIcu) {\n if (i18nAttr || isTopLevelImplicit) {\n this._inI18nNode = true;\n var /** @type {?} */ message = /** @type {?} */ ((this._addMessage(el.children, i18nMeta)));\n translatedChildNodes = this._translateMessage(el, message);\n }\n if (this._mode == _VisitorMode.Extract) {\n var /** @type {?} */ isTranslatable = i18nAttr || isTopLevelImplicit;\n if (isTranslatable)\n this._openTranslatableSection(el);\n html.visitAll(this, el.children);\n if (isTranslatable)\n this._closeTranslatableSection(el, el.children);\n }\n }\n else {\n if (i18nAttr || isTopLevelImplicit) {\n this._reportError(el, 'Could not mark an element as translatable inside a translatable section');\n }\n if (this._mode == _VisitorMode.Extract) {\n // Descend into child nodes for extraction\n html.visitAll(this, el.children);\n }\n }\n if (this._mode === _VisitorMode.Merge) {\n var /** @type {?} */ visitNodes = translatedChildNodes || el.children;\n visitNodes.forEach(function (child) {\n var /** @type {?} */ visited = child.visit(_this, context);\n if (visited && !_this._isInTranslatableSection) {\n // Do not add the children from translatable sections (= i18n blocks here)\n // They will be added later in this loop when the block closes (i.e. on `<!-- /i18n -->`)\n childNodes = childNodes.concat(visited);\n }\n });\n }\n this._visitAttributesOf(el);\n this._depth--;\n this._inI18nNode = wasInI18nNode;\n this._inImplicitNode = wasInImplicitNode;\n if (this._mode === _VisitorMode.Merge) {\n var /** @type {?} */ translatedAttrs = this._translateAttributes(el);\n return new html.Element(el.name, translatedAttrs, childNodes, el.sourceSpan, el.startSourceSpan, el.endSourceSpan);\n }\n return null;\n };\n /**\n * @param {?} attribute\n * @param {?} context\n * @return {?}\n */\n _Visitor.prototype.visitAttribute = /**\n * @param {?} attribute\n * @param {?} context\n * @return {?}\n */\n function (attribute, context) {\n throw new Error('unreachable code');\n };\n /**\n * @param {?} mode\n * @param {?} interpolationConfig\n * @return {?}\n */\n _Visitor.prototype._init = /**\n * @param {?} mode\n * @param {?} interpolationConfig\n * @return {?}\n */\n function (mode, interpolationConfig) {\n this._mode = mode;\n this._inI18nBlock = false;\n this._inI18nNode = false;\n this._depth = 0;\n this._inIcu = false;\n this._msgCountAtSectionStart = undefined;\n this._errors = [];\n this._messages = [];\n this._inImplicitNode = false;\n this._createI18nMessage = createI18nMessageFactory(interpolationConfig);\n };\n /**\n * @param {?} el\n * @return {?}\n */\n _Visitor.prototype._visitAttributesOf = /**\n * @param {?} el\n * @return {?}\n */\n function (el) {\n var _this = this;\n var /** @type {?} */ explicitAttrNameToValue = {};\n var /** @type {?} */ implicitAttrNames = this._implicitAttrs[el.name] || [];\n el.attrs.filter(function (attr) { return attr.name.startsWith(_I18N_ATTR_PREFIX); })\n .forEach(function (attr) {\n return explicitAttrNameToValue[attr.name.slice(_I18N_ATTR_PREFIX.length)] =\n attr.value;\n });\n el.attrs.forEach(function (attr) {\n if (attr.name in explicitAttrNameToValue) {\n _this._addMessage([attr], explicitAttrNameToValue[attr.name]);\n }\n else if (implicitAttrNames.some(function (name) { return attr.name === name; })) {\n _this._addMessage([attr]);\n }\n });\n };\n /**\n * @param {?} ast\n * @param {?=} msgMeta\n * @return {?}\n */\n _Visitor.prototype._addMessage = /**\n * @param {?} ast\n * @param {?=} msgMeta\n * @return {?}\n */\n function (ast, msgMeta) {\n if (ast.length == 0 ||\n ast.length == 1 && ast[0] instanceof html.Attribute && !(/** @type {?} */ (ast[0])).value) {\n // Do not create empty messages\n return null;\n }\n var _a = _parseMessageMeta(msgMeta), meaning = _a.meaning, description = _a.description, id = _a.id;\n var /** @type {?} */ message = this._createI18nMessage(ast, meaning, description, id);\n this._messages.push(message);\n return message;\n };\n /**\n * @param {?} el\n * @param {?} message\n * @return {?}\n */\n _Visitor.prototype._translateMessage = /**\n * @param {?} el\n * @param {?} message\n * @return {?}\n */\n function (el, message) {\n if (message && this._mode === _VisitorMode.Merge) {\n var /** @type {?} */ nodes = this._translations.get(message);\n if (nodes) {\n return nodes;\n }\n this._reportError(el, \"Translation unavailable for message id=\\\"\" + this._translations.digest(message) + \"\\\"\");\n }\n return [];\n };\n /**\n * @param {?} el\n * @return {?}\n */\n _Visitor.prototype._translateAttributes = /**\n * @param {?} el\n * @return {?}\n */\n function (el) {\n var _this = this;\n var /** @type {?} */ attributes = el.attrs;\n var /** @type {?} */ i18nParsedMessageMeta = {};\n attributes.forEach(function (attr) {\n if (attr.name.startsWith(_I18N_ATTR_PREFIX)) {\n i18nParsedMessageMeta[attr.name.slice(_I18N_ATTR_PREFIX.length)] =\n _parseMessageMeta(attr.value);\n }\n });\n var /** @type {?} */ translatedAttributes = [];\n attributes.forEach(function (attr) {\n if (attr.name === _I18N_ATTR || attr.name.startsWith(_I18N_ATTR_PREFIX)) {\n // strip i18n specific attributes\n return;\n }\n if (attr.value && attr.value != '' && i18nParsedMessageMeta.hasOwnProperty(attr.name)) {\n var _a = i18nParsedMessageMeta[attr.name], meaning = _a.meaning, description = _a.description, id = _a.id;\n var /** @type {?} */ message = _this._createI18nMessage([attr], meaning, description, id);\n var /** @type {?} */ nodes = _this._translations.get(message);\n if (nodes) {\n if (nodes.length == 0) {\n translatedAttributes.push(new html.Attribute(attr.name, '', attr.sourceSpan));\n }\n else if (nodes[0] instanceof html.Text) {\n var /** @type {?} */ value = (/** @type {?} */ (nodes[0])).value;\n translatedAttributes.push(new html.Attribute(attr.name, value, attr.sourceSpan));\n }\n else {\n _this._reportError(el, \"Unexpected translation for attribute \\\"\" + attr.name + \"\\\" (id=\\\"\" + (id || _this._translations.digest(message)) + \"\\\")\");\n }\n }\n else {\n _this._reportError(el, \"Translation unavailable for attribute \\\"\" + attr.name + \"\\\" (id=\\\"\" + (id || _this._translations.digest(message)) + \"\\\")\");\n }\n }\n else {\n translatedAttributes.push(attr);\n }\n });\n return translatedAttributes;\n };\n /**\n * Add the node as a child of the block when:\n * - we are in a block,\n * - we are not inside a ICU message (those are handled separately),\n * - the node is a \"direct child\" of the block\n * @param {?} node\n * @return {?}\n */\n _Visitor.prototype._mayBeAddBlockChildren = /**\n * Add the node as a child of the block when:\n * - we are in a block,\n * - we are not inside a ICU message (those are handled separately),\n * - the node is a \"direct child\" of the block\n * @param {?} node\n * @return {?}\n */\n function (node) {\n if (this._inI18nBlock && !this._inIcu && this._depth == this._blockStartDepth) {\n this._blockChildren.push(node);\n }\n };\n /**\n * Marks the start of a section, see `_closeTranslatableSection`\n * @param {?} node\n * @return {?}\n */\n _Visitor.prototype._openTranslatableSection = /**\n * Marks the start of a section, see `_closeTranslatableSection`\n * @param {?} node\n * @return {?}\n */\n function (node) {\n if (this._isInTranslatableSection) {\n this._reportError(node, 'Unexpected section start');\n }\n else {\n this._msgCountAtSectionStart = this._messages.length;\n }\n };\n Object.defineProperty(_Visitor.prototype, \"_isInTranslatableSection\", {\n get: /**\n * A translatable section could be:\n * - the content of translatable element,\n * - nodes between `<!-- i18n -->` and `<!-- /i18n -->` comments\n * @return {?}\n */\n function () {\n return this._msgCountAtSectionStart !== void 0;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * Terminates a section.\n *\n * If a section has only one significant children (comments not significant) then we should not\n * keep the message from this children:\n *\n * `<p i18n=\"meaning|description\">{ICU message}</p>` would produce two messages:\n * - one for the <p> content with meaning and description,\n * - another one for the ICU message.\n *\n * In this case the last message is discarded as it contains less information (the AST is\n * otherwise identical).\n *\n * Note that we should still keep messages extracted from attributes inside the section (ie in the\n * ICU message here)\n * @param {?} node\n * @param {?} directChildren\n * @return {?}\n */\n _Visitor.prototype._closeTranslatableSection = /**\n * Terminates a section.\n *\n * If a section has only one significant children (comments not significant) then we should not\n * keep the message from this children:\n *\n * `<p i18n=\"meaning|description\">{ICU message}</p>` would produce two messages:\n * - one for the <p> content with meaning and description,\n * - another one for the ICU message.\n *\n * In this case the last message is discarded as it contains less information (the AST is\n * otherwise identical).\n *\n * Note that we should still keep messages extracted from attributes inside the section (ie in the\n * ICU message here)\n * @param {?} node\n * @param {?} directChildren\n * @return {?}\n */\n function (node, directChildren) {\n if (!this._isInTranslatableSection) {\n this._reportError(node, 'Unexpected section end');\n return;\n }\n var /** @type {?} */ startIndex = this._msgCountAtSectionStart;\n var /** @type {?} */ significantChildren = directChildren.reduce(function (count, node) { return count + (node instanceof html.Comment ? 0 : 1); }, 0);\n if (significantChildren == 1) {\n for (var /** @type {?} */ i = this._messages.length - 1; i >= /** @type {?} */ ((startIndex)); i--) {\n var /** @type {?} */ ast = this._messages[i].nodes;\n if (!(ast.length == 1 && ast[0] instanceof i18n.Text)) {\n this._messages.splice(i, 1);\n break;\n }\n }\n }\n this._msgCountAtSectionStart = undefined;\n };\n /**\n * @param {?} node\n * @param {?} msg\n * @return {?}\n */\n _Visitor.prototype._reportError = /**\n * @param {?} node\n * @param {?} msg\n * @return {?}\n */\n function (node, msg) {\n this._errors.push(new I18nError(/** @type {?} */ ((node.sourceSpan)), msg));\n };\n return _Visitor;\n}());\nfunction _Visitor_tsickle_Closure_declarations() {\n /** @type {?} */\n _Visitor.prototype._depth;\n /** @type {?} */\n _Visitor.prototype._inI18nNode;\n /** @type {?} */\n _Visitor.prototype._inImplicitNode;\n /** @type {?} */\n _Visitor.prototype._inI18nBlock;\n /** @type {?} */\n _Visitor.prototype._blockMeaningAndDesc;\n /** @type {?} */\n _Visitor.prototype._blockChildren;\n /** @type {?} */\n _Visitor.prototype._blockStartDepth;\n /** @type {?} */\n _Visitor.prototype._inIcu;\n /** @type {?} */\n _Visitor.prototype._msgCountAtSectionStart;\n /** @type {?} */\n _Visitor.prototype._errors;\n /** @type {?} */\n _Visitor.prototype._mode;\n /** @type {?} */\n _Visitor.prototype._messages;\n /** @type {?} */\n _Visitor.prototype._translations;\n /** @type {?} */\n _Visitor.prototype._createI18nMessage;\n /** @type {?} */\n _Visitor.prototype._implicitTags;\n /** @type {?} */\n _Visitor.prototype._implicitAttrs;\n}\n/**\n * @param {?} n\n * @return {?}\n */\nfunction _isOpeningComment(n) {\n return !!(n instanceof html.Comment && n.value && n.value.startsWith('i18n'));\n}\n/**\n * @param {?} n\n * @return {?}\n */\nfunction _isClosingComment(n) {\n return !!(n instanceof html.Comment && n.value && n.value === '/i18n');\n}\n/**\n * @param {?} p\n * @return {?}\n */\nfunction _getI18nAttr(p) {\n return p.attrs.find(function (attr) { return attr.name === _I18N_ATTR; }) || null;\n}\n/**\n * @param {?=} i18n\n * @return {?}\n */\nfunction _parseMessageMeta(i18n) {\n if (!i18n)\n return { meaning: '', description: '', id: '' };\n var /** @type {?} */ idIndex = i18n.indexOf(ID_SEPARATOR);\n var /** @type {?} */ descIndex = i18n.indexOf(MEANING_SEPARATOR);\n var _a = (idIndex > -1) ? [i18n.slice(0, idIndex), i18n.slice(idIndex + 2)] : [i18n, ''], meaningAndDesc = _a[0], id = _a[1];\n var _b = (descIndex > -1) ?\n [meaningAndDesc.slice(0, descIndex), meaningAndDesc.slice(descIndex + 1)] :\n ['', meaningAndDesc], meaning = _b[0], description = _b[1];\n return { meaning: meaning, description: description, id: id };\n}\n//# sourceMappingURL=extractor_merger.js.map","/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this 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 { TagContentType } from './tags';\nvar XmlTagDefinition = /** @class */ (function () {\n function XmlTagDefinition() {\n this.closedByParent = false;\n this.contentType = TagContentType.PARSABLE_DATA;\n this.isVoid = false;\n this.ignoreFirstLf = false;\n this.canSelfClose = true;\n }\n /**\n * @param {?} currentParent\n * @return {?}\n */\n XmlTagDefinition.prototype.requireExtraParent = /**\n * @param {?} currentParent\n * @return {?}\n */\n function (currentParent) { return false; };\n /**\n * @param {?} name\n * @return {?}\n */\n XmlTagDefinition.prototype.isClosedByChild = /**\n * @param {?} name\n * @return {?}\n */\n function (name) { return false; };\n return XmlTagDefinition;\n}());\nexport { XmlTagDefinition };\nfunction XmlTagDefinition_tsickle_Closure_declarations() {\n /** @type {?} */\n XmlTagDefinition.prototype.closedByParent;\n /** @type {?} */\n XmlTagDefinition.prototype.requiredParents;\n /** @type {?} */\n XmlTagDefinition.prototype.parentToAdd;\n /** @type {?} */\n XmlTagDefinition.prototype.implicitNamespacePrefix;\n /** @type {?} */\n XmlTagDefinition.prototype.contentType;\n /** @type {?} */\n XmlTagDefinition.prototype.isVoid;\n /** @type {?} */\n XmlTagDefinition.prototype.ignoreFirstLf;\n /** @type {?} */\n XmlTagDefinition.prototype.canSelfClose;\n}\nvar /** @type {?} */ _TAG_DEFINITION = new XmlTagDefinition();\n/**\n * @param {?} tagName\n * @return {?}\n */\nexport function getXmlTagDefinition(tagName) {\n return _TAG_DEFINITION;\n}\n//# sourceMappingURL=xml_tags.js.map","/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this 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 tslib_1 from \"tslib\";\nimport { Parser } from './parser';\nimport { getXmlTagDefinition } from './xml_tags';\nexport { ParseTreeResult, TreeError } from './parser';\nvar XmlParser = /** @class */ (function (_super) {\n tslib_1.__extends(XmlParser, _super);\n function XmlParser() {\n return _super.call(this, getXmlTagDefinition) || this;\n }\n /**\n * @param {?} source\n * @param {?} url\n * @param {?=} parseExpansionForms\n * @return {?}\n */\n XmlParser.prototype.parse = /**\n * @param {?} source\n * @param {?} url\n * @param {?=} parseExpansionForms\n * @return {?}\n */\n function (source, url, parseExpansionForms) {\n if (parseExpansionForms === void 0) { parseExpansionForms = false; }\n return _super.prototype.parse.call(this, source, url, parseExpansionForms);\n };\n return XmlParser;\n}(Parser));\nexport { XmlParser };\n//# sourceMappingURL=xml_parser.js.map","/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this 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 tslib_1 from \"tslib\";\nimport * as i18n from '../i18n_ast';\n/**\n * @abstract\n */\nvar /**\n * @abstract\n */\nSerializer = /** @class */ (function () {\n function Serializer() {\n }\n // Creates a name mapper, see `PlaceholderMapper`\n // Returning `null` means that no name mapping is used.\n /**\n * @param {?} message\n * @return {?}\n */\n Serializer.prototype.createNameMapper = /**\n * @param {?} message\n * @return {?}\n */\n function (message) { return null; };\n return Serializer;\n}());\n/**\n * @abstract\n */\nexport { Serializer };\nfunction Serializer_tsickle_Closure_declarations() {\n /**\n * @abstract\n * @param {?} messages\n * @param {?} locale\n * @return {?}\n */\n Serializer.prototype.write = function (messages, locale) { };\n /**\n * @abstract\n * @param {?} content\n * @param {?} url\n * @return {?}\n */\n Serializer.prototype.load = function (content, url) { };\n /**\n * @abstract\n * @param {?} message\n * @return {?}\n */\n Serializer.prototype.digest = function (message) { };\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 * @record\n */\nexport function PlaceholderMapper() { }\nfunction PlaceholderMapper_tsickle_Closure_declarations() {\n /** @type {?} */\n PlaceholderMapper.prototype.toPublicName;\n /** @type {?} */\n PlaceholderMapper.prototype.toInternalName;\n}\n/**\n * A simple mapper that take a function to transform an internal name to a public name\n */\nvar /**\n * A simple mapper that take a function to transform an internal name to a public name\n */\nSimplePlaceholderMapper = /** @class */ (function (_super) {\n tslib_1.__extends(SimplePlaceholderMapper, _super);\n // create a mapping from the message\n function SimplePlaceholderMapper(message, mapName) {\n var _this = _super.call(this) || this;\n _this.mapName = mapName;\n _this.internalToPublic = {};\n _this.publicToNextId = {};\n _this.publicToInternal = {};\n message.nodes.forEach(function (node) { return node.visit(_this); });\n return _this;\n }\n /**\n * @param {?} internalName\n * @return {?}\n */\n SimplePlaceholderMapper.prototype.toPublicName = /**\n * @param {?} internalName\n * @return {?}\n */\n function (internalName) {\n return this.internalToPublic.hasOwnProperty(internalName) ?\n this.internalToPublic[internalName] :\n null;\n };\n /**\n * @param {?} publicName\n * @return {?}\n */\n SimplePlaceholderMapper.prototype.toInternalName = /**\n * @param {?} publicName\n * @return {?}\n */\n function (publicName) {\n return this.publicToInternal.hasOwnProperty(publicName) ? this.publicToInternal[publicName] :\n null;\n };\n /**\n * @param {?} text\n * @param {?=} context\n * @return {?}\n */\n SimplePlaceholderMapper.prototype.visitText = /**\n * @param {?} text\n * @param {?=} context\n * @return {?}\n */\n function (text, context) { return null; };\n /**\n * @param {?} ph\n * @param {?=} context\n * @return {?}\n */\n SimplePlaceholderMapper.prototype.visitTagPlaceholder = /**\n * @param {?} ph\n * @param {?=} context\n * @return {?}\n */\n function (ph, context) {\n this.visitPlaceholderName(ph.startName);\n _super.prototype.visitTagPlaceholder.call(this, ph, context);\n this.visitPlaceholderName(ph.closeName);\n };\n /**\n * @param {?} ph\n * @param {?=} context\n * @return {?}\n */\n SimplePlaceholderMapper.prototype.visitPlaceholder = /**\n * @param {?} ph\n * @param {?=} context\n * @return {?}\n */\n function (ph, context) { this.visitPlaceholderName(ph.name); };\n /**\n * @param {?} ph\n * @param {?=} context\n * @return {?}\n */\n SimplePlaceholderMapper.prototype.visitIcuPlaceholder = /**\n * @param {?} ph\n * @param {?=} context\n * @return {?}\n */\n function (ph, context) {\n this.visitPlaceholderName(ph.name);\n };\n /**\n * @param {?} internalName\n * @return {?}\n */\n SimplePlaceholderMapper.prototype.visitPlaceholderName = /**\n * @param {?} internalName\n * @return {?}\n */\n function (internalName) {\n if (!internalName || this.internalToPublic.hasOwnProperty(internalName)) {\n return;\n }\n var /** @type {?} */ publicName = this.mapName(internalName);\n if (this.publicToInternal.hasOwnProperty(publicName)) {\n // Create a new XMB when it has already been used\n var /** @type {?} */ nextId = this.publicToNextId[publicName];\n this.publicToNextId[publicName] = nextId + 1;\n publicName = publicName + \"_\" + nextId;\n }\n else {\n this.publicToNextId[publicName] = 1;\n }\n this.internalToPublic[internalName] = publicName;\n this.publicToInternal[publicName] = internalName;\n };\n return SimplePlaceholderMapper;\n}(i18n.RecurseVisitor));\n/**\n * A simple mapper that take a function to transform an internal name to a public name\n */\nexport { SimplePlaceholderMapper };\nfunction SimplePlaceholderMapper_tsickle_Closure_declarations() {\n /** @type {?} */\n SimplePlaceholderMapper.prototype.internalToPublic;\n /** @type {?} */\n SimplePlaceholderMapper.prototype.publicToNextId;\n /** @type {?} */\n SimplePlaceholderMapper.prototype.publicToInternal;\n /** @type {?} */\n SimplePlaceholderMapper.prototype.mapName;\n}\n//# sourceMappingURL=serializer.js.map","/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this 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 tslib_1 from \"tslib\";\n/**\n * @record\n */\nexport function IVisitor() { }\nfunction IVisitor_tsickle_Closure_declarations() {\n /** @type {?} */\n IVisitor.prototype.visitTag;\n /** @type {?} */\n IVisitor.prototype.visitText;\n /** @type {?} */\n IVisitor.prototype.visitDeclaration;\n /** @type {?} */\n IVisitor.prototype.visitDoctype;\n}\nvar _Visitor = /** @class */ (function () {\n function _Visitor() {\n }\n /**\n * @param {?} tag\n * @return {?}\n */\n _Visitor.prototype.visitTag = /**\n * @param {?} tag\n * @return {?}\n */\n function (tag) {\n var _this = this;\n var /** @type {?} */ strAttrs = this._serializeAttributes(tag.attrs);\n if (tag.children.length == 0) {\n return \"<\" + tag.name + strAttrs + \"/>\";\n }\n var /** @type {?} */ strChildren = tag.children.map(function (node) { return node.visit(_this); });\n return \"<\" + tag.name + strAttrs + \">\" + strChildren.join('') + \"</\" + tag.name + \">\";\n };\n /**\n * @param {?} text\n * @return {?}\n */\n _Visitor.prototype.visitText = /**\n * @param {?} text\n * @return {?}\n */\n function (text) { return text.value; };\n /**\n * @param {?} decl\n * @return {?}\n */\n _Visitor.prototype.visitDeclaration = /**\n * @param {?} decl\n * @return {?}\n */\n function (decl) {\n return \"<?xml\" + this._serializeAttributes(decl.attrs) + \" ?>\";\n };\n /**\n * @param {?} attrs\n * @return {?}\n */\n _Visitor.prototype._serializeAttributes = /**\n * @param {?} attrs\n * @return {?}\n */\n function (attrs) {\n var /** @type {?} */ strAttrs = Object.keys(attrs).map(function (name) { return name + \"=\\\"\" + attrs[name] + \"\\\"\"; }).join(' ');\n return strAttrs.length > 0 ? ' ' + strAttrs : '';\n };\n /**\n * @param {?} doctype\n * @return {?}\n */\n _Visitor.prototype.visitDoctype = /**\n * @param {?} doctype\n * @return {?}\n */\n function (doctype) {\n return \"<!DOCTYPE \" + doctype.rootTag + \" [\\n\" + doctype.dtd + \"\\n]>\";\n };\n return _Visitor;\n}());\nvar /** @type {?} */ _visitor = new _Visitor();\n/**\n * @param {?} nodes\n * @return {?}\n */\nexport function serialize(nodes) {\n return nodes.map(function (node) { return node.visit(_visitor); }).join('');\n}\n/**\n * @record\n */\nexport function Node() { }\nfunction Node_tsickle_Closure_declarations() {\n /** @type {?} */\n Node.prototype.visit;\n}\nvar Declaration = /** @class */ (function () {\n function Declaration(unescapedAttrs) {\n var _this = this;\n this.attrs = {};\n Object.keys(unescapedAttrs).forEach(function (k) {\n _this.attrs[k] = _escapeXml(unescapedAttrs[k]);\n });\n }\n /**\n * @param {?} visitor\n * @return {?}\n */\n Declaration.prototype.visit = /**\n * @param {?} visitor\n * @return {?}\n */\n function (visitor) { return visitor.visitDeclaration(this); };\n return Declaration;\n}());\nexport { Declaration };\nfunction Declaration_tsickle_Closure_declarations() {\n /** @type {?} */\n Declaration.prototype.attrs;\n}\nvar Doctype = /** @class */ (function () {\n function Doctype(rootTag, dtd) {\n this.rootTag = rootTag;\n this.dtd = dtd;\n }\n /**\n * @param {?} visitor\n * @return {?}\n */\n Doctype.prototype.visit = /**\n * @param {?} visitor\n * @return {?}\n */\n function (visitor) { return visitor.visitDoctype(this); };\n return Doctype;\n}());\nexport { Doctype };\nfunction Doctype_tsickle_Closure_declarations() {\n /** @type {?} */\n Doctype.prototype.rootTag;\n /** @type {?} */\n Doctype.prototype.dtd;\n}\nvar Tag = /** @class */ (function () {\n function Tag(name, unescapedAttrs, children) {\n if (unescapedAttrs === void 0) { unescapedAttrs = {}; }\n if (children === void 0) { children = []; }\n var _this = this;\n this.name = name;\n this.children = children;\n this.attrs = {};\n Object.keys(unescapedAttrs).forEach(function (k) {\n _this.attrs[k] = _escapeXml(unescapedAttrs[k]);\n });\n }\n /**\n * @param {?} visitor\n * @return {?}\n */\n Tag.prototype.visit = /**\n * @param {?} visitor\n * @return {?}\n */\n function (visitor) { return visitor.visitTag(this); };\n return Tag;\n}());\nexport { Tag };\nfunction Tag_tsickle_Closure_declarations() {\n /** @type {?} */\n Tag.prototype.attrs;\n /** @type {?} */\n Tag.prototype.name;\n /** @type {?} */\n Tag.prototype.children;\n}\nvar Text = /** @class */ (function () {\n function Text(unescapedValue) {\n this.value = _escapeXml(unescapedValue);\n }\n /**\n * @param {?} visitor\n * @return {?}\n */\n Text.prototype.visit = /**\n * @param {?} visitor\n * @return {?}\n */\n function (visitor) { return visitor.visitText(this); };\n return Text;\n}());\nexport { Text };\nfunction Text_tsickle_Closure_declarations() {\n /** @type {?} */\n Text.prototype.value;\n}\nvar CR = /** @class */ (function (_super) {\n tslib_1.__extends(CR, _super);\n function CR(ws) {\n if (ws === void 0) { ws = 0; }\n return _super.call(this, \"\\n\" + new Array(ws + 1).join(' ')) || this;\n }\n return CR;\n}(Text));\nexport { CR };\nvar /** @type {?} */ _ESCAPED_CHARS = [\n [/&/g, '&amp;'],\n [/\"/g, '&quot;'],\n [/'/g, '&apos;'],\n [/</g, '&lt;'],\n [/>/g, '&gt;'],\n];\n/**\n * @param {?} text\n * @return {?}\n */\nfunction _escapeXml(text) {\n return _ESCAPED_CHARS.reduce(function (text, entry) { return text.replace(entry[0], entry[1]); }, text);\n}\n//# sourceMappingURL=xml_helper.js.map","/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this 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 tslib_1 from \"tslib\";\nimport * as ml from '../../ml_parser/ast';\nimport { XmlParser } from '../../ml_parser/xml_parser';\nimport { digest } from '../digest';\nimport * as i18n from '../i18n_ast';\nimport { I18nError } from '../parse_util';\nimport { Serializer } from './serializer';\nimport * as xml from './xml_helper';\nvar /** @type {?} */ _VERSION = '1.2';\nvar /** @type {?} */ _XMLNS = 'urn:oasis:names:tc:xliff:document:1.2';\n// TODO(vicb): make this a param (s/_/-/)\nvar /** @type {?} */ _DEFAULT_SOURCE_LANG = 'en';\nvar /** @type {?} */ _PLACEHOLDER_TAG = 'x';\nvar /** @type {?} */ _FILE_TAG = 'file';\nvar /** @type {?} */ _SOURCE_TAG = 'source';\nvar /** @type {?} */ _TARGET_TAG = 'target';\nvar /** @type {?} */ _UNIT_TAG = 'trans-unit';\nvar /** @type {?} */ _CONTEXT_GROUP_TAG = 'context-group';\nvar /** @type {?} */ _CONTEXT_TAG = 'context';\nvar Xliff = /** @class */ (function (_super) {\n tslib_1.__extends(Xliff, _super);\n function Xliff() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * @param {?} messages\n * @param {?} locale\n * @return {?}\n */\n Xliff.prototype.write = /**\n * @param {?} messages\n * @param {?} locale\n * @return {?}\n */\n function (messages, locale) {\n var /** @type {?} */ visitor = new _WriteVisitor();\n var /** @type {?} */ transUnits = [];\n messages.forEach(function (message) {\n var /** @type {?} */ contextTags = [];\n message.sources.forEach(function (source) {\n var /** @type {?} */ contextGroupTag = new xml.Tag(_CONTEXT_GROUP_TAG, { purpose: 'location' });\n contextGroupTag.children.push(new xml.CR(10), new xml.Tag(_CONTEXT_TAG, { 'context-type': 'sourcefile' }, [new xml.Text(source.filePath)]), new xml.CR(10), new xml.Tag(_CONTEXT_TAG, { 'context-type': 'linenumber' }, [new xml.Text(\"\" + source.startLine)]), new xml.CR(8));\n contextTags.push(new xml.CR(8), contextGroupTag);\n });\n var /** @type {?} */ transUnit = new xml.Tag(_UNIT_TAG, { id: message.id, datatype: 'html' });\n (_a = transUnit.children).push.apply(_a, [new xml.CR(8), new xml.Tag(_SOURCE_TAG, {}, visitor.serialize(message.nodes))].concat(contextTags));\n if (message.description) {\n transUnit.children.push(new xml.CR(8), new xml.Tag('note', { priority: '1', from: 'description' }, [new xml.Text(message.description)]));\n }\n if (message.meaning) {\n transUnit.children.push(new xml.CR(8), new xml.Tag('note', { priority: '1', from: 'meaning' }, [new xml.Text(message.meaning)]));\n }\n transUnit.children.push(new xml.CR(6));\n transUnits.push(new xml.CR(6), transUnit);\n var _a;\n });\n var /** @type {?} */ body = new xml.Tag('body', {}, transUnits.concat([new xml.CR(4)]));\n var /** @type {?} */ file = new xml.Tag('file', {\n 'source-language': locale || _DEFAULT_SOURCE_LANG,\n datatype: 'plaintext',\n original: 'ng2.template',\n }, [new xml.CR(4), body, new xml.CR(2)]);\n var /** @type {?} */ xliff = new xml.Tag('xliff', { version: _VERSION, xmlns: _XMLNS }, [new xml.CR(2), file, new xml.CR()]);\n return xml.serialize([\n new xml.Declaration({ version: '1.0', encoding: 'UTF-8' }), new xml.CR(), xliff, new xml.CR()\n ]);\n };\n /**\n * @param {?} content\n * @param {?} url\n * @return {?}\n */\n Xliff.prototype.load = /**\n * @param {?} content\n * @param {?} url\n * @return {?}\n */\n function (content, url) {\n // xliff to xml nodes\n var /** @type {?} */ xliffParser = new XliffParser();\n var _a = xliffParser.parse(content, url), locale = _a.locale, msgIdToHtml = _a.msgIdToHtml, errors = _a.errors;\n // xml nodes to i18n nodes\n var /** @type {?} */ i18nNodesByMsgId = {};\n var /** @type {?} */ converter = new XmlToI18n();\n Object.keys(msgIdToHtml).forEach(function (msgId) {\n var _a = converter.convert(msgIdToHtml[msgId], url), i18nNodes = _a.i18nNodes, e = _a.errors;\n errors.push.apply(errors, e);\n i18nNodesByMsgId[msgId] = i18nNodes;\n });\n if (errors.length) {\n throw new Error(\"xliff parse errors:\\n\" + errors.join('\\n'));\n }\n return { locale: /** @type {?} */ ((locale)), i18nNodesByMsgId: i18nNodesByMsgId };\n };\n /**\n * @param {?} message\n * @return {?}\n */\n Xliff.prototype.digest = /**\n * @param {?} message\n * @return {?}\n */\n function (message) { return digest(message); };\n return Xliff;\n}(Serializer));\nexport { Xliff };\nvar _WriteVisitor = /** @class */ (function () {\n function _WriteVisitor() {\n }\n /**\n * @param {?} text\n * @param {?=} context\n * @return {?}\n */\n _WriteVisitor.prototype.visitText = /**\n * @param {?} text\n * @param {?=} context\n * @return {?}\n */\n function (text, context) { return [new xml.Text(text.value)]; };\n /**\n * @param {?} container\n * @param {?=} context\n * @return {?}\n */\n _WriteVisitor.prototype.visitContainer = /**\n * @param {?} container\n * @param {?=} context\n * @return {?}\n */\n function (container, context) {\n var _this = this;\n var /** @type {?} */ nodes = [];\n container.children.forEach(function (node) { return nodes.push.apply(nodes, node.visit(_this)); });\n return nodes;\n };\n /**\n * @param {?} icu\n * @param {?=} context\n * @return {?}\n */\n _WriteVisitor.prototype.visitIcu = /**\n * @param {?} icu\n * @param {?=} context\n * @return {?}\n */\n function (icu, context) {\n var _this = this;\n var /** @type {?} */ nodes = [new xml.Text(\"{\" + icu.expressionPlaceholder + \", \" + icu.type + \", \")];\n Object.keys(icu.cases).forEach(function (c) {\n nodes.push.apply(nodes, [new xml.Text(c + \" {\")].concat(icu.cases[c].visit(_this), [new xml.Text(\"} \")]));\n });\n nodes.push(new xml.Text(\"}\"));\n return nodes;\n };\n /**\n * @param {?} ph\n * @param {?=} context\n * @return {?}\n */\n _WriteVisitor.prototype.visitTagPlaceholder = /**\n * @param {?} ph\n * @param {?=} context\n * @return {?}\n */\n function (ph, context) {\n var /** @type {?} */ ctype = getCtypeForTag(ph.tag);\n if (ph.isVoid) {\n // void tags have no children nor closing tags\n return [new xml.Tag(_PLACEHOLDER_TAG, { id: ph.startName, ctype: ctype, 'equiv-text': \"<\" + ph.tag + \"/>\" })];\n }\n var /** @type {?} */ startTagPh = new xml.Tag(_PLACEHOLDER_TAG, { id: ph.startName, ctype: ctype, 'equiv-text': \"<\" + ph.tag + \">\" });\n var /** @type {?} */ closeTagPh = new xml.Tag(_PLACEHOLDER_TAG, { id: ph.closeName, ctype: ctype, 'equiv-text': \"</\" + ph.tag + \">\" });\n return [startTagPh].concat(this.serialize(ph.children), [closeTagPh]);\n };\n /**\n * @param {?} ph\n * @param {?=} context\n * @return {?}\n */\n _WriteVisitor.prototype.visitPlaceholder = /**\n * @param {?} ph\n * @param {?=} context\n * @return {?}\n */\n function (ph, context) {\n return [new xml.Tag(_PLACEHOLDER_TAG, { id: ph.name, 'equiv-text': \"{{\" + ph.value + \"}}\" })];\n };\n /**\n * @param {?} ph\n * @param {?=} context\n * @return {?}\n */\n _WriteVisitor.prototype.visitIcuPlaceholder = /**\n * @param {?} ph\n * @param {?=} context\n * @return {?}\n */\n function (ph, context) {\n var /** @type {?} */ equivText = \"{\" + ph.value.expression + \", \" + ph.value.type + \", \" + Object.keys(ph.value.cases).map(function (value) { return value + ' {...}'; }).join(' ') + \"}\";\n return [new xml.Tag(_PLACEHOLDER_TAG, { id: ph.name, 'equiv-text': equivText })];\n };\n /**\n * @param {?} nodes\n * @return {?}\n */\n _WriteVisitor.prototype.serialize = /**\n * @param {?} nodes\n * @return {?}\n */\n function (nodes) {\n var _this = this;\n return [].concat.apply([], nodes.map(function (node) { return node.visit(_this); }));\n };\n return _WriteVisitor;\n}());\nvar XliffParser = /** @class */ (function () {\n function XliffParser() {\n this._locale = null;\n }\n /**\n * @param {?} xliff\n * @param {?} url\n * @return {?}\n */\n XliffParser.prototype.parse = /**\n * @param {?} xliff\n * @param {?} url\n * @return {?}\n */\n function (xliff, url) {\n this._unitMlString = null;\n this._msgIdToHtml = {};\n var /** @type {?} */ xml = new XmlParser().parse(xliff, url, false);\n this._errors = xml.errors;\n ml.visitAll(this, xml.rootNodes, null);\n return {\n msgIdToHtml: this._msgIdToHtml,\n errors: this._errors,\n locale: this._locale,\n };\n };\n /**\n * @param {?} element\n * @param {?} context\n * @return {?}\n */\n XliffParser.prototype.visitElement = /**\n * @param {?} element\n * @param {?} context\n * @return {?}\n */\n function (element, context) {\n switch (element.name) {\n case _UNIT_TAG:\n this._unitMlString = /** @type {?} */ ((null));\n var /** @type {?} */ idAttr = element.attrs.find(function (attr) { return attr.name === 'id'; });\n if (!idAttr) {\n this._addError(element, \"<\" + _UNIT_TAG + \"> misses the \\\"id\\\" attribute\");\n }\n else {\n var /** @type {?} */ id = idAttr.value;\n if (this._msgIdToHtml.hasOwnProperty(id)) {\n this._addError(element, \"Duplicated translations for msg \" + id);\n }\n else {\n ml.visitAll(this, element.children, null);\n if (typeof this._unitMlString === 'string') {\n this._msgIdToHtml[id] = this._unitMlString;\n }\n else {\n this._addError(element, \"Message \" + id + \" misses a translation\");\n }\n }\n }\n break;\n case _SOURCE_TAG:\n // ignore source message\n break;\n case _TARGET_TAG:\n var /** @type {?} */ innerTextStart = /** @type {?} */ ((element.startSourceSpan)).end.offset;\n var /** @type {?} */ innerTextEnd = /** @type {?} */ ((element.endSourceSpan)).start.offset;\n var /** @type {?} */ content = /** @type {?} */ ((element.startSourceSpan)).start.file.content;\n var /** @type {?} */ innerText = content.slice(innerTextStart, innerTextEnd);\n this._unitMlString = innerText;\n break;\n case _FILE_TAG:\n var /** @type {?} */ localeAttr = element.attrs.find(function (attr) { return attr.name === 'target-language'; });\n if (localeAttr) {\n this._locale = localeAttr.value;\n }\n ml.visitAll(this, element.children, null);\n break;\n default:\n // TODO(vicb): assert file structure, xliff version\n // For now only recurse on unhandled nodes\n ml.visitAll(this, element.children, null);\n }\n };\n /**\n * @param {?} attribute\n * @param {?} context\n * @return {?}\n */\n XliffParser.prototype.visitAttribute = /**\n * @param {?} attribute\n * @param {?} context\n * @return {?}\n */\n function (attribute, context) { };\n /**\n * @param {?} text\n * @param {?} context\n * @return {?}\n */\n XliffParser.prototype.visitText = /**\n * @param {?} text\n * @param {?} context\n * @return {?}\n */\n function (text, context) { };\n /**\n * @param {?} comment\n * @param {?} context\n * @return {?}\n */\n XliffParser.prototype.visitComment = /**\n * @param {?} comment\n * @param {?} context\n * @return {?}\n */\n function (comment, context) { };\n /**\n * @param {?} expansion\n * @param {?} context\n * @return {?}\n */\n XliffParser.prototype.visitExpansion = /**\n * @param {?} expansion\n * @param {?} context\n * @return {?}\n */\n function (expansion, context) { };\n /**\n * @param {?} expansionCase\n * @param {?} context\n * @return {?}\n */\n XliffParser.prototype.visitExpansionCase = /**\n * @param {?} expansionCase\n * @param {?} context\n * @return {?}\n */\n function (expansionCase, context) { };\n /**\n * @param {?} node\n * @param {?} message\n * @return {?}\n */\n XliffParser.prototype._addError = /**\n * @param {?} node\n * @param {?} message\n * @return {?}\n */\n function (node, message) {\n this._errors.push(new I18nError(/** @type {?} */ ((node.sourceSpan)), message));\n };\n return XliffParser;\n}());\nfunction XliffParser_tsickle_Closure_declarations() {\n /** @type {?} */\n XliffParser.prototype._unitMlString;\n /** @type {?} */\n XliffParser.prototype._errors;\n /** @type {?} */\n XliffParser.prototype._msgIdToHtml;\n /** @type {?} */\n XliffParser.prototype._locale;\n}\nvar XmlToI18n = /** @class */ (function () {\n function XmlToI18n() {\n }\n /**\n * @param {?} message\n * @param {?} url\n * @return {?}\n */\n XmlToI18n.prototype.convert = /**\n * @param {?} message\n * @param {?} url\n * @return {?}\n */\n function (message, url) {\n var /** @type {?} */ xmlIcu = new XmlParser().parse(message, url, true);\n this._errors = xmlIcu.errors;\n var /** @type {?} */ i18nNodes = this._errors.length > 0 || xmlIcu.rootNodes.length == 0 ?\n [] :\n ml.visitAll(this, xmlIcu.rootNodes);\n return {\n i18nNodes: i18nNodes,\n errors: this._errors,\n };\n };\n /**\n * @param {?} text\n * @param {?} context\n * @return {?}\n */\n XmlToI18n.prototype.visitText = /**\n * @param {?} text\n * @param {?} context\n * @return {?}\n */\n function (text, context) { return new i18n.Text(text.value, /** @type {?} */ ((text.sourceSpan))); };\n /**\n * @param {?} el\n * @param {?} context\n * @return {?}\n */\n XmlToI18n.prototype.visitElement = /**\n * @param {?} el\n * @param {?} context\n * @return {?}\n */\n function (el, context) {\n if (el.name === _PLACEHOLDER_TAG) {\n var /** @type {?} */ nameAttr = el.attrs.find(function (attr) { return attr.name === 'id'; });\n if (nameAttr) {\n return new i18n.Placeholder('', nameAttr.value, /** @type {?} */ ((el.sourceSpan)));\n }\n this._addError(el, \"<\" + _PLACEHOLDER_TAG + \"> misses the \\\"id\\\" attribute\");\n }\n else {\n this._addError(el, \"Unexpected tag\");\n }\n return null;\n };\n /**\n * @param {?} icu\n * @param {?} context\n * @return {?}\n */\n XmlToI18n.prototype.visitExpansion = /**\n * @param {?} icu\n * @param {?} context\n * @return {?}\n */\n function (icu, context) {\n var /** @type {?} */ caseMap = {};\n ml.visitAll(this, icu.cases).forEach(function (c) {\n caseMap[c.value] = new i18n.Container(c.nodes, icu.sourceSpan);\n });\n return new i18n.Icu(icu.switchValue, icu.type, caseMap, icu.sourceSpan);\n };\n /**\n * @param {?} icuCase\n * @param {?} context\n * @return {?}\n */\n XmlToI18n.prototype.visitExpansionCase = /**\n * @param {?} icuCase\n * @param {?} context\n * @return {?}\n */\n function (icuCase, context) {\n return {\n value: icuCase.value,\n nodes: ml.visitAll(this, icuCase.expression),\n };\n };\n /**\n * @param {?} comment\n * @param {?} context\n * @return {?}\n */\n XmlToI18n.prototype.visitComment = /**\n * @param {?} comment\n * @param {?} context\n * @return {?}\n */\n function (comment, context) { };\n /**\n * @param {?} attribute\n * @param {?} context\n * @return {?}\n */\n XmlToI18n.prototype.visitAttribute = /**\n * @param {?} attribute\n * @param {?} context\n * @return {?}\n */\n function (attribute, context) { };\n /**\n * @param {?} node\n * @param {?} message\n * @return {?}\n */\n XmlToI18n.prototype._addError = /**\n * @param {?} node\n * @param {?} message\n * @return {?}\n */\n function (node, message) {\n this._errors.push(new I18nError(/** @type {?} */ ((node.sourceSpan)), message));\n };\n return XmlToI18n;\n}());\nfunction XmlToI18n_tsickle_Closure_declarations() {\n /** @type {?} */\n XmlToI18n.prototype._errors;\n}\n/**\n * @param {?} tag\n * @return {?}\n */\nfunction getCtypeForTag(tag) {\n switch (tag.toLowerCase()) {\n case 'br':\n return 'lb';\n case 'img':\n return 'image';\n default:\n return \"x-\" + tag;\n }\n}\n//# sourceMappingURL=xliff.js.map","/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this 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 tslib_1 from \"tslib\";\nimport * as ml from '../../ml_parser/ast';\nimport { XmlParser } from '../../ml_parser/xml_parser';\nimport { decimalDigest } from '../digest';\nimport * as i18n from '../i18n_ast';\nimport { I18nError } from '../parse_util';\nimport { Serializer } from './serializer';\nimport * as xml from './xml_helper';\nvar /** @type {?} */ _VERSION = '2.0';\nvar /** @type {?} */ _XMLNS = 'urn:oasis:names:tc:xliff:document:2.0';\n// TODO(vicb): make this a param (s/_/-/)\nvar /** @type {?} */ _DEFAULT_SOURCE_LANG = 'en';\nvar /** @type {?} */ _PLACEHOLDER_TAG = 'ph';\nvar /** @type {?} */ _PLACEHOLDER_SPANNING_TAG = 'pc';\nvar /** @type {?} */ _XLIFF_TAG = 'xliff';\nvar /** @type {?} */ _SOURCE_TAG = 'source';\nvar /** @type {?} */ _TARGET_TAG = 'target';\nvar /** @type {?} */ _UNIT_TAG = 'unit';\nvar Xliff2 = /** @class */ (function (_super) {\n tslib_1.__extends(Xliff2, _super);\n function Xliff2() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * @param {?} messages\n * @param {?} locale\n * @return {?}\n */\n Xliff2.prototype.write = /**\n * @param {?} messages\n * @param {?} locale\n * @return {?}\n */\n function (messages, locale) {\n var /** @type {?} */ visitor = new _WriteVisitor();\n var /** @type {?} */ units = [];\n messages.forEach(function (message) {\n var /** @type {?} */ unit = new xml.Tag(_UNIT_TAG, { id: message.id });\n var /** @type {?} */ notes = new xml.Tag('notes');\n if (message.description || message.meaning) {\n if (message.description) {\n notes.children.push(new xml.CR(8), new xml.Tag('note', { category: 'description' }, [new xml.Text(message.description)]));\n }\n if (message.meaning) {\n notes.children.push(new xml.CR(8), new xml.Tag('note', { category: 'meaning' }, [new xml.Text(message.meaning)]));\n }\n }\n message.sources.forEach(function (source) {\n notes.children.push(new xml.CR(8), new xml.Tag('note', { category: 'location' }, [\n new xml.Text(source.filePath + \":\" + source.startLine + (source.endLine !== source.startLine ? ',' + source.endLine : ''))\n ]));\n });\n notes.children.push(new xml.CR(6));\n unit.children.push(new xml.CR(6), notes);\n var /** @type {?} */ segment = new xml.Tag('segment');\n segment.children.push(new xml.CR(8), new xml.Tag(_SOURCE_TAG, {}, visitor.serialize(message.nodes)), new xml.CR(6));\n unit.children.push(new xml.CR(6), segment, new xml.CR(4));\n units.push(new xml.CR(4), unit);\n });\n var /** @type {?} */ file = new xml.Tag('file', { 'original': 'ng.template', id: 'ngi18n' }, units.concat([new xml.CR(2)]));\n var /** @type {?} */ xliff = new xml.Tag(_XLIFF_TAG, { version: _VERSION, xmlns: _XMLNS, srcLang: locale || _DEFAULT_SOURCE_LANG }, [new xml.CR(2), file, new xml.CR()]);\n return xml.serialize([\n new xml.Declaration({ version: '1.0', encoding: 'UTF-8' }), new xml.CR(), xliff, new xml.CR()\n ]);\n };\n /**\n * @param {?} content\n * @param {?} url\n * @return {?}\n */\n Xliff2.prototype.load = /**\n * @param {?} content\n * @param {?} url\n * @return {?}\n */\n function (content, url) {\n // xliff to xml nodes\n var /** @type {?} */ xliff2Parser = new Xliff2Parser();\n var _a = xliff2Parser.parse(content, url), locale = _a.locale, msgIdToHtml = _a.msgIdToHtml, errors = _a.errors;\n // xml nodes to i18n nodes\n var /** @type {?} */ i18nNodesByMsgId = {};\n var /** @type {?} */ converter = new XmlToI18n();\n Object.keys(msgIdToHtml).forEach(function (msgId) {\n var _a = converter.convert(msgIdToHtml[msgId], url), i18nNodes = _a.i18nNodes, e = _a.errors;\n errors.push.apply(errors, e);\n i18nNodesByMsgId[msgId] = i18nNodes;\n });\n if (errors.length) {\n throw new Error(\"xliff2 parse errors:\\n\" + errors.join('\\n'));\n }\n return { locale: /** @type {?} */ ((locale)), i18nNodesByMsgId: i18nNodesByMsgId };\n };\n /**\n * @param {?} message\n * @return {?}\n */\n Xliff2.prototype.digest = /**\n * @param {?} message\n * @return {?}\n */\n function (message) { return decimalDigest(message); };\n return Xliff2;\n}(Serializer));\nexport { Xliff2 };\nvar _WriteVisitor = /** @class */ (function () {\n function _WriteVisitor() {\n }\n /**\n * @param {?} text\n * @param {?=} context\n * @return {?}\n */\n _WriteVisitor.prototype.visitText = /**\n * @param {?} text\n * @param {?=} context\n * @return {?}\n */\n function (text, context) { return [new xml.Text(text.value)]; };\n /**\n * @param {?} container\n * @param {?=} context\n * @return {?}\n */\n _WriteVisitor.prototype.visitContainer = /**\n * @param {?} container\n * @param {?=} context\n * @return {?}\n */\n function (container, context) {\n var _this = this;\n var /** @type {?} */ nodes = [];\n container.children.forEach(function (node) { return nodes.push.apply(nodes, node.visit(_this)); });\n return nodes;\n };\n /**\n * @param {?} icu\n * @param {?=} context\n * @return {?}\n */\n _WriteVisitor.prototype.visitIcu = /**\n * @param {?} icu\n * @param {?=} context\n * @return {?}\n */\n function (icu, context) {\n var _this = this;\n var /** @type {?} */ nodes = [new xml.Text(\"{\" + icu.expressionPlaceholder + \", \" + icu.type + \", \")];\n Object.keys(icu.cases).forEach(function (c) {\n nodes.push.apply(nodes, [new xml.Text(c + \" {\")].concat(icu.cases[c].visit(_this), [new xml.Text(\"} \")]));\n });\n nodes.push(new xml.Text(\"}\"));\n return nodes;\n };\n /**\n * @param {?} ph\n * @param {?=} context\n * @return {?}\n */\n _WriteVisitor.prototype.visitTagPlaceholder = /**\n * @param {?} ph\n * @param {?=} context\n * @return {?}\n */\n function (ph, context) {\n var _this = this;\n var /** @type {?} */ type = getTypeForTag(ph.tag);\n if (ph.isVoid) {\n var /** @type {?} */ tagPh = new xml.Tag(_PLACEHOLDER_TAG, {\n id: (this._nextPlaceholderId++).toString(),\n equiv: ph.startName,\n type: type,\n disp: \"<\" + ph.tag + \"/>\",\n });\n return [tagPh];\n }\n var /** @type {?} */ tagPc = new xml.Tag(_PLACEHOLDER_SPANNING_TAG, {\n id: (this._nextPlaceholderId++).toString(),\n equivStart: ph.startName,\n equivEnd: ph.closeName,\n type: type,\n dispStart: \"<\" + ph.tag + \">\",\n dispEnd: \"</\" + ph.tag + \">\",\n });\n var /** @type {?} */ nodes = [].concat.apply([], ph.children.map(function (node) { return node.visit(_this); }));\n if (nodes.length) {\n nodes.forEach(function (node) { return tagPc.children.push(node); });\n }\n else {\n tagPc.children.push(new xml.Text(''));\n }\n return [tagPc];\n };\n /**\n * @param {?} ph\n * @param {?=} context\n * @return {?}\n */\n _WriteVisitor.prototype.visitPlaceholder = /**\n * @param {?} ph\n * @param {?=} context\n * @return {?}\n */\n function (ph, context) {\n var /** @type {?} */ idStr = (this._nextPlaceholderId++).toString();\n return [new xml.Tag(_PLACEHOLDER_TAG, {\n id: idStr,\n equiv: ph.name,\n disp: \"{{\" + ph.value + \"}}\",\n })];\n };\n /**\n * @param {?} ph\n * @param {?=} context\n * @return {?}\n */\n _WriteVisitor.prototype.visitIcuPlaceholder = /**\n * @param {?} ph\n * @param {?=} context\n * @return {?}\n */\n function (ph, context) {\n var /** @type {?} */ cases = Object.keys(ph.value.cases).map(function (value) { return value + ' {...}'; }).join(' ');\n var /** @type {?} */ idStr = (this._nextPlaceholderId++).toString();\n return [new xml.Tag(_PLACEHOLDER_TAG, { id: idStr, equiv: ph.name, disp: \"{\" + ph.value.expression + \", \" + ph.value.type + \", \" + cases + \"}\" })];\n };\n /**\n * @param {?} nodes\n * @return {?}\n */\n _WriteVisitor.prototype.serialize = /**\n * @param {?} nodes\n * @return {?}\n */\n function (nodes) {\n var _this = this;\n this._nextPlaceholderId = 0;\n return [].concat.apply([], nodes.map(function (node) { return node.visit(_this); }));\n };\n return _WriteVisitor;\n}());\nfunction _WriteVisitor_tsickle_Closure_declarations() {\n /** @type {?} */\n _WriteVisitor.prototype._nextPlaceholderId;\n}\nvar Xliff2Parser = /** @class */ (function () {\n function Xliff2Parser() {\n this._locale = null;\n }\n /**\n * @param {?} xliff\n * @param {?} url\n * @return {?}\n */\n Xliff2Parser.prototype.parse = /**\n * @param {?} xliff\n * @param {?} url\n * @return {?}\n */\n function (xliff, url) {\n this._unitMlString = null;\n this._msgIdToHtml = {};\n var /** @type {?} */ xml = new XmlParser().parse(xliff, url, false);\n this._errors = xml.errors;\n ml.visitAll(this, xml.rootNodes, null);\n return {\n msgIdToHtml: this._msgIdToHtml,\n errors: this._errors,\n locale: this._locale,\n };\n };\n /**\n * @param {?} element\n * @param {?} context\n * @return {?}\n */\n Xliff2Parser.prototype.visitElement = /**\n * @param {?} element\n * @param {?} context\n * @return {?}\n */\n function (element, context) {\n switch (element.name) {\n case _UNIT_TAG:\n this._unitMlString = null;\n var /** @type {?} */ idAttr = element.attrs.find(function (attr) { return attr.name === 'id'; });\n if (!idAttr) {\n this._addError(element, \"<\" + _UNIT_TAG + \"> misses the \\\"id\\\" attribute\");\n }\n else {\n var /** @type {?} */ id = idAttr.value;\n if (this._msgIdToHtml.hasOwnProperty(id)) {\n this._addError(element, \"Duplicated translations for msg \" + id);\n }\n else {\n ml.visitAll(this, element.children, null);\n if (typeof this._unitMlString === 'string') {\n this._msgIdToHtml[id] = this._unitMlString;\n }\n else {\n this._addError(element, \"Message \" + id + \" misses a translation\");\n }\n }\n }\n break;\n case _SOURCE_TAG:\n // ignore source message\n break;\n case _TARGET_TAG:\n var /** @type {?} */ innerTextStart = /** @type {?} */ ((element.startSourceSpan)).end.offset;\n var /** @type {?} */ innerTextEnd = /** @type {?} */ ((element.endSourceSpan)).start.offset;\n var /** @type {?} */ content = /** @type {?} */ ((element.startSourceSpan)).start.file.content;\n var /** @type {?} */ innerText = content.slice(innerTextStart, innerTextEnd);\n this._unitMlString = innerText;\n break;\n case _XLIFF_TAG:\n var /** @type {?} */ localeAttr = element.attrs.find(function (attr) { return attr.name === 'trgLang'; });\n if (localeAttr) {\n this._locale = localeAttr.value;\n }\n var /** @type {?} */ versionAttr = element.attrs.find(function (attr) { return attr.name === 'version'; });\n if (versionAttr) {\n var /** @type {?} */ version = versionAttr.value;\n if (version !== '2.0') {\n this._addError(element, \"The XLIFF file version \" + version + \" is not compatible with XLIFF 2.0 serializer\");\n }\n else {\n ml.visitAll(this, element.children, null);\n }\n }\n break;\n default:\n ml.visitAll(this, element.children, null);\n }\n };\n /**\n * @param {?} attribute\n * @param {?} context\n * @return {?}\n */\n Xliff2Parser.prototype.visitAttribute = /**\n * @param {?} attribute\n * @param {?} context\n * @return {?}\n */\n function (attribute, context) { };\n /**\n * @param {?} text\n * @param {?} context\n * @return {?}\n */\n Xliff2Parser.prototype.visitText = /**\n * @param {?} text\n * @param {?} context\n * @return {?}\n */\n function (text, context) { };\n /**\n * @param {?} comment\n * @param {?} context\n * @return {?}\n */\n Xliff2Parser.prototype.visitComment = /**\n * @param {?} comment\n * @param {?} context\n * @return {?}\n */\n function (comment, context) { };\n /**\n * @param {?} expansion\n * @param {?} context\n * @return {?}\n */\n Xliff2Parser.prototype.visitExpansion = /**\n * @param {?} expansion\n * @param {?} context\n * @return {?}\n */\n function (expansion, context) { };\n /**\n * @param {?} expansionCase\n * @param {?} context\n * @return {?}\n */\n Xliff2Parser.prototype.visitExpansionCase = /**\n * @param {?} expansionCase\n * @param {?} context\n * @return {?}\n */\n function (expansionCase, context) { };\n /**\n * @param {?} node\n * @param {?} message\n * @return {?}\n */\n Xliff2Parser.prototype._addError = /**\n * @param {?} node\n * @param {?} message\n * @return {?}\n */\n function (node, message) {\n this._errors.push(new I18nError(node.sourceSpan, message));\n };\n return Xliff2Parser;\n}());\nfunction Xliff2Parser_tsickle_Closure_declarations() {\n /** @type {?} */\n Xliff2Parser.prototype._unitMlString;\n /** @type {?} */\n Xliff2Parser.prototype._errors;\n /** @type {?} */\n Xliff2Parser.prototype._msgIdToHtml;\n /** @type {?} */\n Xliff2Parser.prototype._locale;\n}\nvar XmlToI18n = /** @class */ (function () {\n function XmlToI18n() {\n }\n /**\n * @param {?} message\n * @param {?} url\n * @return {?}\n */\n XmlToI18n.prototype.convert = /**\n * @param {?} message\n * @param {?} url\n * @return {?}\n */\n function (message, url) {\n var /** @type {?} */ xmlIcu = new XmlParser().parse(message, url, true);\n this._errors = xmlIcu.errors;\n var /** @type {?} */ i18nNodes = this._errors.length > 0 || xmlIcu.rootNodes.length == 0 ?\n [] : [].concat.apply([], ml.visitAll(this, xmlIcu.rootNodes));\n return {\n i18nNodes: i18nNodes,\n errors: this._errors,\n };\n };\n /**\n * @param {?} text\n * @param {?} context\n * @return {?}\n */\n XmlToI18n.prototype.visitText = /**\n * @param {?} text\n * @param {?} context\n * @return {?}\n */\n function (text, context) { return new i18n.Text(text.value, text.sourceSpan); };\n /**\n * @param {?} el\n * @param {?} context\n * @return {?}\n */\n XmlToI18n.prototype.visitElement = /**\n * @param {?} el\n * @param {?} context\n * @return {?}\n */\n function (el, context) {\n var _this = this;\n switch (el.name) {\n case _PLACEHOLDER_TAG:\n var /** @type {?} */ nameAttr = el.attrs.find(function (attr) { return attr.name === 'equiv'; });\n if (nameAttr) {\n return [new i18n.Placeholder('', nameAttr.value, el.sourceSpan)];\n }\n this._addError(el, \"<\" + _PLACEHOLDER_TAG + \"> misses the \\\"equiv\\\" attribute\");\n break;\n case _PLACEHOLDER_SPANNING_TAG:\n var /** @type {?} */ startAttr = el.attrs.find(function (attr) { return attr.name === 'equivStart'; });\n var /** @type {?} */ endAttr = el.attrs.find(function (attr) { return attr.name === 'equivEnd'; });\n if (!startAttr) {\n this._addError(el, \"<\" + _PLACEHOLDER_TAG + \"> misses the \\\"equivStart\\\" attribute\");\n }\n else if (!endAttr) {\n this._addError(el, \"<\" + _PLACEHOLDER_TAG + \"> misses the \\\"equivEnd\\\" attribute\");\n }\n else {\n var /** @type {?} */ startId = startAttr.value;\n var /** @type {?} */ endId = endAttr.value;\n var /** @type {?} */ nodes = [];\n return nodes.concat.apply(nodes, [new i18n.Placeholder('', startId, el.sourceSpan)].concat(el.children.map(function (node) { return node.visit(_this, null); }), [new i18n.Placeholder('', endId, el.sourceSpan)]));\n }\n break;\n default:\n this._addError(el, \"Unexpected tag\");\n }\n return null;\n };\n /**\n * @param {?} icu\n * @param {?} context\n * @return {?}\n */\n XmlToI18n.prototype.visitExpansion = /**\n * @param {?} icu\n * @param {?} context\n * @return {?}\n */\n function (icu, context) {\n var /** @type {?} */ caseMap = {};\n ml.visitAll(this, icu.cases).forEach(function (c) {\n caseMap[c.value] = new i18n.Container(c.nodes, icu.sourceSpan);\n });\n return new i18n.Icu(icu.switchValue, icu.type, caseMap, icu.sourceSpan);\n };\n /**\n * @param {?} icuCase\n * @param {?} context\n * @return {?}\n */\n XmlToI18n.prototype.visitExpansionCase = /**\n * @param {?} icuCase\n * @param {?} context\n * @return {?}\n */\n function (icuCase, context) {\n return {\n value: icuCase.value,\n nodes: [].concat.apply([], ml.visitAll(this, icuCase.expression)),\n };\n };\n /**\n * @param {?} comment\n * @param {?} context\n * @return {?}\n */\n XmlToI18n.prototype.visitComment = /**\n * @param {?} comment\n * @param {?} context\n * @return {?}\n */\n function (comment, context) { };\n /**\n * @param {?} attribute\n * @param {?} context\n * @return {?}\n */\n XmlToI18n.prototype.visitAttribute = /**\n * @param {?} attribute\n * @param {?} context\n * @return {?}\n */\n function (attribute, context) { };\n /**\n * @param {?} node\n * @param {?} message\n * @return {?}\n */\n XmlToI18n.prototype._addError = /**\n * @param {?} node\n * @param {?} message\n * @return {?}\n */\n function (node, message) {\n this._errors.push(new I18nError(node.sourceSpan, message));\n };\n return XmlToI18n;\n}());\nfunction XmlToI18n_tsickle_Closure_declarations() {\n /** @type {?} */\n XmlToI18n.prototype._errors;\n}\n/**\n * @param {?} tag\n * @return {?}\n */\nfunction getTypeForTag(tag) {\n switch (tag.toLowerCase()) {\n case 'br':\n case 'b':\n case 'i':\n case 'u':\n return 'fmt';\n case 'img':\n return 'image';\n case 'a':\n return 'link';\n default:\n return 'other';\n }\n}\n//# sourceMappingURL=xliff2.js.map","/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this 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 tslib_1 from \"tslib\";\nimport { decimalDigest } from '../digest';\nimport { Serializer, SimplePlaceholderMapper } from './serializer';\nimport * as xml from './xml_helper';\nvar /** @type {?} */ _MESSAGES_TAG = 'messagebundle';\nvar /** @type {?} */ _MESSAGE_TAG = 'msg';\nvar /** @type {?} */ _PLACEHOLDER_TAG = 'ph';\nvar /** @type {?} */ _EXEMPLE_TAG = 'ex';\nvar /** @type {?} */ _SOURCE_TAG = 'source';\nvar /** @type {?} */ _DOCTYPE = \"<!ELEMENT messagebundle (msg)*>\\n<!ATTLIST messagebundle class CDATA #IMPLIED>\\n\\n<!ELEMENT msg (#PCDATA|ph|source)*>\\n<!ATTLIST msg id CDATA #IMPLIED>\\n<!ATTLIST msg seq CDATA #IMPLIED>\\n<!ATTLIST msg name CDATA #IMPLIED>\\n<!ATTLIST msg desc CDATA #IMPLIED>\\n<!ATTLIST msg meaning CDATA #IMPLIED>\\n<!ATTLIST msg obsolete (obsolete) #IMPLIED>\\n<!ATTLIST msg xml:space (default|preserve) \\\"default\\\">\\n<!ATTLIST msg is_hidden CDATA #IMPLIED>\\n\\n<!ELEMENT source (#PCDATA)>\\n\\n<!ELEMENT ph (#PCDATA|ex)*>\\n<!ATTLIST ph name CDATA #REQUIRED>\\n\\n<!ELEMENT ex (#PCDATA)>\";\nvar Xmb = /** @class */ (function (_super) {\n tslib_1.__extends(Xmb, _super);\n function Xmb() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * @param {?} messages\n * @param {?} locale\n * @return {?}\n */\n Xmb.prototype.write = /**\n * @param {?} messages\n * @param {?} locale\n * @return {?}\n */\n function (messages, locale) {\n var /** @type {?} */ exampleVisitor = new ExampleVisitor();\n var /** @type {?} */ visitor = new _Visitor();\n var /** @type {?} */ rootNode = new xml.Tag(_MESSAGES_TAG);\n messages.forEach(function (message) {\n var /** @type {?} */ attrs = { id: message.id };\n if (message.description) {\n attrs['desc'] = message.description;\n }\n if (message.meaning) {\n attrs['meaning'] = message.meaning;\n }\n var /** @type {?} */ sourceTags = [];\n message.sources.forEach(function (source) {\n sourceTags.push(new xml.Tag(_SOURCE_TAG, {}, [\n new xml.Text(source.filePath + \":\" + source.startLine + (source.endLine !== source.startLine ? ',' + source.endLine : ''))\n ]));\n });\n rootNode.children.push(new xml.CR(2), new xml.Tag(_MESSAGE_TAG, attrs, sourceTags.concat(visitor.serialize(message.nodes))));\n });\n rootNode.children.push(new xml.CR());\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 * @param {?} content\n * @param {?} url\n * @return {?}\n */\n Xmb.prototype.load = /**\n * @param {?} content\n * @param {?} url\n * @return {?}\n */\n function (content, url) {\n throw new Error('Unsupported');\n };\n /**\n * @param {?} message\n * @return {?}\n */\n Xmb.prototype.digest = /**\n * @param {?} message\n * @return {?}\n */\n function (message) { return digest(message); };\n /**\n * @param {?} message\n * @return {?}\n */\n Xmb.prototype.createNameMapper = /**\n * @param {?} message\n * @return {?}\n */\n function (message) {\n return new SimplePlaceholderMapper(message, toPublicName);\n };\n return Xmb;\n}(Serializer));\nexport { Xmb };\nvar _Visitor = /** @class */ (function () {\n function _Visitor() {\n }\n /**\n * @param {?} text\n * @param {?=} context\n * @return {?}\n */\n _Visitor.prototype.visitText = /**\n * @param {?} text\n * @param {?=} context\n * @return {?}\n */\n function (text, context) { return [new xml.Text(text.value)]; };\n /**\n * @param {?} container\n * @param {?} context\n * @return {?}\n */\n _Visitor.prototype.visitContainer = /**\n * @param {?} container\n * @param {?} context\n * @return {?}\n */\n function (container, context) {\n var _this = this;\n var /** @type {?} */ nodes = [];\n container.children.forEach(function (node) { return nodes.push.apply(nodes, node.visit(_this)); });\n return nodes;\n };\n /**\n * @param {?} icu\n * @param {?=} context\n * @return {?}\n */\n _Visitor.prototype.visitIcu = /**\n * @param {?} icu\n * @param {?=} context\n * @return {?}\n */\n function (icu, context) {\n var _this = this;\n var /** @type {?} */ nodes = [new xml.Text(\"{\" + icu.expressionPlaceholder + \", \" + icu.type + \", \")];\n Object.keys(icu.cases).forEach(function (c) {\n nodes.push.apply(nodes, [new xml.Text(c + \" {\")].concat(icu.cases[c].visit(_this), [new xml.Text(\"} \")]));\n });\n nodes.push(new xml.Text(\"}\"));\n return nodes;\n };\n /**\n * @param {?} ph\n * @param {?=} context\n * @return {?}\n */\n _Visitor.prototype.visitTagPlaceholder = /**\n * @param {?} ph\n * @param {?=} context\n * @return {?}\n */\n function (ph, context) {\n var /** @type {?} */ startEx = new xml.Tag(_EXEMPLE_TAG, {}, [new xml.Text(\"<\" + ph.tag + \">\")]);\n var /** @type {?} */ startTagPh = new xml.Tag(_PLACEHOLDER_TAG, { name: ph.startName }, [startEx]);\n if (ph.isVoid) {\n // void tags have no children nor closing tags\n return [startTagPh];\n }\n var /** @type {?} */ closeEx = new xml.Tag(_EXEMPLE_TAG, {}, [new xml.Text(\"</\" + ph.tag + \">\")]);\n var /** @type {?} */ closeTagPh = new xml.Tag(_PLACEHOLDER_TAG, { name: ph.closeName }, [closeEx]);\n return [startTagPh].concat(this.serialize(ph.children), [closeTagPh]);\n };\n /**\n * @param {?} ph\n * @param {?=} context\n * @return {?}\n */\n _Visitor.prototype.visitPlaceholder = /**\n * @param {?} ph\n * @param {?=} context\n * @return {?}\n */\n function (ph, context) {\n var /** @type {?} */ exTag = new xml.Tag(_EXEMPLE_TAG, {}, [new xml.Text(\"{{\" + ph.value + \"}}\")]);\n return [new xml.Tag(_PLACEHOLDER_TAG, { name: ph.name }, [exTag])];\n };\n /**\n * @param {?} ph\n * @param {?=} context\n * @return {?}\n */\n _Visitor.prototype.visitIcuPlaceholder = /**\n * @param {?} ph\n * @param {?=} context\n * @return {?}\n */\n function (ph, context) {\n var /** @type {?} */ exTag = new xml.Tag(_EXEMPLE_TAG, {}, [\n new xml.Text(\"{\" + ph.value.expression + \", \" + ph.value.type + \", \" + Object.keys(ph.value.cases).map(function (value) { return value + ' {...}'; }).join(' ') + \"}\")\n ]);\n return [new xml.Tag(_PLACEHOLDER_TAG, { name: ph.name }, [exTag])];\n };\n /**\n * @param {?} nodes\n * @return {?}\n */\n _Visitor.prototype.serialize = /**\n * @param {?} nodes\n * @return {?}\n */\n function (nodes) {\n var _this = this;\n return [].concat.apply([], nodes.map(function (node) { return node.visit(_this); }));\n };\n return _Visitor;\n}());\n/**\n * @param {?} message\n * @return {?}\n */\nexport function digest(message) {\n return decimalDigest(message);\n}\nvar ExampleVisitor = /** @class */ (function () {\n function ExampleVisitor() {\n }\n /**\n * @param {?} node\n * @return {?}\n */\n ExampleVisitor.prototype.addDefaultExamples = /**\n * @param {?} node\n * @return {?}\n */\n function (node) {\n node.visit(this);\n return node;\n };\n /**\n * @param {?} tag\n * @return {?}\n */\n ExampleVisitor.prototype.visitTag = /**\n * @param {?} tag\n * @return {?}\n */\n function (tag) {\n var _this = this;\n if (tag.name === _PLACEHOLDER_TAG) {\n if (!tag.children || tag.children.length == 0) {\n var /** @type {?} */ exText = new xml.Text(tag.attrs['name'] || '...');\n tag.children = [new xml.Tag(_EXEMPLE_TAG, {}, [exText])];\n }\n }\n else if (tag.children) {\n tag.children.forEach(function (node) { return node.visit(_this); });\n }\n };\n /**\n * @param {?} text\n * @return {?}\n */\n ExampleVisitor.prototype.visitText = /**\n * @param {?} text\n * @return {?}\n */\n function (text) { };\n /**\n * @param {?} decl\n * @return {?}\n */\n ExampleVisitor.prototype.visitDeclaration = /**\n * @param {?} decl\n * @return {?}\n */\n function (decl) { };\n /**\n * @param {?} doctype\n * @return {?}\n */\n ExampleVisitor.prototype.visitDoctype = /**\n * @param {?} doctype\n * @return {?}\n */\n function (doctype) { };\n return ExampleVisitor;\n}());\n/**\n * @param {?} internalName\n * @return {?}\n */\nexport function toPublicName(internalName) {\n return internalName.toUpperCase().replace(/[^A-Z0-9_]/g, '_');\n}\n//# sourceMappingURL=xmb.js.map","/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this 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 tslib_1 from \"tslib\";\nimport * as ml from '../../ml_parser/ast';\nimport { XmlParser } from '../../ml_parser/xml_parser';\nimport * as i18n from '../i18n_ast';\nimport { I18nError } from '../parse_util';\nimport { Serializer, SimplePlaceholderMapper } from './serializer';\nimport { digest, toPublicName } from './xmb';\nvar /** @type {?} */ _TRANSLATIONS_TAG = 'translationbundle';\nvar /** @type {?} */ _TRANSLATION_TAG = 'translation';\nvar /** @type {?} */ _PLACEHOLDER_TAG = 'ph';\nvar Xtb = /** @class */ (function (_super) {\n tslib_1.__extends(Xtb, _super);\n function Xtb() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * @param {?} messages\n * @param {?} locale\n * @return {?}\n */\n Xtb.prototype.write = /**\n * @param {?} messages\n * @param {?} locale\n * @return {?}\n */\n function (messages, locale) { throw new Error('Unsupported'); };\n /**\n * @param {?} content\n * @param {?} url\n * @return {?}\n */\n Xtb.prototype.load = /**\n * @param {?} content\n * @param {?} url\n * @return {?}\n */\n function (content, url) {\n // xtb to xml nodes\n var /** @type {?} */ xtbParser = new XtbParser();\n var _a = xtbParser.parse(content, url), locale = _a.locale, msgIdToHtml = _a.msgIdToHtml, errors = _a.errors;\n // xml nodes to i18n nodes\n var /** @type {?} */ i18nNodesByMsgId = {};\n var /** @type {?} */ converter = new XmlToI18n();\n // Because we should be able to load xtb files that rely on features not supported by angular,\n // we need to delay the conversion of html to i18n nodes so that non angular messages are not\n // converted\n Object.keys(msgIdToHtml).forEach(function (msgId) {\n var /** @type {?} */ valueFn = function () {\n var _a = converter.convert(msgIdToHtml[msgId], url), i18nNodes = _a.i18nNodes, errors = _a.errors;\n if (errors.length) {\n throw new Error(\"xtb parse errors:\\n\" + errors.join('\\n'));\n }\n return i18nNodes;\n };\n createLazyProperty(i18nNodesByMsgId, msgId, valueFn);\n });\n if (errors.length) {\n throw new Error(\"xtb parse errors:\\n\" + errors.join('\\n'));\n }\n return { locale: /** @type {?} */ ((locale)), i18nNodesByMsgId: i18nNodesByMsgId };\n };\n /**\n * @param {?} message\n * @return {?}\n */\n Xtb.prototype.digest = /**\n * @param {?} message\n * @return {?}\n */\n function (message) { return digest(message); };\n /**\n * @param {?} message\n * @return {?}\n */\n Xtb.prototype.createNameMapper = /**\n * @param {?} message\n * @return {?}\n */\n function (message) {\n return new SimplePlaceholderMapper(message, toPublicName);\n };\n return Xtb;\n}(Serializer));\nexport { Xtb };\n/**\n * @param {?} messages\n * @param {?} id\n * @param {?} valueFn\n * @return {?}\n */\nfunction createLazyProperty(messages, id, valueFn) {\n Object.defineProperty(messages, id, {\n configurable: true,\n enumerable: true,\n get: function () {\n var /** @type {?} */ value = valueFn();\n Object.defineProperty(messages, id, { enumerable: true, value: value });\n return value;\n },\n set: function (_) { throw new Error('Could not overwrite an XTB translation'); },\n });\n}\nvar XtbParser = /** @class */ (function () {\n function XtbParser() {\n this._locale = null;\n }\n /**\n * @param {?} xtb\n * @param {?} url\n * @return {?}\n */\n XtbParser.prototype.parse = /**\n * @param {?} xtb\n * @param {?} url\n * @return {?}\n */\n function (xtb, url) {\n this._bundleDepth = 0;\n this._msgIdToHtml = {};\n // We can not parse the ICU messages at this point as some messages might not originate\n // from Angular that could not be lex'd.\n var /** @type {?} */ xml = new XmlParser().parse(xtb, url, false);\n this._errors = xml.errors;\n ml.visitAll(this, xml.rootNodes);\n return {\n msgIdToHtml: this._msgIdToHtml,\n errors: this._errors,\n locale: this._locale,\n };\n };\n /**\n * @param {?} element\n * @param {?} context\n * @return {?}\n */\n XtbParser.prototype.visitElement = /**\n * @param {?} element\n * @param {?} context\n * @return {?}\n */\n function (element, context) {\n switch (element.name) {\n case _TRANSLATIONS_TAG:\n this._bundleDepth++;\n if (this._bundleDepth > 1) {\n this._addError(element, \"<\" + _TRANSLATIONS_TAG + \"> elements can not be nested\");\n }\n var /** @type {?} */ langAttr = element.attrs.find(function (attr) { return attr.name === 'lang'; });\n if (langAttr) {\n this._locale = langAttr.value;\n }\n ml.visitAll(this, element.children, null);\n this._bundleDepth--;\n break;\n case _TRANSLATION_TAG:\n var /** @type {?} */ idAttr = element.attrs.find(function (attr) { return attr.name === 'id'; });\n if (!idAttr) {\n this._addError(element, \"<\" + _TRANSLATION_TAG + \"> misses the \\\"id\\\" attribute\");\n }\n else {\n var /** @type {?} */ id = idAttr.value;\n if (this._msgIdToHtml.hasOwnProperty(id)) {\n this._addError(element, \"Duplicated translations for msg \" + id);\n }\n else {\n var /** @type {?} */ innerTextStart = /** @type {?} */ ((element.startSourceSpan)).end.offset;\n var /** @type {?} */ innerTextEnd = /** @type {?} */ ((element.endSourceSpan)).start.offset;\n var /** @type {?} */ content = /** @type {?} */ ((element.startSourceSpan)).start.file.content;\n var /** @type {?} */ innerText = content.slice(/** @type {?} */ ((innerTextStart)), /** @type {?} */ ((innerTextEnd)));\n this._msgIdToHtml[id] = innerText;\n }\n }\n break;\n default:\n this._addError(element, 'Unexpected tag');\n }\n };\n /**\n * @param {?} attribute\n * @param {?} context\n * @return {?}\n */\n XtbParser.prototype.visitAttribute = /**\n * @param {?} attribute\n * @param {?} context\n * @return {?}\n */\n function (attribute, context) { };\n /**\n * @param {?} text\n * @param {?} context\n * @return {?}\n */\n XtbParser.prototype.visitText = /**\n * @param {?} text\n * @param {?} context\n * @return {?}\n */\n function (text, context) { };\n /**\n * @param {?} comment\n * @param {?} context\n * @return {?}\n */\n XtbParser.prototype.visitComment = /**\n * @param {?} comment\n * @param {?} context\n * @return {?}\n */\n function (comment, context) { };\n /**\n * @param {?} expansion\n * @param {?} context\n * @return {?}\n */\n XtbParser.prototype.visitExpansion = /**\n * @param {?} expansion\n * @param {?} context\n * @return {?}\n */\n function (expansion, context) { };\n /**\n * @param {?} expansionCase\n * @param {?} context\n * @return {?}\n */\n XtbParser.prototype.visitExpansionCase = /**\n * @param {?} expansionCase\n * @param {?} context\n * @return {?}\n */\n function (expansionCase, context) { };\n /**\n * @param {?} node\n * @param {?} message\n * @return {?}\n */\n XtbParser.prototype._addError = /**\n * @param {?} node\n * @param {?} message\n * @return {?}\n */\n function (node, message) {\n this._errors.push(new I18nError(/** @type {?} */ ((node.sourceSpan)), message));\n };\n return XtbParser;\n}());\nfunction XtbParser_tsickle_Closure_declarations() {\n /** @type {?} */\n XtbParser.prototype._bundleDepth;\n /** @type {?} */\n XtbParser.prototype._errors;\n /** @type {?} */\n XtbParser.prototype._msgIdToHtml;\n /** @type {?} */\n XtbParser.prototype._locale;\n}\nvar XmlToI18n = /** @class */ (function () {\n function XmlToI18n() {\n }\n /**\n * @param {?} message\n * @param {?} url\n * @return {?}\n */\n XmlToI18n.prototype.convert = /**\n * @param {?} message\n * @param {?} url\n * @return {?}\n */\n function (message, url) {\n var /** @type {?} */ xmlIcu = new XmlParser().parse(message, url, true);\n this._errors = xmlIcu.errors;\n var /** @type {?} */ i18nNodes = this._errors.length > 0 || xmlIcu.rootNodes.length == 0 ?\n [] :\n ml.visitAll(this, xmlIcu.rootNodes);\n return {\n i18nNodes: i18nNodes,\n errors: this._errors,\n };\n };\n /**\n * @param {?} text\n * @param {?} context\n * @return {?}\n */\n XmlToI18n.prototype.visitText = /**\n * @param {?} text\n * @param {?} context\n * @return {?}\n */\n function (text, context) { return new i18n.Text(text.value, /** @type {?} */ ((text.sourceSpan))); };\n /**\n * @param {?} icu\n * @param {?} context\n * @return {?}\n */\n XmlToI18n.prototype.visitExpansion = /**\n * @param {?} icu\n * @param {?} context\n * @return {?}\n */\n function (icu, context) {\n var /** @type {?} */ caseMap = {};\n ml.visitAll(this, icu.cases).forEach(function (c) {\n caseMap[c.value] = new i18n.Container(c.nodes, icu.sourceSpan);\n });\n return new i18n.Icu(icu.switchValue, icu.type, caseMap, icu.sourceSpan);\n };\n /**\n * @param {?} icuCase\n * @param {?} context\n * @return {?}\n */\n XmlToI18n.prototype.visitExpansionCase = /**\n * @param {?} icuCase\n * @param {?} context\n * @return {?}\n */\n function (icuCase, context) {\n return {\n value: icuCase.value,\n nodes: ml.visitAll(this, icuCase.expression),\n };\n };\n /**\n * @param {?} el\n * @param {?} context\n * @return {?}\n */\n XmlToI18n.prototype.visitElement = /**\n * @param {?} el\n * @param {?} context\n * @return {?}\n */\n function (el, context) {\n if (el.name === _PLACEHOLDER_TAG) {\n var /** @type {?} */ nameAttr = el.attrs.find(function (attr) { return attr.name === 'name'; });\n if (nameAttr) {\n return new i18n.Placeholder('', nameAttr.value, /** @type {?} */ ((el.sourceSpan)));\n }\n this._addError(el, \"<\" + _PLACEHOLDER_TAG + \"> misses the \\\"name\\\" attribute\");\n }\n else {\n this._addError(el, \"Unexpected tag\");\n }\n return null;\n };\n /**\n * @param {?} comment\n * @param {?} context\n * @return {?}\n */\n XmlToI18n.prototype.visitComment = /**\n * @param {?} comment\n * @param {?} context\n * @return {?}\n */\n function (comment, context) { };\n /**\n * @param {?} attribute\n * @param {?} context\n * @return {?}\n */\n XmlToI18n.prototype.visitAttribute = /**\n * @param {?} attribute\n * @param {?} context\n * @return {?}\n */\n function (attribute, context) { };\n /**\n * @param {?} node\n * @param {?} message\n * @return {?}\n */\n XmlToI18n.prototype._addError = /**\n * @param {?} node\n * @param {?} message\n * @return {?}\n */\n function (node, message) {\n this._errors.push(new I18nError(/** @type {?} */ ((node.sourceSpan)), message));\n };\n return XmlToI18n;\n}());\nfunction XmlToI18n_tsickle_Closure_declarations() {\n /** @type {?} */\n XmlToI18n.prototype._errors;\n}\n//# sourceMappingURL=xtb.js.map","/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this 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 tslib_1 from \"tslib\";\nimport { getHtmlTagDefinition } from './html_tags';\nimport { DEFAULT_INTERPOLATION_CONFIG } from './interpolation_config';\nimport { Parser } from './parser';\nexport { ParseTreeResult, TreeError } from './parser';\nvar HtmlParser = /** @class */ (function (_super) {\n tslib_1.__extends(HtmlParser, _super);\n function HtmlParser() {\n return _super.call(this, getHtmlTagDefinition) || this;\n }\n /**\n * @param {?} source\n * @param {?} url\n * @param {?=} parseExpansionForms\n * @param {?=} interpolationConfig\n * @return {?}\n */\n HtmlParser.prototype.parse = /**\n * @param {?} source\n * @param {?} url\n * @param {?=} parseExpansionForms\n * @param {?=} interpolationConfig\n * @return {?}\n */\n function (source, url, parseExpansionForms, interpolationConfig) {\n if (parseExpansionForms === void 0) { parseExpansionForms = false; }\n if (interpolationConfig === void 0) { interpolationConfig = DEFAULT_INTERPOLATION_CONFIG; }\n return _super.prototype.parse.call(this, source, url, parseExpansionForms, interpolationConfig);\n };\n return HtmlParser;\n}(Parser));\nexport { HtmlParser };\n//# sourceMappingURL=html_parser.js.map","/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this 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 { MissingTranslationStrategy } from '../core';\nimport { HtmlParser } from '../ml_parser/html_parser';\nimport { I18nError } from './parse_util';\n/**\n * A container for translated messages\n */\nvar /**\n * A container for translated messages\n */\nTranslationBundle = /** @class */ (function () {\n function TranslationBundle(_i18nNodesByMsgId, locale, digest, mapperFactory, missingTranslationStrategy, console) {\n if (_i18nNodesByMsgId === void 0) { _i18nNodesByMsgId = {}; }\n if (missingTranslationStrategy === void 0) { missingTranslationStrategy = MissingTranslationStrategy.Warning; }\n this._i18nNodesByMsgId = _i18nNodesByMsgId;\n this.digest = digest;\n this.mapperFactory = mapperFactory;\n this._i18nToHtml = new I18nToHtmlVisitor(_i18nNodesByMsgId, locale, digest, /** @type {?} */ ((mapperFactory)), missingTranslationStrategy, console);\n }\n // Creates a `TranslationBundle` by parsing the given `content` with the `serializer`.\n /**\n * @param {?} content\n * @param {?} url\n * @param {?} serializer\n * @param {?} missingTranslationStrategy\n * @param {?=} console\n * @return {?}\n */\n TranslationBundle.load = /**\n * @param {?} content\n * @param {?} url\n * @param {?} serializer\n * @param {?} missingTranslationStrategy\n * @param {?=} console\n * @return {?}\n */\n function (content, url, serializer, missingTranslationStrategy, console) {\n var _a = serializer.load(content, url), locale = _a.locale, i18nNodesByMsgId = _a.i18nNodesByMsgId;\n var /** @type {?} */ digestFn = function (m) { return serializer.digest(m); };\n var /** @type {?} */ mapperFactory = function (m) { return ((serializer.createNameMapper(m))); };\n return new TranslationBundle(i18nNodesByMsgId, locale, digestFn, mapperFactory, missingTranslationStrategy, console);\n };\n // Returns the translation as HTML nodes from the given source message.\n /**\n * @param {?} srcMsg\n * @return {?}\n */\n TranslationBundle.prototype.get = /**\n * @param {?} srcMsg\n * @return {?}\n */\n function (srcMsg) {\n var /** @type {?} */ html = this._i18nToHtml.convert(srcMsg);\n if (html.errors.length) {\n throw new Error(html.errors.join('\\n'));\n }\n return html.nodes;\n };\n /**\n * @param {?} srcMsg\n * @return {?}\n */\n TranslationBundle.prototype.has = /**\n * @param {?} srcMsg\n * @return {?}\n */\n function (srcMsg) { return this.digest(srcMsg) in this._i18nNodesByMsgId; };\n return TranslationBundle;\n}());\n/**\n * A container for translated messages\n */\nexport { TranslationBundle };\nfunction TranslationBundle_tsickle_Closure_declarations() {\n /** @type {?} */\n TranslationBundle.prototype._i18nToHtml;\n /** @type {?} */\n TranslationBundle.prototype._i18nNodesByMsgId;\n /** @type {?} */\n TranslationBundle.prototype.digest;\n /** @type {?} */\n TranslationBundle.prototype.mapperFactory;\n}\nvar I18nToHtmlVisitor = /** @class */ (function () {\n function I18nToHtmlVisitor(_i18nNodesByMsgId, _locale, _digest, _mapperFactory, _missingTranslationStrategy, _console) {\n if (_i18nNodesByMsgId === void 0) { _i18nNodesByMsgId = {}; }\n this._i18nNodesByMsgId = _i18nNodesByMsgId;\n this._locale = _locale;\n this._digest = _digest;\n this._mapperFactory = _mapperFactory;\n this._missingTranslationStrategy = _missingTranslationStrategy;\n this._console = _console;\n this._contextStack = [];\n this._errors = [];\n }\n /**\n * @param {?} srcMsg\n * @return {?}\n */\n I18nToHtmlVisitor.prototype.convert = /**\n * @param {?} srcMsg\n * @return {?}\n */\n function (srcMsg) {\n this._contextStack.length = 0;\n this._errors.length = 0;\n // i18n to text\n var /** @type {?} */ text = this._convertToText(srcMsg);\n // text to html\n var /** @type {?} */ url = srcMsg.nodes[0].sourceSpan.start.file.url;\n var /** @type {?} */ html = new HtmlParser().parse(text, url, true);\n return {\n nodes: html.rootNodes,\n errors: this._errors.concat(html.errors),\n };\n };\n /**\n * @param {?} text\n * @param {?=} context\n * @return {?}\n */\n I18nToHtmlVisitor.prototype.visitText = /**\n * @param {?} text\n * @param {?=} context\n * @return {?}\n */\n function (text, context) { return text.value; };\n /**\n * @param {?} container\n * @param {?=} context\n * @return {?}\n */\n I18nToHtmlVisitor.prototype.visitContainer = /**\n * @param {?} container\n * @param {?=} context\n * @return {?}\n */\n function (container, context) {\n var _this = this;\n return container.children.map(function (n) { return n.visit(_this); }).join('');\n };\n /**\n * @param {?} icu\n * @param {?=} context\n * @return {?}\n */\n I18nToHtmlVisitor.prototype.visitIcu = /**\n * @param {?} icu\n * @param {?=} context\n * @return {?}\n */\n function (icu, context) {\n var _this = this;\n var /** @type {?} */ cases = Object.keys(icu.cases).map(function (k) { return k + \" {\" + icu.cases[k].visit(_this) + \"}\"; });\n // TODO(vicb): Once all format switch to using expression placeholders\n // we should throw when the placeholder is not in the source message\n var /** @type {?} */ exp = this._srcMsg.placeholders.hasOwnProperty(icu.expression) ?\n this._srcMsg.placeholders[icu.expression] :\n icu.expression;\n return \"{\" + exp + \", \" + icu.type + \", \" + cases.join(' ') + \"}\";\n };\n /**\n * @param {?} ph\n * @param {?=} context\n * @return {?}\n */\n I18nToHtmlVisitor.prototype.visitPlaceholder = /**\n * @param {?} ph\n * @param {?=} context\n * @return {?}\n */\n function (ph, context) {\n var /** @type {?} */ phName = this._mapper(ph.name);\n if (this._srcMsg.placeholders.hasOwnProperty(phName)) {\n return this._srcMsg.placeholders[phName];\n }\n if (this._srcMsg.placeholderToMessage.hasOwnProperty(phName)) {\n return this._convertToText(this._srcMsg.placeholderToMessage[phName]);\n }\n this._addError(ph, \"Unknown placeholder \\\"\" + ph.name + \"\\\"\");\n return '';\n };\n // Loaded message contains only placeholders (vs tag and icu placeholders).\n // However when a translation can not be found, we need to serialize the source message\n // which can contain tag placeholders\n /**\n * @param {?} ph\n * @param {?=} context\n * @return {?}\n */\n I18nToHtmlVisitor.prototype.visitTagPlaceholder = /**\n * @param {?} ph\n * @param {?=} context\n * @return {?}\n */\n function (ph, context) {\n var _this = this;\n var /** @type {?} */ tag = \"\" + ph.tag;\n var /** @type {?} */ attrs = Object.keys(ph.attrs).map(function (name) { return name + \"=\\\"\" + ph.attrs[name] + \"\\\"\"; }).join(' ');\n if (ph.isVoid) {\n return \"<\" + tag + \" \" + attrs + \"/>\";\n }\n var /** @type {?} */ children = ph.children.map(function (c) { return c.visit(_this); }).join('');\n return \"<\" + tag + \" \" + attrs + \">\" + children + \"</\" + tag + \">\";\n };\n // Loaded message contains only placeholders (vs tag and icu placeholders).\n // However when a translation can not be found, we need to serialize the source message\n // which can contain tag placeholders\n /**\n * @param {?} ph\n * @param {?=} context\n * @return {?}\n */\n I18nToHtmlVisitor.prototype.visitIcuPlaceholder = /**\n * @param {?} ph\n * @param {?=} context\n * @return {?}\n */\n function (ph, context) {\n // An ICU placeholder references the source message to be serialized\n return this._convertToText(this._srcMsg.placeholderToMessage[ph.name]);\n };\n /**\n * Convert a source message to a translated text string:\n * - text nodes are replaced with their translation,\n * - placeholders are replaced with their content,\n * - ICU nodes are converted to ICU expressions.\n * @param {?} srcMsg\n * @return {?}\n */\n I18nToHtmlVisitor.prototype._convertToText = /**\n * Convert a source message to a translated text string:\n * - text nodes are replaced with their translation,\n * - placeholders are replaced with their content,\n * - ICU nodes are converted to ICU expressions.\n * @param {?} srcMsg\n * @return {?}\n */\n function (srcMsg) {\n var _this = this;\n var /** @type {?} */ id = this._digest(srcMsg);\n var /** @type {?} */ mapper = this._mapperFactory ? this._mapperFactory(srcMsg) : null;\n var /** @type {?} */ nodes;\n this._contextStack.push({ msg: this._srcMsg, mapper: this._mapper });\n this._srcMsg = srcMsg;\n if (this._i18nNodesByMsgId.hasOwnProperty(id)) {\n // When there is a translation use its nodes as the source\n // And create a mapper to convert serialized placeholder names to internal names\n nodes = this._i18nNodesByMsgId[id];\n this._mapper = function (name) { return mapper ? /** @type {?} */ ((mapper.toInternalName(name))) : name; };\n }\n else {\n // When no translation has been found\n // - report an error / a warning / nothing,\n // - use the nodes from the original message\n // - placeholders are already internal and need no mapper\n if (this._missingTranslationStrategy === MissingTranslationStrategy.Error) {\n var /** @type {?} */ ctx = this._locale ? \" for locale \\\"\" + this._locale + \"\\\"\" : '';\n this._addError(srcMsg.nodes[0], \"Missing translation for message \\\"\" + id + \"\\\"\" + ctx);\n }\n else if (this._console &&\n this._missingTranslationStrategy === MissingTranslationStrategy.Warning) {\n var /** @type {?} */ ctx = this._locale ? \" for locale \\\"\" + this._locale + \"\\\"\" : '';\n this._console.warn(\"Missing translation for message \\\"\" + id + \"\\\"\" + ctx);\n }\n nodes = srcMsg.nodes;\n this._mapper = function (name) { return name; };\n }\n var /** @type {?} */ text = nodes.map(function (node) { return node.visit(_this); }).join('');\n var /** @type {?} */ context = /** @type {?} */ ((this._contextStack.pop()));\n this._srcMsg = context.msg;\n this._mapper = context.mapper;\n return text;\n };\n /**\n * @param {?} el\n * @param {?} msg\n * @return {?}\n */\n I18nToHtmlVisitor.prototype._addError = /**\n * @param {?} el\n * @param {?} msg\n * @return {?}\n */\n function (el, msg) {\n this._errors.push(new I18nError(el.sourceSpan, msg));\n };\n return I18nToHtmlVisitor;\n}());\nfunction I18nToHtmlVisitor_tsickle_Closure_declarations() {\n /** @type {?} */\n I18nToHtmlVisitor.prototype._srcMsg;\n /** @type {?} */\n I18nToHtmlVisitor.prototype._contextStack;\n /** @type {?} */\n I18nToHtmlVisitor.prototype._errors;\n /** @type {?} */\n I18nToHtmlVisitor.prototype._mapper;\n /** @type {?} */\n I18nToHtmlVisitor.prototype._i18nNodesByMsgId;\n /** @type {?} */\n I18nToHtmlVisitor.prototype._locale;\n /** @type {?} */\n I18nToHtmlVisitor.prototype._digest;\n /** @type {?} */\n I18nToHtmlVisitor.prototype._mapperFactory;\n /** @type {?} */\n I18nToHtmlVisitor.prototype._missingTranslationStrategy;\n /** @type {?} */\n I18nToHtmlVisitor.prototype._console;\n}\n//# sourceMappingURL=translation_bundle.js.map","/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this 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 { MissingTranslationStrategy } from '../core';\nimport { DEFAULT_INTERPOLATION_CONFIG } from '../ml_parser/interpolation_config';\nimport { ParseTreeResult } from '../ml_parser/parser';\nimport { digest } from './digest';\nimport { mergeTranslations } from './extractor_merger';\nimport { Xliff } from './serializers/xliff';\nimport { Xliff2 } from './serializers/xliff2';\nimport { Xmb } from './serializers/xmb';\nimport { Xtb } from './serializers/xtb';\nimport { TranslationBundle } from './translation_bundle';\nvar I18NHtmlParser = /** @class */ (function () {\n function I18NHtmlParser(_htmlParser, translations, translationsFormat, missingTranslation, console) {\n if (missingTranslation === void 0) { missingTranslation = MissingTranslationStrategy.Warning; }\n this._htmlParser = _htmlParser;\n if (translations) {\n var /** @type {?} */ serializer = createSerializer(translationsFormat);\n this._translationBundle =\n TranslationBundle.load(translations, 'i18n', serializer, missingTranslation, console);\n }\n else {\n this._translationBundle =\n new TranslationBundle({}, null, digest, undefined, missingTranslation, console);\n }\n }\n /**\n * @param {?} source\n * @param {?} url\n * @param {?=} parseExpansionForms\n * @param {?=} interpolationConfig\n * @return {?}\n */\n I18NHtmlParser.prototype.parse = /**\n * @param {?} source\n * @param {?} url\n * @param {?=} parseExpansionForms\n * @param {?=} interpolationConfig\n * @return {?}\n */\n function (source, url, parseExpansionForms, interpolationConfig) {\n if (parseExpansionForms === void 0) { parseExpansionForms = false; }\n if (interpolationConfig === void 0) { interpolationConfig = DEFAULT_INTERPOLATION_CONFIG; }\n var /** @type {?} */ parseResult = this._htmlParser.parse(source, url, parseExpansionForms, interpolationConfig);\n if (parseResult.errors.length) {\n return new ParseTreeResult(parseResult.rootNodes, parseResult.errors);\n }\n return mergeTranslations(parseResult.rootNodes, this._translationBundle, interpolationConfig, [], {});\n };\n return I18NHtmlParser;\n}());\nexport { I18NHtmlParser };\nfunction I18NHtmlParser_tsickle_Closure_declarations() {\n /** @type {?} */\n I18NHtmlParser.prototype.getTagDefinition;\n /** @type {?} */\n I18NHtmlParser.prototype._translationBundle;\n /** @type {?} */\n I18NHtmlParser.prototype._htmlParser;\n}\n/**\n * @param {?=} format\n * @return {?}\n */\nfunction createSerializer(format) {\n format = (format || 'xlf').toLowerCase();\n switch (format) {\n case 'xmb':\n return new Xmb();\n case 'xtb':\n return new Xtb();\n case 'xliff2':\n case 'xlf2':\n return new Xliff2();\n case 'xliff':\n case 'xlf':\n default:\n return new Xliff();\n }\n}\n//# sourceMappingURL=i18n_html_parser.js.map","/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nvar /** @type {?} */ STRIP_SRC_FILE_SUFFIXES = /(\\.ts|\\.d\\.ts|\\.js|\\.jsx|\\.tsx)$/;\nvar /** @type {?} */ GENERATED_FILE = /\\.ngfactory\\.|\\.ngsummary\\./;\nvar /** @type {?} */ JIT_SUMMARY_FILE = /\\.ngsummary\\./;\nvar /** @type {?} */ JIT_SUMMARY_NAME = /NgSummary$/;\n/**\n * @param {?} filePath\n * @param {?=} forceSourceFile\n * @return {?}\n */\nexport function ngfactoryFilePath(filePath, forceSourceFile) {\n if (forceSourceFile === void 0) { forceSourceFile = false; }\n var /** @type {?} */ urlWithSuffix = splitTypescriptSuffix(filePath, forceSourceFile);\n return urlWithSuffix[0] + \".ngfactory\" + normalizeGenFileSuffix(urlWithSuffix[1]);\n}\n/**\n * @param {?} filePath\n * @return {?}\n */\nexport function stripGeneratedFileSuffix(filePath) {\n return filePath.replace(GENERATED_FILE, '.');\n}\n/**\n * @param {?} filePath\n * @return {?}\n */\nexport function isGeneratedFile(filePath) {\n return GENERATED_FILE.test(filePath);\n}\n/**\n * @param {?} path\n * @param {?=} forceSourceFile\n * @return {?}\n */\nexport function splitTypescriptSuffix(path, forceSourceFile) {\n if (forceSourceFile === void 0) { forceSourceFile = false; }\n if (path.endsWith('.d.ts')) {\n return [path.slice(0, -5), forceSourceFile ? '.ts' : '.d.ts'];\n }\n var /** @type {?} */ lastDot = path.lastIndexOf('.');\n if (lastDot !== -1) {\n return [path.substring(0, lastDot), path.substring(lastDot)];\n }\n return [path, ''];\n}\n/**\n * @param {?} srcFileSuffix\n * @return {?}\n */\nexport function normalizeGenFileSuffix(srcFileSuffix) {\n return srcFileSuffix === '.tsx' ? '.ts' : srcFileSuffix;\n}\n/**\n * @param {?} fileName\n * @return {?}\n */\nexport function summaryFileName(fileName) {\n var /** @type {?} */ fileNameWithoutSuffix = fileName.replace(STRIP_SRC_FILE_SUFFIXES, '');\n return fileNameWithoutSuffix + \".ngsummary.json\";\n}\n/**\n * @param {?} fileName\n * @param {?=} forceSourceFile\n * @return {?}\n */\nexport function summaryForJitFileName(fileName, forceSourceFile) {\n if (forceSourceFile === void 0) { forceSourceFile = false; }\n var /** @type {?} */ urlWithSuffix = splitTypescriptSuffix(stripGeneratedFileSuffix(fileName), forceSourceFile);\n return urlWithSuffix[0] + \".ngsummary\" + urlWithSuffix[1];\n}\n/**\n * @param {?} filePath\n * @return {?}\n */\nexport function stripSummaryForJitFileSuffix(filePath) {\n return filePath.replace(JIT_SUMMARY_FILE, '.');\n}\n/**\n * @param {?} symbolName\n * @return {?}\n */\nexport function summaryForJitName(symbolName) {\n return symbolName + \"NgSummary\";\n}\n/**\n * @param {?} symbolName\n * @return {?}\n */\nexport function stripSummaryForJitNameSuffix(symbolName) {\n return symbolName.replace(JIT_SUMMARY_NAME, '');\n}\nvar /** @type {?} */ LOWERED_SYMBOL = /\\u0275\\d+/;\n/**\n * @param {?} name\n * @return {?}\n */\nexport function isLoweredSymbol(name) {\n return LOWERED_SYMBOL.test(name);\n}\n/**\n * @param {?} id\n * @return {?}\n */\nexport function createLoweredSymbol(id) {\n return \"\\u0275\" + id;\n}\n//# sourceMappingURL=util.js.map","/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nvar /** @type {?} */ CORE = '@angular/core';\nvar Identifiers = /** @class */ (function () {\n function Identifiers() {\n }\n Identifiers.ANALYZE_FOR_ENTRY_COMPONENTS = {\n name: 'ANALYZE_FOR_ENTRY_COMPONENTS',\n moduleName: CORE,\n };\n Identifiers.ElementRef = { name: 'ElementRef', moduleName: CORE };\n Identifiers.NgModuleRef = { name: 'NgModuleRef', moduleName: CORE };\n Identifiers.ViewContainerRef = { name: 'ViewContainerRef', moduleName: CORE };\n Identifiers.ChangeDetectorRef = {\n name: 'ChangeDetectorRef',\n moduleName: CORE,\n };\n Identifiers.QueryList = { name: 'QueryList', moduleName: CORE };\n Identifiers.TemplateRef = { name: 'TemplateRef', moduleName: CORE };\n Identifiers.CodegenComponentFactoryResolver = {\n name: 'ɵCodegenComponentFactoryResolver',\n moduleName: CORE,\n };\n Identifiers.ComponentFactoryResolver = {\n name: 'ComponentFactoryResolver',\n moduleName: CORE,\n };\n Identifiers.ComponentFactory = { name: 'ComponentFactory', moduleName: CORE };\n Identifiers.ComponentRef = { name: 'ComponentRef', moduleName: CORE };\n Identifiers.NgModuleFactory = { name: 'NgModuleFactory', moduleName: CORE };\n Identifiers.createModuleFactory = {\n name: 'ɵcmf',\n moduleName: CORE,\n };\n Identifiers.moduleDef = {\n name: 'ɵmod',\n moduleName: CORE,\n };\n Identifiers.moduleProviderDef = {\n name: 'ɵmpd',\n moduleName: CORE,\n };\n Identifiers.RegisterModuleFactoryFn = {\n name: 'ɵregisterModuleFactory',\n moduleName: CORE,\n };\n Identifiers.Injector = { name: 'Injector', moduleName: CORE };\n Identifiers.ViewEncapsulation = {\n name: 'ViewEncapsulation',\n moduleName: CORE,\n };\n Identifiers.ChangeDetectionStrategy = {\n name: 'ChangeDetectionStrategy',\n moduleName: CORE,\n };\n Identifiers.SecurityContext = {\n name: 'SecurityContext',\n moduleName: CORE,\n };\n Identifiers.LOCALE_ID = { name: 'LOCALE_ID', moduleName: CORE };\n Identifiers.TRANSLATIONS_FORMAT = {\n name: 'TRANSLATIONS_FORMAT',\n moduleName: CORE,\n };\n Identifiers.inlineInterpolate = {\n name: 'ɵinlineInterpolate',\n moduleName: CORE,\n };\n Identifiers.interpolate = { name: 'ɵinterpolate', moduleName: CORE };\n Identifiers.EMPTY_ARRAY = { name: 'ɵEMPTY_ARRAY', moduleName: CORE };\n Identifiers.EMPTY_MAP = { name: 'ɵEMPTY_MAP', moduleName: CORE };\n Identifiers.Renderer = { name: 'Renderer', moduleName: CORE };\n Identifiers.viewDef = { name: 'ɵvid', moduleName: CORE };\n Identifiers.elementDef = { name: 'ɵeld', moduleName: CORE };\n Identifiers.anchorDef = { name: 'ɵand', moduleName: CORE };\n Identifiers.textDef = { name: 'ɵted', moduleName: CORE };\n Identifiers.directiveDef = { name: 'ɵdid', moduleName: CORE };\n Identifiers.providerDef = { name: 'ɵprd', moduleName: CORE };\n Identifiers.queryDef = { name: 'ɵqud', moduleName: CORE };\n Identifiers.pureArrayDef = { name: 'ɵpad', moduleName: CORE };\n Identifiers.pureObjectDef = { name: 'ɵpod', moduleName: CORE };\n Identifiers.purePipeDef = { name: 'ɵppd', moduleName: CORE };\n Identifiers.pipeDef = { name: 'ɵpid', moduleName: CORE };\n Identifiers.nodeValue = { name: 'ɵnov', moduleName: CORE };\n Identifiers.ngContentDef = { name: 'ɵncd', moduleName: CORE };\n Identifiers.unwrapValue = { name: 'ɵunv', moduleName: CORE };\n Identifiers.createRendererType2 = { name: 'ɵcrt', moduleName: CORE };\n // type only\n Identifiers.RendererType2 = {\n name: 'RendererType2',\n moduleName: CORE,\n };\n // type only\n Identifiers.ViewDefinition = {\n name: 'ɵViewDefinition',\n moduleName: CORE,\n };\n Identifiers.createComponentFactory = { name: 'ɵccf', moduleName: CORE };\n return Identifiers;\n}());\nexport { Identifiers };\nfunction Identifiers_tsickle_Closure_declarations() {\n /** @type {?} */\n Identifiers.ANALYZE_FOR_ENTRY_COMPONENTS;\n /** @type {?} */\n Identifiers.ElementRef;\n /** @type {?} */\n Identifiers.NgModuleRef;\n /** @type {?} */\n Identifiers.ViewContainerRef;\n /** @type {?} */\n Identifiers.ChangeDetectorRef;\n /** @type {?} */\n Identifiers.QueryList;\n /** @type {?} */\n Identifiers.TemplateRef;\n /** @type {?} */\n Identifiers.CodegenComponentFactoryResolver;\n /** @type {?} */\n Identifiers.ComponentFactoryResolver;\n /** @type {?} */\n Identifiers.ComponentFactory;\n /** @type {?} */\n Identifiers.ComponentRef;\n /** @type {?} */\n Identifiers.NgModuleFactory;\n /** @type {?} */\n Identifiers.createModuleFactory;\n /** @type {?} */\n Identifiers.moduleDef;\n /** @type {?} */\n Identifiers.moduleProviderDef;\n /** @type {?} */\n Identifiers.RegisterModuleFactoryFn;\n /** @type {?} */\n Identifiers.Injector;\n /** @type {?} */\n Identifiers.ViewEncapsulation;\n /** @type {?} */\n Identifiers.ChangeDetectionStrategy;\n /** @type {?} */\n Identifiers.SecurityContext;\n /** @type {?} */\n Identifiers.LOCALE_ID;\n /** @type {?} */\n Identifiers.TRANSLATIONS_FORMAT;\n /** @type {?} */\n Identifiers.inlineInterpolate;\n /** @type {?} */\n Identifiers.interpolate;\n /** @type {?} */\n Identifiers.EMPTY_ARRAY;\n /** @type {?} */\n Identifiers.EMPTY_MAP;\n /** @type {?} */\n Identifiers.Renderer;\n /** @type {?} */\n Identifiers.viewDef;\n /** @type {?} */\n Identifiers.elementDef;\n /** @type {?} */\n Identifiers.anchorDef;\n /** @type {?} */\n Identifiers.textDef;\n /** @type {?} */\n Identifiers.directiveDef;\n /** @type {?} */\n Identifiers.providerDef;\n /** @type {?} */\n Identifiers.queryDef;\n /** @type {?} */\n Identifiers.pureArrayDef;\n /** @type {?} */\n Identifiers.pureObjectDef;\n /** @type {?} */\n Identifiers.purePipeDef;\n /** @type {?} */\n Identifiers.pipeDef;\n /** @type {?} */\n Identifiers.nodeValue;\n /** @type {?} */\n Identifiers.ngContentDef;\n /** @type {?} */\n Identifiers.unwrapValue;\n /** @type {?} */\n Identifiers.createRendererType2;\n /** @type {?} */\n Identifiers.RendererType2;\n /** @type {?} */\n Identifiers.ViewDefinition;\n /** @type {?} */\n Identifiers.createComponentFactory;\n}\n/**\n * @param {?} reference\n * @return {?}\n */\nexport function createTokenForReference(reference) {\n return { identifier: { reference: reference } };\n}\n/**\n * @param {?} reflector\n * @param {?} reference\n * @return {?}\n */\nexport function createTokenForExternalReference(reflector, reference) {\n return createTokenForReference(reflector.resolveExternalReference(reference));\n}\n//# sourceMappingURL=identifiers.js.map","/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/** @enum {number} */\nvar LifecycleHooks = {\n OnInit: 0,\n OnDestroy: 1,\n DoCheck: 2,\n OnChanges: 3,\n AfterContentInit: 4,\n AfterContentChecked: 5,\n AfterViewInit: 6,\n AfterViewChecked: 7,\n};\nexport { LifecycleHooks };\nLifecycleHooks[LifecycleHooks.OnInit] = \"OnInit\";\nLifecycleHooks[LifecycleHooks.OnDestroy] = \"OnDestroy\";\nLifecycleHooks[LifecycleHooks.DoCheck] = \"DoCheck\";\nLifecycleHooks[LifecycleHooks.OnChanges] = \"OnChanges\";\nLifecycleHooks[LifecycleHooks.AfterContentInit] = \"AfterContentInit\";\nLifecycleHooks[LifecycleHooks.AfterContentChecked] = \"AfterContentChecked\";\nLifecycleHooks[LifecycleHooks.AfterViewInit] = \"AfterViewInit\";\nLifecycleHooks[LifecycleHooks.AfterViewChecked] = \"AfterViewChecked\";\nexport var /** @type {?} */ LIFECYCLE_HOOKS_VALUES = [\n LifecycleHooks.OnInit, LifecycleHooks.OnDestroy, LifecycleHooks.DoCheck, LifecycleHooks.OnChanges,\n LifecycleHooks.AfterContentInit, LifecycleHooks.AfterContentChecked, LifecycleHooks.AfterViewInit,\n LifecycleHooks.AfterViewChecked\n];\n/**\n * @param {?} reflector\n * @param {?} hook\n * @param {?} token\n * @return {?}\n */\nexport function hasLifecycleHook(reflector, hook, token) {\n return reflector.hasLifecycleHook(token, getHookName(hook));\n}\n/**\n * @param {?} reflector\n * @param {?} token\n * @return {?}\n */\nexport function getAllLifecycleHooks(reflector, token) {\n return LIFECYCLE_HOOKS_VALUES.filter(function (hook) { return hasLifecycleHook(reflector, hook, token); });\n}\n/**\n * @param {?} hook\n * @return {?}\n */\nfunction getHookName(hook) {\n switch (hook) {\n case LifecycleHooks.OnInit:\n return 'ngOnInit';\n case LifecycleHooks.OnDestroy:\n return 'ngOnDestroy';\n case LifecycleHooks.DoCheck:\n return 'ngDoCheck';\n case LifecycleHooks.OnChanges:\n return 'ngOnChanges';\n case LifecycleHooks.AfterContentInit:\n return 'ngAfterContentInit';\n case LifecycleHooks.AfterContentChecked:\n return 'ngAfterContentChecked';\n case LifecycleHooks.AfterViewInit:\n return 'ngAfterViewInit';\n case LifecycleHooks.AfterViewChecked:\n return 'ngAfterViewChecked';\n }\n}\n//# sourceMappingURL=lifecycle_reflector.js.map","/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this 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 { getHtmlTagDefinition } from './ml_parser/html_tags';\nvar /** @type {?} */ _SELECTOR_REGEXP = new RegExp('(\\\\:not\\\\()|' + //\":not(\"\n '([-\\\\w]+)|' + // \"tag\"\n '(?:\\\\.([-\\\\w]+))|' + // \".class\"\n '(?:\\\\[([-.\\\\w*]+)(?:=([\\\"\\']?)([^\\\\]\\\"\\']*)\\\\5)?\\\\])|' + // \"[name]\", \"[name=value]\",\n '(\\\\))|' + // \")\"\n '(\\\\s*,\\\\s*)', // \",\"\n'g');\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 */\nvar /**\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 */\nCssSelector = /** @class */ (function () {\n function CssSelector() {\n this.element = null;\n this.classNames = [];\n this.attrs = [];\n this.notSelectors = [];\n }\n /**\n * @param {?} selector\n * @return {?}\n */\n CssSelector.parse = /**\n * @param {?} selector\n * @return {?}\n */\n function (selector) {\n var /** @type {?} */ results = [];\n var /** @type {?} */ _addResult = function (res, cssSel) {\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 var /** @type {?} */ cssSelector = new CssSelector();\n var /** @type {?} */ match;\n var /** @type {?} */ current = cssSelector;\n var /** @type {?} */ inNot = false;\n _SELECTOR_REGEXP.lastIndex = 0;\n while (match = _SELECTOR_REGEXP.exec(selector)) {\n if (match[1]) {\n if (inNot) {\n throw new Error('Nesting :not is not allowed in a selector');\n }\n inNot = true;\n current = new CssSelector();\n cssSelector.notSelectors.push(current);\n }\n if (match[2]) {\n current.setElement(match[2]);\n }\n if (match[3]) {\n current.addClassName(match[3]);\n }\n if (match[4]) {\n current.addAttribute(match[4], match[6]);\n }\n if (match[7]) {\n inNot = false;\n current = cssSelector;\n }\n if (match[8]) {\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 * @return {?}\n */\n CssSelector.prototype.isElementSelector = /**\n * @return {?}\n */\n function () {\n return this.hasElementSelector() && this.classNames.length == 0 && this.attrs.length == 0 &&\n this.notSelectors.length === 0;\n };\n /**\n * @return {?}\n */\n CssSelector.prototype.hasElementSelector = /**\n * @return {?}\n */\n function () { return !!this.element; };\n /**\n * @param {?=} element\n * @return {?}\n */\n CssSelector.prototype.setElement = /**\n * @param {?=} element\n * @return {?}\n */\n function (element) {\n if (element === void 0) { element = null; }\n this.element = element;\n };\n /** Gets a template string for an element that matches the selector. */\n /**\n * Gets a template string for an element that matches the selector.\n * @return {?}\n */\n CssSelector.prototype.getMatchingElementTemplate = /**\n * Gets a template string for an element that matches the selector.\n * @return {?}\n */\n function () {\n var /** @type {?} */ tagName = this.element || 'div';\n var /** @type {?} */ classAttr = this.classNames.length > 0 ? \" class=\\\"\" + this.classNames.join(' ') + \"\\\"\" : '';\n var /** @type {?} */ attrs = '';\n for (var /** @type {?} */ i = 0; i < this.attrs.length; i += 2) {\n var /** @type {?} */ attrName = this.attrs[i];\n var /** @type {?} */ attrValue = this.attrs[i + 1] !== '' ? \"=\\\"\" + this.attrs[i + 1] + \"\\\"\" : '';\n attrs += \" \" + attrName + attrValue;\n }\n return getHtmlTagDefinition(tagName).isVoid ? \"<\" + tagName + classAttr + attrs + \"/>\" :\n \"<\" + tagName + classAttr + attrs + \"></\" + tagName + \">\";\n };\n /**\n * @param {?} name\n * @param {?=} value\n * @return {?}\n */\n CssSelector.prototype.addAttribute = /**\n * @param {?} name\n * @param {?=} value\n * @return {?}\n */\n function (name, value) {\n if (value === void 0) { value = ''; }\n this.attrs.push(name, value && value.toLowerCase() || '');\n };\n /**\n * @param {?} name\n * @return {?}\n */\n CssSelector.prototype.addClassName = /**\n * @param {?} name\n * @return {?}\n */\n function (name) { this.classNames.push(name.toLowerCase()); };\n /**\n * @return {?}\n */\n CssSelector.prototype.toString = /**\n * @return {?}\n */\n function () {\n var /** @type {?} */ res = this.element || '';\n if (this.classNames) {\n this.classNames.forEach(function (klass) { return res += \".\" + klass; });\n }\n if (this.attrs) {\n for (var /** @type {?} */ i = 0; i < this.attrs.length; i += 2) {\n var /** @type {?} */ name_1 = this.attrs[i];\n var /** @type {?} */ value = this.attrs[i + 1];\n res += \"[\" + name_1 + (value ? '=' + value : '') + \"]\";\n }\n }\n this.notSelectors.forEach(function (notSelector) { return res += \":not(\" + notSelector + \")\"; });\n return res;\n };\n return CssSelector;\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 { CssSelector };\nfunction CssSelector_tsickle_Closure_declarations() {\n /** @type {?} */\n CssSelector.prototype.element;\n /** @type {?} */\n CssSelector.prototype.classNames;\n /** @type {?} */\n CssSelector.prototype.attrs;\n /** @type {?} */\n CssSelector.prototype.notSelectors;\n}\n/**\n * Reads a list of CssSelectors and allows to calculate which ones\n * are contained in a given CssSelector.\n */\nvar /**\n * Reads a list of CssSelectors and allows to calculate which ones\n * are contained in a given CssSelector.\n */\nSelectorMatcher = /** @class */ (function () {\n function SelectorMatcher() {\n this._elementMap = new Map();\n this._elementPartialMap = new Map();\n this._classMap = new Map();\n this._classPartialMap = new Map();\n this._attrValueMap = new Map();\n this._attrValuePartialMap = new Map();\n this._listContexts = [];\n }\n /**\n * @param {?} notSelectors\n * @return {?}\n */\n SelectorMatcher.createNotMatcher = /**\n * @param {?} notSelectors\n * @return {?}\n */\n function (notSelectors) {\n var /** @type {?} */ notMatcher = new SelectorMatcher();\n notMatcher.addSelectables(notSelectors, null);\n return notMatcher;\n };\n /**\n * @param {?} cssSelectors\n * @param {?=} callbackCtxt\n * @return {?}\n */\n SelectorMatcher.prototype.addSelectables = /**\n * @param {?} cssSelectors\n * @param {?=} callbackCtxt\n * @return {?}\n */\n function (cssSelectors, callbackCtxt) {\n var /** @type {?} */ listContext = /** @type {?} */ ((null));\n if (cssSelectors.length > 1) {\n listContext = new SelectorListContext(cssSelectors);\n this._listContexts.push(listContext);\n }\n for (var /** @type {?} */ i = 0; i < cssSelectors.length; i++) {\n this._addSelectable(cssSelectors[i], callbackCtxt, listContext);\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 * @param {?} listContext\n * @return {?}\n */\n SelectorMatcher.prototype._addSelectable = /**\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 * @param {?} listContext\n * @return {?}\n */\n function (cssSelector, callbackCtxt, listContext) {\n var /** @type {?} */ matcher = this;\n var /** @type {?} */ element = cssSelector.element;\n var /** @type {?} */ classNames = cssSelector.classNames;\n var /** @type {?} */ attrs = cssSelector.attrs;\n var /** @type {?} */ selectable = new SelectorContext(cssSelector, callbackCtxt, listContext);\n if (element) {\n var /** @type {?} */ isTerminal = attrs.length === 0 && classNames.length === 0;\n if (isTerminal) {\n this._addTerminal(matcher._elementMap, element, selectable);\n }\n else {\n matcher = this._addPartial(matcher._elementPartialMap, element);\n }\n }\n if (classNames) {\n for (var /** @type {?} */ i = 0; i < classNames.length; i++) {\n var /** @type {?} */ isTerminal = attrs.length === 0 && i === classNames.length - 1;\n var /** @type {?} */ className = classNames[i];\n if (isTerminal) {\n this._addTerminal(matcher._classMap, className, selectable);\n }\n else {\n matcher = this._addPartial(matcher._classPartialMap, className);\n }\n }\n }\n if (attrs) {\n for (var /** @type {?} */ i = 0; i < attrs.length; i += 2) {\n var /** @type {?} */ isTerminal = i === attrs.length - 2;\n var /** @type {?} */ name_2 = attrs[i];\n var /** @type {?} */ value = attrs[i + 1];\n if (isTerminal) {\n var /** @type {?} */ terminalMap = matcher._attrValueMap;\n var /** @type {?} */ terminalValuesMap = terminalMap.get(name_2);\n if (!terminalValuesMap) {\n terminalValuesMap = new Map();\n terminalMap.set(name_2, terminalValuesMap);\n }\n this._addTerminal(terminalValuesMap, value, selectable);\n }\n else {\n var /** @type {?} */ partialMap = matcher._attrValuePartialMap;\n var /** @type {?} */ partialValuesMap = partialMap.get(name_2);\n if (!partialValuesMap) {\n partialValuesMap = new Map();\n partialMap.set(name_2, partialValuesMap);\n }\n matcher = this._addPartial(partialValuesMap, value);\n }\n }\n }\n };\n /**\n * @param {?} map\n * @param {?} name\n * @param {?} selectable\n * @return {?}\n */\n SelectorMatcher.prototype._addTerminal = /**\n * @param {?} map\n * @param {?} name\n * @param {?} selectable\n * @return {?}\n */\n function (map, name, selectable) {\n var /** @type {?} */ terminalList = map.get(name);\n if (!terminalList) {\n terminalList = [];\n map.set(name, terminalList);\n }\n terminalList.push(selectable);\n };\n /**\n * @param {?} map\n * @param {?} name\n * @return {?}\n */\n SelectorMatcher.prototype._addPartial = /**\n * @param {?} map\n * @param {?} name\n * @return {?}\n */\n function (map, name) {\n var /** @type {?} */ matcher = map.get(name);\n if (!matcher) {\n matcher = new SelectorMatcher();\n map.set(name, matcher);\n }\n return matcher;\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 /**\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 SelectorMatcher.prototype.match = /**\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 function (cssSelector, matchedCallback) {\n var /** @type {?} */ result = false;\n var /** @type {?} */ element = /** @type {?} */ ((cssSelector.element));\n var /** @type {?} */ classNames = cssSelector.classNames;\n var /** @type {?} */ attrs = cssSelector.attrs;\n for (var /** @type {?} */ i = 0; i < this._listContexts.length; i++) {\n this._listContexts[i].alreadyMatched = false;\n }\n result = this._matchTerminal(this._elementMap, element, cssSelector, matchedCallback) || result;\n result = this._matchPartial(this._elementPartialMap, element, cssSelector, matchedCallback) ||\n result;\n if (classNames) {\n for (var /** @type {?} */ i = 0; i < classNames.length; i++) {\n var /** @type {?} */ 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 if (attrs) {\n for (var /** @type {?} */ i = 0; i < attrs.length; i += 2) {\n var /** @type {?} */ name_3 = attrs[i];\n var /** @type {?} */ value = attrs[i + 1];\n var /** @type {?} */ terminalValuesMap = /** @type {?} */ ((this._attrValueMap.get(name_3)));\n if (value) {\n result =\n this._matchTerminal(terminalValuesMap, '', cssSelector, matchedCallback) || result;\n }\n result =\n this._matchTerminal(terminalValuesMap, value, cssSelector, matchedCallback) || result;\n var /** @type {?} */ partialValuesMap = /** @type {?} */ ((this._attrValuePartialMap.get(name_3)));\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 /** @internal */\n /**\n * \\@internal\n * @param {?} map\n * @param {?} name\n * @param {?} cssSelector\n * @param {?} matchedCallback\n * @return {?}\n */\n SelectorMatcher.prototype._matchTerminal = /**\n * \\@internal\n * @param {?} map\n * @param {?} name\n * @param {?} cssSelector\n * @param {?} matchedCallback\n * @return {?}\n */\n function (map, name, cssSelector, matchedCallback) {\n if (!map || typeof name !== 'string') {\n return false;\n }\n var /** @type {?} */ selectables = map.get(name) || [];\n var /** @type {?} */ starSelectables = /** @type {?} */ ((map.get('*')));\n if (starSelectables) {\n selectables = selectables.concat(starSelectables);\n }\n if (selectables.length === 0) {\n return false;\n }\n var /** @type {?} */ selectable;\n var /** @type {?} */ result = false;\n for (var /** @type {?} */ i = 0; i < selectables.length; i++) {\n selectable = selectables[i];\n result = selectable.finalize(cssSelector, matchedCallback) || result;\n }\n return result;\n };\n /** @internal */\n /**\n * \\@internal\n * @param {?} map\n * @param {?} name\n * @param {?} cssSelector\n * @param {?} matchedCallback\n * @return {?}\n */\n SelectorMatcher.prototype._matchPartial = /**\n * \\@internal\n * @param {?} map\n * @param {?} name\n * @param {?} cssSelector\n * @param {?} matchedCallback\n * @return {?}\n */\n function (map, name, cssSelector, matchedCallback) {\n if (!map || typeof name !== 'string') {\n return false;\n }\n var /** @type {?} */ 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 return SelectorMatcher;\n}());\n/**\n * Reads a list of CssSelectors and allows to calculate which ones\n * are contained in a given CssSelector.\n */\nexport { SelectorMatcher };\nfunction SelectorMatcher_tsickle_Closure_declarations() {\n /** @type {?} */\n SelectorMatcher.prototype._elementMap;\n /** @type {?} */\n SelectorMatcher.prototype._elementPartialMap;\n /** @type {?} */\n SelectorMatcher.prototype._classMap;\n /** @type {?} */\n SelectorMatcher.prototype._classPartialMap;\n /** @type {?} */\n SelectorMatcher.prototype._attrValueMap;\n /** @type {?} */\n SelectorMatcher.prototype._attrValuePartialMap;\n /** @type {?} */\n SelectorMatcher.prototype._listContexts;\n}\nvar SelectorListContext = /** @class */ (function () {\n function SelectorListContext(selectors) {\n this.selectors = selectors;\n this.alreadyMatched = false;\n }\n return SelectorListContext;\n}());\nexport { SelectorListContext };\nfunction SelectorListContext_tsickle_Closure_declarations() {\n /** @type {?} */\n SelectorListContext.prototype.alreadyMatched;\n /** @type {?} */\n SelectorListContext.prototype.selectors;\n}\nvar SelectorContext = /** @class */ (function () {\n function SelectorContext(selector, cbContext, listContext) {\n this.selector = selector;\n this.cbContext = cbContext;\n this.listContext = listContext;\n this.notSelectors = selector.notSelectors;\n }\n /**\n * @param {?} cssSelector\n * @param {?} callback\n * @return {?}\n */\n SelectorContext.prototype.finalize = /**\n * @param {?} cssSelector\n * @param {?} callback\n * @return {?}\n */\n function (cssSelector, callback) {\n var /** @type {?} */ result = true;\n if (this.notSelectors.length > 0 && (!this.listContext || !this.listContext.alreadyMatched)) {\n var /** @type {?} */ 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 return SelectorContext;\n}());\nexport { SelectorContext };\nfunction SelectorContext_tsickle_Closure_declarations() {\n /** @type {?} */\n SelectorContext.prototype.notSelectors;\n /** @type {?} */\n SelectorContext.prototype.selector;\n /** @type {?} */\n SelectorContext.prototype.cbContext;\n /** @type {?} */\n SelectorContext.prototype.listContext;\n}\n//# sourceMappingURL=selector.js.map","/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this 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 tslib_1 from \"tslib\";\nimport { StaticSymbol } from './aot/static_symbol';\nimport { ngfactoryFilePath } from './aot/util';\nimport { assertArrayOfStrings, assertInterpolationSymbols } from './assertions';\nimport * as cpl from './compile_metadata';\nimport { ChangeDetectionStrategy, Type, ViewEncapsulation, createAttribute, createComponent, createHost, createInject, createInjectable, createInjectionToken, createOptional, createSelf, createSkipSelf } from './core';\nimport { Identifiers } from './identifiers';\nimport { getAllLifecycleHooks } from './lifecycle_reflector';\nimport { CssSelector } from './selector';\nimport { SyncAsync, ValueTransformer, isPromise, noUndefined, resolveForwardRef, stringify, syntaxError, visitValue } from './util';\nexport var /** @type {?} */ ERROR_COMPONENT_TYPE = 'ngComponentType';\nvar CompileMetadataResolver = /** @class */ (function () {\n function CompileMetadataResolver(_config, _htmlParser, _ngModuleResolver, _directiveResolver, _pipeResolver, _summaryResolver, _schemaRegistry, _directiveNormalizer, _console, _staticSymbolCache, _reflector, _errorCollector) {\n this._config = _config;\n this._htmlParser = _htmlParser;\n this._ngModuleResolver = _ngModuleResolver;\n this._directiveResolver = _directiveResolver;\n this._pipeResolver = _pipeResolver;\n this._summaryResolver = _summaryResolver;\n this._schemaRegistry = _schemaRegistry;\n this._directiveNormalizer = _directiveNormalizer;\n this._console = _console;\n this._staticSymbolCache = _staticSymbolCache;\n this._reflector = _reflector;\n this._errorCollector = _errorCollector;\n this._nonNormalizedDirectiveCache = new Map();\n this._directiveCache = new Map();\n this._summaryCache = new Map();\n this._pipeCache = new Map();\n this._ngModuleCache = new Map();\n this._ngModuleOfTypes = new Map();\n }\n /**\n * @return {?}\n */\n CompileMetadataResolver.prototype.getReflector = /**\n * @return {?}\n */\n function () { return this._reflector; };\n /**\n * @param {?} type\n * @return {?}\n */\n CompileMetadataResolver.prototype.clearCacheFor = /**\n * @param {?} type\n * @return {?}\n */\n function (type) {\n var /** @type {?} */ dirMeta = this._directiveCache.get(type);\n this._directiveCache.delete(type);\n this._nonNormalizedDirectiveCache.delete(type);\n this._summaryCache.delete(type);\n this._pipeCache.delete(type);\n this._ngModuleOfTypes.delete(type);\n // Clear all of the NgModule as they contain transitive information!\n this._ngModuleCache.clear();\n if (dirMeta) {\n this._directiveNormalizer.clearCacheFor(dirMeta);\n }\n };\n /**\n * @return {?}\n */\n CompileMetadataResolver.prototype.clearCache = /**\n * @return {?}\n */\n function () {\n this._directiveCache.clear();\n this._nonNormalizedDirectiveCache.clear();\n this._summaryCache.clear();\n this._pipeCache.clear();\n this._ngModuleCache.clear();\n this._ngModuleOfTypes.clear();\n this._directiveNormalizer.clearCache();\n };\n /**\n * @param {?} baseType\n * @param {?} name\n * @return {?}\n */\n CompileMetadataResolver.prototype._createProxyClass = /**\n * @param {?} baseType\n * @param {?} name\n * @return {?}\n */\n function (baseType, name) {\n var /** @type {?} */ delegate = null;\n var /** @type {?} */ proxyClass = /** @type {?} */ (function () {\n if (!delegate) {\n throw new Error(\"Illegal state: Class \" + name + \" for type \" + stringify(baseType) + \" is not compiled yet!\");\n }\n return delegate.apply(this, arguments);\n });\n proxyClass.setDelegate = function (d) {\n delegate = d;\n (/** @type {?} */ (proxyClass)).prototype = d.prototype;\n };\n // Make stringify work correctly\n (/** @type {?} */ (proxyClass)).overriddenName = name;\n return proxyClass;\n };\n /**\n * @param {?} dirType\n * @param {?} name\n * @return {?}\n */\n CompileMetadataResolver.prototype.getGeneratedClass = /**\n * @param {?} dirType\n * @param {?} name\n * @return {?}\n */\n function (dirType, name) {\n if (dirType instanceof StaticSymbol) {\n return this._staticSymbolCache.get(ngfactoryFilePath(dirType.filePath), name);\n }\n else {\n return this._createProxyClass(dirType, name);\n }\n };\n /**\n * @param {?} dirType\n * @return {?}\n */\n CompileMetadataResolver.prototype.getComponentViewClass = /**\n * @param {?} dirType\n * @return {?}\n */\n function (dirType) {\n return this.getGeneratedClass(dirType, cpl.viewClassName(dirType, 0));\n };\n /**\n * @param {?} dirType\n * @return {?}\n */\n CompileMetadataResolver.prototype.getHostComponentViewClass = /**\n * @param {?} dirType\n * @return {?}\n */\n function (dirType) {\n return this.getGeneratedClass(dirType, cpl.hostViewClassName(dirType));\n };\n /**\n * @param {?} dirType\n * @return {?}\n */\n CompileMetadataResolver.prototype.getHostComponentType = /**\n * @param {?} dirType\n * @return {?}\n */\n function (dirType) {\n var /** @type {?} */ name = cpl.identifierName({ reference: dirType }) + \"_Host\";\n if (dirType instanceof StaticSymbol) {\n return this._staticSymbolCache.get(dirType.filePath, name);\n }\n else {\n var /** @type {?} */ HostClass = /** @type {?} */ (function HostClass() { });\n HostClass.overriddenName = name;\n return HostClass;\n }\n };\n /**\n * @param {?} dirType\n * @return {?}\n */\n CompileMetadataResolver.prototype.getRendererType = /**\n * @param {?} dirType\n * @return {?}\n */\n function (dirType) {\n if (dirType instanceof StaticSymbol) {\n return this._staticSymbolCache.get(ngfactoryFilePath(dirType.filePath), cpl.rendererTypeName(dirType));\n }\n else {\n // returning an object as proxy,\n // that we fill later during runtime compilation.\n return /** @type {?} */ ({});\n }\n };\n /**\n * @param {?} selector\n * @param {?} dirType\n * @param {?} inputs\n * @param {?} outputs\n * @return {?}\n */\n CompileMetadataResolver.prototype.getComponentFactory = /**\n * @param {?} selector\n * @param {?} dirType\n * @param {?} inputs\n * @param {?} outputs\n * @return {?}\n */\n function (selector, dirType, inputs, outputs) {\n if (dirType instanceof StaticSymbol) {\n return this._staticSymbolCache.get(ngfactoryFilePath(dirType.filePath), cpl.componentFactoryName(dirType));\n }\n else {\n var /** @type {?} */ hostView = this.getHostComponentViewClass(dirType);\n // Note: ngContentSelectors will be filled later once the template is\n // loaded.\n var /** @type {?} */ createComponentFactory = this._reflector.resolveExternalReference(Identifiers.createComponentFactory);\n return createComponentFactory(selector, dirType, /** @type {?} */ (hostView), inputs, outputs, []);\n }\n };\n /**\n * @param {?} factory\n * @param {?} ngContentSelectors\n * @return {?}\n */\n CompileMetadataResolver.prototype.initComponentFactory = /**\n * @param {?} factory\n * @param {?} ngContentSelectors\n * @return {?}\n */\n function (factory, ngContentSelectors) {\n if (!(factory instanceof StaticSymbol)) {\n (_a = (/** @type {?} */ (factory)).ngContentSelectors).push.apply(_a, ngContentSelectors);\n }\n var _a;\n };\n /**\n * @param {?} type\n * @param {?} kind\n * @return {?}\n */\n CompileMetadataResolver.prototype._loadSummary = /**\n * @param {?} type\n * @param {?} kind\n * @return {?}\n */\n function (type, kind) {\n var /** @type {?} */ typeSummary = this._summaryCache.get(type);\n if (!typeSummary) {\n var /** @type {?} */ summary = this._summaryResolver.resolveSummary(type);\n typeSummary = summary ? summary.type : null;\n this._summaryCache.set(type, typeSummary || null);\n }\n return typeSummary && typeSummary.summaryKind === kind ? typeSummary : null;\n };\n /**\n * @param {?} compMeta\n * @param {?=} hostViewType\n * @return {?}\n */\n CompileMetadataResolver.prototype.getHostComponentMetadata = /**\n * @param {?} compMeta\n * @param {?=} hostViewType\n * @return {?}\n */\n function (compMeta, hostViewType) {\n var /** @type {?} */ hostType = this.getHostComponentType(compMeta.type.reference);\n if (!hostViewType) {\n hostViewType = this.getHostComponentViewClass(hostType);\n }\n // Note: ! is ok here as this method should only be called with normalized directive\n // metadata, which always fills in the selector.\n var /** @type {?} */ template = CssSelector.parse(/** @type {?} */ ((compMeta.selector)))[0].getMatchingElementTemplate();\n var /** @type {?} */ templateUrl = '';\n var /** @type {?} */ htmlAst = this._htmlParser.parse(template, templateUrl);\n return cpl.CompileDirectiveMetadata.create({\n isHost: true,\n type: { reference: hostType, diDeps: [], lifecycleHooks: [] },\n template: new cpl.CompileTemplateMetadata({\n encapsulation: ViewEncapsulation.None,\n template: template,\n templateUrl: templateUrl,\n htmlAst: htmlAst,\n styles: [],\n styleUrls: [],\n ngContentSelectors: [],\n animations: [],\n isInline: true,\n externalStylesheets: [],\n interpolation: null,\n preserveWhitespaces: false,\n }),\n exportAs: null,\n changeDetection: ChangeDetectionStrategy.Default,\n inputs: [],\n outputs: [],\n host: {},\n isComponent: true,\n selector: '*',\n providers: [],\n viewProviders: [],\n queries: [],\n guards: {},\n viewQueries: [],\n componentViewType: hostViewType,\n rendererType: /** @type {?} */ ({ id: '__Host__', encapsulation: ViewEncapsulation.None, styles: [], data: {} }),\n entryComponents: [],\n componentFactory: null\n });\n };\n /**\n * @param {?} ngModuleType\n * @param {?} directiveType\n * @param {?} isSync\n * @return {?}\n */\n CompileMetadataResolver.prototype.loadDirectiveMetadata = /**\n * @param {?} ngModuleType\n * @param {?} directiveType\n * @param {?} isSync\n * @return {?}\n */\n function (ngModuleType, directiveType, isSync) {\n var _this = this;\n if (this._directiveCache.has(directiveType)) {\n return null;\n }\n directiveType = resolveForwardRef(directiveType);\n var _a = /** @type {?} */ ((this.getNonNormalizedDirectiveMetadata(directiveType))), annotation = _a.annotation, metadata = _a.metadata;\n var /** @type {?} */ createDirectiveMetadata = function (templateMetadata) {\n var /** @type {?} */ normalizedDirMeta = new cpl.CompileDirectiveMetadata({\n isHost: false,\n type: metadata.type,\n isComponent: metadata.isComponent,\n selector: metadata.selector,\n exportAs: metadata.exportAs,\n changeDetection: metadata.changeDetection,\n inputs: metadata.inputs,\n outputs: metadata.outputs,\n hostListeners: metadata.hostListeners,\n hostProperties: metadata.hostProperties,\n hostAttributes: metadata.hostAttributes,\n providers: metadata.providers,\n viewProviders: metadata.viewProviders,\n queries: metadata.queries,\n guards: metadata.guards,\n viewQueries: metadata.viewQueries,\n entryComponents: metadata.entryComponents,\n componentViewType: metadata.componentViewType,\n rendererType: metadata.rendererType,\n componentFactory: metadata.componentFactory,\n template: templateMetadata\n });\n if (templateMetadata) {\n _this.initComponentFactory(/** @type {?} */ ((metadata.componentFactory)), templateMetadata.ngContentSelectors);\n }\n _this._directiveCache.set(directiveType, normalizedDirMeta);\n _this._summaryCache.set(directiveType, normalizedDirMeta.toSummary());\n return null;\n };\n if (metadata.isComponent) {\n var /** @type {?} */ template = /** @type {?} */ ((metadata.template));\n var /** @type {?} */ templateMeta = this._directiveNormalizer.normalizeTemplate({\n ngModuleType: ngModuleType,\n componentType: directiveType,\n moduleUrl: this._reflector.componentModuleUrl(directiveType, annotation),\n encapsulation: template.encapsulation,\n template: template.template,\n templateUrl: template.templateUrl,\n styles: template.styles,\n styleUrls: template.styleUrls,\n animations: template.animations,\n interpolation: template.interpolation,\n preserveWhitespaces: template.preserveWhitespaces\n });\n if (isPromise(templateMeta) && isSync) {\n this._reportError(componentStillLoadingError(directiveType), directiveType);\n return null;\n }\n return SyncAsync.then(templateMeta, createDirectiveMetadata);\n }\n else {\n // directive\n createDirectiveMetadata(null);\n return null;\n }\n };\n /**\n * @param {?} directiveType\n * @return {?}\n */\n CompileMetadataResolver.prototype.getNonNormalizedDirectiveMetadata = /**\n * @param {?} directiveType\n * @return {?}\n */\n function (directiveType) {\n var _this = this;\n directiveType = resolveForwardRef(directiveType);\n if (!directiveType) {\n return null;\n }\n var /** @type {?} */ cacheEntry = this._nonNormalizedDirectiveCache.get(directiveType);\n if (cacheEntry) {\n return cacheEntry;\n }\n var /** @type {?} */ dirMeta = this._directiveResolver.resolve(directiveType, false);\n if (!dirMeta) {\n return null;\n }\n var /** @type {?} */ nonNormalizedTemplateMetadata = /** @type {?} */ ((undefined));\n if (createComponent.isTypeOf(dirMeta)) {\n // component\n var /** @type {?} */ compMeta = /** @type {?} */ (dirMeta);\n assertArrayOfStrings('styles', compMeta.styles);\n assertArrayOfStrings('styleUrls', compMeta.styleUrls);\n assertInterpolationSymbols('interpolation', compMeta.interpolation);\n var /** @type {?} */ animations = compMeta.animations;\n nonNormalizedTemplateMetadata = new cpl.CompileTemplateMetadata({\n encapsulation: noUndefined(compMeta.encapsulation),\n template: noUndefined(compMeta.template),\n templateUrl: noUndefined(compMeta.templateUrl),\n htmlAst: null,\n styles: compMeta.styles || [],\n styleUrls: compMeta.styleUrls || [],\n animations: animations || [],\n interpolation: noUndefined(compMeta.interpolation),\n isInline: !!compMeta.template,\n externalStylesheets: [],\n ngContentSelectors: [],\n preserveWhitespaces: noUndefined(dirMeta.preserveWhitespaces),\n });\n }\n var /** @type {?} */ changeDetectionStrategy = /** @type {?} */ ((null));\n var /** @type {?} */ viewProviders = [];\n var /** @type {?} */ entryComponentMetadata = [];\n var /** @type {?} */ selector = dirMeta.selector;\n if (createComponent.isTypeOf(dirMeta)) {\n // Component\n var /** @type {?} */ compMeta = /** @type {?} */ (dirMeta);\n changeDetectionStrategy = /** @type {?} */ ((compMeta.changeDetection));\n if (compMeta.viewProviders) {\n viewProviders = this._getProvidersMetadata(compMeta.viewProviders, entryComponentMetadata, \"viewProviders for \\\"\" + stringifyType(directiveType) + \"\\\"\", [], directiveType);\n }\n if (compMeta.entryComponents) {\n entryComponentMetadata = flattenAndDedupeArray(compMeta.entryComponents)\n .map(function (type) { return ((_this._getEntryComponentMetadata(type))); })\n .concat(entryComponentMetadata);\n }\n if (!selector) {\n selector = this._schemaRegistry.getDefaultComponentElementName();\n }\n }\n else {\n // Directive\n if (!selector) {\n this._reportError(syntaxError(\"Directive \" + stringifyType(directiveType) + \" has no selector, please add it!\"), directiveType);\n selector = 'error';\n }\n }\n var /** @type {?} */ providers = [];\n if (dirMeta.providers != null) {\n providers = this._getProvidersMetadata(dirMeta.providers, entryComponentMetadata, \"providers for \\\"\" + stringifyType(directiveType) + \"\\\"\", [], directiveType);\n }\n var /** @type {?} */ queries = [];\n var /** @type {?} */ viewQueries = [];\n if (dirMeta.queries != null) {\n queries = this._getQueriesMetadata(dirMeta.queries, false, directiveType);\n viewQueries = this._getQueriesMetadata(dirMeta.queries, true, directiveType);\n }\n var /** @type {?} */ metadata = cpl.CompileDirectiveMetadata.create({\n isHost: false,\n selector: selector,\n exportAs: noUndefined(dirMeta.exportAs),\n isComponent: !!nonNormalizedTemplateMetadata,\n type: this._getTypeMetadata(directiveType),\n template: nonNormalizedTemplateMetadata,\n changeDetection: changeDetectionStrategy,\n inputs: dirMeta.inputs || [],\n outputs: dirMeta.outputs || [],\n host: dirMeta.host || {},\n providers: providers || [],\n viewProviders: viewProviders || [],\n queries: queries || [],\n guards: dirMeta.guards || {},\n viewQueries: viewQueries || [],\n entryComponents: entryComponentMetadata,\n componentViewType: nonNormalizedTemplateMetadata ? this.getComponentViewClass(directiveType) :\n null,\n rendererType: nonNormalizedTemplateMetadata ? this.getRendererType(directiveType) : null,\n componentFactory: null\n });\n if (nonNormalizedTemplateMetadata) {\n metadata.componentFactory =\n this.getComponentFactory(selector, directiveType, metadata.inputs, metadata.outputs);\n }\n cacheEntry = { metadata: metadata, annotation: dirMeta };\n this._nonNormalizedDirectiveCache.set(directiveType, cacheEntry);\n return cacheEntry;\n };\n /**\n * Gets the metadata for the given directive.\n * This assumes `loadNgModuleDirectiveAndPipeMetadata` has been called first.\n */\n /**\n * Gets the metadata for the given directive.\n * This assumes `loadNgModuleDirectiveAndPipeMetadata` has been called first.\n * @param {?} directiveType\n * @return {?}\n */\n CompileMetadataResolver.prototype.getDirectiveMetadata = /**\n * Gets the metadata for the given directive.\n * This assumes `loadNgModuleDirectiveAndPipeMetadata` has been called first.\n * @param {?} directiveType\n * @return {?}\n */\n function (directiveType) {\n var /** @type {?} */ dirMeta = /** @type {?} */ ((this._directiveCache.get(directiveType)));\n if (!dirMeta) {\n this._reportError(syntaxError(\"Illegal state: getDirectiveMetadata can only be called after loadNgModuleDirectiveAndPipeMetadata for a module that declares it. Directive \" + stringifyType(directiveType) + \".\"), directiveType);\n }\n return dirMeta;\n };\n /**\n * @param {?} dirType\n * @return {?}\n */\n CompileMetadataResolver.prototype.getDirectiveSummary = /**\n * @param {?} dirType\n * @return {?}\n */\n function (dirType) {\n var /** @type {?} */ dirSummary = /** @type {?} */ (this._loadSummary(dirType, cpl.CompileSummaryKind.Directive));\n if (!dirSummary) {\n this._reportError(syntaxError(\"Illegal state: Could not load the summary for directive \" + stringifyType(dirType) + \".\"), dirType);\n }\n return dirSummary;\n };\n /**\n * @param {?} type\n * @return {?}\n */\n CompileMetadataResolver.prototype.isDirective = /**\n * @param {?} type\n * @return {?}\n */\n function (type) {\n return !!this._loadSummary(type, cpl.CompileSummaryKind.Directive) ||\n this._directiveResolver.isDirective(type);\n };\n /**\n * @param {?} type\n * @return {?}\n */\n CompileMetadataResolver.prototype.isPipe = /**\n * @param {?} type\n * @return {?}\n */\n function (type) {\n return !!this._loadSummary(type, cpl.CompileSummaryKind.Pipe) ||\n this._pipeResolver.isPipe(type);\n };\n /**\n * @param {?} type\n * @return {?}\n */\n CompileMetadataResolver.prototype.isNgModule = /**\n * @param {?} type\n * @return {?}\n */\n function (type) {\n return !!this._loadSummary(type, cpl.CompileSummaryKind.NgModule) ||\n this._ngModuleResolver.isNgModule(type);\n };\n /**\n * @param {?} moduleType\n * @param {?=} alreadyCollecting\n * @return {?}\n */\n CompileMetadataResolver.prototype.getNgModuleSummary = /**\n * @param {?} moduleType\n * @param {?=} alreadyCollecting\n * @return {?}\n */\n function (moduleType, alreadyCollecting) {\n if (alreadyCollecting === void 0) { alreadyCollecting = null; }\n var /** @type {?} */ moduleSummary = /** @type {?} */ (this._loadSummary(moduleType, cpl.CompileSummaryKind.NgModule));\n if (!moduleSummary) {\n var /** @type {?} */ moduleMeta = this.getNgModuleMetadata(moduleType, false, alreadyCollecting);\n moduleSummary = moduleMeta ? moduleMeta.toSummary() : null;\n if (moduleSummary) {\n this._summaryCache.set(moduleType, moduleSummary);\n }\n }\n return moduleSummary;\n };\n /**\n * Loads the declared directives and pipes of an NgModule.\n */\n /**\n * Loads the declared directives and pipes of an NgModule.\n * @param {?} moduleType\n * @param {?} isSync\n * @param {?=} throwIfNotFound\n * @return {?}\n */\n CompileMetadataResolver.prototype.loadNgModuleDirectiveAndPipeMetadata = /**\n * Loads the declared directives and pipes of an NgModule.\n * @param {?} moduleType\n * @param {?} isSync\n * @param {?=} throwIfNotFound\n * @return {?}\n */\n function (moduleType, isSync, throwIfNotFound) {\n var _this = this;\n if (throwIfNotFound === void 0) { throwIfNotFound = true; }\n var /** @type {?} */ ngModule = this.getNgModuleMetadata(moduleType, throwIfNotFound);\n var /** @type {?} */ loading = [];\n if (ngModule) {\n ngModule.declaredDirectives.forEach(function (id) {\n var /** @type {?} */ promise = _this.loadDirectiveMetadata(moduleType, id.reference, isSync);\n if (promise) {\n loading.push(promise);\n }\n });\n ngModule.declaredPipes.forEach(function (id) { return _this._loadPipeMetadata(id.reference); });\n }\n return Promise.all(loading);\n };\n /**\n * @param {?} moduleType\n * @param {?=} throwIfNotFound\n * @param {?=} alreadyCollecting\n * @return {?}\n */\n CompileMetadataResolver.prototype.getNgModuleMetadata = /**\n * @param {?} moduleType\n * @param {?=} throwIfNotFound\n * @param {?=} alreadyCollecting\n * @return {?}\n */\n function (moduleType, throwIfNotFound, alreadyCollecting) {\n var _this = this;\n if (throwIfNotFound === void 0) { throwIfNotFound = true; }\n if (alreadyCollecting === void 0) { alreadyCollecting = null; }\n moduleType = resolveForwardRef(moduleType);\n var /** @type {?} */ compileMeta = this._ngModuleCache.get(moduleType);\n if (compileMeta) {\n return compileMeta;\n }\n var /** @type {?} */ meta = this._ngModuleResolver.resolve(moduleType, throwIfNotFound);\n if (!meta) {\n return null;\n }\n var /** @type {?} */ declaredDirectives = [];\n var /** @type {?} */ exportedNonModuleIdentifiers = [];\n var /** @type {?} */ declaredPipes = [];\n var /** @type {?} */ importedModules = [];\n var /** @type {?} */ exportedModules = [];\n var /** @type {?} */ providers = [];\n var /** @type {?} */ entryComponents = [];\n var /** @type {?} */ bootstrapComponents = [];\n var /** @type {?} */ schemas = [];\n if (meta.imports) {\n flattenAndDedupeArray(meta.imports).forEach(function (importedType) {\n var /** @type {?} */ importedModuleType = /** @type {?} */ ((undefined));\n if (isValidType(importedType)) {\n importedModuleType = importedType;\n }\n else if (importedType && importedType.ngModule) {\n var /** @type {?} */ moduleWithProviders = importedType;\n importedModuleType = moduleWithProviders.ngModule;\n if (moduleWithProviders.providers) {\n providers.push.apply(providers, _this._getProvidersMetadata(moduleWithProviders.providers, entryComponents, \"provider for the NgModule '\" + stringifyType(importedModuleType) + \"'\", [], importedType));\n }\n }\n if (importedModuleType) {\n if (_this._checkSelfImport(moduleType, importedModuleType))\n return;\n if (!alreadyCollecting)\n alreadyCollecting = new Set();\n if (alreadyCollecting.has(importedModuleType)) {\n _this._reportError(syntaxError(_this._getTypeDescriptor(importedModuleType) + \" '\" + stringifyType(importedType) + \"' is imported recursively by the module '\" + stringifyType(moduleType) + \"'.\"), moduleType);\n return;\n }\n alreadyCollecting.add(importedModuleType);\n var /** @type {?} */ importedModuleSummary = _this.getNgModuleSummary(importedModuleType, alreadyCollecting);\n alreadyCollecting.delete(importedModuleType);\n if (!importedModuleSummary) {\n _this._reportError(syntaxError(\"Unexpected \" + _this._getTypeDescriptor(importedType) + \" '\" + stringifyType(importedType) + \"' imported by the module '\" + stringifyType(moduleType) + \"'. Please add a @NgModule annotation.\"), moduleType);\n return;\n }\n importedModules.push(importedModuleSummary);\n }\n else {\n _this._reportError(syntaxError(\"Unexpected value '\" + stringifyType(importedType) + \"' imported by the module '\" + stringifyType(moduleType) + \"'\"), moduleType);\n return;\n }\n });\n }\n if (meta.exports) {\n flattenAndDedupeArray(meta.exports).forEach(function (exportedType) {\n if (!isValidType(exportedType)) {\n _this._reportError(syntaxError(\"Unexpected value '\" + stringifyType(exportedType) + \"' exported by the module '\" + stringifyType(moduleType) + \"'\"), moduleType);\n return;\n }\n if (!alreadyCollecting)\n alreadyCollecting = new Set();\n if (alreadyCollecting.has(exportedType)) {\n _this._reportError(syntaxError(_this._getTypeDescriptor(exportedType) + \" '\" + stringify(exportedType) + \"' is exported recursively by the module '\" + stringifyType(moduleType) + \"'\"), moduleType);\n return;\n }\n alreadyCollecting.add(exportedType);\n var /** @type {?} */ exportedModuleSummary = _this.getNgModuleSummary(exportedType, alreadyCollecting);\n alreadyCollecting.delete(exportedType);\n if (exportedModuleSummary) {\n exportedModules.push(exportedModuleSummary);\n }\n else {\n exportedNonModuleIdentifiers.push(_this._getIdentifierMetadata(exportedType));\n }\n });\n }\n // Note: This will be modified later, so we rely on\n // getting a new instance every time!\n var /** @type {?} */ transitiveModule = this._getTransitiveNgModuleMetadata(importedModules, exportedModules);\n if (meta.declarations) {\n flattenAndDedupeArray(meta.declarations).forEach(function (declaredType) {\n if (!isValidType(declaredType)) {\n _this._reportError(syntaxError(\"Unexpected value '\" + stringifyType(declaredType) + \"' declared by the module '\" + stringifyType(moduleType) + \"'\"), moduleType);\n return;\n }\n var /** @type {?} */ declaredIdentifier = _this._getIdentifierMetadata(declaredType);\n if (_this.isDirective(declaredType)) {\n transitiveModule.addDirective(declaredIdentifier);\n declaredDirectives.push(declaredIdentifier);\n _this._addTypeToModule(declaredType, moduleType);\n }\n else if (_this.isPipe(declaredType)) {\n transitiveModule.addPipe(declaredIdentifier);\n transitiveModule.pipes.push(declaredIdentifier);\n declaredPipes.push(declaredIdentifier);\n _this._addTypeToModule(declaredType, moduleType);\n }\n else {\n _this._reportError(syntaxError(\"Unexpected \" + _this._getTypeDescriptor(declaredType) + \" '\" + stringifyType(declaredType) + \"' declared by the module '\" + stringifyType(moduleType) + \"'. Please add a @Pipe/@Directive/@Component annotation.\"), moduleType);\n return;\n }\n });\n }\n var /** @type {?} */ exportedDirectives = [];\n var /** @type {?} */ exportedPipes = [];\n exportedNonModuleIdentifiers.forEach(function (exportedId) {\n if (transitiveModule.directivesSet.has(exportedId.reference)) {\n exportedDirectives.push(exportedId);\n transitiveModule.addExportedDirective(exportedId);\n }\n else if (transitiveModule.pipesSet.has(exportedId.reference)) {\n exportedPipes.push(exportedId);\n transitiveModule.addExportedPipe(exportedId);\n }\n else {\n _this._reportError(syntaxError(\"Can't export \" + _this._getTypeDescriptor(exportedId.reference) + \" \" + stringifyType(exportedId.reference) + \" from \" + stringifyType(moduleType) + \" as it was neither declared nor imported!\"), moduleType);\n return;\n }\n });\n // The providers of the module have to go last\n // so that they overwrite any other provider we already added.\n if (meta.providers) {\n providers.push.apply(providers, this._getProvidersMetadata(meta.providers, entryComponents, \"provider for the NgModule '\" + stringifyType(moduleType) + \"'\", [], moduleType));\n }\n if (meta.entryComponents) {\n entryComponents.push.apply(entryComponents, flattenAndDedupeArray(meta.entryComponents)\n .map(function (type) { return ((_this._getEntryComponentMetadata(type))); }));\n }\n if (meta.bootstrap) {\n flattenAndDedupeArray(meta.bootstrap).forEach(function (type) {\n if (!isValidType(type)) {\n _this._reportError(syntaxError(\"Unexpected value '\" + stringifyType(type) + \"' used in the bootstrap property of module '\" + stringifyType(moduleType) + \"'\"), moduleType);\n return;\n }\n bootstrapComponents.push(_this._getIdentifierMetadata(type));\n });\n }\n entryComponents.push.apply(entryComponents, bootstrapComponents.map(function (type) { return ((_this._getEntryComponentMetadata(type.reference))); }));\n if (meta.schemas) {\n schemas.push.apply(schemas, flattenAndDedupeArray(meta.schemas));\n }\n compileMeta = new cpl.CompileNgModuleMetadata({\n type: this._getTypeMetadata(moduleType),\n providers: providers,\n entryComponents: entryComponents,\n bootstrapComponents: bootstrapComponents,\n schemas: schemas,\n declaredDirectives: declaredDirectives,\n exportedDirectives: exportedDirectives,\n declaredPipes: declaredPipes,\n exportedPipes: exportedPipes,\n importedModules: importedModules,\n exportedModules: exportedModules,\n transitiveModule: transitiveModule,\n id: meta.id || null,\n });\n entryComponents.forEach(function (id) { return transitiveModule.addEntryComponent(id); });\n providers.forEach(function (provider) { return transitiveModule.addProvider(provider, /** @type {?} */ ((compileMeta)).type); });\n transitiveModule.addModule(compileMeta.type);\n this._ngModuleCache.set(moduleType, compileMeta);\n return compileMeta;\n };\n /**\n * @param {?} moduleType\n * @param {?} importedModuleType\n * @return {?}\n */\n CompileMetadataResolver.prototype._checkSelfImport = /**\n * @param {?} moduleType\n * @param {?} importedModuleType\n * @return {?}\n */\n function (moduleType, importedModuleType) {\n if (moduleType === importedModuleType) {\n this._reportError(syntaxError(\"'\" + stringifyType(moduleType) + \"' module can't import itself\"), moduleType);\n return true;\n }\n return false;\n };\n /**\n * @param {?} type\n * @return {?}\n */\n CompileMetadataResolver.prototype._getTypeDescriptor = /**\n * @param {?} type\n * @return {?}\n */\n function (type) {\n if (isValidType(type)) {\n if (this.isDirective(type)) {\n return 'directive';\n }\n if (this.isPipe(type)) {\n return 'pipe';\n }\n if (this.isNgModule(type)) {\n return 'module';\n }\n }\n if ((/** @type {?} */ (type)).provide) {\n return 'provider';\n }\n return 'value';\n };\n /**\n * @param {?} type\n * @param {?} moduleType\n * @return {?}\n */\n CompileMetadataResolver.prototype._addTypeToModule = /**\n * @param {?} type\n * @param {?} moduleType\n * @return {?}\n */\n function (type, moduleType) {\n var /** @type {?} */ oldModule = this._ngModuleOfTypes.get(type);\n if (oldModule && oldModule !== moduleType) {\n this._reportError(syntaxError(\"Type \" + stringifyType(type) + \" is part of the declarations of 2 modules: \" + stringifyType(oldModule) + \" and \" + stringifyType(moduleType) + \"! \" +\n (\"Please consider moving \" + stringifyType(type) + \" to a higher module that imports \" + stringifyType(oldModule) + \" and \" + stringifyType(moduleType) + \". \") +\n (\"You can also create a new NgModule that exports and includes \" + stringifyType(type) + \" then import that NgModule in \" + stringifyType(oldModule) + \" and \" + stringifyType(moduleType) + \".\")), moduleType);\n return;\n }\n this._ngModuleOfTypes.set(type, moduleType);\n };\n /**\n * @param {?} importedModules\n * @param {?} exportedModules\n * @return {?}\n */\n CompileMetadataResolver.prototype._getTransitiveNgModuleMetadata = /**\n * @param {?} importedModules\n * @param {?} exportedModules\n * @return {?}\n */\n function (importedModules, exportedModules) {\n // collect `providers` / `entryComponents` from all imported and all exported modules\n var /** @type {?} */ result = new cpl.TransitiveCompileNgModuleMetadata();\n var /** @type {?} */ modulesByToken = new Map();\n importedModules.concat(exportedModules).forEach(function (modSummary) {\n modSummary.modules.forEach(function (mod) { return result.addModule(mod); });\n modSummary.entryComponents.forEach(function (comp) { return result.addEntryComponent(comp); });\n var /** @type {?} */ addedTokens = new Set();\n modSummary.providers.forEach(function (entry) {\n var /** @type {?} */ tokenRef = cpl.tokenReference(entry.provider.token);\n var /** @type {?} */ prevModules = modulesByToken.get(tokenRef);\n if (!prevModules) {\n prevModules = new Set();\n modulesByToken.set(tokenRef, prevModules);\n }\n var /** @type {?} */ moduleRef = entry.module.reference;\n // Note: the providers of one module may still contain multiple providers\n // per token (e.g. for multi providers), and we need to preserve these.\n if (addedTokens.has(tokenRef) || !prevModules.has(moduleRef)) {\n prevModules.add(moduleRef);\n addedTokens.add(tokenRef);\n result.addProvider(entry.provider, entry.module);\n }\n });\n });\n exportedModules.forEach(function (modSummary) {\n modSummary.exportedDirectives.forEach(function (id) { return result.addExportedDirective(id); });\n modSummary.exportedPipes.forEach(function (id) { return result.addExportedPipe(id); });\n });\n importedModules.forEach(function (modSummary) {\n modSummary.exportedDirectives.forEach(function (id) { return result.addDirective(id); });\n modSummary.exportedPipes.forEach(function (id) { return result.addPipe(id); });\n });\n return result;\n };\n /**\n * @param {?} type\n * @return {?}\n */\n CompileMetadataResolver.prototype._getIdentifierMetadata = /**\n * @param {?} type\n * @return {?}\n */\n function (type) {\n type = resolveForwardRef(type);\n return { reference: type };\n };\n /**\n * @param {?} type\n * @return {?}\n */\n CompileMetadataResolver.prototype.isInjectable = /**\n * @param {?} type\n * @return {?}\n */\n function (type) {\n var /** @type {?} */ annotations = this._reflector.annotations(type);\n return annotations.some(function (ann) { return createInjectable.isTypeOf(ann); });\n };\n /**\n * @param {?} type\n * @return {?}\n */\n CompileMetadataResolver.prototype.getInjectableSummary = /**\n * @param {?} type\n * @return {?}\n */\n function (type) {\n return {\n summaryKind: cpl.CompileSummaryKind.Injectable,\n type: this._getTypeMetadata(type, null, false)\n };\n };\n /**\n * @param {?} type\n * @param {?=} dependencies\n * @return {?}\n */\n CompileMetadataResolver.prototype._getInjectableMetadata = /**\n * @param {?} type\n * @param {?=} dependencies\n * @return {?}\n */\n function (type, dependencies) {\n if (dependencies === void 0) { dependencies = null; }\n var /** @type {?} */ typeSummary = this._loadSummary(type, cpl.CompileSummaryKind.Injectable);\n if (typeSummary) {\n return typeSummary.type;\n }\n return this._getTypeMetadata(type, dependencies);\n };\n /**\n * @param {?} type\n * @param {?=} dependencies\n * @param {?=} throwOnUnknownDeps\n * @return {?}\n */\n CompileMetadataResolver.prototype._getTypeMetadata = /**\n * @param {?} type\n * @param {?=} dependencies\n * @param {?=} throwOnUnknownDeps\n * @return {?}\n */\n function (type, dependencies, throwOnUnknownDeps) {\n if (dependencies === void 0) { dependencies = null; }\n if (throwOnUnknownDeps === void 0) { throwOnUnknownDeps = true; }\n var /** @type {?} */ identifier = this._getIdentifierMetadata(type);\n return {\n reference: identifier.reference,\n diDeps: this._getDependenciesMetadata(identifier.reference, dependencies, throwOnUnknownDeps),\n lifecycleHooks: getAllLifecycleHooks(this._reflector, identifier.reference),\n };\n };\n /**\n * @param {?} factory\n * @param {?=} dependencies\n * @return {?}\n */\n CompileMetadataResolver.prototype._getFactoryMetadata = /**\n * @param {?} factory\n * @param {?=} dependencies\n * @return {?}\n */\n function (factory, dependencies) {\n if (dependencies === void 0) { dependencies = null; }\n factory = resolveForwardRef(factory);\n return { reference: factory, diDeps: this._getDependenciesMetadata(factory, dependencies) };\n };\n /**\n * Gets the metadata for the given pipe.\n * This assumes `loadNgModuleDirectiveAndPipeMetadata` has been called first.\n */\n /**\n * Gets the metadata for the given pipe.\n * This assumes `loadNgModuleDirectiveAndPipeMetadata` has been called first.\n * @param {?} pipeType\n * @return {?}\n */\n CompileMetadataResolver.prototype.getPipeMetadata = /**\n * Gets the metadata for the given pipe.\n * This assumes `loadNgModuleDirectiveAndPipeMetadata` has been called first.\n * @param {?} pipeType\n * @return {?}\n */\n function (pipeType) {\n var /** @type {?} */ pipeMeta = this._pipeCache.get(pipeType);\n if (!pipeMeta) {\n this._reportError(syntaxError(\"Illegal state: getPipeMetadata can only be called after loadNgModuleDirectiveAndPipeMetadata for a module that declares it. Pipe \" + stringifyType(pipeType) + \".\"), pipeType);\n }\n return pipeMeta || null;\n };\n /**\n * @param {?} pipeType\n * @return {?}\n */\n CompileMetadataResolver.prototype.getPipeSummary = /**\n * @param {?} pipeType\n * @return {?}\n */\n function (pipeType) {\n var /** @type {?} */ pipeSummary = /** @type {?} */ (this._loadSummary(pipeType, cpl.CompileSummaryKind.Pipe));\n if (!pipeSummary) {\n this._reportError(syntaxError(\"Illegal state: Could not load the summary for pipe \" + stringifyType(pipeType) + \".\"), pipeType);\n }\n return pipeSummary;\n };\n /**\n * @param {?} pipeType\n * @return {?}\n */\n CompileMetadataResolver.prototype.getOrLoadPipeMetadata = /**\n * @param {?} pipeType\n * @return {?}\n */\n function (pipeType) {\n var /** @type {?} */ pipeMeta = this._pipeCache.get(pipeType);\n if (!pipeMeta) {\n pipeMeta = this._loadPipeMetadata(pipeType);\n }\n return pipeMeta;\n };\n /**\n * @param {?} pipeType\n * @return {?}\n */\n CompileMetadataResolver.prototype._loadPipeMetadata = /**\n * @param {?} pipeType\n * @return {?}\n */\n function (pipeType) {\n pipeType = resolveForwardRef(pipeType);\n var /** @type {?} */ pipeAnnotation = /** @type {?} */ ((this._pipeResolver.resolve(pipeType)));\n var /** @type {?} */ pipeMeta = new cpl.CompilePipeMetadata({\n type: this._getTypeMetadata(pipeType),\n name: pipeAnnotation.name,\n pure: !!pipeAnnotation.pure\n });\n this._pipeCache.set(pipeType, pipeMeta);\n this._summaryCache.set(pipeType, pipeMeta.toSummary());\n return pipeMeta;\n };\n /**\n * @param {?} typeOrFunc\n * @param {?} dependencies\n * @param {?=} throwOnUnknownDeps\n * @return {?}\n */\n CompileMetadataResolver.prototype._getDependenciesMetadata = /**\n * @param {?} typeOrFunc\n * @param {?} dependencies\n * @param {?=} throwOnUnknownDeps\n * @return {?}\n */\n function (typeOrFunc, dependencies, throwOnUnknownDeps) {\n var _this = this;\n if (throwOnUnknownDeps === void 0) { throwOnUnknownDeps = true; }\n var /** @type {?} */ hasUnknownDeps = false;\n var /** @type {?} */ params = dependencies || this._reflector.parameters(typeOrFunc) || [];\n var /** @type {?} */ dependenciesMetadata = params.map(function (param) {\n var /** @type {?} */ isAttribute = false;\n var /** @type {?} */ isHost = false;\n var /** @type {?} */ isSelf = false;\n var /** @type {?} */ isSkipSelf = false;\n var /** @type {?} */ isOptional = false;\n var /** @type {?} */ token = null;\n if (Array.isArray(param)) {\n param.forEach(function (paramEntry) {\n if (createHost.isTypeOf(paramEntry)) {\n isHost = true;\n }\n else if (createSelf.isTypeOf(paramEntry)) {\n isSelf = true;\n }\n else if (createSkipSelf.isTypeOf(paramEntry)) {\n isSkipSelf = true;\n }\n else if (createOptional.isTypeOf(paramEntry)) {\n isOptional = true;\n }\n else if (createAttribute.isTypeOf(paramEntry)) {\n isAttribute = true;\n token = paramEntry.attributeName;\n }\n else if (createInject.isTypeOf(paramEntry)) {\n token = paramEntry.token;\n }\n else if (createInjectionToken.isTypeOf(paramEntry) || paramEntry instanceof StaticSymbol) {\n token = paramEntry;\n }\n else if (isValidType(paramEntry) && token == null) {\n token = paramEntry;\n }\n });\n }\n else {\n token = param;\n }\n if (token == null) {\n hasUnknownDeps = true;\n return /** @type {?} */ ((null));\n }\n return {\n isAttribute: isAttribute,\n isHost: isHost,\n isSelf: isSelf,\n isSkipSelf: isSkipSelf,\n isOptional: isOptional,\n token: _this._getTokenMetadata(token)\n };\n });\n if (hasUnknownDeps) {\n var /** @type {?} */ depsTokens = dependenciesMetadata.map(function (dep) { return dep ? stringifyType(dep.token) : '?'; }).join(', ');\n var /** @type {?} */ message = \"Can't resolve all parameters for \" + stringifyType(typeOrFunc) + \": (\" + depsTokens + \").\";\n if (throwOnUnknownDeps || this._config.strictInjectionParameters) {\n this._reportError(syntaxError(message), typeOrFunc);\n }\n else {\n this._console.warn(\"Warning: \" + message + \" This will become an error in Angular v6.x\");\n }\n }\n return dependenciesMetadata;\n };\n /**\n * @param {?} token\n * @return {?}\n */\n CompileMetadataResolver.prototype._getTokenMetadata = /**\n * @param {?} token\n * @return {?}\n */\n function (token) {\n token = resolveForwardRef(token);\n var /** @type {?} */ compileToken;\n if (typeof token === 'string') {\n compileToken = { value: token };\n }\n else {\n compileToken = { identifier: { reference: token } };\n }\n return compileToken;\n };\n /**\n * @param {?} providers\n * @param {?} targetEntryComponents\n * @param {?=} debugInfo\n * @param {?=} compileProviders\n * @param {?=} type\n * @return {?}\n */\n CompileMetadataResolver.prototype._getProvidersMetadata = /**\n * @param {?} providers\n * @param {?} targetEntryComponents\n * @param {?=} debugInfo\n * @param {?=} compileProviders\n * @param {?=} type\n * @return {?}\n */\n function (providers, targetEntryComponents, debugInfo, compileProviders, type) {\n var _this = this;\n if (compileProviders === void 0) { compileProviders = []; }\n providers.forEach(function (provider, providerIdx) {\n if (Array.isArray(provider)) {\n _this._getProvidersMetadata(provider, targetEntryComponents, debugInfo, compileProviders);\n }\n else {\n provider = resolveForwardRef(provider);\n var /** @type {?} */ providerMeta = /** @type {?} */ ((undefined));\n if (provider && typeof provider === 'object' && provider.hasOwnProperty('provide')) {\n _this._validateProvider(provider);\n providerMeta = new cpl.ProviderMeta(provider.provide, provider);\n }\n else if (isValidType(provider)) {\n providerMeta = new cpl.ProviderMeta(provider, { useClass: provider });\n }\n else if (provider === void 0) {\n _this._reportError(syntaxError(\"Encountered undefined provider! Usually this means you have a circular dependencies (might be caused by using 'barrel' index.ts files.\"));\n return;\n }\n else {\n var /** @type {?} */ providersInfo = (/** @type {?} */ (providers.reduce(function (soFar, seenProvider, seenProviderIdx) {\n if (seenProviderIdx < providerIdx) {\n soFar.push(\"\" + stringifyType(seenProvider));\n }\n else if (seenProviderIdx == providerIdx) {\n soFar.push(\"?\" + stringifyType(seenProvider) + \"?\");\n }\n else if (seenProviderIdx == providerIdx + 1) {\n soFar.push('...');\n }\n return soFar;\n }, [])))\n .join(', ');\n _this._reportError(syntaxError(\"Invalid \" + (debugInfo ? debugInfo : 'provider') + \" - only instances of Provider and Type are allowed, got: [\" + providersInfo + \"]\"), type);\n return;\n }\n if (providerMeta.token ===\n _this._reflector.resolveExternalReference(Identifiers.ANALYZE_FOR_ENTRY_COMPONENTS)) {\n targetEntryComponents.push.apply(targetEntryComponents, _this._getEntryComponentsFromProvider(providerMeta, type));\n }\n else {\n compileProviders.push(_this.getProviderMetadata(providerMeta));\n }\n }\n });\n return compileProviders;\n };\n /**\n * @param {?} provider\n * @return {?}\n */\n CompileMetadataResolver.prototype._validateProvider = /**\n * @param {?} provider\n * @return {?}\n */\n function (provider) {\n if (provider.hasOwnProperty('useClass') && provider.useClass == null) {\n this._reportError(syntaxError(\"Invalid provider for \" + stringifyType(provider.provide) + \". useClass cannot be \" + provider.useClass + \".\\n Usually it happens when:\\n 1. There's a circular dependency (might be caused by using index.ts (barrel) files).\\n 2. Class was used before it was declared. Use forwardRef in this case.\"));\n }\n };\n /**\n * @param {?} provider\n * @param {?=} type\n * @return {?}\n */\n CompileMetadataResolver.prototype._getEntryComponentsFromProvider = /**\n * @param {?} provider\n * @param {?=} type\n * @return {?}\n */\n function (provider, type) {\n var _this = this;\n var /** @type {?} */ components = [];\n var /** @type {?} */ collectedIdentifiers = [];\n if (provider.useFactory || provider.useExisting || provider.useClass) {\n this._reportError(syntaxError(\"The ANALYZE_FOR_ENTRY_COMPONENTS token only supports useValue!\"), type);\n return [];\n }\n if (!provider.multi) {\n this._reportError(syntaxError(\"The ANALYZE_FOR_ENTRY_COMPONENTS token only supports 'multi = true'!\"), type);\n return [];\n }\n extractIdentifiers(provider.useValue, collectedIdentifiers);\n collectedIdentifiers.forEach(function (identifier) {\n var /** @type {?} */ entry = _this._getEntryComponentMetadata(identifier.reference, false);\n if (entry) {\n components.push(entry);\n }\n });\n return components;\n };\n /**\n * @param {?} dirType\n * @param {?=} throwIfNotFound\n * @return {?}\n */\n CompileMetadataResolver.prototype._getEntryComponentMetadata = /**\n * @param {?} dirType\n * @param {?=} throwIfNotFound\n * @return {?}\n */\n function (dirType, throwIfNotFound) {\n if (throwIfNotFound === void 0) { throwIfNotFound = true; }\n var /** @type {?} */ dirMeta = this.getNonNormalizedDirectiveMetadata(dirType);\n if (dirMeta && dirMeta.metadata.isComponent) {\n return { componentType: dirType, componentFactory: /** @type {?} */ ((dirMeta.metadata.componentFactory)) };\n }\n var /** @type {?} */ dirSummary = /** @type {?} */ (this._loadSummary(dirType, cpl.CompileSummaryKind.Directive));\n if (dirSummary && dirSummary.isComponent) {\n return { componentType: dirType, componentFactory: /** @type {?} */ ((dirSummary.componentFactory)) };\n }\n if (throwIfNotFound) {\n throw syntaxError(dirType.name + \" cannot be used as an entry component.\");\n }\n return null;\n };\n /**\n * @param {?} provider\n * @return {?}\n */\n CompileMetadataResolver.prototype.getProviderMetadata = /**\n * @param {?} provider\n * @return {?}\n */\n function (provider) {\n var /** @type {?} */ compileDeps = /** @type {?} */ ((undefined));\n var /** @type {?} */ compileTypeMetadata = /** @type {?} */ ((null));\n var /** @type {?} */ compileFactoryMetadata = /** @type {?} */ ((null));\n var /** @type {?} */ token = this._getTokenMetadata(provider.token);\n if (provider.useClass) {\n compileTypeMetadata = this._getInjectableMetadata(provider.useClass, provider.dependencies);\n compileDeps = compileTypeMetadata.diDeps;\n if (provider.token === provider.useClass) {\n // use the compileTypeMetadata as it contains information about lifecycleHooks...\n token = { identifier: compileTypeMetadata };\n }\n }\n else if (provider.useFactory) {\n compileFactoryMetadata = this._getFactoryMetadata(provider.useFactory, provider.dependencies);\n compileDeps = compileFactoryMetadata.diDeps;\n }\n return {\n token: token,\n useClass: compileTypeMetadata,\n useValue: provider.useValue,\n useFactory: compileFactoryMetadata,\n useExisting: provider.useExisting ? this._getTokenMetadata(provider.useExisting) : undefined,\n deps: compileDeps,\n multi: provider.multi\n };\n };\n /**\n * @param {?} queries\n * @param {?} isViewQuery\n * @param {?} directiveType\n * @return {?}\n */\n CompileMetadataResolver.prototype._getQueriesMetadata = /**\n * @param {?} queries\n * @param {?} isViewQuery\n * @param {?} directiveType\n * @return {?}\n */\n function (queries, isViewQuery, directiveType) {\n var _this = this;\n var /** @type {?} */ res = [];\n Object.keys(queries).forEach(function (propertyName) {\n var /** @type {?} */ query = queries[propertyName];\n if (query.isViewQuery === isViewQuery) {\n res.push(_this._getQueryMetadata(query, propertyName, directiveType));\n }\n });\n return res;\n };\n /**\n * @param {?} selector\n * @return {?}\n */\n CompileMetadataResolver.prototype._queryVarBindings = /**\n * @param {?} selector\n * @return {?}\n */\n function (selector) { return selector.split(/\\s*,\\s*/); };\n /**\n * @param {?} q\n * @param {?} propertyName\n * @param {?} typeOrFunc\n * @return {?}\n */\n CompileMetadataResolver.prototype._getQueryMetadata = /**\n * @param {?} q\n * @param {?} propertyName\n * @param {?} typeOrFunc\n * @return {?}\n */\n function (q, propertyName, typeOrFunc) {\n var _this = this;\n var /** @type {?} */ selectors;\n if (typeof q.selector === 'string') {\n selectors =\n this._queryVarBindings(q.selector).map(function (varName) { return _this._getTokenMetadata(varName); });\n }\n else {\n if (!q.selector) {\n this._reportError(syntaxError(\"Can't construct a query for the property \\\"\" + propertyName + \"\\\" of \\\"\" + stringifyType(typeOrFunc) + \"\\\" since the query selector wasn't defined.\"), typeOrFunc);\n selectors = [];\n }\n else {\n selectors = [this._getTokenMetadata(q.selector)];\n }\n }\n return {\n selectors: selectors,\n first: q.first,\n descendants: q.descendants, propertyName: propertyName,\n read: q.read ? this._getTokenMetadata(q.read) : /** @type {?} */ ((null))\n };\n };\n /**\n * @param {?} error\n * @param {?=} type\n * @param {?=} otherType\n * @return {?}\n */\n CompileMetadataResolver.prototype._reportError = /**\n * @param {?} error\n * @param {?=} type\n * @param {?=} otherType\n * @return {?}\n */\n function (error, type, otherType) {\n if (this._errorCollector) {\n this._errorCollector(error, type);\n if (otherType) {\n this._errorCollector(error, otherType);\n }\n }\n else {\n throw error;\n }\n };\n return CompileMetadataResolver;\n}());\nexport { CompileMetadataResolver };\nfunction CompileMetadataResolver_tsickle_Closure_declarations() {\n /** @type {?} */\n CompileMetadataResolver.prototype._nonNormalizedDirectiveCache;\n /** @type {?} */\n CompileMetadataResolver.prototype._directiveCache;\n /** @type {?} */\n CompileMetadataResolver.prototype._summaryCache;\n /** @type {?} */\n CompileMetadataResolver.prototype._pipeCache;\n /** @type {?} */\n CompileMetadataResolver.prototype._ngModuleCache;\n /** @type {?} */\n CompileMetadataResolver.prototype._ngModuleOfTypes;\n /** @type {?} */\n CompileMetadataResolver.prototype._config;\n /** @type {?} */\n CompileMetadataResolver.prototype._htmlParser;\n /** @type {?} */\n CompileMetadataResolver.prototype._ngModuleResolver;\n /** @type {?} */\n CompileMetadataResolver.prototype._directiveResolver;\n /** @type {?} */\n CompileMetadataResolver.prototype._pipeResolver;\n /** @type {?} */\n CompileMetadataResolver.prototype._summaryResolver;\n /** @type {?} */\n CompileMetadataResolver.prototype._schemaRegistry;\n /** @type {?} */\n CompileMetadataResolver.prototype._directiveNormalizer;\n /** @type {?} */\n CompileMetadataResolver.prototype._console;\n /** @type {?} */\n CompileMetadataResolver.prototype._staticSymbolCache;\n /** @type {?} */\n CompileMetadataResolver.prototype._reflector;\n /** @type {?} */\n CompileMetadataResolver.prototype._errorCollector;\n}\n/**\n * @param {?} tree\n * @param {?=} out\n * @return {?}\n */\nfunction flattenArray(tree, out) {\n if (out === void 0) { out = []; }\n if (tree) {\n for (var /** @type {?} */ i = 0; i < tree.length; i++) {\n var /** @type {?} */ item = resolveForwardRef(tree[i]);\n if (Array.isArray(item)) {\n flattenArray(item, out);\n }\n else {\n out.push(item);\n }\n }\n }\n return out;\n}\n/**\n * @param {?} array\n * @return {?}\n */\nfunction dedupeArray(array) {\n if (array) {\n return Array.from(new Set(array));\n }\n return [];\n}\n/**\n * @param {?} tree\n * @return {?}\n */\nfunction flattenAndDedupeArray(tree) {\n return dedupeArray(flattenArray(tree));\n}\n/**\n * @param {?} value\n * @return {?}\n */\nfunction isValidType(value) {\n return (value instanceof StaticSymbol) || (value instanceof Type);\n}\n/**\n * @param {?} value\n * @param {?} targetIdentifiers\n * @return {?}\n */\nfunction extractIdentifiers(value, targetIdentifiers) {\n visitValue(value, new _CompileValueConverter(), targetIdentifiers);\n}\nvar _CompileValueConverter = /** @class */ (function (_super) {\n tslib_1.__extends(_CompileValueConverter, _super);\n function _CompileValueConverter() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * @param {?} value\n * @param {?} targetIdentifiers\n * @return {?}\n */\n _CompileValueConverter.prototype.visitOther = /**\n * @param {?} value\n * @param {?} targetIdentifiers\n * @return {?}\n */\n function (value, targetIdentifiers) {\n targetIdentifiers.push({ reference: value });\n };\n return _CompileValueConverter;\n}(ValueTransformer));\n/**\n * @param {?} type\n * @return {?}\n */\nfunction stringifyType(type) {\n if (type instanceof StaticSymbol) {\n return type.name + \" in \" + type.filePath;\n }\n else {\n return stringify(type);\n }\n}\n/**\n * Indicates that a component is still being loaded in a synchronous compile.\n * @param {?} compType\n * @return {?}\n */\nfunction componentStillLoadingError(compType) {\n var /** @type {?} */ error = Error(\"Can't compile synchronously as \" + stringify(compType) + \" is still being loaded!\");\n (/** @type {?} */ (error))[ERROR_COMPONENT_TYPE] = compType;\n return error;\n}\n//# sourceMappingURL=metadata_resolver.js.map","/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this 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 tslib_1 from \"tslib\";\n/** @enum {number} */\nvar TypeModifier = {\n Const: 0,\n};\nexport { TypeModifier };\nTypeModifier[TypeModifier.Const] = \"Const\";\n/**\n * @abstract\n */\nvar /**\n * @abstract\n */\nType = /** @class */ (function () {\n function Type(modifiers) {\n if (modifiers === void 0) { modifiers = null; }\n this.modifiers = modifiers;\n if (!modifiers) {\n this.modifiers = [];\n }\n }\n /**\n * @param {?} modifier\n * @return {?}\n */\n Type.prototype.hasModifier = /**\n * @param {?} modifier\n * @return {?}\n */\n function (modifier) { return /** @type {?} */ ((this.modifiers)).indexOf(modifier) !== -1; };\n return Type;\n}());\n/**\n * @abstract\n */\nexport { Type };\nfunction Type_tsickle_Closure_declarations() {\n /** @type {?} */\n Type.prototype.modifiers;\n /**\n * @abstract\n * @param {?} visitor\n * @param {?} context\n * @return {?}\n */\n Type.prototype.visitType = function (visitor, context) { };\n}\n/** @enum {number} */\nvar BuiltinTypeName = {\n Dynamic: 0,\n Bool: 1,\n String: 2,\n Int: 3,\n Number: 4,\n Function: 5,\n Inferred: 6,\n};\nexport { BuiltinTypeName };\nBuiltinTypeName[BuiltinTypeName.Dynamic] = \"Dynamic\";\nBuiltinTypeName[BuiltinTypeName.Bool] = \"Bool\";\nBuiltinTypeName[BuiltinTypeName.String] = \"String\";\nBuiltinTypeName[BuiltinTypeName.Int] = \"Int\";\nBuiltinTypeName[BuiltinTypeName.Number] = \"Number\";\nBuiltinTypeName[BuiltinTypeName.Function] = \"Function\";\nBuiltinTypeName[BuiltinTypeName.Inferred] = \"Inferred\";\nvar BuiltinType = /** @class */ (function (_super) {\n tslib_1.__extends(BuiltinType, _super);\n function BuiltinType(name, modifiers) {\n if (modifiers === void 0) { modifiers = null; }\n var _this = _super.call(this, modifiers) || this;\n _this.name = name;\n return _this;\n }\n /**\n * @param {?} visitor\n * @param {?} context\n * @return {?}\n */\n BuiltinType.prototype.visitType = /**\n * @param {?} visitor\n * @param {?} context\n * @return {?}\n */\n function (visitor, context) {\n return visitor.visitBuiltintType(this, context);\n };\n return BuiltinType;\n}(Type));\nexport { BuiltinType };\nfunction BuiltinType_tsickle_Closure_declarations() {\n /** @type {?} */\n BuiltinType.prototype.name;\n}\nvar ExpressionType = /** @class */ (function (_super) {\n tslib_1.__extends(ExpressionType, _super);\n function ExpressionType(value, modifiers) {\n if (modifiers === void 0) { modifiers = null; }\n var _this = _super.call(this, modifiers) || this;\n _this.value = value;\n return _this;\n }\n /**\n * @param {?} visitor\n * @param {?} context\n * @return {?}\n */\n ExpressionType.prototype.visitType = /**\n * @param {?} visitor\n * @param {?} context\n * @return {?}\n */\n function (visitor, context) {\n return visitor.visitExpressionType(this, context);\n };\n return ExpressionType;\n}(Type));\nexport { ExpressionType };\nfunction ExpressionType_tsickle_Closure_declarations() {\n /** @type {?} */\n ExpressionType.prototype.value;\n}\nvar ArrayType = /** @class */ (function (_super) {\n tslib_1.__extends(ArrayType, _super);\n function ArrayType(of, modifiers) {\n if (modifiers === void 0) { modifiers = null; }\n var _this = _super.call(this, modifiers) || this;\n _this.of = of;\n return _this;\n }\n /**\n * @param {?} visitor\n * @param {?} context\n * @return {?}\n */\n ArrayType.prototype.visitType = /**\n * @param {?} visitor\n * @param {?} context\n * @return {?}\n */\n function (visitor, context) {\n return visitor.visitArrayType(this, context);\n };\n return ArrayType;\n}(Type));\nexport { ArrayType };\nfunction ArrayType_tsickle_Closure_declarations() {\n /** @type {?} */\n ArrayType.prototype.of;\n}\nvar MapType = /** @class */ (function (_super) {\n tslib_1.__extends(MapType, _super);\n function MapType(valueType, modifiers) {\n if (modifiers === void 0) { modifiers = null; }\n var _this = _super.call(this, modifiers) || this;\n _this.valueType = valueType || null;\n return _this;\n }\n /**\n * @param {?} visitor\n * @param {?} context\n * @return {?}\n */\n MapType.prototype.visitType = /**\n * @param {?} visitor\n * @param {?} context\n * @return {?}\n */\n function (visitor, context) { return visitor.visitMapType(this, context); };\n return MapType;\n}(Type));\nexport { MapType };\nfunction MapType_tsickle_Closure_declarations() {\n /** @type {?} */\n MapType.prototype.valueType;\n}\nexport var /** @type {?} */ DYNAMIC_TYPE = new BuiltinType(BuiltinTypeName.Dynamic);\nexport var /** @type {?} */ INFERRED_TYPE = new BuiltinType(BuiltinTypeName.Inferred);\nexport var /** @type {?} */ BOOL_TYPE = new BuiltinType(BuiltinTypeName.Bool);\nexport var /** @type {?} */ INT_TYPE = new BuiltinType(BuiltinTypeName.Int);\nexport var /** @type {?} */ NUMBER_TYPE = new BuiltinType(BuiltinTypeName.Number);\nexport var /** @type {?} */ STRING_TYPE = new BuiltinType(BuiltinTypeName.String);\nexport var /** @type {?} */ FUNCTION_TYPE = new BuiltinType(BuiltinTypeName.Function);\n/**\n * @record\n */\nexport function TypeVisitor() { }\nfunction TypeVisitor_tsickle_Closure_declarations() {\n /** @type {?} */\n TypeVisitor.prototype.visitBuiltintType;\n /** @type {?} */\n TypeVisitor.prototype.visitExpressionType;\n /** @type {?} */\n TypeVisitor.prototype.visitArrayType;\n /** @type {?} */\n TypeVisitor.prototype.visitMapType;\n}\n/** @enum {number} */\nvar BinaryOperator = {\n Equals: 0,\n NotEquals: 1,\n Identical: 2,\n NotIdentical: 3,\n Minus: 4,\n Plus: 5,\n Divide: 6,\n Multiply: 7,\n Modulo: 8,\n And: 9,\n Or: 10,\n Lower: 11,\n LowerEquals: 12,\n Bigger: 13,\n BiggerEquals: 14,\n};\nexport { BinaryOperator };\nBinaryOperator[BinaryOperator.Equals] = \"Equals\";\nBinaryOperator[BinaryOperator.NotEquals] = \"NotEquals\";\nBinaryOperator[BinaryOperator.Identical] = \"Identical\";\nBinaryOperator[BinaryOperator.NotIdentical] = \"NotIdentical\";\nBinaryOperator[BinaryOperator.Minus] = \"Minus\";\nBinaryOperator[BinaryOperator.Plus] = \"Plus\";\nBinaryOperator[BinaryOperator.Divide] = \"Divide\";\nBinaryOperator[BinaryOperator.Multiply] = \"Multiply\";\nBinaryOperator[BinaryOperator.Modulo] = \"Modulo\";\nBinaryOperator[BinaryOperator.And] = \"And\";\nBinaryOperator[BinaryOperator.Or] = \"Or\";\nBinaryOperator[BinaryOperator.Lower] = \"Lower\";\nBinaryOperator[BinaryOperator.LowerEquals] = \"LowerEquals\";\nBinaryOperator[BinaryOperator.Bigger] = \"Bigger\";\nBinaryOperator[BinaryOperator.BiggerEquals] = \"BiggerEquals\";\n/**\n * @template T\n * @param {?} base\n * @param {?} other\n * @return {?}\n */\nexport function nullSafeIsEquivalent(base, other) {\n if (base == null || other == null) {\n return base == other;\n }\n return base.isEquivalent(other);\n}\n/**\n * @template T\n * @param {?} base\n * @param {?} other\n * @return {?}\n */\nexport function areAllEquivalent(base, other) {\n var /** @type {?} */ len = base.length;\n if (len !== other.length) {\n return false;\n }\n for (var /** @type {?} */ i = 0; i < len; i++) {\n if (!base[i].isEquivalent(other[i])) {\n return false;\n }\n }\n return true;\n}\n/**\n * @abstract\n */\nvar /**\n * @abstract\n */\nExpression = /** @class */ (function () {\n function Expression(type, sourceSpan) {\n this.type = type || null;\n this.sourceSpan = sourceSpan || null;\n }\n /**\n * @param {?} name\n * @param {?=} sourceSpan\n * @return {?}\n */\n Expression.prototype.prop = /**\n * @param {?} name\n * @param {?=} sourceSpan\n * @return {?}\n */\n function (name, sourceSpan) {\n return new ReadPropExpr(this, name, null, sourceSpan);\n };\n /**\n * @param {?} index\n * @param {?=} type\n * @param {?=} sourceSpan\n * @return {?}\n */\n Expression.prototype.key = /**\n * @param {?} index\n * @param {?=} type\n * @param {?=} sourceSpan\n * @return {?}\n */\n function (index, type, sourceSpan) {\n return new ReadKeyExpr(this, index, type, sourceSpan);\n };\n /**\n * @param {?} name\n * @param {?} params\n * @param {?=} sourceSpan\n * @return {?}\n */\n Expression.prototype.callMethod = /**\n * @param {?} name\n * @param {?} params\n * @param {?=} sourceSpan\n * @return {?}\n */\n function (name, params, sourceSpan) {\n return new InvokeMethodExpr(this, name, params, null, sourceSpan);\n };\n /**\n * @param {?} params\n * @param {?=} sourceSpan\n * @return {?}\n */\n Expression.prototype.callFn = /**\n * @param {?} params\n * @param {?=} sourceSpan\n * @return {?}\n */\n function (params, sourceSpan) {\n return new InvokeFunctionExpr(this, params, null, sourceSpan);\n };\n /**\n * @param {?} params\n * @param {?=} type\n * @param {?=} sourceSpan\n * @return {?}\n */\n Expression.prototype.instantiate = /**\n * @param {?} params\n * @param {?=} type\n * @param {?=} sourceSpan\n * @return {?}\n */\n function (params, type, sourceSpan) {\n return new InstantiateExpr(this, params, type, sourceSpan);\n };\n /**\n * @param {?} trueCase\n * @param {?=} falseCase\n * @param {?=} sourceSpan\n * @return {?}\n */\n Expression.prototype.conditional = /**\n * @param {?} trueCase\n * @param {?=} falseCase\n * @param {?=} sourceSpan\n * @return {?}\n */\n function (trueCase, falseCase, sourceSpan) {\n if (falseCase === void 0) { falseCase = null; }\n return new ConditionalExpr(this, trueCase, falseCase, null, sourceSpan);\n };\n /**\n * @param {?} rhs\n * @param {?=} sourceSpan\n * @return {?}\n */\n Expression.prototype.equals = /**\n * @param {?} rhs\n * @param {?=} sourceSpan\n * @return {?}\n */\n function (rhs, sourceSpan) {\n return new BinaryOperatorExpr(BinaryOperator.Equals, this, rhs, null, sourceSpan);\n };\n /**\n * @param {?} rhs\n * @param {?=} sourceSpan\n * @return {?}\n */\n Expression.prototype.notEquals = /**\n * @param {?} rhs\n * @param {?=} sourceSpan\n * @return {?}\n */\n function (rhs, sourceSpan) {\n return new BinaryOperatorExpr(BinaryOperator.NotEquals, this, rhs, null, sourceSpan);\n };\n /**\n * @param {?} rhs\n * @param {?=} sourceSpan\n * @return {?}\n */\n Expression.prototype.identical = /**\n * @param {?} rhs\n * @param {?=} sourceSpan\n * @return {?}\n */\n function (rhs, sourceSpan) {\n return new BinaryOperatorExpr(BinaryOperator.Identical, this, rhs, null, sourceSpan);\n };\n /**\n * @param {?} rhs\n * @param {?=} sourceSpan\n * @return {?}\n */\n Expression.prototype.notIdentical = /**\n * @param {?} rhs\n * @param {?=} sourceSpan\n * @return {?}\n */\n function (rhs, sourceSpan) {\n return new BinaryOperatorExpr(BinaryOperator.NotIdentical, this, rhs, null, sourceSpan);\n };\n /**\n * @param {?} rhs\n * @param {?=} sourceSpan\n * @return {?}\n */\n Expression.prototype.minus = /**\n * @param {?} rhs\n * @param {?=} sourceSpan\n * @return {?}\n */\n function (rhs, sourceSpan) {\n return new BinaryOperatorExpr(BinaryOperator.Minus, this, rhs, null, sourceSpan);\n };\n /**\n * @param {?} rhs\n * @param {?=} sourceSpan\n * @return {?}\n */\n Expression.prototype.plus = /**\n * @param {?} rhs\n * @param {?=} sourceSpan\n * @return {?}\n */\n function (rhs, sourceSpan) {\n return new BinaryOperatorExpr(BinaryOperator.Plus, this, rhs, null, sourceSpan);\n };\n /**\n * @param {?} rhs\n * @param {?=} sourceSpan\n * @return {?}\n */\n Expression.prototype.divide = /**\n * @param {?} rhs\n * @param {?=} sourceSpan\n * @return {?}\n */\n function (rhs, sourceSpan) {\n return new BinaryOperatorExpr(BinaryOperator.Divide, this, rhs, null, sourceSpan);\n };\n /**\n * @param {?} rhs\n * @param {?=} sourceSpan\n * @return {?}\n */\n Expression.prototype.multiply = /**\n * @param {?} rhs\n * @param {?=} sourceSpan\n * @return {?}\n */\n function (rhs, sourceSpan) {\n return new BinaryOperatorExpr(BinaryOperator.Multiply, this, rhs, null, sourceSpan);\n };\n /**\n * @param {?} rhs\n * @param {?=} sourceSpan\n * @return {?}\n */\n Expression.prototype.modulo = /**\n * @param {?} rhs\n * @param {?=} sourceSpan\n * @return {?}\n */\n function (rhs, sourceSpan) {\n return new BinaryOperatorExpr(BinaryOperator.Modulo, this, rhs, null, sourceSpan);\n };\n /**\n * @param {?} rhs\n * @param {?=} sourceSpan\n * @return {?}\n */\n Expression.prototype.and = /**\n * @param {?} rhs\n * @param {?=} sourceSpan\n * @return {?}\n */\n function (rhs, sourceSpan) {\n return new BinaryOperatorExpr(BinaryOperator.And, this, rhs, null, sourceSpan);\n };\n /**\n * @param {?} rhs\n * @param {?=} sourceSpan\n * @return {?}\n */\n Expression.prototype.or = /**\n * @param {?} rhs\n * @param {?=} sourceSpan\n * @return {?}\n */\n function (rhs, sourceSpan) {\n return new BinaryOperatorExpr(BinaryOperator.Or, this, rhs, null, sourceSpan);\n };\n /**\n * @param {?} rhs\n * @param {?=} sourceSpan\n * @return {?}\n */\n Expression.prototype.lower = /**\n * @param {?} rhs\n * @param {?=} sourceSpan\n * @return {?}\n */\n function (rhs, sourceSpan) {\n return new BinaryOperatorExpr(BinaryOperator.Lower, this, rhs, null, sourceSpan);\n };\n /**\n * @param {?} rhs\n * @param {?=} sourceSpan\n * @return {?}\n */\n Expression.prototype.lowerEquals = /**\n * @param {?} rhs\n * @param {?=} sourceSpan\n * @return {?}\n */\n function (rhs, sourceSpan) {\n return new BinaryOperatorExpr(BinaryOperator.LowerEquals, this, rhs, null, sourceSpan);\n };\n /**\n * @param {?} rhs\n * @param {?=} sourceSpan\n * @return {?}\n */\n Expression.prototype.bigger = /**\n * @param {?} rhs\n * @param {?=} sourceSpan\n * @return {?}\n */\n function (rhs, sourceSpan) {\n return new BinaryOperatorExpr(BinaryOperator.Bigger, this, rhs, null, sourceSpan);\n };\n /**\n * @param {?} rhs\n * @param {?=} sourceSpan\n * @return {?}\n */\n Expression.prototype.biggerEquals = /**\n * @param {?} rhs\n * @param {?=} sourceSpan\n * @return {?}\n */\n function (rhs, sourceSpan) {\n return new BinaryOperatorExpr(BinaryOperator.BiggerEquals, this, rhs, null, sourceSpan);\n };\n /**\n * @param {?=} sourceSpan\n * @return {?}\n */\n Expression.prototype.isBlank = /**\n * @param {?=} sourceSpan\n * @return {?}\n */\n function (sourceSpan) {\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 /**\n * @param {?} type\n * @param {?=} sourceSpan\n * @return {?}\n */\n Expression.prototype.cast = /**\n * @param {?} type\n * @param {?=} sourceSpan\n * @return {?}\n */\n function (type, sourceSpan) {\n return new CastExpr(this, type, sourceSpan);\n };\n /**\n * @return {?}\n */\n Expression.prototype.toStmt = /**\n * @return {?}\n */\n function () { return new ExpressionStatement(this, null); };\n return Expression;\n}());\n/**\n * @abstract\n */\nexport { Expression };\nfunction Expression_tsickle_Closure_declarations() {\n /** @type {?} */\n Expression.prototype.type;\n /** @type {?} */\n Expression.prototype.sourceSpan;\n /**\n * @abstract\n * @param {?} visitor\n * @param {?} context\n * @return {?}\n */\n Expression.prototype.visitExpression = function (visitor, context) { };\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 * @abstract\n * @param {?} e\n * @return {?}\n */\n Expression.prototype.isEquivalent = function (e) { };\n}\n/** @enum {number} */\nvar BuiltinVar = {\n This: 0,\n Super: 1,\n CatchError: 2,\n CatchStack: 3,\n};\nexport { BuiltinVar };\nBuiltinVar[BuiltinVar.This] = \"This\";\nBuiltinVar[BuiltinVar.Super] = \"Super\";\nBuiltinVar[BuiltinVar.CatchError] = \"CatchError\";\nBuiltinVar[BuiltinVar.CatchStack] = \"CatchStack\";\nvar ReadVarExpr = /** @class */ (function (_super) {\n tslib_1.__extends(ReadVarExpr, _super);\n function ReadVarExpr(name, type, sourceSpan) {\n var _this = _super.call(this, type, sourceSpan) || this;\n if (typeof name === 'string') {\n _this.name = name;\n _this.builtin = null;\n }\n else {\n _this.name = null;\n _this.builtin = /** @type {?} */ (name);\n }\n return _this;\n }\n /**\n * @param {?} e\n * @return {?}\n */\n ReadVarExpr.prototype.isEquivalent = /**\n * @param {?} e\n * @return {?}\n */\n function (e) {\n return e instanceof ReadVarExpr && this.name === e.name && this.builtin === e.builtin;\n };\n /**\n * @param {?} visitor\n * @param {?} context\n * @return {?}\n */\n ReadVarExpr.prototype.visitExpression = /**\n * @param {?} visitor\n * @param {?} context\n * @return {?}\n */\n function (visitor, context) {\n return visitor.visitReadVarExpr(this, context);\n };\n /**\n * @param {?} value\n * @return {?}\n */\n ReadVarExpr.prototype.set = /**\n * @param {?} value\n * @return {?}\n */\n function (value) {\n if (!this.name) {\n throw new Error(\"Built in variable \" + this.builtin + \" can not be assigned to.\");\n }\n return new WriteVarExpr(this.name, value, null, this.sourceSpan);\n };\n return ReadVarExpr;\n}(Expression));\nexport { ReadVarExpr };\nfunction ReadVarExpr_tsickle_Closure_declarations() {\n /** @type {?} */\n ReadVarExpr.prototype.name;\n /** @type {?} */\n ReadVarExpr.prototype.builtin;\n}\nvar WriteVarExpr = /** @class */ (function (_super) {\n tslib_1.__extends(WriteVarExpr, _super);\n function WriteVarExpr(name, value, type, sourceSpan) {\n var _this = _super.call(this, type || value.type, sourceSpan) || this;\n _this.name = name;\n _this.value = value;\n return _this;\n }\n /**\n * @param {?} e\n * @return {?}\n */\n WriteVarExpr.prototype.isEquivalent = /**\n * @param {?} e\n * @return {?}\n */\n function (e) {\n return e instanceof WriteVarExpr && this.name === e.name && this.value.isEquivalent(e.value);\n };\n /**\n * @param {?} visitor\n * @param {?} context\n * @return {?}\n */\n WriteVarExpr.prototype.visitExpression = /**\n * @param {?} visitor\n * @param {?} context\n * @return {?}\n */\n function (visitor, context) {\n return visitor.visitWriteVarExpr(this, context);\n };\n /**\n * @param {?=} type\n * @param {?=} modifiers\n * @return {?}\n */\n WriteVarExpr.prototype.toDeclStmt = /**\n * @param {?=} type\n * @param {?=} modifiers\n * @return {?}\n */\n function (type, modifiers) {\n return new DeclareVarStmt(this.name, this.value, type, modifiers, this.sourceSpan);\n };\n return WriteVarExpr;\n}(Expression));\nexport { WriteVarExpr };\nfunction WriteVarExpr_tsickle_Closure_declarations() {\n /** @type {?} */\n WriteVarExpr.prototype.value;\n /** @type {?} */\n WriteVarExpr.prototype.name;\n}\nvar WriteKeyExpr = /** @class */ (function (_super) {\n tslib_1.__extends(WriteKeyExpr, _super);\n function WriteKeyExpr(receiver, index, value, type, sourceSpan) {\n var _this = _super.call(this, type || value.type, sourceSpan) || this;\n _this.receiver = receiver;\n _this.index = index;\n _this.value = value;\n return _this;\n }\n /**\n * @param {?} e\n * @return {?}\n */\n WriteKeyExpr.prototype.isEquivalent = /**\n * @param {?} e\n * @return {?}\n */\n function (e) {\n return e instanceof WriteKeyExpr && this.receiver.isEquivalent(e.receiver) &&\n this.index.isEquivalent(e.index) && this.value.isEquivalent(e.value);\n };\n /**\n * @param {?} visitor\n * @param {?} context\n * @return {?}\n */\n WriteKeyExpr.prototype.visitExpression = /**\n * @param {?} visitor\n * @param {?} context\n * @return {?}\n */\n function (visitor, context) {\n return visitor.visitWriteKeyExpr(this, context);\n };\n return WriteKeyExpr;\n}(Expression));\nexport { WriteKeyExpr };\nfunction WriteKeyExpr_tsickle_Closure_declarations() {\n /** @type {?} */\n WriteKeyExpr.prototype.value;\n /** @type {?} */\n WriteKeyExpr.prototype.receiver;\n /** @type {?} */\n WriteKeyExpr.prototype.index;\n}\nvar WritePropExpr = /** @class */ (function (_super) {\n tslib_1.__extends(WritePropExpr, _super);\n function WritePropExpr(receiver, name, value, type, sourceSpan) {\n var _this = _super.call(this, type || value.type, sourceSpan) || this;\n _this.receiver = receiver;\n _this.name = name;\n _this.value = value;\n return _this;\n }\n /**\n * @param {?} e\n * @return {?}\n */\n WritePropExpr.prototype.isEquivalent = /**\n * @param {?} e\n * @return {?}\n */\n function (e) {\n return e instanceof WritePropExpr && this.receiver.isEquivalent(e.receiver) &&\n this.name === e.name && this.value.isEquivalent(e.value);\n };\n /**\n * @param {?} visitor\n * @param {?} context\n * @return {?}\n */\n WritePropExpr.prototype.visitExpression = /**\n * @param {?} visitor\n * @param {?} context\n * @return {?}\n */\n function (visitor, context) {\n return visitor.visitWritePropExpr(this, context);\n };\n return WritePropExpr;\n}(Expression));\nexport { WritePropExpr };\nfunction WritePropExpr_tsickle_Closure_declarations() {\n /** @type {?} */\n WritePropExpr.prototype.value;\n /** @type {?} */\n WritePropExpr.prototype.receiver;\n /** @type {?} */\n WritePropExpr.prototype.name;\n}\n/** @enum {number} */\nvar BuiltinMethod = {\n ConcatArray: 0,\n SubscribeObservable: 1,\n Bind: 2,\n};\nexport { BuiltinMethod };\nBuiltinMethod[BuiltinMethod.ConcatArray] = \"ConcatArray\";\nBuiltinMethod[BuiltinMethod.SubscribeObservable] = \"SubscribeObservable\";\nBuiltinMethod[BuiltinMethod.Bind] = \"Bind\";\nvar InvokeMethodExpr = /** @class */ (function (_super) {\n tslib_1.__extends(InvokeMethodExpr, _super);\n function InvokeMethodExpr(receiver, method, args, type, sourceSpan) {\n var _this = _super.call(this, type, sourceSpan) || this;\n _this.receiver = receiver;\n _this.args = args;\n if (typeof method === 'string') {\n _this.name = method;\n _this.builtin = null;\n }\n else {\n _this.name = null;\n _this.builtin = /** @type {?} */ (method);\n }\n return _this;\n }\n /**\n * @param {?} e\n * @return {?}\n */\n InvokeMethodExpr.prototype.isEquivalent = /**\n * @param {?} e\n * @return {?}\n */\n function (e) {\n return e instanceof InvokeMethodExpr && this.receiver.isEquivalent(e.receiver) &&\n this.name === e.name && this.builtin === e.builtin && areAllEquivalent(this.args, e.args);\n };\n /**\n * @param {?} visitor\n * @param {?} context\n * @return {?}\n */\n InvokeMethodExpr.prototype.visitExpression = /**\n * @param {?} visitor\n * @param {?} context\n * @return {?}\n */\n function (visitor, context) {\n return visitor.visitInvokeMethodExpr(this, context);\n };\n return InvokeMethodExpr;\n}(Expression));\nexport { InvokeMethodExpr };\nfunction InvokeMethodExpr_tsickle_Closure_declarations() {\n /** @type {?} */\n InvokeMethodExpr.prototype.name;\n /** @type {?} */\n InvokeMethodExpr.prototype.builtin;\n /** @type {?} */\n InvokeMethodExpr.prototype.receiver;\n /** @type {?} */\n InvokeMethodExpr.prototype.args;\n}\nvar InvokeFunctionExpr = /** @class */ (function (_super) {\n tslib_1.__extends(InvokeFunctionExpr, _super);\n function InvokeFunctionExpr(fn, args, type, sourceSpan) {\n var _this = _super.call(this, type, sourceSpan) || this;\n _this.fn = fn;\n _this.args = args;\n return _this;\n }\n /**\n * @param {?} e\n * @return {?}\n */\n InvokeFunctionExpr.prototype.isEquivalent = /**\n * @param {?} e\n * @return {?}\n */\n function (e) {\n return e instanceof InvokeFunctionExpr && this.fn.isEquivalent(e.fn) &&\n areAllEquivalent(this.args, e.args);\n };\n /**\n * @param {?} visitor\n * @param {?} context\n * @return {?}\n */\n InvokeFunctionExpr.prototype.visitExpression = /**\n * @param {?} visitor\n * @param {?} context\n * @return {?}\n */\n function (visitor, context) {\n return visitor.visitInvokeFunctionExpr(this, context);\n };\n return InvokeFunctionExpr;\n}(Expression));\nexport { InvokeFunctionExpr };\nfunction InvokeFunctionExpr_tsickle_Closure_declarations() {\n /** @type {?} */\n InvokeFunctionExpr.prototype.fn;\n /** @type {?} */\n InvokeFunctionExpr.prototype.args;\n}\nvar InstantiateExpr = /** @class */ (function (_super) {\n tslib_1.__extends(InstantiateExpr, _super);\n function InstantiateExpr(classExpr, args, type, sourceSpan) {\n var _this = _super.call(this, type, sourceSpan) || this;\n _this.classExpr = classExpr;\n _this.args = args;\n return _this;\n }\n /**\n * @param {?} e\n * @return {?}\n */\n InstantiateExpr.prototype.isEquivalent = /**\n * @param {?} e\n * @return {?}\n */\n function (e) {\n return e instanceof InstantiateExpr && this.classExpr.isEquivalent(e.classExpr) &&\n areAllEquivalent(this.args, e.args);\n };\n /**\n * @param {?} visitor\n * @param {?} context\n * @return {?}\n */\n InstantiateExpr.prototype.visitExpression = /**\n * @param {?} visitor\n * @param {?} context\n * @return {?}\n */\n function (visitor, context) {\n return visitor.visitInstantiateExpr(this, context);\n };\n return InstantiateExpr;\n}(Expression));\nexport { InstantiateExpr };\nfunction InstantiateExpr_tsickle_Closure_declarations() {\n /** @type {?} */\n InstantiateExpr.prototype.classExpr;\n /** @type {?} */\n InstantiateExpr.prototype.args;\n}\nvar LiteralExpr = /** @class */ (function (_super) {\n tslib_1.__extends(LiteralExpr, _super);\n function LiteralExpr(value, type, sourceSpan) {\n var _this = _super.call(this, type, sourceSpan) || this;\n _this.value = value;\n return _this;\n }\n /**\n * @param {?} e\n * @return {?}\n */\n LiteralExpr.prototype.isEquivalent = /**\n * @param {?} e\n * @return {?}\n */\n function (e) {\n return e instanceof LiteralExpr && this.value === e.value;\n };\n /**\n * @param {?} visitor\n * @param {?} context\n * @return {?}\n */\n LiteralExpr.prototype.visitExpression = /**\n * @param {?} visitor\n * @param {?} context\n * @return {?}\n */\n function (visitor, context) {\n return visitor.visitLiteralExpr(this, context);\n };\n return LiteralExpr;\n}(Expression));\nexport { LiteralExpr };\nfunction LiteralExpr_tsickle_Closure_declarations() {\n /** @type {?} */\n LiteralExpr.prototype.value;\n}\nvar ExternalExpr = /** @class */ (function (_super) {\n tslib_1.__extends(ExternalExpr, _super);\n function ExternalExpr(value, type, typeParams, sourceSpan) {\n if (typeParams === void 0) { typeParams = null; }\n var _this = _super.call(this, type, sourceSpan) || this;\n _this.value = value;\n _this.typeParams = typeParams;\n return _this;\n }\n /**\n * @param {?} e\n * @return {?}\n */\n ExternalExpr.prototype.isEquivalent = /**\n * @param {?} e\n * @return {?}\n */\n function (e) {\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 * @param {?} visitor\n * @param {?} context\n * @return {?}\n */\n ExternalExpr.prototype.visitExpression = /**\n * @param {?} visitor\n * @param {?} context\n * @return {?}\n */\n function (visitor, context) {\n return visitor.visitExternalExpr(this, context);\n };\n return ExternalExpr;\n}(Expression));\nexport { ExternalExpr };\nfunction ExternalExpr_tsickle_Closure_declarations() {\n /** @type {?} */\n ExternalExpr.prototype.value;\n /** @type {?} */\n ExternalExpr.prototype.typeParams;\n}\nvar ExternalReference = /** @class */ (function () {\n function ExternalReference(moduleName, name, runtime) {\n this.moduleName = moduleName;\n this.name = name;\n this.runtime = runtime;\n }\n return ExternalReference;\n}());\nexport { ExternalReference };\nfunction ExternalReference_tsickle_Closure_declarations() {\n /** @type {?} */\n ExternalReference.prototype.moduleName;\n /** @type {?} */\n ExternalReference.prototype.name;\n /** @type {?} */\n ExternalReference.prototype.runtime;\n}\nvar ConditionalExpr = /** @class */ (function (_super) {\n tslib_1.__extends(ConditionalExpr, _super);\n function ConditionalExpr(condition, trueCase, falseCase, type, sourceSpan) {\n if (falseCase === void 0) { falseCase = null; }\n var _this = _super.call(this, type || trueCase.type, sourceSpan) || this;\n _this.condition = condition;\n _this.falseCase = falseCase;\n _this.trueCase = trueCase;\n return _this;\n }\n /**\n * @param {?} e\n * @return {?}\n */\n ConditionalExpr.prototype.isEquivalent = /**\n * @param {?} e\n * @return {?}\n */\n function (e) {\n return e instanceof ConditionalExpr && this.condition.isEquivalent(e.condition) &&\n this.trueCase.isEquivalent(e.trueCase) && nullSafeIsEquivalent(this.falseCase, e.falseCase);\n };\n /**\n * @param {?} visitor\n * @param {?} context\n * @return {?}\n */\n ConditionalExpr.prototype.visitExpression = /**\n * @param {?} visitor\n * @param {?} context\n * @return {?}\n */\n function (visitor, context) {\n return visitor.visitConditionalExpr(this, context);\n };\n return ConditionalExpr;\n}(Expression));\nexport { ConditionalExpr };\nfunction ConditionalExpr_tsickle_Closure_declarations() {\n /** @type {?} */\n ConditionalExpr.prototype.trueCase;\n /** @type {?} */\n ConditionalExpr.prototype.condition;\n /** @type {?} */\n ConditionalExpr.prototype.falseCase;\n}\nvar NotExpr = /** @class */ (function (_super) {\n tslib_1.__extends(NotExpr, _super);\n function NotExpr(condition, sourceSpan) {\n var _this = _super.call(this, BOOL_TYPE, sourceSpan) || this;\n _this.condition = condition;\n return _this;\n }\n /**\n * @param {?} e\n * @return {?}\n */\n NotExpr.prototype.isEquivalent = /**\n * @param {?} e\n * @return {?}\n */\n function (e) {\n return e instanceof NotExpr && this.condition.isEquivalent(e.condition);\n };\n /**\n * @param {?} visitor\n * @param {?} context\n * @return {?}\n */\n NotExpr.prototype.visitExpression = /**\n * @param {?} visitor\n * @param {?} context\n * @return {?}\n */\n function (visitor, context) {\n return visitor.visitNotExpr(this, context);\n };\n return NotExpr;\n}(Expression));\nexport { NotExpr };\nfunction NotExpr_tsickle_Closure_declarations() {\n /** @type {?} */\n NotExpr.prototype.condition;\n}\nvar AssertNotNull = /** @class */ (function (_super) {\n tslib_1.__extends(AssertNotNull, _super);\n function AssertNotNull(condition, sourceSpan) {\n var _this = _super.call(this, condition.type, sourceSpan) || this;\n _this.condition = condition;\n return _this;\n }\n /**\n * @param {?} e\n * @return {?}\n */\n AssertNotNull.prototype.isEquivalent = /**\n * @param {?} e\n * @return {?}\n */\n function (e) {\n return e instanceof AssertNotNull && this.condition.isEquivalent(e.condition);\n };\n /**\n * @param {?} visitor\n * @param {?} context\n * @return {?}\n */\n AssertNotNull.prototype.visitExpression = /**\n * @param {?} visitor\n * @param {?} context\n * @return {?}\n */\n function (visitor, context) {\n return visitor.visitAssertNotNullExpr(this, context);\n };\n return AssertNotNull;\n}(Expression));\nexport { AssertNotNull };\nfunction AssertNotNull_tsickle_Closure_declarations() {\n /** @type {?} */\n AssertNotNull.prototype.condition;\n}\nvar CastExpr = /** @class */ (function (_super) {\n tslib_1.__extends(CastExpr, _super);\n function CastExpr(value, type, sourceSpan) {\n var _this = _super.call(this, type, sourceSpan) || this;\n _this.value = value;\n return _this;\n }\n /**\n * @param {?} e\n * @return {?}\n */\n CastExpr.prototype.isEquivalent = /**\n * @param {?} e\n * @return {?}\n */\n function (e) {\n return e instanceof CastExpr && this.value.isEquivalent(e.value);\n };\n /**\n * @param {?} visitor\n * @param {?} context\n * @return {?}\n */\n CastExpr.prototype.visitExpression = /**\n * @param {?} visitor\n * @param {?} context\n * @return {?}\n */\n function (visitor, context) {\n return visitor.visitCastExpr(this, context);\n };\n return CastExpr;\n}(Expression));\nexport { CastExpr };\nfunction CastExpr_tsickle_Closure_declarations() {\n /** @type {?} */\n CastExpr.prototype.value;\n}\nvar FnParam = /** @class */ (function () {\n function FnParam(name, type) {\n if (type === void 0) { type = null; }\n this.name = name;\n this.type = type;\n }\n /**\n * @param {?} param\n * @return {?}\n */\n FnParam.prototype.isEquivalent = /**\n * @param {?} param\n * @return {?}\n */\n function (param) { return this.name === param.name; };\n return FnParam;\n}());\nexport { FnParam };\nfunction FnParam_tsickle_Closure_declarations() {\n /** @type {?} */\n FnParam.prototype.name;\n /** @type {?} */\n FnParam.prototype.type;\n}\nvar FunctionExpr = /** @class */ (function (_super) {\n tslib_1.__extends(FunctionExpr, _super);\n function FunctionExpr(params, statements, type, sourceSpan) {\n var _this = _super.call(this, type, sourceSpan) || this;\n _this.params = params;\n _this.statements = statements;\n return _this;\n }\n /**\n * @param {?} e\n * @return {?}\n */\n FunctionExpr.prototype.isEquivalent = /**\n * @param {?} e\n * @return {?}\n */\n function (e) {\n return e instanceof FunctionExpr && areAllEquivalent(this.params, e.params) &&\n areAllEquivalent(this.statements, e.statements);\n };\n /**\n * @param {?} visitor\n * @param {?} context\n * @return {?}\n */\n FunctionExpr.prototype.visitExpression = /**\n * @param {?} visitor\n * @param {?} context\n * @return {?}\n */\n function (visitor, context) {\n return visitor.visitFunctionExpr(this, context);\n };\n /**\n * @param {?} name\n * @param {?=} modifiers\n * @return {?}\n */\n FunctionExpr.prototype.toDeclStmt = /**\n * @param {?} name\n * @param {?=} modifiers\n * @return {?}\n */\n function (name, modifiers) {\n if (modifiers === void 0) { modifiers = null; }\n return new DeclareFunctionStmt(name, this.params, this.statements, this.type, modifiers, this.sourceSpan);\n };\n return FunctionExpr;\n}(Expression));\nexport { FunctionExpr };\nfunction FunctionExpr_tsickle_Closure_declarations() {\n /** @type {?} */\n FunctionExpr.prototype.params;\n /** @type {?} */\n FunctionExpr.prototype.statements;\n}\nvar BinaryOperatorExpr = /** @class */ (function (_super) {\n tslib_1.__extends(BinaryOperatorExpr, _super);\n function BinaryOperatorExpr(operator, lhs, rhs, type, sourceSpan) {\n var _this = _super.call(this, type || lhs.type, sourceSpan) || this;\n _this.operator = operator;\n _this.rhs = rhs;\n _this.lhs = lhs;\n return _this;\n }\n /**\n * @param {?} e\n * @return {?}\n */\n BinaryOperatorExpr.prototype.isEquivalent = /**\n * @param {?} e\n * @return {?}\n */\n function (e) {\n return e instanceof BinaryOperatorExpr && this.operator === e.operator &&\n this.lhs.isEquivalent(e.lhs) && this.rhs.isEquivalent(e.rhs);\n };\n /**\n * @param {?} visitor\n * @param {?} context\n * @return {?}\n */\n BinaryOperatorExpr.prototype.visitExpression = /**\n * @param {?} visitor\n * @param {?} context\n * @return {?}\n */\n function (visitor, context) {\n return visitor.visitBinaryOperatorExpr(this, context);\n };\n return BinaryOperatorExpr;\n}(Expression));\nexport { BinaryOperatorExpr };\nfunction BinaryOperatorExpr_tsickle_Closure_declarations() {\n /** @type {?} */\n BinaryOperatorExpr.prototype.lhs;\n /** @type {?} */\n BinaryOperatorExpr.prototype.operator;\n /** @type {?} */\n BinaryOperatorExpr.prototype.rhs;\n}\nvar ReadPropExpr = /** @class */ (function (_super) {\n tslib_1.__extends(ReadPropExpr, _super);\n function ReadPropExpr(receiver, name, type, sourceSpan) {\n var _this = _super.call(this, type, sourceSpan) || this;\n _this.receiver = receiver;\n _this.name = name;\n return _this;\n }\n /**\n * @param {?} e\n * @return {?}\n */\n ReadPropExpr.prototype.isEquivalent = /**\n * @param {?} e\n * @return {?}\n */\n function (e) {\n return e instanceof ReadPropExpr && this.receiver.isEquivalent(e.receiver) &&\n this.name === e.name;\n };\n /**\n * @param {?} visitor\n * @param {?} context\n * @return {?}\n */\n ReadPropExpr.prototype.visitExpression = /**\n * @param {?} visitor\n * @param {?} context\n * @return {?}\n */\n function (visitor, context) {\n return visitor.visitReadPropExpr(this, context);\n };\n /**\n * @param {?} value\n * @return {?}\n */\n ReadPropExpr.prototype.set = /**\n * @param {?} value\n * @return {?}\n */\n function (value) {\n return new WritePropExpr(this.receiver, this.name, value, null, this.sourceSpan);\n };\n return ReadPropExpr;\n}(Expression));\nexport { ReadPropExpr };\nfunction ReadPropExpr_tsickle_Closure_declarations() {\n /** @type {?} */\n ReadPropExpr.prototype.receiver;\n /** @type {?} */\n ReadPropExpr.prototype.name;\n}\nvar ReadKeyExpr = /** @class */ (function (_super) {\n tslib_1.__extends(ReadKeyExpr, _super);\n function ReadKeyExpr(receiver, index, type, sourceSpan) {\n var _this = _super.call(this, type, sourceSpan) || this;\n _this.receiver = receiver;\n _this.index = index;\n return _this;\n }\n /**\n * @param {?} e\n * @return {?}\n */\n ReadKeyExpr.prototype.isEquivalent = /**\n * @param {?} e\n * @return {?}\n */\n function (e) {\n return e instanceof ReadKeyExpr && this.receiver.isEquivalent(e.receiver) &&\n this.index.isEquivalent(e.index);\n };\n /**\n * @param {?} visitor\n * @param {?} context\n * @return {?}\n */\n ReadKeyExpr.prototype.visitExpression = /**\n * @param {?} visitor\n * @param {?} context\n * @return {?}\n */\n function (visitor, context) {\n return visitor.visitReadKeyExpr(this, context);\n };\n /**\n * @param {?} value\n * @return {?}\n */\n ReadKeyExpr.prototype.set = /**\n * @param {?} value\n * @return {?}\n */\n function (value) {\n return new WriteKeyExpr(this.receiver, this.index, value, null, this.sourceSpan);\n };\n return ReadKeyExpr;\n}(Expression));\nexport { ReadKeyExpr };\nfunction ReadKeyExpr_tsickle_Closure_declarations() {\n /** @type {?} */\n ReadKeyExpr.prototype.receiver;\n /** @type {?} */\n ReadKeyExpr.prototype.index;\n}\nvar LiteralArrayExpr = /** @class */ (function (_super) {\n tslib_1.__extends(LiteralArrayExpr, _super);\n function LiteralArrayExpr(entries, type, sourceSpan) {\n var _this = _super.call(this, type, sourceSpan) || this;\n _this.entries = entries;\n return _this;\n }\n /**\n * @param {?} e\n * @return {?}\n */\n LiteralArrayExpr.prototype.isEquivalent = /**\n * @param {?} e\n * @return {?}\n */\n function (e) {\n return e instanceof LiteralArrayExpr && areAllEquivalent(this.entries, e.entries);\n };\n /**\n * @param {?} visitor\n * @param {?} context\n * @return {?}\n */\n LiteralArrayExpr.prototype.visitExpression = /**\n * @param {?} visitor\n * @param {?} context\n * @return {?}\n */\n function (visitor, context) {\n return visitor.visitLiteralArrayExpr(this, context);\n };\n return LiteralArrayExpr;\n}(Expression));\nexport { LiteralArrayExpr };\nfunction LiteralArrayExpr_tsickle_Closure_declarations() {\n /** @type {?} */\n LiteralArrayExpr.prototype.entries;\n}\nvar LiteralMapEntry = /** @class */ (function () {\n function LiteralMapEntry(key, value, quoted) {\n this.key = key;\n this.value = value;\n this.quoted = quoted;\n }\n /**\n * @param {?} e\n * @return {?}\n */\n LiteralMapEntry.prototype.isEquivalent = /**\n * @param {?} e\n * @return {?}\n */\n function (e) {\n return this.key === e.key && this.value.isEquivalent(e.value);\n };\n return LiteralMapEntry;\n}());\nexport { LiteralMapEntry };\nfunction LiteralMapEntry_tsickle_Closure_declarations() {\n /** @type {?} */\n LiteralMapEntry.prototype.key;\n /** @type {?} */\n LiteralMapEntry.prototype.value;\n /** @type {?} */\n LiteralMapEntry.prototype.quoted;\n}\nvar LiteralMapExpr = /** @class */ (function (_super) {\n tslib_1.__extends(LiteralMapExpr, _super);\n function LiteralMapExpr(entries, type, sourceSpan) {\n var _this = _super.call(this, type, sourceSpan) || this;\n _this.entries = entries;\n _this.valueType = null;\n if (type) {\n _this.valueType = type.valueType;\n }\n return _this;\n }\n /**\n * @param {?} e\n * @return {?}\n */\n LiteralMapExpr.prototype.isEquivalent = /**\n * @param {?} e\n * @return {?}\n */\n function (e) {\n return e instanceof LiteralMapExpr && areAllEquivalent(this.entries, e.entries);\n };\n /**\n * @param {?} visitor\n * @param {?} context\n * @return {?}\n */\n LiteralMapExpr.prototype.visitExpression = /**\n * @param {?} visitor\n * @param {?} context\n * @return {?}\n */\n function (visitor, context) {\n return visitor.visitLiteralMapExpr(this, context);\n };\n return LiteralMapExpr;\n}(Expression));\nexport { LiteralMapExpr };\nfunction LiteralMapExpr_tsickle_Closure_declarations() {\n /** @type {?} */\n LiteralMapExpr.prototype.valueType;\n /** @type {?} */\n LiteralMapExpr.prototype.entries;\n}\nvar CommaExpr = /** @class */ (function (_super) {\n tslib_1.__extends(CommaExpr, _super);\n function CommaExpr(parts, sourceSpan) {\n var _this = _super.call(this, parts[parts.length - 1].type, sourceSpan) || this;\n _this.parts = parts;\n return _this;\n }\n /**\n * @param {?} e\n * @return {?}\n */\n CommaExpr.prototype.isEquivalent = /**\n * @param {?} e\n * @return {?}\n */\n function (e) {\n return e instanceof CommaExpr && areAllEquivalent(this.parts, e.parts);\n };\n /**\n * @param {?} visitor\n * @param {?} context\n * @return {?}\n */\n CommaExpr.prototype.visitExpression = /**\n * @param {?} visitor\n * @param {?} context\n * @return {?}\n */\n function (visitor, context) {\n return visitor.visitCommaExpr(this, context);\n };\n return CommaExpr;\n}(Expression));\nexport { CommaExpr };\nfunction CommaExpr_tsickle_Closure_declarations() {\n /** @type {?} */\n CommaExpr.prototype.parts;\n}\n/**\n * @record\n */\nexport function ExpressionVisitor() { }\nfunction ExpressionVisitor_tsickle_Closure_declarations() {\n /** @type {?} */\n ExpressionVisitor.prototype.visitReadVarExpr;\n /** @type {?} */\n ExpressionVisitor.prototype.visitWriteVarExpr;\n /** @type {?} */\n ExpressionVisitor.prototype.visitWriteKeyExpr;\n /** @type {?} */\n ExpressionVisitor.prototype.visitWritePropExpr;\n /** @type {?} */\n ExpressionVisitor.prototype.visitInvokeMethodExpr;\n /** @type {?} */\n ExpressionVisitor.prototype.visitInvokeFunctionExpr;\n /** @type {?} */\n ExpressionVisitor.prototype.visitInstantiateExpr;\n /** @type {?} */\n ExpressionVisitor.prototype.visitLiteralExpr;\n /** @type {?} */\n ExpressionVisitor.prototype.visitExternalExpr;\n /** @type {?} */\n ExpressionVisitor.prototype.visitConditionalExpr;\n /** @type {?} */\n ExpressionVisitor.prototype.visitNotExpr;\n /** @type {?} */\n ExpressionVisitor.prototype.visitAssertNotNullExpr;\n /** @type {?} */\n ExpressionVisitor.prototype.visitCastExpr;\n /** @type {?} */\n ExpressionVisitor.prototype.visitFunctionExpr;\n /** @type {?} */\n ExpressionVisitor.prototype.visitBinaryOperatorExpr;\n /** @type {?} */\n ExpressionVisitor.prototype.visitReadPropExpr;\n /** @type {?} */\n ExpressionVisitor.prototype.visitReadKeyExpr;\n /** @type {?} */\n ExpressionVisitor.prototype.visitLiteralArrayExpr;\n /** @type {?} */\n ExpressionVisitor.prototype.visitLiteralMapExpr;\n /** @type {?} */\n ExpressionVisitor.prototype.visitCommaExpr;\n}\nexport var /** @type {?} */ THIS_EXPR = new ReadVarExpr(BuiltinVar.This, null, null);\nexport var /** @type {?} */ SUPER_EXPR = new ReadVarExpr(BuiltinVar.Super, null, null);\nexport var /** @type {?} */ CATCH_ERROR_VAR = new ReadVarExpr(BuiltinVar.CatchError, null, null);\nexport var /** @type {?} */ CATCH_STACK_VAR = new ReadVarExpr(BuiltinVar.CatchStack, null, null);\nexport var /** @type {?} */ NULL_EXPR = new LiteralExpr(null, null, null);\nexport var /** @type {?} */ TYPED_NULL_EXPR = new LiteralExpr(null, INFERRED_TYPE, null);\n/** @enum {number} */\nvar StmtModifier = {\n Final: 0,\n Private: 1,\n Exported: 2,\n};\nexport { StmtModifier };\nStmtModifier[StmtModifier.Final] = \"Final\";\nStmtModifier[StmtModifier.Private] = \"Private\";\nStmtModifier[StmtModifier.Exported] = \"Exported\";\n/**\n * @abstract\n */\nvar /**\n * @abstract\n */\nStatement = /** @class */ (function () {\n function Statement(modifiers, sourceSpan) {\n this.modifiers = modifiers || [];\n this.sourceSpan = sourceSpan || null;\n }\n /**\n * @param {?} modifier\n * @return {?}\n */\n Statement.prototype.hasModifier = /**\n * @param {?} modifier\n * @return {?}\n */\n function (modifier) { return /** @type {?} */ ((this.modifiers)).indexOf(modifier) !== -1; };\n return Statement;\n}());\n/**\n * @abstract\n */\nexport { Statement };\nfunction Statement_tsickle_Closure_declarations() {\n /** @type {?} */\n Statement.prototype.modifiers;\n /** @type {?} */\n Statement.prototype.sourceSpan;\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 * @abstract\n * @param {?} stmt\n * @return {?}\n */\n Statement.prototype.isEquivalent = function (stmt) { };\n /**\n * @abstract\n * @param {?} visitor\n * @param {?} context\n * @return {?}\n */\n Statement.prototype.visitStatement = function (visitor, context) { };\n}\nvar DeclareVarStmt = /** @class */ (function (_super) {\n tslib_1.__extends(DeclareVarStmt, _super);\n function DeclareVarStmt(name, value, type, modifiers, sourceSpan) {\n if (modifiers === void 0) { modifiers = null; }\n var _this = _super.call(this, modifiers, sourceSpan) || this;\n _this.name = name;\n _this.value = value;\n _this.type = type || value.type;\n return _this;\n }\n /**\n * @param {?} stmt\n * @return {?}\n */\n DeclareVarStmt.prototype.isEquivalent = /**\n * @param {?} stmt\n * @return {?}\n */\n function (stmt) {\n return stmt instanceof DeclareVarStmt && this.name === stmt.name &&\n this.value.isEquivalent(stmt.value);\n };\n /**\n * @param {?} visitor\n * @param {?} context\n * @return {?}\n */\n DeclareVarStmt.prototype.visitStatement = /**\n * @param {?} visitor\n * @param {?} context\n * @return {?}\n */\n function (visitor, context) {\n return visitor.visitDeclareVarStmt(this, context);\n };\n return DeclareVarStmt;\n}(Statement));\nexport { DeclareVarStmt };\nfunction DeclareVarStmt_tsickle_Closure_declarations() {\n /** @type {?} */\n DeclareVarStmt.prototype.type;\n /** @type {?} */\n DeclareVarStmt.prototype.name;\n /** @type {?} */\n DeclareVarStmt.prototype.value;\n}\nvar DeclareFunctionStmt = /** @class */ (function (_super) {\n tslib_1.__extends(DeclareFunctionStmt, _super);\n function DeclareFunctionStmt(name, params, statements, type, modifiers, sourceSpan) {\n if (modifiers === void 0) { modifiers = null; }\n var _this = _super.call(this, modifiers, sourceSpan) || this;\n _this.name = name;\n _this.params = params;\n _this.statements = statements;\n _this.type = type || null;\n return _this;\n }\n /**\n * @param {?} stmt\n * @return {?}\n */\n DeclareFunctionStmt.prototype.isEquivalent = /**\n * @param {?} stmt\n * @return {?}\n */\n function (stmt) {\n return stmt instanceof DeclareFunctionStmt && areAllEquivalent(this.params, stmt.params) &&\n areAllEquivalent(this.statements, stmt.statements);\n };\n /**\n * @param {?} visitor\n * @param {?} context\n * @return {?}\n */\n DeclareFunctionStmt.prototype.visitStatement = /**\n * @param {?} visitor\n * @param {?} context\n * @return {?}\n */\n function (visitor, context) {\n return visitor.visitDeclareFunctionStmt(this, context);\n };\n return DeclareFunctionStmt;\n}(Statement));\nexport { DeclareFunctionStmt };\nfunction DeclareFunctionStmt_tsickle_Closure_declarations() {\n /** @type {?} */\n DeclareFunctionStmt.prototype.type;\n /** @type {?} */\n DeclareFunctionStmt.prototype.name;\n /** @type {?} */\n DeclareFunctionStmt.prototype.params;\n /** @type {?} */\n DeclareFunctionStmt.prototype.statements;\n}\nvar ExpressionStatement = /** @class */ (function (_super) {\n tslib_1.__extends(ExpressionStatement, _super);\n function ExpressionStatement(expr, sourceSpan) {\n var _this = _super.call(this, null, sourceSpan) || this;\n _this.expr = expr;\n return _this;\n }\n /**\n * @param {?} stmt\n * @return {?}\n */\n ExpressionStatement.prototype.isEquivalent = /**\n * @param {?} stmt\n * @return {?}\n */\n function (stmt) {\n return stmt instanceof ExpressionStatement && this.expr.isEquivalent(stmt.expr);\n };\n /**\n * @param {?} visitor\n * @param {?} context\n * @return {?}\n */\n ExpressionStatement.prototype.visitStatement = /**\n * @param {?} visitor\n * @param {?} context\n * @return {?}\n */\n function (visitor, context) {\n return visitor.visitExpressionStmt(this, context);\n };\n return ExpressionStatement;\n}(Statement));\nexport { ExpressionStatement };\nfunction ExpressionStatement_tsickle_Closure_declarations() {\n /** @type {?} */\n ExpressionStatement.prototype.expr;\n}\nvar ReturnStatement = /** @class */ (function (_super) {\n tslib_1.__extends(ReturnStatement, _super);\n function ReturnStatement(value, sourceSpan) {\n var _this = _super.call(this, null, sourceSpan) || this;\n _this.value = value;\n return _this;\n }\n /**\n * @param {?} stmt\n * @return {?}\n */\n ReturnStatement.prototype.isEquivalent = /**\n * @param {?} stmt\n * @return {?}\n */\n function (stmt) {\n return stmt instanceof ReturnStatement && this.value.isEquivalent(stmt.value);\n };\n /**\n * @param {?} visitor\n * @param {?} context\n * @return {?}\n */\n ReturnStatement.prototype.visitStatement = /**\n * @param {?} visitor\n * @param {?} context\n * @return {?}\n */\n function (visitor, context) {\n return visitor.visitReturnStmt(this, context);\n };\n return ReturnStatement;\n}(Statement));\nexport { ReturnStatement };\nfunction ReturnStatement_tsickle_Closure_declarations() {\n /** @type {?} */\n ReturnStatement.prototype.value;\n}\nvar AbstractClassPart = /** @class */ (function () {\n function AbstractClassPart(type, modifiers) {\n this.modifiers = modifiers;\n if (!modifiers) {\n this.modifiers = [];\n }\n this.type = type || null;\n }\n /**\n * @param {?} modifier\n * @return {?}\n */\n AbstractClassPart.prototype.hasModifier = /**\n * @param {?} modifier\n * @return {?}\n */\n function (modifier) { return /** @type {?} */ ((this.modifiers)).indexOf(modifier) !== -1; };\n return AbstractClassPart;\n}());\nexport { AbstractClassPart };\nfunction AbstractClassPart_tsickle_Closure_declarations() {\n /** @type {?} */\n AbstractClassPart.prototype.type;\n /** @type {?} */\n AbstractClassPart.prototype.modifiers;\n}\nvar ClassField = /** @class */ (function (_super) {\n tslib_1.__extends(ClassField, _super);\n function ClassField(name, type, modifiers) {\n if (modifiers === void 0) { modifiers = null; }\n var _this = _super.call(this, type, modifiers) || this;\n _this.name = name;\n return _this;\n }\n /**\n * @param {?} f\n * @return {?}\n */\n ClassField.prototype.isEquivalent = /**\n * @param {?} f\n * @return {?}\n */\n function (f) { return this.name === f.name; };\n return ClassField;\n}(AbstractClassPart));\nexport { ClassField };\nfunction ClassField_tsickle_Closure_declarations() {\n /** @type {?} */\n ClassField.prototype.name;\n}\nvar ClassMethod = /** @class */ (function (_super) {\n tslib_1.__extends(ClassMethod, _super);\n function ClassMethod(name, params, body, type, modifiers) {\n if (modifiers === void 0) { modifiers = null; }\n var _this = _super.call(this, type, modifiers) || this;\n _this.name = name;\n _this.params = params;\n _this.body = body;\n return _this;\n }\n /**\n * @param {?} m\n * @return {?}\n */\n ClassMethod.prototype.isEquivalent = /**\n * @param {?} m\n * @return {?}\n */\n function (m) {\n return this.name === m.name && areAllEquivalent(this.body, m.body);\n };\n return ClassMethod;\n}(AbstractClassPart));\nexport { ClassMethod };\nfunction ClassMethod_tsickle_Closure_declarations() {\n /** @type {?} */\n ClassMethod.prototype.name;\n /** @type {?} */\n ClassMethod.prototype.params;\n /** @type {?} */\n ClassMethod.prototype.body;\n}\nvar ClassGetter = /** @class */ (function (_super) {\n tslib_1.__extends(ClassGetter, _super);\n function ClassGetter(name, body, type, modifiers) {\n if (modifiers === void 0) { modifiers = null; }\n var _this = _super.call(this, type, modifiers) || this;\n _this.name = name;\n _this.body = body;\n return _this;\n }\n /**\n * @param {?} m\n * @return {?}\n */\n ClassGetter.prototype.isEquivalent = /**\n * @param {?} m\n * @return {?}\n */\n function (m) {\n return this.name === m.name && areAllEquivalent(this.body, m.body);\n };\n return ClassGetter;\n}(AbstractClassPart));\nexport { ClassGetter };\nfunction ClassGetter_tsickle_Closure_declarations() {\n /** @type {?} */\n ClassGetter.prototype.name;\n /** @type {?} */\n ClassGetter.prototype.body;\n}\nvar ClassStmt = /** @class */ (function (_super) {\n tslib_1.__extends(ClassStmt, _super);\n function ClassStmt(name, parent, fields, getters, constructorMethod, methods, modifiers, sourceSpan) {\n if (modifiers === void 0) { modifiers = null; }\n var _this = _super.call(this, modifiers, sourceSpan) || this;\n _this.name = name;\n _this.parent = parent;\n _this.fields = fields;\n _this.getters = getters;\n _this.constructorMethod = constructorMethod;\n _this.methods = methods;\n return _this;\n }\n /**\n * @param {?} stmt\n * @return {?}\n */\n ClassStmt.prototype.isEquivalent = /**\n * @param {?} stmt\n * @return {?}\n */\n function (stmt) {\n return stmt instanceof ClassStmt && this.name === stmt.name &&\n nullSafeIsEquivalent(this.parent, stmt.parent) &&\n areAllEquivalent(this.fields, stmt.fields) &&\n areAllEquivalent(this.getters, stmt.getters) &&\n this.constructorMethod.isEquivalent(stmt.constructorMethod) &&\n areAllEquivalent(this.methods, stmt.methods);\n };\n /**\n * @param {?} visitor\n * @param {?} context\n * @return {?}\n */\n ClassStmt.prototype.visitStatement = /**\n * @param {?} visitor\n * @param {?} context\n * @return {?}\n */\n function (visitor, context) {\n return visitor.visitDeclareClassStmt(this, context);\n };\n return ClassStmt;\n}(Statement));\nexport { ClassStmt };\nfunction ClassStmt_tsickle_Closure_declarations() {\n /** @type {?} */\n ClassStmt.prototype.name;\n /** @type {?} */\n ClassStmt.prototype.parent;\n /** @type {?} */\n ClassStmt.prototype.fields;\n /** @type {?} */\n ClassStmt.prototype.getters;\n /** @type {?} */\n ClassStmt.prototype.constructorMethod;\n /** @type {?} */\n ClassStmt.prototype.methods;\n}\nvar IfStmt = /** @class */ (function (_super) {\n tslib_1.__extends(IfStmt, _super);\n function IfStmt(condition, trueCase, falseCase, sourceSpan) {\n if (falseCase === void 0) { falseCase = []; }\n var _this = _super.call(this, null, sourceSpan) || this;\n _this.condition = condition;\n _this.trueCase = trueCase;\n _this.falseCase = falseCase;\n return _this;\n }\n /**\n * @param {?} stmt\n * @return {?}\n */\n IfStmt.prototype.isEquivalent = /**\n * @param {?} stmt\n * @return {?}\n */\n function (stmt) {\n return stmt instanceof IfStmt && this.condition.isEquivalent(stmt.condition) &&\n areAllEquivalent(this.trueCase, stmt.trueCase) &&\n areAllEquivalent(this.falseCase, stmt.falseCase);\n };\n /**\n * @param {?} visitor\n * @param {?} context\n * @return {?}\n */\n IfStmt.prototype.visitStatement = /**\n * @param {?} visitor\n * @param {?} context\n * @return {?}\n */\n function (visitor, context) {\n return visitor.visitIfStmt(this, context);\n };\n return IfStmt;\n}(Statement));\nexport { IfStmt };\nfunction IfStmt_tsickle_Closure_declarations() {\n /** @type {?} */\n IfStmt.prototype.condition;\n /** @type {?} */\n IfStmt.prototype.trueCase;\n /** @type {?} */\n IfStmt.prototype.falseCase;\n}\nvar CommentStmt = /** @class */ (function (_super) {\n tslib_1.__extends(CommentStmt, _super);\n function CommentStmt(comment, sourceSpan) {\n var _this = _super.call(this, null, sourceSpan) || this;\n _this.comment = comment;\n return _this;\n }\n /**\n * @param {?} stmt\n * @return {?}\n */\n CommentStmt.prototype.isEquivalent = /**\n * @param {?} stmt\n * @return {?}\n */\n function (stmt) { return stmt instanceof CommentStmt; };\n /**\n * @param {?} visitor\n * @param {?} context\n * @return {?}\n */\n CommentStmt.prototype.visitStatement = /**\n * @param {?} visitor\n * @param {?} context\n * @return {?}\n */\n function (visitor, context) {\n return visitor.visitCommentStmt(this, context);\n };\n return CommentStmt;\n}(Statement));\nexport { CommentStmt };\nfunction CommentStmt_tsickle_Closure_declarations() {\n /** @type {?} */\n CommentStmt.prototype.comment;\n}\nvar TryCatchStmt = /** @class */ (function (_super) {\n tslib_1.__extends(TryCatchStmt, _super);\n function TryCatchStmt(bodyStmts, catchStmts, sourceSpan) {\n var _this = _super.call(this, null, sourceSpan) || this;\n _this.bodyStmts = bodyStmts;\n _this.catchStmts = catchStmts;\n return _this;\n }\n /**\n * @param {?} stmt\n * @return {?}\n */\n TryCatchStmt.prototype.isEquivalent = /**\n * @param {?} stmt\n * @return {?}\n */\n function (stmt) {\n return stmt instanceof TryCatchStmt && areAllEquivalent(this.bodyStmts, stmt.bodyStmts) &&\n areAllEquivalent(this.catchStmts, stmt.catchStmts);\n };\n /**\n * @param {?} visitor\n * @param {?} context\n * @return {?}\n */\n TryCatchStmt.prototype.visitStatement = /**\n * @param {?} visitor\n * @param {?} context\n * @return {?}\n */\n function (visitor, context) {\n return visitor.visitTryCatchStmt(this, context);\n };\n return TryCatchStmt;\n}(Statement));\nexport { TryCatchStmt };\nfunction TryCatchStmt_tsickle_Closure_declarations() {\n /** @type {?} */\n TryCatchStmt.prototype.bodyStmts;\n /** @type {?} */\n TryCatchStmt.prototype.catchStmts;\n}\nvar ThrowStmt = /** @class */ (function (_super) {\n tslib_1.__extends(ThrowStmt, _super);\n function ThrowStmt(error, sourceSpan) {\n var _this = _super.call(this, null, sourceSpan) || this;\n _this.error = error;\n return _this;\n }\n /**\n * @param {?} stmt\n * @return {?}\n */\n ThrowStmt.prototype.isEquivalent = /**\n * @param {?} stmt\n * @return {?}\n */\n function (stmt) {\n return stmt instanceof TryCatchStmt && this.error.isEquivalent(stmt.error);\n };\n /**\n * @param {?} visitor\n * @param {?} context\n * @return {?}\n */\n ThrowStmt.prototype.visitStatement = /**\n * @param {?} visitor\n * @param {?} context\n * @return {?}\n */\n function (visitor, context) {\n return visitor.visitThrowStmt(this, context);\n };\n return ThrowStmt;\n}(Statement));\nexport { ThrowStmt };\nfunction ThrowStmt_tsickle_Closure_declarations() {\n /** @type {?} */\n ThrowStmt.prototype.error;\n}\n/**\n * @record\n */\nexport function StatementVisitor() { }\nfunction StatementVisitor_tsickle_Closure_declarations() {\n /** @type {?} */\n StatementVisitor.prototype.visitDeclareVarStmt;\n /** @type {?} */\n StatementVisitor.prototype.visitDeclareFunctionStmt;\n /** @type {?} */\n StatementVisitor.prototype.visitExpressionStmt;\n /** @type {?} */\n StatementVisitor.prototype.visitReturnStmt;\n /** @type {?} */\n StatementVisitor.prototype.visitDeclareClassStmt;\n /** @type {?} */\n StatementVisitor.prototype.visitIfStmt;\n /** @type {?} */\n StatementVisitor.prototype.visitTryCatchStmt;\n /** @type {?} */\n StatementVisitor.prototype.visitThrowStmt;\n /** @type {?} */\n StatementVisitor.prototype.visitCommentStmt;\n}\nvar AstTransformer = /** @class */ (function () {\n function AstTransformer() {\n }\n /**\n * @param {?} expr\n * @param {?} context\n * @return {?}\n */\n AstTransformer.prototype.transformExpr = /**\n * @param {?} expr\n * @param {?} context\n * @return {?}\n */\n function (expr, context) { return expr; };\n /**\n * @param {?} stmt\n * @param {?} context\n * @return {?}\n */\n AstTransformer.prototype.transformStmt = /**\n * @param {?} stmt\n * @param {?} context\n * @return {?}\n */\n function (stmt, context) { return stmt; };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n AstTransformer.prototype.visitReadVarExpr = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) { return this.transformExpr(ast, context); };\n /**\n * @param {?} expr\n * @param {?} context\n * @return {?}\n */\n AstTransformer.prototype.visitWriteVarExpr = /**\n * @param {?} expr\n * @param {?} context\n * @return {?}\n */\n function (expr, context) {\n return this.transformExpr(new WriteVarExpr(expr.name, expr.value.visitExpression(this, context), expr.type, expr.sourceSpan), context);\n };\n /**\n * @param {?} expr\n * @param {?} context\n * @return {?}\n */\n AstTransformer.prototype.visitWriteKeyExpr = /**\n * @param {?} expr\n * @param {?} context\n * @return {?}\n */\n function (expr, context) {\n return this.transformExpr(new WriteKeyExpr(expr.receiver.visitExpression(this, context), expr.index.visitExpression(this, context), expr.value.visitExpression(this, context), expr.type, expr.sourceSpan), context);\n };\n /**\n * @param {?} expr\n * @param {?} context\n * @return {?}\n */\n AstTransformer.prototype.visitWritePropExpr = /**\n * @param {?} expr\n * @param {?} context\n * @return {?}\n */\n function (expr, context) {\n return this.transformExpr(new WritePropExpr(expr.receiver.visitExpression(this, context), expr.name, expr.value.visitExpression(this, context), expr.type, expr.sourceSpan), context);\n };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n AstTransformer.prototype.visitInvokeMethodExpr = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) {\n var /** @type {?} */ method = ast.builtin || ast.name;\n return this.transformExpr(new InvokeMethodExpr(ast.receiver.visitExpression(this, context), /** @type {?} */ ((method)), this.visitAllExpressions(ast.args, context), ast.type, ast.sourceSpan), context);\n };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n AstTransformer.prototype.visitInvokeFunctionExpr = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) {\n return this.transformExpr(new InvokeFunctionExpr(ast.fn.visitExpression(this, context), this.visitAllExpressions(ast.args, context), ast.type, ast.sourceSpan), context);\n };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n AstTransformer.prototype.visitInstantiateExpr = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) {\n return this.transformExpr(new InstantiateExpr(ast.classExpr.visitExpression(this, context), this.visitAllExpressions(ast.args, context), ast.type, ast.sourceSpan), context);\n };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n AstTransformer.prototype.visitLiteralExpr = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) { return this.transformExpr(ast, context); };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n AstTransformer.prototype.visitExternalExpr = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) {\n return this.transformExpr(ast, context);\n };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n AstTransformer.prototype.visitConditionalExpr = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) {\n return this.transformExpr(new ConditionalExpr(ast.condition.visitExpression(this, context), ast.trueCase.visitExpression(this, context), /** @type {?} */ ((ast.falseCase)).visitExpression(this, context), ast.type, ast.sourceSpan), context);\n };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n AstTransformer.prototype.visitNotExpr = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) {\n return this.transformExpr(new NotExpr(ast.condition.visitExpression(this, context), ast.sourceSpan), context);\n };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n AstTransformer.prototype.visitAssertNotNullExpr = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) {\n return this.transformExpr(new AssertNotNull(ast.condition.visitExpression(this, context), ast.sourceSpan), context);\n };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n AstTransformer.prototype.visitCastExpr = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) {\n return this.transformExpr(new CastExpr(ast.value.visitExpression(this, context), ast.type, ast.sourceSpan), context);\n };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n AstTransformer.prototype.visitFunctionExpr = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) {\n return this.transformExpr(new FunctionExpr(ast.params, this.visitAllStatements(ast.statements, context), ast.type, ast.sourceSpan), context);\n };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n AstTransformer.prototype.visitBinaryOperatorExpr = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) {\n return this.transformExpr(new BinaryOperatorExpr(ast.operator, ast.lhs.visitExpression(this, context), ast.rhs.visitExpression(this, context), ast.type, ast.sourceSpan), context);\n };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n AstTransformer.prototype.visitReadPropExpr = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) {\n return this.transformExpr(new ReadPropExpr(ast.receiver.visitExpression(this, context), ast.name, ast.type, ast.sourceSpan), context);\n };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n AstTransformer.prototype.visitReadKeyExpr = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) {\n return this.transformExpr(new ReadKeyExpr(ast.receiver.visitExpression(this, context), ast.index.visitExpression(this, context), ast.type, ast.sourceSpan), context);\n };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n AstTransformer.prototype.visitLiteralArrayExpr = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) {\n return this.transformExpr(new LiteralArrayExpr(this.visitAllExpressions(ast.entries, context), ast.type, ast.sourceSpan), context);\n };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n AstTransformer.prototype.visitLiteralMapExpr = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) {\n var _this = this;\n var /** @type {?} */ entries = ast.entries.map(function (entry) {\n return new LiteralMapEntry(entry.key, entry.value.visitExpression(_this, context), entry.quoted);\n });\n var /** @type {?} */ mapType = new MapType(ast.valueType, null);\n return this.transformExpr(new LiteralMapExpr(entries, mapType, ast.sourceSpan), context);\n };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n AstTransformer.prototype.visitCommaExpr = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) {\n return this.transformExpr(new CommaExpr(this.visitAllExpressions(ast.parts, context), ast.sourceSpan), context);\n };\n /**\n * @param {?} exprs\n * @param {?} context\n * @return {?}\n */\n AstTransformer.prototype.visitAllExpressions = /**\n * @param {?} exprs\n * @param {?} context\n * @return {?}\n */\n function (exprs, context) {\n var _this = this;\n return exprs.map(function (expr) { return expr.visitExpression(_this, context); });\n };\n /**\n * @param {?} stmt\n * @param {?} context\n * @return {?}\n */\n AstTransformer.prototype.visitDeclareVarStmt = /**\n * @param {?} stmt\n * @param {?} context\n * @return {?}\n */\n function (stmt, context) {\n return this.transformStmt(new DeclareVarStmt(stmt.name, stmt.value.visitExpression(this, context), stmt.type, stmt.modifiers, stmt.sourceSpan), context);\n };\n /**\n * @param {?} stmt\n * @param {?} context\n * @return {?}\n */\n AstTransformer.prototype.visitDeclareFunctionStmt = /**\n * @param {?} stmt\n * @param {?} context\n * @return {?}\n */\n function (stmt, context) {\n return this.transformStmt(new DeclareFunctionStmt(stmt.name, stmt.params, this.visitAllStatements(stmt.statements, context), stmt.type, stmt.modifiers, stmt.sourceSpan), context);\n };\n /**\n * @param {?} stmt\n * @param {?} context\n * @return {?}\n */\n AstTransformer.prototype.visitExpressionStmt = /**\n * @param {?} stmt\n * @param {?} context\n * @return {?}\n */\n function (stmt, context) {\n return this.transformStmt(new ExpressionStatement(stmt.expr.visitExpression(this, context), stmt.sourceSpan), context);\n };\n /**\n * @param {?} stmt\n * @param {?} context\n * @return {?}\n */\n AstTransformer.prototype.visitReturnStmt = /**\n * @param {?} stmt\n * @param {?} context\n * @return {?}\n */\n function (stmt, context) {\n return this.transformStmt(new ReturnStatement(stmt.value.visitExpression(this, context), stmt.sourceSpan), context);\n };\n /**\n * @param {?} stmt\n * @param {?} context\n * @return {?}\n */\n AstTransformer.prototype.visitDeclareClassStmt = /**\n * @param {?} stmt\n * @param {?} context\n * @return {?}\n */\n function (stmt, context) {\n var _this = this;\n var /** @type {?} */ parent = /** @type {?} */ ((stmt.parent)).visitExpression(this, context);\n var /** @type {?} */ getters = stmt.getters.map(function (getter) {\n return new ClassGetter(getter.name, _this.visitAllStatements(getter.body, context), getter.type, getter.modifiers);\n });\n var /** @type {?} */ ctorMethod = stmt.constructorMethod &&\n new ClassMethod(stmt.constructorMethod.name, stmt.constructorMethod.params, this.visitAllStatements(stmt.constructorMethod.body, context), stmt.constructorMethod.type, stmt.constructorMethod.modifiers);\n var /** @type {?} */ methods = stmt.methods.map(function (method) {\n return new ClassMethod(method.name, method.params, _this.visitAllStatements(method.body, context), method.type, method.modifiers);\n });\n return this.transformStmt(new ClassStmt(stmt.name, parent, stmt.fields, getters, ctorMethod, methods, stmt.modifiers, stmt.sourceSpan), context);\n };\n /**\n * @param {?} stmt\n * @param {?} context\n * @return {?}\n */\n AstTransformer.prototype.visitIfStmt = /**\n * @param {?} stmt\n * @param {?} context\n * @return {?}\n */\n function (stmt, context) {\n return this.transformStmt(new IfStmt(stmt.condition.visitExpression(this, context), this.visitAllStatements(stmt.trueCase, context), this.visitAllStatements(stmt.falseCase, context), stmt.sourceSpan), context);\n };\n /**\n * @param {?} stmt\n * @param {?} context\n * @return {?}\n */\n AstTransformer.prototype.visitTryCatchStmt = /**\n * @param {?} stmt\n * @param {?} context\n * @return {?}\n */\n function (stmt, context) {\n return this.transformStmt(new TryCatchStmt(this.visitAllStatements(stmt.bodyStmts, context), this.visitAllStatements(stmt.catchStmts, context), stmt.sourceSpan), context);\n };\n /**\n * @param {?} stmt\n * @param {?} context\n * @return {?}\n */\n AstTransformer.prototype.visitThrowStmt = /**\n * @param {?} stmt\n * @param {?} context\n * @return {?}\n */\n function (stmt, context) {\n return this.transformStmt(new ThrowStmt(stmt.error.visitExpression(this, context), stmt.sourceSpan), context);\n };\n /**\n * @param {?} stmt\n * @param {?} context\n * @return {?}\n */\n AstTransformer.prototype.visitCommentStmt = /**\n * @param {?} stmt\n * @param {?} context\n * @return {?}\n */\n function (stmt, context) {\n return this.transformStmt(stmt, context);\n };\n /**\n * @param {?} stmts\n * @param {?} context\n * @return {?}\n */\n AstTransformer.prototype.visitAllStatements = /**\n * @param {?} stmts\n * @param {?} context\n * @return {?}\n */\n function (stmts, context) {\n var _this = this;\n return stmts.map(function (stmt) { return stmt.visitStatement(_this, context); });\n };\n return AstTransformer;\n}());\nexport { AstTransformer };\nvar RecursiveAstVisitor = /** @class */ (function () {\n function RecursiveAstVisitor() {\n }\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n RecursiveAstVisitor.prototype.visitType = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) { return ast; };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n RecursiveAstVisitor.prototype.visitExpression = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) {\n if (ast.type) {\n ast.type.visitType(this, context);\n }\n return ast;\n };\n /**\n * @param {?} type\n * @param {?} context\n * @return {?}\n */\n RecursiveAstVisitor.prototype.visitBuiltintType = /**\n * @param {?} type\n * @param {?} context\n * @return {?}\n */\n function (type, context) { return this.visitType(type, context); };\n /**\n * @param {?} type\n * @param {?} context\n * @return {?}\n */\n RecursiveAstVisitor.prototype.visitExpressionType = /**\n * @param {?} type\n * @param {?} context\n * @return {?}\n */\n function (type, context) {\n type.value.visitExpression(this, context);\n return this.visitType(type, context);\n };\n /**\n * @param {?} type\n * @param {?} context\n * @return {?}\n */\n RecursiveAstVisitor.prototype.visitArrayType = /**\n * @param {?} type\n * @param {?} context\n * @return {?}\n */\n function (type, context) { return this.visitType(type, context); };\n /**\n * @param {?} type\n * @param {?} context\n * @return {?}\n */\n RecursiveAstVisitor.prototype.visitMapType = /**\n * @param {?} type\n * @param {?} context\n * @return {?}\n */\n function (type, context) { return this.visitType(type, context); };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n RecursiveAstVisitor.prototype.visitReadVarExpr = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) {\n return this.visitExpression(ast, context);\n };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n RecursiveAstVisitor.prototype.visitWriteVarExpr = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) {\n ast.value.visitExpression(this, context);\n return this.visitExpression(ast, context);\n };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n RecursiveAstVisitor.prototype.visitWriteKeyExpr = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) {\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 /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n RecursiveAstVisitor.prototype.visitWritePropExpr = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) {\n ast.receiver.visitExpression(this, context);\n ast.value.visitExpression(this, context);\n return this.visitExpression(ast, context);\n };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n RecursiveAstVisitor.prototype.visitInvokeMethodExpr = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) {\n ast.receiver.visitExpression(this, context);\n this.visitAllExpressions(ast.args, context);\n return this.visitExpression(ast, context);\n };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n RecursiveAstVisitor.prototype.visitInvokeFunctionExpr = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) {\n ast.fn.visitExpression(this, context);\n this.visitAllExpressions(ast.args, context);\n return this.visitExpression(ast, context);\n };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n RecursiveAstVisitor.prototype.visitInstantiateExpr = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) {\n ast.classExpr.visitExpression(this, context);\n this.visitAllExpressions(ast.args, context);\n return this.visitExpression(ast, context);\n };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n RecursiveAstVisitor.prototype.visitLiteralExpr = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) {\n return this.visitExpression(ast, context);\n };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n RecursiveAstVisitor.prototype.visitExternalExpr = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) {\n var _this = this;\n if (ast.typeParams) {\n ast.typeParams.forEach(function (type) { return type.visitType(_this, context); });\n }\n return this.visitExpression(ast, context);\n };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n RecursiveAstVisitor.prototype.visitConditionalExpr = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) {\n ast.condition.visitExpression(this, context);\n ast.trueCase.visitExpression(this, context); /** @type {?} */\n ((ast.falseCase)).visitExpression(this, context);\n return this.visitExpression(ast, context);\n };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n RecursiveAstVisitor.prototype.visitNotExpr = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) {\n ast.condition.visitExpression(this, context);\n return this.visitExpression(ast, context);\n };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n RecursiveAstVisitor.prototype.visitAssertNotNullExpr = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) {\n ast.condition.visitExpression(this, context);\n return this.visitExpression(ast, context);\n };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n RecursiveAstVisitor.prototype.visitCastExpr = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) {\n ast.value.visitExpression(this, context);\n return this.visitExpression(ast, context);\n };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n RecursiveAstVisitor.prototype.visitFunctionExpr = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) {\n this.visitAllStatements(ast.statements, context);\n return this.visitExpression(ast, context);\n };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n RecursiveAstVisitor.prototype.visitBinaryOperatorExpr = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) {\n ast.lhs.visitExpression(this, context);\n ast.rhs.visitExpression(this, context);\n return this.visitExpression(ast, context);\n };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n RecursiveAstVisitor.prototype.visitReadPropExpr = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) {\n ast.receiver.visitExpression(this, context);\n return this.visitExpression(ast, context);\n };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n RecursiveAstVisitor.prototype.visitReadKeyExpr = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) {\n ast.receiver.visitExpression(this, context);\n ast.index.visitExpression(this, context);\n return this.visitExpression(ast, context);\n };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n RecursiveAstVisitor.prototype.visitLiteralArrayExpr = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) {\n this.visitAllExpressions(ast.entries, context);\n return this.visitExpression(ast, context);\n };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n RecursiveAstVisitor.prototype.visitLiteralMapExpr = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) {\n var _this = this;\n ast.entries.forEach(function (entry) { return entry.value.visitExpression(_this, context); });\n return this.visitExpression(ast, context);\n };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n RecursiveAstVisitor.prototype.visitCommaExpr = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) {\n this.visitAllExpressions(ast.parts, context);\n return this.visitExpression(ast, context);\n };\n /**\n * @param {?} exprs\n * @param {?} context\n * @return {?}\n */\n RecursiveAstVisitor.prototype.visitAllExpressions = /**\n * @param {?} exprs\n * @param {?} context\n * @return {?}\n */\n function (exprs, context) {\n var _this = this;\n exprs.forEach(function (expr) { return expr.visitExpression(_this, context); });\n };\n /**\n * @param {?} stmt\n * @param {?} context\n * @return {?}\n */\n RecursiveAstVisitor.prototype.visitDeclareVarStmt = /**\n * @param {?} stmt\n * @param {?} context\n * @return {?}\n */\n function (stmt, context) {\n stmt.value.visitExpression(this, context);\n if (stmt.type) {\n stmt.type.visitType(this, context);\n }\n return stmt;\n };\n /**\n * @param {?} stmt\n * @param {?} context\n * @return {?}\n */\n RecursiveAstVisitor.prototype.visitDeclareFunctionStmt = /**\n * @param {?} stmt\n * @param {?} context\n * @return {?}\n */\n function (stmt, context) {\n this.visitAllStatements(stmt.statements, context);\n if (stmt.type) {\n stmt.type.visitType(this, context);\n }\n return stmt;\n };\n /**\n * @param {?} stmt\n * @param {?} context\n * @return {?}\n */\n RecursiveAstVisitor.prototype.visitExpressionStmt = /**\n * @param {?} stmt\n * @param {?} context\n * @return {?}\n */\n function (stmt, context) {\n stmt.expr.visitExpression(this, context);\n return stmt;\n };\n /**\n * @param {?} stmt\n * @param {?} context\n * @return {?}\n */\n RecursiveAstVisitor.prototype.visitReturnStmt = /**\n * @param {?} stmt\n * @param {?} context\n * @return {?}\n */\n function (stmt, context) {\n stmt.value.visitExpression(this, context);\n return stmt;\n };\n /**\n * @param {?} stmt\n * @param {?} context\n * @return {?}\n */\n RecursiveAstVisitor.prototype.visitDeclareClassStmt = /**\n * @param {?} stmt\n * @param {?} context\n * @return {?}\n */\n function (stmt, context) {\n var _this = this;\n /** @type {?} */ ((stmt.parent)).visitExpression(this, context);\n stmt.getters.forEach(function (getter) { return _this.visitAllStatements(getter.body, context); });\n if (stmt.constructorMethod) {\n this.visitAllStatements(stmt.constructorMethod.body, context);\n }\n stmt.methods.forEach(function (method) { return _this.visitAllStatements(method.body, context); });\n return stmt;\n };\n /**\n * @param {?} stmt\n * @param {?} context\n * @return {?}\n */\n RecursiveAstVisitor.prototype.visitIfStmt = /**\n * @param {?} stmt\n * @param {?} context\n * @return {?}\n */\n function (stmt, context) {\n stmt.condition.visitExpression(this, context);\n this.visitAllStatements(stmt.trueCase, context);\n this.visitAllStatements(stmt.falseCase, context);\n return stmt;\n };\n /**\n * @param {?} stmt\n * @param {?} context\n * @return {?}\n */\n RecursiveAstVisitor.prototype.visitTryCatchStmt = /**\n * @param {?} stmt\n * @param {?} context\n * @return {?}\n */\n function (stmt, context) {\n this.visitAllStatements(stmt.bodyStmts, context);\n this.visitAllStatements(stmt.catchStmts, context);\n return stmt;\n };\n /**\n * @param {?} stmt\n * @param {?} context\n * @return {?}\n */\n RecursiveAstVisitor.prototype.visitThrowStmt = /**\n * @param {?} stmt\n * @param {?} context\n * @return {?}\n */\n function (stmt, context) {\n stmt.error.visitExpression(this, context);\n return stmt;\n };\n /**\n * @param {?} stmt\n * @param {?} context\n * @return {?}\n */\n RecursiveAstVisitor.prototype.visitCommentStmt = /**\n * @param {?} stmt\n * @param {?} context\n * @return {?}\n */\n function (stmt, context) { return stmt; };\n /**\n * @param {?} stmts\n * @param {?} context\n * @return {?}\n */\n RecursiveAstVisitor.prototype.visitAllStatements = /**\n * @param {?} stmts\n * @param {?} context\n * @return {?}\n */\n function (stmts, context) {\n var _this = this;\n stmts.forEach(function (stmt) { return stmt.visitStatement(_this, context); });\n };\n return RecursiveAstVisitor;\n}());\nexport { RecursiveAstVisitor };\n/**\n * @param {?} stmts\n * @return {?}\n */\nexport function findReadVarNames(stmts) {\n var /** @type {?} */ visitor = new _ReadVarVisitor();\n visitor.visitAllStatements(stmts, null);\n return visitor.varNames;\n}\nvar _ReadVarVisitor = /** @class */ (function (_super) {\n tslib_1.__extends(_ReadVarVisitor, _super);\n function _ReadVarVisitor() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.varNames = new Set();\n return _this;\n }\n /**\n * @param {?} stmt\n * @param {?} context\n * @return {?}\n */\n _ReadVarVisitor.prototype.visitDeclareFunctionStmt = /**\n * @param {?} stmt\n * @param {?} context\n * @return {?}\n */\n function (stmt, context) {\n // Don't descend into nested functions\n return stmt;\n };\n /**\n * @param {?} stmt\n * @param {?} context\n * @return {?}\n */\n _ReadVarVisitor.prototype.visitDeclareClassStmt = /**\n * @param {?} stmt\n * @param {?} context\n * @return {?}\n */\n function (stmt, context) {\n // Don't descend into nested classes\n return stmt;\n };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n _ReadVarVisitor.prototype.visitReadVarExpr = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) {\n if (ast.name) {\n this.varNames.add(ast.name);\n }\n return null;\n };\n return _ReadVarVisitor;\n}(RecursiveAstVisitor));\nfunction _ReadVarVisitor_tsickle_Closure_declarations() {\n /** @type {?} */\n _ReadVarVisitor.prototype.varNames;\n}\n/**\n * @param {?} stmts\n * @return {?}\n */\nexport function collectExternalReferences(stmts) {\n var /** @type {?} */ visitor = new _FindExternalReferencesVisitor();\n visitor.visitAllStatements(stmts, null);\n return visitor.externalReferences;\n}\nvar _FindExternalReferencesVisitor = /** @class */ (function (_super) {\n tslib_1.__extends(_FindExternalReferencesVisitor, _super);\n function _FindExternalReferencesVisitor() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.externalReferences = [];\n return _this;\n }\n /**\n * @param {?} e\n * @param {?} context\n * @return {?}\n */\n _FindExternalReferencesVisitor.prototype.visitExternalExpr = /**\n * @param {?} e\n * @param {?} context\n * @return {?}\n */\n function (e, context) {\n this.externalReferences.push(e.value);\n return _super.prototype.visitExternalExpr.call(this, e, context);\n };\n return _FindExternalReferencesVisitor;\n}(RecursiveAstVisitor));\nfunction _FindExternalReferencesVisitor_tsickle_Closure_declarations() {\n /** @type {?} */\n _FindExternalReferencesVisitor.prototype.externalReferences;\n}\n/**\n * @param {?} stmt\n * @param {?} sourceSpan\n * @return {?}\n */\nexport function applySourceSpanToStatementIfNeeded(stmt, sourceSpan) {\n if (!sourceSpan) {\n return stmt;\n }\n var /** @type {?} */ transformer = new _ApplySourceSpanTransformer(sourceSpan);\n return stmt.visitStatement(transformer, null);\n}\n/**\n * @param {?} expr\n * @param {?} sourceSpan\n * @return {?}\n */\nexport function applySourceSpanToExpressionIfNeeded(expr, sourceSpan) {\n if (!sourceSpan) {\n return expr;\n }\n var /** @type {?} */ transformer = new _ApplySourceSpanTransformer(sourceSpan);\n return expr.visitExpression(transformer, null);\n}\nvar _ApplySourceSpanTransformer = /** @class */ (function (_super) {\n tslib_1.__extends(_ApplySourceSpanTransformer, _super);\n function _ApplySourceSpanTransformer(sourceSpan) {\n var _this = _super.call(this) || this;\n _this.sourceSpan = sourceSpan;\n return _this;\n }\n /**\n * @param {?} obj\n * @return {?}\n */\n _ApplySourceSpanTransformer.prototype._clone = /**\n * @param {?} obj\n * @return {?}\n */\n function (obj) {\n var /** @type {?} */ clone = Object.create(obj.constructor.prototype);\n for (var /** @type {?} */ prop in obj) {\n clone[prop] = obj[prop];\n }\n return clone;\n };\n /**\n * @param {?} expr\n * @param {?} context\n * @return {?}\n */\n _ApplySourceSpanTransformer.prototype.transformExpr = /**\n * @param {?} expr\n * @param {?} context\n * @return {?}\n */\n function (expr, context) {\n if (!expr.sourceSpan) {\n expr = this._clone(expr);\n expr.sourceSpan = this.sourceSpan;\n }\n return expr;\n };\n /**\n * @param {?} stmt\n * @param {?} context\n * @return {?}\n */\n _ApplySourceSpanTransformer.prototype.transformStmt = /**\n * @param {?} stmt\n * @param {?} context\n * @return {?}\n */\n function (stmt, context) {\n if (!stmt.sourceSpan) {\n stmt = this._clone(stmt);\n stmt.sourceSpan = this.sourceSpan;\n }\n return stmt;\n };\n return _ApplySourceSpanTransformer;\n}(AstTransformer));\nfunction _ApplySourceSpanTransformer_tsickle_Closure_declarations() {\n /** @type {?} */\n _ApplySourceSpanTransformer.prototype.sourceSpan;\n}\n/**\n * @param {?} name\n * @param {?=} type\n * @param {?=} sourceSpan\n * @return {?}\n */\nexport function variable(name, type, sourceSpan) {\n return new ReadVarExpr(name, type, sourceSpan);\n}\n/**\n * @param {?} id\n * @param {?=} typeParams\n * @param {?=} sourceSpan\n * @return {?}\n */\nexport function importExpr(id, typeParams, sourceSpan) {\n if (typeParams === void 0) { typeParams = null; }\n return new ExternalExpr(id, null, typeParams, sourceSpan);\n}\n/**\n * @param {?} id\n * @param {?=} typeParams\n * @param {?=} typeModifiers\n * @return {?}\n */\nexport function importType(id, typeParams, typeModifiers) {\n if (typeParams === void 0) { typeParams = null; }\n if (typeModifiers === void 0) { typeModifiers = null; }\n return id != null ? expressionType(importExpr(id, typeParams, null), typeModifiers) : null;\n}\n/**\n * @param {?} expr\n * @param {?=} typeModifiers\n * @return {?}\n */\nexport function expressionType(expr, typeModifiers) {\n if (typeModifiers === void 0) { typeModifiers = null; }\n return new ExpressionType(expr, typeModifiers);\n}\n/**\n * @param {?} values\n * @param {?=} type\n * @param {?=} sourceSpan\n * @return {?}\n */\nexport function literalArr(values, type, sourceSpan) {\n return new LiteralArrayExpr(values, type, sourceSpan);\n}\n/**\n * @param {?} values\n * @param {?=} type\n * @return {?}\n */\nexport function literalMap(values, type) {\n if (type === void 0) { type = null; }\n return new LiteralMapExpr(values.map(function (e) { return new LiteralMapEntry(e.key, e.value, e.quoted); }), type, null);\n}\n/**\n * @param {?} expr\n * @param {?=} sourceSpan\n * @return {?}\n */\nexport function not(expr, sourceSpan) {\n return new NotExpr(expr, sourceSpan);\n}\n/**\n * @param {?} expr\n * @param {?=} sourceSpan\n * @return {?}\n */\nexport function assertNotNull(expr, sourceSpan) {\n return new AssertNotNull(expr, sourceSpan);\n}\n/**\n * @param {?} params\n * @param {?} body\n * @param {?=} type\n * @param {?=} sourceSpan\n * @return {?}\n */\nexport function fn(params, body, type, sourceSpan) {\n return new FunctionExpr(params, body, type, sourceSpan);\n}\n/**\n * @param {?} value\n * @param {?=} type\n * @param {?=} sourceSpan\n * @return {?}\n */\nexport function literal(value, type, sourceSpan) {\n return new LiteralExpr(value, type, sourceSpan);\n}\n//# sourceMappingURL=output_ast.js.map","/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this 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 tslib_1 from \"tslib\";\nimport { tokenName, tokenReference } from './compile_metadata';\nimport { Identifiers, createTokenForExternalReference } from './identifiers';\nimport { ParseError } from './parse_util';\nimport { ProviderAst, ProviderAstType } from './template_parser/template_ast';\nvar ProviderError = /** @class */ (function (_super) {\n tslib_1.__extends(ProviderError, _super);\n function ProviderError(message, span) {\n return _super.call(this, span, message) || this;\n }\n return ProviderError;\n}(ParseError));\nexport { ProviderError };\n/**\n * @record\n */\nexport function QueryWithId() { }\nfunction QueryWithId_tsickle_Closure_declarations() {\n /** @type {?} */\n QueryWithId.prototype.meta;\n /** @type {?} */\n QueryWithId.prototype.queryId;\n}\nvar ProviderViewContext = /** @class */ (function () {\n function ProviderViewContext(reflector, component) {\n var _this = this;\n this.reflector = reflector;\n this.component = component;\n this.errors = [];\n this.viewQueries = _getViewQueries(component);\n this.viewProviders = new Map();\n component.viewProviders.forEach(function (provider) {\n if (_this.viewProviders.get(tokenReference(provider.token)) == null) {\n _this.viewProviders.set(tokenReference(provider.token), true);\n }\n });\n }\n return ProviderViewContext;\n}());\nexport { ProviderViewContext };\nfunction ProviderViewContext_tsickle_Closure_declarations() {\n /**\n * \\@internal\n * @type {?}\n */\n ProviderViewContext.prototype.viewQueries;\n /**\n * \\@internal\n * @type {?}\n */\n ProviderViewContext.prototype.viewProviders;\n /** @type {?} */\n ProviderViewContext.prototype.errors;\n /** @type {?} */\n ProviderViewContext.prototype.reflector;\n /** @type {?} */\n ProviderViewContext.prototype.component;\n}\nvar ProviderElementContext = /** @class */ (function () {\n function ProviderElementContext(viewContext, _parent, _isViewRoot, _directiveAsts, attrs, refs, isTemplate, contentQueryStartId, _sourceSpan) {\n var _this = this;\n this.viewContext = viewContext;\n this._parent = _parent;\n this._isViewRoot = _isViewRoot;\n this._directiveAsts = _directiveAsts;\n this._sourceSpan = _sourceSpan;\n this._transformedProviders = new Map();\n this._seenProviders = new Map();\n this._queriedTokens = new Map();\n this.transformedHasViewContainer = false;\n this._attrs = {};\n attrs.forEach(function (attrAst) { return _this._attrs[attrAst.name] = attrAst.value; });\n var /** @type {?} */ directivesMeta = _directiveAsts.map(function (directiveAst) { return directiveAst.directive; });\n this._allProviders =\n _resolveProvidersFromDirectives(directivesMeta, _sourceSpan, viewContext.errors);\n this._contentQueries = _getContentQueries(contentQueryStartId, directivesMeta);\n Array.from(this._allProviders.values()).forEach(function (provider) {\n _this._addQueryReadsTo(provider.token, provider.token, _this._queriedTokens);\n });\n if (isTemplate) {\n var /** @type {?} */ templateRefId = createTokenForExternalReference(this.viewContext.reflector, Identifiers.TemplateRef);\n this._addQueryReadsTo(templateRefId, templateRefId, this._queriedTokens);\n }\n refs.forEach(function (refAst) {\n var /** @type {?} */ defaultQueryValue = refAst.value ||\n createTokenForExternalReference(_this.viewContext.reflector, Identifiers.ElementRef);\n _this._addQueryReadsTo({ value: refAst.name }, defaultQueryValue, _this._queriedTokens);\n });\n if (this._queriedTokens.get(this.viewContext.reflector.resolveExternalReference(Identifiers.ViewContainerRef))) {\n this.transformedHasViewContainer = true;\n }\n // create the providers that we know are eager first\n Array.from(this._allProviders.values()).forEach(function (provider) {\n var /** @type {?} */ eager = provider.eager || _this._queriedTokens.get(tokenReference(provider.token));\n if (eager) {\n _this._getOrCreateLocalProvider(provider.providerType, provider.token, true);\n }\n });\n }\n /**\n * @return {?}\n */\n ProviderElementContext.prototype.afterElement = /**\n * @return {?}\n */\n function () {\n var _this = this;\n // collect lazy providers\n Array.from(this._allProviders.values()).forEach(function (provider) {\n _this._getOrCreateLocalProvider(provider.providerType, provider.token, false);\n });\n };\n Object.defineProperty(ProviderElementContext.prototype, \"transformProviders\", {\n get: /**\n * @return {?}\n */\n function () {\n // Note: Maps keep their insertion order.\n var /** @type {?} */ lazyProviders = [];\n var /** @type {?} */ eagerProviders = [];\n this._transformedProviders.forEach(function (provider) {\n if (provider.eager) {\n eagerProviders.push(provider);\n }\n else {\n lazyProviders.push(provider);\n }\n });\n return lazyProviders.concat(eagerProviders);\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ProviderElementContext.prototype, \"transformedDirectiveAsts\", {\n get: /**\n * @return {?}\n */\n function () {\n var /** @type {?} */ sortedProviderTypes = this.transformProviders.map(function (provider) { return provider.token.identifier; });\n var /** @type {?} */ sortedDirectives = this._directiveAsts.slice();\n sortedDirectives.sort(function (dir1, dir2) {\n return sortedProviderTypes.indexOf(dir1.directive.type) -\n sortedProviderTypes.indexOf(dir2.directive.type);\n });\n return sortedDirectives;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(ProviderElementContext.prototype, \"queryMatches\", {\n get: /**\n * @return {?}\n */\n function () {\n var /** @type {?} */ allMatches = [];\n this._queriedTokens.forEach(function (matches) { allMatches.push.apply(allMatches, matches); });\n return allMatches;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @param {?} token\n * @param {?} defaultValue\n * @param {?} queryReadTokens\n * @return {?}\n */\n ProviderElementContext.prototype._addQueryReadsTo = /**\n * @param {?} token\n * @param {?} defaultValue\n * @param {?} queryReadTokens\n * @return {?}\n */\n function (token, defaultValue, queryReadTokens) {\n this._getQueriesFor(token).forEach(function (query) {\n var /** @type {?} */ queryValue = query.meta.read || defaultValue;\n var /** @type {?} */ tokenRef = tokenReference(queryValue);\n var /** @type {?} */ queryMatches = queryReadTokens.get(tokenRef);\n if (!queryMatches) {\n queryMatches = [];\n queryReadTokens.set(tokenRef, queryMatches);\n }\n queryMatches.push({ queryId: query.queryId, value: queryValue });\n });\n };\n /**\n * @param {?} token\n * @return {?}\n */\n ProviderElementContext.prototype._getQueriesFor = /**\n * @param {?} token\n * @return {?}\n */\n function (token) {\n var /** @type {?} */ result = [];\n var /** @type {?} */ currentEl = this;\n var /** @type {?} */ distance = 0;\n var /** @type {?} */ queries;\n while (currentEl !== null) {\n queries = currentEl._contentQueries.get(tokenReference(token));\n if (queries) {\n result.push.apply(result, queries.filter(function (query) { return query.meta.descendants || distance <= 1; }));\n }\n if (currentEl._directiveAsts.length > 0) {\n distance++;\n }\n currentEl = currentEl._parent;\n }\n queries = this.viewContext.viewQueries.get(tokenReference(token));\n if (queries) {\n result.push.apply(result, queries);\n }\n return result;\n };\n /**\n * @param {?} requestingProviderType\n * @param {?} token\n * @param {?} eager\n * @return {?}\n */\n ProviderElementContext.prototype._getOrCreateLocalProvider = /**\n * @param {?} requestingProviderType\n * @param {?} token\n * @param {?} eager\n * @return {?}\n */\n function (requestingProviderType, token, eager) {\n var _this = this;\n var /** @type {?} */ resolvedProvider = this._allProviders.get(tokenReference(token));\n if (!resolvedProvider || ((requestingProviderType === ProviderAstType.Directive ||\n requestingProviderType === ProviderAstType.PublicService) &&\n resolvedProvider.providerType === ProviderAstType.PrivateService) ||\n ((requestingProviderType === ProviderAstType.PrivateService ||\n requestingProviderType === ProviderAstType.PublicService) &&\n resolvedProvider.providerType === ProviderAstType.Builtin)) {\n return null;\n }\n var /** @type {?} */ transformedProviderAst = this._transformedProviders.get(tokenReference(token));\n if (transformedProviderAst) {\n return transformedProviderAst;\n }\n if (this._seenProviders.get(tokenReference(token)) != null) {\n this.viewContext.errors.push(new ProviderError(\"Cannot instantiate cyclic dependency! \" + tokenName(token), this._sourceSpan));\n return null;\n }\n this._seenProviders.set(tokenReference(token), true);\n var /** @type {?} */ transformedProviders = resolvedProvider.providers.map(function (provider) {\n var /** @type {?} */ transformedUseValue = provider.useValue;\n var /** @type {?} */ transformedUseExisting = /** @type {?} */ ((provider.useExisting));\n var /** @type {?} */ transformedDeps = /** @type {?} */ ((undefined));\n if (provider.useExisting != null) {\n var /** @type {?} */ existingDiDep = /** @type {?} */ ((_this._getDependency(resolvedProvider.providerType, { token: provider.useExisting }, eager)));\n if (existingDiDep.token != null) {\n transformedUseExisting = existingDiDep.token;\n }\n else {\n transformedUseExisting = /** @type {?} */ ((null));\n transformedUseValue = existingDiDep.value;\n }\n }\n else if (provider.useFactory) {\n var /** @type {?} */ deps = provider.deps || provider.useFactory.diDeps;\n transformedDeps =\n deps.map(function (dep) { return ((_this._getDependency(resolvedProvider.providerType, dep, eager))); });\n }\n else if (provider.useClass) {\n var /** @type {?} */ deps = provider.deps || provider.useClass.diDeps;\n transformedDeps =\n deps.map(function (dep) { return ((_this._getDependency(resolvedProvider.providerType, dep, eager))); });\n }\n return _transformProvider(provider, {\n useExisting: transformedUseExisting,\n useValue: transformedUseValue,\n deps: transformedDeps\n });\n });\n transformedProviderAst =\n _transformProviderAst(resolvedProvider, { eager: eager, providers: transformedProviders });\n this._transformedProviders.set(tokenReference(token), transformedProviderAst);\n return transformedProviderAst;\n };\n /**\n * @param {?} requestingProviderType\n * @param {?} dep\n * @param {?=} eager\n * @return {?}\n */\n ProviderElementContext.prototype._getLocalDependency = /**\n * @param {?} requestingProviderType\n * @param {?} dep\n * @param {?=} eager\n * @return {?}\n */\n function (requestingProviderType, dep, eager) {\n if (eager === void 0) { eager = false; }\n if (dep.isAttribute) {\n var /** @type {?} */ attrValue = this._attrs[/** @type {?} */ ((dep.token)).value];\n return { isValue: true, value: attrValue == null ? null : attrValue };\n }\n if (dep.token != null) {\n // access builtints\n if ((requestingProviderType === ProviderAstType.Directive ||\n requestingProviderType === ProviderAstType.Component)) {\n if (tokenReference(dep.token) ===\n this.viewContext.reflector.resolveExternalReference(Identifiers.Renderer) ||\n tokenReference(dep.token) ===\n this.viewContext.reflector.resolveExternalReference(Identifiers.ElementRef) ||\n tokenReference(dep.token) ===\n this.viewContext.reflector.resolveExternalReference(Identifiers.ChangeDetectorRef) ||\n tokenReference(dep.token) ===\n this.viewContext.reflector.resolveExternalReference(Identifiers.TemplateRef)) {\n return dep;\n }\n if (tokenReference(dep.token) ===\n this.viewContext.reflector.resolveExternalReference(Identifiers.ViewContainerRef)) {\n (/** @type {?} */ (this)).transformedHasViewContainer = true;\n }\n }\n // access the injector\n if (tokenReference(dep.token) ===\n this.viewContext.reflector.resolveExternalReference(Identifiers.Injector)) {\n return dep;\n }\n // access providers\n if (this._getOrCreateLocalProvider(requestingProviderType, dep.token, eager) != null) {\n return dep;\n }\n }\n return null;\n };\n /**\n * @param {?} requestingProviderType\n * @param {?} dep\n * @param {?=} eager\n * @return {?}\n */\n ProviderElementContext.prototype._getDependency = /**\n * @param {?} requestingProviderType\n * @param {?} dep\n * @param {?=} eager\n * @return {?}\n */\n function (requestingProviderType, dep, eager) {\n if (eager === void 0) { eager = false; }\n var /** @type {?} */ currElement = this;\n var /** @type {?} */ currEager = eager;\n var /** @type {?} */ result = null;\n if (!dep.isSkipSelf) {\n result = this._getLocalDependency(requestingProviderType, dep, eager);\n }\n if (dep.isSelf) {\n if (!result && dep.isOptional) {\n result = { isValue: true, value: null };\n }\n }\n else {\n // check parent elements\n while (!result && currElement._parent) {\n var /** @type {?} */ prevElement = currElement;\n currElement = currElement._parent;\n if (prevElement._isViewRoot) {\n currEager = false;\n }\n result = currElement._getLocalDependency(ProviderAstType.PublicService, dep, currEager);\n }\n // check @Host restriction\n if (!result) {\n if (!dep.isHost || this.viewContext.component.isHost ||\n this.viewContext.component.type.reference === tokenReference(/** @type {?} */ ((dep.token))) ||\n this.viewContext.viewProviders.get(tokenReference(/** @type {?} */ ((dep.token)))) != null) {\n result = dep;\n }\n else {\n result = dep.isOptional ? result = { isValue: true, value: null } : null;\n }\n }\n }\n if (!result) {\n this.viewContext.errors.push(new ProviderError(\"No provider for \" + tokenName((/** @type {?} */ ((dep.token)))), this._sourceSpan));\n }\n return result;\n };\n return ProviderElementContext;\n}());\nexport { ProviderElementContext };\nfunction ProviderElementContext_tsickle_Closure_declarations() {\n /** @type {?} */\n ProviderElementContext.prototype._contentQueries;\n /** @type {?} */\n ProviderElementContext.prototype._transformedProviders;\n /** @type {?} */\n ProviderElementContext.prototype._seenProviders;\n /** @type {?} */\n ProviderElementContext.prototype._allProviders;\n /** @type {?} */\n ProviderElementContext.prototype._attrs;\n /** @type {?} */\n ProviderElementContext.prototype._queriedTokens;\n /** @type {?} */\n ProviderElementContext.prototype.transformedHasViewContainer;\n /** @type {?} */\n ProviderElementContext.prototype.viewContext;\n /** @type {?} */\n ProviderElementContext.prototype._parent;\n /** @type {?} */\n ProviderElementContext.prototype._isViewRoot;\n /** @type {?} */\n ProviderElementContext.prototype._directiveAsts;\n /** @type {?} */\n ProviderElementContext.prototype._sourceSpan;\n}\nvar NgModuleProviderAnalyzer = /** @class */ (function () {\n function NgModuleProviderAnalyzer(reflector, ngModule, extraProviders, sourceSpan) {\n var _this = this;\n this.reflector = reflector;\n this._transformedProviders = new Map();\n this._seenProviders = new Map();\n this._errors = [];\n this._allProviders = new Map();\n ngModule.transitiveModule.modules.forEach(function (ngModuleType) {\n var /** @type {?} */ ngModuleProvider = { token: { identifier: ngModuleType }, useClass: ngModuleType };\n _resolveProviders([ngModuleProvider], ProviderAstType.PublicService, true, sourceSpan, _this._errors, _this._allProviders);\n });\n _resolveProviders(ngModule.transitiveModule.providers.map(function (entry) { return entry.provider; }).concat(extraProviders), ProviderAstType.PublicService, false, sourceSpan, this._errors, this._allProviders);\n }\n /**\n * @return {?}\n */\n NgModuleProviderAnalyzer.prototype.parse = /**\n * @return {?}\n */\n function () {\n var _this = this;\n Array.from(this._allProviders.values()).forEach(function (provider) {\n _this._getOrCreateLocalProvider(provider.token, provider.eager);\n });\n if (this._errors.length > 0) {\n var /** @type {?} */ errorString = this._errors.join('\\n');\n throw new Error(\"Provider parse errors:\\n\" + errorString);\n }\n // Note: Maps keep their insertion order.\n var /** @type {?} */ lazyProviders = [];\n var /** @type {?} */ eagerProviders = [];\n this._transformedProviders.forEach(function (provider) {\n if (provider.eager) {\n eagerProviders.push(provider);\n }\n else {\n lazyProviders.push(provider);\n }\n });\n return lazyProviders.concat(eagerProviders);\n };\n /**\n * @param {?} token\n * @param {?} eager\n * @return {?}\n */\n NgModuleProviderAnalyzer.prototype._getOrCreateLocalProvider = /**\n * @param {?} token\n * @param {?} eager\n * @return {?}\n */\n function (token, eager) {\n var _this = this;\n var /** @type {?} */ resolvedProvider = this._allProviders.get(tokenReference(token));\n if (!resolvedProvider) {\n return null;\n }\n var /** @type {?} */ transformedProviderAst = this._transformedProviders.get(tokenReference(token));\n if (transformedProviderAst) {\n return transformedProviderAst;\n }\n if (this._seenProviders.get(tokenReference(token)) != null) {\n this._errors.push(new ProviderError(\"Cannot instantiate cyclic dependency! \" + tokenName(token), resolvedProvider.sourceSpan));\n return null;\n }\n this._seenProviders.set(tokenReference(token), true);\n var /** @type {?} */ transformedProviders = resolvedProvider.providers.map(function (provider) {\n var /** @type {?} */ transformedUseValue = provider.useValue;\n var /** @type {?} */ transformedUseExisting = /** @type {?} */ ((provider.useExisting));\n var /** @type {?} */ transformedDeps = /** @type {?} */ ((undefined));\n if (provider.useExisting != null) {\n var /** @type {?} */ existingDiDep = _this._getDependency({ token: provider.useExisting }, eager, resolvedProvider.sourceSpan);\n if (existingDiDep.token != null) {\n transformedUseExisting = existingDiDep.token;\n }\n else {\n transformedUseExisting = /** @type {?} */ ((null));\n transformedUseValue = existingDiDep.value;\n }\n }\n else if (provider.useFactory) {\n var /** @type {?} */ deps = provider.deps || provider.useFactory.diDeps;\n transformedDeps =\n deps.map(function (dep) { return _this._getDependency(dep, eager, resolvedProvider.sourceSpan); });\n }\n else if (provider.useClass) {\n var /** @type {?} */ deps = provider.deps || provider.useClass.diDeps;\n transformedDeps =\n deps.map(function (dep) { return _this._getDependency(dep, eager, resolvedProvider.sourceSpan); });\n }\n return _transformProvider(provider, {\n useExisting: transformedUseExisting,\n useValue: transformedUseValue,\n deps: transformedDeps\n });\n });\n transformedProviderAst =\n _transformProviderAst(resolvedProvider, { eager: eager, providers: transformedProviders });\n this._transformedProviders.set(tokenReference(token), transformedProviderAst);\n return transformedProviderAst;\n };\n /**\n * @param {?} dep\n * @param {?=} eager\n * @param {?=} requestorSourceSpan\n * @return {?}\n */\n NgModuleProviderAnalyzer.prototype._getDependency = /**\n * @param {?} dep\n * @param {?=} eager\n * @param {?=} requestorSourceSpan\n * @return {?}\n */\n function (dep, eager, requestorSourceSpan) {\n if (eager === void 0) { eager = false; }\n var /** @type {?} */ foundLocal = false;\n if (!dep.isSkipSelf && dep.token != null) {\n // access the injector\n if (tokenReference(dep.token) ===\n this.reflector.resolveExternalReference(Identifiers.Injector) ||\n tokenReference(dep.token) ===\n this.reflector.resolveExternalReference(Identifiers.ComponentFactoryResolver)) {\n foundLocal = true;\n // access providers\n }\n else if (this._getOrCreateLocalProvider(dep.token, eager) != null) {\n foundLocal = true;\n }\n }\n var /** @type {?} */ result = dep;\n if (dep.isSelf && !foundLocal) {\n if (dep.isOptional) {\n result = { isValue: true, value: null };\n }\n else {\n this._errors.push(new ProviderError(\"No provider for \" + tokenName((/** @type {?} */ ((dep.token)))), requestorSourceSpan));\n }\n }\n return result;\n };\n return NgModuleProviderAnalyzer;\n}());\nexport { NgModuleProviderAnalyzer };\nfunction NgModuleProviderAnalyzer_tsickle_Closure_declarations() {\n /** @type {?} */\n NgModuleProviderAnalyzer.prototype._transformedProviders;\n /** @type {?} */\n NgModuleProviderAnalyzer.prototype._seenProviders;\n /** @type {?} */\n NgModuleProviderAnalyzer.prototype._allProviders;\n /** @type {?} */\n NgModuleProviderAnalyzer.prototype._errors;\n /** @type {?} */\n NgModuleProviderAnalyzer.prototype.reflector;\n}\n/**\n * @param {?} provider\n * @param {?} __1\n * @return {?}\n */\nfunction _transformProvider(provider, _a) {\n var useExisting = _a.useExisting, useValue = _a.useValue, deps = _a.deps;\n return {\n token: provider.token,\n useClass: provider.useClass,\n useExisting: useExisting,\n useFactory: provider.useFactory,\n useValue: useValue,\n deps: deps,\n multi: provider.multi\n };\n}\n/**\n * @param {?} provider\n * @param {?} __1\n * @return {?}\n */\nfunction _transformProviderAst(provider, _a) {\n var eager = _a.eager, providers = _a.providers;\n return new ProviderAst(provider.token, provider.multiProvider, provider.eager || eager, providers, provider.providerType, provider.lifecycleHooks, provider.sourceSpan);\n}\n/**\n * @param {?} directives\n * @param {?} sourceSpan\n * @param {?} targetErrors\n * @return {?}\n */\nfunction _resolveProvidersFromDirectives(directives, sourceSpan, targetErrors) {\n var /** @type {?} */ providersByToken = new Map();\n directives.forEach(function (directive) {\n var /** @type {?} */ dirProvider = { token: { identifier: directive.type }, useClass: directive.type };\n _resolveProviders([dirProvider], directive.isComponent ? ProviderAstType.Component : ProviderAstType.Directive, true, sourceSpan, targetErrors, providersByToken);\n });\n // Note: directives need to be able to overwrite providers of a component!\n var /** @type {?} */ directivesWithComponentFirst = directives.filter(function (dir) { return dir.isComponent; }).concat(directives.filter(function (dir) { return !dir.isComponent; }));\n directivesWithComponentFirst.forEach(function (directive) {\n _resolveProviders(directive.providers, ProviderAstType.PublicService, false, sourceSpan, targetErrors, providersByToken);\n _resolveProviders(directive.viewProviders, ProviderAstType.PrivateService, false, sourceSpan, targetErrors, providersByToken);\n });\n return providersByToken;\n}\n/**\n * @param {?} providers\n * @param {?} providerType\n * @param {?} eager\n * @param {?} sourceSpan\n * @param {?} targetErrors\n * @param {?} targetProvidersByToken\n * @return {?}\n */\nfunction _resolveProviders(providers, providerType, eager, sourceSpan, targetErrors, targetProvidersByToken) {\n providers.forEach(function (provider) {\n var /** @type {?} */ resolvedProvider = targetProvidersByToken.get(tokenReference(provider.token));\n if (resolvedProvider != null && !!resolvedProvider.multiProvider !== !!provider.multi) {\n targetErrors.push(new ProviderError(\"Mixing multi and non multi provider is not possible for token \" + tokenName(resolvedProvider.token), sourceSpan));\n }\n if (!resolvedProvider) {\n var /** @type {?} */ lifecycleHooks = provider.token.identifier &&\n (/** @type {?} */ (provider.token.identifier)).lifecycleHooks ?\n (/** @type {?} */ (provider.token.identifier)).lifecycleHooks :\n [];\n var /** @type {?} */ isUseValue = !(provider.useClass || provider.useExisting || provider.useFactory);\n resolvedProvider = new ProviderAst(provider.token, !!provider.multi, eager || isUseValue, [provider], providerType, lifecycleHooks, sourceSpan);\n targetProvidersByToken.set(tokenReference(provider.token), resolvedProvider);\n }\n else {\n if (!provider.multi) {\n resolvedProvider.providers.length = 0;\n }\n resolvedProvider.providers.push(provider);\n }\n });\n}\n/**\n * @param {?} component\n * @return {?}\n */\nfunction _getViewQueries(component) {\n // Note: queries start with id 1 so we can use the number in a Bloom filter!\n var /** @type {?} */ viewQueryId = 1;\n var /** @type {?} */ viewQueries = new Map();\n if (component.viewQueries) {\n component.viewQueries.forEach(function (query) { return _addQueryToTokenMap(viewQueries, { meta: query, queryId: viewQueryId++ }); });\n }\n return viewQueries;\n}\n/**\n * @param {?} contentQueryStartId\n * @param {?} directives\n * @return {?}\n */\nfunction _getContentQueries(contentQueryStartId, directives) {\n var /** @type {?} */ contentQueryId = contentQueryStartId;\n var /** @type {?} */ contentQueries = new Map();\n directives.forEach(function (directive, directiveIndex) {\n if (directive.queries) {\n directive.queries.forEach(function (query) { return _addQueryToTokenMap(contentQueries, { meta: query, queryId: contentQueryId++ }); });\n }\n });\n return contentQueries;\n}\n/**\n * @param {?} map\n * @param {?} query\n * @return {?}\n */\nfunction _addQueryToTokenMap(map, query) {\n query.meta.selectors.forEach(function (token) {\n var /** @type {?} */ entry = map.get(tokenReference(token));\n if (!entry) {\n entry = [];\n map.set(tokenReference(token), entry);\n }\n entry.push(query);\n });\n}\n//# sourceMappingURL=provider_analyzer.js.map","/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this 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 { visitValue } from '../util';\nimport * as o from './output_ast';\nexport var /** @type {?} */ QUOTED_KEYS = '$quoted$';\n/**\n * @param {?} ctx\n * @param {?} value\n * @param {?=} type\n * @return {?}\n */\nexport function convertValueToOutputAst(ctx, value, type) {\n if (type === void 0) { type = null; }\n return visitValue(value, new _ValueOutputAstTransformer(ctx), type);\n}\nvar _ValueOutputAstTransformer = /** @class */ (function () {\n function _ValueOutputAstTransformer(ctx) {\n this.ctx = ctx;\n }\n /**\n * @param {?} arr\n * @param {?} type\n * @return {?}\n */\n _ValueOutputAstTransformer.prototype.visitArray = /**\n * @param {?} arr\n * @param {?} type\n * @return {?}\n */\n function (arr, type) {\n var _this = this;\n return o.literalArr(arr.map(function (value) { return visitValue(value, _this, null); }), type);\n };\n /**\n * @param {?} map\n * @param {?} type\n * @return {?}\n */\n _ValueOutputAstTransformer.prototype.visitStringMap = /**\n * @param {?} map\n * @param {?} type\n * @return {?}\n */\n function (map, type) {\n var _this = this;\n var /** @type {?} */ entries = [];\n var /** @type {?} */ quotedSet = new Set(map && map[QUOTED_KEYS]);\n Object.keys(map).forEach(function (key) {\n entries.push(new o.LiteralMapEntry(key, visitValue(map[key], _this, null), quotedSet.has(key)));\n });\n return new o.LiteralMapExpr(entries, type);\n };\n /**\n * @param {?} value\n * @param {?} type\n * @return {?}\n */\n _ValueOutputAstTransformer.prototype.visitPrimitive = /**\n * @param {?} value\n * @param {?} type\n * @return {?}\n */\n function (value, type) { return o.literal(value, type); };\n /**\n * @param {?} value\n * @param {?} type\n * @return {?}\n */\n _ValueOutputAstTransformer.prototype.visitOther = /**\n * @param {?} value\n * @param {?} type\n * @return {?}\n */\n function (value, type) {\n if (value instanceof o.Expression) {\n return value;\n }\n else {\n return this.ctx.importExpr(value);\n }\n };\n return _ValueOutputAstTransformer;\n}());\nfunction _ValueOutputAstTransformer_tsickle_Closure_declarations() {\n /** @type {?} */\n _ValueOutputAstTransformer.prototype.ctx;\n}\n//# sourceMappingURL=value_util.js.map","/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this 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 { Identifiers, createTokenForExternalReference } from '../identifiers';\nimport { LifecycleHooks } from '../lifecycle_reflector';\nimport * as o from '../output/output_ast';\nimport { convertValueToOutputAst } from '../output/value_util';\nimport { ProviderAstType } from '../template_parser/template_ast';\n/**\n * @param {?} ctx\n * @param {?} providerAst\n * @return {?}\n */\nexport function providerDef(ctx, providerAst) {\n var /** @type {?} */ flags = 0 /* None */;\n if (!providerAst.eager) {\n flags |= 4096 /* LazyProvider */;\n }\n if (providerAst.providerType === ProviderAstType.PrivateService) {\n flags |= 8192 /* PrivateProvider */;\n }\n providerAst.lifecycleHooks.forEach(function (lifecycleHook) {\n // for regular providers, we only support ngOnDestroy\n if (lifecycleHook === LifecycleHooks.OnDestroy ||\n providerAst.providerType === ProviderAstType.Directive ||\n providerAst.providerType === ProviderAstType.Component) {\n flags |= lifecycleHookToNodeFlag(lifecycleHook);\n }\n });\n var _a = providerAst.multiProvider ?\n multiProviderDef(ctx, flags, providerAst.providers) :\n singleProviderDef(ctx, flags, providerAst.providerType, providerAst.providers[0]), providerExpr = _a.providerExpr, providerFlags = _a.flags, depsExpr = _a.depsExpr;\n return {\n providerExpr: providerExpr,\n flags: providerFlags, depsExpr: depsExpr,\n tokenExpr: tokenExpr(ctx, providerAst.token),\n };\n}\n/**\n * @param {?} ctx\n * @param {?} flags\n * @param {?} providers\n * @return {?}\n */\nfunction multiProviderDef(ctx, flags, providers) {\n var /** @type {?} */ allDepDefs = [];\n var /** @type {?} */ allParams = [];\n var /** @type {?} */ exprs = providers.map(function (provider, providerIndex) {\n var /** @type {?} */ expr;\n if (provider.useClass) {\n var /** @type {?} */ depExprs = convertDeps(providerIndex, provider.deps || provider.useClass.diDeps);\n expr = ctx.importExpr(provider.useClass.reference).instantiate(depExprs);\n }\n else if (provider.useFactory) {\n var /** @type {?} */ depExprs = convertDeps(providerIndex, provider.deps || provider.useFactory.diDeps);\n expr = ctx.importExpr(provider.useFactory.reference).callFn(depExprs);\n }\n else if (provider.useExisting) {\n var /** @type {?} */ depExprs = convertDeps(providerIndex, [{ token: provider.useExisting }]);\n expr = depExprs[0];\n }\n else {\n expr = convertValueToOutputAst(ctx, provider.useValue);\n }\n return expr;\n });\n var /** @type {?} */ providerExpr = o.fn(allParams, [new o.ReturnStatement(o.literalArr(exprs))], o.INFERRED_TYPE);\n return {\n providerExpr: providerExpr,\n flags: flags | 1024 /* TypeFactoryProvider */,\n depsExpr: o.literalArr(allDepDefs)\n };\n /**\n * @param {?} providerIndex\n * @param {?} deps\n * @return {?}\n */\n function convertDeps(providerIndex, deps) {\n return deps.map(function (dep, depIndex) {\n var /** @type {?} */ paramName = \"p\" + providerIndex + \"_\" + depIndex;\n allParams.push(new o.FnParam(paramName, o.DYNAMIC_TYPE));\n allDepDefs.push(depDef(ctx, dep));\n return o.variable(paramName);\n });\n }\n}\n/**\n * @param {?} ctx\n * @param {?} flags\n * @param {?} providerType\n * @param {?} providerMeta\n * @return {?}\n */\nfunction singleProviderDef(ctx, flags, providerType, providerMeta) {\n var /** @type {?} */ providerExpr;\n var /** @type {?} */ deps;\n if (providerType === ProviderAstType.Directive || providerType === ProviderAstType.Component) {\n providerExpr = ctx.importExpr(/** @type {?} */ ((providerMeta.useClass)).reference);\n flags |= 16384 /* TypeDirective */;\n deps = providerMeta.deps || /** @type {?} */ ((providerMeta.useClass)).diDeps;\n }\n else {\n if (providerMeta.useClass) {\n providerExpr = ctx.importExpr(providerMeta.useClass.reference);\n flags |= 512 /* TypeClassProvider */;\n deps = providerMeta.deps || providerMeta.useClass.diDeps;\n }\n else if (providerMeta.useFactory) {\n providerExpr = ctx.importExpr(providerMeta.useFactory.reference);\n flags |= 1024 /* TypeFactoryProvider */;\n deps = providerMeta.deps || providerMeta.useFactory.diDeps;\n }\n else if (providerMeta.useExisting) {\n providerExpr = o.NULL_EXPR;\n flags |= 2048 /* TypeUseExistingProvider */;\n deps = [{ token: providerMeta.useExisting }];\n }\n else {\n providerExpr = convertValueToOutputAst(ctx, providerMeta.useValue);\n flags |= 256 /* TypeValueProvider */;\n deps = [];\n }\n }\n var /** @type {?} */ depsExpr = o.literalArr(deps.map(function (dep) { return depDef(ctx, dep); }));\n return { providerExpr: providerExpr, flags: flags, depsExpr: depsExpr };\n}\n/**\n * @param {?} ctx\n * @param {?} tokenMeta\n * @return {?}\n */\nfunction tokenExpr(ctx, tokenMeta) {\n return tokenMeta.identifier ? ctx.importExpr(tokenMeta.identifier.reference) :\n o.literal(tokenMeta.value);\n}\n/**\n * @param {?} ctx\n * @param {?} dep\n * @return {?}\n */\nexport function depDef(ctx, dep) {\n // Note: the following fields have already been normalized out by provider_analyzer:\n // - isAttribute, isSelf, isHost\n var /** @type {?} */ expr = dep.isValue ? convertValueToOutputAst(ctx, dep.value) : tokenExpr(ctx, /** @type {?} */ ((dep.token)));\n var /** @type {?} */ flags = 0 /* None */;\n if (dep.isSkipSelf) {\n flags |= 1 /* SkipSelf */;\n }\n if (dep.isOptional) {\n flags |= 2 /* Optional */;\n }\n if (dep.isValue) {\n flags |= 8 /* Value */;\n }\n return flags === 0 /* None */ ? expr : o.literalArr([o.literal(flags), expr]);\n}\n/**\n * @param {?} lifecycleHook\n * @return {?}\n */\nexport function lifecycleHookToNodeFlag(lifecycleHook) {\n var /** @type {?} */ nodeFlag = 0 /* None */;\n switch (lifecycleHook) {\n case LifecycleHooks.AfterContentChecked:\n nodeFlag = 2097152 /* AfterContentChecked */;\n break;\n case LifecycleHooks.AfterContentInit:\n nodeFlag = 1048576 /* AfterContentInit */;\n break;\n case LifecycleHooks.AfterViewChecked:\n nodeFlag = 8388608 /* AfterViewChecked */;\n break;\n case LifecycleHooks.AfterViewInit:\n nodeFlag = 4194304 /* AfterViewInit */;\n break;\n case LifecycleHooks.DoCheck:\n nodeFlag = 262144 /* DoCheck */;\n break;\n case LifecycleHooks.OnChanges:\n nodeFlag = 524288 /* OnChanges */;\n break;\n case LifecycleHooks.OnDestroy:\n nodeFlag = 131072 /* OnDestroy */;\n break;\n case LifecycleHooks.OnInit:\n nodeFlag = 65536 /* OnInit */;\n break;\n }\n return nodeFlag;\n}\n/**\n * @param {?} reflector\n * @param {?} ctx\n * @param {?} flags\n * @param {?} entryComponents\n * @return {?}\n */\nexport function componentFactoryResolverProviderDef(reflector, ctx, flags, entryComponents) {\n var /** @type {?} */ entryComponentFactories = entryComponents.map(function (entryComponent) { return ctx.importExpr(entryComponent.componentFactory); });\n var /** @type {?} */ token = createTokenForExternalReference(reflector, Identifiers.ComponentFactoryResolver);\n var /** @type {?} */ classMeta = {\n diDeps: [\n { isValue: true, value: o.literalArr(entryComponentFactories) },\n { token: token, isSkipSelf: true, isOptional: true },\n { token: createTokenForExternalReference(reflector, Identifiers.NgModuleRef) },\n ],\n lifecycleHooks: [],\n reference: reflector.resolveExternalReference(Identifiers.CodegenComponentFactoryResolver)\n };\n var _a = singleProviderDef(ctx, flags, ProviderAstType.PrivateService, {\n token: token,\n multi: false,\n useClass: classMeta,\n }), providerExpr = _a.providerExpr, providerFlags = _a.flags, depsExpr = _a.depsExpr;\n return { providerExpr: providerExpr, flags: providerFlags, depsExpr: depsExpr, tokenExpr: tokenExpr(ctx, token) };\n}\n//# sourceMappingURL=provider_compiler.js.map","/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this 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 { identifierName } from './compile_metadata';\nimport { Identifiers } from './identifiers';\nimport * as o from './output/output_ast';\nimport { typeSourceSpan } from './parse_util';\nimport { NgModuleProviderAnalyzer } from './provider_analyzer';\nimport { componentFactoryResolverProviderDef, providerDef } from './view_compiler/provider_compiler';\nvar NgModuleCompileResult = /** @class */ (function () {\n function NgModuleCompileResult(ngModuleFactoryVar) {\n this.ngModuleFactoryVar = ngModuleFactoryVar;\n }\n return NgModuleCompileResult;\n}());\nexport { NgModuleCompileResult };\nfunction NgModuleCompileResult_tsickle_Closure_declarations() {\n /** @type {?} */\n NgModuleCompileResult.prototype.ngModuleFactoryVar;\n}\nvar /** @type {?} */ LOG_VAR = o.variable('_l');\nvar NgModuleCompiler = /** @class */ (function () {\n function NgModuleCompiler(reflector) {\n this.reflector = reflector;\n }\n /**\n * @param {?} ctx\n * @param {?} ngModuleMeta\n * @param {?} extraProviders\n * @return {?}\n */\n NgModuleCompiler.prototype.compile = /**\n * @param {?} ctx\n * @param {?} ngModuleMeta\n * @param {?} extraProviders\n * @return {?}\n */\n function (ctx, ngModuleMeta, extraProviders) {\n var /** @type {?} */ sourceSpan = typeSourceSpan('NgModule', ngModuleMeta.type);\n var /** @type {?} */ entryComponentFactories = ngModuleMeta.transitiveModule.entryComponents;\n var /** @type {?} */ bootstrapComponents = ngModuleMeta.bootstrapComponents;\n var /** @type {?} */ providerParser = new NgModuleProviderAnalyzer(this.reflector, ngModuleMeta, extraProviders, sourceSpan);\n var /** @type {?} */ providerDefs = [componentFactoryResolverProviderDef(this.reflector, ctx, 0 /* None */, entryComponentFactories)]\n .concat(providerParser.parse().map(function (provider) { return providerDef(ctx, provider); }))\n .map(function (_a) {\n var providerExpr = _a.providerExpr, depsExpr = _a.depsExpr, flags = _a.flags, tokenExpr = _a.tokenExpr;\n return o.importExpr(Identifiers.moduleProviderDef).callFn([\n o.literal(flags), tokenExpr, providerExpr, depsExpr\n ]);\n });\n var /** @type {?} */ ngModuleDef = o.importExpr(Identifiers.moduleDef).callFn([o.literalArr(providerDefs)]);\n var /** @type {?} */ ngModuleDefFactory = o.fn([new o.FnParam(/** @type {?} */ ((LOG_VAR.name)))], [new o.ReturnStatement(ngModuleDef)], o.INFERRED_TYPE);\n var /** @type {?} */ ngModuleFactoryVar = identifierName(ngModuleMeta.type) + \"NgFactory\";\n this._createNgModuleFactory(ctx, ngModuleMeta.type.reference, o.importExpr(Identifiers.createModuleFactory).callFn([\n ctx.importExpr(ngModuleMeta.type.reference),\n o.literalArr(bootstrapComponents.map(function (id) { return ctx.importExpr(id.reference); })),\n ngModuleDefFactory\n ]));\n if (ngModuleMeta.id) {\n var /** @type {?} */ registerFactoryStmt = o.importExpr(Identifiers.RegisterModuleFactoryFn)\n .callFn([o.literal(ngModuleMeta.id), o.variable(ngModuleFactoryVar)])\n .toStmt();\n ctx.statements.push(registerFactoryStmt);\n }\n return new NgModuleCompileResult(ngModuleFactoryVar);\n };\n /**\n * @param {?} ctx\n * @param {?} ngModuleReference\n * @return {?}\n */\n NgModuleCompiler.prototype.createStub = /**\n * @param {?} ctx\n * @param {?} ngModuleReference\n * @return {?}\n */\n function (ctx, ngModuleReference) {\n this._createNgModuleFactory(ctx, ngModuleReference, o.NULL_EXPR);\n };\n /**\n * @param {?} ctx\n * @param {?} reference\n * @param {?} value\n * @return {?}\n */\n NgModuleCompiler.prototype._createNgModuleFactory = /**\n * @param {?} ctx\n * @param {?} reference\n * @param {?} value\n * @return {?}\n */\n function (ctx, reference, value) {\n var /** @type {?} */ ngModuleFactoryVar = identifierName({ reference: reference }) + \"NgFactory\";\n var /** @type {?} */ ngModuleFactoryStmt = o.variable(ngModuleFactoryVar)\n .set(value)\n .toDeclStmt(o.importType(Identifiers.NgModuleFactory, [/** @type {?} */ ((o.expressionType(ctx.importExpr(reference))))], [o.TypeModifier.Const]), [o.StmtModifier.Final, o.StmtModifier.Exported]);\n ctx.statements.push(ngModuleFactoryStmt);\n };\n return NgModuleCompiler;\n}());\nexport { NgModuleCompiler };\nfunction NgModuleCompiler_tsickle_Closure_declarations() {\n /** @type {?} */\n NgModuleCompiler.prototype.reflector;\n}\n//# sourceMappingURL=ng_module_compiler.js.map","/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this 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 { createNgModule } from './core';\nimport { findLast } from './directive_resolver';\nimport { stringify } from './util';\n/**\n * Resolves types to {\\@link NgModule}.\n */\nvar /**\n * Resolves types to {\\@link NgModule}.\n */\nNgModuleResolver = /** @class */ (function () {\n function NgModuleResolver(_reflector) {\n this._reflector = _reflector;\n }\n /**\n * @param {?} type\n * @return {?}\n */\n NgModuleResolver.prototype.isNgModule = /**\n * @param {?} type\n * @return {?}\n */\n function (type) { return this._reflector.annotations(type).some(createNgModule.isTypeOf); };\n /**\n * @param {?} type\n * @param {?=} throwIfNotFound\n * @return {?}\n */\n NgModuleResolver.prototype.resolve = /**\n * @param {?} type\n * @param {?=} throwIfNotFound\n * @return {?}\n */\n function (type, throwIfNotFound) {\n if (throwIfNotFound === void 0) { throwIfNotFound = true; }\n var /** @type {?} */ ngModuleMeta = findLast(this._reflector.annotations(type), createNgModule.isTypeOf);\n if (ngModuleMeta) {\n return ngModuleMeta;\n }\n else {\n if (throwIfNotFound) {\n throw new Error(\"No NgModule metadata found for '\" + stringify(type) + \"'.\");\n }\n return null;\n }\n };\n return NgModuleResolver;\n}());\n/**\n * Resolves types to {\\@link NgModule}.\n */\nexport { NgModuleResolver };\nfunction NgModuleResolver_tsickle_Closure_declarations() {\n /** @type {?} */\n NgModuleResolver.prototype._reflector;\n}\n//# sourceMappingURL=ng_module_resolver.js.map","/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this 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 { utf8Encode } from '../util';\n// https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit\nvar /** @type {?} */ VERSION = 3;\nvar /** @type {?} */ JS_B64_PREFIX = '# sourceMappingURL=data:application/json;base64,';\nvar SourceMapGenerator = /** @class */ (function () {\n function SourceMapGenerator(file) {\n if (file === void 0) { file = null; }\n this.file = file;\n this.sourcesContent = new Map();\n this.lines = [];\n this.lastCol0 = 0;\n this.hasMappings = false;\n }\n // The content is `null` when the content is expected to be loaded using the URL\n /**\n * @param {?} url\n * @param {?=} content\n * @return {?}\n */\n SourceMapGenerator.prototype.addSource = /**\n * @param {?} url\n * @param {?=} content\n * @return {?}\n */\n function (url, content) {\n if (content === void 0) { content = null; }\n if (!this.sourcesContent.has(url)) {\n this.sourcesContent.set(url, content);\n }\n return this;\n };\n /**\n * @return {?}\n */\n SourceMapGenerator.prototype.addLine = /**\n * @return {?}\n */\n function () {\n this.lines.push([]);\n this.lastCol0 = 0;\n return this;\n };\n /**\n * @param {?} col0\n * @param {?=} sourceUrl\n * @param {?=} sourceLine0\n * @param {?=} sourceCol0\n * @return {?}\n */\n SourceMapGenerator.prototype.addMapping = /**\n * @param {?} col0\n * @param {?=} sourceUrl\n * @param {?=} sourceLine0\n * @param {?=} sourceCol0\n * @return {?}\n */\n function (col0, sourceUrl, sourceLine0, sourceCol0) {\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 this.hasMappings = true;\n this.lastCol0 = col0;\n this.currentLine.push({ col0: col0, sourceUrl: sourceUrl, sourceLine0: sourceLine0, sourceCol0: sourceCol0 });\n return this;\n };\n Object.defineProperty(SourceMapGenerator.prototype, \"currentLine\", {\n get: /**\n * @return {?}\n */\n function () { return this.lines.slice(-1)[0]; },\n enumerable: true,\n configurable: true\n });\n /**\n * @return {?}\n */\n SourceMapGenerator.prototype.toJSON = /**\n * @return {?}\n */\n function () {\n var _this = this;\n if (!this.hasMappings) {\n return null;\n }\n var /** @type {?} */ sourcesIndex = new Map();\n var /** @type {?} */ sources = [];\n var /** @type {?} */ sourcesContent = [];\n Array.from(this.sourcesContent.keys()).forEach(function (url, i) {\n sourcesIndex.set(url, i);\n sources.push(url);\n sourcesContent.push(_this.sourcesContent.get(url) || null);\n });\n var /** @type {?} */ mappings = '';\n var /** @type {?} */ lastCol0 = 0;\n var /** @type {?} */ lastSourceIndex = 0;\n var /** @type {?} */ lastSourceLine0 = 0;\n var /** @type {?} */ lastSourceCol0 = 0;\n this.lines.forEach(function (segments) {\n lastCol0 = 0;\n mappings += segments\n .map(function (segment) {\n // zero-based starting column of the line in the generated code\n var /** @type {?} */ segAsStr = toBase64VLQ(segment.col0 - lastCol0);\n lastCol0 = segment.col0;\n if (segment.sourceUrl != null) {\n // zero-based index into the “sources” list\n segAsStr +=\n toBase64VLQ(/** @type {?} */ ((sourcesIndex.get(segment.sourceUrl))) - lastSourceIndex);\n lastSourceIndex = /** @type {?} */ ((sourcesIndex.get(segment.sourceUrl)));\n // the zero-based starting line in the original source\n segAsStr += toBase64VLQ(/** @type {?} */ ((segment.sourceLine0)) - lastSourceLine0);\n lastSourceLine0 = /** @type {?} */ ((segment.sourceLine0));\n // the zero-based starting column in the original source\n segAsStr += toBase64VLQ(/** @type {?} */ ((segment.sourceCol0)) - lastSourceCol0);\n lastSourceCol0 = /** @type {?} */ ((segment.sourceCol0));\n }\n return segAsStr;\n })\n .join(',');\n mappings += ';';\n });\n mappings = mappings.slice(0, -1);\n return {\n 'file': this.file || '',\n 'version': VERSION,\n 'sourceRoot': '',\n 'sources': sources,\n 'sourcesContent': sourcesContent,\n 'mappings': mappings,\n };\n };\n /**\n * @return {?}\n */\n SourceMapGenerator.prototype.toJsComment = /**\n * @return {?}\n */\n function () {\n return this.hasMappings ? '//' + JS_B64_PREFIX + toBase64String(JSON.stringify(this, null, 0)) :\n '';\n };\n return SourceMapGenerator;\n}());\nexport { SourceMapGenerator };\nfunction SourceMapGenerator_tsickle_Closure_declarations() {\n /** @type {?} */\n SourceMapGenerator.prototype.sourcesContent;\n /** @type {?} */\n SourceMapGenerator.prototype.lines;\n /** @type {?} */\n SourceMapGenerator.prototype.lastCol0;\n /** @type {?} */\n SourceMapGenerator.prototype.hasMappings;\n /** @type {?} */\n SourceMapGenerator.prototype.file;\n}\n/**\n * @param {?} value\n * @return {?}\n */\nexport function toBase64String(value) {\n var /** @type {?} */ b64 = '';\n value = utf8Encode(value);\n for (var /** @type {?} */ i = 0; i < value.length;) {\n var /** @type {?} */ i1 = value.charCodeAt(i++);\n var /** @type {?} */ i2 = value.charCodeAt(i++);\n var /** @type {?} */ i3 = value.charCodeAt(i++);\n b64 += toBase64Digit(i1 >> 2);\n b64 += toBase64Digit(((i1 & 3) << 4) | (isNaN(i2) ? 0 : i2 >> 4));\n b64 += isNaN(i2) ? '=' : toBase64Digit(((i2 & 15) << 2) | (i3 >> 6));\n b64 += isNaN(i2) || isNaN(i3) ? '=' : toBase64Digit(i3 & 63);\n }\n return b64;\n}\n/**\n * @param {?} value\n * @return {?}\n */\nfunction toBase64VLQ(value) {\n value = value < 0 ? ((-value) << 1) + 1 : value << 1;\n var /** @type {?} */ out = '';\n do {\n var /** @type {?} */ 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 return out;\n}\nvar /** @type {?} */ B64_DIGITS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n/**\n * @param {?} value\n * @return {?}\n */\nfunction toBase64Digit(value) {\n if (value < 0 || value >= 64) {\n throw new Error(\"Can only encode value in the range [0, 63]\");\n }\n return B64_DIGITS[value];\n}\n//# sourceMappingURL=source_map.js.map","/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this 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_ast';\nimport { SourceMapGenerator } from './source_map';\nvar /** @type {?} */ _SINGLE_QUOTE_ESCAPE_STRING_RE = /'|\\\\|\\n|\\r|\\$/g;\nvar /** @type {?} */ _LEGAL_IDENTIFIER_RE = /^[$A-Z_][0-9A-Z_$]*$/i;\nvar /** @type {?} */ _INDENT_WITH = ' ';\nexport var /** @type {?} */ CATCH_ERROR_VAR = o.variable('error', null, null);\nexport var /** @type {?} */ CATCH_STACK_VAR = o.variable('stack', null, null);\n/**\n * @record\n */\nexport function OutputEmitter() { }\nfunction OutputEmitter_tsickle_Closure_declarations() {\n /** @type {?} */\n OutputEmitter.prototype.emitStatements;\n}\nvar _EmittedLine = /** @class */ (function () {\n function _EmittedLine(indent) {\n this.indent = indent;\n this.partsLength = 0;\n this.parts = [];\n this.srcSpans = [];\n }\n return _EmittedLine;\n}());\nfunction _EmittedLine_tsickle_Closure_declarations() {\n /** @type {?} */\n _EmittedLine.prototype.partsLength;\n /** @type {?} */\n _EmittedLine.prototype.parts;\n /** @type {?} */\n _EmittedLine.prototype.srcSpans;\n /** @type {?} */\n _EmittedLine.prototype.indent;\n}\nvar EmitterVisitorContext = /** @class */ (function () {\n function EmitterVisitorContext(_indent) {\n this._indent = _indent;\n this._classes = [];\n this._preambleLineCount = 0;\n this._lines = [new _EmittedLine(_indent)];\n }\n /**\n * @return {?}\n */\n EmitterVisitorContext.createRoot = /**\n * @return {?}\n */\n function () { return new EmitterVisitorContext(0); };\n Object.defineProperty(EmitterVisitorContext.prototype, \"_currentLine\", {\n get: /**\n * @return {?}\n */\n function () { return this._lines[this._lines.length - 1]; },\n enumerable: true,\n configurable: true\n });\n /**\n * @param {?=} from\n * @param {?=} lastPart\n * @return {?}\n */\n EmitterVisitorContext.prototype.println = /**\n * @param {?=} from\n * @param {?=} lastPart\n * @return {?}\n */\n function (from, lastPart) {\n if (lastPart === void 0) { lastPart = ''; }\n this.print(from || null, lastPart, true);\n };\n /**\n * @return {?}\n */\n EmitterVisitorContext.prototype.lineIsEmpty = /**\n * @return {?}\n */\n function () { return this._currentLine.parts.length === 0; };\n /**\n * @return {?}\n */\n EmitterVisitorContext.prototype.lineLength = /**\n * @return {?}\n */\n function () {\n return this._currentLine.indent * _INDENT_WITH.length + this._currentLine.partsLength;\n };\n /**\n * @param {?} from\n * @param {?} part\n * @param {?=} newLine\n * @return {?}\n */\n EmitterVisitorContext.prototype.print = /**\n * @param {?} from\n * @param {?} part\n * @param {?=} newLine\n * @return {?}\n */\n function (from, part, newLine) {\n if (newLine === void 0) { newLine = 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 * @return {?}\n */\n EmitterVisitorContext.prototype.removeEmptyLastLine = /**\n * @return {?}\n */\n function () {\n if (this.lineIsEmpty()) {\n this._lines.pop();\n }\n };\n /**\n * @return {?}\n */\n EmitterVisitorContext.prototype.incIndent = /**\n * @return {?}\n */\n function () {\n this._indent++;\n if (this.lineIsEmpty()) {\n this._currentLine.indent = this._indent;\n }\n };\n /**\n * @return {?}\n */\n EmitterVisitorContext.prototype.decIndent = /**\n * @return {?}\n */\n function () {\n this._indent--;\n if (this.lineIsEmpty()) {\n this._currentLine.indent = this._indent;\n }\n };\n /**\n * @param {?} clazz\n * @return {?}\n */\n EmitterVisitorContext.prototype.pushClass = /**\n * @param {?} clazz\n * @return {?}\n */\n function (clazz) { this._classes.push(clazz); };\n /**\n * @return {?}\n */\n EmitterVisitorContext.prototype.popClass = /**\n * @return {?}\n */\n function () { return /** @type {?} */ ((this._classes.pop())); };\n Object.defineProperty(EmitterVisitorContext.prototype, \"currentClass\", {\n get: /**\n * @return {?}\n */\n function () {\n return this._classes.length > 0 ? this._classes[this._classes.length - 1] : null;\n },\n enumerable: true,\n configurable: true\n });\n /**\n * @return {?}\n */\n EmitterVisitorContext.prototype.toSource = /**\n * @return {?}\n */\n function () {\n return this.sourceLines\n .map(function (l) { return l.parts.length > 0 ? _createIndent(l.indent) + l.parts.join('') : ''; })\n .join('\\n');\n };\n /**\n * @param {?} genFilePath\n * @param {?=} startsAtLine\n * @return {?}\n */\n EmitterVisitorContext.prototype.toSourceMapGenerator = /**\n * @param {?} genFilePath\n * @param {?=} startsAtLine\n * @return {?}\n */\n function (genFilePath, startsAtLine) {\n if (startsAtLine === void 0) { startsAtLine = 0; }\n var /** @type {?} */ map = new SourceMapGenerator(genFilePath);\n var /** @type {?} */ firstOffsetMapped = false;\n var /** @type {?} */ mapFirstOffsetIfNeeded = function () {\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 for (var /** @type {?} */ i = 0; i < startsAtLine; i++) {\n map.addLine();\n mapFirstOffsetIfNeeded();\n }\n this.sourceLines.forEach(function (line, lineIdx) {\n map.addLine();\n var /** @type {?} */ spans = line.srcSpans;\n var /** @type {?} */ parts = line.parts;\n var /** @type {?} */ col0 = line.indent * _INDENT_WITH.length;\n var /** @type {?} */ 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 }\n else {\n mapFirstOffsetIfNeeded();\n }\n while (spanIdx < spans.length) {\n var /** @type {?} */ span = /** @type {?} */ ((spans[spanIdx]));\n var /** @type {?} */ source = span.start.file;\n var /** @type {?} */ sourceLine = span.start.line;\n var /** @type {?} */ sourceCol = span.start.col;\n map.addSource(source.url, source.content)\n .addMapping(col0, source.url, sourceLine, sourceCol);\n col0 += parts[spanIdx].length;\n spanIdx++;\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 return map;\n };\n /**\n * @param {?} count\n * @return {?}\n */\n EmitterVisitorContext.prototype.setPreambleLineCount = /**\n * @param {?} count\n * @return {?}\n */\n function (count) { return this._preambleLineCount = count; };\n /**\n * @param {?} line\n * @param {?} column\n * @return {?}\n */\n EmitterVisitorContext.prototype.spanOf = /**\n * @param {?} line\n * @param {?} column\n * @return {?}\n */\n function (line, column) {\n var /** @type {?} */ emittedLine = this._lines[line - this._preambleLineCount];\n if (emittedLine) {\n var /** @type {?} */ columnsLeft = column - _createIndent(emittedLine.indent).length;\n for (var /** @type {?} */ partIndex = 0; partIndex < emittedLine.parts.length; partIndex++) {\n var /** @type {?} */ 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 Object.defineProperty(EmitterVisitorContext.prototype, \"sourceLines\", {\n get: /**\n * @return {?}\n */\n function () {\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 enumerable: true,\n configurable: true\n });\n return EmitterVisitorContext;\n}());\nexport { EmitterVisitorContext };\nfunction EmitterVisitorContext_tsickle_Closure_declarations() {\n /** @type {?} */\n EmitterVisitorContext.prototype._lines;\n /** @type {?} */\n EmitterVisitorContext.prototype._classes;\n /** @type {?} */\n EmitterVisitorContext.prototype._preambleLineCount;\n /** @type {?} */\n EmitterVisitorContext.prototype._indent;\n}\n/**\n * @abstract\n */\nvar /**\n * @abstract\n */\nAbstractEmitterVisitor = /** @class */ (function () {\n function AbstractEmitterVisitor(_escapeDollarInStrings) {\n this._escapeDollarInStrings = _escapeDollarInStrings;\n }\n /**\n * @param {?} stmt\n * @param {?} ctx\n * @return {?}\n */\n AbstractEmitterVisitor.prototype.visitExpressionStmt = /**\n * @param {?} stmt\n * @param {?} ctx\n * @return {?}\n */\n function (stmt, ctx) {\n stmt.expr.visitExpression(this, ctx);\n ctx.println(stmt, ';');\n return null;\n };\n /**\n * @param {?} stmt\n * @param {?} ctx\n * @return {?}\n */\n AbstractEmitterVisitor.prototype.visitReturnStmt = /**\n * @param {?} stmt\n * @param {?} ctx\n * @return {?}\n */\n function (stmt, ctx) {\n ctx.print(stmt, \"return \");\n stmt.value.visitExpression(this, ctx);\n ctx.println(stmt, ';');\n return null;\n };\n /**\n * @param {?} stmt\n * @param {?} ctx\n * @return {?}\n */\n AbstractEmitterVisitor.prototype.visitIfStmt = /**\n * @param {?} stmt\n * @param {?} ctx\n * @return {?}\n */\n function (stmt, ctx) {\n ctx.print(stmt, \"if (\");\n stmt.condition.visitExpression(this, ctx);\n ctx.print(stmt, \") {\");\n var /** @type {?} */ 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 }\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 * @param {?} stmt\n * @param {?} ctx\n * @return {?}\n */\n AbstractEmitterVisitor.prototype.visitThrowStmt = /**\n * @param {?} stmt\n * @param {?} ctx\n * @return {?}\n */\n function (stmt, ctx) {\n ctx.print(stmt, \"throw \");\n stmt.error.visitExpression(this, ctx);\n ctx.println(stmt, \";\");\n return null;\n };\n /**\n * @param {?} stmt\n * @param {?} ctx\n * @return {?}\n */\n AbstractEmitterVisitor.prototype.visitCommentStmt = /**\n * @param {?} stmt\n * @param {?} ctx\n * @return {?}\n */\n function (stmt, ctx) {\n var /** @type {?} */ lines = stmt.comment.split('\\n');\n lines.forEach(function (line) { ctx.println(stmt, \"// \" + line); });\n return null;\n };\n /**\n * @param {?} expr\n * @param {?} ctx\n * @return {?}\n */\n AbstractEmitterVisitor.prototype.visitWriteVarExpr = /**\n * @param {?} expr\n * @param {?} ctx\n * @return {?}\n */\n function (expr, ctx) {\n var /** @type {?} */ 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 /**\n * @param {?} expr\n * @param {?} ctx\n * @return {?}\n */\n AbstractEmitterVisitor.prototype.visitWriteKeyExpr = /**\n * @param {?} expr\n * @param {?} ctx\n * @return {?}\n */\n function (expr, ctx) {\n var /** @type {?} */ 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 /**\n * @param {?} expr\n * @param {?} ctx\n * @return {?}\n */\n AbstractEmitterVisitor.prototype.visitWritePropExpr = /**\n * @param {?} expr\n * @param {?} ctx\n * @return {?}\n */\n function (expr, ctx) {\n var /** @type {?} */ 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 * @param {?} expr\n * @param {?} ctx\n * @return {?}\n */\n AbstractEmitterVisitor.prototype.visitInvokeMethodExpr = /**\n * @param {?} expr\n * @param {?} ctx\n * @return {?}\n */\n function (expr, ctx) {\n expr.receiver.visitExpression(this, ctx);\n var /** @type {?} */ name = expr.name;\n if (expr.builtin != null) {\n name = this.getBuiltinMethodName(expr.builtin);\n if (name == null) {\n // some builtins just mean to skip the call.\n return null;\n }\n }\n ctx.print(expr, \".\" + name + \"(\");\n this.visitAllExpressions(expr.args, ctx, \",\");\n ctx.print(expr, \")\");\n return null;\n };\n /**\n * @param {?} expr\n * @param {?} ctx\n * @return {?}\n */\n AbstractEmitterVisitor.prototype.visitInvokeFunctionExpr = /**\n * @param {?} expr\n * @param {?} ctx\n * @return {?}\n */\n function (expr, ctx) {\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 /**\n * @param {?} ast\n * @param {?} ctx\n * @return {?}\n */\n AbstractEmitterVisitor.prototype.visitReadVarExpr = /**\n * @param {?} ast\n * @param {?} ctx\n * @return {?}\n */\n function (ast, ctx) {\n var /** @type {?} */ varName = /** @type {?} */ ((ast.name));\n if (ast.builtin != null) {\n switch (ast.builtin) {\n case o.BuiltinVar.Super:\n varName = 'super';\n break;\n case o.BuiltinVar.This:\n varName = 'this';\n break;\n case o.BuiltinVar.CatchError:\n varName = /** @type {?} */ ((CATCH_ERROR_VAR.name));\n break;\n case o.BuiltinVar.CatchStack:\n varName = /** @type {?} */ ((CATCH_STACK_VAR.name));\n break;\n default:\n throw new Error(\"Unknown builtin variable \" + ast.builtin);\n }\n }\n ctx.print(ast, varName);\n return null;\n };\n /**\n * @param {?} ast\n * @param {?} ctx\n * @return {?}\n */\n AbstractEmitterVisitor.prototype.visitInstantiateExpr = /**\n * @param {?} ast\n * @param {?} ctx\n * @return {?}\n */\n function (ast, ctx) {\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 * @param {?} ast\n * @param {?} ctx\n * @return {?}\n */\n AbstractEmitterVisitor.prototype.visitLiteralExpr = /**\n * @param {?} ast\n * @param {?} ctx\n * @return {?}\n */\n function (ast, ctx) {\n var /** @type {?} */ value = ast.value;\n if (typeof value === 'string') {\n ctx.print(ast, escapeIdentifier(value, this._escapeDollarInStrings));\n }\n else {\n ctx.print(ast, \"\" + value);\n }\n return null;\n };\n /**\n * @param {?} ast\n * @param {?} ctx\n * @return {?}\n */\n AbstractEmitterVisitor.prototype.visitConditionalExpr = /**\n * @param {?} ast\n * @param {?} ctx\n * @return {?}\n */\n function (ast, ctx) {\n ctx.print(ast, \"(\");\n ast.condition.visitExpression(this, ctx);\n ctx.print(ast, '? ');\n ast.trueCase.visitExpression(this, ctx);\n ctx.print(ast, ': '); /** @type {?} */\n ((ast.falseCase)).visitExpression(this, ctx);\n ctx.print(ast, \")\");\n return null;\n };\n /**\n * @param {?} ast\n * @param {?} ctx\n * @return {?}\n */\n AbstractEmitterVisitor.prototype.visitNotExpr = /**\n * @param {?} ast\n * @param {?} ctx\n * @return {?}\n */\n function (ast, ctx) {\n ctx.print(ast, '!');\n ast.condition.visitExpression(this, ctx);\n return null;\n };\n /**\n * @param {?} ast\n * @param {?} ctx\n * @return {?}\n */\n AbstractEmitterVisitor.prototype.visitAssertNotNullExpr = /**\n * @param {?} ast\n * @param {?} ctx\n * @return {?}\n */\n function (ast, ctx) {\n ast.condition.visitExpression(this, ctx);\n return null;\n };\n /**\n * @param {?} ast\n * @param {?} ctx\n * @return {?}\n */\n AbstractEmitterVisitor.prototype.visitBinaryOperatorExpr = /**\n * @param {?} ast\n * @param {?} ctx\n * @return {?}\n */\n function (ast, ctx) {\n var /** @type {?} */ opStr;\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.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 default:\n throw new Error(\"Unknown operator \" + ast.operator);\n }\n ctx.print(ast, \"(\");\n ast.lhs.visitExpression(this, ctx);\n ctx.print(ast, \" \" + opStr + \" \");\n ast.rhs.visitExpression(this, ctx);\n ctx.print(ast, \")\");\n return null;\n };\n /**\n * @param {?} ast\n * @param {?} ctx\n * @return {?}\n */\n AbstractEmitterVisitor.prototype.visitReadPropExpr = /**\n * @param {?} ast\n * @param {?} ctx\n * @return {?}\n */\n function (ast, ctx) {\n ast.receiver.visitExpression(this, ctx);\n ctx.print(ast, \".\");\n ctx.print(ast, ast.name);\n return null;\n };\n /**\n * @param {?} ast\n * @param {?} ctx\n * @return {?}\n */\n AbstractEmitterVisitor.prototype.visitReadKeyExpr = /**\n * @param {?} ast\n * @param {?} ctx\n * @return {?}\n */\n function (ast, ctx) {\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 /**\n * @param {?} ast\n * @param {?} ctx\n * @return {?}\n */\n AbstractEmitterVisitor.prototype.visitLiteralArrayExpr = /**\n * @param {?} ast\n * @param {?} ctx\n * @return {?}\n */\n function (ast, ctx) {\n ctx.print(ast, \"[\");\n this.visitAllExpressions(ast.entries, ctx, ',');\n ctx.print(ast, \"]\");\n return null;\n };\n /**\n * @param {?} ast\n * @param {?} ctx\n * @return {?}\n */\n AbstractEmitterVisitor.prototype.visitLiteralMapExpr = /**\n * @param {?} ast\n * @param {?} ctx\n * @return {?}\n */\n function (ast, ctx) {\n var _this = this;\n ctx.print(ast, \"{\");\n this.visitAllObjects(function (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 /**\n * @param {?} ast\n * @param {?} ctx\n * @return {?}\n */\n AbstractEmitterVisitor.prototype.visitCommaExpr = /**\n * @param {?} ast\n * @param {?} ctx\n * @return {?}\n */\n function (ast, ctx) {\n ctx.print(ast, '(');\n this.visitAllExpressions(ast.parts, ctx, ',');\n ctx.print(ast, ')');\n return null;\n };\n /**\n * @param {?} expressions\n * @param {?} ctx\n * @param {?} separator\n * @return {?}\n */\n AbstractEmitterVisitor.prototype.visitAllExpressions = /**\n * @param {?} expressions\n * @param {?} ctx\n * @param {?} separator\n * @return {?}\n */\n function (expressions, ctx, separator) {\n var _this = this;\n this.visitAllObjects(function (expr) { return expr.visitExpression(_this, ctx); }, expressions, ctx, separator);\n };\n /**\n * @template T\n * @param {?} handler\n * @param {?} expressions\n * @param {?} ctx\n * @param {?} separator\n * @return {?}\n */\n AbstractEmitterVisitor.prototype.visitAllObjects = /**\n * @template T\n * @param {?} handler\n * @param {?} expressions\n * @param {?} ctx\n * @param {?} separator\n * @return {?}\n */\n function (handler, expressions, ctx, separator) {\n var /** @type {?} */ incrementedIndent = false;\n for (var /** @type {?} */ 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 }\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 * @param {?} statements\n * @param {?} ctx\n * @return {?}\n */\n AbstractEmitterVisitor.prototype.visitAllStatements = /**\n * @param {?} statements\n * @param {?} ctx\n * @return {?}\n */\n function (statements, ctx) {\n var _this = this;\n statements.forEach(function (stmt) { return stmt.visitStatement(_this, ctx); });\n };\n return AbstractEmitterVisitor;\n}());\n/**\n * @abstract\n */\nexport { AbstractEmitterVisitor };\nfunction AbstractEmitterVisitor_tsickle_Closure_declarations() {\n /** @type {?} */\n AbstractEmitterVisitor.prototype._escapeDollarInStrings;\n /**\n * @abstract\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n AbstractEmitterVisitor.prototype.visitCastExpr = function (ast, context) { };\n /**\n * @abstract\n * @param {?} stmt\n * @param {?} ctx\n * @return {?}\n */\n AbstractEmitterVisitor.prototype.visitDeclareClassStmt = function (stmt, ctx) { };\n /**\n * @abstract\n * @param {?} stmt\n * @param {?} ctx\n * @return {?}\n */\n AbstractEmitterVisitor.prototype.visitTryCatchStmt = function (stmt, ctx) { };\n /**\n * @abstract\n * @param {?} stmt\n * @param {?} ctx\n * @return {?}\n */\n AbstractEmitterVisitor.prototype.visitDeclareVarStmt = function (stmt, ctx) { };\n /**\n * @abstract\n * @param {?} method\n * @return {?}\n */\n AbstractEmitterVisitor.prototype.getBuiltinMethodName = function (method) { };\n /**\n * @abstract\n * @param {?} ast\n * @param {?} ctx\n * @return {?}\n */\n AbstractEmitterVisitor.prototype.visitExternalExpr = function (ast, ctx) { };\n /**\n * @abstract\n * @param {?} ast\n * @param {?} ctx\n * @return {?}\n */\n AbstractEmitterVisitor.prototype.visitFunctionExpr = function (ast, ctx) { };\n /**\n * @abstract\n * @param {?} stmt\n * @param {?} context\n * @return {?}\n */\n AbstractEmitterVisitor.prototype.visitDeclareFunctionStmt = function (stmt, context) { };\n}\n/**\n * @param {?} input\n * @param {?} escapeDollar\n * @param {?=} alwaysQuote\n * @return {?}\n */\nexport function escapeIdentifier(input, escapeDollar, alwaysQuote) {\n if (alwaysQuote === void 0) { alwaysQuote = true; }\n if (input == null) {\n return null;\n }\n var /** @type {?} */ body = input.replace(_SINGLE_QUOTE_ESCAPE_STRING_RE, function () {\n var match = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n match[_i] = arguments[_i];\n }\n if (match[0] == '$') {\n return escapeDollar ? '\\\\$' : '$';\n }\n else if (match[0] == '\\n') {\n return '\\\\n';\n }\n else if (match[0] == '\\r') {\n return '\\\\r';\n }\n else {\n return \"\\\\\" + match[0];\n }\n });\n var /** @type {?} */ requiresQuotes = alwaysQuote || !_LEGAL_IDENTIFIER_RE.test(body);\n return requiresQuotes ? \"'\" + body + \"'\" : body;\n}\n/**\n * @param {?} count\n * @return {?}\n */\nfunction _createIndent(count) {\n var /** @type {?} */ res = '';\n for (var /** @type {?} */ i = 0; i < count; i++) {\n res += _INDENT_WITH;\n }\n return res;\n}\n//# sourceMappingURL=abstract_emitter.js.map","/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this 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 tslib_1 from \"tslib\";\nimport { AbstractEmitterVisitor, CATCH_ERROR_VAR, CATCH_STACK_VAR, EmitterVisitorContext } from './abstract_emitter';\nimport * as o from './output_ast';\nvar /** @type {?} */ _debugFilePath = '/debug/lib';\n/**\n * @param {?} ast\n * @return {?}\n */\nexport function debugOutputAstAsTypeScript(ast) {\n var /** @type {?} */ converter = new _TsEmitterVisitor();\n var /** @type {?} */ ctx = EmitterVisitorContext.createRoot();\n var /** @type {?} */ asts = Array.isArray(ast) ? ast : [ast];\n asts.forEach(function (ast) {\n if (ast instanceof o.Statement) {\n ast.visitStatement(converter, ctx);\n }\n else if (ast instanceof o.Expression) {\n ast.visitExpression(converter, ctx);\n }\n else if (ast instanceof o.Type) {\n ast.visitType(converter, ctx);\n }\n else {\n throw new Error(\"Don't know how to print debug info for \" + ast);\n }\n });\n return ctx.toSource();\n}\nvar TypeScriptEmitter = /** @class */ (function () {\n function TypeScriptEmitter() {\n }\n /**\n * @param {?} genFilePath\n * @param {?} stmts\n * @param {?=} preamble\n * @param {?=} emitSourceMaps\n * @param {?=} referenceFilter\n * @return {?}\n */\n TypeScriptEmitter.prototype.emitStatementsAndContext = /**\n * @param {?} genFilePath\n * @param {?} stmts\n * @param {?=} preamble\n * @param {?=} emitSourceMaps\n * @param {?=} referenceFilter\n * @return {?}\n */\n function (genFilePath, stmts, preamble, emitSourceMaps, referenceFilter) {\n if (preamble === void 0) { preamble = ''; }\n if (emitSourceMaps === void 0) { emitSourceMaps = true; }\n var /** @type {?} */ converter = new _TsEmitterVisitor(referenceFilter);\n var /** @type {?} */ ctx = EmitterVisitorContext.createRoot();\n converter.visitAllStatements(stmts, ctx);\n var /** @type {?} */ preambleLines = preamble ? preamble.split('\\n') : [];\n converter.reexports.forEach(function (reexports, exportedModuleName) {\n var /** @type {?} */ reexportsCode = reexports.map(function (reexport) { return reexport.name + \" as \" + reexport.as; }).join(',');\n preambleLines.push(\"export {\" + reexportsCode + \"} from '\" + exportedModuleName + \"';\");\n });\n converter.importsWithPrefixes.forEach(function (prefix, importedModuleName) {\n // Note: can't write the real word for import as it screws up system.js auto detection...\n preambleLines.push(\"imp\" +\n (\"ort * as \" + prefix + \" from '\" + importedModuleName + \"';\"));\n });\n var /** @type {?} */ sm = emitSourceMaps ?\n ctx.toSourceMapGenerator(genFilePath, preambleLines.length).toJsComment() :\n '';\n var /** @type {?} */ lines = preambleLines.concat([ctx.toSource(), sm]);\n if (sm) {\n // always add a newline at the end, as some tools have bugs without it.\n lines.push('');\n }\n ctx.setPreambleLineCount(preambleLines.length);\n return { sourceText: lines.join('\\n'), context: ctx };\n };\n /**\n * @param {?} genFilePath\n * @param {?} stmts\n * @param {?=} preamble\n * @return {?}\n */\n TypeScriptEmitter.prototype.emitStatements = /**\n * @param {?} genFilePath\n * @param {?} stmts\n * @param {?=} preamble\n * @return {?}\n */\n function (genFilePath, stmts, preamble) {\n if (preamble === void 0) { preamble = ''; }\n return this.emitStatementsAndContext(genFilePath, stmts, preamble).sourceText;\n };\n return TypeScriptEmitter;\n}());\nexport { TypeScriptEmitter };\nvar _TsEmitterVisitor = /** @class */ (function (_super) {\n tslib_1.__extends(_TsEmitterVisitor, _super);\n function _TsEmitterVisitor(referenceFilter) {\n var _this = _super.call(this, false) || this;\n _this.referenceFilter = referenceFilter;\n _this.typeExpression = 0;\n _this.importsWithPrefixes = new Map();\n _this.reexports = new Map();\n return _this;\n }\n /**\n * @param {?} t\n * @param {?} ctx\n * @param {?=} defaultType\n * @return {?}\n */\n _TsEmitterVisitor.prototype.visitType = /**\n * @param {?} t\n * @param {?} ctx\n * @param {?=} defaultType\n * @return {?}\n */\n function (t, ctx, defaultType) {\n if (defaultType === void 0) { defaultType = 'any'; }\n if (t) {\n this.typeExpression++;\n t.visitType(this, ctx);\n this.typeExpression--;\n }\n else {\n ctx.print(null, defaultType);\n }\n };\n /**\n * @param {?} ast\n * @param {?} ctx\n * @return {?}\n */\n _TsEmitterVisitor.prototype.visitLiteralExpr = /**\n * @param {?} ast\n * @param {?} ctx\n * @return {?}\n */\n function (ast, ctx) {\n var /** @type {?} */ value = ast.value;\n if (value == null && ast.type != o.INFERRED_TYPE) {\n ctx.print(ast, \"(\" + value + \" as any)\");\n return null;\n }\n return _super.prototype.visitLiteralExpr.call(this, ast, ctx);\n };\n // Temporary workaround to support strictNullCheck enabled consumers of ngc emit.\n // In SNC mode, [] have the type never[], so we cast here to any[].\n // TODO: narrow the cast to a more explicit type, or use a pattern that does not\n // start with [].concat. see https://github.com/angular/angular/pull/11846\n /**\n * @param {?} ast\n * @param {?} ctx\n * @return {?}\n */\n _TsEmitterVisitor.prototype.visitLiteralArrayExpr = /**\n * @param {?} ast\n * @param {?} ctx\n * @return {?}\n */\n function (ast, ctx) {\n if (ast.entries.length === 0) {\n ctx.print(ast, '(');\n }\n var /** @type {?} */ result = _super.prototype.visitLiteralArrayExpr.call(this, ast, ctx);\n if (ast.entries.length === 0) {\n ctx.print(ast, ' as any[])');\n }\n return result;\n };\n /**\n * @param {?} ast\n * @param {?} ctx\n * @return {?}\n */\n _TsEmitterVisitor.prototype.visitExternalExpr = /**\n * @param {?} ast\n * @param {?} ctx\n * @return {?}\n */\n function (ast, ctx) {\n this._visitIdentifier(ast.value, ast.typeParams, ctx);\n return null;\n };\n /**\n * @param {?} ast\n * @param {?} ctx\n * @return {?}\n */\n _TsEmitterVisitor.prototype.visitAssertNotNullExpr = /**\n * @param {?} ast\n * @param {?} ctx\n * @return {?}\n */\n function (ast, ctx) {\n var /** @type {?} */ result = _super.prototype.visitAssertNotNullExpr.call(this, ast, ctx);\n ctx.print(ast, '!');\n return result;\n };\n /**\n * @param {?} stmt\n * @param {?} ctx\n * @return {?}\n */\n _TsEmitterVisitor.prototype.visitDeclareVarStmt = /**\n * @param {?} stmt\n * @param {?} ctx\n * @return {?}\n */\n function (stmt, ctx) {\n if (stmt.hasModifier(o.StmtModifier.Exported) && stmt.value instanceof o.ExternalExpr &&\n !stmt.type) {\n // check for a reexport\n var _a = stmt.value.value, name_1 = _a.name, moduleName = _a.moduleName;\n if (moduleName) {\n var /** @type {?} */ reexports = this.reexports.get(moduleName);\n if (!reexports) {\n reexports = [];\n this.reexports.set(moduleName, reexports);\n }\n reexports.push({ name: /** @type {?} */ ((name_1)), as: stmt.name });\n return null;\n }\n }\n if (stmt.hasModifier(o.StmtModifier.Exported)) {\n ctx.print(stmt, \"export \");\n }\n if (stmt.hasModifier(o.StmtModifier.Final)) {\n ctx.print(stmt, \"const\");\n }\n else {\n ctx.print(stmt, \"var\");\n }\n ctx.print(stmt, \" \" + stmt.name);\n this._printColonType(stmt.type, ctx);\n ctx.print(stmt, \" = \");\n stmt.value.visitExpression(this, ctx);\n ctx.println(stmt, \";\");\n return null;\n };\n /**\n * @param {?} ast\n * @param {?} ctx\n * @return {?}\n */\n _TsEmitterVisitor.prototype.visitCastExpr = /**\n * @param {?} ast\n * @param {?} ctx\n * @return {?}\n */\n function (ast, ctx) {\n ctx.print(ast, \"(<\"); /** @type {?} */\n ((ast.type)).visitType(this, ctx);\n ctx.print(ast, \">\");\n ast.value.visitExpression(this, ctx);\n ctx.print(ast, \")\");\n return null;\n };\n /**\n * @param {?} ast\n * @param {?} ctx\n * @return {?}\n */\n _TsEmitterVisitor.prototype.visitInstantiateExpr = /**\n * @param {?} ast\n * @param {?} ctx\n * @return {?}\n */\n function (ast, ctx) {\n ctx.print(ast, \"new \");\n this.typeExpression++;\n ast.classExpr.visitExpression(this, ctx);\n this.typeExpression--;\n ctx.print(ast, \"(\");\n this.visitAllExpressions(ast.args, ctx, ',');\n ctx.print(ast, \")\");\n return null;\n };\n /**\n * @param {?} stmt\n * @param {?} ctx\n * @return {?}\n */\n _TsEmitterVisitor.prototype.visitDeclareClassStmt = /**\n * @param {?} stmt\n * @param {?} ctx\n * @return {?}\n */\n function (stmt, ctx) {\n var _this = this;\n ctx.pushClass(stmt);\n if (stmt.hasModifier(o.StmtModifier.Exported)) {\n ctx.print(stmt, \"export \");\n }\n ctx.print(stmt, \"class \" + stmt.name);\n if (stmt.parent != null) {\n ctx.print(stmt, \" extends \");\n this.typeExpression++;\n stmt.parent.visitExpression(this, ctx);\n this.typeExpression--;\n }\n ctx.println(stmt, \" {\");\n ctx.incIndent();\n stmt.fields.forEach(function (field) { return _this._visitClassField(field, ctx); });\n if (stmt.constructorMethod != null) {\n this._visitClassConstructor(stmt, ctx);\n }\n stmt.getters.forEach(function (getter) { return _this._visitClassGetter(getter, ctx); });\n stmt.methods.forEach(function (method) { return _this._visitClassMethod(method, ctx); });\n ctx.decIndent();\n ctx.println(stmt, \"}\");\n ctx.popClass();\n return null;\n };\n /**\n * @param {?} field\n * @param {?} ctx\n * @return {?}\n */\n _TsEmitterVisitor.prototype._visitClassField = /**\n * @param {?} field\n * @param {?} ctx\n * @return {?}\n */\n function (field, ctx) {\n if (field.hasModifier(o.StmtModifier.Private)) {\n // comment out as a workaround for #10967\n ctx.print(null, \"/*private*/ \");\n }\n ctx.print(null, field.name);\n this._printColonType(field.type, ctx);\n ctx.println(null, \";\");\n };\n /**\n * @param {?} getter\n * @param {?} ctx\n * @return {?}\n */\n _TsEmitterVisitor.prototype._visitClassGetter = /**\n * @param {?} getter\n * @param {?} ctx\n * @return {?}\n */\n function (getter, ctx) {\n if (getter.hasModifier(o.StmtModifier.Private)) {\n ctx.print(null, \"private \");\n }\n ctx.print(null, \"get \" + getter.name + \"()\");\n this._printColonType(getter.type, ctx);\n ctx.println(null, \" {\");\n ctx.incIndent();\n this.visitAllStatements(getter.body, ctx);\n ctx.decIndent();\n ctx.println(null, \"}\");\n };\n /**\n * @param {?} stmt\n * @param {?} ctx\n * @return {?}\n */\n _TsEmitterVisitor.prototype._visitClassConstructor = /**\n * @param {?} stmt\n * @param {?} ctx\n * @return {?}\n */\n function (stmt, ctx) {\n ctx.print(stmt, \"constructor(\");\n this._visitParams(stmt.constructorMethod.params, ctx);\n ctx.println(stmt, \") {\");\n ctx.incIndent();\n this.visitAllStatements(stmt.constructorMethod.body, ctx);\n ctx.decIndent();\n ctx.println(stmt, \"}\");\n };\n /**\n * @param {?} method\n * @param {?} ctx\n * @return {?}\n */\n _TsEmitterVisitor.prototype._visitClassMethod = /**\n * @param {?} method\n * @param {?} ctx\n * @return {?}\n */\n function (method, ctx) {\n if (method.hasModifier(o.StmtModifier.Private)) {\n ctx.print(null, \"private \");\n }\n ctx.print(null, method.name + \"(\");\n this._visitParams(method.params, ctx);\n ctx.print(null, \")\");\n this._printColonType(method.type, ctx, 'void');\n ctx.println(null, \" {\");\n ctx.incIndent();\n this.visitAllStatements(method.body, ctx);\n ctx.decIndent();\n ctx.println(null, \"}\");\n };\n /**\n * @param {?} ast\n * @param {?} ctx\n * @return {?}\n */\n _TsEmitterVisitor.prototype.visitFunctionExpr = /**\n * @param {?} ast\n * @param {?} ctx\n * @return {?}\n */\n function (ast, ctx) {\n ctx.print(ast, \"(\");\n this._visitParams(ast.params, ctx);\n ctx.print(ast, \")\");\n this._printColonType(ast.type, ctx, 'void');\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 /**\n * @param {?} stmt\n * @param {?} ctx\n * @return {?}\n */\n _TsEmitterVisitor.prototype.visitDeclareFunctionStmt = /**\n * @param {?} stmt\n * @param {?} ctx\n * @return {?}\n */\n function (stmt, ctx) {\n if (stmt.hasModifier(o.StmtModifier.Exported)) {\n ctx.print(stmt, \"export \");\n }\n ctx.print(stmt, \"function \" + stmt.name + \"(\");\n this._visitParams(stmt.params, ctx);\n ctx.print(stmt, \")\");\n this._printColonType(stmt.type, ctx, 'void');\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 /**\n * @param {?} stmt\n * @param {?} ctx\n * @return {?}\n */\n _TsEmitterVisitor.prototype.visitTryCatchStmt = /**\n * @param {?} stmt\n * @param {?} ctx\n * @return {?}\n */\n function (stmt, ctx) {\n ctx.println(stmt, \"try {\");\n ctx.incIndent();\n this.visitAllStatements(stmt.bodyStmts, ctx);\n ctx.decIndent();\n ctx.println(stmt, \"} catch (\" + CATCH_ERROR_VAR.name + \") {\");\n ctx.incIndent();\n var /** @type {?} */ catchStmts = [/** @type {?} */ (CATCH_STACK_VAR.set(CATCH_ERROR_VAR.prop('stack', null)).toDeclStmt(null, [\n o.StmtModifier.Final\n ]))].concat(stmt.catchStmts);\n this.visitAllStatements(catchStmts, ctx);\n ctx.decIndent();\n ctx.println(stmt, \"}\");\n return null;\n };\n /**\n * @param {?} type\n * @param {?} ctx\n * @return {?}\n */\n _TsEmitterVisitor.prototype.visitBuiltintType = /**\n * @param {?} type\n * @param {?} ctx\n * @return {?}\n */\n function (type, ctx) {\n var /** @type {?} */ typeStr;\n switch (type.name) {\n case o.BuiltinTypeName.Bool:\n typeStr = 'boolean';\n break;\n case o.BuiltinTypeName.Dynamic:\n typeStr = 'any';\n break;\n case o.BuiltinTypeName.Function:\n typeStr = 'Function';\n break;\n case o.BuiltinTypeName.Number:\n typeStr = 'number';\n break;\n case o.BuiltinTypeName.Int:\n typeStr = 'number';\n break;\n case o.BuiltinTypeName.String:\n typeStr = 'string';\n break;\n default:\n throw new Error(\"Unsupported builtin type \" + type.name);\n }\n ctx.print(null, typeStr);\n return null;\n };\n /**\n * @param {?} ast\n * @param {?} ctx\n * @return {?}\n */\n _TsEmitterVisitor.prototype.visitExpressionType = /**\n * @param {?} ast\n * @param {?} ctx\n * @return {?}\n */\n function (ast, ctx) {\n ast.value.visitExpression(this, ctx);\n return null;\n };\n /**\n * @param {?} type\n * @param {?} ctx\n * @return {?}\n */\n _TsEmitterVisitor.prototype.visitArrayType = /**\n * @param {?} type\n * @param {?} ctx\n * @return {?}\n */\n function (type, ctx) {\n this.visitType(type.of, ctx);\n ctx.print(null, \"[]\");\n return null;\n };\n /**\n * @param {?} type\n * @param {?} ctx\n * @return {?}\n */\n _TsEmitterVisitor.prototype.visitMapType = /**\n * @param {?} type\n * @param {?} ctx\n * @return {?}\n */\n function (type, ctx) {\n ctx.print(null, \"{[key: string]:\");\n this.visitType(type.valueType, ctx);\n ctx.print(null, \"}\");\n return null;\n };\n /**\n * @param {?} method\n * @return {?}\n */\n _TsEmitterVisitor.prototype.getBuiltinMethodName = /**\n * @param {?} method\n * @return {?}\n */\n function (method) {\n var /** @type {?} */ name;\n switch (method) {\n case o.BuiltinMethod.ConcatArray:\n name = 'concat';\n break;\n case o.BuiltinMethod.SubscribeObservable:\n name = 'subscribe';\n break;\n case o.BuiltinMethod.Bind:\n name = 'bind';\n break;\n default:\n throw new Error(\"Unknown builtin method: \" + method);\n }\n return name;\n };\n /**\n * @param {?} params\n * @param {?} ctx\n * @return {?}\n */\n _TsEmitterVisitor.prototype._visitParams = /**\n * @param {?} params\n * @param {?} ctx\n * @return {?}\n */\n function (params, ctx) {\n var _this = this;\n this.visitAllObjects(function (param) {\n ctx.print(null, param.name);\n _this._printColonType(param.type, ctx);\n }, params, ctx, ',');\n };\n /**\n * @param {?} value\n * @param {?} typeParams\n * @param {?} ctx\n * @return {?}\n */\n _TsEmitterVisitor.prototype._visitIdentifier = /**\n * @param {?} value\n * @param {?} typeParams\n * @param {?} ctx\n * @return {?}\n */\n function (value, typeParams, ctx) {\n var _this = this;\n var name = value.name, moduleName = value.moduleName;\n if (this.referenceFilter && this.referenceFilter(value)) {\n ctx.print(null, '(null as any)');\n return;\n }\n if (moduleName) {\n var /** @type {?} */ prefix = this.importsWithPrefixes.get(moduleName);\n if (prefix == null) {\n prefix = \"i\" + this.importsWithPrefixes.size;\n this.importsWithPrefixes.set(moduleName, prefix);\n }\n ctx.print(null, prefix + \".\");\n }\n ctx.print(null, /** @type {?} */ ((name)));\n if (this.typeExpression > 0) {\n // If we are in a type expression that refers to a generic type then supply\n // the required type parameters. If there were not enough type parameters\n // supplied, supply any as the type. Outside a type expression the reference\n // should not supply type parameters and be treated as a simple value reference\n // to the constructor function itself.\n var /** @type {?} */ suppliedParameters = typeParams || [];\n if (suppliedParameters.length > 0) {\n ctx.print(null, \"<\");\n this.visitAllObjects(function (type) { return type.visitType(_this, ctx); }, /** @type {?} */ ((typeParams)), ctx, ',');\n ctx.print(null, \">\");\n }\n }\n };\n /**\n * @param {?} type\n * @param {?} ctx\n * @param {?=} defaultType\n * @return {?}\n */\n _TsEmitterVisitor.prototype._printColonType = /**\n * @param {?} type\n * @param {?} ctx\n * @param {?=} defaultType\n * @return {?}\n */\n function (type, ctx, defaultType) {\n if (type !== o.INFERRED_TYPE) {\n ctx.print(null, ':');\n this.visitType(type, ctx, defaultType);\n }\n };\n return _TsEmitterVisitor;\n}(AbstractEmitterVisitor));\nfunction _TsEmitterVisitor_tsickle_Closure_declarations() {\n /** @type {?} */\n _TsEmitterVisitor.prototype.typeExpression;\n /** @type {?} */\n _TsEmitterVisitor.prototype.importsWithPrefixes;\n /** @type {?} */\n _TsEmitterVisitor.prototype.reexports;\n /** @type {?} */\n _TsEmitterVisitor.prototype.referenceFilter;\n}\n//# sourceMappingURL=ts_emitter.js.map","/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this 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 { createPipe } from './core';\nimport { findLast } from './directive_resolver';\nimport { resolveForwardRef, stringify } from './util';\n/**\n * Resolve a `Type` for {\\@link Pipe}.\n *\n * This interface can be overridden by the application developer to create custom behavior.\n *\n * See {\\@link Compiler}\n */\nvar /**\n * Resolve a `Type` for {\\@link Pipe}.\n *\n * This interface can be overridden by the application developer to create custom behavior.\n *\n * See {\\@link Compiler}\n */\nPipeResolver = /** @class */ (function () {\n function PipeResolver(_reflector) {\n this._reflector = _reflector;\n }\n /**\n * @param {?} type\n * @return {?}\n */\n PipeResolver.prototype.isPipe = /**\n * @param {?} type\n * @return {?}\n */\n function (type) {\n var /** @type {?} */ typeMetadata = this._reflector.annotations(resolveForwardRef(type));\n return typeMetadata && typeMetadata.some(createPipe.isTypeOf);\n };\n /**\n * Return {@link Pipe} for a given `Type`.\n */\n /**\n * Return {\\@link Pipe} for a given `Type`.\n * @param {?} type\n * @param {?=} throwIfNotFound\n * @return {?}\n */\n PipeResolver.prototype.resolve = /**\n * Return {\\@link Pipe} for a given `Type`.\n * @param {?} type\n * @param {?=} throwIfNotFound\n * @return {?}\n */\n function (type, throwIfNotFound) {\n if (throwIfNotFound === void 0) { throwIfNotFound = true; }\n var /** @type {?} */ metas = this._reflector.annotations(resolveForwardRef(type));\n if (metas) {\n var /** @type {?} */ annotation = findLast(metas, createPipe.isTypeOf);\n if (annotation) {\n return annotation;\n }\n }\n if (throwIfNotFound) {\n throw new Error(\"No Pipe decorator found on \" + stringify(type));\n }\n return null;\n };\n return PipeResolver;\n}());\n/**\n * Resolve a `Type` for {\\@link Pipe}.\n *\n * This interface can be overridden by the application developer to create custom behavior.\n *\n * See {\\@link Compiler}\n */\nexport { PipeResolver };\nfunction PipeResolver_tsickle_Closure_declarations() {\n /** @type {?} */\n PipeResolver.prototype._reflector;\n}\n//# sourceMappingURL=pipe_resolver.js.map","/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this 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 { SecurityContext } from '../core';\n/**\n * Map from tagName|propertyName SecurityContext. Properties applying to all tags use '*'.\n */\nexport var /** @type {?} */ SECURITY_SCHEMA = {};\n/**\n * @param {?} ctx\n * @param {?} specs\n * @return {?}\n */\nfunction registerContext(ctx, specs) {\n for (var _i = 0, specs_1 = specs; _i < specs_1.length; _i++) {\n var spec = specs_1[_i];\n SECURITY_SCHEMA[spec.toLowerCase()] = ctx;\n }\n}\n// Case is insignificant below, all element and attribute names are lower-cased for lookup.\nregisterContext(SecurityContext.HTML, [\n 'iframe|srcdoc',\n '*|innerHTML',\n '*|outerHTML',\n]);\nregisterContext(SecurityContext.STYLE, ['*|style']);\n// NB: no SCRIPT contexts here, they are never allowed due to the parser stripping them.\nregisterContext(SecurityContext.URL, [\n '*|formAction', 'area|href', 'area|ping', 'audio|src', 'a|href',\n 'a|ping', 'blockquote|cite', 'body|background', 'del|cite', 'form|action',\n 'img|src', 'img|srcset', 'input|src', 'ins|cite', 'q|cite',\n 'source|src', 'source|srcset', 'track|src', 'video|poster', 'video|src',\n]);\nregisterContext(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//# sourceMappingURL=dom_security_schema.js.map","/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source 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 * @abstract\n */\nvar /**\n * @abstract\n */\nElementSchemaRegistry = /** @class */ (function () {\n function ElementSchemaRegistry() {\n }\n return ElementSchemaRegistry;\n}());\n/**\n * @abstract\n */\nexport { ElementSchemaRegistry };\nfunction ElementSchemaRegistry_tsickle_Closure_declarations() {\n /**\n * @abstract\n * @param {?} tagName\n * @param {?} propName\n * @param {?} schemaMetas\n * @return {?}\n */\n ElementSchemaRegistry.prototype.hasProperty = function (tagName, propName, schemaMetas) { };\n /**\n * @abstract\n * @param {?} tagName\n * @param {?} schemaMetas\n * @return {?}\n */\n ElementSchemaRegistry.prototype.hasElement = function (tagName, schemaMetas) { };\n /**\n * @abstract\n * @param {?} elementName\n * @param {?} propName\n * @param {?} isAttribute\n * @return {?}\n */\n ElementSchemaRegistry.prototype.securityContext = function (elementName, propName, isAttribute) { };\n /**\n * @abstract\n * @return {?}\n */\n ElementSchemaRegistry.prototype.allKnownElementNames = function () { };\n /**\n * @abstract\n * @param {?} propName\n * @return {?}\n */\n ElementSchemaRegistry.prototype.getMappedPropName = function (propName) { };\n /**\n * @abstract\n * @return {?}\n */\n ElementSchemaRegistry.prototype.getDefaultComponentElementName = function () { };\n /**\n * @abstract\n * @param {?} name\n * @return {?}\n */\n ElementSchemaRegistry.prototype.validateProperty = function (name) { };\n /**\n * @abstract\n * @param {?} name\n * @return {?}\n */\n ElementSchemaRegistry.prototype.validateAttribute = function (name) { };\n /**\n * @abstract\n * @param {?} propName\n * @return {?}\n */\n ElementSchemaRegistry.prototype.normalizeAnimationStyleProperty = function (propName) { };\n /**\n * @abstract\n * @param {?} camelCaseProp\n * @param {?} userProvidedProp\n * @param {?} val\n * @return {?}\n */\n ElementSchemaRegistry.prototype.normalizeAnimationStyleValue = function (camelCaseProp, userProvidedProp, val) { };\n}\n//# sourceMappingURL=element_schema_registry.js.map","/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this 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 tslib_1 from \"tslib\";\nimport { CUSTOM_ELEMENTS_SCHEMA, NO_ERRORS_SCHEMA, SecurityContext } from '../core';\nimport { isNgContainer, isNgContent } from '../ml_parser/tags';\nimport { dashCaseToCamelCase } from '../util';\nimport { SECURITY_SCHEMA } from './dom_security_schema';\nimport { ElementSchemaRegistry } from './element_schema_registry';\nvar /** @type {?} */ BOOLEAN = 'boolean';\nvar /** @type {?} */ NUMBER = 'number';\nvar /** @type {?} */ STRING = 'string';\nvar /** @type {?} */ OBJECT = 'object';\n/**\n * This array represents the DOM schema. It encodes inheritance, properties, and events.\n *\n * ## Overview\n *\n * Each line represents one kind of element. The `element_inheritance` and properties are joined\n * using `element_inheritance|properties` syntax.\n *\n * ## Element Inheritance\n *\n * The `element_inheritance` can be further subdivided as `element1,element2,...^parentElement`.\n * Here the individual elements are separated by `,` (commas). Every element in the list\n * has identical properties.\n *\n * An `element` may inherit additional properties from `parentElement` If no `^parentElement` is\n * specified then `\"\"` (blank) element is assumed.\n *\n * NOTE: The blank element inherits from root `[Element]` element, the super element of all\n * elements.\n *\n * NOTE an element prefix such as `:svg:` has no special meaning to the schema.\n *\n * ## Properties\n *\n * Each element has a set of properties separated by `,` (commas). Each property can be prefixed\n * by a special character designating its type:\n *\n * - (no prefix): property is a string.\n * - `*`: property represents an event.\n * - `!`: property is a boolean.\n * - `#`: property is a number.\n * - `%`: property is an object.\n *\n * ## Query\n *\n * The class creates an internal squas representation which allows to easily answer the query of\n * if a given property exist on a given element.\n *\n * NOTE: We don't yet support querying for types or events.\n * NOTE: This schema is auto extracted from `schema_extractor.ts` located in the test folder,\n * see dom_element_schema_registry_spec.ts\n */\nvar /** @type {?} */ SCHEMA = [\n '[Element]|textContent,%classList,className,id,innerHTML,*beforecopy,*beforecut,*beforepaste,*copy,*cut,*paste,*search,*selectstart,*webkitfullscreenchange,*webkitfullscreenerror,*wheel,outerHTML,#scrollLeft,#scrollTop,slot' +\n ',*message,*mozfullscreenchange,*mozfullscreenerror,*mozpointerlockchange,*mozpointerlockerror,*webglcontextcreationerror,*webglcontextlost,*webglcontextrestored',\n '[HTMLElement]^[Element]|accessKey,contentEditable,dir,!draggable,!hidden,innerText,lang,*abort,*auxclick,*blur,*cancel,*canplay,*canplaythrough,*change,*click,*close,*contextmenu,*cuechange,*dblclick,*drag,*dragend,*dragenter,*dragleave,*dragover,*dragstart,*drop,*durationchange,*emptied,*ended,*error,*focus,*gotpointercapture,*input,*invalid,*keydown,*keypress,*keyup,*load,*loadeddata,*loadedmetadata,*loadstart,*lostpointercapture,*mousedown,*mouseenter,*mouseleave,*mousemove,*mouseout,*mouseover,*mouseup,*mousewheel,*pause,*play,*playing,*pointercancel,*pointerdown,*pointerenter,*pointerleave,*pointermove,*pointerout,*pointerover,*pointerup,*progress,*ratechange,*reset,*resize,*scroll,*seeked,*seeking,*select,*show,*stalled,*submit,*suspend,*timeupdate,*toggle,*volumechange,*waiting,outerText,!spellcheck,%style,#tabIndex,title,!translate',\n 'abbr,address,article,aside,b,bdi,bdo,cite,code,dd,dfn,dt,em,figcaption,figure,footer,header,i,kbd,main,mark,nav,noscript,rb,rp,rt,rtc,ruby,s,samp,section,small,strong,sub,sup,u,var,wbr^[HTMLElement]|accessKey,contentEditable,dir,!draggable,!hidden,innerText,lang,*abort,*auxclick,*blur,*cancel,*canplay,*canplaythrough,*change,*click,*close,*contextmenu,*cuechange,*dblclick,*drag,*dragend,*dragenter,*dragleave,*dragover,*dragstart,*drop,*durationchange,*emptied,*ended,*error,*focus,*gotpointercapture,*input,*invalid,*keydown,*keypress,*keyup,*load,*loadeddata,*loadedmetadata,*loadstart,*lostpointercapture,*mousedown,*mouseenter,*mouseleave,*mousemove,*mouseout,*mouseover,*mouseup,*mousewheel,*pause,*play,*playing,*pointercancel,*pointerdown,*pointerenter,*pointerleave,*pointermove,*pointerout,*pointerover,*pointerup,*progress,*ratechange,*reset,*resize,*scroll,*seeked,*seeking,*select,*show,*stalled,*submit,*suspend,*timeupdate,*toggle,*volumechange,*waiting,outerText,!spellcheck,%style,#tabIndex,title,!translate',\n 'media^[HTMLElement]|!autoplay,!controls,%controlsList,%crossOrigin,#currentTime,!defaultMuted,#defaultPlaybackRate,!disableRemotePlayback,!loop,!muted,*encrypted,*waitingforkey,#playbackRate,preload,src,%srcObject,#volume',\n ':svg:^[HTMLElement]|*abort,*auxclick,*blur,*cancel,*canplay,*canplaythrough,*change,*click,*close,*contextmenu,*cuechange,*dblclick,*drag,*dragend,*dragenter,*dragleave,*dragover,*dragstart,*drop,*durationchange,*emptied,*ended,*error,*focus,*gotpointercapture,*input,*invalid,*keydown,*keypress,*keyup,*load,*loadeddata,*loadedmetadata,*loadstart,*lostpointercapture,*mousedown,*mouseenter,*mouseleave,*mousemove,*mouseout,*mouseover,*mouseup,*mousewheel,*pause,*play,*playing,*pointercancel,*pointerdown,*pointerenter,*pointerleave,*pointermove,*pointerout,*pointerover,*pointerup,*progress,*ratechange,*reset,*resize,*scroll,*seeked,*seeking,*select,*show,*stalled,*submit,*suspend,*timeupdate,*toggle,*volumechange,*waiting,%style,#tabIndex',\n ':svg:graphics^:svg:|',\n ':svg:animation^:svg:|*begin,*end,*repeat',\n ':svg:geometry^:svg:|',\n ':svg:componentTransferFunction^:svg:|',\n ':svg:gradient^:svg:|',\n ':svg:textContent^:svg:graphics|',\n ':svg:textPositioning^:svg:textContent|',\n 'a^[HTMLElement]|charset,coords,download,hash,host,hostname,href,hreflang,name,password,pathname,ping,port,protocol,referrerPolicy,rel,rev,search,shape,target,text,type,username',\n 'area^[HTMLElement]|alt,coords,download,hash,host,hostname,href,!noHref,password,pathname,ping,port,protocol,referrerPolicy,rel,search,shape,target,username',\n 'audio^media|',\n 'br^[HTMLElement]|clear',\n 'base^[HTMLElement]|href,target',\n 'body^[HTMLElement]|aLink,background,bgColor,link,*beforeunload,*blur,*error,*focus,*hashchange,*languagechange,*load,*message,*offline,*online,*pagehide,*pageshow,*popstate,*rejectionhandled,*resize,*scroll,*storage,*unhandledrejection,*unload,text,vLink',\n 'button^[HTMLElement]|!autofocus,!disabled,formAction,formEnctype,formMethod,!formNoValidate,formTarget,name,type,value',\n 'canvas^[HTMLElement]|#height,#width',\n 'content^[HTMLElement]|select',\n 'dl^[HTMLElement]|!compact',\n 'datalist^[HTMLElement]|',\n 'details^[HTMLElement]|!open',\n 'dialog^[HTMLElement]|!open,returnValue',\n 'dir^[HTMLElement]|!compact',\n 'div^[HTMLElement]|align',\n 'embed^[HTMLElement]|align,height,name,src,type,width',\n 'fieldset^[HTMLElement]|!disabled,name',\n 'font^[HTMLElement]|color,face,size',\n 'form^[HTMLElement]|acceptCharset,action,autocomplete,encoding,enctype,method,name,!noValidate,target',\n 'frame^[HTMLElement]|frameBorder,longDesc,marginHeight,marginWidth,name,!noResize,scrolling,src',\n 'frameset^[HTMLElement]|cols,*beforeunload,*blur,*error,*focus,*hashchange,*languagechange,*load,*message,*offline,*online,*pagehide,*pageshow,*popstate,*rejectionhandled,*resize,*scroll,*storage,*unhandledrejection,*unload,rows',\n 'hr^[HTMLElement]|align,color,!noShade,size,width',\n 'head^[HTMLElement]|',\n 'h1,h2,h3,h4,h5,h6^[HTMLElement]|align',\n 'html^[HTMLElement]|version',\n 'iframe^[HTMLElement]|align,!allowFullscreen,frameBorder,height,longDesc,marginHeight,marginWidth,name,referrerPolicy,%sandbox,scrolling,src,srcdoc,width',\n 'img^[HTMLElement]|align,alt,border,%crossOrigin,#height,#hspace,!isMap,longDesc,lowsrc,name,referrerPolicy,sizes,src,srcset,useMap,#vspace,#width',\n 'input^[HTMLElement]|accept,align,alt,autocapitalize,autocomplete,!autofocus,!checked,!defaultChecked,defaultValue,dirName,!disabled,%files,formAction,formEnctype,formMethod,!formNoValidate,formTarget,#height,!incremental,!indeterminate,max,#maxLength,min,#minLength,!multiple,name,pattern,placeholder,!readOnly,!required,selectionDirection,#selectionEnd,#selectionStart,#size,src,step,type,useMap,value,%valueAsDate,#valueAsNumber,#width',\n 'li^[HTMLElement]|type,#value',\n 'label^[HTMLElement]|htmlFor',\n 'legend^[HTMLElement]|align',\n 'link^[HTMLElement]|as,charset,%crossOrigin,!disabled,href,hreflang,integrity,media,referrerPolicy,rel,%relList,rev,%sizes,target,type',\n 'map^[HTMLElement]|name',\n 'marquee^[HTMLElement]|behavior,bgColor,direction,height,#hspace,#loop,#scrollAmount,#scrollDelay,!trueSpeed,#vspace,width',\n 'menu^[HTMLElement]|!compact',\n 'meta^[HTMLElement]|content,httpEquiv,name,scheme',\n 'meter^[HTMLElement]|#high,#low,#max,#min,#optimum,#value',\n 'ins,del^[HTMLElement]|cite,dateTime',\n 'ol^[HTMLElement]|!compact,!reversed,#start,type',\n 'object^[HTMLElement]|align,archive,border,code,codeBase,codeType,data,!declare,height,#hspace,name,standby,type,useMap,#vspace,width',\n 'optgroup^[HTMLElement]|!disabled,label',\n 'option^[HTMLElement]|!defaultSelected,!disabled,label,!selected,text,value',\n 'output^[HTMLElement]|defaultValue,%htmlFor,name,value',\n 'p^[HTMLElement]|align',\n 'param^[HTMLElement]|name,type,value,valueType',\n 'picture^[HTMLElement]|',\n 'pre^[HTMLElement]|#width',\n 'progress^[HTMLElement]|#max,#value',\n 'q,blockquote,cite^[HTMLElement]|',\n 'script^[HTMLElement]|!async,charset,%crossOrigin,!defer,event,htmlFor,integrity,src,text,type',\n 'select^[HTMLElement]|!autofocus,!disabled,#length,!multiple,name,!required,#selectedIndex,#size,value',\n 'shadow^[HTMLElement]|',\n 'slot^[HTMLElement]|name',\n 'source^[HTMLElement]|media,sizes,src,srcset,type',\n 'span^[HTMLElement]|',\n 'style^[HTMLElement]|!disabled,media,type',\n 'caption^[HTMLElement]|align',\n 'th,td^[HTMLElement]|abbr,align,axis,bgColor,ch,chOff,#colSpan,headers,height,!noWrap,#rowSpan,scope,vAlign,width',\n 'col,colgroup^[HTMLElement]|align,ch,chOff,#span,vAlign,width',\n 'table^[HTMLElement]|align,bgColor,border,%caption,cellPadding,cellSpacing,frame,rules,summary,%tFoot,%tHead,width',\n 'tr^[HTMLElement]|align,bgColor,ch,chOff,vAlign',\n 'tfoot,thead,tbody^[HTMLElement]|align,ch,chOff,vAlign',\n 'template^[HTMLElement]|',\n 'textarea^[HTMLElement]|autocapitalize,!autofocus,#cols,defaultValue,dirName,!disabled,#maxLength,#minLength,name,placeholder,!readOnly,!required,#rows,selectionDirection,#selectionEnd,#selectionStart,value,wrap',\n 'title^[HTMLElement]|text',\n 'track^[HTMLElement]|!default,kind,label,src,srclang',\n 'ul^[HTMLElement]|!compact,type',\n 'unknown^[HTMLElement]|',\n 'video^media|#height,poster,#width',\n ':svg:a^:svg:graphics|',\n ':svg:animate^:svg:animation|',\n ':svg:animateMotion^:svg:animation|',\n ':svg:animateTransform^:svg:animation|',\n ':svg:circle^:svg:geometry|',\n ':svg:clipPath^:svg:graphics|',\n ':svg:defs^:svg:graphics|',\n ':svg:desc^:svg:|',\n ':svg:discard^:svg:|',\n ':svg:ellipse^:svg:geometry|',\n ':svg:feBlend^:svg:|',\n ':svg:feColorMatrix^:svg:|',\n ':svg:feComponentTransfer^:svg:|',\n ':svg:feComposite^:svg:|',\n ':svg:feConvolveMatrix^:svg:|',\n ':svg:feDiffuseLighting^:svg:|',\n ':svg:feDisplacementMap^:svg:|',\n ':svg:feDistantLight^:svg:|',\n ':svg:feDropShadow^:svg:|',\n ':svg:feFlood^:svg:|',\n ':svg:feFuncA^:svg:componentTransferFunction|',\n ':svg:feFuncB^:svg:componentTransferFunction|',\n ':svg:feFuncG^:svg:componentTransferFunction|',\n ':svg:feFuncR^:svg:componentTransferFunction|',\n ':svg:feGaussianBlur^:svg:|',\n ':svg:feImage^:svg:|',\n ':svg:feMerge^:svg:|',\n ':svg:feMergeNode^:svg:|',\n ':svg:feMorphology^:svg:|',\n ':svg:feOffset^:svg:|',\n ':svg:fePointLight^:svg:|',\n ':svg:feSpecularLighting^:svg:|',\n ':svg:feSpotLight^:svg:|',\n ':svg:feTile^:svg:|',\n ':svg:feTurbulence^:svg:|',\n ':svg:filter^:svg:|',\n ':svg:foreignObject^:svg:graphics|',\n ':svg:g^:svg:graphics|',\n ':svg:image^:svg:graphics|',\n ':svg:line^:svg:geometry|',\n ':svg:linearGradient^:svg:gradient|',\n ':svg:mpath^:svg:|',\n ':svg:marker^:svg:|',\n ':svg:mask^:svg:|',\n ':svg:metadata^:svg:|',\n ':svg:path^:svg:geometry|',\n ':svg:pattern^:svg:|',\n ':svg:polygon^:svg:geometry|',\n ':svg:polyline^:svg:geometry|',\n ':svg:radialGradient^:svg:gradient|',\n ':svg:rect^:svg:geometry|',\n ':svg:svg^:svg:graphics|#currentScale,#zoomAndPan',\n ':svg:script^:svg:|type',\n ':svg:set^:svg:animation|',\n ':svg:stop^:svg:|',\n ':svg:style^:svg:|!disabled,media,title,type',\n ':svg:switch^:svg:graphics|',\n ':svg:symbol^:svg:|',\n ':svg:tspan^:svg:textPositioning|',\n ':svg:text^:svg:textPositioning|',\n ':svg:textPath^:svg:textContent|',\n ':svg:title^:svg:|',\n ':svg:use^:svg:graphics|',\n ':svg:view^:svg:|#zoomAndPan',\n 'data^[HTMLElement]|value',\n 'keygen^[HTMLElement]|!autofocus,challenge,!disabled,form,keytype,name',\n 'menuitem^[HTMLElement]|type,label,icon,!disabled,!checked,radiogroup,!default',\n 'summary^[HTMLElement]|',\n 'time^[HTMLElement]|dateTime',\n ':svg:cursor^:svg:|',\n];\nvar /** @type {?} */ _ATTR_TO_PROP = {\n 'class': 'className',\n 'for': 'htmlFor',\n 'formaction': 'formAction',\n 'innerHtml': 'innerHTML',\n 'readonly': 'readOnly',\n 'tabindex': 'tabIndex',\n};\nvar DomElementSchemaRegistry = /** @class */ (function (_super) {\n tslib_1.__extends(DomElementSchemaRegistry, _super);\n function DomElementSchemaRegistry() {\n var _this = _super.call(this) || this;\n _this._schema = {};\n SCHEMA.forEach(function (encodedType) {\n var /** @type {?} */ type = {};\n var _a = encodedType.split('|'), strType = _a[0], strProperties = _a[1];\n var /** @type {?} */ properties = strProperties.split(',');\n var _b = strType.split('^'), typeNames = _b[0], superName = _b[1];\n typeNames.split(',').forEach(function (tag) { return _this._schema[tag.toLowerCase()] = type; });\n var /** @type {?} */ superType = superName && _this._schema[superName.toLowerCase()];\n if (superType) {\n Object.keys(superType).forEach(function (prop) { type[prop] = superType[prop]; });\n }\n properties.forEach(function (property) {\n if (property.length > 0) {\n switch (property[0]) {\n case '*':\n // We don't yet support events.\n // If ever allowing to bind to events, GO THROUGH A SECURITY REVIEW, allowing events\n // will\n // almost certainly introduce bad XSS vulnerabilities.\n // type[property.substring(1)] = EVENT;\n break;\n case '!':\n type[property.substring(1)] = BOOLEAN;\n break;\n case '#':\n type[property.substring(1)] = NUMBER;\n break;\n case '%':\n type[property.substring(1)] = OBJECT;\n break;\n default:\n type[property] = STRING;\n }\n }\n });\n });\n return _this;\n }\n /**\n * @param {?} tagName\n * @param {?} propName\n * @param {?} schemaMetas\n * @return {?}\n */\n DomElementSchemaRegistry.prototype.hasProperty = /**\n * @param {?} tagName\n * @param {?} propName\n * @param {?} schemaMetas\n * @return {?}\n */\n function (tagName, propName, schemaMetas) {\n if (schemaMetas.some(function (schema) { return schema.name === NO_ERRORS_SCHEMA.name; })) {\n return true;\n }\n if (tagName.indexOf('-') > -1) {\n if (isNgContainer(tagName) || isNgContent(tagName)) {\n return false;\n }\n if (schemaMetas.some(function (schema) { return schema.name === CUSTOM_ELEMENTS_SCHEMA.name; })) {\n // Can't tell now as we don't know which properties a custom element will get\n // once it is instantiated\n return true;\n }\n }\n var /** @type {?} */ elementProperties = this._schema[tagName.toLowerCase()] || this._schema['unknown'];\n return !!elementProperties[propName];\n };\n /**\n * @param {?} tagName\n * @param {?} schemaMetas\n * @return {?}\n */\n DomElementSchemaRegistry.prototype.hasElement = /**\n * @param {?} tagName\n * @param {?} schemaMetas\n * @return {?}\n */\n function (tagName, schemaMetas) {\n if (schemaMetas.some(function (schema) { return schema.name === NO_ERRORS_SCHEMA.name; })) {\n return true;\n }\n if (tagName.indexOf('-') > -1) {\n if (isNgContainer(tagName) || isNgContent(tagName)) {\n return true;\n }\n if (schemaMetas.some(function (schema) { return schema.name === CUSTOM_ELEMENTS_SCHEMA.name; })) {\n // Allow any custom elements\n return true;\n }\n }\n return !!this._schema[tagName.toLowerCase()];\n };\n /**\n * securityContext returns the security context for the given property on the given DOM tag.\n *\n * Tag and property name are statically known and cannot change at runtime, i.e. it is not\n * possible to bind a value into a changing attribute or tag name.\n *\n * The filtering is white list based. All attributes in the schema above are assumed to have the\n * 'NONE' security context, i.e. that they are safe inert string values. Only specific well known\n * attack vectors are assigned their appropriate context.\n */\n /**\n * securityContext returns the security context for the given property on the given DOM tag.\n *\n * Tag and property name are statically known and cannot change at runtime, i.e. it is not\n * possible to bind a value into a changing attribute or tag name.\n *\n * The filtering is white list based. All attributes in the schema above are assumed to have the\n * 'NONE' security context, i.e. that they are safe inert string values. Only specific well known\n * attack vectors are assigned their appropriate context.\n * @param {?} tagName\n * @param {?} propName\n * @param {?} isAttribute\n * @return {?}\n */\n DomElementSchemaRegistry.prototype.securityContext = /**\n * securityContext returns the security context for the given property on the given DOM tag.\n *\n * Tag and property name are statically known and cannot change at runtime, i.e. it is not\n * possible to bind a value into a changing attribute or tag name.\n *\n * The filtering is white list based. All attributes in the schema above are assumed to have the\n * 'NONE' security context, i.e. that they are safe inert string values. Only specific well known\n * attack vectors are assigned their appropriate context.\n * @param {?} tagName\n * @param {?} propName\n * @param {?} isAttribute\n * @return {?}\n */\n function (tagName, propName, isAttribute) {\n if (isAttribute) {\n // NB: For security purposes, use the mapped property name, not the attribute name.\n propName = this.getMappedPropName(propName);\n }\n // Make sure comparisons are case insensitive, so that case differences between attribute and\n // property names do not have a security impact.\n tagName = tagName.toLowerCase();\n propName = propName.toLowerCase();\n var /** @type {?} */ ctx = SECURITY_SCHEMA[tagName + '|' + propName];\n if (ctx) {\n return ctx;\n }\n ctx = SECURITY_SCHEMA['*|' + propName];\n return ctx ? ctx : SecurityContext.NONE;\n };\n /**\n * @param {?} propName\n * @return {?}\n */\n DomElementSchemaRegistry.prototype.getMappedPropName = /**\n * @param {?} propName\n * @return {?}\n */\n function (propName) { return _ATTR_TO_PROP[propName] || propName; };\n /**\n * @return {?}\n */\n DomElementSchemaRegistry.prototype.getDefaultComponentElementName = /**\n * @return {?}\n */\n function () { return 'ng-component'; };\n /**\n * @param {?} name\n * @return {?}\n */\n DomElementSchemaRegistry.prototype.validateProperty = /**\n * @param {?} name\n * @return {?}\n */\n function (name) {\n if (name.toLowerCase().startsWith('on')) {\n var /** @type {?} */ msg = \"Binding to event property '\" + name + \"' is disallowed for security reasons, \" +\n (\"please use (\" + name.slice(2) + \")=...\") +\n (\"\\nIf '\" + name + \"' is a directive input, make sure the directive is imported by the\") +\n \" current module.\";\n return { error: true, msg: msg };\n }\n else {\n return { error: false };\n }\n };\n /**\n * @param {?} name\n * @return {?}\n */\n DomElementSchemaRegistry.prototype.validateAttribute = /**\n * @param {?} name\n * @return {?}\n */\n function (name) {\n if (name.toLowerCase().startsWith('on')) {\n var /** @type {?} */ msg = \"Binding to event attribute '\" + name + \"' is disallowed for security reasons, \" +\n (\"please use (\" + name.slice(2) + \")=...\");\n return { error: true, msg: msg };\n }\n else {\n return { error: false };\n }\n };\n /**\n * @return {?}\n */\n DomElementSchemaRegistry.prototype.allKnownElementNames = /**\n * @return {?}\n */\n function () { return Object.keys(this._schema); };\n /**\n * @param {?} propName\n * @return {?}\n */\n DomElementSchemaRegistry.prototype.normalizeAnimationStyleProperty = /**\n * @param {?} propName\n * @return {?}\n */\n function (propName) {\n return dashCaseToCamelCase(propName);\n };\n /**\n * @param {?} camelCaseProp\n * @param {?} userProvidedProp\n * @param {?} val\n * @return {?}\n */\n DomElementSchemaRegistry.prototype.normalizeAnimationStyleValue = /**\n * @param {?} camelCaseProp\n * @param {?} userProvidedProp\n * @param {?} val\n * @return {?}\n */\n function (camelCaseProp, userProvidedProp, val) {\n var /** @type {?} */ unit = '';\n var /** @type {?} */ strVal = val.toString().trim();\n var /** @type {?} */ errorMsg = /** @type {?} */ ((null));\n if (_isPixelDimensionStyle(camelCaseProp) && val !== 0 && val !== '0') {\n if (typeof val === 'number') {\n unit = 'px';\n }\n else {\n var /** @type {?} */ valAndSuffixMatch = val.match(/^[+-]?[\\d\\.]+([a-z]*)$/);\n if (valAndSuffixMatch && valAndSuffixMatch[1].length == 0) {\n errorMsg = \"Please provide a CSS unit value for \" + userProvidedProp + \":\" + val;\n }\n }\n }\n return { error: errorMsg, value: strVal + unit };\n };\n return DomElementSchemaRegistry;\n}(ElementSchemaRegistry));\nexport { DomElementSchemaRegistry };\nfunction DomElementSchemaRegistry_tsickle_Closure_declarations() {\n /** @type {?} */\n DomElementSchemaRegistry.prototype._schema;\n}\n/**\n * @param {?} prop\n * @return {?}\n */\nfunction _isPixelDimensionStyle(prop) {\n switch (prop) {\n case 'width':\n case 'height':\n case 'minWidth':\n case 'minHeight':\n case 'maxWidth':\n case 'maxHeight':\n case 'left':\n case 'top':\n case 'bottom':\n case 'right':\n case 'fontSize':\n case 'outlineWidth':\n case 'outlineOffset':\n case 'paddingTop':\n case 'paddingLeft':\n case 'paddingBottom':\n case 'paddingRight':\n case 'marginTop':\n case 'marginLeft':\n case 'marginBottom':\n case 'marginRight':\n case 'borderRadius':\n case 'borderWidth':\n case 'borderTopWidth':\n case 'borderLeftWidth':\n case 'borderRightWidth':\n case 'borderBottomWidth':\n case 'textIndent':\n return true;\n default:\n return false;\n }\n}\n//# sourceMappingURL=dom_element_schema_registry.js.map","/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * This file is a port of shadowCSS from webcomponents.js to TypeScript.\n *\n * Please make sure to keep to edits in sync with the source file.\n *\n * Source:\n * https://github.com/webcomponents/webcomponentsjs/blob/4efecd7e0e/src/ShadowCSS/ShadowCSS.js\n *\n * The original file level comment is reproduced below\n */\n/*\n This is a limited shim for ShadowDOM css styling.\n https://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html#styles\n\n The intention here is to support only the styling features which can be\n relatively simply implemented. The goal is to allow users to avoid the\n most obvious pitfalls and do so without compromising performance significantly.\n For ShadowDOM styling that's not covered here, a set of best practices\n can be provided that should allow users to accomplish more complex styling.\n\n The following is a list of specific ShadowDOM styling features and a brief\n discussion of the approach used to shim.\n\n Shimmed features:\n\n * :host, :host-context: ShadowDOM allows styling of the shadowRoot's host\n element using the :host rule. To shim this feature, the :host styles are\n reformatted and prefixed with a given scope name and promoted to a\n document level stylesheet.\n For example, given a scope name of .foo, a rule like this:\n\n :host {\n background: red;\n }\n }\n\n becomes:\n\n .foo {\n background: red;\n }\n\n * encapsulation: Styles defined within ShadowDOM, apply only to\n dom inside the ShadowDOM. Polymer uses one of two techniques to implement\n this feature.\n\n By default, rules are prefixed with the host element tag name\n as a descendant selector. This ensures styling does not leak out of the 'top'\n of the element's ShadowDOM. For example,\n\n div {\n font-weight: bold;\n }\n\n becomes:\n\n x-foo div {\n font-weight: bold;\n }\n\n becomes:\n\n\n Alternatively, if WebComponents.ShadowCSS.strictStyling is set to true then\n selectors are scoped by adding an attribute selector suffix to each\n simple selector that contains the host element tag name. Each element\n in the element's ShadowDOM template is also given the scope attribute.\n Thus, these rules match only elements that have the scope attribute.\n For example, given a scope name of x-foo, a rule like this:\n\n div {\n font-weight: bold;\n }\n\n becomes:\n\n div[x-foo] {\n font-weight: bold;\n }\n\n Note that elements that are dynamically added to a scope must have the scope\n selector added to them manually.\n\n * upper/lower bound encapsulation: Styles which are defined outside a\n shadowRoot should not cross the ShadowDOM boundary and should not apply\n inside a shadowRoot.\n\n This styling behavior is not emulated. Some possible ways to do this that\n were rejected due to complexity and/or performance concerns include: (1) reset\n every possible property for every possible selector for a given scope name;\n (2) re-implement css in javascript.\n\n As an alternative, users should make sure to use selectors\n specific to the scope in which they are working.\n\n * ::distributed: This behavior is not emulated. It's often not necessary\n to style the contents of a specific insertion point and instead, descendants\n of the host element can be styled selectively. Users can also create an\n extra node around an insertion point and style that node's contents\n via descendent selectors. For example, with a shadowRoot like this:\n\n <style>\n ::content(div) {\n background: red;\n }\n </style>\n <content></content>\n\n could become:\n\n <style>\n / *@polyfill .content-container div * /\n ::content(div) {\n background: red;\n }\n </style>\n <div class=\"content-container\">\n <content></content>\n </div>\n\n Note the use of @polyfill in the comment above a ShadowDOM specific style\n declaration. This is a directive to the styling shim to use the selector\n in comments in lieu of the next selector when running under polyfill.\n*/\nvar /**\n * This file is a port of shadowCSS from webcomponents.js to TypeScript.\n *\n * Please make sure to keep to edits in sync with the source file.\n *\n * Source:\n * https://github.com/webcomponents/webcomponentsjs/blob/4efecd7e0e/src/ShadowCSS/ShadowCSS.js\n *\n * The original file level comment is reproduced below\n */\n/*\n This is a limited shim for ShadowDOM css styling.\n https://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html#styles\n\n The intention here is to support only the styling features which can be\n relatively simply implemented. The goal is to allow users to avoid the\n most obvious pitfalls and do so without compromising performance significantly.\n For ShadowDOM styling that's not covered here, a set of best practices\n can be provided that should allow users to accomplish more complex styling.\n\n The following is a list of specific ShadowDOM styling features and a brief\n discussion of the approach used to shim.\n\n Shimmed features:\n\n * :host, :host-context: ShadowDOM allows styling of the shadowRoot's host\n element using the :host rule. To shim this feature, the :host styles are\n reformatted and prefixed with a given scope name and promoted to a\n document level stylesheet.\n For example, given a scope name of .foo, a rule like this:\n\n :host {\n background: red;\n }\n }\n\n becomes:\n\n .foo {\n background: red;\n }\n\n * encapsulation: Styles defined within ShadowDOM, apply only to\n dom inside the ShadowDOM. Polymer uses one of two techniques to implement\n this feature.\n\n By default, rules are prefixed with the host element tag name\n as a descendant selector. This ensures styling does not leak out of the 'top'\n of the element's ShadowDOM. For example,\n\n div {\n font-weight: bold;\n }\n\n becomes:\n\n x-foo div {\n font-weight: bold;\n }\n\n becomes:\n\n\n Alternatively, if WebComponents.ShadowCSS.strictStyling is set to true then\n selectors are scoped by adding an attribute selector suffix to each\n simple selector that contains the host element tag name. Each element\n in the element's ShadowDOM template is also given the scope attribute.\n Thus, these rules match only elements that have the scope attribute.\n For example, given a scope name of x-foo, a rule like this:\n\n div {\n font-weight: bold;\n }\n\n becomes:\n\n div[x-foo] {\n font-weight: bold;\n }\n\n Note that elements that are dynamically added to a scope must have the scope\n selector added to them manually.\n\n * upper/lower bound encapsulation: Styles which are defined outside a\n shadowRoot should not cross the ShadowDOM boundary and should not apply\n inside a shadowRoot.\n\n This styling behavior is not emulated. Some possible ways to do this that\n were rejected due to complexity and/or performance concerns include: (1) reset\n every possible property for every possible selector for a given scope name;\n (2) re-implement css in javascript.\n\n As an alternative, users should make sure to use selectors\n specific to the scope in which they are working.\n\n * ::distributed: This behavior is not emulated. It's often not necessary\n to style the contents of a specific insertion point and instead, descendants\n of the host element can be styled selectively. Users can also create an\n extra node around an insertion point and style that node's contents\n via descendent selectors. For example, with a shadowRoot like this:\n\n <style>\n ::content(div) {\n background: red;\n }\n </style>\n <content></content>\n\n could become:\n\n <style>\n / *@polyfill .content-container div * /\n ::content(div) {\n background: red;\n }\n </style>\n <div class=\"content-container\">\n <content></content>\n </div>\n\n Note the use of @polyfill in the comment above a ShadowDOM specific style\n declaration. This is a directive to the styling shim to use the selector\n in comments in lieu of the next selector when running under polyfill.\n*/\nShadowCss = /** @class */ (function () {\n function ShadowCss() {\n this.strictStyling = true;\n }\n /*\n * Shim some cssText with the given selector. Returns cssText that can\n * be included in the document via WebComponents.ShadowCSS.addCssToDocument(css).\n *\n * When strictStyling is true:\n * - selector is the attribute added to all elements inside the host,\n * - hostSelector is the attribute added to the host itself.\n */\n /**\n * @param {?} cssText\n * @param {?} selector\n * @param {?=} hostSelector\n * @return {?}\n */\n ShadowCss.prototype.shimCssText = /**\n * @param {?} cssText\n * @param {?} selector\n * @param {?=} hostSelector\n * @return {?}\n */\n function (cssText, selector, hostSelector) {\n if (hostSelector === void 0) { hostSelector = ''; }\n var /** @type {?} */ sourceMappingUrl = extractSourceMappingUrl(cssText);\n cssText = stripComments(cssText);\n cssText = this._insertDirectives(cssText);\n return this._scopeCssText(cssText, selector, hostSelector) + sourceMappingUrl;\n };\n /**\n * @param {?} cssText\n * @return {?}\n */\n ShadowCss.prototype._insertDirectives = /**\n * @param {?} cssText\n * @return {?}\n */\n function (cssText) {\n cssText = this._insertPolyfillDirectivesInCssText(cssText);\n return this._insertPolyfillRulesInCssText(cssText);\n };\n /**\n * @param {?} cssText\n * @return {?}\n */\n ShadowCss.prototype._insertPolyfillDirectivesInCssText = /**\n * @param {?} cssText\n * @return {?}\n */\n function (cssText) {\n // Difference with webcomponents.js: does not handle comments\n return cssText.replace(_cssContentNextSelectorRe, function () {\n var m = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n m[_i] = arguments[_i];\n }\n return m[2] + '{';\n });\n };\n /**\n * @param {?} cssText\n * @return {?}\n */\n ShadowCss.prototype._insertPolyfillRulesInCssText = /**\n * @param {?} cssText\n * @return {?}\n */\n function (cssText) {\n // Difference with webcomponents.js: does not handle comments\n return cssText.replace(_cssContentRuleRe, function () {\n var m = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n m[_i] = arguments[_i];\n }\n var /** @type {?} */ rule = m[0].replace(m[1], '').replace(m[2], '');\n return m[4] + rule;\n });\n };\n /**\n * @param {?} cssText\n * @param {?} scopeSelector\n * @param {?} hostSelector\n * @return {?}\n */\n ShadowCss.prototype._scopeCssText = /**\n * @param {?} cssText\n * @param {?} scopeSelector\n * @param {?} hostSelector\n * @return {?}\n */\n function (cssText, scopeSelector, hostSelector) {\n var /** @type {?} */ unscopedRules = this._extractUnscopedRulesFromCssText(cssText);\n // replace :host and :host-context -shadowcsshost and -shadowcsshost respectively\n cssText = this._insertPolyfillHostInCssText(cssText);\n cssText = this._convertColonHost(cssText);\n cssText = this._convertColonHostContext(cssText);\n cssText = this._convertShadowDOMSelectors(cssText);\n if (scopeSelector) {\n cssText = this._scopeSelectors(cssText, scopeSelector, hostSelector);\n }\n cssText = cssText + '\\n' + unscopedRules;\n return cssText.trim();\n };\n /**\n * @param {?} cssText\n * @return {?}\n */\n ShadowCss.prototype._extractUnscopedRulesFromCssText = /**\n * @param {?} cssText\n * @return {?}\n */\n function (cssText) {\n // Difference with webcomponents.js: does not handle comments\n var /** @type {?} */ r = '';\n var /** @type {?} */ m;\n _cssContentUnscopedRuleRe.lastIndex = 0;\n while ((m = _cssContentUnscopedRuleRe.exec(cssText)) !== null) {\n var /** @type {?} */ rule = m[0].replace(m[2], '').replace(m[1], m[4]);\n r += rule + '\\n\\n';\n }\n return r;\n };\n /**\n * @param {?} cssText\n * @return {?}\n */\n ShadowCss.prototype._convertColonHost = /**\n * @param {?} cssText\n * @return {?}\n */\n function (cssText) {\n return this._convertColonRule(cssText, _cssColonHostRe, this._colonHostPartReplacer);\n };\n /**\n * @param {?} cssText\n * @return {?}\n */\n ShadowCss.prototype._convertColonHostContext = /**\n * @param {?} cssText\n * @return {?}\n */\n function (cssText) {\n return this._convertColonRule(cssText, _cssColonHostContextRe, this._colonHostContextPartReplacer);\n };\n /**\n * @param {?} cssText\n * @param {?} regExp\n * @param {?} partReplacer\n * @return {?}\n */\n ShadowCss.prototype._convertColonRule = /**\n * @param {?} cssText\n * @param {?} regExp\n * @param {?} partReplacer\n * @return {?}\n */\n function (cssText, regExp, partReplacer) {\n // m[1] = :host(-context), m[2] = contents of (), m[3] rest of rule\n return cssText.replace(regExp, function () {\n var m = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n m[_i] = arguments[_i];\n }\n if (m[2]) {\n var /** @type {?} */ parts = m[2].split(',');\n var /** @type {?} */ r = [];\n for (var /** @type {?} */ i = 0; i < parts.length; i++) {\n var /** @type {?} */ p = parts[i].trim();\n if (!p)\n break;\n r.push(partReplacer(_polyfillHostNoCombinator, p, m[3]));\n }\n return r.join(',');\n }\n else {\n return _polyfillHostNoCombinator + m[3];\n }\n });\n };\n /**\n * @param {?} host\n * @param {?} part\n * @param {?} suffix\n * @return {?}\n */\n ShadowCss.prototype._colonHostContextPartReplacer = /**\n * @param {?} host\n * @param {?} part\n * @param {?} suffix\n * @return {?}\n */\n function (host, part, suffix) {\n if (part.indexOf(_polyfillHost) > -1) {\n return this._colonHostPartReplacer(host, part, suffix);\n }\n else {\n return host + part + suffix + ', ' + part + ' ' + host + suffix;\n }\n };\n /**\n * @param {?} host\n * @param {?} part\n * @param {?} suffix\n * @return {?}\n */\n ShadowCss.prototype._colonHostPartReplacer = /**\n * @param {?} host\n * @param {?} part\n * @param {?} suffix\n * @return {?}\n */\n function (host, part, suffix) {\n return host + part.replace(_polyfillHost, '') + suffix;\n };\n /**\n * @param {?} cssText\n * @return {?}\n */\n ShadowCss.prototype._convertShadowDOMSelectors = /**\n * @param {?} cssText\n * @return {?}\n */\n function (cssText) {\n return _shadowDOMSelectorsRe.reduce(function (result, pattern) { return result.replace(pattern, ' '); }, cssText);\n };\n /**\n * @param {?} cssText\n * @param {?} scopeSelector\n * @param {?} hostSelector\n * @return {?}\n */\n ShadowCss.prototype._scopeSelectors = /**\n * @param {?} cssText\n * @param {?} scopeSelector\n * @param {?} hostSelector\n * @return {?}\n */\n function (cssText, scopeSelector, hostSelector) {\n var _this = this;\n return processRules(cssText, function (rule) {\n var /** @type {?} */ selector = rule.selector;\n var /** @type {?} */ content = rule.content;\n if (rule.selector[0] != '@') {\n selector =\n _this._scopeSelector(rule.selector, scopeSelector, hostSelector, _this.strictStyling);\n }\n else if (rule.selector.startsWith('@media') || rule.selector.startsWith('@supports') ||\n rule.selector.startsWith('@page') || rule.selector.startsWith('@document')) {\n content = _this._scopeSelectors(rule.content, scopeSelector, hostSelector);\n }\n return new CssRule(selector, content);\n });\n };\n /**\n * @param {?} selector\n * @param {?} scopeSelector\n * @param {?} hostSelector\n * @param {?} strict\n * @return {?}\n */\n ShadowCss.prototype._scopeSelector = /**\n * @param {?} selector\n * @param {?} scopeSelector\n * @param {?} hostSelector\n * @param {?} strict\n * @return {?}\n */\n function (selector, scopeSelector, hostSelector, strict) {\n var _this = this;\n return selector.split(',')\n .map(function (part) { return part.trim().split(_shadowDeepSelectors); })\n .map(function (deepParts) {\n var shallowPart = deepParts[0], otherParts = deepParts.slice(1);\n var /** @type {?} */ applyScope = function (shallowPart) {\n if (_this._selectorNeedsScoping(shallowPart, scopeSelector)) {\n return strict ?\n _this._applyStrictSelectorScope(shallowPart, scopeSelector, hostSelector) :\n _this._applySelectorScope(shallowPart, scopeSelector, hostSelector);\n }\n else {\n return shallowPart;\n }\n };\n return [applyScope(shallowPart)].concat(otherParts).join(' ');\n })\n .join(', ');\n };\n /**\n * @param {?} selector\n * @param {?} scopeSelector\n * @return {?}\n */\n ShadowCss.prototype._selectorNeedsScoping = /**\n * @param {?} selector\n * @param {?} scopeSelector\n * @return {?}\n */\n function (selector, scopeSelector) {\n var /** @type {?} */ re = this._makeScopeMatcher(scopeSelector);\n return !re.test(selector);\n };\n /**\n * @param {?} scopeSelector\n * @return {?}\n */\n ShadowCss.prototype._makeScopeMatcher = /**\n * @param {?} scopeSelector\n * @return {?}\n */\n function (scopeSelector) {\n var /** @type {?} */ lre = /\\[/g;\n var /** @type {?} */ rre = /\\]/g;\n scopeSelector = scopeSelector.replace(lre, '\\\\[').replace(rre, '\\\\]');\n return new RegExp('^(' + scopeSelector + ')' + _selectorReSuffix, 'm');\n };\n /**\n * @param {?} selector\n * @param {?} scopeSelector\n * @param {?} hostSelector\n * @return {?}\n */\n ShadowCss.prototype._applySelectorScope = /**\n * @param {?} selector\n * @param {?} scopeSelector\n * @param {?} hostSelector\n * @return {?}\n */\n function (selector, scopeSelector, hostSelector) {\n // Difference from webcomponents.js: scopeSelector could not be an array\n return this._applySimpleSelectorScope(selector, scopeSelector, hostSelector);\n };\n /**\n * @param {?} selector\n * @param {?} scopeSelector\n * @param {?} hostSelector\n * @return {?}\n */\n ShadowCss.prototype._applySimpleSelectorScope = /**\n * @param {?} selector\n * @param {?} scopeSelector\n * @param {?} hostSelector\n * @return {?}\n */\n function (selector, scopeSelector, hostSelector) {\n // In Android browser, the lastIndex is not reset when the regex is used in String.replace()\n _polyfillHostRe.lastIndex = 0;\n if (_polyfillHostRe.test(selector)) {\n var /** @type {?} */ replaceBy_1 = this.strictStyling ? \"[\" + hostSelector + \"]\" : scopeSelector;\n return selector\n .replace(_polyfillHostNoCombinatorRe, function (hnc, selector) {\n return selector.replace(/([^:]*)(:*)(.*)/, function (_, before, colon, after) {\n return before + replaceBy_1 + colon + after;\n });\n })\n .replace(_polyfillHostRe, replaceBy_1 + ' ');\n }\n return scopeSelector + ' ' + selector;\n };\n /**\n * @param {?} selector\n * @param {?} scopeSelector\n * @param {?} hostSelector\n * @return {?}\n */\n ShadowCss.prototype._applyStrictSelectorScope = /**\n * @param {?} selector\n * @param {?} scopeSelector\n * @param {?} hostSelector\n * @return {?}\n */\n function (selector, scopeSelector, hostSelector) {\n var _this = this;\n var /** @type {?} */ isRe = /\\[is=([^\\]]*)\\]/g;\n scopeSelector = scopeSelector.replace(isRe, function (_) {\n var parts = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n parts[_i - 1] = arguments[_i];\n }\n return parts[0];\n });\n var /** @type {?} */ attrName = '[' + scopeSelector + ']';\n var /** @type {?} */ _scopeSelectorPart = function (p) {\n var /** @type {?} */ scopedP = p.trim();\n if (!scopedP) {\n return '';\n }\n if (p.indexOf(_polyfillHostNoCombinator) > -1) {\n scopedP = _this._applySimpleSelectorScope(p, scopeSelector, hostSelector);\n }\n else {\n // remove :host since it should be unnecessary\n var /** @type {?} */ t = p.replace(_polyfillHostRe, '');\n if (t.length > 0) {\n var /** @type {?} */ matches = t.match(/([^:]*)(:*)(.*)/);\n if (matches) {\n scopedP = matches[1] + attrName + matches[2] + matches[3];\n }\n }\n }\n return scopedP;\n };\n var /** @type {?} */ safeContent = new SafeSelector(selector);\n selector = safeContent.content();\n var /** @type {?} */ scopedSelector = '';\n var /** @type {?} */ startIndex = 0;\n var /** @type {?} */ res;\n var /** @type {?} */ sep = /( |>|\\+|~(?!=))\\s*/g;\n // If a selector appears before :host it should not be shimmed as it\n // matches on ancestor elements and not on elements in the host's shadow\n // `:host-context(div)` is transformed to\n // `-shadowcsshost-no-combinatordiv, div -shadowcsshost-no-combinator`\n // the `div` is not part of the component in the 2nd selectors and should not be scoped.\n // Historically `component-tag:host` was matching the component so we also want to preserve\n // this behavior to avoid breaking legacy apps (it should not match).\n // The behavior should be:\n // - `tag:host` -> `tag[h]` (this is to avoid breaking legacy apps, should not match anything)\n // - `tag :host` -> `tag [h]` (`tag` is not scoped because it's considered part of a\n // `:host-context(tag)`)\n var /** @type {?} */ hasHost = selector.indexOf(_polyfillHostNoCombinator) > -1;\n // Only scope parts after the first `-shadowcsshost-no-combinator` when it is present\n var /** @type {?} */ shouldScope = !hasHost;\n while ((res = sep.exec(selector)) !== null) {\n var /** @type {?} */ separator = res[1];\n var /** @type {?} */ part_1 = selector.slice(startIndex, res.index).trim();\n shouldScope = shouldScope || part_1.indexOf(_polyfillHostNoCombinator) > -1;\n var /** @type {?} */ scopedPart = shouldScope ? _scopeSelectorPart(part_1) : part_1;\n scopedSelector += scopedPart + \" \" + separator + \" \";\n startIndex = sep.lastIndex;\n }\n var /** @type {?} */ part = selector.substring(startIndex);\n shouldScope = shouldScope || part.indexOf(_polyfillHostNoCombinator) > -1;\n scopedSelector += shouldScope ? _scopeSelectorPart(part) : part;\n // replace the placeholders with their original values\n return safeContent.restore(scopedSelector);\n };\n /**\n * @param {?} selector\n * @return {?}\n */\n ShadowCss.prototype._insertPolyfillHostInCssText = /**\n * @param {?} selector\n * @return {?}\n */\n function (selector) {\n return selector.replace(_colonHostContextRe, _polyfillHostContext)\n .replace(_colonHostRe, _polyfillHost);\n };\n return ShadowCss;\n}());\n/**\n * This file is a port of shadowCSS from webcomponents.js to TypeScript.\n *\n * Please make sure to keep to edits in sync with the source file.\n *\n * Source:\n * https://github.com/webcomponents/webcomponentsjs/blob/4efecd7e0e/src/ShadowCSS/ShadowCSS.js\n *\n * The original file level comment is reproduced below\n */\n/*\n This is a limited shim for ShadowDOM css styling.\n https://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html#styles\n\n The intention here is to support only the styling features which can be\n relatively simply implemented. The goal is to allow users to avoid the\n most obvious pitfalls and do so without compromising performance significantly.\n For ShadowDOM styling that's not covered here, a set of best practices\n can be provided that should allow users to accomplish more complex styling.\n\n The following is a list of specific ShadowDOM styling features and a brief\n discussion of the approach used to shim.\n\n Shimmed features:\n\n * :host, :host-context: ShadowDOM allows styling of the shadowRoot's host\n element using the :host rule. To shim this feature, the :host styles are\n reformatted and prefixed with a given scope name and promoted to a\n document level stylesheet.\n For example, given a scope name of .foo, a rule like this:\n\n :host {\n background: red;\n }\n }\n\n becomes:\n\n .foo {\n background: red;\n }\n\n * encapsulation: Styles defined within ShadowDOM, apply only to\n dom inside the ShadowDOM. Polymer uses one of two techniques to implement\n this feature.\n\n By default, rules are prefixed with the host element tag name\n as a descendant selector. This ensures styling does not leak out of the 'top'\n of the element's ShadowDOM. For example,\n\n div {\n font-weight: bold;\n }\n\n becomes:\n\n x-foo div {\n font-weight: bold;\n }\n\n becomes:\n\n\n Alternatively, if WebComponents.ShadowCSS.strictStyling is set to true then\n selectors are scoped by adding an attribute selector suffix to each\n simple selector that contains the host element tag name. Each element\n in the element's ShadowDOM template is also given the scope attribute.\n Thus, these rules match only elements that have the scope attribute.\n For example, given a scope name of x-foo, a rule like this:\n\n div {\n font-weight: bold;\n }\n\n becomes:\n\n div[x-foo] {\n font-weight: bold;\n }\n\n Note that elements that are dynamically added to a scope must have the scope\n selector added to them manually.\n\n * upper/lower bound encapsulation: Styles which are defined outside a\n shadowRoot should not cross the ShadowDOM boundary and should not apply\n inside a shadowRoot.\n\n This styling behavior is not emulated. Some possible ways to do this that\n were rejected due to complexity and/or performance concerns include: (1) reset\n every possible property for every possible selector for a given scope name;\n (2) re-implement css in javascript.\n\n As an alternative, users should make sure to use selectors\n specific to the scope in which they are working.\n\n * ::distributed: This behavior is not emulated. It's often not necessary\n to style the contents of a specific insertion point and instead, descendants\n of the host element can be styled selectively. Users can also create an\n extra node around an insertion point and style that node's contents\n via descendent selectors. For example, with a shadowRoot like this:\n\n <style>\n ::content(div) {\n background: red;\n }\n </style>\n <content></content>\n\n could become:\n\n <style>\n / *@polyfill .content-container div * /\n ::content(div) {\n background: red;\n }\n </style>\n <div class=\"content-container\">\n <content></content>\n </div>\n\n Note the use of @polyfill in the comment above a ShadowDOM specific style\n declaration. This is a directive to the styling shim to use the selector\n in comments in lieu of the next selector when running under polyfill.\n*/\nexport { ShadowCss };\nfunction ShadowCss_tsickle_Closure_declarations() {\n /** @type {?} */\n ShadowCss.prototype.strictStyling;\n}\nvar SafeSelector = /** @class */ (function () {\n function SafeSelector(selector) {\n var _this = this;\n this.placeholders = [];\n this.index = 0;\n // Replaces attribute selectors with placeholders.\n // The WS in [attr=\"va lue\"] would otherwise be interpreted as a selector separator.\n selector = selector.replace(/(\\[[^\\]]*\\])/g, function (_, keep) {\n var /** @type {?} */ replaceBy = \"__ph-\" + _this.index + \"__\";\n _this.placeholders.push(keep);\n _this.index++;\n return replaceBy;\n });\n // Replaces the expression in `:nth-child(2n + 1)` with a placeholder.\n // WS and \"+\" would otherwise be interpreted as selector separators.\n this._content = selector.replace(/(:nth-[-\\w]+)(\\([^)]+\\))/g, function (_, pseudo, exp) {\n var /** @type {?} */ replaceBy = \"__ph-\" + _this.index + \"__\";\n _this.placeholders.push(exp);\n _this.index++;\n return pseudo + replaceBy;\n });\n }\n /**\n * @param {?} content\n * @return {?}\n */\n SafeSelector.prototype.restore = /**\n * @param {?} content\n * @return {?}\n */\n function (content) {\n var _this = this;\n return content.replace(/__ph-(\\d+)__/g, function (ph, index) { return _this.placeholders[+index]; });\n };\n /**\n * @return {?}\n */\n SafeSelector.prototype.content = /**\n * @return {?}\n */\n function () { return this._content; };\n return SafeSelector;\n}());\nfunction SafeSelector_tsickle_Closure_declarations() {\n /** @type {?} */\n SafeSelector.prototype.placeholders;\n /** @type {?} */\n SafeSelector.prototype.index;\n /** @type {?} */\n SafeSelector.prototype._content;\n}\nvar /** @type {?} */ _cssContentNextSelectorRe = /polyfill-next-selector[^}]*content:[\\s]*?(['\"])(.*?)\\1[;\\s]*}([^{]*?){/gim;\nvar /** @type {?} */ _cssContentRuleRe = /(polyfill-rule)[^}]*(content:[\\s]*(['\"])(.*?)\\3)[;\\s]*[^}]*}/gim;\nvar /** @type {?} */ _cssContentUnscopedRuleRe = /(polyfill-unscoped-rule)[^}]*(content:[\\s]*(['\"])(.*?)\\3)[;\\s]*[^}]*}/gim;\nvar /** @type {?} */ _polyfillHost = '-shadowcsshost';\n// note: :host-context pre-processed to -shadowcsshostcontext.\nvar /** @type {?} */ _polyfillHostContext = '-shadowcsscontext';\nvar /** @type {?} */ _parenSuffix = ')(?:\\\\((' +\n '(?:\\\\([^)(]*\\\\)|[^)(]*)+?' +\n ')\\\\))?([^,{]*)';\nvar /** @type {?} */ _cssColonHostRe = new RegExp('(' + _polyfillHost + _parenSuffix, 'gim');\nvar /** @type {?} */ _cssColonHostContextRe = new RegExp('(' + _polyfillHostContext + _parenSuffix, 'gim');\nvar /** @type {?} */ _polyfillHostNoCombinator = _polyfillHost + '-no-combinator';\nvar /** @type {?} */ _polyfillHostNoCombinatorRe = /-shadowcsshost-no-combinator([^\\s]*)/;\nvar /** @type {?} */ _shadowDOMSelectorsRe = [\n /::shadow/g,\n /::content/g,\n /\\/shadow-deep\\//g,\n /\\/shadow\\//g,\n];\n// The deep combinator is deprecated in the CSS spec\n// Support for `>>>`, `deep`, `::ng-deep` is then also deprecated and will be removed in the future.\n// see https://github.com/angular/angular/pull/17677\nvar /** @type {?} */ _shadowDeepSelectors = /(?:>>>)|(?:\\/deep\\/)|(?:::ng-deep)/g;\nvar /** @type {?} */ _selectorReSuffix = '([>\\\\s~+\\[.,{:][\\\\s\\\\S]*)?$';\nvar /** @type {?} */ _polyfillHostRe = /-shadowcsshost/gim;\nvar /** @type {?} */ _colonHostRe = /:host/gim;\nvar /** @type {?} */ _colonHostContextRe = /:host-context/gim;\nvar /** @type {?} */ _commentRe = /\\/\\*\\s*[\\s\\S]*?\\*\\//g;\n/**\n * @param {?} input\n * @return {?}\n */\nfunction stripComments(input) {\n return input.replace(_commentRe, '');\n}\n// all comments except inline source mapping\nvar /** @type {?} */ _sourceMappingUrlRe = /\\/\\*\\s*#\\s*sourceMappingURL=[\\s\\S]+?\\*\\//;\n/**\n * @param {?} input\n * @return {?}\n */\nfunction extractSourceMappingUrl(input) {\n var /** @type {?} */ matcher = input.match(_sourceMappingUrlRe);\n return matcher ? matcher[0] : '';\n}\nvar /** @type {?} */ _ruleRe = /(\\s*)([^;\\{\\}]+?)(\\s*)((?:{%BLOCK%}?\\s*;?)|(?:\\s*;))/g;\nvar /** @type {?} */ _curlyRe = /([{}])/g;\nvar /** @type {?} */ OPEN_CURLY = '{';\nvar /** @type {?} */ CLOSE_CURLY = '}';\nvar /** @type {?} */ BLOCK_PLACEHOLDER = '%BLOCK%';\nvar CssRule = /** @class */ (function () {\n function CssRule(selector, content) {\n this.selector = selector;\n this.content = content;\n }\n return CssRule;\n}());\nexport { CssRule };\nfunction CssRule_tsickle_Closure_declarations() {\n /** @type {?} */\n CssRule.prototype.selector;\n /** @type {?} */\n CssRule.prototype.content;\n}\n/**\n * @param {?} input\n * @param {?} ruleCallback\n * @return {?}\n */\nexport function processRules(input, ruleCallback) {\n var /** @type {?} */ inputWithEscapedBlocks = escapeBlocks(input);\n var /** @type {?} */ nextBlockIndex = 0;\n return inputWithEscapedBlocks.escapedString.replace(_ruleRe, function () {\n var m = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n m[_i] = arguments[_i];\n }\n var /** @type {?} */ selector = m[2];\n var /** @type {?} */ content = '';\n var /** @type {?} */ suffix = m[4];\n var /** @type {?} */ contentPrefix = '';\n if (suffix && suffix.startsWith('{' + BLOCK_PLACEHOLDER)) {\n content = inputWithEscapedBlocks.blocks[nextBlockIndex++];\n suffix = suffix.substring(BLOCK_PLACEHOLDER.length + 1);\n contentPrefix = '{';\n }\n var /** @type {?} */ rule = ruleCallback(new CssRule(selector, content));\n return \"\" + m[1] + rule.selector + m[3] + contentPrefix + rule.content + suffix;\n });\n}\nvar StringWithEscapedBlocks = /** @class */ (function () {\n function StringWithEscapedBlocks(escapedString, blocks) {\n this.escapedString = escapedString;\n this.blocks = blocks;\n }\n return StringWithEscapedBlocks;\n}());\nfunction StringWithEscapedBlocks_tsickle_Closure_declarations() {\n /** @type {?} */\n StringWithEscapedBlocks.prototype.escapedString;\n /** @type {?} */\n StringWithEscapedBlocks.prototype.blocks;\n}\n/**\n * @param {?} input\n * @return {?}\n */\nfunction escapeBlocks(input) {\n var /** @type {?} */ inputParts = input.split(_curlyRe);\n var /** @type {?} */ resultParts = [];\n var /** @type {?} */ escapedBlocks = [];\n var /** @type {?} */ bracketCount = 0;\n var /** @type {?} */ currentBlockParts = [];\n for (var /** @type {?} */ partIndex = 0; partIndex < inputParts.length; partIndex++) {\n var /** @type {?} */ part = inputParts[partIndex];\n if (part == CLOSE_CURLY) {\n bracketCount--;\n }\n if (bracketCount > 0) {\n currentBlockParts.push(part);\n }\n else {\n if (currentBlockParts.length > 0) {\n escapedBlocks.push(currentBlockParts.join(''));\n resultParts.push(BLOCK_PLACEHOLDER);\n currentBlockParts = [];\n }\n resultParts.push(part);\n }\n if (part == OPEN_CURLY) {\n bracketCount++;\n }\n }\n if (currentBlockParts.length > 0) {\n escapedBlocks.push(currentBlockParts.join(''));\n resultParts.push(BLOCK_PLACEHOLDER);\n }\n return new StringWithEscapedBlocks(resultParts.join(''), escapedBlocks);\n}\n//# sourceMappingURL=shadow_css.js.map","/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this 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 { CompileStylesheetMetadata, identifierModuleUrl, identifierName } from './compile_metadata';\nimport { ViewEncapsulation } from './core';\nimport * as o from './output/output_ast';\nimport { ShadowCss } from './shadow_css';\nvar /** @type {?} */ COMPONENT_VARIABLE = '%COMP%';\nvar /** @type {?} */ HOST_ATTR = \"_nghost-\" + COMPONENT_VARIABLE;\nvar /** @type {?} */ CONTENT_ATTR = \"_ngcontent-\" + COMPONENT_VARIABLE;\nvar StylesCompileDependency = /** @class */ (function () {\n function StylesCompileDependency(name, moduleUrl, setValue) {\n this.name = name;\n this.moduleUrl = moduleUrl;\n this.setValue = setValue;\n }\n return StylesCompileDependency;\n}());\nexport { StylesCompileDependency };\nfunction StylesCompileDependency_tsickle_Closure_declarations() {\n /** @type {?} */\n StylesCompileDependency.prototype.name;\n /** @type {?} */\n StylesCompileDependency.prototype.moduleUrl;\n /** @type {?} */\n StylesCompileDependency.prototype.setValue;\n}\nvar CompiledStylesheet = /** @class */ (function () {\n function CompiledStylesheet(outputCtx, stylesVar, dependencies, isShimmed, meta) {\n this.outputCtx = outputCtx;\n this.stylesVar = stylesVar;\n this.dependencies = dependencies;\n this.isShimmed = isShimmed;\n this.meta = meta;\n }\n return CompiledStylesheet;\n}());\nexport { CompiledStylesheet };\nfunction CompiledStylesheet_tsickle_Closure_declarations() {\n /** @type {?} */\n CompiledStylesheet.prototype.outputCtx;\n /** @type {?} */\n CompiledStylesheet.prototype.stylesVar;\n /** @type {?} */\n CompiledStylesheet.prototype.dependencies;\n /** @type {?} */\n CompiledStylesheet.prototype.isShimmed;\n /** @type {?} */\n CompiledStylesheet.prototype.meta;\n}\nvar StyleCompiler = /** @class */ (function () {\n function StyleCompiler(_urlResolver) {\n this._urlResolver = _urlResolver;\n this._shadowCss = new ShadowCss();\n }\n /**\n * @param {?} outputCtx\n * @param {?} comp\n * @return {?}\n */\n StyleCompiler.prototype.compileComponent = /**\n * @param {?} outputCtx\n * @param {?} comp\n * @return {?}\n */\n function (outputCtx, comp) {\n var /** @type {?} */ template = /** @type {?} */ ((comp.template));\n return this._compileStyles(outputCtx, comp, new CompileStylesheetMetadata({\n styles: template.styles,\n styleUrls: template.styleUrls,\n moduleUrl: identifierModuleUrl(comp.type)\n }), this.needsStyleShim(comp), true);\n };\n /**\n * @param {?} outputCtx\n * @param {?} comp\n * @param {?} stylesheet\n * @param {?=} shim\n * @return {?}\n */\n StyleCompiler.prototype.compileStyles = /**\n * @param {?} outputCtx\n * @param {?} comp\n * @param {?} stylesheet\n * @param {?=} shim\n * @return {?}\n */\n function (outputCtx, comp, stylesheet, shim) {\n if (shim === void 0) { shim = this.needsStyleShim(comp); }\n return this._compileStyles(outputCtx, comp, stylesheet, shim, false);\n };\n /**\n * @param {?} comp\n * @return {?}\n */\n StyleCompiler.prototype.needsStyleShim = /**\n * @param {?} comp\n * @return {?}\n */\n function (comp) {\n return /** @type {?} */ ((comp.template)).encapsulation === ViewEncapsulation.Emulated;\n };\n /**\n * @param {?} outputCtx\n * @param {?} comp\n * @param {?} stylesheet\n * @param {?} shim\n * @param {?} isComponentStylesheet\n * @return {?}\n */\n StyleCompiler.prototype._compileStyles = /**\n * @param {?} outputCtx\n * @param {?} comp\n * @param {?} stylesheet\n * @param {?} shim\n * @param {?} isComponentStylesheet\n * @return {?}\n */\n function (outputCtx, comp, stylesheet, shim, isComponentStylesheet) {\n var _this = this;\n var /** @type {?} */ styleExpressions = stylesheet.styles.map(function (plainStyle) { return o.literal(_this._shimIfNeeded(plainStyle, shim)); });\n var /** @type {?} */ dependencies = [];\n stylesheet.styleUrls.forEach(function (styleUrl) {\n var /** @type {?} */ exprIndex = styleExpressions.length;\n // Note: This placeholder will be filled later.\n styleExpressions.push(/** @type {?} */ ((null)));\n dependencies.push(new StylesCompileDependency(getStylesVarName(null), styleUrl, function (value) { return styleExpressions[exprIndex] = outputCtx.importExpr(value); }));\n });\n // styles variable contains plain strings and arrays of other styles arrays (recursive),\n // so we set its type to dynamic.\n var /** @type {?} */ stylesVar = getStylesVarName(isComponentStylesheet ? comp : null);\n var /** @type {?} */ stmt = o.variable(stylesVar)\n .set(o.literalArr(styleExpressions, new o.ArrayType(o.DYNAMIC_TYPE, [o.TypeModifier.Const])))\n .toDeclStmt(null, isComponentStylesheet ? [o.StmtModifier.Final] : [\n o.StmtModifier.Final, o.StmtModifier.Exported\n ]);\n outputCtx.statements.push(stmt);\n return new CompiledStylesheet(outputCtx, stylesVar, dependencies, shim, stylesheet);\n };\n /**\n * @param {?} style\n * @param {?} shim\n * @return {?}\n */\n StyleCompiler.prototype._shimIfNeeded = /**\n * @param {?} style\n * @param {?} shim\n * @return {?}\n */\n function (style, shim) {\n return shim ? this._shadowCss.shimCssText(style, CONTENT_ATTR, HOST_ATTR) : style;\n };\n return StyleCompiler;\n}());\nexport { StyleCompiler };\nfunction StyleCompiler_tsickle_Closure_declarations() {\n /** @type {?} */\n StyleCompiler.prototype._shadowCss;\n /** @type {?} */\n StyleCompiler.prototype._urlResolver;\n}\n/**\n * @param {?} component\n * @return {?}\n */\nfunction getStylesVarName(component) {\n var /** @type {?} */ result = \"styles\";\n if (component) {\n result += \"_\" + identifierName(component.type);\n }\n return result;\n}\n//# sourceMappingURL=style_compiler.js.map","/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this 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 html from './ast';\nimport { ParseTreeResult } from './parser';\nimport { NGSP_UNICODE } from './tags';\nexport var /** @type {?} */ PRESERVE_WS_ATTR_NAME = 'ngPreserveWhitespaces';\nvar /** @type {?} */ SKIP_WS_TRIM_TAGS = new Set(['pre', 'template', 'textarea', 'script', 'style']);\n// Equivalent to \\s with \\u00a0 (non-breaking space) excluded.\n// Based on https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp\nvar /** @type {?} */ WS_CHARS = ' \\f\\n\\r\\t\\v\\u1680\\u180e\\u2000-\\u200a\\u2028\\u2029\\u202f\\u205f\\u3000\\ufeff';\nvar /** @type {?} */ NO_WS_REGEXP = new RegExp(\"[^\" + WS_CHARS + \"]\");\nvar /** @type {?} */ WS_REPLACE_REGEXP = new RegExp(\"[\" + WS_CHARS + \"]{2,}\", 'g');\n/**\n * @param {?} attrs\n * @return {?}\n */\nfunction hasPreserveWhitespacesAttr(attrs) {\n return attrs.some(function (attr) { return attr.name === PRESERVE_WS_ATTR_NAME; });\n}\n/**\n * Angular Dart introduced &ngsp; as a placeholder for non-removable space, see:\n * https://github.com/dart-lang/angular/blob/0bb611387d29d65b5af7f9d2515ab571fd3fbee4/_tests/test/compiler/preserve_whitespace_test.dart#L25-L32\n * In Angular Dart &ngsp; is converted to the 0xE500 PUA (Private Use Areas) unicode character\n * and later on replaced by a space. We are re-implementing the same idea here.\n * @param {?} value\n * @return {?}\n */\nexport function replaceNgsp(value) {\n // lexer is replacing the &ngsp; pseudo-entity with NGSP_UNICODE\n return value.replace(new RegExp(NGSP_UNICODE, 'g'), ' ');\n}\n/**\n * This visitor can walk HTML parse tree and remove / trim text nodes using the following rules:\n * - consider spaces, tabs and new lines as whitespace characters;\n * - drop text nodes consisting of whitespace characters only;\n * - for all other text nodes replace consecutive whitespace characters with one space;\n * - convert &ngsp; pseudo-entity to a single space;\n *\n * Removal and trimming of whitespaces have positive performance impact (less code to generate\n * while compiling templates, faster view creation). At the same time it can be \"destructive\"\n * in some cases (whitespaces can influence layout). Because of the potential of breaking layout\n * this visitor is not activated by default in Angular 5 and people need to explicitly opt-in for\n * whitespace removal. The default option for whitespace removal will be revisited in Angular 6\n * and might be changed to \"on\" by default.\n */\nvar /**\n * This visitor can walk HTML parse tree and remove / trim text nodes using the following rules:\n * - consider spaces, tabs and new lines as whitespace characters;\n * - drop text nodes consisting of whitespace characters only;\n * - for all other text nodes replace consecutive whitespace characters with one space;\n * - convert &ngsp; pseudo-entity to a single space;\n *\n * Removal and trimming of whitespaces have positive performance impact (less code to generate\n * while compiling templates, faster view creation). At the same time it can be \"destructive\"\n * in some cases (whitespaces can influence layout). Because of the potential of breaking layout\n * this visitor is not activated by default in Angular 5 and people need to explicitly opt-in for\n * whitespace removal. The default option for whitespace removal will be revisited in Angular 6\n * and might be changed to \"on\" by default.\n */\nWhitespaceVisitor = /** @class */ (function () {\n function WhitespaceVisitor() {\n }\n /**\n * @param {?} element\n * @param {?} context\n * @return {?}\n */\n WhitespaceVisitor.prototype.visitElement = /**\n * @param {?} element\n * @param {?} context\n * @return {?}\n */\n function (element, context) {\n if (SKIP_WS_TRIM_TAGS.has(element.name) || hasPreserveWhitespacesAttr(element.attrs)) {\n // don't descent into elements where we need to preserve whitespaces\n // but still visit all attributes to eliminate one used as a market to preserve WS\n return new html.Element(element.name, html.visitAll(this, element.attrs), element.children, element.sourceSpan, element.startSourceSpan, element.endSourceSpan);\n }\n return new html.Element(element.name, element.attrs, html.visitAll(this, element.children), element.sourceSpan, element.startSourceSpan, element.endSourceSpan);\n };\n /**\n * @param {?} attribute\n * @param {?} context\n * @return {?}\n */\n WhitespaceVisitor.prototype.visitAttribute = /**\n * @param {?} attribute\n * @param {?} context\n * @return {?}\n */\n function (attribute, context) {\n return attribute.name !== PRESERVE_WS_ATTR_NAME ? attribute : null;\n };\n /**\n * @param {?} text\n * @param {?} context\n * @return {?}\n */\n WhitespaceVisitor.prototype.visitText = /**\n * @param {?} text\n * @param {?} context\n * @return {?}\n */\n function (text, context) {\n var /** @type {?} */ isNotBlank = text.value.match(NO_WS_REGEXP);\n if (isNotBlank) {\n return new html.Text(replaceNgsp(text.value).replace(WS_REPLACE_REGEXP, ' '), text.sourceSpan);\n }\n return null;\n };\n /**\n * @param {?} comment\n * @param {?} context\n * @return {?}\n */\n WhitespaceVisitor.prototype.visitComment = /**\n * @param {?} comment\n * @param {?} context\n * @return {?}\n */\n function (comment, context) { return comment; };\n /**\n * @param {?} expansion\n * @param {?} context\n * @return {?}\n */\n WhitespaceVisitor.prototype.visitExpansion = /**\n * @param {?} expansion\n * @param {?} context\n * @return {?}\n */\n function (expansion, context) { return expansion; };\n /**\n * @param {?} expansionCase\n * @param {?} context\n * @return {?}\n */\n WhitespaceVisitor.prototype.visitExpansionCase = /**\n * @param {?} expansionCase\n * @param {?} context\n * @return {?}\n */\n function (expansionCase, context) { return expansionCase; };\n return WhitespaceVisitor;\n}());\n/**\n * @param {?} htmlAstWithErrors\n * @return {?}\n */\nexport function removeWhitespaces(htmlAstWithErrors) {\n return new ParseTreeResult(html.visitAll(new WhitespaceVisitor(), htmlAstWithErrors.rootNodes), htmlAstWithErrors.errors);\n}\n//# sourceMappingURL=html_whitespaces.js.map","/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this 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 tslib_1 from \"tslib\";\nimport { ParseError } from '../parse_util';\nimport * as html from './ast';\n// http://cldr.unicode.org/index/cldr-spec/plural-rules\nvar /** @type {?} */ PLURAL_CASES = ['zero', 'one', 'two', 'few', 'many', 'other'];\n/**\n * Expands special forms into elements.\n *\n * For example,\n *\n * ```\n * { messages.length, plural,\n * =0 {zero}\n * =1 {one}\n * other {more than one}\n * }\n * ```\n *\n * will be expanded into\n *\n * ```\n * <ng-container [ngPlural]=\"messages.length\">\n * <ng-template ngPluralCase=\"=0\">zero</ng-template>\n * <ng-template ngPluralCase=\"=1\">one</ng-template>\n * <ng-template ngPluralCase=\"other\">more than one</ng-template>\n * </ng-container>\n * ```\n * @param {?} nodes\n * @return {?}\n */\nexport function expandNodes(nodes) {\n var /** @type {?} */ expander = new _Expander();\n return new ExpansionResult(html.visitAll(expander, nodes), expander.isExpanded, expander.errors);\n}\nvar ExpansionResult = /** @class */ (function () {\n function ExpansionResult(nodes, expanded, errors) {\n this.nodes = nodes;\n this.expanded = expanded;\n this.errors = errors;\n }\n return ExpansionResult;\n}());\nexport { ExpansionResult };\nfunction ExpansionResult_tsickle_Closure_declarations() {\n /** @type {?} */\n ExpansionResult.prototype.nodes;\n /** @type {?} */\n ExpansionResult.prototype.expanded;\n /** @type {?} */\n ExpansionResult.prototype.errors;\n}\nvar ExpansionError = /** @class */ (function (_super) {\n tslib_1.__extends(ExpansionError, _super);\n function ExpansionError(span, errorMsg) {\n return _super.call(this, span, errorMsg) || this;\n }\n return ExpansionError;\n}(ParseError));\nexport { ExpansionError };\n/**\n * Expand expansion forms (plural, select) to directives\n *\n * \\@internal\n */\nvar /**\n * Expand expansion forms (plural, select) to directives\n *\n * \\@internal\n */\n_Expander = /** @class */ (function () {\n function _Expander() {\n this.isExpanded = false;\n this.errors = [];\n }\n /**\n * @param {?} element\n * @param {?} context\n * @return {?}\n */\n _Expander.prototype.visitElement = /**\n * @param {?} element\n * @param {?} context\n * @return {?}\n */\n function (element, context) {\n return new html.Element(element.name, element.attrs, html.visitAll(this, element.children), element.sourceSpan, element.startSourceSpan, element.endSourceSpan);\n };\n /**\n * @param {?} attribute\n * @param {?} context\n * @return {?}\n */\n _Expander.prototype.visitAttribute = /**\n * @param {?} attribute\n * @param {?} context\n * @return {?}\n */\n function (attribute, context) { return attribute; };\n /**\n * @param {?} text\n * @param {?} context\n * @return {?}\n */\n _Expander.prototype.visitText = /**\n * @param {?} text\n * @param {?} context\n * @return {?}\n */\n function (text, context) { return text; };\n /**\n * @param {?} comment\n * @param {?} context\n * @return {?}\n */\n _Expander.prototype.visitComment = /**\n * @param {?} comment\n * @param {?} context\n * @return {?}\n */\n function (comment, context) { return comment; };\n /**\n * @param {?} icu\n * @param {?} context\n * @return {?}\n */\n _Expander.prototype.visitExpansion = /**\n * @param {?} icu\n * @param {?} context\n * @return {?}\n */\n function (icu, context) {\n this.isExpanded = true;\n return icu.type == 'plural' ? _expandPluralForm(icu, this.errors) :\n _expandDefaultForm(icu, this.errors);\n };\n /**\n * @param {?} icuCase\n * @param {?} context\n * @return {?}\n */\n _Expander.prototype.visitExpansionCase = /**\n * @param {?} icuCase\n * @param {?} context\n * @return {?}\n */\n function (icuCase, context) {\n throw new Error('Should not be reached');\n };\n return _Expander;\n}());\nfunction _Expander_tsickle_Closure_declarations() {\n /** @type {?} */\n _Expander.prototype.isExpanded;\n /** @type {?} */\n _Expander.prototype.errors;\n}\n/**\n * @param {?} ast\n * @param {?} errors\n * @return {?}\n */\nfunction _expandPluralForm(ast, errors) {\n var /** @type {?} */ children = ast.cases.map(function (c) {\n if (PLURAL_CASES.indexOf(c.value) == -1 && !c.value.match(/^=\\d+$/)) {\n errors.push(new ExpansionError(c.valueSourceSpan, \"Plural cases should be \\\"=<number>\\\" or one of \" + PLURAL_CASES.join(\", \")));\n }\n var /** @type {?} */ expansionResult = expandNodes(c.expression);\n errors.push.apply(errors, expansionResult.errors);\n return new html.Element(\"ng-template\", [new html.Attribute('ngPluralCase', \"\" + c.value, c.valueSourceSpan)], expansionResult.nodes, c.sourceSpan, c.sourceSpan, c.sourceSpan);\n });\n var /** @type {?} */ switchAttr = new html.Attribute('[ngPlural]', ast.switchValue, ast.switchValueSourceSpan);\n return new html.Element('ng-container', [switchAttr], children, ast.sourceSpan, ast.sourceSpan, ast.sourceSpan);\n}\n/**\n * @param {?} ast\n * @param {?} errors\n * @return {?}\n */\nfunction _expandDefaultForm(ast, errors) {\n var /** @type {?} */ children = ast.cases.map(function (c) {\n var /** @type {?} */ expansionResult = expandNodes(c.expression);\n errors.push.apply(errors, expansionResult.errors);\n if (c.value === 'other') {\n // other is the default case when no values match\n return new html.Element(\"ng-template\", [new html.Attribute('ngSwitchDefault', '', c.valueSourceSpan)], expansionResult.nodes, c.sourceSpan, c.sourceSpan, c.sourceSpan);\n }\n return new html.Element(\"ng-template\", [new html.Attribute('ngSwitchCase', \"\" + c.value, c.valueSourceSpan)], expansionResult.nodes, c.sourceSpan, c.sourceSpan, c.sourceSpan);\n });\n var /** @type {?} */ switchAttr = new html.Attribute('[ngSwitch]', ast.switchValue, ast.switchValueSourceSpan);\n return new html.Element('ng-container', [switchAttr], children, ast.sourceSpan, ast.sourceSpan, ast.sourceSpan);\n}\n//# sourceMappingURL=icu_ast_expander.js.map","/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this 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 tslib_1 from \"tslib\";\nimport { SecurityContext } from '../core';\nimport { EmptyExpr, RecursiveAstVisitor } from '../expression_parser/ast';\nimport { mergeNsAndName } from '../ml_parser/tags';\nimport { ParseError, ParseErrorLevel, ParseSourceSpan } from '../parse_util';\nimport { CssSelector } from '../selector';\nimport { splitAtColon, splitAtPeriod } from '../util';\nimport { BoundElementPropertyAst, BoundEventAst, PropertyBindingType, VariableAst } from './template_ast';\nvar /** @type {?} */ PROPERTY_PARTS_SEPARATOR = '.';\nvar /** @type {?} */ ATTRIBUTE_PREFIX = 'attr';\nvar /** @type {?} */ CLASS_PREFIX = 'class';\nvar /** @type {?} */ STYLE_PREFIX = 'style';\nvar /** @type {?} */ ANIMATE_PROP_PREFIX = 'animate-';\n/** @enum {number} */\nvar BoundPropertyType = {\n DEFAULT: 0,\n LITERAL_ATTR: 1,\n ANIMATION: 2,\n};\nexport { BoundPropertyType };\nBoundPropertyType[BoundPropertyType.DEFAULT] = \"DEFAULT\";\nBoundPropertyType[BoundPropertyType.LITERAL_ATTR] = \"LITERAL_ATTR\";\nBoundPropertyType[BoundPropertyType.ANIMATION] = \"ANIMATION\";\n/**\n * Represents a parsed property.\n */\nvar /**\n * Represents a parsed property.\n */\nBoundProperty = /** @class */ (function () {\n function BoundProperty(name, expression, type, sourceSpan) {\n this.name = name;\n this.expression = expression;\n this.type = type;\n this.sourceSpan = sourceSpan;\n this.isLiteral = this.type === BoundPropertyType.LITERAL_ATTR;\n this.isAnimation = this.type === BoundPropertyType.ANIMATION;\n }\n return BoundProperty;\n}());\n/**\n * Represents a parsed property.\n */\nexport { BoundProperty };\nfunction BoundProperty_tsickle_Closure_declarations() {\n /** @type {?} */\n BoundProperty.prototype.isLiteral;\n /** @type {?} */\n BoundProperty.prototype.isAnimation;\n /** @type {?} */\n BoundProperty.prototype.name;\n /** @type {?} */\n BoundProperty.prototype.expression;\n /** @type {?} */\n BoundProperty.prototype.type;\n /** @type {?} */\n BoundProperty.prototype.sourceSpan;\n}\n/**\n * Parses bindings in templates and in the directive host area.\n */\nvar /**\n * Parses bindings in templates and in the directive host area.\n */\nBindingParser = /** @class */ (function () {\n function BindingParser(_exprParser, _interpolationConfig, _schemaRegistry, pipes, _targetErrors) {\n var _this = this;\n this._exprParser = _exprParser;\n this._interpolationConfig = _interpolationConfig;\n this._schemaRegistry = _schemaRegistry;\n this._targetErrors = _targetErrors;\n this.pipesByName = new Map();\n this._usedPipes = new Map();\n pipes.forEach(function (pipe) { return _this.pipesByName.set(pipe.name, pipe); });\n }\n /**\n * @return {?}\n */\n BindingParser.prototype.getUsedPipes = /**\n * @return {?}\n */\n function () { return Array.from(this._usedPipes.values()); };\n /**\n * @param {?} dirMeta\n * @param {?} elementSelector\n * @param {?} sourceSpan\n * @return {?}\n */\n BindingParser.prototype.createDirectiveHostPropertyAsts = /**\n * @param {?} dirMeta\n * @param {?} elementSelector\n * @param {?} sourceSpan\n * @return {?}\n */\n function (dirMeta, elementSelector, sourceSpan) {\n var _this = this;\n if (dirMeta.hostProperties) {\n var /** @type {?} */ boundProps_1 = [];\n Object.keys(dirMeta.hostProperties).forEach(function (propName) {\n var /** @type {?} */ expression = dirMeta.hostProperties[propName];\n if (typeof expression === 'string') {\n _this.parsePropertyBinding(propName, expression, true, sourceSpan, [], boundProps_1);\n }\n else {\n _this._reportError(\"Value of the host property binding \\\"\" + propName + \"\\\" needs to be a string representing an expression but got \\\"\" + expression + \"\\\" (\" + typeof expression + \")\", sourceSpan);\n }\n });\n return boundProps_1.map(function (prop) { return _this.createElementPropertyAst(elementSelector, prop); });\n }\n return null;\n };\n /**\n * @param {?} dirMeta\n * @param {?} sourceSpan\n * @return {?}\n */\n BindingParser.prototype.createDirectiveHostEventAsts = /**\n * @param {?} dirMeta\n * @param {?} sourceSpan\n * @return {?}\n */\n function (dirMeta, sourceSpan) {\n var _this = this;\n if (dirMeta.hostListeners) {\n var /** @type {?} */ targetEventAsts_1 = [];\n Object.keys(dirMeta.hostListeners).forEach(function (propName) {\n var /** @type {?} */ expression = dirMeta.hostListeners[propName];\n if (typeof expression === 'string') {\n _this.parseEvent(propName, expression, sourceSpan, [], targetEventAsts_1);\n }\n else {\n _this._reportError(\"Value of the host listener \\\"\" + propName + \"\\\" needs to be a string representing an expression but got \\\"\" + expression + \"\\\" (\" + typeof expression + \")\", sourceSpan);\n }\n });\n return targetEventAsts_1;\n }\n return null;\n };\n /**\n * @param {?} value\n * @param {?} sourceSpan\n * @return {?}\n */\n BindingParser.prototype.parseInterpolation = /**\n * @param {?} value\n * @param {?} sourceSpan\n * @return {?}\n */\n function (value, sourceSpan) {\n var /** @type {?} */ sourceInfo = sourceSpan.start.toString();\n try {\n var /** @type {?} */ ast = /** @type {?} */ ((this._exprParser.parseInterpolation(value, sourceInfo, this._interpolationConfig)));\n if (ast)\n this._reportExpressionParserErrors(ast.errors, sourceSpan);\n this._checkPipes(ast, sourceSpan);\n return ast;\n }\n catch (/** @type {?} */ e) {\n this._reportError(\"\" + e, sourceSpan);\n return this._exprParser.wrapLiteralPrimitive('ERROR', sourceInfo);\n }\n };\n /**\n * @param {?} prefixToken\n * @param {?} value\n * @param {?} sourceSpan\n * @param {?} targetMatchableAttrs\n * @param {?} targetProps\n * @param {?} targetVars\n * @return {?}\n */\n BindingParser.prototype.parseInlineTemplateBinding = /**\n * @param {?} prefixToken\n * @param {?} value\n * @param {?} sourceSpan\n * @param {?} targetMatchableAttrs\n * @param {?} targetProps\n * @param {?} targetVars\n * @return {?}\n */\n function (prefixToken, value, sourceSpan, targetMatchableAttrs, targetProps, targetVars) {\n var /** @type {?} */ bindings = this._parseTemplateBindings(prefixToken, value, sourceSpan);\n for (var /** @type {?} */ i = 0; i < bindings.length; i++) {\n var /** @type {?} */ binding = bindings[i];\n if (binding.keyIsVar) {\n targetVars.push(new VariableAst(binding.key, binding.name, sourceSpan));\n }\n else if (binding.expression) {\n this._parsePropertyAst(binding.key, binding.expression, sourceSpan, targetMatchableAttrs, targetProps);\n }\n else {\n targetMatchableAttrs.push([binding.key, '']);\n this.parseLiteralAttr(binding.key, null, sourceSpan, targetMatchableAttrs, targetProps);\n }\n }\n };\n /**\n * @param {?} prefixToken\n * @param {?} value\n * @param {?} sourceSpan\n * @return {?}\n */\n BindingParser.prototype._parseTemplateBindings = /**\n * @param {?} prefixToken\n * @param {?} value\n * @param {?} sourceSpan\n * @return {?}\n */\n function (prefixToken, value, sourceSpan) {\n var _this = this;\n var /** @type {?} */ sourceInfo = sourceSpan.start.toString();\n try {\n var /** @type {?} */ bindingsResult = this._exprParser.parseTemplateBindings(prefixToken, value, sourceInfo);\n this._reportExpressionParserErrors(bindingsResult.errors, sourceSpan);\n bindingsResult.templateBindings.forEach(function (binding) {\n if (binding.expression) {\n _this._checkPipes(binding.expression, sourceSpan);\n }\n });\n bindingsResult.warnings.forEach(function (warning) { _this._reportError(warning, sourceSpan, ParseErrorLevel.WARNING); });\n return bindingsResult.templateBindings;\n }\n catch (/** @type {?} */ e) {\n this._reportError(\"\" + e, sourceSpan);\n return [];\n }\n };\n /**\n * @param {?} name\n * @param {?} value\n * @param {?} sourceSpan\n * @param {?} targetMatchableAttrs\n * @param {?} targetProps\n * @return {?}\n */\n BindingParser.prototype.parseLiteralAttr = /**\n * @param {?} name\n * @param {?} value\n * @param {?} sourceSpan\n * @param {?} targetMatchableAttrs\n * @param {?} targetProps\n * @return {?}\n */\n function (name, value, sourceSpan, targetMatchableAttrs, targetProps) {\n if (_isAnimationLabel(name)) {\n name = name.substring(1);\n if (value) {\n this._reportError(\"Assigning animation triggers via @prop=\\\"exp\\\" attributes with an expression is invalid.\" +\n \" Use property bindings (e.g. [@prop]=\\\"exp\\\") or use an attribute without a value (e.g. @prop) instead.\", sourceSpan, ParseErrorLevel.ERROR);\n }\n this._parseAnimation(name, value, sourceSpan, targetMatchableAttrs, targetProps);\n }\n else {\n targetProps.push(new BoundProperty(name, this._exprParser.wrapLiteralPrimitive(value, ''), BoundPropertyType.LITERAL_ATTR, sourceSpan));\n }\n };\n /**\n * @param {?} name\n * @param {?} expression\n * @param {?} isHost\n * @param {?} sourceSpan\n * @param {?} targetMatchableAttrs\n * @param {?} targetProps\n * @return {?}\n */\n BindingParser.prototype.parsePropertyBinding = /**\n * @param {?} name\n * @param {?} expression\n * @param {?} isHost\n * @param {?} sourceSpan\n * @param {?} targetMatchableAttrs\n * @param {?} targetProps\n * @return {?}\n */\n function (name, expression, isHost, sourceSpan, targetMatchableAttrs, targetProps) {\n var /** @type {?} */ isAnimationProp = false;\n if (name.startsWith(ANIMATE_PROP_PREFIX)) {\n isAnimationProp = true;\n name = name.substring(ANIMATE_PROP_PREFIX.length);\n }\n else if (_isAnimationLabel(name)) {\n isAnimationProp = true;\n name = name.substring(1);\n }\n if (isAnimationProp) {\n this._parseAnimation(name, expression, sourceSpan, targetMatchableAttrs, targetProps);\n }\n else {\n this._parsePropertyAst(name, this._parseBinding(expression, isHost, sourceSpan), sourceSpan, targetMatchableAttrs, targetProps);\n }\n };\n /**\n * @param {?} name\n * @param {?} value\n * @param {?} sourceSpan\n * @param {?} targetMatchableAttrs\n * @param {?} targetProps\n * @return {?}\n */\n BindingParser.prototype.parsePropertyInterpolation = /**\n * @param {?} name\n * @param {?} value\n * @param {?} sourceSpan\n * @param {?} targetMatchableAttrs\n * @param {?} targetProps\n * @return {?}\n */\n function (name, value, sourceSpan, targetMatchableAttrs, targetProps) {\n var /** @type {?} */ expr = this.parseInterpolation(value, sourceSpan);\n if (expr) {\n this._parsePropertyAst(name, expr, sourceSpan, targetMatchableAttrs, targetProps);\n return true;\n }\n return false;\n };\n /**\n * @param {?} name\n * @param {?} ast\n * @param {?} sourceSpan\n * @param {?} targetMatchableAttrs\n * @param {?} targetProps\n * @return {?}\n */\n BindingParser.prototype._parsePropertyAst = /**\n * @param {?} name\n * @param {?} ast\n * @param {?} sourceSpan\n * @param {?} targetMatchableAttrs\n * @param {?} targetProps\n * @return {?}\n */\n function (name, ast, sourceSpan, targetMatchableAttrs, targetProps) {\n targetMatchableAttrs.push([name, /** @type {?} */ ((ast.source))]);\n targetProps.push(new BoundProperty(name, ast, BoundPropertyType.DEFAULT, sourceSpan));\n };\n /**\n * @param {?} name\n * @param {?} expression\n * @param {?} sourceSpan\n * @param {?} targetMatchableAttrs\n * @param {?} targetProps\n * @return {?}\n */\n BindingParser.prototype._parseAnimation = /**\n * @param {?} name\n * @param {?} expression\n * @param {?} sourceSpan\n * @param {?} targetMatchableAttrs\n * @param {?} targetProps\n * @return {?}\n */\n function (name, expression, sourceSpan, targetMatchableAttrs, targetProps) {\n // This will occur when a @trigger is not paired with an expression.\n // For animations it is valid to not have an expression since */void\n // states will be applied by angular when the element is attached/detached\n var /** @type {?} */ ast = this._parseBinding(expression || 'undefined', false, sourceSpan);\n targetMatchableAttrs.push([name, /** @type {?} */ ((ast.source))]);\n targetProps.push(new BoundProperty(name, ast, BoundPropertyType.ANIMATION, sourceSpan));\n };\n /**\n * @param {?} value\n * @param {?} isHostBinding\n * @param {?} sourceSpan\n * @return {?}\n */\n BindingParser.prototype._parseBinding = /**\n * @param {?} value\n * @param {?} isHostBinding\n * @param {?} sourceSpan\n * @return {?}\n */\n function (value, isHostBinding, sourceSpan) {\n var /** @type {?} */ sourceInfo = sourceSpan.start.toString();\n try {\n var /** @type {?} */ ast = isHostBinding ?\n this._exprParser.parseSimpleBinding(value, sourceInfo, this._interpolationConfig) :\n this._exprParser.parseBinding(value, sourceInfo, this._interpolationConfig);\n if (ast)\n this._reportExpressionParserErrors(ast.errors, sourceSpan);\n this._checkPipes(ast, sourceSpan);\n return ast;\n }\n catch (/** @type {?} */ e) {\n this._reportError(\"\" + e, sourceSpan);\n return this._exprParser.wrapLiteralPrimitive('ERROR', sourceInfo);\n }\n };\n /**\n * @param {?} elementSelector\n * @param {?} boundProp\n * @return {?}\n */\n BindingParser.prototype.createElementPropertyAst = /**\n * @param {?} elementSelector\n * @param {?} boundProp\n * @return {?}\n */\n function (elementSelector, boundProp) {\n if (boundProp.isAnimation) {\n return new BoundElementPropertyAst(boundProp.name, PropertyBindingType.Animation, SecurityContext.NONE, boundProp.expression, null, boundProp.sourceSpan);\n }\n var /** @type {?} */ unit = null;\n var /** @type {?} */ bindingType = /** @type {?} */ ((undefined));\n var /** @type {?} */ boundPropertyName = null;\n var /** @type {?} */ parts = boundProp.name.split(PROPERTY_PARTS_SEPARATOR);\n var /** @type {?} */ securityContexts = /** @type {?} */ ((undefined));\n // Check check for special cases (prefix style, attr, class)\n if (parts.length > 1) {\n if (parts[0] == ATTRIBUTE_PREFIX) {\n boundPropertyName = parts[1];\n this._validatePropertyOrAttributeName(boundPropertyName, boundProp.sourceSpan, true);\n securityContexts = calcPossibleSecurityContexts(this._schemaRegistry, elementSelector, boundPropertyName, true);\n var /** @type {?} */ nsSeparatorIdx = boundPropertyName.indexOf(':');\n if (nsSeparatorIdx > -1) {\n var /** @type {?} */ ns = boundPropertyName.substring(0, nsSeparatorIdx);\n var /** @type {?} */ name_1 = boundPropertyName.substring(nsSeparatorIdx + 1);\n boundPropertyName = mergeNsAndName(ns, name_1);\n }\n bindingType = PropertyBindingType.Attribute;\n }\n else if (parts[0] == CLASS_PREFIX) {\n boundPropertyName = parts[1];\n bindingType = PropertyBindingType.Class;\n securityContexts = [SecurityContext.NONE];\n }\n else if (parts[0] == STYLE_PREFIX) {\n unit = parts.length > 2 ? parts[2] : null;\n boundPropertyName = parts[1];\n bindingType = PropertyBindingType.Style;\n securityContexts = [SecurityContext.STYLE];\n }\n }\n // If not a special case, use the full property name\n if (boundPropertyName === null) {\n boundPropertyName = this._schemaRegistry.getMappedPropName(boundProp.name);\n securityContexts = calcPossibleSecurityContexts(this._schemaRegistry, elementSelector, boundPropertyName, false);\n bindingType = PropertyBindingType.Property;\n this._validatePropertyOrAttributeName(boundPropertyName, boundProp.sourceSpan, false);\n }\n return new BoundElementPropertyAst(boundPropertyName, bindingType, securityContexts[0], boundProp.expression, unit, boundProp.sourceSpan);\n };\n /**\n * @param {?} name\n * @param {?} expression\n * @param {?} sourceSpan\n * @param {?} targetMatchableAttrs\n * @param {?} targetEvents\n * @return {?}\n */\n BindingParser.prototype.parseEvent = /**\n * @param {?} name\n * @param {?} expression\n * @param {?} sourceSpan\n * @param {?} targetMatchableAttrs\n * @param {?} targetEvents\n * @return {?}\n */\n function (name, expression, sourceSpan, targetMatchableAttrs, targetEvents) {\n if (_isAnimationLabel(name)) {\n name = name.substr(1);\n this._parseAnimationEvent(name, expression, sourceSpan, targetEvents);\n }\n else {\n this._parseEvent(name, expression, sourceSpan, targetMatchableAttrs, targetEvents);\n }\n };\n /**\n * @param {?} name\n * @param {?} expression\n * @param {?} sourceSpan\n * @param {?} targetEvents\n * @return {?}\n */\n BindingParser.prototype._parseAnimationEvent = /**\n * @param {?} name\n * @param {?} expression\n * @param {?} sourceSpan\n * @param {?} targetEvents\n * @return {?}\n */\n function (name, expression, sourceSpan, targetEvents) {\n var /** @type {?} */ matches = splitAtPeriod(name, [name, '']);\n var /** @type {?} */ eventName = matches[0];\n var /** @type {?} */ phase = matches[1].toLowerCase();\n if (phase) {\n switch (phase) {\n case 'start':\n case 'done':\n var /** @type {?} */ ast = this._parseAction(expression, sourceSpan);\n targetEvents.push(new BoundEventAst(eventName, null, phase, ast, sourceSpan));\n break;\n default:\n this._reportError(\"The provided animation output phase value \\\"\" + phase + \"\\\" for \\\"@\" + eventName + \"\\\" is not supported (use start or done)\", sourceSpan);\n break;\n }\n }\n else {\n this._reportError(\"The animation trigger output event (@\" + eventName + \") is missing its phase value name (start or done are currently supported)\", sourceSpan);\n }\n };\n /**\n * @param {?} name\n * @param {?} expression\n * @param {?} sourceSpan\n * @param {?} targetMatchableAttrs\n * @param {?} targetEvents\n * @return {?}\n */\n BindingParser.prototype._parseEvent = /**\n * @param {?} name\n * @param {?} expression\n * @param {?} sourceSpan\n * @param {?} targetMatchableAttrs\n * @param {?} targetEvents\n * @return {?}\n */\n function (name, expression, sourceSpan, targetMatchableAttrs, targetEvents) {\n // long format: 'target: eventName'\n var _a = splitAtColon(name, [/** @type {?} */ ((null)), name]), target = _a[0], eventName = _a[1];\n var /** @type {?} */ ast = this._parseAction(expression, sourceSpan);\n targetMatchableAttrs.push([/** @type {?} */ ((name)), /** @type {?} */ ((ast.source))]);\n targetEvents.push(new BoundEventAst(eventName, target, null, ast, sourceSpan));\n // Don't detect directives for event names for now,\n // so don't add the event name to the matchableAttrs\n };\n /**\n * @param {?} value\n * @param {?} sourceSpan\n * @return {?}\n */\n BindingParser.prototype._parseAction = /**\n * @param {?} value\n * @param {?} sourceSpan\n * @return {?}\n */\n function (value, sourceSpan) {\n var /** @type {?} */ sourceInfo = sourceSpan.start.toString();\n try {\n var /** @type {?} */ ast = this._exprParser.parseAction(value, sourceInfo, this._interpolationConfig);\n if (ast) {\n this._reportExpressionParserErrors(ast.errors, sourceSpan);\n }\n if (!ast || ast.ast instanceof EmptyExpr) {\n this._reportError(\"Empty expressions are not allowed\", sourceSpan);\n return this._exprParser.wrapLiteralPrimitive('ERROR', sourceInfo);\n }\n this._checkPipes(ast, sourceSpan);\n return ast;\n }\n catch (/** @type {?} */ e) {\n this._reportError(\"\" + e, sourceSpan);\n return this._exprParser.wrapLiteralPrimitive('ERROR', sourceInfo);\n }\n };\n /**\n * @param {?} message\n * @param {?} sourceSpan\n * @param {?=} level\n * @return {?}\n */\n BindingParser.prototype._reportError = /**\n * @param {?} message\n * @param {?} sourceSpan\n * @param {?=} level\n * @return {?}\n */\n function (message, sourceSpan, level) {\n if (level === void 0) { level = ParseErrorLevel.ERROR; }\n this._targetErrors.push(new ParseError(sourceSpan, message, level));\n };\n /**\n * @param {?} errors\n * @param {?} sourceSpan\n * @return {?}\n */\n BindingParser.prototype._reportExpressionParserErrors = /**\n * @param {?} errors\n * @param {?} sourceSpan\n * @return {?}\n */\n function (errors, sourceSpan) {\n for (var _i = 0, errors_1 = errors; _i < errors_1.length; _i++) {\n var error = errors_1[_i];\n this._reportError(error.message, sourceSpan);\n }\n };\n /**\n * @param {?} ast\n * @param {?} sourceSpan\n * @return {?}\n */\n BindingParser.prototype._checkPipes = /**\n * @param {?} ast\n * @param {?} sourceSpan\n * @return {?}\n */\n function (ast, sourceSpan) {\n var _this = this;\n if (ast) {\n var /** @type {?} */ collector = new PipeCollector();\n ast.visit(collector);\n collector.pipes.forEach(function (ast, pipeName) {\n var /** @type {?} */ pipeMeta = _this.pipesByName.get(pipeName);\n if (!pipeMeta) {\n _this._reportError(\"The pipe '\" + pipeName + \"' could not be found\", new ParseSourceSpan(sourceSpan.start.moveBy(ast.span.start), sourceSpan.start.moveBy(ast.span.end)));\n }\n else {\n _this._usedPipes.set(pipeName, pipeMeta);\n }\n });\n }\n };\n /**\n * @param {?} propName the name of the property / attribute\n * @param {?} sourceSpan\n * @param {?} isAttr true when binding to an attribute\n * @return {?}\n */\n BindingParser.prototype._validatePropertyOrAttributeName = /**\n * @param {?} propName the name of the property / attribute\n * @param {?} sourceSpan\n * @param {?} isAttr true when binding to an attribute\n * @return {?}\n */\n function (propName, sourceSpan, isAttr) {\n var /** @type {?} */ report = isAttr ? this._schemaRegistry.validateAttribute(propName) :\n this._schemaRegistry.validateProperty(propName);\n if (report.error) {\n this._reportError(/** @type {?} */ ((report.msg)), sourceSpan, ParseErrorLevel.ERROR);\n }\n };\n return BindingParser;\n}());\n/**\n * Parses bindings in templates and in the directive host area.\n */\nexport { BindingParser };\nfunction BindingParser_tsickle_Closure_declarations() {\n /** @type {?} */\n BindingParser.prototype.pipesByName;\n /** @type {?} */\n BindingParser.prototype._usedPipes;\n /** @type {?} */\n BindingParser.prototype._exprParser;\n /** @type {?} */\n BindingParser.prototype._interpolationConfig;\n /** @type {?} */\n BindingParser.prototype._schemaRegistry;\n /** @type {?} */\n BindingParser.prototype._targetErrors;\n}\nvar PipeCollector = /** @class */ (function (_super) {\n tslib_1.__extends(PipeCollector, _super);\n function PipeCollector() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.pipes = new Map();\n return _this;\n }\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n PipeCollector.prototype.visitPipe = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) {\n this.pipes.set(ast.name, ast);\n ast.exp.visit(this);\n this.visitAll(ast.args, context);\n return null;\n };\n return PipeCollector;\n}(RecursiveAstVisitor));\nexport { PipeCollector };\nfunction PipeCollector_tsickle_Closure_declarations() {\n /** @type {?} */\n PipeCollector.prototype.pipes;\n}\n/**\n * @param {?} name\n * @return {?}\n */\nfunction _isAnimationLabel(name) {\n return name[0] == '@';\n}\n/**\n * @param {?} registry\n * @param {?} selector\n * @param {?} propName\n * @param {?} isAttribute\n * @return {?}\n */\nexport function calcPossibleSecurityContexts(registry, selector, propName, isAttribute) {\n var /** @type {?} */ ctxs = [];\n CssSelector.parse(selector).forEach(function (selector) {\n var /** @type {?} */ elementNames = selector.element ? [selector.element] : registry.allKnownElementNames();\n var /** @type {?} */ notElementNames = new Set(selector.notSelectors.filter(function (selector) { return selector.isElementSelector(); })\n .map(function (selector) { return selector.element; }));\n var /** @type {?} */ possibleElementNames = elementNames.filter(function (elementName) { return !notElementNames.has(elementName); });\n ctxs.push.apply(ctxs, possibleElementNames.map(function (elementName) { return registry.securityContext(elementName, propName, isAttribute); }));\n });\n return ctxs.length === 0 ? [SecurityContext.NONE] : Array.from(new Set(ctxs)).sort();\n}\n//# sourceMappingURL=binding_parser.js.map","/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this 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 tslib_1 from \"tslib\";\nimport { identifierName } from '../compile_metadata';\nimport { ASTWithSource, EmptyExpr } from '../expression_parser/ast';\nimport { Identifiers, createTokenForExternalReference, createTokenForReference } from '../identifiers';\nimport * as html from '../ml_parser/ast';\nimport { ParseTreeResult } from '../ml_parser/html_parser';\nimport { removeWhitespaces, replaceNgsp } from '../ml_parser/html_whitespaces';\nimport { expandNodes } from '../ml_parser/icu_ast_expander';\nimport { InterpolationConfig } from '../ml_parser/interpolation_config';\nimport { isNgTemplate, splitNsName } from '../ml_parser/tags';\nimport { ParseError, ParseErrorLevel, ParseSourceSpan } from '../parse_util';\nimport { ProviderElementContext, ProviderViewContext } from '../provider_analyzer';\nimport { CssSelector, SelectorMatcher } from '../selector';\nimport { isStyleUrlResolvable } from '../style_url_resolver';\nimport { syntaxError } from '../util';\nimport { BindingParser } from './binding_parser';\nimport { AttrAst, BoundDirectivePropertyAst, BoundTextAst, DirectiveAst, ElementAst, EmbeddedTemplateAst, NgContentAst, PropertyBindingType, ReferenceAst, TextAst, VariableAst, templateVisitAll } from './template_ast';\nimport { PreparsedElementType, preparseElement } from './template_preparser';\nvar /** @type {?} */ BIND_NAME_REGEXP = /^(?:(?:(?:(bind-)|(let-)|(ref-|#)|(on-)|(bindon-)|(@))(.+))|\\[\\(([^\\)]+)\\)\\]|\\[([^\\]]+)\\]|\\(([^\\)]+)\\))$/;\n// Group 1 = \"bind-\"\nvar /** @type {?} */ KW_BIND_IDX = 1;\n// Group 2 = \"let-\"\nvar /** @type {?} */ KW_LET_IDX = 2;\n// Group 3 = \"ref-/#\"\nvar /** @type {?} */ KW_REF_IDX = 3;\n// Group 4 = \"on-\"\nvar /** @type {?} */ KW_ON_IDX = 4;\n// Group 5 = \"bindon-\"\nvar /** @type {?} */ KW_BINDON_IDX = 5;\n// Group 6 = \"@\"\nvar /** @type {?} */ KW_AT_IDX = 6;\n// Group 7 = the identifier after \"bind-\", \"let-\", \"ref-/#\", \"on-\", \"bindon-\" or \"@\"\nvar /** @type {?} */ IDENT_KW_IDX = 7;\n// Group 8 = identifier inside [()]\nvar /** @type {?} */ IDENT_BANANA_BOX_IDX = 8;\n// Group 9 = identifier inside []\nvar /** @type {?} */ IDENT_PROPERTY_IDX = 9;\n// Group 10 = identifier inside ()\nvar /** @type {?} */ IDENT_EVENT_IDX = 10;\n// deprecated in 4.x\nvar /** @type {?} */ TEMPLATE_ELEMENT = 'template';\n// deprecated in 4.x\nvar /** @type {?} */ TEMPLATE_ATTR = 'template';\nvar /** @type {?} */ TEMPLATE_ATTR_PREFIX = '*';\nvar /** @type {?} */ CLASS_ATTR = 'class';\nvar /** @type {?} */ TEXT_CSS_SELECTOR = CssSelector.parse('*')[0];\nvar /** @type {?} */ TEMPLATE_ELEMENT_DEPRECATION_WARNING = 'The <template> element is deprecated. Use <ng-template> instead';\nvar /** @type {?} */ TEMPLATE_ATTR_DEPRECATION_WARNING = 'The template attribute is deprecated. Use an ng-template element instead.';\nvar /** @type {?} */ warningCounts = {};\n/**\n * @param {?} warnings\n * @return {?}\n */\nfunction warnOnlyOnce(warnings) {\n return function (error) {\n if (warnings.indexOf(error.msg) !== -1) {\n warningCounts[error.msg] = (warningCounts[error.msg] || 0) + 1;\n return warningCounts[error.msg] <= 1;\n }\n return true;\n };\n}\nvar TemplateParseError = /** @class */ (function (_super) {\n tslib_1.__extends(TemplateParseError, _super);\n function TemplateParseError(message, span, level) {\n return _super.call(this, span, message, level) || this;\n }\n return TemplateParseError;\n}(ParseError));\nexport { TemplateParseError };\nvar TemplateParseResult = /** @class */ (function () {\n function TemplateParseResult(templateAst, usedPipes, errors) {\n this.templateAst = templateAst;\n this.usedPipes = usedPipes;\n this.errors = errors;\n }\n return TemplateParseResult;\n}());\nexport { TemplateParseResult };\nfunction TemplateParseResult_tsickle_Closure_declarations() {\n /** @type {?} */\n TemplateParseResult.prototype.templateAst;\n /** @type {?} */\n TemplateParseResult.prototype.usedPipes;\n /** @type {?} */\n TemplateParseResult.prototype.errors;\n}\nvar TemplateParser = /** @class */ (function () {\n function TemplateParser(_config, _reflector, _exprParser, _schemaRegistry, _htmlParser, _console, transforms) {\n this._config = _config;\n this._reflector = _reflector;\n this._exprParser = _exprParser;\n this._schemaRegistry = _schemaRegistry;\n this._htmlParser = _htmlParser;\n this._console = _console;\n this.transforms = transforms;\n }\n /**\n * @param {?} component\n * @param {?} template\n * @param {?} directives\n * @param {?} pipes\n * @param {?} schemas\n * @param {?} templateUrl\n * @param {?} preserveWhitespaces\n * @return {?}\n */\n TemplateParser.prototype.parse = /**\n * @param {?} component\n * @param {?} template\n * @param {?} directives\n * @param {?} pipes\n * @param {?} schemas\n * @param {?} templateUrl\n * @param {?} preserveWhitespaces\n * @return {?}\n */\n function (component, template, directives, pipes, schemas, templateUrl, preserveWhitespaces) {\n var /** @type {?} */ result = this.tryParse(component, template, directives, pipes, schemas, templateUrl, preserveWhitespaces);\n var /** @type {?} */ warnings = /** @type {?} */ ((result.errors)).filter(function (error) { return error.level === ParseErrorLevel.WARNING; }).filter(warnOnlyOnce([TEMPLATE_ATTR_DEPRECATION_WARNING, TEMPLATE_ELEMENT_DEPRECATION_WARNING]));\n var /** @type {?} */ errors = /** @type {?} */ ((result.errors)).filter(function (error) { return error.level === ParseErrorLevel.ERROR; });\n if (warnings.length > 0) {\n this._console.warn(\"Template parse warnings:\\n\" + warnings.join('\\n'));\n }\n if (errors.length > 0) {\n var /** @type {?} */ errorString = errors.join('\\n');\n throw syntaxError(\"Template parse errors:\\n\" + errorString, errors);\n }\n return { template: /** @type {?} */ ((result.templateAst)), pipes: /** @type {?} */ ((result.usedPipes)) };\n };\n /**\n * @param {?} component\n * @param {?} template\n * @param {?} directives\n * @param {?} pipes\n * @param {?} schemas\n * @param {?} templateUrl\n * @param {?} preserveWhitespaces\n * @return {?}\n */\n TemplateParser.prototype.tryParse = /**\n * @param {?} component\n * @param {?} template\n * @param {?} directives\n * @param {?} pipes\n * @param {?} schemas\n * @param {?} templateUrl\n * @param {?} preserveWhitespaces\n * @return {?}\n */\n function (component, template, directives, pipes, schemas, templateUrl, preserveWhitespaces) {\n var /** @type {?} */ htmlParseResult = typeof template === 'string' ? /** @type {?} */ ((this._htmlParser)).parse(template, templateUrl, true, this.getInterpolationConfig(component)) :\n template;\n if (!preserveWhitespaces) {\n htmlParseResult = removeWhitespaces(htmlParseResult);\n }\n return this.tryParseHtml(this.expandHtml(htmlParseResult), component, directives, pipes, schemas);\n };\n /**\n * @param {?} htmlAstWithErrors\n * @param {?} component\n * @param {?} directives\n * @param {?} pipes\n * @param {?} schemas\n * @return {?}\n */\n TemplateParser.prototype.tryParseHtml = /**\n * @param {?} htmlAstWithErrors\n * @param {?} component\n * @param {?} directives\n * @param {?} pipes\n * @param {?} schemas\n * @return {?}\n */\n function (htmlAstWithErrors, component, directives, pipes, schemas) {\n var /** @type {?} */ result;\n var /** @type {?} */ errors = htmlAstWithErrors.errors;\n var /** @type {?} */ usedPipes = [];\n if (htmlAstWithErrors.rootNodes.length > 0) {\n var /** @type {?} */ uniqDirectives = removeSummaryDuplicates(directives);\n var /** @type {?} */ uniqPipes = removeSummaryDuplicates(pipes);\n var /** @type {?} */ providerViewContext = new ProviderViewContext(this._reflector, component);\n var /** @type {?} */ interpolationConfig = /** @type {?} */ ((undefined));\n if (component.template && component.template.interpolation) {\n interpolationConfig = {\n start: component.template.interpolation[0],\n end: component.template.interpolation[1]\n };\n }\n var /** @type {?} */ bindingParser = new BindingParser(this._exprParser, /** @type {?} */ ((interpolationConfig)), this._schemaRegistry, uniqPipes, errors);\n var /** @type {?} */ parseVisitor = new TemplateParseVisitor(this._reflector, this._config, providerViewContext, uniqDirectives, bindingParser, this._schemaRegistry, schemas, errors);\n result = html.visitAll(parseVisitor, htmlAstWithErrors.rootNodes, EMPTY_ELEMENT_CONTEXT);\n errors.push.apply(errors, providerViewContext.errors);\n usedPipes.push.apply(usedPipes, bindingParser.getUsedPipes());\n }\n else {\n result = [];\n }\n this._assertNoReferenceDuplicationOnTemplate(result, errors);\n if (errors.length > 0) {\n return new TemplateParseResult(result, usedPipes, errors);\n }\n if (this.transforms) {\n this.transforms.forEach(function (transform) { result = templateVisitAll(transform, result); });\n }\n return new TemplateParseResult(result, usedPipes, errors);\n };\n /**\n * @param {?} htmlAstWithErrors\n * @param {?=} forced\n * @return {?}\n */\n TemplateParser.prototype.expandHtml = /**\n * @param {?} htmlAstWithErrors\n * @param {?=} forced\n * @return {?}\n */\n function (htmlAstWithErrors, forced) {\n if (forced === void 0) { forced = false; }\n var /** @type {?} */ errors = htmlAstWithErrors.errors;\n if (errors.length == 0 || forced) {\n // Transform ICU messages to angular directives\n var /** @type {?} */ expandedHtmlAst = expandNodes(htmlAstWithErrors.rootNodes);\n errors.push.apply(errors, expandedHtmlAst.errors);\n htmlAstWithErrors = new ParseTreeResult(expandedHtmlAst.nodes, errors);\n }\n return htmlAstWithErrors;\n };\n /**\n * @param {?} component\n * @return {?}\n */\n TemplateParser.prototype.getInterpolationConfig = /**\n * @param {?} component\n * @return {?}\n */\n function (component) {\n if (component.template) {\n return InterpolationConfig.fromArray(component.template.interpolation);\n }\n return undefined;\n };\n /** @internal */\n /**\n * \\@internal\n * @param {?} result\n * @param {?} errors\n * @return {?}\n */\n TemplateParser.prototype._assertNoReferenceDuplicationOnTemplate = /**\n * \\@internal\n * @param {?} result\n * @param {?} errors\n * @return {?}\n */\n function (result, errors) {\n var /** @type {?} */ existingReferences = [];\n result.filter(function (element) { return !!(/** @type {?} */ (element)).references; })\n .forEach(function (element) {\n return (/** @type {?} */ (element)).references.forEach(function (reference) {\n var /** @type {?} */ name = reference.name;\n if (existingReferences.indexOf(name) < 0) {\n existingReferences.push(name);\n }\n else {\n var /** @type {?} */ error = new TemplateParseError(\"Reference \\\"#\" + name + \"\\\" is defined several times\", reference.sourceSpan, ParseErrorLevel.ERROR);\n errors.push(error);\n }\n });\n });\n };\n return TemplateParser;\n}());\nexport { TemplateParser };\nfunction TemplateParser_tsickle_Closure_declarations() {\n /** @type {?} */\n TemplateParser.prototype._config;\n /** @type {?} */\n TemplateParser.prototype._reflector;\n /** @type {?} */\n TemplateParser.prototype._exprParser;\n /** @type {?} */\n TemplateParser.prototype._schemaRegistry;\n /** @type {?} */\n TemplateParser.prototype._htmlParser;\n /** @type {?} */\n TemplateParser.prototype._console;\n /** @type {?} */\n TemplateParser.prototype.transforms;\n}\nvar TemplateParseVisitor = /** @class */ (function () {\n function TemplateParseVisitor(reflector, config, providerViewContext, directives, _bindingParser, _schemaRegistry, _schemas, _targetErrors) {\n var _this = this;\n this.reflector = reflector;\n this.config = config;\n this.providerViewContext = providerViewContext;\n this._bindingParser = _bindingParser;\n this._schemaRegistry = _schemaRegistry;\n this._schemas = _schemas;\n this._targetErrors = _targetErrors;\n this.selectorMatcher = new SelectorMatcher();\n this.directivesIndex = new Map();\n this.ngContentCount = 0;\n // Note: queries start with id 1 so we can use the number in a Bloom filter!\n this.contentQueryStartId = providerViewContext.component.viewQueries.length + 1;\n directives.forEach(function (directive, index) {\n var /** @type {?} */ selector = CssSelector.parse(/** @type {?} */ ((directive.selector)));\n _this.selectorMatcher.addSelectables(selector, directive);\n _this.directivesIndex.set(directive, index);\n });\n }\n /**\n * @param {?} expansion\n * @param {?} context\n * @return {?}\n */\n TemplateParseVisitor.prototype.visitExpansion = /**\n * @param {?} expansion\n * @param {?} context\n * @return {?}\n */\n function (expansion, context) { return null; };\n /**\n * @param {?} expansionCase\n * @param {?} context\n * @return {?}\n */\n TemplateParseVisitor.prototype.visitExpansionCase = /**\n * @param {?} expansionCase\n * @param {?} context\n * @return {?}\n */\n function (expansionCase, context) { return null; };\n /**\n * @param {?} text\n * @param {?} parent\n * @return {?}\n */\n TemplateParseVisitor.prototype.visitText = /**\n * @param {?} text\n * @param {?} parent\n * @return {?}\n */\n function (text, parent) {\n var /** @type {?} */ ngContentIndex = /** @type {?} */ ((parent.findNgContentIndex(TEXT_CSS_SELECTOR)));\n var /** @type {?} */ valueNoNgsp = replaceNgsp(text.value);\n var /** @type {?} */ expr = this._bindingParser.parseInterpolation(valueNoNgsp, /** @type {?} */ ((text.sourceSpan)));\n return expr ? new BoundTextAst(expr, ngContentIndex, /** @type {?} */ ((text.sourceSpan))) :\n new TextAst(valueNoNgsp, ngContentIndex, /** @type {?} */ ((text.sourceSpan)));\n };\n /**\n * @param {?} attribute\n * @param {?} context\n * @return {?}\n */\n TemplateParseVisitor.prototype.visitAttribute = /**\n * @param {?} attribute\n * @param {?} context\n * @return {?}\n */\n function (attribute, context) {\n return new AttrAst(attribute.name, attribute.value, attribute.sourceSpan);\n };\n /**\n * @param {?} comment\n * @param {?} context\n * @return {?}\n */\n TemplateParseVisitor.prototype.visitComment = /**\n * @param {?} comment\n * @param {?} context\n * @return {?}\n */\n function (comment, context) { return null; };\n /**\n * @param {?} element\n * @param {?} parent\n * @return {?}\n */\n TemplateParseVisitor.prototype.visitElement = /**\n * @param {?} element\n * @param {?} parent\n * @return {?}\n */\n function (element, parent) {\n var _this = this;\n var /** @type {?} */ queryStartIndex = this.contentQueryStartId;\n var /** @type {?} */ nodeName = element.name;\n var /** @type {?} */ preparsedElement = preparseElement(element);\n if (preparsedElement.type === PreparsedElementType.SCRIPT ||\n preparsedElement.type === PreparsedElementType.STYLE) {\n // Skipping <script> for security reasons\n // Skipping <style> as we already processed them\n // in the StyleCompiler\n return null;\n }\n if (preparsedElement.type === PreparsedElementType.STYLESHEET &&\n isStyleUrlResolvable(preparsedElement.hrefAttr)) {\n // Skipping stylesheets with either relative urls or package scheme as we already processed\n // them in the StyleCompiler\n return null;\n }\n var /** @type {?} */ matchableAttrs = [];\n var /** @type {?} */ elementOrDirectiveProps = [];\n var /** @type {?} */ elementOrDirectiveRefs = [];\n var /** @type {?} */ elementVars = [];\n var /** @type {?} */ events = [];\n var /** @type {?} */ templateElementOrDirectiveProps = [];\n var /** @type {?} */ templateMatchableAttrs = [];\n var /** @type {?} */ templateElementVars = [];\n var /** @type {?} */ hasInlineTemplates = false;\n var /** @type {?} */ attrs = [];\n var /** @type {?} */ isTemplateElement = isTemplate(element, this.config.enableLegacyTemplate, function (m, span) { return _this._reportError(m, span, ParseErrorLevel.WARNING); });\n element.attrs.forEach(function (attr) {\n var /** @type {?} */ hasBinding = _this._parseAttr(isTemplateElement, attr, matchableAttrs, elementOrDirectiveProps, events, elementOrDirectiveRefs, elementVars);\n var /** @type {?} */ templateBindingsSource;\n var /** @type {?} */ prefixToken;\n var /** @type {?} */ normalizedName = _this._normalizeAttributeName(attr.name);\n if (_this.config.enableLegacyTemplate && normalizedName == TEMPLATE_ATTR) {\n _this._reportError(TEMPLATE_ATTR_DEPRECATION_WARNING, attr.sourceSpan, ParseErrorLevel.WARNING);\n templateBindingsSource = attr.value;\n }\n else if (normalizedName.startsWith(TEMPLATE_ATTR_PREFIX)) {\n templateBindingsSource = attr.value;\n prefixToken = normalizedName.substring(TEMPLATE_ATTR_PREFIX.length) + ':';\n }\n var /** @type {?} */ hasTemplateBinding = templateBindingsSource != null;\n if (hasTemplateBinding) {\n if (hasInlineTemplates) {\n _this._reportError(\"Can't have multiple template bindings on one element. Use only one attribute named 'template' or prefixed with *\", attr.sourceSpan);\n }\n hasInlineTemplates = true;\n _this._bindingParser.parseInlineTemplateBinding(/** @type {?} */ ((prefixToken)), /** @type {?} */ ((templateBindingsSource)), attr.sourceSpan, templateMatchableAttrs, templateElementOrDirectiveProps, templateElementVars);\n }\n if (!hasBinding && !hasTemplateBinding) {\n // don't include the bindings as attributes as well in the AST\n attrs.push(_this.visitAttribute(attr, null));\n matchableAttrs.push([attr.name, attr.value]);\n }\n });\n var /** @type {?} */ elementCssSelector = createElementCssSelector(nodeName, matchableAttrs);\n var _a = this._parseDirectives(this.selectorMatcher, elementCssSelector), directiveMetas = _a.directives, matchElement = _a.matchElement;\n var /** @type {?} */ references = [];\n var /** @type {?} */ boundDirectivePropNames = new Set();\n var /** @type {?} */ directiveAsts = this._createDirectiveAsts(isTemplateElement, element.name, directiveMetas, elementOrDirectiveProps, elementOrDirectiveRefs, /** @type {?} */ ((element.sourceSpan)), references, boundDirectivePropNames);\n var /** @type {?} */ elementProps = this._createElementPropertyAsts(element.name, elementOrDirectiveProps, boundDirectivePropNames);\n var /** @type {?} */ isViewRoot = parent.isTemplateElement || hasInlineTemplates;\n var /** @type {?} */ providerContext = new ProviderElementContext(this.providerViewContext, /** @type {?} */ ((parent.providerContext)), isViewRoot, directiveAsts, attrs, references, isTemplateElement, queryStartIndex, /** @type {?} */ ((element.sourceSpan)));\n var /** @type {?} */ children = html.visitAll(preparsedElement.nonBindable ? NON_BINDABLE_VISITOR : this, element.children, ElementContext.create(isTemplateElement, directiveAsts, isTemplateElement ? /** @type {?} */ ((parent.providerContext)) : providerContext));\n providerContext.afterElement();\n // Override the actual selector when the `ngProjectAs` attribute is provided\n var /** @type {?} */ projectionSelector = preparsedElement.projectAs != null ?\n CssSelector.parse(preparsedElement.projectAs)[0] :\n elementCssSelector;\n var /** @type {?} */ ngContentIndex = /** @type {?} */ ((parent.findNgContentIndex(projectionSelector)));\n var /** @type {?} */ parsedElement;\n if (preparsedElement.type === PreparsedElementType.NG_CONTENT) {\n if (element.children && !element.children.every(_isEmptyTextNode)) {\n this._reportError(\"<ng-content> element cannot have content.\", /** @type {?} */ ((element.sourceSpan)));\n }\n parsedElement = new NgContentAst(this.ngContentCount++, hasInlineTemplates ? /** @type {?} */ ((null)) : ngContentIndex, /** @type {?} */ ((element.sourceSpan)));\n }\n else if (isTemplateElement) {\n this._assertAllEventsPublishedByDirectives(directiveAsts, events);\n this._assertNoComponentsNorElementBindingsOnTemplate(directiveAsts, elementProps, /** @type {?} */ ((element.sourceSpan)));\n parsedElement = new EmbeddedTemplateAst(attrs, events, references, elementVars, providerContext.transformedDirectiveAsts, providerContext.transformProviders, providerContext.transformedHasViewContainer, providerContext.queryMatches, children, hasInlineTemplates ? /** @type {?} */ ((null)) : ngContentIndex, /** @type {?} */ ((element.sourceSpan)));\n }\n else {\n this._assertElementExists(matchElement, element);\n this._assertOnlyOneComponent(directiveAsts, /** @type {?} */ ((element.sourceSpan)));\n var /** @type {?} */ ngContentIndex_1 = hasInlineTemplates ? null : parent.findNgContentIndex(projectionSelector);\n parsedElement = new ElementAst(nodeName, attrs, elementProps, events, references, providerContext.transformedDirectiveAsts, providerContext.transformProviders, providerContext.transformedHasViewContainer, providerContext.queryMatches, children, hasInlineTemplates ? null : ngContentIndex_1, element.sourceSpan, element.endSourceSpan || null);\n }\n if (hasInlineTemplates) {\n var /** @type {?} */ templateQueryStartIndex = this.contentQueryStartId;\n var /** @type {?} */ templateSelector = createElementCssSelector(TEMPLATE_ELEMENT, templateMatchableAttrs);\n var templateDirectiveMetas = this._parseDirectives(this.selectorMatcher, templateSelector).directives;\n var /** @type {?} */ templateBoundDirectivePropNames = new Set();\n var /** @type {?} */ templateDirectiveAsts = this._createDirectiveAsts(true, element.name, templateDirectiveMetas, templateElementOrDirectiveProps, [], /** @type {?} */ ((element.sourceSpan)), [], templateBoundDirectivePropNames);\n var /** @type {?} */ templateElementProps = this._createElementPropertyAsts(element.name, templateElementOrDirectiveProps, templateBoundDirectivePropNames);\n this._assertNoComponentsNorElementBindingsOnTemplate(templateDirectiveAsts, templateElementProps, /** @type {?} */ ((element.sourceSpan)));\n var /** @type {?} */ templateProviderContext = new ProviderElementContext(this.providerViewContext, /** @type {?} */ ((parent.providerContext)), parent.isTemplateElement, templateDirectiveAsts, [], [], true, templateQueryStartIndex, /** @type {?} */ ((element.sourceSpan)));\n templateProviderContext.afterElement();\n parsedElement = new EmbeddedTemplateAst([], [], [], templateElementVars, templateProviderContext.transformedDirectiveAsts, templateProviderContext.transformProviders, templateProviderContext.transformedHasViewContainer, templateProviderContext.queryMatches, [parsedElement], ngContentIndex, /** @type {?} */ ((element.sourceSpan)));\n }\n return parsedElement;\n };\n /**\n * @param {?} isTemplateElement\n * @param {?} attr\n * @param {?} targetMatchableAttrs\n * @param {?} targetProps\n * @param {?} targetEvents\n * @param {?} targetRefs\n * @param {?} targetVars\n * @return {?}\n */\n TemplateParseVisitor.prototype._parseAttr = /**\n * @param {?} isTemplateElement\n * @param {?} attr\n * @param {?} targetMatchableAttrs\n * @param {?} targetProps\n * @param {?} targetEvents\n * @param {?} targetRefs\n * @param {?} targetVars\n * @return {?}\n */\n function (isTemplateElement, attr, targetMatchableAttrs, targetProps, targetEvents, targetRefs, targetVars) {\n var /** @type {?} */ name = this._normalizeAttributeName(attr.name);\n var /** @type {?} */ value = attr.value;\n var /** @type {?} */ srcSpan = attr.sourceSpan;\n var /** @type {?} */ bindParts = name.match(BIND_NAME_REGEXP);\n var /** @type {?} */ hasBinding = false;\n if (bindParts !== null) {\n hasBinding = true;\n if (bindParts[KW_BIND_IDX] != null) {\n this._bindingParser.parsePropertyBinding(bindParts[IDENT_KW_IDX], value, false, srcSpan, targetMatchableAttrs, targetProps);\n }\n else if (bindParts[KW_LET_IDX]) {\n if (isTemplateElement) {\n var /** @type {?} */ identifier = bindParts[IDENT_KW_IDX];\n this._parseVariable(identifier, value, srcSpan, targetVars);\n }\n else {\n this._reportError(\"\\\"let-\\\" is only supported on ng-template elements.\", srcSpan);\n }\n }\n else if (bindParts[KW_REF_IDX]) {\n var /** @type {?} */ identifier = bindParts[IDENT_KW_IDX];\n this._parseReference(identifier, value, srcSpan, targetRefs);\n }\n else if (bindParts[KW_ON_IDX]) {\n this._bindingParser.parseEvent(bindParts[IDENT_KW_IDX], value, srcSpan, targetMatchableAttrs, targetEvents);\n }\n else if (bindParts[KW_BINDON_IDX]) {\n this._bindingParser.parsePropertyBinding(bindParts[IDENT_KW_IDX], value, false, srcSpan, targetMatchableAttrs, targetProps);\n this._parseAssignmentEvent(bindParts[IDENT_KW_IDX], value, srcSpan, targetMatchableAttrs, targetEvents);\n }\n else if (bindParts[KW_AT_IDX]) {\n this._bindingParser.parseLiteralAttr(name, value, srcSpan, targetMatchableAttrs, targetProps);\n }\n else if (bindParts[IDENT_BANANA_BOX_IDX]) {\n this._bindingParser.parsePropertyBinding(bindParts[IDENT_BANANA_BOX_IDX], value, false, srcSpan, targetMatchableAttrs, targetProps);\n this._parseAssignmentEvent(bindParts[IDENT_BANANA_BOX_IDX], value, srcSpan, targetMatchableAttrs, targetEvents);\n }\n else if (bindParts[IDENT_PROPERTY_IDX]) {\n this._bindingParser.parsePropertyBinding(bindParts[IDENT_PROPERTY_IDX], value, false, srcSpan, targetMatchableAttrs, targetProps);\n }\n else if (bindParts[IDENT_EVENT_IDX]) {\n this._bindingParser.parseEvent(bindParts[IDENT_EVENT_IDX], value, srcSpan, targetMatchableAttrs, targetEvents);\n }\n }\n else {\n hasBinding = this._bindingParser.parsePropertyInterpolation(name, value, srcSpan, targetMatchableAttrs, targetProps);\n }\n if (!hasBinding) {\n this._bindingParser.parseLiteralAttr(name, value, srcSpan, targetMatchableAttrs, targetProps);\n }\n return hasBinding;\n };\n /**\n * @param {?} attrName\n * @return {?}\n */\n TemplateParseVisitor.prototype._normalizeAttributeName = /**\n * @param {?} attrName\n * @return {?}\n */\n function (attrName) {\n return /^data-/i.test(attrName) ? attrName.substring(5) : attrName;\n };\n /**\n * @param {?} identifier\n * @param {?} value\n * @param {?} sourceSpan\n * @param {?} targetVars\n * @return {?}\n */\n TemplateParseVisitor.prototype._parseVariable = /**\n * @param {?} identifier\n * @param {?} value\n * @param {?} sourceSpan\n * @param {?} targetVars\n * @return {?}\n */\n function (identifier, value, sourceSpan, targetVars) {\n if (identifier.indexOf('-') > -1) {\n this._reportError(\"\\\"-\\\" is not allowed in variable names\", sourceSpan);\n }\n targetVars.push(new VariableAst(identifier, value, sourceSpan));\n };\n /**\n * @param {?} identifier\n * @param {?} value\n * @param {?} sourceSpan\n * @param {?} targetRefs\n * @return {?}\n */\n TemplateParseVisitor.prototype._parseReference = /**\n * @param {?} identifier\n * @param {?} value\n * @param {?} sourceSpan\n * @param {?} targetRefs\n * @return {?}\n */\n function (identifier, value, sourceSpan, targetRefs) {\n if (identifier.indexOf('-') > -1) {\n this._reportError(\"\\\"-\\\" is not allowed in reference names\", sourceSpan);\n }\n targetRefs.push(new ElementOrDirectiveRef(identifier, value, sourceSpan));\n };\n /**\n * @param {?} name\n * @param {?} expression\n * @param {?} sourceSpan\n * @param {?} targetMatchableAttrs\n * @param {?} targetEvents\n * @return {?}\n */\n TemplateParseVisitor.prototype._parseAssignmentEvent = /**\n * @param {?} name\n * @param {?} expression\n * @param {?} sourceSpan\n * @param {?} targetMatchableAttrs\n * @param {?} targetEvents\n * @return {?}\n */\n function (name, expression, sourceSpan, targetMatchableAttrs, targetEvents) {\n this._bindingParser.parseEvent(name + \"Change\", expression + \"=$event\", sourceSpan, targetMatchableAttrs, targetEvents);\n };\n /**\n * @param {?} selectorMatcher\n * @param {?} elementCssSelector\n * @return {?}\n */\n TemplateParseVisitor.prototype._parseDirectives = /**\n * @param {?} selectorMatcher\n * @param {?} elementCssSelector\n * @return {?}\n */\n function (selectorMatcher, elementCssSelector) {\n var _this = this;\n // Need to sort the directives so that we get consistent results throughout,\n // as selectorMatcher uses Maps inside.\n // Also deduplicate directives as they might match more than one time!\n var /** @type {?} */ directives = new Array(this.directivesIndex.size);\n // Whether any directive selector matches on the element name\n var /** @type {?} */ matchElement = false;\n selectorMatcher.match(elementCssSelector, function (selector, directive) {\n directives[/** @type {?} */ ((_this.directivesIndex.get(directive)))] = directive;\n matchElement = matchElement || selector.hasElementSelector();\n });\n return {\n directives: directives.filter(function (dir) { return !!dir; }),\n matchElement: matchElement,\n };\n };\n /**\n * @param {?} isTemplateElement\n * @param {?} elementName\n * @param {?} directives\n * @param {?} props\n * @param {?} elementOrDirectiveRefs\n * @param {?} elementSourceSpan\n * @param {?} targetReferences\n * @param {?} targetBoundDirectivePropNames\n * @return {?}\n */\n TemplateParseVisitor.prototype._createDirectiveAsts = /**\n * @param {?} isTemplateElement\n * @param {?} elementName\n * @param {?} directives\n * @param {?} props\n * @param {?} elementOrDirectiveRefs\n * @param {?} elementSourceSpan\n * @param {?} targetReferences\n * @param {?} targetBoundDirectivePropNames\n * @return {?}\n */\n function (isTemplateElement, elementName, directives, props, elementOrDirectiveRefs, elementSourceSpan, targetReferences, targetBoundDirectivePropNames) {\n var _this = this;\n var /** @type {?} */ matchedReferences = new Set();\n var /** @type {?} */ component = /** @type {?} */ ((null));\n var /** @type {?} */ directiveAsts = directives.map(function (directive) {\n var /** @type {?} */ sourceSpan = new ParseSourceSpan(elementSourceSpan.start, elementSourceSpan.end, \"Directive \" + identifierName(directive.type));\n if (directive.isComponent) {\n component = directive;\n }\n var /** @type {?} */ directiveProperties = [];\n var /** @type {?} */ hostProperties = /** @type {?} */ ((_this._bindingParser.createDirectiveHostPropertyAsts(directive, elementName, sourceSpan)));\n // Note: We need to check the host properties here as well,\n // as we don't know the element name in the DirectiveWrapperCompiler yet.\n hostProperties = _this._checkPropertiesInSchema(elementName, hostProperties);\n var /** @type {?} */ hostEvents = /** @type {?} */ ((_this._bindingParser.createDirectiveHostEventAsts(directive, sourceSpan)));\n _this._createDirectivePropertyAsts(directive.inputs, props, directiveProperties, targetBoundDirectivePropNames);\n elementOrDirectiveRefs.forEach(function (elOrDirRef) {\n if ((elOrDirRef.value.length === 0 && directive.isComponent) ||\n (elOrDirRef.isReferenceToDirective(directive))) {\n targetReferences.push(new ReferenceAst(elOrDirRef.name, createTokenForReference(directive.type.reference), elOrDirRef.sourceSpan));\n matchedReferences.add(elOrDirRef.name);\n }\n });\n var /** @type {?} */ contentQueryStartId = _this.contentQueryStartId;\n _this.contentQueryStartId += directive.queries.length;\n return new DirectiveAst(directive, directiveProperties, hostProperties, hostEvents, contentQueryStartId, sourceSpan);\n });\n elementOrDirectiveRefs.forEach(function (elOrDirRef) {\n if (elOrDirRef.value.length > 0) {\n if (!matchedReferences.has(elOrDirRef.name)) {\n _this._reportError(\"There is no directive with \\\"exportAs\\\" set to \\\"\" + elOrDirRef.value + \"\\\"\", elOrDirRef.sourceSpan);\n }\n }\n else if (!component) {\n var /** @type {?} */ refToken = /** @type {?} */ ((null));\n if (isTemplateElement) {\n refToken = createTokenForExternalReference(_this.reflector, Identifiers.TemplateRef);\n }\n targetReferences.push(new ReferenceAst(elOrDirRef.name, refToken, elOrDirRef.sourceSpan));\n }\n });\n return directiveAsts;\n };\n /**\n * @param {?} directiveProperties\n * @param {?} boundProps\n * @param {?} targetBoundDirectiveProps\n * @param {?} targetBoundDirectivePropNames\n * @return {?}\n */\n TemplateParseVisitor.prototype._createDirectivePropertyAsts = /**\n * @param {?} directiveProperties\n * @param {?} boundProps\n * @param {?} targetBoundDirectiveProps\n * @param {?} targetBoundDirectivePropNames\n * @return {?}\n */\n function (directiveProperties, boundProps, targetBoundDirectiveProps, targetBoundDirectivePropNames) {\n if (directiveProperties) {\n var /** @type {?} */ boundPropsByName_1 = new Map();\n boundProps.forEach(function (boundProp) {\n var /** @type {?} */ prevValue = boundPropsByName_1.get(boundProp.name);\n if (!prevValue || prevValue.isLiteral) {\n // give [a]=\"b\" a higher precedence than a=\"b\" on the same element\n // give [a]=\"b\" a higher precedence than a=\"b\" on the same element\n boundPropsByName_1.set(boundProp.name, boundProp);\n }\n });\n Object.keys(directiveProperties).forEach(function (dirProp) {\n var /** @type {?} */ elProp = directiveProperties[dirProp];\n var /** @type {?} */ boundProp = boundPropsByName_1.get(elProp);\n // Bindings are optional, so this binding only needs to be set up if an expression is given.\n if (boundProp) {\n targetBoundDirectivePropNames.add(boundProp.name);\n if (!isEmptyExpression(boundProp.expression)) {\n targetBoundDirectiveProps.push(new BoundDirectivePropertyAst(dirProp, boundProp.name, boundProp.expression, boundProp.sourceSpan));\n }\n }\n });\n }\n };\n /**\n * @param {?} elementName\n * @param {?} props\n * @param {?} boundDirectivePropNames\n * @return {?}\n */\n TemplateParseVisitor.prototype._createElementPropertyAsts = /**\n * @param {?} elementName\n * @param {?} props\n * @param {?} boundDirectivePropNames\n * @return {?}\n */\n function (elementName, props, boundDirectivePropNames) {\n var _this = this;\n var /** @type {?} */ boundElementProps = [];\n props.forEach(function (prop) {\n if (!prop.isLiteral && !boundDirectivePropNames.has(prop.name)) {\n boundElementProps.push(_this._bindingParser.createElementPropertyAst(elementName, prop));\n }\n });\n return this._checkPropertiesInSchema(elementName, boundElementProps);\n };\n /**\n * @param {?} directives\n * @return {?}\n */\n TemplateParseVisitor.prototype._findComponentDirectives = /**\n * @param {?} directives\n * @return {?}\n */\n function (directives) {\n return directives.filter(function (directive) { return directive.directive.isComponent; });\n };\n /**\n * @param {?} directives\n * @return {?}\n */\n TemplateParseVisitor.prototype._findComponentDirectiveNames = /**\n * @param {?} directives\n * @return {?}\n */\n function (directives) {\n return this._findComponentDirectives(directives)\n .map(function (directive) { return ((identifierName(directive.directive.type))); });\n };\n /**\n * @param {?} directives\n * @param {?} sourceSpan\n * @return {?}\n */\n TemplateParseVisitor.prototype._assertOnlyOneComponent = /**\n * @param {?} directives\n * @param {?} sourceSpan\n * @return {?}\n */\n function (directives, sourceSpan) {\n var /** @type {?} */ componentTypeNames = this._findComponentDirectiveNames(directives);\n if (componentTypeNames.length > 1) {\n this._reportError(\"More than one component matched on this element.\\n\" +\n \"Make sure that only one component's selector can match a given element.\\n\" +\n (\"Conflicting components: \" + componentTypeNames.join(',')), sourceSpan);\n }\n };\n /**\n * Make sure that non-angular tags conform to the schemas.\n *\n * Note: An element is considered an angular tag when at least one directive selector matches the\n * tag name.\n *\n * @param {?} matchElement Whether any directive has matched on the tag name\n * @param {?} element the html element\n * @return {?}\n */\n TemplateParseVisitor.prototype._assertElementExists = /**\n * Make sure that non-angular tags conform to the schemas.\n *\n * Note: An element is considered an angular tag when at least one directive selector matches the\n * tag name.\n *\n * @param {?} matchElement Whether any directive has matched on the tag name\n * @param {?} element the html element\n * @return {?}\n */\n function (matchElement, element) {\n var /** @type {?} */ elName = element.name.replace(/^:xhtml:/, '');\n if (!matchElement && !this._schemaRegistry.hasElement(elName, this._schemas)) {\n var /** @type {?} */ errorMsg = \"'\" + elName + \"' is not a known element:\\n\";\n errorMsg +=\n \"1. If '\" + elName + \"' is an Angular component, then verify that it is part of this module.\\n\";\n if (elName.indexOf('-') > -1) {\n errorMsg +=\n \"2. If '\" + elName + \"' is a Web Component then add 'CUSTOM_ELEMENTS_SCHEMA' to the '@NgModule.schemas' of this component to suppress this message.\";\n }\n else {\n errorMsg +=\n \"2. To allow any element add 'NO_ERRORS_SCHEMA' to the '@NgModule.schemas' of this component.\";\n }\n this._reportError(errorMsg, /** @type {?} */ ((element.sourceSpan)));\n }\n };\n /**\n * @param {?} directives\n * @param {?} elementProps\n * @param {?} sourceSpan\n * @return {?}\n */\n TemplateParseVisitor.prototype._assertNoComponentsNorElementBindingsOnTemplate = /**\n * @param {?} directives\n * @param {?} elementProps\n * @param {?} sourceSpan\n * @return {?}\n */\n function (directives, elementProps, sourceSpan) {\n var _this = this;\n var /** @type {?} */ componentTypeNames = this._findComponentDirectiveNames(directives);\n if (componentTypeNames.length > 0) {\n this._reportError(\"Components on an embedded template: \" + componentTypeNames.join(','), sourceSpan);\n }\n elementProps.forEach(function (prop) {\n _this._reportError(\"Property binding \" + prop.name + \" not used by any directive on an embedded template. Make sure that the property name is spelled correctly and all directives are listed in the \\\"@NgModule.declarations\\\".\", sourceSpan);\n });\n };\n /**\n * @param {?} directives\n * @param {?} events\n * @return {?}\n */\n TemplateParseVisitor.prototype._assertAllEventsPublishedByDirectives = /**\n * @param {?} directives\n * @param {?} events\n * @return {?}\n */\n function (directives, events) {\n var _this = this;\n var /** @type {?} */ allDirectiveEvents = new Set();\n directives.forEach(function (directive) {\n Object.keys(directive.directive.outputs).forEach(function (k) {\n var /** @type {?} */ eventName = directive.directive.outputs[k];\n allDirectiveEvents.add(eventName);\n });\n });\n events.forEach(function (event) {\n if (event.target != null || !allDirectiveEvents.has(event.name)) {\n _this._reportError(\"Event binding \" + event.fullName + \" not emitted by any directive on an embedded template. Make sure that the event name is spelled correctly and all directives are listed in the \\\"@NgModule.declarations\\\".\", event.sourceSpan);\n }\n });\n };\n /**\n * @param {?} elementName\n * @param {?} boundProps\n * @return {?}\n */\n TemplateParseVisitor.prototype._checkPropertiesInSchema = /**\n * @param {?} elementName\n * @param {?} boundProps\n * @return {?}\n */\n function (elementName, boundProps) {\n var _this = this;\n // Note: We can't filter out empty expressions before this method,\n // as we still want to validate them!\n return boundProps.filter(function (boundProp) {\n if (boundProp.type === PropertyBindingType.Property &&\n !_this._schemaRegistry.hasProperty(elementName, boundProp.name, _this._schemas)) {\n var /** @type {?} */ errorMsg = \"Can't bind to '\" + boundProp.name + \"' since it isn't a known property of '\" + elementName + \"'.\";\n if (elementName.startsWith('ng-')) {\n errorMsg +=\n \"\\n1. If '\" + boundProp.name + \"' is an Angular directive, then add 'CommonModule' to the '@NgModule.imports' of this component.\" +\n \"\\n2. To allow any property add 'NO_ERRORS_SCHEMA' to the '@NgModule.schemas' of this component.\";\n }\n else if (elementName.indexOf('-') > -1) {\n errorMsg +=\n \"\\n1. If '\" + elementName + \"' is an Angular component and it has '\" + boundProp.name + \"' input, then verify that it is part of this module.\" +\n (\"\\n2. If '\" + elementName + \"' is a Web Component then add 'CUSTOM_ELEMENTS_SCHEMA' to the '@NgModule.schemas' of this component to suppress this message.\") +\n \"\\n3. To allow any property add 'NO_ERRORS_SCHEMA' to the '@NgModule.schemas' of this component.\";\n }\n _this._reportError(errorMsg, boundProp.sourceSpan);\n }\n return !isEmptyExpression(boundProp.value);\n });\n };\n /**\n * @param {?} message\n * @param {?} sourceSpan\n * @param {?=} level\n * @return {?}\n */\n TemplateParseVisitor.prototype._reportError = /**\n * @param {?} message\n * @param {?} sourceSpan\n * @param {?=} level\n * @return {?}\n */\n function (message, sourceSpan, level) {\n if (level === void 0) { level = ParseErrorLevel.ERROR; }\n this._targetErrors.push(new ParseError(sourceSpan, message, level));\n };\n return TemplateParseVisitor;\n}());\nfunction TemplateParseVisitor_tsickle_Closure_declarations() {\n /** @type {?} */\n TemplateParseVisitor.prototype.selectorMatcher;\n /** @type {?} */\n TemplateParseVisitor.prototype.directivesIndex;\n /** @type {?} */\n TemplateParseVisitor.prototype.ngContentCount;\n /** @type {?} */\n TemplateParseVisitor.prototype.contentQueryStartId;\n /** @type {?} */\n TemplateParseVisitor.prototype.reflector;\n /** @type {?} */\n TemplateParseVisitor.prototype.config;\n /** @type {?} */\n TemplateParseVisitor.prototype.providerViewContext;\n /** @type {?} */\n TemplateParseVisitor.prototype._bindingParser;\n /** @type {?} */\n TemplateParseVisitor.prototype._schemaRegistry;\n /** @type {?} */\n TemplateParseVisitor.prototype._schemas;\n /** @type {?} */\n TemplateParseVisitor.prototype._targetErrors;\n}\nvar NonBindableVisitor = /** @class */ (function () {\n function NonBindableVisitor() {\n }\n /**\n * @param {?} ast\n * @param {?} parent\n * @return {?}\n */\n NonBindableVisitor.prototype.visitElement = /**\n * @param {?} ast\n * @param {?} parent\n * @return {?}\n */\n function (ast, parent) {\n var /** @type {?} */ preparsedElement = preparseElement(ast);\n if (preparsedElement.type === PreparsedElementType.SCRIPT ||\n preparsedElement.type === PreparsedElementType.STYLE ||\n preparsedElement.type === PreparsedElementType.STYLESHEET) {\n // Skipping <script> for security reasons\n // Skipping <style> and stylesheets as we already processed them\n // in the StyleCompiler\n return null;\n }\n var /** @type {?} */ attrNameAndValues = ast.attrs.map(function (attr) { return [attr.name, attr.value]; });\n var /** @type {?} */ selector = createElementCssSelector(ast.name, attrNameAndValues);\n var /** @type {?} */ ngContentIndex = parent.findNgContentIndex(selector);\n var /** @type {?} */ children = html.visitAll(this, ast.children, EMPTY_ELEMENT_CONTEXT);\n return new ElementAst(ast.name, html.visitAll(this, ast.attrs), [], [], [], [], [], false, [], children, ngContentIndex, ast.sourceSpan, ast.endSourceSpan);\n };\n /**\n * @param {?} comment\n * @param {?} context\n * @return {?}\n */\n NonBindableVisitor.prototype.visitComment = /**\n * @param {?} comment\n * @param {?} context\n * @return {?}\n */\n function (comment, context) { return null; };\n /**\n * @param {?} attribute\n * @param {?} context\n * @return {?}\n */\n NonBindableVisitor.prototype.visitAttribute = /**\n * @param {?} attribute\n * @param {?} context\n * @return {?}\n */\n function (attribute, context) {\n return new AttrAst(attribute.name, attribute.value, attribute.sourceSpan);\n };\n /**\n * @param {?} text\n * @param {?} parent\n * @return {?}\n */\n NonBindableVisitor.prototype.visitText = /**\n * @param {?} text\n * @param {?} parent\n * @return {?}\n */\n function (text, parent) {\n var /** @type {?} */ ngContentIndex = /** @type {?} */ ((parent.findNgContentIndex(TEXT_CSS_SELECTOR)));\n return new TextAst(text.value, ngContentIndex, /** @type {?} */ ((text.sourceSpan)));\n };\n /**\n * @param {?} expansion\n * @param {?} context\n * @return {?}\n */\n NonBindableVisitor.prototype.visitExpansion = /**\n * @param {?} expansion\n * @param {?} context\n * @return {?}\n */\n function (expansion, context) { return expansion; };\n /**\n * @param {?} expansionCase\n * @param {?} context\n * @return {?}\n */\n NonBindableVisitor.prototype.visitExpansionCase = /**\n * @param {?} expansionCase\n * @param {?} context\n * @return {?}\n */\n function (expansionCase, context) { return expansionCase; };\n return NonBindableVisitor;\n}());\n/**\n * A reference to an element or directive in a template. E.g., the reference in this template:\n *\n * <div #myMenu=\"coolMenu\">\n *\n * would be {name: 'myMenu', value: 'coolMenu', sourceSpan: ...}\n */\nvar /**\n * A reference to an element or directive in a template. E.g., the reference in this template:\n *\n * <div #myMenu=\"coolMenu\">\n *\n * would be {name: 'myMenu', value: 'coolMenu', sourceSpan: ...}\n */\nElementOrDirectiveRef = /** @class */ (function () {\n function ElementOrDirectiveRef(name, value, sourceSpan) {\n this.name = name;\n this.value = value;\n this.sourceSpan = sourceSpan;\n }\n /** Gets whether this is a reference to the given directive. */\n /**\n * Gets whether this is a reference to the given directive.\n * @param {?} directive\n * @return {?}\n */\n ElementOrDirectiveRef.prototype.isReferenceToDirective = /**\n * Gets whether this is a reference to the given directive.\n * @param {?} directive\n * @return {?}\n */\n function (directive) {\n return splitExportAs(directive.exportAs).indexOf(this.value) !== -1;\n };\n return ElementOrDirectiveRef;\n}());\nfunction ElementOrDirectiveRef_tsickle_Closure_declarations() {\n /** @type {?} */\n ElementOrDirectiveRef.prototype.name;\n /** @type {?} */\n ElementOrDirectiveRef.prototype.value;\n /** @type {?} */\n ElementOrDirectiveRef.prototype.sourceSpan;\n}\n/**\n * Splits a raw, potentially comma-delimted `exportAs` value into an array of names.\n * @param {?} exportAs\n * @return {?}\n */\nfunction splitExportAs(exportAs) {\n return exportAs ? exportAs.split(',').map(function (e) { return e.trim(); }) : [];\n}\n/**\n * @param {?} classAttrValue\n * @return {?}\n */\nexport function splitClasses(classAttrValue) {\n return classAttrValue.trim().split(/\\s+/g);\n}\nvar ElementContext = /** @class */ (function () {\n function ElementContext(isTemplateElement, _ngContentIndexMatcher, _wildcardNgContentIndex, providerContext) {\n this.isTemplateElement = isTemplateElement;\n this._ngContentIndexMatcher = _ngContentIndexMatcher;\n this._wildcardNgContentIndex = _wildcardNgContentIndex;\n this.providerContext = providerContext;\n }\n /**\n * @param {?} isTemplateElement\n * @param {?} directives\n * @param {?} providerContext\n * @return {?}\n */\n ElementContext.create = /**\n * @param {?} isTemplateElement\n * @param {?} directives\n * @param {?} providerContext\n * @return {?}\n */\n function (isTemplateElement, directives, providerContext) {\n var /** @type {?} */ matcher = new SelectorMatcher();\n var /** @type {?} */ wildcardNgContentIndex = /** @type {?} */ ((null));\n var /** @type {?} */ component = directives.find(function (directive) { return directive.directive.isComponent; });\n if (component) {\n var /** @type {?} */ ngContentSelectors = /** @type {?} */ ((component.directive.template)).ngContentSelectors;\n for (var /** @type {?} */ i = 0; i < ngContentSelectors.length; i++) {\n var /** @type {?} */ selector = ngContentSelectors[i];\n if (selector === '*') {\n wildcardNgContentIndex = i;\n }\n else {\n matcher.addSelectables(CssSelector.parse(ngContentSelectors[i]), i);\n }\n }\n }\n return new ElementContext(isTemplateElement, matcher, wildcardNgContentIndex, providerContext);\n };\n /**\n * @param {?} selector\n * @return {?}\n */\n ElementContext.prototype.findNgContentIndex = /**\n * @param {?} selector\n * @return {?}\n */\n function (selector) {\n var /** @type {?} */ ngContentIndices = [];\n this._ngContentIndexMatcher.match(selector, function (selector, ngContentIndex) { ngContentIndices.push(ngContentIndex); });\n ngContentIndices.sort();\n if (this._wildcardNgContentIndex != null) {\n ngContentIndices.push(this._wildcardNgContentIndex);\n }\n return ngContentIndices.length > 0 ? ngContentIndices[0] : null;\n };\n return ElementContext;\n}());\nfunction ElementContext_tsickle_Closure_declarations() {\n /** @type {?} */\n ElementContext.prototype.isTemplateElement;\n /** @type {?} */\n ElementContext.prototype._ngContentIndexMatcher;\n /** @type {?} */\n ElementContext.prototype._wildcardNgContentIndex;\n /** @type {?} */\n ElementContext.prototype.providerContext;\n}\n/**\n * @param {?} elementName\n * @param {?} attributes\n * @return {?}\n */\nexport function createElementCssSelector(elementName, attributes) {\n var /** @type {?} */ cssSelector = new CssSelector();\n var /** @type {?} */ elNameNoNs = splitNsName(elementName)[1];\n cssSelector.setElement(elNameNoNs);\n for (var /** @type {?} */ i = 0; i < attributes.length; i++) {\n var /** @type {?} */ attrName = attributes[i][0];\n var /** @type {?} */ attrNameNoNs = splitNsName(attrName)[1];\n var /** @type {?} */ attrValue = attributes[i][1];\n cssSelector.addAttribute(attrNameNoNs, attrValue);\n if (attrName.toLowerCase() == CLASS_ATTR) {\n var /** @type {?} */ classes = splitClasses(attrValue);\n classes.forEach(function (className) { return cssSelector.addClassName(className); });\n }\n }\n return cssSelector;\n}\nvar /** @type {?} */ EMPTY_ELEMENT_CONTEXT = new ElementContext(true, new SelectorMatcher(), null, null);\nvar /** @type {?} */ NON_BINDABLE_VISITOR = new NonBindableVisitor();\n/**\n * @param {?} node\n * @return {?}\n */\nfunction _isEmptyTextNode(node) {\n return node instanceof html.Text && node.value.trim().length == 0;\n}\n/**\n * @template T\n * @param {?} items\n * @return {?}\n */\nexport function removeSummaryDuplicates(items) {\n var /** @type {?} */ map = new Map();\n items.forEach(function (item) {\n if (!map.get(item.type.reference)) {\n map.set(item.type.reference, item);\n }\n });\n return Array.from(map.values());\n}\n/**\n * @param {?} ast\n * @return {?}\n */\nfunction isEmptyExpression(ast) {\n if (ast instanceof ASTWithSource) {\n ast = ast.ast;\n }\n return ast instanceof EmptyExpr;\n}\n/**\n * @param {?} el\n * @param {?} enableLegacyTemplate\n * @param {?} reportDeprecation\n * @return {?}\n */\nfunction isTemplate(el, enableLegacyTemplate, reportDeprecation) {\n if (isNgTemplate(el.name))\n return true;\n var /** @type {?} */ tagNoNs = splitNsName(el.name)[1];\n // `<template>` is HTML and case insensitive\n if (tagNoNs.toLowerCase() === TEMPLATE_ELEMENT) {\n if (enableLegacyTemplate && tagNoNs.toLowerCase() === TEMPLATE_ELEMENT) {\n reportDeprecation(TEMPLATE_ELEMENT_DEPRECATION_WARNING, /** @type {?} */ ((el.sourceSpan)));\n return true;\n }\n }\n return false;\n}\n//# sourceMappingURL=template_parser.js.map","/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this 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 tslib_1 from \"tslib\";\nimport * as cdAst from '../expression_parser/ast';\nimport { Identifiers } from '../identifiers';\nimport * as o from '../output/output_ast';\nvar EventHandlerVars = /** @class */ (function () {\n function EventHandlerVars() {\n }\n EventHandlerVars.event = o.variable('$event');\n return EventHandlerVars;\n}());\nexport { EventHandlerVars };\nfunction EventHandlerVars_tsickle_Closure_declarations() {\n /** @type {?} */\n EventHandlerVars.event;\n}\n/**\n * @record\n */\nexport function LocalResolver() { }\nfunction LocalResolver_tsickle_Closure_declarations() {\n /** @type {?} */\n LocalResolver.prototype.getLocal;\n}\nvar ConvertActionBindingResult = /** @class */ (function () {\n function ConvertActionBindingResult(stmts, allowDefault) {\n this.stmts = stmts;\n this.allowDefault = allowDefault;\n }\n return ConvertActionBindingResult;\n}());\nexport { ConvertActionBindingResult };\nfunction ConvertActionBindingResult_tsickle_Closure_declarations() {\n /** @type {?} */\n ConvertActionBindingResult.prototype.stmts;\n /** @type {?} */\n ConvertActionBindingResult.prototype.allowDefault;\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 * @param {?} localResolver\n * @param {?} implicitReceiver\n * @param {?} action\n * @param {?} bindingId\n * @return {?}\n */\nexport function convertActionBinding(localResolver, implicitReceiver, action, bindingId) {\n if (!localResolver) {\n localResolver = new DefaultLocalResolver();\n }\n var /** @type {?} */ actionWithoutBuiltins = convertPropertyBindingBuiltins({\n createLiteralArrayConverter: function (argCount) {\n // Note: no caching for literal arrays in actions.\n return function (args) { return o.literalArr(args); };\n },\n createLiteralMapConverter: function (keys) {\n // Note: no caching for literal maps in actions.\n return function (values) {\n var /** @type {?} */ entries = keys.map(function (k, i) {\n return ({\n key: k.key,\n value: values[i],\n quoted: k.quoted,\n });\n });\n return o.literalMap(entries);\n };\n },\n createPipeConverter: function (name) {\n throw new Error(\"Illegal State: Actions are not allowed to contain pipes. Pipe: \" + name);\n }\n }, action);\n var /** @type {?} */ visitor = new _AstToIrVisitor(localResolver, implicitReceiver, bindingId);\n var /** @type {?} */ actionStmts = [];\n flattenStatements(actionWithoutBuiltins.visit(visitor, _Mode.Statement), actionStmts);\n prependTemporaryDecls(visitor.temporaryCount, bindingId, actionStmts);\n var /** @type {?} */ lastIndex = actionStmts.length - 1;\n var /** @type {?} */ preventDefaultVar = /** @type {?} */ ((null));\n if (lastIndex >= 0) {\n var /** @type {?} */ lastStatement = actionStmts[lastIndex];\n var /** @type {?} */ returnExpr = convertStmtIntoExpression(lastStatement);\n if (returnExpr) {\n // Note: We need to cast the result of the method call to dynamic,\n // as it might be a void method!\n preventDefaultVar = createPreventDefaultVar(bindingId);\n actionStmts[lastIndex] =\n preventDefaultVar.set(returnExpr.cast(o.DYNAMIC_TYPE).notIdentical(o.literal(false)))\n .toDeclStmt(null, [o.StmtModifier.Final]);\n }\n }\n return new ConvertActionBindingResult(actionStmts, preventDefaultVar);\n}\n/**\n * @record\n */\nexport function BuiltinConverter() { }\nfunction BuiltinConverter_tsickle_Closure_declarations() {\n /* TODO: handle strange member:\n (args: o.Expression[]): o.Expression;\n */\n}\n/**\n * @record\n */\nexport function BuiltinConverterFactory() { }\nfunction BuiltinConverterFactory_tsickle_Closure_declarations() {\n /** @type {?} */\n BuiltinConverterFactory.prototype.createLiteralArrayConverter;\n /** @type {?} */\n BuiltinConverterFactory.prototype.createLiteralMapConverter;\n /** @type {?} */\n BuiltinConverterFactory.prototype.createPipeConverter;\n}\n/**\n * @param {?} converterFactory\n * @param {?} ast\n * @return {?}\n */\nexport function convertPropertyBindingBuiltins(converterFactory, ast) {\n return convertBuiltins(converterFactory, ast);\n}\nvar ConvertPropertyBindingResult = /** @class */ (function () {\n function ConvertPropertyBindingResult(stmts, currValExpr) {\n this.stmts = stmts;\n this.currValExpr = currValExpr;\n }\n return ConvertPropertyBindingResult;\n}());\nexport { ConvertPropertyBindingResult };\nfunction ConvertPropertyBindingResult_tsickle_Closure_declarations() {\n /** @type {?} */\n ConvertPropertyBindingResult.prototype.stmts;\n /** @type {?} */\n ConvertPropertyBindingResult.prototype.currValExpr;\n}\n/** @enum {number} */\nvar BindingForm = {\n // The general form of binding expression, supports all expressions.\n General: 0,\n // Try to generate a simple binding (no temporaries or statements)\n // otherise generate a general binding\n TrySimple: 1,\n};\nexport { BindingForm };\nBindingForm[BindingForm.General] = \"General\";\nBindingForm[BindingForm.TrySimple] = \"TrySimple\";\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 * @param {?} localResolver\n * @param {?} implicitReceiver\n * @param {?} expressionWithoutBuiltins\n * @param {?} bindingId\n * @param {?} form\n * @return {?}\n */\nexport function convertPropertyBinding(localResolver, implicitReceiver, expressionWithoutBuiltins, bindingId, form) {\n if (!localResolver) {\n localResolver = new DefaultLocalResolver();\n }\n var /** @type {?} */ currValExpr = createCurrValueExpr(bindingId);\n var /** @type {?} */ stmts = [];\n var /** @type {?} */ visitor = new _AstToIrVisitor(localResolver, implicitReceiver, bindingId);\n var /** @type {?} */ outputExpr = expressionWithoutBuiltins.visit(visitor, _Mode.Expression);\n if (visitor.temporaryCount) {\n for (var /** @type {?} */ i = 0; i < visitor.temporaryCount; i++) {\n stmts.push(temporaryDeclaration(bindingId, i));\n }\n }\n else if (form == BindingForm.TrySimple) {\n return new ConvertPropertyBindingResult([], outputExpr);\n }\n stmts.push(currValExpr.set(outputExpr).toDeclStmt(o.DYNAMIC_TYPE, [o.StmtModifier.Final]));\n return new ConvertPropertyBindingResult(stmts, currValExpr);\n}\n/**\n * @param {?} converterFactory\n * @param {?} ast\n * @return {?}\n */\nfunction convertBuiltins(converterFactory, ast) {\n var /** @type {?} */ visitor = new _BuiltinAstConverter(converterFactory);\n return ast.visit(visitor);\n}\n/**\n * @param {?} bindingId\n * @param {?} temporaryNumber\n * @return {?}\n */\nfunction temporaryName(bindingId, temporaryNumber) {\n return \"tmp_\" + bindingId + \"_\" + temporaryNumber;\n}\n/**\n * @param {?} bindingId\n * @param {?} temporaryNumber\n * @return {?}\n */\nexport function temporaryDeclaration(bindingId, temporaryNumber) {\n return new o.DeclareVarStmt(temporaryName(bindingId, temporaryNumber), o.NULL_EXPR);\n}\n/**\n * @param {?} temporaryCount\n * @param {?} bindingId\n * @param {?} statements\n * @return {?}\n */\nfunction prependTemporaryDecls(temporaryCount, bindingId, statements) {\n for (var /** @type {?} */ i = temporaryCount - 1; i >= 0; i--) {\n statements.unshift(temporaryDeclaration(bindingId, i));\n }\n}\n/** @enum {number} */\nvar _Mode = {\n Statement: 0,\n Expression: 1,\n};\n_Mode[_Mode.Statement] = \"Statement\";\n_Mode[_Mode.Expression] = \"Expression\";\n/**\n * @param {?} mode\n * @param {?} ast\n * @return {?}\n */\nfunction ensureStatementMode(mode, ast) {\n if (mode !== _Mode.Statement) {\n throw new Error(\"Expected a statement, but saw \" + ast);\n }\n}\n/**\n * @param {?} mode\n * @param {?} ast\n * @return {?}\n */\nfunction ensureExpressionMode(mode, ast) {\n if (mode !== _Mode.Expression) {\n throw new Error(\"Expected an expression, but saw \" + ast);\n }\n}\n/**\n * @param {?} mode\n * @param {?} expr\n * @return {?}\n */\nfunction convertToStatementIfNeeded(mode, expr) {\n if (mode === _Mode.Statement) {\n return expr.toStmt();\n }\n else {\n return expr;\n }\n}\nvar _BuiltinAstConverter = /** @class */ (function (_super) {\n tslib_1.__extends(_BuiltinAstConverter, _super);\n function _BuiltinAstConverter(_converterFactory) {\n var _this = _super.call(this) || this;\n _this._converterFactory = _converterFactory;\n return _this;\n }\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n _BuiltinAstConverter.prototype.visitPipe = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) {\n var _this = this;\n var /** @type {?} */ args = [ast.exp].concat(ast.args).map(function (ast) { return ast.visit(_this, context); });\n return new BuiltinFunctionCall(ast.span, args, this._converterFactory.createPipeConverter(ast.name, args.length));\n };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n _BuiltinAstConverter.prototype.visitLiteralArray = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) {\n var _this = this;\n var /** @type {?} */ args = ast.expressions.map(function (ast) { return ast.visit(_this, context); });\n return new BuiltinFunctionCall(ast.span, args, this._converterFactory.createLiteralArrayConverter(ast.expressions.length));\n };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n _BuiltinAstConverter.prototype.visitLiteralMap = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) {\n var _this = this;\n var /** @type {?} */ args = ast.values.map(function (ast) { return ast.visit(_this, context); });\n return new BuiltinFunctionCall(ast.span, args, this._converterFactory.createLiteralMapConverter(ast.keys));\n };\n return _BuiltinAstConverter;\n}(cdAst.AstTransformer));\nfunction _BuiltinAstConverter_tsickle_Closure_declarations() {\n /** @type {?} */\n _BuiltinAstConverter.prototype._converterFactory;\n}\nvar _AstToIrVisitor = /** @class */ (function () {\n function _AstToIrVisitor(_localResolver, _implicitReceiver, bindingId) {\n this._localResolver = _localResolver;\n this._implicitReceiver = _implicitReceiver;\n this.bindingId = bindingId;\n this._nodeMap = new Map();\n this._resultMap = new Map();\n this._currentTemporary = 0;\n this.temporaryCount = 0;\n }\n /**\n * @param {?} ast\n * @param {?} mode\n * @return {?}\n */\n _AstToIrVisitor.prototype.visitBinary = /**\n * @param {?} ast\n * @param {?} mode\n * @return {?}\n */\n function (ast, mode) {\n var /** @type {?} */ op;\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 default:\n throw new Error(\"Unsupported operation \" + ast.operation);\n }\n return convertToStatementIfNeeded(mode, new o.BinaryOperatorExpr(op, this._visit(ast.left, _Mode.Expression), this._visit(ast.right, _Mode.Expression)));\n };\n /**\n * @param {?} ast\n * @param {?} mode\n * @return {?}\n */\n _AstToIrVisitor.prototype.visitChain = /**\n * @param {?} ast\n * @param {?} mode\n * @return {?}\n */\n function (ast, mode) {\n ensureStatementMode(mode, ast);\n return this.visitAll(ast.expressions, mode);\n };\n /**\n * @param {?} ast\n * @param {?} mode\n * @return {?}\n */\n _AstToIrVisitor.prototype.visitConditional = /**\n * @param {?} ast\n * @param {?} mode\n * @return {?}\n */\n function (ast, mode) {\n var /** @type {?} */ value = this._visit(ast.condition, _Mode.Expression);\n return convertToStatementIfNeeded(mode, value.conditional(this._visit(ast.trueExp, _Mode.Expression), this._visit(ast.falseExp, _Mode.Expression)));\n };\n /**\n * @param {?} ast\n * @param {?} mode\n * @return {?}\n */\n _AstToIrVisitor.prototype.visitPipe = /**\n * @param {?} ast\n * @param {?} mode\n * @return {?}\n */\n function (ast, mode) {\n throw new Error(\"Illegal state: Pipes should have been converted into functions. Pipe: \" + ast.name);\n };\n /**\n * @param {?} ast\n * @param {?} mode\n * @return {?}\n */\n _AstToIrVisitor.prototype.visitFunctionCall = /**\n * @param {?} ast\n * @param {?} mode\n * @return {?}\n */\n function (ast, mode) {\n var /** @type {?} */ convertedArgs = this.visitAll(ast.args, _Mode.Expression);\n var /** @type {?} */ fnResult;\n if (ast instanceof BuiltinFunctionCall) {\n fnResult = ast.converter(convertedArgs);\n }\n else {\n fnResult = this._visit(/** @type {?} */ ((ast.target)), _Mode.Expression).callFn(convertedArgs);\n }\n return convertToStatementIfNeeded(mode, fnResult);\n };\n /**\n * @param {?} ast\n * @param {?} mode\n * @return {?}\n */\n _AstToIrVisitor.prototype.visitImplicitReceiver = /**\n * @param {?} ast\n * @param {?} mode\n * @return {?}\n */\n function (ast, mode) {\n ensureExpressionMode(mode, ast);\n return this._implicitReceiver;\n };\n /**\n * @param {?} ast\n * @param {?} mode\n * @return {?}\n */\n _AstToIrVisitor.prototype.visitInterpolation = /**\n * @param {?} ast\n * @param {?} mode\n * @return {?}\n */\n function (ast, mode) {\n ensureExpressionMode(mode, ast);\n var /** @type {?} */ args = [o.literal(ast.expressions.length)];\n for (var /** @type {?} */ 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 return ast.expressions.length <= 9 ?\n o.importExpr(Identifiers.inlineInterpolate).callFn(args) :\n o.importExpr(Identifiers.interpolate).callFn([args[0], o.literalArr(args.slice(1))]);\n };\n /**\n * @param {?} ast\n * @param {?} mode\n * @return {?}\n */\n _AstToIrVisitor.prototype.visitKeyedRead = /**\n * @param {?} ast\n * @param {?} mode\n * @return {?}\n */\n function (ast, mode) {\n var /** @type {?} */ leftMostSafe = this.leftMostSafeNode(ast);\n if (leftMostSafe) {\n return this.convertSafeAccess(ast, leftMostSafe, mode);\n }\n else {\n return convertToStatementIfNeeded(mode, this._visit(ast.obj, _Mode.Expression).key(this._visit(ast.key, _Mode.Expression)));\n }\n };\n /**\n * @param {?} ast\n * @param {?} mode\n * @return {?}\n */\n _AstToIrVisitor.prototype.visitKeyedWrite = /**\n * @param {?} ast\n * @param {?} mode\n * @return {?}\n */\n function (ast, mode) {\n var /** @type {?} */ obj = this._visit(ast.obj, _Mode.Expression);\n var /** @type {?} */ key = this._visit(ast.key, _Mode.Expression);\n var /** @type {?} */ value = this._visit(ast.value, _Mode.Expression);\n return convertToStatementIfNeeded(mode, obj.key(key).set(value));\n };\n /**\n * @param {?} ast\n * @param {?} mode\n * @return {?}\n */\n _AstToIrVisitor.prototype.visitLiteralArray = /**\n * @param {?} ast\n * @param {?} mode\n * @return {?}\n */\n function (ast, mode) {\n throw new Error(\"Illegal State: literal arrays should have been converted into functions\");\n };\n /**\n * @param {?} ast\n * @param {?} mode\n * @return {?}\n */\n _AstToIrVisitor.prototype.visitLiteralMap = /**\n * @param {?} ast\n * @param {?} mode\n * @return {?}\n */\n function (ast, mode) {\n throw new Error(\"Illegal State: literal maps should have been converted into functions\");\n };\n /**\n * @param {?} ast\n * @param {?} mode\n * @return {?}\n */\n _AstToIrVisitor.prototype.visitLiteralPrimitive = /**\n * @param {?} ast\n * @param {?} mode\n * @return {?}\n */\n function (ast, mode) {\n // For literal values of null, undefined, true, or false allow type inteference\n // to infer the type.\n var /** @type {?} */ type = ast.value === null || ast.value === undefined || ast.value === true || ast.value === true ?\n o.INFERRED_TYPE :\n undefined;\n return convertToStatementIfNeeded(mode, o.literal(ast.value, type));\n };\n /**\n * @param {?} name\n * @return {?}\n */\n _AstToIrVisitor.prototype._getLocal = /**\n * @param {?} name\n * @return {?}\n */\n function (name) { return this._localResolver.getLocal(name); };\n /**\n * @param {?} ast\n * @param {?} mode\n * @return {?}\n */\n _AstToIrVisitor.prototype.visitMethodCall = /**\n * @param {?} ast\n * @param {?} mode\n * @return {?}\n */\n function (ast, mode) {\n if (ast.receiver instanceof cdAst.ImplicitReceiver && ast.name == '$any') {\n var /** @type {?} */ args = /** @type {?} */ (this.visitAll(ast.args, _Mode.Expression));\n if (args.length != 1) {\n throw new Error(\"Invalid call to $any, expected 1 argument but received \" + (args.length || 'none'));\n }\n return (/** @type {?} */ (args[0])).cast(o.DYNAMIC_TYPE);\n }\n var /** @type {?} */ leftMostSafe = this.leftMostSafeNode(ast);\n if (leftMostSafe) {\n return this.convertSafeAccess(ast, leftMostSafe, mode);\n }\n else {\n var /** @type {?} */ args = this.visitAll(ast.args, _Mode.Expression);\n var /** @type {?} */ result = null;\n var /** @type {?} */ receiver = this._visit(ast.receiver, _Mode.Expression);\n if (receiver === this._implicitReceiver) {\n var /** @type {?} */ varExpr = this._getLocal(ast.name);\n if (varExpr) {\n result = varExpr.callFn(args);\n }\n }\n if (result == null) {\n result = receiver.callMethod(ast.name, args);\n }\n return convertToStatementIfNeeded(mode, result);\n }\n };\n /**\n * @param {?} ast\n * @param {?} mode\n * @return {?}\n */\n _AstToIrVisitor.prototype.visitPrefixNot = /**\n * @param {?} ast\n * @param {?} mode\n * @return {?}\n */\n function (ast, mode) {\n return convertToStatementIfNeeded(mode, o.not(this._visit(ast.expression, _Mode.Expression)));\n };\n /**\n * @param {?} ast\n * @param {?} mode\n * @return {?}\n */\n _AstToIrVisitor.prototype.visitNonNullAssert = /**\n * @param {?} ast\n * @param {?} mode\n * @return {?}\n */\n function (ast, mode) {\n return convertToStatementIfNeeded(mode, o.assertNotNull(this._visit(ast.expression, _Mode.Expression)));\n };\n /**\n * @param {?} ast\n * @param {?} mode\n * @return {?}\n */\n _AstToIrVisitor.prototype.visitPropertyRead = /**\n * @param {?} ast\n * @param {?} mode\n * @return {?}\n */\n function (ast, mode) {\n var /** @type {?} */ leftMostSafe = this.leftMostSafeNode(ast);\n if (leftMostSafe) {\n return this.convertSafeAccess(ast, leftMostSafe, mode);\n }\n else {\n var /** @type {?} */ result = null;\n var /** @type {?} */ receiver = this._visit(ast.receiver, _Mode.Expression);\n if (receiver === this._implicitReceiver) {\n result = this._getLocal(ast.name);\n }\n if (result == null) {\n result = receiver.prop(ast.name);\n }\n return convertToStatementIfNeeded(mode, result);\n }\n };\n /**\n * @param {?} ast\n * @param {?} mode\n * @return {?}\n */\n _AstToIrVisitor.prototype.visitPropertyWrite = /**\n * @param {?} ast\n * @param {?} mode\n * @return {?}\n */\n function (ast, mode) {\n var /** @type {?} */ receiver = this._visit(ast.receiver, _Mode.Expression);\n if (receiver === this._implicitReceiver) {\n var /** @type {?} */ varExpr = this._getLocal(ast.name);\n if (varExpr) {\n throw new Error('Cannot assign to a reference or variable!');\n }\n }\n return convertToStatementIfNeeded(mode, receiver.prop(ast.name).set(this._visit(ast.value, _Mode.Expression)));\n };\n /**\n * @param {?} ast\n * @param {?} mode\n * @return {?}\n */\n _AstToIrVisitor.prototype.visitSafePropertyRead = /**\n * @param {?} ast\n * @param {?} mode\n * @return {?}\n */\n function (ast, mode) {\n return this.convertSafeAccess(ast, this.leftMostSafeNode(ast), mode);\n };\n /**\n * @param {?} ast\n * @param {?} mode\n * @return {?}\n */\n _AstToIrVisitor.prototype.visitSafeMethodCall = /**\n * @param {?} ast\n * @param {?} mode\n * @return {?}\n */\n function (ast, mode) {\n return this.convertSafeAccess(ast, this.leftMostSafeNode(ast), mode);\n };\n /**\n * @param {?} asts\n * @param {?} mode\n * @return {?}\n */\n _AstToIrVisitor.prototype.visitAll = /**\n * @param {?} asts\n * @param {?} mode\n * @return {?}\n */\n function (asts, mode) {\n var _this = this;\n return asts.map(function (ast) { return _this._visit(ast, mode); });\n };\n /**\n * @param {?} ast\n * @param {?} mode\n * @return {?}\n */\n _AstToIrVisitor.prototype.visitQuote = /**\n * @param {?} ast\n * @param {?} mode\n * @return {?}\n */\n function (ast, mode) {\n throw new Error(\"Quotes are not supported for evaluation!\\n Statement: \" + ast.uninterpretedExpression + \" located at \" + ast.location);\n };\n /**\n * @param {?} ast\n * @param {?} mode\n * @return {?}\n */\n _AstToIrVisitor.prototype._visit = /**\n * @param {?} ast\n * @param {?} mode\n * @return {?}\n */\n function (ast, mode) {\n var /** @type {?} */ result = this._resultMap.get(ast);\n if (result)\n return result;\n return (this._nodeMap.get(ast) || ast).visit(this, mode);\n };\n /**\n * @param {?} ast\n * @param {?} leftMostSafe\n * @param {?} mode\n * @return {?}\n */\n _AstToIrVisitor.prototype.convertSafeAccess = /**\n * @param {?} ast\n * @param {?} leftMostSafe\n * @param {?} mode\n * @return {?}\n */\n function (ast, leftMostSafe, mode) {\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 the left part of the\n // expression up to test it for blank before generating the unguarded version.\n // Consider, for example the following expression: a?.b.c?.d.e\n // This results in the ast:\n // .\n // / \\\n // ?. e\n // / \\\n // . d\n // / \\\n // ?. c\n // / \\\n // a b\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 var /** @type {?} */ guardedExpression = this._visit(leftMostSafe.receiver, _Mode.Expression);\n var /** @type {?} */ temporary = /** @type {?} */ ((undefined));\n if (this.needsTemporary(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 // Preserve the result in the temporary variable\n guardedExpression = temporary.set(guardedExpression);\n // Ensure all further references to the guarded expression refer to the temporary instead.\n this._resultMap.set(leftMostSafe.receiver, temporary);\n }\n var /** @type {?} */ condition = guardedExpression.isBlank();\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.SafeMethodCall) {\n this._nodeMap.set(leftMostSafe, new cdAst.MethodCall(leftMostSafe.span, leftMostSafe.receiver, leftMostSafe.name, leftMostSafe.args));\n }\n else {\n this._nodeMap.set(leftMostSafe, new cdAst.PropertyRead(leftMostSafe.span, leftMostSafe.receiver, leftMostSafe.name));\n }\n // Recursively convert the node now without the guarded member access.\n var /** @type {?} */ access = this._visit(ast, _Mode.Expression);\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 // If we allocated a temporary, release it.\n if (temporary) {\n this.releaseTemporary(temporary);\n }\n // Produce the conditional\n return convertToStatementIfNeeded(mode, condition.conditional(o.literal(null), access));\n };\n /**\n * @param {?} ast\n * @return {?}\n */\n _AstToIrVisitor.prototype.leftMostSafeNode = /**\n * @param {?} ast\n * @return {?}\n */\n function (ast) {\n var _this = this;\n var /** @type {?} */ visit = function (visitor, ast) {\n return (_this._nodeMap.get(ast) || ast).visit(visitor);\n };\n return ast.visit({\n visitBinary: /**\n * @param {?} ast\n * @return {?}\n */\n function (ast) { return null; },\n visitChain: /**\n * @param {?} ast\n * @return {?}\n */\n function (ast) { return null; },\n visitConditional: /**\n * @param {?} ast\n * @return {?}\n */\n function (ast) { return null; },\n visitFunctionCall: /**\n * @param {?} ast\n * @return {?}\n */\n function (ast) { return null; },\n visitImplicitReceiver: /**\n * @param {?} ast\n * @return {?}\n */\n function (ast) { return null; },\n visitInterpolation: /**\n * @param {?} ast\n * @return {?}\n */\n function (ast) { return null; },\n visitKeyedRead: /**\n * @param {?} ast\n * @return {?}\n */\n function (ast) { return visit(this, ast.obj); },\n visitKeyedWrite: /**\n * @param {?} ast\n * @return {?}\n */\n function (ast) { return null; },\n visitLiteralArray: /**\n * @param {?} ast\n * @return {?}\n */\n function (ast) { return null; },\n visitLiteralMap: /**\n * @param {?} ast\n * @return {?}\n */\n function (ast) { return null; },\n visitLiteralPrimitive: /**\n * @param {?} ast\n * @return {?}\n */\n function (ast) { return null; },\n visitMethodCall: /**\n * @param {?} ast\n * @return {?}\n */\n function (ast) { return visit(this, ast.receiver); },\n visitPipe: /**\n * @param {?} ast\n * @return {?}\n */\n function (ast) { return null; },\n visitPrefixNot: /**\n * @param {?} ast\n * @return {?}\n */\n function (ast) { return null; },\n visitNonNullAssert: /**\n * @param {?} ast\n * @return {?}\n */\n function (ast) { return null; },\n visitPropertyRead: /**\n * @param {?} ast\n * @return {?}\n */\n function (ast) { return visit(this, ast.receiver); },\n visitPropertyWrite: /**\n * @param {?} ast\n * @return {?}\n */\n function (ast) { return null; },\n visitQuote: /**\n * @param {?} ast\n * @return {?}\n */\n function (ast) { return null; },\n visitSafeMethodCall: /**\n * @param {?} ast\n * @return {?}\n */\n function (ast) { return visit(this, ast.receiver) || ast; },\n visitSafePropertyRead: /**\n * @param {?} ast\n * @return {?}\n */\n function (ast) {\n return visit(this, ast.receiver) || ast;\n }\n });\n };\n /**\n * @param {?} ast\n * @return {?}\n */\n _AstToIrVisitor.prototype.needsTemporary = /**\n * @param {?} ast\n * @return {?}\n */\n function (ast) {\n var _this = this;\n var /** @type {?} */ visit = function (visitor, ast) {\n return ast && (_this._nodeMap.get(ast) || ast).visit(visitor);\n };\n var /** @type {?} */ visitSome = function (visitor, ast) {\n return ast.some(function (ast) { return visit(visitor, ast); });\n };\n return ast.visit({\n visitBinary: /**\n * @param {?} ast\n * @return {?}\n */\n function (ast) { return visit(this, ast.left) || visit(this, ast.right); },\n visitChain: /**\n * @param {?} ast\n * @return {?}\n */\n function (ast) { return false; },\n visitConditional: /**\n * @param {?} ast\n * @return {?}\n */\n function (ast) {\n return visit(this, ast.condition) || visit(this, ast.trueExp) ||\n visit(this, ast.falseExp);\n },\n visitFunctionCall: /**\n * @param {?} ast\n * @return {?}\n */\n function (ast) { return true; },\n visitImplicitReceiver: /**\n * @param {?} ast\n * @return {?}\n */\n function (ast) { return false; },\n visitInterpolation: /**\n * @param {?} ast\n * @return {?}\n */\n function (ast) { return visitSome(this, ast.expressions); },\n visitKeyedRead: /**\n * @param {?} ast\n * @return {?}\n */\n function (ast) { return false; },\n visitKeyedWrite: /**\n * @param {?} ast\n * @return {?}\n */\n function (ast) { return false; },\n visitLiteralArray: /**\n * @param {?} ast\n * @return {?}\n */\n function (ast) { return true; },\n visitLiteralMap: /**\n * @param {?} ast\n * @return {?}\n */\n function (ast) { return true; },\n visitLiteralPrimitive: /**\n * @param {?} ast\n * @return {?}\n */\n function (ast) { return false; },\n visitMethodCall: /**\n * @param {?} ast\n * @return {?}\n */\n function (ast) { return true; },\n visitPipe: /**\n * @param {?} ast\n * @return {?}\n */\n function (ast) { return true; },\n visitPrefixNot: /**\n * @param {?} ast\n * @return {?}\n */\n function (ast) { return visit(this, ast.expression); },\n visitNonNullAssert: /**\n * @param {?} ast\n * @return {?}\n */\n function (ast) { return visit(this, ast.expression); },\n visitPropertyRead: /**\n * @param {?} ast\n * @return {?}\n */\n function (ast) { return false; },\n visitPropertyWrite: /**\n * @param {?} ast\n * @return {?}\n */\n function (ast) { return false; },\n visitQuote: /**\n * @param {?} ast\n * @return {?}\n */\n function (ast) { return false; },\n visitSafeMethodCall: /**\n * @param {?} ast\n * @return {?}\n */\n function (ast) { return true; },\n visitSafePropertyRead: /**\n * @param {?} ast\n * @return {?}\n */\n function (ast) { return false; }\n });\n };\n /**\n * @return {?}\n */\n _AstToIrVisitor.prototype.allocateTemporary = /**\n * @return {?}\n */\n function () {\n var /** @type {?} */ tempNumber = this._currentTemporary++;\n this.temporaryCount = Math.max(this._currentTemporary, this.temporaryCount);\n return new o.ReadVarExpr(temporaryName(this.bindingId, tempNumber));\n };\n /**\n * @param {?} temporary\n * @return {?}\n */\n _AstToIrVisitor.prototype.releaseTemporary = /**\n * @param {?} temporary\n * @return {?}\n */\n function (temporary) {\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 return _AstToIrVisitor;\n}());\nfunction _AstToIrVisitor_tsickle_Closure_declarations() {\n /** @type {?} */\n _AstToIrVisitor.prototype._nodeMap;\n /** @type {?} */\n _AstToIrVisitor.prototype._resultMap;\n /** @type {?} */\n _AstToIrVisitor.prototype._currentTemporary;\n /** @type {?} */\n _AstToIrVisitor.prototype.temporaryCount;\n /** @type {?} */\n _AstToIrVisitor.prototype._localResolver;\n /** @type {?} */\n _AstToIrVisitor.prototype._implicitReceiver;\n /** @type {?} */\n _AstToIrVisitor.prototype.bindingId;\n}\n/**\n * @param {?} arg\n * @param {?} output\n * @return {?}\n */\nfunction flattenStatements(arg, output) {\n if (Array.isArray(arg)) {\n (/** @type {?} */ (arg)).forEach(function (entry) { return flattenStatements(entry, output); });\n }\n else {\n output.push(arg);\n }\n}\nvar DefaultLocalResolver = /** @class */ (function () {\n function DefaultLocalResolver() {\n }\n /**\n * @param {?} name\n * @return {?}\n */\n DefaultLocalResolver.prototype.getLocal = /**\n * @param {?} name\n * @return {?}\n */\n function (name) {\n if (name === EventHandlerVars.event.name) {\n return EventHandlerVars.event;\n }\n return null;\n };\n return DefaultLocalResolver;\n}());\n/**\n * @param {?} bindingId\n * @return {?}\n */\nfunction createCurrValueExpr(bindingId) {\n return o.variable(\"currVal_\" + bindingId); // fix syntax highlighting: `\n}\n/**\n * @param {?} bindingId\n * @return {?}\n */\nfunction createPreventDefaultVar(bindingId) {\n return o.variable(\"pd_\" + bindingId);\n}\n/**\n * @param {?} stmt\n * @return {?}\n */\nfunction convertStmtIntoExpression(stmt) {\n if (stmt instanceof o.ExpressionStatement) {\n return stmt.expr;\n }\n else if (stmt instanceof o.ReturnStatement) {\n return stmt.value;\n }\n return null;\n}\nvar BuiltinFunctionCall = /** @class */ (function (_super) {\n tslib_1.__extends(BuiltinFunctionCall, _super);\n function BuiltinFunctionCall(span, args, converter) {\n var _this = _super.call(this, span, null, args) || this;\n _this.args = args;\n _this.converter = converter;\n return _this;\n }\n return BuiltinFunctionCall;\n}(cdAst.FunctionCall));\nfunction BuiltinFunctionCall_tsickle_Closure_declarations() {\n /** @type {?} */\n BuiltinFunctionCall.prototype.args;\n /** @type {?} */\n BuiltinFunctionCall.prototype.converter;\n}\n//# sourceMappingURL=expression_converter.js.map","/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this 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 { StaticSymbol } from '../aot/static_symbol';\nimport { BindingForm, EventHandlerVars, convertActionBinding, convertPropertyBinding, convertPropertyBindingBuiltins } from '../compiler_util/expression_converter';\nimport * as o from '../output/output_ast';\nimport { templateVisitAll } from '../template_parser/template_ast';\n/**\n * Generates code that is used to type check templates.\n */\nvar /**\n * Generates code that is used to type check templates.\n */\nTypeCheckCompiler = /** @class */ (function () {\n function TypeCheckCompiler(options, reflector) {\n this.options = options;\n this.reflector = reflector;\n }\n /**\n * Important notes:\n * - This must not produce new `import` statements, but only refer to types outside\n * of the file via the variables provided via externalReferenceVars.\n * This allows Typescript to reuse the old program's structure as no imports have changed.\n * - This must not produce any exports, as this would pollute the .d.ts file\n * and also violate the point above.\n */\n /**\n * Important notes:\n * - This must not produce new `import` statements, but only refer to types outside\n * of the file via the variables provided via externalReferenceVars.\n * This allows Typescript to reuse the old program's structure as no imports have changed.\n * - This must not produce any exports, as this would pollute the .d.ts file\n * and also violate the point above.\n * @param {?} componentId\n * @param {?} component\n * @param {?} template\n * @param {?} usedPipes\n * @param {?} externalReferenceVars\n * @param {?} ctx\n * @return {?}\n */\n TypeCheckCompiler.prototype.compileComponent = /**\n * Important notes:\n * - This must not produce new `import` statements, but only refer to types outside\n * of the file via the variables provided via externalReferenceVars.\n * This allows Typescript to reuse the old program's structure as no imports have changed.\n * - This must not produce any exports, as this would pollute the .d.ts file\n * and also violate the point above.\n * @param {?} componentId\n * @param {?} component\n * @param {?} template\n * @param {?} usedPipes\n * @param {?} externalReferenceVars\n * @param {?} ctx\n * @return {?}\n */\n function (componentId, component, template, usedPipes, externalReferenceVars, ctx) {\n var _this = this;\n var /** @type {?} */ pipes = new Map();\n usedPipes.forEach(function (p) { return pipes.set(p.name, p.type.reference); });\n var /** @type {?} */ embeddedViewCount = 0;\n var /** @type {?} */ viewBuilderFactory = function (parent, guards) {\n var /** @type {?} */ embeddedViewIndex = embeddedViewCount++;\n return new ViewBuilder(_this.options, _this.reflector, externalReferenceVars, parent, component.type.reference, component.isHost, embeddedViewIndex, pipes, guards, ctx, viewBuilderFactory);\n };\n var /** @type {?} */ visitor = viewBuilderFactory(null, []);\n visitor.visitAll([], template);\n return visitor.build(componentId);\n };\n return TypeCheckCompiler;\n}());\n/**\n * Generates code that is used to type check templates.\n */\nexport { TypeCheckCompiler };\nfunction TypeCheckCompiler_tsickle_Closure_declarations() {\n /** @type {?} */\n TypeCheckCompiler.prototype.options;\n /** @type {?} */\n TypeCheckCompiler.prototype.reflector;\n}\n/**\n * @record\n */\nfunction GuardExpression() { }\nfunction GuardExpression_tsickle_Closure_declarations() {\n /** @type {?} */\n GuardExpression.prototype.guard;\n /** @type {?} */\n GuardExpression.prototype.useIf;\n /** @type {?} */\n GuardExpression.prototype.expression;\n}\n/**\n * @record\n */\nfunction ViewBuilderFactory() { }\nfunction ViewBuilderFactory_tsickle_Closure_declarations() {\n /* TODO: handle strange member:\n (parent: ViewBuilder, guards: GuardExpression[]): ViewBuilder;\n */\n}\n/**\n * @record\n */\nfunction Expression() { }\nfunction Expression_tsickle_Closure_declarations() {\n /** @type {?} */\n Expression.prototype.context;\n /** @type {?} */\n Expression.prototype.sourceSpan;\n /** @type {?} */\n Expression.prototype.value;\n}\nvar /** @type {?} */ DYNAMIC_VAR_NAME = '_any';\nvar TypeCheckLocalResolver = /** @class */ (function () {\n function TypeCheckLocalResolver() {\n }\n /**\n * @param {?} name\n * @return {?}\n */\n TypeCheckLocalResolver.prototype.getLocal = /**\n * @param {?} name\n * @return {?}\n */\n function (name) {\n if (name === EventHandlerVars.event.name) {\n // References to the event should not be type-checked.\n // TODO(chuckj): determine a better type for the event.\n return o.variable(DYNAMIC_VAR_NAME);\n }\n return null;\n };\n return TypeCheckLocalResolver;\n}());\nvar /** @type {?} */ defaultResolver = new TypeCheckLocalResolver();\nvar ViewBuilder = /** @class */ (function () {\n function ViewBuilder(options, reflector, externalReferenceVars, parent, component, isHostComponent, embeddedViewIndex, pipes, guards, ctx, viewBuilderFactory) {\n this.options = options;\n this.reflector = reflector;\n this.externalReferenceVars = externalReferenceVars;\n this.parent = parent;\n this.component = component;\n this.isHostComponent = isHostComponent;\n this.embeddedViewIndex = embeddedViewIndex;\n this.pipes = pipes;\n this.guards = guards;\n this.ctx = ctx;\n this.viewBuilderFactory = viewBuilderFactory;\n this.refOutputVars = new Map();\n this.variables = [];\n this.children = [];\n this.updates = [];\n this.actions = [];\n }\n /**\n * @param {?} type\n * @return {?}\n */\n ViewBuilder.prototype.getOutputVar = /**\n * @param {?} type\n * @return {?}\n */\n function (type) {\n var /** @type {?} */ varName;\n if (type === this.component && this.isHostComponent) {\n varName = DYNAMIC_VAR_NAME;\n }\n else if (type instanceof StaticSymbol) {\n varName = this.externalReferenceVars.get(type);\n }\n else {\n varName = DYNAMIC_VAR_NAME;\n }\n if (!varName) {\n throw new Error(\"Illegal State: referring to a type without a variable \" + JSON.stringify(type));\n }\n return varName;\n };\n /**\n * @param {?} ast\n * @return {?}\n */\n ViewBuilder.prototype.getTypeGuardExpressions = /**\n * @param {?} ast\n * @return {?}\n */\n function (ast) {\n var /** @type {?} */ result = this.guards.slice();\n for (var _i = 0, _a = ast.directives; _i < _a.length; _i++) {\n var directive = _a[_i];\n for (var _b = 0, _c = directive.inputs; _b < _c.length; _b++) {\n var input = _c[_b];\n var /** @type {?} */ guard = directive.directive.guards[input.directiveName];\n if (guard) {\n var /** @type {?} */ useIf = guard === 'UseIf';\n result.push({\n guard: guard,\n useIf: useIf,\n expression: /** @type {?} */ ({ context: this.component, value: input.value })\n });\n }\n }\n }\n return result;\n };\n /**\n * @param {?} variables\n * @param {?} astNodes\n * @return {?}\n */\n ViewBuilder.prototype.visitAll = /**\n * @param {?} variables\n * @param {?} astNodes\n * @return {?}\n */\n function (variables, astNodes) {\n this.variables = variables;\n templateVisitAll(this, astNodes);\n };\n /**\n * @param {?} componentId\n * @param {?=} targetStatements\n * @return {?}\n */\n ViewBuilder.prototype.build = /**\n * @param {?} componentId\n * @param {?=} targetStatements\n * @return {?}\n */\n function (componentId, targetStatements) {\n var _this = this;\n if (targetStatements === void 0) { targetStatements = []; }\n this.children.forEach(function (child) { return child.build(componentId, targetStatements); });\n var /** @type {?} */ viewStmts = [o.variable(DYNAMIC_VAR_NAME).set(o.NULL_EXPR).toDeclStmt(o.DYNAMIC_TYPE)];\n var /** @type {?} */ bindingCount = 0;\n this.updates.forEach(function (expression) {\n var _a = _this.preprocessUpdateExpression(expression), sourceSpan = _a.sourceSpan, context = _a.context, value = _a.value;\n var /** @type {?} */ bindingId = \"\" + bindingCount++;\n var /** @type {?} */ nameResolver = context === _this.component ? _this : defaultResolver;\n var _b = convertPropertyBinding(nameResolver, o.variable(_this.getOutputVar(context)), value, bindingId, BindingForm.General), stmts = _b.stmts, currValExpr = _b.currValExpr;\n stmts.push(new o.ExpressionStatement(currValExpr));\n viewStmts.push.apply(viewStmts, stmts.map(function (stmt) { return o.applySourceSpanToStatementIfNeeded(stmt, sourceSpan); }));\n });\n this.actions.forEach(function (_a) {\n var sourceSpan = _a.sourceSpan, context = _a.context, value = _a.value;\n var /** @type {?} */ bindingId = \"\" + bindingCount++;\n var /** @type {?} */ nameResolver = context === _this.component ? _this : defaultResolver;\n var stmts = convertActionBinding(nameResolver, o.variable(_this.getOutputVar(context)), value, bindingId).stmts;\n viewStmts.push.apply(viewStmts, stmts.map(function (stmt) { return o.applySourceSpanToStatementIfNeeded(stmt, sourceSpan); }));\n });\n if (this.guards.length) {\n var /** @type {?} */ guardExpression = undefined;\n for (var _i = 0, _a = this.guards; _i < _a.length; _i++) {\n var guard = _a[_i];\n var _b = this.preprocessUpdateExpression(guard.expression), context = _b.context, value = _b.value;\n var /** @type {?} */ bindingId = \"\" + bindingCount++;\n var /** @type {?} */ nameResolver = context === this.component ? this : defaultResolver;\n // We only support support simple expressions and ignore others as they\n // are unlikely to affect type narrowing.\n var _c = convertPropertyBinding(nameResolver, o.variable(this.getOutputVar(context)), value, bindingId, BindingForm.TrySimple), stmts = _c.stmts, currValExpr = _c.currValExpr;\n if (stmts.length == 0) {\n var /** @type {?} */ guardClause = guard.useIf ? currValExpr : this.ctx.importExpr(guard.guard).callFn([currValExpr]);\n guardExpression = guardExpression ? guardExpression.and(guardClause) : guardClause;\n }\n }\n if (guardExpression) {\n viewStmts = [new o.IfStmt(guardExpression, viewStmts)];\n }\n }\n var /** @type {?} */ viewName = \"_View_\" + componentId + \"_\" + this.embeddedViewIndex;\n var /** @type {?} */ viewFactory = new o.DeclareFunctionStmt(viewName, [], viewStmts);\n targetStatements.push(viewFactory);\n return targetStatements;\n };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n ViewBuilder.prototype.visitBoundText = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) {\n var _this = this;\n var /** @type {?} */ astWithSource = /** @type {?} */ (ast.value);\n var /** @type {?} */ inter = /** @type {?} */ (astWithSource.ast);\n inter.expressions.forEach(function (expr) {\n return _this.updates.push({ context: _this.component, value: expr, sourceSpan: ast.sourceSpan });\n });\n };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n ViewBuilder.prototype.visitEmbeddedTemplate = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) {\n this.visitElementOrTemplate(ast);\n // Note: The old view compiler used to use an `any` type\n // for the context in any embedded view.\n // We keep this behaivor behind a flag for now.\n if (this.options.fullTemplateTypeCheck) {\n // Find any applicable type guards. For example, NgIf has a type guard on ngIf\n // (see NgIf.ngIfTypeGuard) that can be used to indicate that a template is only\n // stamped out if ngIf is truthy so any bindings in the template can assume that,\n // if a nullable type is used for ngIf, that expression is not null or undefined.\n var /** @type {?} */ guards = this.getTypeGuardExpressions(ast);\n var /** @type {?} */ childVisitor = this.viewBuilderFactory(this, guards);\n this.children.push(childVisitor);\n childVisitor.visitAll(ast.variables, ast.children);\n }\n };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n ViewBuilder.prototype.visitElement = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) {\n var _this = this;\n this.visitElementOrTemplate(ast);\n var /** @type {?} */ inputDefs = [];\n var /** @type {?} */ updateRendererExpressions = [];\n var /** @type {?} */ outputDefs = [];\n ast.inputs.forEach(function (inputAst) {\n _this.updates.push({ context: _this.component, value: inputAst.value, sourceSpan: inputAst.sourceSpan });\n });\n templateVisitAll(this, ast.children);\n };\n /**\n * @param {?} ast\n * @return {?}\n */\n ViewBuilder.prototype.visitElementOrTemplate = /**\n * @param {?} ast\n * @return {?}\n */\n function (ast) {\n var _this = this;\n ast.directives.forEach(function (dirAst) { _this.visitDirective(dirAst); });\n ast.references.forEach(function (ref) {\n var /** @type {?} */ outputVarType = /** @type {?} */ ((null));\n // Note: The old view compiler used to use an `any` type\n // for directives exposed via `exportAs`.\n // We keep this behaivor behind a flag for now.\n if (ref.value && ref.value.identifier && _this.options.fullTemplateTypeCheck) {\n outputVarType = ref.value.identifier.reference;\n }\n else {\n outputVarType = o.BuiltinTypeName.Dynamic;\n }\n _this.refOutputVars.set(ref.name, outputVarType);\n });\n ast.outputs.forEach(function (outputAst) {\n _this.actions.push({ context: _this.component, value: outputAst.handler, sourceSpan: outputAst.sourceSpan });\n });\n };\n /**\n * @param {?} dirAst\n * @return {?}\n */\n ViewBuilder.prototype.visitDirective = /**\n * @param {?} dirAst\n * @return {?}\n */\n function (dirAst) {\n var _this = this;\n var /** @type {?} */ dirType = dirAst.directive.type.reference;\n dirAst.inputs.forEach(function (input) {\n return _this.updates.push({ context: _this.component, value: input.value, sourceSpan: input.sourceSpan });\n });\n // Note: The old view compiler used to use an `any` type\n // for expressions in host properties / events.\n // We keep this behaivor behind a flag for now.\n if (this.options.fullTemplateTypeCheck) {\n dirAst.hostProperties.forEach(function (inputAst) {\n return _this.updates.push({ context: dirType, value: inputAst.value, sourceSpan: inputAst.sourceSpan });\n });\n dirAst.hostEvents.forEach(function (hostEventAst) {\n return _this.actions.push({\n context: dirType,\n value: hostEventAst.handler,\n sourceSpan: hostEventAst.sourceSpan\n });\n });\n }\n };\n /**\n * @param {?} name\n * @return {?}\n */\n ViewBuilder.prototype.getLocal = /**\n * @param {?} name\n * @return {?}\n */\n function (name) {\n if (name == EventHandlerVars.event.name) {\n return o.variable(this.getOutputVar(o.BuiltinTypeName.Dynamic));\n }\n for (var /** @type {?} */ currBuilder = this; currBuilder; currBuilder = currBuilder.parent) {\n var /** @type {?} */ outputVarType = void 0;\n // check references\n outputVarType = currBuilder.refOutputVars.get(name);\n if (outputVarType == null) {\n // check variables\n var /** @type {?} */ varAst = currBuilder.variables.find(function (varAst) { return varAst.name === name; });\n if (varAst) {\n outputVarType = o.BuiltinTypeName.Dynamic;\n }\n }\n if (outputVarType != null) {\n return o.variable(this.getOutputVar(outputVarType));\n }\n }\n return null;\n };\n /**\n * @param {?} name\n * @return {?}\n */\n ViewBuilder.prototype.pipeOutputVar = /**\n * @param {?} name\n * @return {?}\n */\n function (name) {\n var /** @type {?} */ pipe = this.pipes.get(name);\n if (!pipe) {\n throw new Error(\"Illegal State: Could not find pipe \" + name + \" in template of \" + this.component);\n }\n return this.getOutputVar(pipe);\n };\n /**\n * @param {?} expression\n * @return {?}\n */\n ViewBuilder.prototype.preprocessUpdateExpression = /**\n * @param {?} expression\n * @return {?}\n */\n function (expression) {\n var _this = this;\n return {\n sourceSpan: expression.sourceSpan,\n context: expression.context,\n value: convertPropertyBindingBuiltins({\n createLiteralArrayConverter: function (argCount) {\n return function (args) {\n var /** @type {?} */ arr = o.literalArr(args);\n // Note: The old view compiler used to use an `any` type\n // for arrays.\n return _this.options.fullTemplateTypeCheck ? arr : arr.cast(o.DYNAMIC_TYPE);\n };\n },\n createLiteralMapConverter: function (keys) {\n return function (values) {\n var /** @type {?} */ entries = keys.map(function (k, i) {\n return ({\n key: k.key,\n value: values[i],\n quoted: k.quoted,\n });\n });\n var /** @type {?} */ map = o.literalMap(entries);\n // Note: The old view compiler used to use an `any` type\n // for maps.\n return _this.options.fullTemplateTypeCheck ? map : map.cast(o.DYNAMIC_TYPE);\n };\n },\n createPipeConverter: function (name, argCount) {\n return function (args) {\n // Note: The old view compiler used to use an `any` type\n // for pipes.\n var /** @type {?} */ pipeExpr = _this.options.fullTemplateTypeCheck ?\n o.variable(_this.pipeOutputVar(name)) :\n o.variable(_this.getOutputVar(o.BuiltinTypeName.Dynamic));\n return pipeExpr.callMethod('transform', args);\n };\n },\n }, expression.value)\n };\n };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n ViewBuilder.prototype.visitNgContent = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) { };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n ViewBuilder.prototype.visitText = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) { };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n ViewBuilder.prototype.visitDirectiveProperty = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) { };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n ViewBuilder.prototype.visitReference = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) { };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n ViewBuilder.prototype.visitVariable = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) { };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n ViewBuilder.prototype.visitEvent = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) { };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n ViewBuilder.prototype.visitElementProperty = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) { };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n ViewBuilder.prototype.visitAttr = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) { };\n return ViewBuilder;\n}());\nfunction ViewBuilder_tsickle_Closure_declarations() {\n /** @type {?} */\n ViewBuilder.prototype.refOutputVars;\n /** @type {?} */\n ViewBuilder.prototype.variables;\n /** @type {?} */\n ViewBuilder.prototype.children;\n /** @type {?} */\n ViewBuilder.prototype.updates;\n /** @type {?} */\n ViewBuilder.prototype.actions;\n /** @type {?} */\n ViewBuilder.prototype.options;\n /** @type {?} */\n ViewBuilder.prototype.reflector;\n /** @type {?} */\n ViewBuilder.prototype.externalReferenceVars;\n /** @type {?} */\n ViewBuilder.prototype.parent;\n /** @type {?} */\n ViewBuilder.prototype.component;\n /** @type {?} */\n ViewBuilder.prototype.isHostComponent;\n /** @type {?} */\n ViewBuilder.prototype.embeddedViewIndex;\n /** @type {?} */\n ViewBuilder.prototype.pipes;\n /** @type {?} */\n ViewBuilder.prototype.guards;\n /** @type {?} */\n ViewBuilder.prototype.ctx;\n /** @type {?} */\n ViewBuilder.prototype.viewBuilderFactory;\n}\n//# sourceMappingURL=type_check_compiler.js.map","/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this 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 tslib_1 from \"tslib\";\nimport { rendererTypeName, tokenReference, viewClassName } from '../compile_metadata';\nimport { BindingForm, EventHandlerVars, convertActionBinding, convertPropertyBinding, convertPropertyBindingBuiltins } from '../compiler_util/expression_converter';\nimport { ChangeDetectionStrategy } from '../core';\nimport { Identifiers } from '../identifiers';\nimport { LifecycleHooks } from '../lifecycle_reflector';\nimport { isNgContainer } from '../ml_parser/tags';\nimport * as o from '../output/output_ast';\nimport { convertValueToOutputAst } from '../output/value_util';\nimport { ElementAst, EmbeddedTemplateAst, NgContentAst, PropertyBindingType, templateVisitAll } from '../template_parser/template_ast';\nimport { componentFactoryResolverProviderDef, depDef, lifecycleHookToNodeFlag, providerDef } from './provider_compiler';\nvar /** @type {?} */ CLASS_ATTR = 'class';\nvar /** @type {?} */ STYLE_ATTR = 'style';\nvar /** @type {?} */ IMPLICIT_TEMPLATE_VAR = '\\$implicit';\nvar ViewCompileResult = /** @class */ (function () {\n function ViewCompileResult(viewClassVar, rendererTypeVar) {\n this.viewClassVar = viewClassVar;\n this.rendererTypeVar = rendererTypeVar;\n }\n return ViewCompileResult;\n}());\nexport { ViewCompileResult };\nfunction ViewCompileResult_tsickle_Closure_declarations() {\n /** @type {?} */\n ViewCompileResult.prototype.viewClassVar;\n /** @type {?} */\n ViewCompileResult.prototype.rendererTypeVar;\n}\nvar ViewCompiler = /** @class */ (function () {\n function ViewCompiler(_reflector) {\n this._reflector = _reflector;\n }\n /**\n * @param {?} outputCtx\n * @param {?} component\n * @param {?} template\n * @param {?} styles\n * @param {?} usedPipes\n * @return {?}\n */\n ViewCompiler.prototype.compileComponent = /**\n * @param {?} outputCtx\n * @param {?} component\n * @param {?} template\n * @param {?} styles\n * @param {?} usedPipes\n * @return {?}\n */\n function (outputCtx, component, template, styles, usedPipes) {\n var _this = this;\n var /** @type {?} */ embeddedViewCount = 0;\n var /** @type {?} */ staticQueryIds = findStaticQueryIds(template);\n var /** @type {?} */ renderComponentVarName = /** @type {?} */ ((undefined));\n if (!component.isHost) {\n var /** @type {?} */ template_1 = /** @type {?} */ ((component.template));\n var /** @type {?} */ customRenderData = [];\n if (template_1.animations && template_1.animations.length) {\n customRenderData.push(new o.LiteralMapEntry('animation', convertValueToOutputAst(outputCtx, template_1.animations), true));\n }\n var /** @type {?} */ renderComponentVar = o.variable(rendererTypeName(component.type.reference));\n renderComponentVarName = /** @type {?} */ ((renderComponentVar.name));\n outputCtx.statements.push(renderComponentVar\n .set(o.importExpr(Identifiers.createRendererType2).callFn([new o.LiteralMapExpr([\n new o.LiteralMapEntry('encapsulation', o.literal(template_1.encapsulation), false),\n new o.LiteralMapEntry('styles', styles, false),\n new o.LiteralMapEntry('data', new o.LiteralMapExpr(customRenderData), false)\n ])]))\n .toDeclStmt(o.importType(Identifiers.RendererType2), [o.StmtModifier.Final, o.StmtModifier.Exported]));\n }\n var /** @type {?} */ viewBuilderFactory = function (parent) {\n var /** @type {?} */ embeddedViewIndex = embeddedViewCount++;\n return new ViewBuilder(_this._reflector, outputCtx, parent, component, embeddedViewIndex, usedPipes, staticQueryIds, viewBuilderFactory);\n };\n var /** @type {?} */ visitor = viewBuilderFactory(null);\n visitor.visitAll([], template);\n (_a = outputCtx.statements).push.apply(_a, visitor.build());\n return new ViewCompileResult(visitor.viewName, renderComponentVarName);\n var _a;\n };\n return ViewCompiler;\n}());\nexport { ViewCompiler };\nfunction ViewCompiler_tsickle_Closure_declarations() {\n /** @type {?} */\n ViewCompiler.prototype._reflector;\n}\n/**\n * @record\n */\nfunction ViewBuilderFactory() { }\nfunction ViewBuilderFactory_tsickle_Closure_declarations() {\n /* TODO: handle strange member:\n (parent: ViewBuilder): ViewBuilder;\n */\n}\n/**\n * @record\n */\nfunction UpdateExpression() { }\nfunction UpdateExpression_tsickle_Closure_declarations() {\n /** @type {?} */\n UpdateExpression.prototype.context;\n /** @type {?} */\n UpdateExpression.prototype.nodeIndex;\n /** @type {?} */\n UpdateExpression.prototype.bindingIndex;\n /** @type {?} */\n UpdateExpression.prototype.sourceSpan;\n /** @type {?} */\n UpdateExpression.prototype.value;\n}\nvar /** @type {?} */ LOG_VAR = o.variable('_l');\nvar /** @type {?} */ VIEW_VAR = o.variable('_v');\nvar /** @type {?} */ CHECK_VAR = o.variable('_ck');\nvar /** @type {?} */ COMP_VAR = o.variable('_co');\nvar /** @type {?} */ EVENT_NAME_VAR = o.variable('en');\nvar /** @type {?} */ ALLOW_DEFAULT_VAR = o.variable(\"ad\");\nvar ViewBuilder = /** @class */ (function () {\n function ViewBuilder(reflector, outputCtx, parent, component, embeddedViewIndex, usedPipes, staticQueryIds, viewBuilderFactory) {\n this.reflector = reflector;\n this.outputCtx = outputCtx;\n this.parent = parent;\n this.component = component;\n this.embeddedViewIndex = embeddedViewIndex;\n this.usedPipes = usedPipes;\n this.staticQueryIds = staticQueryIds;\n this.viewBuilderFactory = viewBuilderFactory;\n this.nodes = [];\n this.purePipeNodeIndices = Object.create(null);\n this.refNodeIndices = Object.create(null);\n this.variables = [];\n this.children = [];\n // TODO(tbosch): The old view compiler used to use an `any` type\n // for the context in any embedded view. We keep this behaivor for now\n // to be able to introduce the new view compiler without too many errors.\n this.compType = this.embeddedViewIndex > 0 ?\n o.DYNAMIC_TYPE : /** @type {?} */\n ((o.expressionType(outputCtx.importExpr(this.component.type.reference))));\n this.viewName = viewClassName(this.component.type.reference, this.embeddedViewIndex);\n }\n /**\n * @param {?} variables\n * @param {?} astNodes\n * @return {?}\n */\n ViewBuilder.prototype.visitAll = /**\n * @param {?} variables\n * @param {?} astNodes\n * @return {?}\n */\n function (variables, astNodes) {\n var _this = this;\n this.variables = variables;\n // create the pipes for the pure pipes immediately, so that we know their indices.\n if (!this.parent) {\n this.usedPipes.forEach(function (pipe) {\n if (pipe.pure) {\n _this.purePipeNodeIndices[pipe.name] = _this._createPipe(null, pipe);\n }\n });\n }\n if (!this.parent) {\n var /** @type {?} */ queryIds_1 = staticViewQueryIds(this.staticQueryIds);\n this.component.viewQueries.forEach(function (query, queryIndex) {\n // Note: queries start with id 1 so we can use the number in a Bloom filter!\n var /** @type {?} */ queryId = queryIndex + 1;\n var /** @type {?} */ bindingType = query.first ? 0 /* First */ : 1 /* All */;\n var /** @type {?} */ flags = 134217728 /* TypeViewQuery */ | calcStaticDynamicQueryFlags(queryIds_1, queryId, query.first);\n _this.nodes.push(function () {\n return ({\n sourceSpan: null,\n nodeFlags: flags,\n nodeDef: o.importExpr(Identifiers.queryDef).callFn([\n o.literal(flags), o.literal(queryId),\n new o.LiteralMapExpr([new o.LiteralMapEntry(query.propertyName, o.literal(bindingType), false)])\n ])\n });\n });\n });\n }\n templateVisitAll(this, astNodes);\n if (this.parent && (astNodes.length === 0 || needsAdditionalRootNode(astNodes))) {\n // if the view is an embedded view, then we need to add an additional root node in some cases\n this.nodes.push(function () {\n return ({\n sourceSpan: null,\n nodeFlags: 1 /* TypeElement */,\n nodeDef: o.importExpr(Identifiers.anchorDef).callFn([\n o.literal(0 /* None */), o.NULL_EXPR, o.NULL_EXPR, o.literal(0)\n ])\n });\n });\n }\n };\n /**\n * @param {?=} targetStatements\n * @return {?}\n */\n ViewBuilder.prototype.build = /**\n * @param {?=} targetStatements\n * @return {?}\n */\n function (targetStatements) {\n if (targetStatements === void 0) { targetStatements = []; }\n this.children.forEach(function (child) { return child.build(targetStatements); });\n var _a = this._createNodeExpressions(), updateRendererStmts = _a.updateRendererStmts, updateDirectivesStmts = _a.updateDirectivesStmts, nodeDefExprs = _a.nodeDefExprs;\n var /** @type {?} */ updateRendererFn = this._createUpdateFn(updateRendererStmts);\n var /** @type {?} */ updateDirectivesFn = this._createUpdateFn(updateDirectivesStmts);\n var /** @type {?} */ viewFlags = 0 /* None */;\n if (!this.parent && this.component.changeDetection === ChangeDetectionStrategy.OnPush) {\n viewFlags |= 2 /* OnPush */;\n }\n var /** @type {?} */ viewFactory = new o.DeclareFunctionStmt(this.viewName, [new o.FnParam(/** @type {?} */ ((LOG_VAR.name)))], [new o.ReturnStatement(o.importExpr(Identifiers.viewDef).callFn([\n o.literal(viewFlags),\n o.literalArr(nodeDefExprs),\n updateDirectivesFn,\n updateRendererFn,\n ]))], o.importType(Identifiers.ViewDefinition), this.embeddedViewIndex === 0 ? [o.StmtModifier.Exported] : []);\n targetStatements.push(viewFactory);\n return targetStatements;\n };\n /**\n * @param {?} updateStmts\n * @return {?}\n */\n ViewBuilder.prototype._createUpdateFn = /**\n * @param {?} updateStmts\n * @return {?}\n */\n function (updateStmts) {\n var /** @type {?} */ updateFn;\n if (updateStmts.length > 0) {\n var /** @type {?} */ preStmts = [];\n if (!this.component.isHost && o.findReadVarNames(updateStmts).has(/** @type {?} */ ((COMP_VAR.name)))) {\n preStmts.push(COMP_VAR.set(VIEW_VAR.prop('component')).toDeclStmt(this.compType));\n }\n updateFn = o.fn([\n new o.FnParam(/** @type {?} */ ((CHECK_VAR.name)), o.INFERRED_TYPE),\n new o.FnParam(/** @type {?} */ ((VIEW_VAR.name)), o.INFERRED_TYPE)\n ], preStmts.concat(updateStmts), o.INFERRED_TYPE);\n }\n else {\n updateFn = o.NULL_EXPR;\n }\n return updateFn;\n };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n ViewBuilder.prototype.visitNgContent = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) {\n // ngContentDef(ngContentIndex: number, index: number): NodeDef;\n this.nodes.push(function () {\n return ({\n sourceSpan: ast.sourceSpan,\n nodeFlags: 8 /* TypeNgContent */,\n nodeDef: o.importExpr(Identifiers.ngContentDef).callFn([\n o.literal(ast.ngContentIndex), o.literal(ast.index)\n ])\n });\n });\n };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n ViewBuilder.prototype.visitText = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) {\n // Static text nodes have no check function\n var /** @type {?} */ checkIndex = -1;\n this.nodes.push(function () {\n return ({\n sourceSpan: ast.sourceSpan,\n nodeFlags: 2 /* TypeText */,\n nodeDef: o.importExpr(Identifiers.textDef).callFn([\n o.literal(checkIndex),\n o.literal(ast.ngContentIndex),\n o.literalArr([o.literal(ast.value)]),\n ])\n });\n });\n };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n ViewBuilder.prototype.visitBoundText = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) {\n var _this = this;\n var /** @type {?} */ nodeIndex = this.nodes.length;\n // reserve the space in the nodeDefs array\n this.nodes.push(/** @type {?} */ ((null)));\n var /** @type {?} */ astWithSource = /** @type {?} */ (ast.value);\n var /** @type {?} */ inter = /** @type {?} */ (astWithSource.ast);\n var /** @type {?} */ updateRendererExpressions = inter.expressions.map(function (expr, bindingIndex) {\n return _this._preprocessUpdateExpression({ nodeIndex: nodeIndex, bindingIndex: bindingIndex, sourceSpan: ast.sourceSpan, context: COMP_VAR, value: expr });\n });\n // Check index is the same as the node index during compilation\n // They might only differ at runtime\n var /** @type {?} */ checkIndex = nodeIndex;\n this.nodes[nodeIndex] = function () {\n return ({\n sourceSpan: ast.sourceSpan,\n nodeFlags: 2 /* TypeText */,\n nodeDef: o.importExpr(Identifiers.textDef).callFn([\n o.literal(checkIndex),\n o.literal(ast.ngContentIndex),\n o.literalArr(inter.strings.map(function (s) { return o.literal(s); })),\n ]),\n updateRenderer: updateRendererExpressions\n });\n };\n };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n ViewBuilder.prototype.visitEmbeddedTemplate = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) {\n var _this = this;\n var /** @type {?} */ nodeIndex = this.nodes.length;\n // reserve the space in the nodeDefs array\n this.nodes.push(/** @type {?} */ ((null)));\n var _a = this._visitElementOrTemplate(nodeIndex, ast), flags = _a.flags, queryMatchesExpr = _a.queryMatchesExpr, hostEvents = _a.hostEvents;\n var /** @type {?} */ childVisitor = this.viewBuilderFactory(this);\n this.children.push(childVisitor);\n childVisitor.visitAll(ast.variables, ast.children);\n var /** @type {?} */ childCount = this.nodes.length - nodeIndex - 1;\n // anchorDef(\n // flags: NodeFlags, matchedQueries: [string, QueryValueType][], ngContentIndex: number,\n // childCount: number, handleEventFn?: ElementHandleEventFn, templateFactory?:\n // ViewDefinitionFactory): NodeDef;\n this.nodes[nodeIndex] = function () {\n return ({\n sourceSpan: ast.sourceSpan,\n nodeFlags: 1 /* TypeElement */ | flags,\n nodeDef: o.importExpr(Identifiers.anchorDef).callFn([\n o.literal(flags),\n queryMatchesExpr,\n o.literal(ast.ngContentIndex),\n o.literal(childCount),\n _this._createElementHandleEventFn(nodeIndex, hostEvents),\n o.variable(childVisitor.viewName),\n ])\n });\n };\n };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n ViewBuilder.prototype.visitElement = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) {\n var _this = this;\n var /** @type {?} */ nodeIndex = this.nodes.length;\n // reserve the space in the nodeDefs array so we can add children\n this.nodes.push(/** @type {?} */ ((null)));\n // Using a null element name creates an anchor.\n var /** @type {?} */ elName = isNgContainer(ast.name) ? null : ast.name;\n var _a = this._visitElementOrTemplate(nodeIndex, ast), flags = _a.flags, usedEvents = _a.usedEvents, queryMatchesExpr = _a.queryMatchesExpr, dirHostBindings = _a.hostBindings, hostEvents = _a.hostEvents;\n var /** @type {?} */ inputDefs = [];\n var /** @type {?} */ updateRendererExpressions = [];\n var /** @type {?} */ outputDefs = [];\n if (elName) {\n var /** @type {?} */ hostBindings = ast.inputs\n .map(function (inputAst) {\n return ({\n context: /** @type {?} */ (COMP_VAR),\n inputAst: inputAst,\n dirAst: /** @type {?} */ (null),\n });\n })\n .concat(dirHostBindings);\n if (hostBindings.length) {\n updateRendererExpressions =\n hostBindings.map(function (hostBinding, bindingIndex) {\n return _this._preprocessUpdateExpression({\n context: hostBinding.context,\n nodeIndex: nodeIndex,\n bindingIndex: bindingIndex,\n sourceSpan: hostBinding.inputAst.sourceSpan,\n value: hostBinding.inputAst.value\n });\n });\n inputDefs = hostBindings.map(function (hostBinding) { return elementBindingDef(hostBinding.inputAst, hostBinding.dirAst); });\n }\n outputDefs = usedEvents.map(function (_a) {\n var target = _a[0], eventName = _a[1];\n return o.literalArr([o.literal(target), o.literal(eventName)]);\n });\n }\n templateVisitAll(this, ast.children);\n var /** @type {?} */ childCount = this.nodes.length - nodeIndex - 1;\n var /** @type {?} */ compAst = ast.directives.find(function (dirAst) { return dirAst.directive.isComponent; });\n var /** @type {?} */ compRendererType = /** @type {?} */ (o.NULL_EXPR);\n var /** @type {?} */ compView = /** @type {?} */ (o.NULL_EXPR);\n if (compAst) {\n compView = this.outputCtx.importExpr(compAst.directive.componentViewType);\n compRendererType = this.outputCtx.importExpr(compAst.directive.rendererType);\n }\n // Check index is the same as the node index during compilation\n // They might only differ at runtime\n var /** @type {?} */ checkIndex = nodeIndex;\n this.nodes[nodeIndex] = function () {\n return ({\n sourceSpan: ast.sourceSpan,\n nodeFlags: 1 /* TypeElement */ | flags,\n nodeDef: o.importExpr(Identifiers.elementDef).callFn([\n o.literal(checkIndex),\n o.literal(flags),\n queryMatchesExpr,\n o.literal(ast.ngContentIndex),\n o.literal(childCount),\n o.literal(elName),\n elName ? fixedAttrsDef(ast) : o.NULL_EXPR,\n inputDefs.length ? o.literalArr(inputDefs) : o.NULL_EXPR,\n outputDefs.length ? o.literalArr(outputDefs) : o.NULL_EXPR,\n _this._createElementHandleEventFn(nodeIndex, hostEvents),\n compView,\n compRendererType,\n ]),\n updateRenderer: updateRendererExpressions\n });\n };\n };\n /**\n * @param {?} nodeIndex\n * @param {?} ast\n * @return {?}\n */\n ViewBuilder.prototype._visitElementOrTemplate = /**\n * @param {?} nodeIndex\n * @param {?} ast\n * @return {?}\n */\n function (nodeIndex, ast) {\n var _this = this;\n var /** @type {?} */ flags = 0 /* None */;\n if (ast.hasViewContainer) {\n flags |= 16777216 /* EmbeddedViews */;\n }\n var /** @type {?} */ usedEvents = new Map();\n ast.outputs.forEach(function (event) {\n var _a = elementEventNameAndTarget(event, null), name = _a.name, target = _a.target;\n usedEvents.set(elementEventFullName(target, name), [target, name]);\n });\n ast.directives.forEach(function (dirAst) {\n dirAst.hostEvents.forEach(function (event) {\n var _a = elementEventNameAndTarget(event, dirAst), name = _a.name, target = _a.target;\n usedEvents.set(elementEventFullName(target, name), [target, name]);\n });\n });\n var /** @type {?} */ hostBindings = [];\n var /** @type {?} */ hostEvents = [];\n this._visitComponentFactoryResolverProvider(ast.directives);\n ast.providers.forEach(function (providerAst, providerIndex) {\n var /** @type {?} */ dirAst = /** @type {?} */ ((undefined));\n var /** @type {?} */ dirIndex = /** @type {?} */ ((undefined));\n ast.directives.forEach(function (localDirAst, i) {\n if (localDirAst.directive.type.reference === tokenReference(providerAst.token)) {\n dirAst = localDirAst;\n dirIndex = i;\n }\n });\n if (dirAst) {\n var _a = _this._visitDirective(providerAst, dirAst, dirIndex, nodeIndex, ast.references, ast.queryMatches, usedEvents, /** @type {?} */ ((_this.staticQueryIds.get(/** @type {?} */ (ast))))), dirHostBindings = _a.hostBindings, dirHostEvents = _a.hostEvents;\n hostBindings.push.apply(hostBindings, dirHostBindings);\n hostEvents.push.apply(hostEvents, dirHostEvents);\n }\n else {\n _this._visitProvider(providerAst, ast.queryMatches);\n }\n });\n var /** @type {?} */ queryMatchExprs = [];\n ast.queryMatches.forEach(function (match) {\n var /** @type {?} */ valueType = /** @type {?} */ ((undefined));\n if (tokenReference(match.value) ===\n _this.reflector.resolveExternalReference(Identifiers.ElementRef)) {\n valueType = 0 /* ElementRef */;\n }\n else if (tokenReference(match.value) ===\n _this.reflector.resolveExternalReference(Identifiers.ViewContainerRef)) {\n valueType = 3 /* ViewContainerRef */;\n }\n else if (tokenReference(match.value) ===\n _this.reflector.resolveExternalReference(Identifiers.TemplateRef)) {\n valueType = 2 /* TemplateRef */;\n }\n if (valueType != null) {\n queryMatchExprs.push(o.literalArr([o.literal(match.queryId), o.literal(valueType)]));\n }\n });\n ast.references.forEach(function (ref) {\n var /** @type {?} */ valueType = /** @type {?} */ ((undefined));\n if (!ref.value) {\n valueType = 1 /* RenderElement */;\n }\n else if (tokenReference(ref.value) ===\n _this.reflector.resolveExternalReference(Identifiers.TemplateRef)) {\n valueType = 2 /* TemplateRef */;\n }\n if (valueType != null) {\n _this.refNodeIndices[ref.name] = nodeIndex;\n queryMatchExprs.push(o.literalArr([o.literal(ref.name), o.literal(valueType)]));\n }\n });\n ast.outputs.forEach(function (outputAst) {\n hostEvents.push({ context: COMP_VAR, eventAst: outputAst, dirAst: /** @type {?} */ ((null)) });\n });\n return {\n flags: flags,\n usedEvents: Array.from(usedEvents.values()),\n queryMatchesExpr: queryMatchExprs.length ? o.literalArr(queryMatchExprs) : o.NULL_EXPR,\n hostBindings: hostBindings,\n hostEvents: hostEvents\n };\n };\n /**\n * @param {?} providerAst\n * @param {?} dirAst\n * @param {?} directiveIndex\n * @param {?} elementNodeIndex\n * @param {?} refs\n * @param {?} queryMatches\n * @param {?} usedEvents\n * @param {?} queryIds\n * @return {?}\n */\n ViewBuilder.prototype._visitDirective = /**\n * @param {?} providerAst\n * @param {?} dirAst\n * @param {?} directiveIndex\n * @param {?} elementNodeIndex\n * @param {?} refs\n * @param {?} queryMatches\n * @param {?} usedEvents\n * @param {?} queryIds\n * @return {?}\n */\n function (providerAst, dirAst, directiveIndex, elementNodeIndex, refs, queryMatches, usedEvents, queryIds) {\n var _this = this;\n var /** @type {?} */ nodeIndex = this.nodes.length;\n // reserve the space in the nodeDefs array so we can add children\n this.nodes.push(/** @type {?} */ ((null)));\n dirAst.directive.queries.forEach(function (query, queryIndex) {\n var /** @type {?} */ queryId = dirAst.contentQueryStartId + queryIndex;\n var /** @type {?} */ flags = 67108864 /* TypeContentQuery */ | calcStaticDynamicQueryFlags(queryIds, queryId, query.first);\n var /** @type {?} */ bindingType = query.first ? 0 /* First */ : 1 /* All */;\n _this.nodes.push(function () {\n return ({\n sourceSpan: dirAst.sourceSpan,\n nodeFlags: flags,\n nodeDef: o.importExpr(Identifiers.queryDef).callFn([\n o.literal(flags), o.literal(queryId),\n new o.LiteralMapExpr([new o.LiteralMapEntry(query.propertyName, o.literal(bindingType), false)])\n ]),\n });\n });\n });\n // Note: the operation below might also create new nodeDefs,\n // but we don't want them to be a child of a directive,\n // as they might be a provider/pipe on their own.\n // I.e. we only allow queries as children of directives nodes.\n var /** @type {?} */ childCount = this.nodes.length - nodeIndex - 1;\n var _a = this._visitProviderOrDirective(providerAst, queryMatches), flags = _a.flags, queryMatchExprs = _a.queryMatchExprs, providerExpr = _a.providerExpr, depsExpr = _a.depsExpr;\n refs.forEach(function (ref) {\n if (ref.value && tokenReference(ref.value) === tokenReference(providerAst.token)) {\n _this.refNodeIndices[ref.name] = nodeIndex;\n queryMatchExprs.push(o.literalArr([o.literal(ref.name), o.literal(4 /* Provider */)]));\n }\n });\n if (dirAst.directive.isComponent) {\n flags |= 32768 /* Component */;\n }\n var /** @type {?} */ inputDefs = dirAst.inputs.map(function (inputAst, inputIndex) {\n var /** @type {?} */ mapValue = o.literalArr([o.literal(inputIndex), o.literal(inputAst.directiveName)]);\n // Note: it's important to not quote the key so that we can capture renames by minifiers!\n return new o.LiteralMapEntry(inputAst.directiveName, mapValue, false);\n });\n var /** @type {?} */ outputDefs = [];\n var /** @type {?} */ dirMeta = dirAst.directive;\n Object.keys(dirMeta.outputs).forEach(function (propName) {\n var /** @type {?} */ eventName = dirMeta.outputs[propName];\n if (usedEvents.has(eventName)) {\n // Note: it's important to not quote the key so that we can capture renames by minifiers!\n outputDefs.push(new o.LiteralMapEntry(propName, o.literal(eventName), false));\n }\n });\n var /** @type {?} */ updateDirectiveExpressions = [];\n if (dirAst.inputs.length || (flags & (262144 /* DoCheck */ | 65536 /* OnInit */)) > 0) {\n updateDirectiveExpressions =\n dirAst.inputs.map(function (input, bindingIndex) {\n return _this._preprocessUpdateExpression({\n nodeIndex: nodeIndex,\n bindingIndex: bindingIndex,\n sourceSpan: input.sourceSpan,\n context: COMP_VAR,\n value: input.value\n });\n });\n }\n var /** @type {?} */ dirContextExpr = o.importExpr(Identifiers.nodeValue).callFn([VIEW_VAR, o.literal(nodeIndex)]);\n var /** @type {?} */ hostBindings = dirAst.hostProperties.map(function (inputAst) {\n return ({\n context: dirContextExpr,\n dirAst: dirAst,\n inputAst: inputAst,\n });\n });\n var /** @type {?} */ hostEvents = dirAst.hostEvents.map(function (hostEventAst) {\n return ({\n context: dirContextExpr,\n eventAst: hostEventAst, dirAst: dirAst,\n });\n });\n // Check index is the same as the node index during compilation\n // They might only differ at runtime\n var /** @type {?} */ checkIndex = nodeIndex;\n this.nodes[nodeIndex] = function () {\n return ({\n sourceSpan: dirAst.sourceSpan,\n nodeFlags: 16384 /* TypeDirective */ | flags,\n nodeDef: o.importExpr(Identifiers.directiveDef).callFn([\n o.literal(checkIndex),\n o.literal(flags),\n queryMatchExprs.length ? o.literalArr(queryMatchExprs) : o.NULL_EXPR,\n o.literal(childCount),\n providerExpr,\n depsExpr,\n inputDefs.length ? new o.LiteralMapExpr(inputDefs) : o.NULL_EXPR,\n outputDefs.length ? new o.LiteralMapExpr(outputDefs) : o.NULL_EXPR,\n ]),\n updateDirectives: updateDirectiveExpressions,\n directive: dirAst.directive.type,\n });\n };\n return { hostBindings: hostBindings, hostEvents: hostEvents };\n };\n /**\n * @param {?} providerAst\n * @param {?} queryMatches\n * @return {?}\n */\n ViewBuilder.prototype._visitProvider = /**\n * @param {?} providerAst\n * @param {?} queryMatches\n * @return {?}\n */\n function (providerAst, queryMatches) {\n this._addProviderNode(this._visitProviderOrDirective(providerAst, queryMatches));\n };\n /**\n * @param {?} directives\n * @return {?}\n */\n ViewBuilder.prototype._visitComponentFactoryResolverProvider = /**\n * @param {?} directives\n * @return {?}\n */\n function (directives) {\n var /** @type {?} */ componentDirMeta = directives.find(function (dirAst) { return dirAst.directive.isComponent; });\n if (componentDirMeta && componentDirMeta.directive.entryComponents.length) {\n var _a = componentFactoryResolverProviderDef(this.reflector, this.outputCtx, 8192 /* PrivateProvider */, componentDirMeta.directive.entryComponents), providerExpr = _a.providerExpr, depsExpr = _a.depsExpr, flags = _a.flags, tokenExpr = _a.tokenExpr;\n this._addProviderNode({\n providerExpr: providerExpr,\n depsExpr: depsExpr,\n flags: flags,\n tokenExpr: tokenExpr,\n queryMatchExprs: [],\n sourceSpan: componentDirMeta.sourceSpan\n });\n }\n };\n /**\n * @param {?} data\n * @return {?}\n */\n ViewBuilder.prototype._addProviderNode = /**\n * @param {?} data\n * @return {?}\n */\n function (data) {\n var /** @type {?} */ nodeIndex = this.nodes.length;\n // providerDef(\n // flags: NodeFlags, matchedQueries: [string, QueryValueType][], token:any,\n // value: any, deps: ([DepFlags, any] | any)[]): NodeDef;\n this.nodes.push(function () {\n return ({\n sourceSpan: data.sourceSpan,\n nodeFlags: data.flags,\n nodeDef: o.importExpr(Identifiers.providerDef).callFn([\n o.literal(data.flags),\n data.queryMatchExprs.length ? o.literalArr(data.queryMatchExprs) : o.NULL_EXPR,\n data.tokenExpr, data.providerExpr, data.depsExpr\n ])\n });\n });\n };\n /**\n * @param {?} providerAst\n * @param {?} queryMatches\n * @return {?}\n */\n ViewBuilder.prototype._visitProviderOrDirective = /**\n * @param {?} providerAst\n * @param {?} queryMatches\n * @return {?}\n */\n function (providerAst, queryMatches) {\n var /** @type {?} */ flags = 0 /* None */;\n var /** @type {?} */ queryMatchExprs = [];\n queryMatches.forEach(function (match) {\n if (tokenReference(match.value) === tokenReference(providerAst.token)) {\n queryMatchExprs.push(o.literalArr([o.literal(match.queryId), o.literal(4 /* Provider */)]));\n }\n });\n var _a = providerDef(this.outputCtx, providerAst), providerExpr = _a.providerExpr, depsExpr = _a.depsExpr, providerFlags = _a.flags, tokenExpr = _a.tokenExpr;\n return {\n flags: flags | providerFlags,\n queryMatchExprs: queryMatchExprs,\n providerExpr: providerExpr,\n depsExpr: depsExpr,\n tokenExpr: tokenExpr,\n sourceSpan: providerAst.sourceSpan\n };\n };\n /**\n * @param {?} name\n * @return {?}\n */\n ViewBuilder.prototype.getLocal = /**\n * @param {?} name\n * @return {?}\n */\n function (name) {\n if (name == EventHandlerVars.event.name) {\n return EventHandlerVars.event;\n }\n var /** @type {?} */ currViewExpr = VIEW_VAR;\n for (var /** @type {?} */ currBuilder = this; currBuilder; currBuilder = currBuilder.parent,\n currViewExpr = currViewExpr.prop('parent').cast(o.DYNAMIC_TYPE)) {\n // check references\n var /** @type {?} */ refNodeIndex = currBuilder.refNodeIndices[name];\n if (refNodeIndex != null) {\n return o.importExpr(Identifiers.nodeValue).callFn([currViewExpr, o.literal(refNodeIndex)]);\n }\n // check variables\n var /** @type {?} */ varAst = currBuilder.variables.find(function (varAst) { return varAst.name === name; });\n if (varAst) {\n var /** @type {?} */ varValue = varAst.value || IMPLICIT_TEMPLATE_VAR;\n return currViewExpr.prop('context').prop(varValue);\n }\n }\n return null;\n };\n /**\n * @param {?} sourceSpan\n * @param {?} argCount\n * @return {?}\n */\n ViewBuilder.prototype._createLiteralArrayConverter = /**\n * @param {?} sourceSpan\n * @param {?} argCount\n * @return {?}\n */\n function (sourceSpan, argCount) {\n if (argCount === 0) {\n var /** @type {?} */ valueExpr_1 = o.importExpr(Identifiers.EMPTY_ARRAY);\n return function () { return valueExpr_1; };\n }\n var /** @type {?} */ checkIndex = this.nodes.length;\n this.nodes.push(function () {\n return ({\n sourceSpan: sourceSpan,\n nodeFlags: 32 /* TypePureArray */,\n nodeDef: o.importExpr(Identifiers.pureArrayDef).callFn([\n o.literal(checkIndex),\n o.literal(argCount),\n ])\n });\n });\n return function (args) { return callCheckStmt(checkIndex, args); };\n };\n /**\n * @param {?} sourceSpan\n * @param {?} keys\n * @return {?}\n */\n ViewBuilder.prototype._createLiteralMapConverter = /**\n * @param {?} sourceSpan\n * @param {?} keys\n * @return {?}\n */\n function (sourceSpan, keys) {\n if (keys.length === 0) {\n var /** @type {?} */ valueExpr_2 = o.importExpr(Identifiers.EMPTY_MAP);\n return function () { return valueExpr_2; };\n }\n var /** @type {?} */ map = o.literalMap(keys.map(function (e, i) { return (tslib_1.__assign({}, e, { value: o.literal(i) })); }));\n var /** @type {?} */ checkIndex = this.nodes.length;\n this.nodes.push(function () {\n return ({\n sourceSpan: sourceSpan,\n nodeFlags: 64 /* TypePureObject */,\n nodeDef: o.importExpr(Identifiers.pureObjectDef).callFn([\n o.literal(checkIndex),\n map,\n ])\n });\n });\n return function (args) { return callCheckStmt(checkIndex, args); };\n };\n /**\n * @param {?} expression\n * @param {?} name\n * @param {?} argCount\n * @return {?}\n */\n ViewBuilder.prototype._createPipeConverter = /**\n * @param {?} expression\n * @param {?} name\n * @param {?} argCount\n * @return {?}\n */\n function (expression, name, argCount) {\n var /** @type {?} */ pipe = /** @type {?} */ ((this.usedPipes.find(function (pipeSummary) { return pipeSummary.name === name; })));\n if (pipe.pure) {\n var /** @type {?} */ checkIndex_1 = this.nodes.length;\n this.nodes.push(function () {\n return ({\n sourceSpan: expression.sourceSpan,\n nodeFlags: 128 /* TypePurePipe */,\n nodeDef: o.importExpr(Identifiers.purePipeDef).callFn([\n o.literal(checkIndex_1),\n o.literal(argCount),\n ])\n });\n });\n // find underlying pipe in the component view\n var /** @type {?} */ compViewExpr = VIEW_VAR;\n var /** @type {?} */ compBuilder = this;\n while (compBuilder.parent) {\n compBuilder = compBuilder.parent;\n compViewExpr = compViewExpr.prop('parent').cast(o.DYNAMIC_TYPE);\n }\n var /** @type {?} */ pipeNodeIndex = compBuilder.purePipeNodeIndices[name];\n var /** @type {?} */ pipeValueExpr_1 = o.importExpr(Identifiers.nodeValue).callFn([compViewExpr, o.literal(pipeNodeIndex)]);\n return function (args) {\n return callUnwrapValue(expression.nodeIndex, expression.bindingIndex, callCheckStmt(checkIndex_1, [pipeValueExpr_1].concat(args)));\n };\n }\n else {\n var /** @type {?} */ nodeIndex = this._createPipe(expression.sourceSpan, pipe);\n var /** @type {?} */ nodeValueExpr_1 = o.importExpr(Identifiers.nodeValue).callFn([VIEW_VAR, o.literal(nodeIndex)]);\n return function (args) {\n return callUnwrapValue(expression.nodeIndex, expression.bindingIndex, nodeValueExpr_1.callMethod('transform', args));\n };\n }\n };\n /**\n * @param {?} sourceSpan\n * @param {?} pipe\n * @return {?}\n */\n ViewBuilder.prototype._createPipe = /**\n * @param {?} sourceSpan\n * @param {?} pipe\n * @return {?}\n */\n function (sourceSpan, pipe) {\n var _this = this;\n var /** @type {?} */ nodeIndex = this.nodes.length;\n var /** @type {?} */ flags = 0 /* None */;\n pipe.type.lifecycleHooks.forEach(function (lifecycleHook) {\n // for pipes, we only support ngOnDestroy\n if (lifecycleHook === LifecycleHooks.OnDestroy) {\n flags |= lifecycleHookToNodeFlag(lifecycleHook);\n }\n });\n var /** @type {?} */ depExprs = pipe.type.diDeps.map(function (diDep) { return depDef(_this.outputCtx, diDep); });\n // function pipeDef(\n // flags: NodeFlags, ctor: any, deps: ([DepFlags, any] | any)[]): NodeDef\n this.nodes.push(function () {\n return ({\n sourceSpan: sourceSpan,\n nodeFlags: 16 /* TypePipe */,\n nodeDef: o.importExpr(Identifiers.pipeDef).callFn([\n o.literal(flags), _this.outputCtx.importExpr(pipe.type.reference), o.literalArr(depExprs)\n ])\n });\n });\n return nodeIndex;\n };\n /**\n * For the AST in `UpdateExpression.value`:\n * - create nodes for pipes, literal arrays and, literal maps,\n * - update the AST to replace pipes, literal arrays and, literal maps with calls to check fn.\n *\n * WARNING: This might create new nodeDefs (for pipes and literal arrays and literal maps)!\n * @param {?} expression\n * @return {?}\n */\n ViewBuilder.prototype._preprocessUpdateExpression = /**\n * For the AST in `UpdateExpression.value`:\n * - create nodes for pipes, literal arrays and, literal maps,\n * - update the AST to replace pipes, literal arrays and, literal maps with calls to check fn.\n *\n * WARNING: This might create new nodeDefs (for pipes and literal arrays and literal maps)!\n * @param {?} expression\n * @return {?}\n */\n function (expression) {\n var _this = this;\n return {\n nodeIndex: expression.nodeIndex,\n bindingIndex: expression.bindingIndex,\n sourceSpan: expression.sourceSpan,\n context: expression.context,\n value: convertPropertyBindingBuiltins({\n createLiteralArrayConverter: function (argCount) {\n return _this._createLiteralArrayConverter(expression.sourceSpan, argCount);\n },\n createLiteralMapConverter: function (keys) {\n return _this._createLiteralMapConverter(expression.sourceSpan, keys);\n },\n createPipeConverter: function (name, argCount) {\n return _this._createPipeConverter(expression, name, argCount);\n }\n }, expression.value)\n };\n };\n /**\n * @return {?}\n */\n ViewBuilder.prototype._createNodeExpressions = /**\n * @return {?}\n */\n function () {\n var /** @type {?} */ self = this;\n var /** @type {?} */ updateBindingCount = 0;\n var /** @type {?} */ updateRendererStmts = [];\n var /** @type {?} */ updateDirectivesStmts = [];\n var /** @type {?} */ nodeDefExprs = this.nodes.map(function (factory, nodeIndex) {\n var _a = factory(), nodeDef = _a.nodeDef, nodeFlags = _a.nodeFlags, updateDirectives = _a.updateDirectives, updateRenderer = _a.updateRenderer, sourceSpan = _a.sourceSpan;\n if (updateRenderer) {\n updateRendererStmts.push.apply(updateRendererStmts, createUpdateStatements(nodeIndex, sourceSpan, updateRenderer, false));\n }\n if (updateDirectives) {\n updateDirectivesStmts.push.apply(updateDirectivesStmts, createUpdateStatements(nodeIndex, sourceSpan, updateDirectives, (nodeFlags & (262144 /* DoCheck */ | 65536 /* OnInit */)) > 0));\n }\n // We use a comma expression to call the log function before\n // the nodeDef function, but still use the result of the nodeDef function\n // as the value.\n // Note: We only add the logger to elements / text nodes,\n // so we don't generate too much code.\n var /** @type {?} */ logWithNodeDef = nodeFlags & 3 /* CatRenderNode */ ?\n new o.CommaExpr([LOG_VAR.callFn([]).callFn([]), nodeDef]) :\n nodeDef;\n return o.applySourceSpanToExpressionIfNeeded(logWithNodeDef, sourceSpan);\n });\n return { updateRendererStmts: updateRendererStmts, updateDirectivesStmts: updateDirectivesStmts, nodeDefExprs: nodeDefExprs };\n /**\n * @param {?} nodeIndex\n * @param {?} sourceSpan\n * @param {?} expressions\n * @param {?} allowEmptyExprs\n * @return {?}\n */\n function createUpdateStatements(nodeIndex, sourceSpan, expressions, allowEmptyExprs) {\n var /** @type {?} */ updateStmts = [];\n var /** @type {?} */ exprs = expressions.map(function (_a) {\n var sourceSpan = _a.sourceSpan, context = _a.context, value = _a.value;\n var /** @type {?} */ bindingId = \"\" + updateBindingCount++;\n var /** @type {?} */ nameResolver = context === COMP_VAR ? self : null;\n var _b = convertPropertyBinding(nameResolver, context, value, bindingId, BindingForm.General), stmts = _b.stmts, currValExpr = _b.currValExpr;\n updateStmts.push.apply(updateStmts, stmts.map(function (stmt) { return o.applySourceSpanToStatementIfNeeded(stmt, sourceSpan); }));\n return o.applySourceSpanToExpressionIfNeeded(currValExpr, sourceSpan);\n });\n if (expressions.length || allowEmptyExprs) {\n updateStmts.push(o.applySourceSpanToStatementIfNeeded(callCheckStmt(nodeIndex, exprs).toStmt(), sourceSpan));\n }\n return updateStmts;\n }\n };\n /**\n * @param {?} nodeIndex\n * @param {?} handlers\n * @return {?}\n */\n ViewBuilder.prototype._createElementHandleEventFn = /**\n * @param {?} nodeIndex\n * @param {?} handlers\n * @return {?}\n */\n function (nodeIndex, handlers) {\n var _this = this;\n var /** @type {?} */ handleEventStmts = [];\n var /** @type {?} */ handleEventBindingCount = 0;\n handlers.forEach(function (_a) {\n var context = _a.context, eventAst = _a.eventAst, dirAst = _a.dirAst;\n var /** @type {?} */ bindingId = \"\" + handleEventBindingCount++;\n var /** @type {?} */ nameResolver = context === COMP_VAR ? _this : null;\n var _b = convertActionBinding(nameResolver, context, eventAst.handler, bindingId), stmts = _b.stmts, allowDefault = _b.allowDefault;\n var /** @type {?} */ trueStmts = stmts;\n if (allowDefault) {\n trueStmts.push(ALLOW_DEFAULT_VAR.set(allowDefault.and(ALLOW_DEFAULT_VAR)).toStmt());\n }\n var _c = elementEventNameAndTarget(eventAst, dirAst), eventTarget = _c.target, eventName = _c.name;\n var /** @type {?} */ fullEventName = elementEventFullName(eventTarget, eventName);\n handleEventStmts.push(o.applySourceSpanToStatementIfNeeded(new o.IfStmt(o.literal(fullEventName).identical(EVENT_NAME_VAR), trueStmts), eventAst.sourceSpan));\n });\n var /** @type {?} */ handleEventFn;\n if (handleEventStmts.length > 0) {\n var /** @type {?} */ preStmts = [ALLOW_DEFAULT_VAR.set(o.literal(true)).toDeclStmt(o.BOOL_TYPE)];\n if (!this.component.isHost && o.findReadVarNames(handleEventStmts).has(/** @type {?} */ ((COMP_VAR.name)))) {\n preStmts.push(COMP_VAR.set(VIEW_VAR.prop('component')).toDeclStmt(this.compType));\n }\n handleEventFn = o.fn([\n new o.FnParam(/** @type {?} */ ((VIEW_VAR.name)), o.INFERRED_TYPE),\n new o.FnParam(/** @type {?} */ ((EVENT_NAME_VAR.name)), o.INFERRED_TYPE),\n new o.FnParam(/** @type {?} */ ((EventHandlerVars.event.name)), o.INFERRED_TYPE)\n ], preStmts.concat(handleEventStmts, [new o.ReturnStatement(ALLOW_DEFAULT_VAR)]), o.INFERRED_TYPE);\n }\n else {\n handleEventFn = o.NULL_EXPR;\n }\n return handleEventFn;\n };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n ViewBuilder.prototype.visitDirective = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) { };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n ViewBuilder.prototype.visitDirectiveProperty = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) { };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n ViewBuilder.prototype.visitReference = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) { };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n ViewBuilder.prototype.visitVariable = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) { };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n ViewBuilder.prototype.visitEvent = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) { };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n ViewBuilder.prototype.visitElementProperty = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) { };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n ViewBuilder.prototype.visitAttr = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) { };\n return ViewBuilder;\n}());\nfunction ViewBuilder_tsickle_Closure_declarations() {\n /** @type {?} */\n ViewBuilder.prototype.compType;\n /** @type {?} */\n ViewBuilder.prototype.nodes;\n /** @type {?} */\n ViewBuilder.prototype.purePipeNodeIndices;\n /** @type {?} */\n ViewBuilder.prototype.refNodeIndices;\n /** @type {?} */\n ViewBuilder.prototype.variables;\n /** @type {?} */\n ViewBuilder.prototype.children;\n /** @type {?} */\n ViewBuilder.prototype.viewName;\n /** @type {?} */\n ViewBuilder.prototype.reflector;\n /** @type {?} */\n ViewBuilder.prototype.outputCtx;\n /** @type {?} */\n ViewBuilder.prototype.parent;\n /** @type {?} */\n ViewBuilder.prototype.component;\n /** @type {?} */\n ViewBuilder.prototype.embeddedViewIndex;\n /** @type {?} */\n ViewBuilder.prototype.usedPipes;\n /** @type {?} */\n ViewBuilder.prototype.staticQueryIds;\n /** @type {?} */\n ViewBuilder.prototype.viewBuilderFactory;\n}\n/**\n * @param {?} astNodes\n * @return {?}\n */\nfunction needsAdditionalRootNode(astNodes) {\n var /** @type {?} */ lastAstNode = astNodes[astNodes.length - 1];\n if (lastAstNode instanceof EmbeddedTemplateAst) {\n return lastAstNode.hasViewContainer;\n }\n if (lastAstNode instanceof ElementAst) {\n if (isNgContainer(lastAstNode.name) && lastAstNode.children.length) {\n return needsAdditionalRootNode(lastAstNode.children);\n }\n return lastAstNode.hasViewContainer;\n }\n return lastAstNode instanceof NgContentAst;\n}\n/**\n * @param {?} inputAst\n * @param {?} dirAst\n * @return {?}\n */\nfunction elementBindingDef(inputAst, dirAst) {\n switch (inputAst.type) {\n case PropertyBindingType.Attribute:\n return o.literalArr([\n o.literal(1 /* TypeElementAttribute */), o.literal(inputAst.name),\n o.literal(inputAst.securityContext)\n ]);\n case PropertyBindingType.Property:\n return o.literalArr([\n o.literal(8 /* TypeProperty */), o.literal(inputAst.name),\n o.literal(inputAst.securityContext)\n ]);\n case PropertyBindingType.Animation:\n var /** @type {?} */ bindingType = 8 /* TypeProperty */ |\n (dirAst && dirAst.directive.isComponent ? 32 /* SyntheticHostProperty */ :\n 16 /* SyntheticProperty */);\n return o.literalArr([\n o.literal(bindingType), o.literal('@' + inputAst.name), o.literal(inputAst.securityContext)\n ]);\n case PropertyBindingType.Class:\n return o.literalArr([o.literal(2 /* TypeElementClass */), o.literal(inputAst.name), o.NULL_EXPR]);\n case PropertyBindingType.Style:\n return o.literalArr([\n o.literal(4 /* TypeElementStyle */), o.literal(inputAst.name), o.literal(inputAst.unit)\n ]);\n }\n}\n/**\n * @param {?} elementAst\n * @return {?}\n */\nfunction fixedAttrsDef(elementAst) {\n var /** @type {?} */ mapResult = Object.create(null);\n elementAst.attrs.forEach(function (attrAst) { mapResult[attrAst.name] = attrAst.value; });\n elementAst.directives.forEach(function (dirAst) {\n Object.keys(dirAst.directive.hostAttributes).forEach(function (name) {\n var /** @type {?} */ value = dirAst.directive.hostAttributes[name];\n var /** @type {?} */ prevValue = mapResult[name];\n mapResult[name] = prevValue != null ? mergeAttributeValue(name, prevValue, value) : value;\n });\n });\n // Note: We need to sort to get a defined output order\n // for tests and for caching generated artifacts...\n return o.literalArr(Object.keys(mapResult).sort().map(function (attrName) { return o.literalArr([o.literal(attrName), o.literal(mapResult[attrName])]); }));\n}\n/**\n * @param {?} attrName\n * @param {?} attrValue1\n * @param {?} attrValue2\n * @return {?}\n */\nfunction mergeAttributeValue(attrName, attrValue1, attrValue2) {\n if (attrName == CLASS_ATTR || attrName == STYLE_ATTR) {\n return attrValue1 + \" \" + attrValue2;\n }\n else {\n return attrValue2;\n }\n}\n/**\n * @param {?} nodeIndex\n * @param {?} exprs\n * @return {?}\n */\nfunction callCheckStmt(nodeIndex, exprs) {\n if (exprs.length > 10) {\n return CHECK_VAR.callFn([VIEW_VAR, o.literal(nodeIndex), o.literal(1 /* Dynamic */), o.literalArr(exprs)]);\n }\n else {\n return CHECK_VAR.callFn([VIEW_VAR, o.literal(nodeIndex), o.literal(0 /* Inline */)].concat(exprs));\n }\n}\n/**\n * @param {?} nodeIndex\n * @param {?} bindingIdx\n * @param {?} expr\n * @return {?}\n */\nfunction callUnwrapValue(nodeIndex, bindingIdx, expr) {\n return o.importExpr(Identifiers.unwrapValue).callFn([\n VIEW_VAR, o.literal(nodeIndex), o.literal(bindingIdx), expr\n ]);\n}\n/**\n * @record\n */\nfunction StaticAndDynamicQueryIds() { }\nfunction StaticAndDynamicQueryIds_tsickle_Closure_declarations() {\n /** @type {?} */\n StaticAndDynamicQueryIds.prototype.staticQueryIds;\n /** @type {?} */\n StaticAndDynamicQueryIds.prototype.dynamicQueryIds;\n}\n/**\n * @param {?} nodes\n * @param {?=} result\n * @return {?}\n */\nfunction findStaticQueryIds(nodes, result) {\n if (result === void 0) { result = new Map(); }\n nodes.forEach(function (node) {\n var /** @type {?} */ staticQueryIds = new Set();\n var /** @type {?} */ dynamicQueryIds = new Set();\n var /** @type {?} */ queryMatches = /** @type {?} */ ((undefined));\n if (node instanceof ElementAst) {\n findStaticQueryIds(node.children, result);\n node.children.forEach(function (child) {\n var /** @type {?} */ childData = /** @type {?} */ ((result.get(child)));\n childData.staticQueryIds.forEach(function (queryId) { return staticQueryIds.add(queryId); });\n childData.dynamicQueryIds.forEach(function (queryId) { return dynamicQueryIds.add(queryId); });\n });\n queryMatches = node.queryMatches;\n }\n else if (node instanceof EmbeddedTemplateAst) {\n findStaticQueryIds(node.children, result);\n node.children.forEach(function (child) {\n var /** @type {?} */ childData = /** @type {?} */ ((result.get(child)));\n childData.staticQueryIds.forEach(function (queryId) { return dynamicQueryIds.add(queryId); });\n childData.dynamicQueryIds.forEach(function (queryId) { return dynamicQueryIds.add(queryId); });\n });\n queryMatches = node.queryMatches;\n }\n if (queryMatches) {\n queryMatches.forEach(function (match) { return staticQueryIds.add(match.queryId); });\n }\n dynamicQueryIds.forEach(function (queryId) { return staticQueryIds.delete(queryId); });\n result.set(node, { staticQueryIds: staticQueryIds, dynamicQueryIds: dynamicQueryIds });\n });\n return result;\n}\n/**\n * @param {?} nodeStaticQueryIds\n * @return {?}\n */\nfunction staticViewQueryIds(nodeStaticQueryIds) {\n var /** @type {?} */ staticQueryIds = new Set();\n var /** @type {?} */ dynamicQueryIds = new Set();\n Array.from(nodeStaticQueryIds.values()).forEach(function (entry) {\n entry.staticQueryIds.forEach(function (queryId) { return staticQueryIds.add(queryId); });\n entry.dynamicQueryIds.forEach(function (queryId) { return dynamicQueryIds.add(queryId); });\n });\n dynamicQueryIds.forEach(function (queryId) { return staticQueryIds.delete(queryId); });\n return { staticQueryIds: staticQueryIds, dynamicQueryIds: dynamicQueryIds };\n}\n/**\n * @param {?} eventAst\n * @param {?} dirAst\n * @return {?}\n */\nfunction elementEventNameAndTarget(eventAst, dirAst) {\n if (eventAst.isAnimation) {\n return {\n name: \"@\" + eventAst.name + \".\" + eventAst.phase,\n target: dirAst && dirAst.directive.isComponent ? 'component' : null\n };\n }\n else {\n return eventAst;\n }\n}\n/**\n * @param {?} queryIds\n * @param {?} queryId\n * @param {?} isFirst\n * @return {?}\n */\nfunction calcStaticDynamicQueryFlags(queryIds, queryId, isFirst) {\n var /** @type {?} */ flags = 0 /* None */;\n // Note: We only make queries static that query for a single item.\n // This is because of backwards compatibility with the old view compiler...\n if (isFirst && (queryIds.staticQueryIds.has(queryId) || !queryIds.dynamicQueryIds.has(queryId))) {\n flags |= 268435456 /* StaticQuery */;\n }\n else {\n flags |= 536870912 /* DynamicQuery */;\n }\n return flags;\n}\n/**\n * @param {?} target\n * @param {?} name\n * @return {?}\n */\nexport function elementEventFullName(target, name) {\n return target ? target + \":\" + name : name;\n}\n//# sourceMappingURL=view_compiler.js.map","/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this 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 tslib_1 from \"tslib\";\nimport { extractMessages } from './extractor_merger';\nimport * as i18n from './i18n_ast';\n/**\n * A container for message extracted from the templates.\n */\nvar /**\n * A container for message extracted from the templates.\n */\nMessageBundle = /** @class */ (function () {\n function MessageBundle(_htmlParser, _implicitTags, _implicitAttrs, _locale) {\n if (_locale === void 0) { _locale = null; }\n this._htmlParser = _htmlParser;\n this._implicitTags = _implicitTags;\n this._implicitAttrs = _implicitAttrs;\n this._locale = _locale;\n this._messages = [];\n }\n /**\n * @param {?} html\n * @param {?} url\n * @param {?} interpolationConfig\n * @return {?}\n */\n MessageBundle.prototype.updateFromTemplate = /**\n * @param {?} html\n * @param {?} url\n * @param {?} interpolationConfig\n * @return {?}\n */\n function (html, url, interpolationConfig) {\n var /** @type {?} */ htmlParserResult = this._htmlParser.parse(html, url, true, interpolationConfig);\n if (htmlParserResult.errors.length) {\n return htmlParserResult.errors;\n }\n var /** @type {?} */ i18nParserResult = extractMessages(htmlParserResult.rootNodes, interpolationConfig, this._implicitTags, this._implicitAttrs);\n if (i18nParserResult.errors.length) {\n return i18nParserResult.errors;\n }\n (_a = this._messages).push.apply(_a, i18nParserResult.messages);\n return [];\n var _a;\n };\n // Return the message in the internal format\n // The public (serialized) format might be different, see the `write` method.\n /**\n * @return {?}\n */\n MessageBundle.prototype.getMessages = /**\n * @return {?}\n */\n function () { return this._messages; };\n /**\n * @param {?} serializer\n * @param {?=} filterSources\n * @return {?}\n */\n MessageBundle.prototype.write = /**\n * @param {?} serializer\n * @param {?=} filterSources\n * @return {?}\n */\n function (serializer, filterSources) {\n var /** @type {?} */ messages = {};\n var /** @type {?} */ mapperVisitor = new MapPlaceholderNames();\n // Deduplicate messages based on their ID\n this._messages.forEach(function (message) {\n var /** @type {?} */ id = serializer.digest(message);\n if (!messages.hasOwnProperty(id)) {\n messages[id] = message;\n }\n else {\n (_a = messages[id].sources).push.apply(_a, message.sources);\n }\n var _a;\n });\n // Transform placeholder names using the serializer mapping\n var /** @type {?} */ msgList = Object.keys(messages).map(function (id) {\n var /** @type {?} */ mapper = serializer.createNameMapper(messages[id]);\n var /** @type {?} */ src = messages[id];\n var /** @type {?} */ nodes = mapper ? mapperVisitor.convert(src.nodes, mapper) : src.nodes;\n var /** @type {?} */ transformedMessage = new i18n.Message(nodes, {}, {}, src.meaning, src.description, id);\n transformedMessage.sources = src.sources;\n if (filterSources) {\n transformedMessage.sources.forEach(function (source) { return source.filePath = filterSources(source.filePath); });\n }\n return transformedMessage;\n });\n return serializer.write(msgList, this._locale);\n };\n return MessageBundle;\n}());\n/**\n * A container for message extracted from the templates.\n */\nexport { MessageBundle };\nfunction MessageBundle_tsickle_Closure_declarations() {\n /** @type {?} */\n MessageBundle.prototype._messages;\n /** @type {?} */\n MessageBundle.prototype._htmlParser;\n /** @type {?} */\n MessageBundle.prototype._implicitTags;\n /** @type {?} */\n MessageBundle.prototype._implicitAttrs;\n /** @type {?} */\n MessageBundle.prototype._locale;\n}\nvar MapPlaceholderNames = /** @class */ (function (_super) {\n tslib_1.__extends(MapPlaceholderNames, _super);\n function MapPlaceholderNames() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * @param {?} nodes\n * @param {?} mapper\n * @return {?}\n */\n MapPlaceholderNames.prototype.convert = /**\n * @param {?} nodes\n * @param {?} mapper\n * @return {?}\n */\n function (nodes, mapper) {\n var _this = this;\n return mapper ? nodes.map(function (n) { return n.visit(_this, mapper); }) : nodes;\n };\n /**\n * @param {?} ph\n * @param {?} mapper\n * @return {?}\n */\n MapPlaceholderNames.prototype.visitTagPlaceholder = /**\n * @param {?} ph\n * @param {?} mapper\n * @return {?}\n */\n function (ph, mapper) {\n var _this = this;\n var /** @type {?} */ startName = /** @type {?} */ ((mapper.toPublicName(ph.startName)));\n var /** @type {?} */ closeName = ph.closeName ? /** @type {?} */ ((mapper.toPublicName(ph.closeName))) : ph.closeName;\n var /** @type {?} */ children = ph.children.map(function (n) { return n.visit(_this, mapper); });\n return new i18n.TagPlaceholder(ph.tag, ph.attrs, startName, closeName, children, ph.isVoid, ph.sourceSpan);\n };\n /**\n * @param {?} ph\n * @param {?} mapper\n * @return {?}\n */\n MapPlaceholderNames.prototype.visitPlaceholder = /**\n * @param {?} ph\n * @param {?} mapper\n * @return {?}\n */\n function (ph, mapper) {\n return new i18n.Placeholder(ph.value, /** @type {?} */ ((mapper.toPublicName(ph.name))), ph.sourceSpan);\n };\n /**\n * @param {?} ph\n * @param {?} mapper\n * @return {?}\n */\n MapPlaceholderNames.prototype.visitIcuPlaceholder = /**\n * @param {?} ph\n * @param {?} mapper\n * @return {?}\n */\n function (ph, mapper) {\n return new i18n.IcuPlaceholder(ph.value, /** @type {?} */ ((mapper.toPublicName(ph.name))), ph.sourceSpan);\n };\n return MapPlaceholderNames;\n}(i18n.CloneVisitor));\n//# sourceMappingURL=message_bundle.js.map","/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this 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 { areAllEquivalent } from '../output/output_ast';\nimport { TypeScriptEmitter } from '../output/ts_emitter';\nvar GeneratedFile = /** @class */ (function () {\n function GeneratedFile(srcFileUrl, genFileUrl, sourceOrStmts) {\n this.srcFileUrl = srcFileUrl;\n this.genFileUrl = genFileUrl;\n if (typeof sourceOrStmts === 'string') {\n this.source = sourceOrStmts;\n this.stmts = null;\n }\n else {\n this.source = null;\n this.stmts = sourceOrStmts;\n }\n }\n /**\n * @param {?} other\n * @return {?}\n */\n GeneratedFile.prototype.isEquivalent = /**\n * @param {?} other\n * @return {?}\n */\n function (other) {\n if (this.genFileUrl !== other.genFileUrl) {\n return false;\n }\n if (this.source) {\n return this.source === other.source;\n }\n if (other.stmts == null) {\n return false;\n }\n // Note: the constructor guarantees that if this.source is not filled,\n // then this.stmts is.\n return areAllEquivalent(/** @type {?} */ ((this.stmts)), /** @type {?} */ ((other.stmts)));\n };\n return GeneratedFile;\n}());\nexport { GeneratedFile };\nfunction GeneratedFile_tsickle_Closure_declarations() {\n /** @type {?} */\n GeneratedFile.prototype.source;\n /** @type {?} */\n GeneratedFile.prototype.stmts;\n /** @type {?} */\n GeneratedFile.prototype.srcFileUrl;\n /** @type {?} */\n GeneratedFile.prototype.genFileUrl;\n}\n/**\n * @param {?} file\n * @param {?=} preamble\n * @return {?}\n */\nexport function toTypeScript(file, preamble) {\n if (preamble === void 0) { preamble = ''; }\n if (!file.stmts) {\n throw new Error(\"Illegal state: No stmts present on GeneratedFile \" + file.genFileUrl);\n }\n return new TypeScriptEmitter().emitStatements(file.genFileUrl, file.stmts, preamble);\n}\n//# sourceMappingURL=generated_file.js.map","/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this 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 { tokenReference } from '../compile_metadata';\n/**\n * @record\n */\nexport function LazyRoute() { }\nfunction LazyRoute_tsickle_Closure_declarations() {\n /** @type {?} */\n LazyRoute.prototype.module;\n /** @type {?} */\n LazyRoute.prototype.route;\n /** @type {?} */\n LazyRoute.prototype.referencedModule;\n}\n/**\n * @param {?} moduleMeta\n * @param {?} reflector\n * @return {?}\n */\nexport function listLazyRoutes(moduleMeta, reflector) {\n var /** @type {?} */ allLazyRoutes = [];\n for (var _i = 0, _a = moduleMeta.transitiveModule.providers; _i < _a.length; _i++) {\n var _b = _a[_i], provider = _b.provider, module = _b.module;\n if (tokenReference(provider.token) === reflector.ROUTES) {\n var /** @type {?} */ loadChildren = _collectLoadChildren(provider.useValue);\n for (var _c = 0, loadChildren_1 = loadChildren; _c < loadChildren_1.length; _c++) {\n var route = loadChildren_1[_c];\n allLazyRoutes.push(parseLazyRoute(route, reflector, module.reference));\n }\n }\n }\n return allLazyRoutes;\n}\n/**\n * @param {?} routes\n * @param {?=} target\n * @return {?}\n */\nfunction _collectLoadChildren(routes, target) {\n if (target === void 0) { target = []; }\n if (typeof routes === 'string') {\n target.push(routes);\n }\n else if (Array.isArray(routes)) {\n for (var _i = 0, routes_1 = routes; _i < routes_1.length; _i++) {\n var route = routes_1[_i];\n _collectLoadChildren(route, target);\n }\n }\n else if (routes.loadChildren) {\n _collectLoadChildren(routes.loadChildren, target);\n }\n else if (routes.children) {\n _collectLoadChildren(routes.children, target);\n }\n return target;\n}\n/**\n * @param {?} route\n * @param {?} reflector\n * @param {?=} module\n * @return {?}\n */\nexport function parseLazyRoute(route, reflector, module) {\n var _a = route.split('#'), routePath = _a[0], routeName = _a[1];\n var /** @type {?} */ referencedModule = reflector.resolveExternalReference({\n moduleName: routePath,\n name: routeName,\n }, module ? module.filePath : undefined);\n return { route: route, module: module || referencedModule, referencedModule: referencedModule };\n}\n//# sourceMappingURL=lazy_routes.js.map","/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this 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 tslib_1 from \"tslib\";\nimport { ValueTransformer, visitValue } from '../util';\nimport { StaticSymbol } from './static_symbol';\nimport { isGeneratedFile, stripSummaryForJitFileSuffix, stripSummaryForJitNameSuffix, summaryForJitFileName, summaryForJitName } from './util';\nvar ResolvedStaticSymbol = /** @class */ (function () {\n function ResolvedStaticSymbol(symbol, metadata) {\n this.symbol = symbol;\n this.metadata = metadata;\n }\n return ResolvedStaticSymbol;\n}());\nexport { ResolvedStaticSymbol };\nfunction ResolvedStaticSymbol_tsickle_Closure_declarations() {\n /** @type {?} */\n ResolvedStaticSymbol.prototype.symbol;\n /** @type {?} */\n ResolvedStaticSymbol.prototype.metadata;\n}\n/**\n * The host of the SymbolResolverHost disconnects the implementation from TypeScript / other\n * language\n * services and from underlying file systems.\n * @record\n */\nexport function StaticSymbolResolverHost() { }\nfunction StaticSymbolResolverHost_tsickle_Closure_declarations() {\n /**\n * Return a ModuleMetadata for the given module.\n * Angular CLI will produce this metadata for a module whenever a .d.ts files is\n * produced and the module has exported variables or classes with decorators. Module metadata can\n * also be produced directly from TypeScript sources by using MetadataCollector in tools/metadata.\n *\n * \\@param modulePath is a string identifier for a module as an absolute path.\n * \\@return the metadata for the given module.\n * @type {?}\n */\n StaticSymbolResolverHost.prototype.getMetadataFor;\n /**\n * Converts a module name that is used in an `import` to a file path.\n * I.e.\n * `path/to/containingFile.ts` containing `import {...} from 'module-name'`.\n * @type {?}\n */\n StaticSymbolResolverHost.prototype.moduleNameToFileName;\n}\nvar /** @type {?} */ SUPPORTED_SCHEMA_VERSION = 4;\n/**\n * This class is responsible for loading metadata per symbol,\n * and normalizing references between symbols.\n *\n * Internally, it only uses symbols without members,\n * and deduces the values for symbols with members based\n * on these symbols.\n */\nvar /**\n * This class is responsible for loading metadata per symbol,\n * and normalizing references between symbols.\n *\n * Internally, it only uses symbols without members,\n * and deduces the values for symbols with members based\n * on these symbols.\n */\nStaticSymbolResolver = /** @class */ (function () {\n function StaticSymbolResolver(host, staticSymbolCache, summaryResolver, errorRecorder) {\n this.host = host;\n this.staticSymbolCache = staticSymbolCache;\n this.summaryResolver = summaryResolver;\n this.errorRecorder = errorRecorder;\n this.metadataCache = new Map();\n this.resolvedSymbols = new Map();\n this.resolvedFilePaths = new Set();\n this.importAs = new Map();\n this.symbolResourcePaths = new Map();\n this.symbolFromFile = new Map();\n this.knownFileNameToModuleNames = new Map();\n }\n /**\n * @param {?} staticSymbol\n * @return {?}\n */\n StaticSymbolResolver.prototype.resolveSymbol = /**\n * @param {?} staticSymbol\n * @return {?}\n */\n function (staticSymbol) {\n if (staticSymbol.members.length > 0) {\n return /** @type {?} */ ((this._resolveSymbolMembers(staticSymbol)));\n }\n // Note: always ask for a summary first,\n // as we might have read shallow metadata via a .d.ts file\n // for the symbol.\n var /** @type {?} */ resultFromSummary = /** @type {?} */ ((this._resolveSymbolFromSummary(staticSymbol)));\n if (resultFromSummary) {\n return resultFromSummary;\n }\n var /** @type {?} */ resultFromCache = this.resolvedSymbols.get(staticSymbol);\n if (resultFromCache) {\n return resultFromCache;\n }\n // Note: Some users use libraries that were not compiled with ngc, i.e. they don't\n // have summaries, only .d.ts files. So we always need to check both, the summary\n // and metadata.\n this._createSymbolsOf(staticSymbol.filePath);\n return /** @type {?} */ ((this.resolvedSymbols.get(staticSymbol)));\n };\n /**\n * getImportAs produces a symbol that can be used to import the given symbol.\n * The import might be different than the symbol if the symbol is exported from\n * a library with a summary; in which case we want to import the symbol from the\n * ngfactory re-export instead of directly to avoid introducing a direct dependency\n * on an otherwise indirect dependency.\n *\n * @param staticSymbol the symbol for which to generate a import symbol\n */\n /**\n * getImportAs produces a symbol that can be used to import the given symbol.\n * The import might be different than the symbol if the symbol is exported from\n * a library with a summary; in which case we want to import the symbol from the\n * ngfactory re-export instead of directly to avoid introducing a direct dependency\n * on an otherwise indirect dependency.\n *\n * @param {?} staticSymbol the symbol for which to generate a import symbol\n * @param {?=} useSummaries\n * @return {?}\n */\n StaticSymbolResolver.prototype.getImportAs = /**\n * getImportAs produces a symbol that can be used to import the given symbol.\n * The import might be different than the symbol if the symbol is exported from\n * a library with a summary; in which case we want to import the symbol from the\n * ngfactory re-export instead of directly to avoid introducing a direct dependency\n * on an otherwise indirect dependency.\n *\n * @param {?} staticSymbol the symbol for which to generate a import symbol\n * @param {?=} useSummaries\n * @return {?}\n */\n function (staticSymbol, useSummaries) {\n if (useSummaries === void 0) { useSummaries = true; }\n if (staticSymbol.members.length) {\n var /** @type {?} */ baseSymbol = this.getStaticSymbol(staticSymbol.filePath, staticSymbol.name);\n var /** @type {?} */ baseImportAs = this.getImportAs(baseSymbol, useSummaries);\n return baseImportAs ?\n this.getStaticSymbol(baseImportAs.filePath, baseImportAs.name, staticSymbol.members) :\n null;\n }\n var /** @type {?} */ summarizedFileName = stripSummaryForJitFileSuffix(staticSymbol.filePath);\n if (summarizedFileName !== staticSymbol.filePath) {\n var /** @type {?} */ summarizedName = stripSummaryForJitNameSuffix(staticSymbol.name);\n var /** @type {?} */ baseSymbol = this.getStaticSymbol(summarizedFileName, summarizedName, staticSymbol.members);\n var /** @type {?} */ baseImportAs = this.getImportAs(baseSymbol, useSummaries);\n return baseImportAs ?\n this.getStaticSymbol(summaryForJitFileName(baseImportAs.filePath), summaryForJitName(baseImportAs.name), baseSymbol.members) :\n null;\n }\n var /** @type {?} */ result = (useSummaries && this.summaryResolver.getImportAs(staticSymbol)) || null;\n if (!result) {\n result = /** @type {?} */ ((this.importAs.get(staticSymbol)));\n }\n return result;\n };\n /**\n * getResourcePath produces the path to the original location of the symbol and should\n * be used to determine the relative location of resource references recorded in\n * symbol metadata.\n */\n /**\n * getResourcePath produces the path to the original location of the symbol and should\n * be used to determine the relative location of resource references recorded in\n * symbol metadata.\n * @param {?} staticSymbol\n * @return {?}\n */\n StaticSymbolResolver.prototype.getResourcePath = /**\n * getResourcePath produces the path to the original location of the symbol and should\n * be used to determine the relative location of resource references recorded in\n * symbol metadata.\n * @param {?} staticSymbol\n * @return {?}\n */\n function (staticSymbol) {\n return this.symbolResourcePaths.get(staticSymbol) || staticSymbol.filePath;\n };\n /**\n * getTypeArity returns the number of generic type parameters the given symbol\n * has. If the symbol is not a type the result is null.\n */\n /**\n * getTypeArity returns the number of generic type parameters the given symbol\n * has. If the symbol is not a type the result is null.\n * @param {?} staticSymbol\n * @return {?}\n */\n StaticSymbolResolver.prototype.getTypeArity = /**\n * getTypeArity returns the number of generic type parameters the given symbol\n * has. If the symbol is not a type the result is null.\n * @param {?} staticSymbol\n * @return {?}\n */\n function (staticSymbol) {\n // If the file is a factory/ngsummary file, don't resolve the symbol as doing so would\n // cause the metadata for an factory/ngsummary file to be loaded which doesn't exist.\n // All references to generated classes must include the correct arity whenever\n // generating code.\n if (isGeneratedFile(staticSymbol.filePath)) {\n return null;\n }\n var /** @type {?} */ resolvedSymbol = unwrapResolvedMetadata(this.resolveSymbol(staticSymbol));\n while (resolvedSymbol && resolvedSymbol.metadata instanceof StaticSymbol) {\n resolvedSymbol = unwrapResolvedMetadata(this.resolveSymbol(resolvedSymbol.metadata));\n }\n return (resolvedSymbol && resolvedSymbol.metadata && resolvedSymbol.metadata.arity) || null;\n };\n /**\n * @param {?} filePath\n * @return {?}\n */\n StaticSymbolResolver.prototype.getKnownModuleName = /**\n * @param {?} filePath\n * @return {?}\n */\n function (filePath) {\n return this.knownFileNameToModuleNames.get(filePath) || null;\n };\n /**\n * @param {?} sourceSymbol\n * @param {?} targetSymbol\n * @return {?}\n */\n StaticSymbolResolver.prototype.recordImportAs = /**\n * @param {?} sourceSymbol\n * @param {?} targetSymbol\n * @return {?}\n */\n function (sourceSymbol, targetSymbol) {\n sourceSymbol.assertNoMembers();\n targetSymbol.assertNoMembers();\n this.importAs.set(sourceSymbol, targetSymbol);\n };\n /**\n * @param {?} fileName\n * @param {?} moduleName\n * @return {?}\n */\n StaticSymbolResolver.prototype.recordModuleNameForFileName = /**\n * @param {?} fileName\n * @param {?} moduleName\n * @return {?}\n */\n function (fileName, moduleName) {\n this.knownFileNameToModuleNames.set(fileName, moduleName);\n };\n /**\n * Invalidate all information derived from the given file.\n *\n * @param fileName the file to invalidate\n */\n /**\n * Invalidate all information derived from the given file.\n *\n * @param {?} fileName the file to invalidate\n * @return {?}\n */\n StaticSymbolResolver.prototype.invalidateFile = /**\n * Invalidate all information derived from the given file.\n *\n * @param {?} fileName the file to invalidate\n * @return {?}\n */\n function (fileName) {\n this.metadataCache.delete(fileName);\n this.resolvedFilePaths.delete(fileName);\n var /** @type {?} */ symbols = this.symbolFromFile.get(fileName);\n if (symbols) {\n this.symbolFromFile.delete(fileName);\n for (var _i = 0, symbols_1 = symbols; _i < symbols_1.length; _i++) {\n var symbol = symbols_1[_i];\n this.resolvedSymbols.delete(symbol);\n this.importAs.delete(symbol);\n this.symbolResourcePaths.delete(symbol);\n }\n }\n };\n /* @internal */\n /**\n * @template T\n * @param {?} cb\n * @return {?}\n */\n StaticSymbolResolver.prototype.ignoreErrorsFor = /**\n * @template T\n * @param {?} cb\n * @return {?}\n */\n function (cb) {\n var /** @type {?} */ recorder = this.errorRecorder;\n this.errorRecorder = function () { };\n try {\n return cb();\n }\n finally {\n this.errorRecorder = recorder;\n }\n };\n /**\n * @param {?} staticSymbol\n * @return {?}\n */\n StaticSymbolResolver.prototype._resolveSymbolMembers = /**\n * @param {?} staticSymbol\n * @return {?}\n */\n function (staticSymbol) {\n var /** @type {?} */ members = staticSymbol.members;\n var /** @type {?} */ baseResolvedSymbol = this.resolveSymbol(this.getStaticSymbol(staticSymbol.filePath, staticSymbol.name));\n if (!baseResolvedSymbol) {\n return null;\n }\n var /** @type {?} */ baseMetadata = unwrapResolvedMetadata(baseResolvedSymbol.metadata);\n if (baseMetadata instanceof StaticSymbol) {\n return new ResolvedStaticSymbol(staticSymbol, this.getStaticSymbol(baseMetadata.filePath, baseMetadata.name, members));\n }\n else if (baseMetadata && baseMetadata.__symbolic === 'class') {\n if (baseMetadata.statics && members.length === 1) {\n return new ResolvedStaticSymbol(staticSymbol, baseMetadata.statics[members[0]]);\n }\n }\n else {\n var /** @type {?} */ value = baseMetadata;\n for (var /** @type {?} */ i = 0; i < members.length && value; i++) {\n value = value[members[i]];\n }\n return new ResolvedStaticSymbol(staticSymbol, value);\n }\n return null;\n };\n /**\n * @param {?} staticSymbol\n * @return {?}\n */\n StaticSymbolResolver.prototype._resolveSymbolFromSummary = /**\n * @param {?} staticSymbol\n * @return {?}\n */\n function (staticSymbol) {\n var /** @type {?} */ summary = this.summaryResolver.resolveSummary(staticSymbol);\n return summary ? new ResolvedStaticSymbol(staticSymbol, summary.metadata) : null;\n };\n /**\n * getStaticSymbol produces a Type whose metadata is known but whose implementation is not loaded.\n * All types passed to the StaticResolver should be pseudo-types returned by this method.\n *\n * @param declarationFile the absolute path of the file where the symbol is declared\n * @param name the name of the type.\n * @param members a symbol for a static member of the named type\n */\n /**\n * getStaticSymbol produces a Type whose metadata is known but whose implementation is not loaded.\n * All types passed to the StaticResolver should be pseudo-types returned by this method.\n *\n * @param {?} declarationFile the absolute path of the file where the symbol is declared\n * @param {?} name the name of the type.\n * @param {?=} members a symbol for a static member of the named type\n * @return {?}\n */\n StaticSymbolResolver.prototype.getStaticSymbol = /**\n * getStaticSymbol produces a Type whose metadata is known but whose implementation is not loaded.\n * All types passed to the StaticResolver should be pseudo-types returned by this method.\n *\n * @param {?} declarationFile the absolute path of the file where the symbol is declared\n * @param {?} name the name of the type.\n * @param {?=} members a symbol for a static member of the named type\n * @return {?}\n */\n function (declarationFile, name, members) {\n return this.staticSymbolCache.get(declarationFile, name, members);\n };\n /**\n * hasDecorators checks a file's metadata for the presense of decorators without evalutating the\n * metadata.\n *\n * @param filePath the absolute path to examine for decorators.\n * @returns true if any class in the file has a decorator.\n */\n /**\n * hasDecorators checks a file's metadata for the presense of decorators without evalutating the\n * metadata.\n *\n * @param {?} filePath the absolute path to examine for decorators.\n * @return {?} true if any class in the file has a decorator.\n */\n StaticSymbolResolver.prototype.hasDecorators = /**\n * hasDecorators checks a file's metadata for the presense of decorators without evalutating the\n * metadata.\n *\n * @param {?} filePath the absolute path to examine for decorators.\n * @return {?} true if any class in the file has a decorator.\n */\n function (filePath) {\n var /** @type {?} */ metadata = this.getModuleMetadata(filePath);\n if (metadata['metadata']) {\n return Object.keys(metadata['metadata']).some(function (metadataKey) {\n var /** @type {?} */ entry = metadata['metadata'][metadataKey];\n return entry && entry.__symbolic === 'class' && entry.decorators;\n });\n }\n return false;\n };\n /**\n * @param {?} filePath\n * @return {?}\n */\n StaticSymbolResolver.prototype.getSymbolsOf = /**\n * @param {?} filePath\n * @return {?}\n */\n function (filePath) {\n var /** @type {?} */ summarySymbols = this.summaryResolver.getSymbolsOf(filePath);\n if (summarySymbols) {\n return summarySymbols;\n }\n // Note: Some users use libraries that were not compiled with ngc, i.e. they don't\n // have summaries, only .d.ts files, but `summaryResolver.isLibraryFile` returns true.\n this._createSymbolsOf(filePath);\n var /** @type {?} */ metadataSymbols = [];\n this.resolvedSymbols.forEach(function (resolvedSymbol) {\n if (resolvedSymbol.symbol.filePath === filePath) {\n metadataSymbols.push(resolvedSymbol.symbol);\n }\n });\n return metadataSymbols;\n };\n /**\n * @param {?} filePath\n * @return {?}\n */\n StaticSymbolResolver.prototype._createSymbolsOf = /**\n * @param {?} filePath\n * @return {?}\n */\n function (filePath) {\n var _this = this;\n if (this.resolvedFilePaths.has(filePath)) {\n return;\n }\n this.resolvedFilePaths.add(filePath);\n var /** @type {?} */ resolvedSymbols = [];\n var /** @type {?} */ metadata = this.getModuleMetadata(filePath);\n if (metadata['importAs']) {\n // Index bundle indices should use the importAs module name defined\n // in the bundle.\n this.knownFileNameToModuleNames.set(filePath, metadata['importAs']);\n }\n // handle the symbols in one of the re-export location\n if (metadata['exports']) {\n var _loop_1 = function (moduleExport) {\n // handle the symbols in the list of explicitly re-exported symbols.\n if (moduleExport.export) {\n moduleExport.export.forEach(function (exportSymbol) {\n var /** @type {?} */ symbolName;\n if (typeof exportSymbol === 'string') {\n symbolName = exportSymbol;\n }\n else {\n symbolName = exportSymbol.as;\n }\n symbolName = unescapeIdentifier(symbolName);\n var /** @type {?} */ symName = symbolName;\n if (typeof exportSymbol !== 'string') {\n symName = unescapeIdentifier(exportSymbol.name);\n }\n var /** @type {?} */ resolvedModule = _this.resolveModule(moduleExport.from, filePath);\n if (resolvedModule) {\n var /** @type {?} */ targetSymbol = _this.getStaticSymbol(resolvedModule, symName);\n var /** @type {?} */ sourceSymbol = _this.getStaticSymbol(filePath, symbolName);\n resolvedSymbols.push(_this.createExport(sourceSymbol, targetSymbol));\n }\n });\n }\n else {\n // handle the symbols via export * directives.\n var /** @type {?} */ resolvedModule = this_1.resolveModule(moduleExport.from, filePath);\n if (resolvedModule) {\n var /** @type {?} */ nestedExports = this_1.getSymbolsOf(resolvedModule);\n nestedExports.forEach(function (targetSymbol) {\n var /** @type {?} */ sourceSymbol = _this.getStaticSymbol(filePath, targetSymbol.name);\n resolvedSymbols.push(_this.createExport(sourceSymbol, targetSymbol));\n });\n }\n }\n };\n var this_1 = this;\n for (var _i = 0, _a = metadata['exports']; _i < _a.length; _i++) {\n var moduleExport = _a[_i];\n _loop_1(moduleExport);\n }\n }\n // handle the actual metadata. Has to be after the exports\n // as there migth be collisions in the names, and we want the symbols\n // of the current module to win ofter reexports.\n if (metadata['metadata']) {\n // handle direct declarations of the symbol\n var /** @type {?} */ topLevelSymbolNames_1 = new Set(Object.keys(metadata['metadata']).map(unescapeIdentifier));\n var /** @type {?} */ origins_1 = metadata['origins'] || {};\n Object.keys(metadata['metadata']).forEach(function (metadataKey) {\n var /** @type {?} */ symbolMeta = metadata['metadata'][metadataKey];\n var /** @type {?} */ name = unescapeIdentifier(metadataKey);\n var /** @type {?} */ symbol = _this.getStaticSymbol(filePath, name);\n var /** @type {?} */ origin = origins_1.hasOwnProperty(metadataKey) && origins_1[metadataKey];\n if (origin) {\n // If the symbol is from a bundled index, use the declaration location of the\n // symbol so relative references (such as './my.html') will be calculated\n // correctly.\n var /** @type {?} */ originFilePath = _this.resolveModule(origin, filePath);\n if (!originFilePath) {\n _this.reportError(new Error(\"Couldn't resolve original symbol for \" + origin + \" from \" + filePath));\n }\n else {\n _this.symbolResourcePaths.set(symbol, originFilePath);\n }\n }\n resolvedSymbols.push(_this.createResolvedSymbol(symbol, filePath, topLevelSymbolNames_1, symbolMeta));\n });\n }\n resolvedSymbols.forEach(function (resolvedSymbol) { return _this.resolvedSymbols.set(resolvedSymbol.symbol, resolvedSymbol); });\n this.symbolFromFile.set(filePath, resolvedSymbols.map(function (resolvedSymbol) { return resolvedSymbol.symbol; }));\n };\n /**\n * @param {?} sourceSymbol\n * @param {?} topLevelPath\n * @param {?} topLevelSymbolNames\n * @param {?} metadata\n * @return {?}\n */\n StaticSymbolResolver.prototype.createResolvedSymbol = /**\n * @param {?} sourceSymbol\n * @param {?} topLevelPath\n * @param {?} topLevelSymbolNames\n * @param {?} metadata\n * @return {?}\n */\n function (sourceSymbol, topLevelPath, topLevelSymbolNames, metadata) {\n // For classes that don't have Angular summaries / metadata,\n // we only keep their arity, but nothing else\n // (e.g. their constructor parameters).\n // We do this to prevent introducing deep imports\n // as we didn't generate .ngfactory.ts files with proper reexports.\n if (this.summaryResolver.isLibraryFile(sourceSymbol.filePath) && metadata &&\n metadata['__symbolic'] === 'class') {\n var /** @type {?} */ transformedMeta_1 = { __symbolic: 'class', arity: metadata.arity };\n return new ResolvedStaticSymbol(sourceSymbol, transformedMeta_1);\n }\n var /** @type {?} */ _originalFileMemo;\n var /** @type {?} */ getOriginalName = function () {\n if (!_originalFileMemo) {\n // Guess what hte original file name is from the reference. If it has a `.d.ts` extension\n // replace it with `.ts`. If it already has `.ts` just leave it in place. If it doesn't have\n // .ts or .d.ts, append `.ts'. Also, if it is in `node_modules`, trim the `node_module`\n // location as it is not important to finding the file.\n _originalFileMemo =\n topLevelPath.replace(/((\\.ts)|(\\.d\\.ts)|)$/, '.ts').replace(/^.*node_modules[/\\\\]/, '');\n }\n return _originalFileMemo;\n };\n var /** @type {?} */ self = this;\n var ReferenceTransformer = /** @class */ (function (_super) {\n tslib_1.__extends(ReferenceTransformer, _super);\n function ReferenceTransformer() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * @param {?} map\n * @param {?} functionParams\n * @return {?}\n */\n ReferenceTransformer.prototype.visitStringMap = /**\n * @param {?} map\n * @param {?} functionParams\n * @return {?}\n */\n function (map, functionParams) {\n var /** @type {?} */ symbolic = map['__symbolic'];\n if (symbolic === 'function') {\n var /** @type {?} */ oldLen = functionParams.length;\n functionParams.push.apply(functionParams, (map['parameters'] || []));\n var /** @type {?} */ result = _super.prototype.visitStringMap.call(this, map, functionParams);\n functionParams.length = oldLen;\n return result;\n }\n else if (symbolic === 'reference') {\n var /** @type {?} */ module = map['module'];\n var /** @type {?} */ name_1 = map['name'] ? unescapeIdentifier(map['name']) : map['name'];\n if (!name_1) {\n return null;\n }\n var /** @type {?} */ filePath = void 0;\n if (module) {\n filePath = /** @type {?} */ ((self.resolveModule(module, sourceSymbol.filePath)));\n if (!filePath) {\n return {\n __symbolic: 'error',\n message: \"Could not resolve \" + module + \" relative to \" + sourceSymbol.filePath + \".\",\n line: map[\"line\"],\n character: map[\"character\"],\n fileName: getOriginalName()\n };\n }\n return {\n __symbolic: 'resolved',\n symbol: self.getStaticSymbol(filePath, name_1),\n line: map[\"line\"],\n character: map[\"character\"],\n fileName: getOriginalName()\n };\n }\n else if (functionParams.indexOf(name_1) >= 0) {\n // reference to a function parameter\n return { __symbolic: 'reference', name: name_1 };\n }\n else {\n if (topLevelSymbolNames.has(name_1)) {\n return self.getStaticSymbol(topLevelPath, name_1);\n }\n // ambient value\n null;\n }\n }\n else if (symbolic === 'error') {\n return tslib_1.__assign({}, map, { fileName: getOriginalName() });\n }\n else {\n return _super.prototype.visitStringMap.call(this, map, functionParams);\n }\n };\n return ReferenceTransformer;\n }(ValueTransformer));\n var /** @type {?} */ transformedMeta = visitValue(metadata, new ReferenceTransformer(), []);\n var /** @type {?} */ unwrappedTransformedMeta = unwrapResolvedMetadata(transformedMeta);\n if (unwrappedTransformedMeta instanceof StaticSymbol) {\n return this.createExport(sourceSymbol, unwrappedTransformedMeta);\n }\n return new ResolvedStaticSymbol(sourceSymbol, transformedMeta);\n };\n /**\n * @param {?} sourceSymbol\n * @param {?} targetSymbol\n * @return {?}\n */\n StaticSymbolResolver.prototype.createExport = /**\n * @param {?} sourceSymbol\n * @param {?} targetSymbol\n * @return {?}\n */\n function (sourceSymbol, targetSymbol) {\n sourceSymbol.assertNoMembers();\n targetSymbol.assertNoMembers();\n if (this.summaryResolver.isLibraryFile(sourceSymbol.filePath) &&\n this.summaryResolver.isLibraryFile(targetSymbol.filePath)) {\n // This case is for an ng library importing symbols from a plain ts library\n // transitively.\n // Note: We rely on the fact that we discover symbols in the direction\n // from source files to library files\n this.importAs.set(targetSymbol, this.getImportAs(sourceSymbol) || sourceSymbol);\n }\n return new ResolvedStaticSymbol(sourceSymbol, targetSymbol);\n };\n /**\n * @param {?} error\n * @param {?=} context\n * @param {?=} path\n * @return {?}\n */\n StaticSymbolResolver.prototype.reportError = /**\n * @param {?} error\n * @param {?=} context\n * @param {?=} path\n * @return {?}\n */\n function (error, context, path) {\n if (this.errorRecorder) {\n this.errorRecorder(error, (context && context.filePath) || path);\n }\n else {\n throw error;\n }\n };\n /**\n * @param {?} module an absolute path to a module file.\n * @return {?}\n */\n StaticSymbolResolver.prototype.getModuleMetadata = /**\n * @param {?} module an absolute path to a module file.\n * @return {?}\n */\n function (module) {\n var /** @type {?} */ moduleMetadata = this.metadataCache.get(module);\n if (!moduleMetadata) {\n var /** @type {?} */ moduleMetadatas = this.host.getMetadataFor(module);\n if (moduleMetadatas) {\n var /** @type {?} */ maxVersion_1 = -1;\n moduleMetadatas.forEach(function (md) {\n if (md && md['version'] > maxVersion_1) {\n maxVersion_1 = md['version'];\n moduleMetadata = md;\n }\n });\n }\n if (!moduleMetadata) {\n moduleMetadata =\n { __symbolic: 'module', version: SUPPORTED_SCHEMA_VERSION, module: module, metadata: {} };\n }\n if (moduleMetadata['version'] != SUPPORTED_SCHEMA_VERSION) {\n var /** @type {?} */ errorMessage = moduleMetadata['version'] == 2 ?\n \"Unsupported metadata version \" + moduleMetadata['version'] + \" for module \" + module + \". This module should be compiled with a newer version of ngc\" :\n \"Metadata version mismatch for module \" + module + \", found version \" + moduleMetadata['version'] + \", expected \" + SUPPORTED_SCHEMA_VERSION;\n this.reportError(new Error(errorMessage));\n }\n this.metadataCache.set(module, moduleMetadata);\n }\n return moduleMetadata;\n };\n /**\n * @param {?} module\n * @param {?} symbolName\n * @param {?=} containingFile\n * @return {?}\n */\n StaticSymbolResolver.prototype.getSymbolByModule = /**\n * @param {?} module\n * @param {?} symbolName\n * @param {?=} containingFile\n * @return {?}\n */\n function (module, symbolName, containingFile) {\n var /** @type {?} */ filePath = this.resolveModule(module, containingFile);\n if (!filePath) {\n this.reportError(new Error(\"Could not resolve module \" + module + (containingFile ? ' relative to ' +\n containingFile : '')));\n return this.getStaticSymbol(\"ERROR:\" + module, symbolName);\n }\n return this.getStaticSymbol(filePath, symbolName);\n };\n /**\n * @param {?} module\n * @param {?=} containingFile\n * @return {?}\n */\n StaticSymbolResolver.prototype.resolveModule = /**\n * @param {?} module\n * @param {?=} containingFile\n * @return {?}\n */\n function (module, containingFile) {\n try {\n return this.host.moduleNameToFileName(module, containingFile);\n }\n catch (/** @type {?} */ e) {\n console.error(\"Could not resolve module '\" + module + \"' relative to file \" + containingFile);\n this.reportError(e, undefined, containingFile);\n }\n return null;\n };\n return StaticSymbolResolver;\n}());\n/**\n * This class is responsible for loading metadata per symbol,\n * and normalizing references between symbols.\n *\n * Internally, it only uses symbols without members,\n * and deduces the values for symbols with members based\n * on these symbols.\n */\nexport { StaticSymbolResolver };\nfunction StaticSymbolResolver_tsickle_Closure_declarations() {\n /** @type {?} */\n StaticSymbolResolver.prototype.metadataCache;\n /** @type {?} */\n StaticSymbolResolver.prototype.resolvedSymbols;\n /** @type {?} */\n StaticSymbolResolver.prototype.resolvedFilePaths;\n /** @type {?} */\n StaticSymbolResolver.prototype.importAs;\n /** @type {?} */\n StaticSymbolResolver.prototype.symbolResourcePaths;\n /** @type {?} */\n StaticSymbolResolver.prototype.symbolFromFile;\n /** @type {?} */\n StaticSymbolResolver.prototype.knownFileNameToModuleNames;\n /** @type {?} */\n StaticSymbolResolver.prototype.host;\n /** @type {?} */\n StaticSymbolResolver.prototype.staticSymbolCache;\n /** @type {?} */\n StaticSymbolResolver.prototype.summaryResolver;\n /** @type {?} */\n StaticSymbolResolver.prototype.errorRecorder;\n}\n/**\n * @param {?} identifier\n * @return {?}\n */\nexport function unescapeIdentifier(identifier) {\n return identifier.startsWith('___') ? identifier.substr(1) : identifier;\n}\n/**\n * @param {?} metadata\n * @return {?}\n */\nexport function unwrapResolvedMetadata(metadata) {\n if (metadata && metadata.__symbolic === 'resolved') {\n return metadata.symbol;\n }\n return metadata;\n}\n//# sourceMappingURL=static_symbol_resolver.js.map","/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\nimport * as tslib_1 from \"tslib\";\nimport { CompileNgModuleMetadata, CompileSummaryKind } from '../compile_metadata';\nimport * as o from '../output/output_ast';\nimport { ValueTransformer, visitValue } from '../util';\nimport { StaticSymbol } from './static_symbol';\nimport { unwrapResolvedMetadata } from './static_symbol_resolver';\nimport { isLoweredSymbol, ngfactoryFilePath, summaryForJitFileName, summaryForJitName } from './util';\n/**\n * @param {?} srcFileName\n * @param {?} forJitCtx\n * @param {?} summaryResolver\n * @param {?} symbolResolver\n * @param {?} symbols\n * @param {?} types\n * @return {?}\n */\nexport function serializeSummaries(srcFileName, forJitCtx, summaryResolver, symbolResolver, symbols, types) {\n var /** @type {?} */ toJsonSerializer = new ToJsonSerializer(symbolResolver, summaryResolver, srcFileName);\n // for symbols, we use everything except for the class metadata itself\n // (we keep the statics though), as the class metadata is contained in the\n // CompileTypeSummary.\n symbols.forEach(function (resolvedSymbol) {\n return toJsonSerializer.addSummary({ symbol: resolvedSymbol.symbol, metadata: resolvedSymbol.metadata });\n });\n // Add type summaries.\n types.forEach(function (_a) {\n var summary = _a.summary, metadata = _a.metadata;\n toJsonSerializer.addSummary({ symbol: summary.type.reference, metadata: undefined, type: summary });\n });\n var _a = toJsonSerializer.serialize(), json = _a.json, exportAs = _a.exportAs;\n if (forJitCtx) {\n var /** @type {?} */ forJitSerializer_1 = new ForJitSerializer(forJitCtx, symbolResolver, summaryResolver);\n types.forEach(function (_a) {\n var summary = _a.summary, metadata = _a.metadata;\n forJitSerializer_1.addSourceType(summary, metadata);\n });\n toJsonSerializer.unprocessedSymbolSummariesBySymbol.forEach(function (summary) {\n if (summaryResolver.isLibraryFile(summary.symbol.filePath) && summary.type) {\n forJitSerializer_1.addLibType(summary.type);\n }\n });\n forJitSerializer_1.serialize(exportAs);\n }\n return { json: json, exportAs: exportAs };\n}\n/**\n * @param {?} symbolCache\n * @param {?} summaryResolver\n * @param {?} libraryFileName\n * @param {?} json\n * @return {?}\n */\nexport function deserializeSummaries(symbolCache, summaryResolver, libraryFileName, json) {\n var /** @type {?} */ deserializer = new FromJsonDeserializer(symbolCache, summaryResolver);\n return deserializer.deserialize(libraryFileName, json);\n}\n/**\n * @param {?} outputCtx\n * @param {?} reference\n * @return {?}\n */\nexport function createForJitStub(outputCtx, reference) {\n return createSummaryForJitFunction(outputCtx, reference, o.NULL_EXPR);\n}\n/**\n * @param {?} outputCtx\n * @param {?} reference\n * @param {?} value\n * @return {?}\n */\nfunction createSummaryForJitFunction(outputCtx, reference, value) {\n var /** @type {?} */ fnName = summaryForJitName(reference.name);\n outputCtx.statements.push(o.fn([], [new o.ReturnStatement(value)], new o.ArrayType(o.DYNAMIC_TYPE)).toDeclStmt(fnName, [\n o.StmtModifier.Final, o.StmtModifier.Exported\n ]));\n}\n/** @enum {number} */\nvar SerializationFlags = {\n None: 0,\n ResolveValue: 1,\n};\nvar ToJsonSerializer = /** @class */ (function (_super) {\n tslib_1.__extends(ToJsonSerializer, _super);\n function ToJsonSerializer(symbolResolver, summaryResolver, srcFileName) {\n var _this = _super.call(this) || this;\n _this.symbolResolver = symbolResolver;\n _this.summaryResolver = summaryResolver;\n _this.srcFileName = srcFileName;\n _this.symbols = [];\n _this.indexBySymbol = new Map();\n _this.reexportedBy = new Map();\n _this.processedSummaryBySymbol = new Map();\n _this.processedSummaries = [];\n _this.unprocessedSymbolSummariesBySymbol = new Map();\n _this.moduleName = symbolResolver.getKnownModuleName(srcFileName);\n return _this;\n }\n /**\n * @param {?} summary\n * @return {?}\n */\n ToJsonSerializer.prototype.addSummary = /**\n * @param {?} summary\n * @return {?}\n */\n function (summary) {\n var _this = this;\n var /** @type {?} */ unprocessedSummary = this.unprocessedSymbolSummariesBySymbol.get(summary.symbol);\n var /** @type {?} */ processedSummary = this.processedSummaryBySymbol.get(summary.symbol);\n if (!unprocessedSummary) {\n unprocessedSummary = { symbol: summary.symbol, metadata: undefined };\n this.unprocessedSymbolSummariesBySymbol.set(summary.symbol, unprocessedSummary);\n processedSummary = { symbol: this.processValue(summary.symbol, 0 /* None */) };\n this.processedSummaries.push(processedSummary);\n this.processedSummaryBySymbol.set(summary.symbol, processedSummary);\n }\n if (!unprocessedSummary.metadata && summary.metadata) {\n var /** @type {?} */ metadata_1 = summary.metadata || {};\n if (metadata_1.__symbolic === 'class') {\n // For classes, we keep everything except their class decorators.\n // We need to keep e.g. the ctor args, method names, method decorators\n // so that the class can be extended in another compilation unit.\n // We don't keep the class decorators as\n // 1) they refer to data\n // that should not cause a rebuild of downstream compilation units\n // (e.g. inline templates of @Component, or @NgModule.declarations)\n // 2) their data is already captured in TypeSummaries, e.g. DirectiveSummary.\n var /** @type {?} */ clone_1 = {};\n Object.keys(metadata_1).forEach(function (propName) {\n if (propName !== 'decorators') {\n clone_1[propName] = metadata_1[propName];\n }\n });\n metadata_1 = clone_1;\n }\n else if (isCall(metadata_1)) {\n if (!isFunctionCall(metadata_1) && !isMethodCallOnVariable(metadata_1)) {\n // Don't store complex calls as we won't be able to simplify them anyways later on.\n // Don't store complex calls as we won't be able to simplify them anyways later on.\n metadata_1 = {\n __symbolic: 'error',\n message: 'Complex function calls are not supported.',\n };\n }\n }\n // Note: We need to keep storing ctor calls for e.g.\n // `export const x = new InjectionToken(...)`\n unprocessedSummary.metadata = metadata_1;\n processedSummary.metadata = this.processValue(metadata_1, 1 /* ResolveValue */);\n if (metadata_1 instanceof StaticSymbol &&\n this.summaryResolver.isLibraryFile(metadata_1.filePath)) {\n var /** @type {?} */ declarationSymbol = this.symbols[/** @type {?} */ ((this.indexBySymbol.get(metadata_1)))];\n if (!isLoweredSymbol(declarationSymbol.name)) {\n // Note: symbols that were introduced during codegen in the user file can have a reexport\n // if a user used `export *`. However, we can't rely on this as tsickle will change\n // `export *` into named exports, using only the information from the typechecker.\n // As we introduce the new symbols after typecheck, Tsickle does not know about them,\n // and omits them when expanding `export *`.\n // So we have to keep reexporting these symbols manually via .ngfactory files.\n this.reexportedBy.set(declarationSymbol, summary.symbol);\n }\n }\n }\n if (!unprocessedSummary.type && summary.type) {\n unprocessedSummary.type = summary.type;\n // Note: We don't add the summaries of all referenced symbols as for the ResolvedSymbols,\n // as the type summaries already contain the transitive data that they require\n // (in a minimal way).\n processedSummary.type = this.processValue(summary.type, 0 /* None */);\n // except for reexported directives / pipes, so we need to store\n // their summaries explicitly.\n if (summary.type.summaryKind === CompileSummaryKind.NgModule) {\n var /** @type {?} */ ngModuleSummary = /** @type {?} */ (summary.type);\n ngModuleSummary.exportedDirectives.concat(ngModuleSummary.exportedPipes).forEach(function (id) {\n var /** @type {?} */ symbol = id.reference;\n if (_this.summaryResolver.isLibraryFile(symbol.filePath) &&\n !_this.unprocessedSymbolSummariesBySymbol.has(symbol)) {\n var /** @type {?} */ summary_1 = _this.summaryResolver.resolveSummary(symbol);\n if (summary_1) {\n _this.addSummary(summary_1);\n }\n }\n });\n }\n }\n };\n /**\n * @return {?}\n */\n ToJsonSerializer.prototype.serialize = /**\n * @return {?}\n */\n function () {\n var _this = this;\n var /** @type {?} */ exportAs = [];\n var /** @type {?} */ json = JSON.stringify({\n moduleName: this.moduleName,\n summaries: this.processedSummaries,\n symbols: this.symbols.map(function (symbol, index) {\n symbol.assertNoMembers();\n var /** @type {?} */ importAs = /** @type {?} */ ((undefined));\n if (_this.summaryResolver.isLibraryFile(symbol.filePath)) {\n var /** @type {?} */ reexportSymbol = _this.reexportedBy.get(symbol);\n if (reexportSymbol) {\n importAs = /** @type {?} */ ((_this.indexBySymbol.get(reexportSymbol)));\n }\n else {\n var /** @type {?} */ summary = _this.unprocessedSymbolSummariesBySymbol.get(symbol);\n if (!summary || !summary.metadata || summary.metadata.__symbolic !== 'interface') {\n importAs = symbol.name + \"_\" + index;\n exportAs.push({ symbol: symbol, exportAs: importAs });\n }\n }\n }\n return {\n __symbol: index,\n name: symbol.name,\n filePath: _this.summaryResolver.toSummaryFileName(symbol.filePath, _this.srcFileName),\n importAs: importAs\n };\n })\n });\n return { json: json, exportAs: exportAs };\n };\n /**\n * @param {?} value\n * @param {?} flags\n * @return {?}\n */\n ToJsonSerializer.prototype.processValue = /**\n * @param {?} value\n * @param {?} flags\n * @return {?}\n */\n function (value, flags) {\n return visitValue(value, this, flags);\n };\n /**\n * @param {?} value\n * @param {?} context\n * @return {?}\n */\n ToJsonSerializer.prototype.visitOther = /**\n * @param {?} value\n * @param {?} context\n * @return {?}\n */\n function (value, context) {\n if (value instanceof StaticSymbol) {\n var /** @type {?} */ baseSymbol = this.symbolResolver.getStaticSymbol(value.filePath, value.name);\n var /** @type {?} */ index = this.visitStaticSymbol(baseSymbol, context);\n return { __symbol: index, members: value.members };\n }\n };\n /**\n * Returns null if the options.resolveValue is true, and the summary for the symbol\n * resolved to a type or could not be resolved.\n * @param {?} baseSymbol\n * @param {?} flags\n * @return {?}\n */\n ToJsonSerializer.prototype.visitStaticSymbol = /**\n * Returns null if the options.resolveValue is true, and the summary for the symbol\n * resolved to a type or could not be resolved.\n * @param {?} baseSymbol\n * @param {?} flags\n * @return {?}\n */\n function (baseSymbol, flags) {\n var /** @type {?} */ index = this.indexBySymbol.get(baseSymbol);\n var /** @type {?} */ summary = null;\n if (flags & 1 /* ResolveValue */ &&\n this.summaryResolver.isLibraryFile(baseSymbol.filePath)) {\n if (this.unprocessedSymbolSummariesBySymbol.has(baseSymbol)) {\n // the summary for this symbol was already added\n // -> nothing to do.\n return /** @type {?} */ ((index));\n }\n summary = this.loadSummary(baseSymbol);\n if (summary && summary.metadata instanceof StaticSymbol) {\n // The summary is a reexport\n index = this.visitStaticSymbol(summary.metadata, flags);\n // reset the summary as it is just a reexport, so we don't want to store it.\n summary = null;\n }\n }\n else if (index != null) {\n // Note: == on purpose to compare with undefined!\n // No summary and the symbol is already added -> nothing to do.\n return index;\n }\n // Note: == on purpose to compare with undefined!\n if (index == null) {\n index = this.symbols.length;\n this.symbols.push(baseSymbol);\n }\n this.indexBySymbol.set(baseSymbol, index);\n if (summary) {\n this.addSummary(summary);\n }\n return index;\n };\n /**\n * @param {?} symbol\n * @return {?}\n */\n ToJsonSerializer.prototype.loadSummary = /**\n * @param {?} symbol\n * @return {?}\n */\n function (symbol) {\n var /** @type {?} */ summary = this.summaryResolver.resolveSummary(symbol);\n if (!summary) {\n // some symbols might originate from a plain typescript library\n // that just exported .d.ts and .metadata.json files, i.e. where no summary\n // files were created.\n var /** @type {?} */ resolvedSymbol = this.symbolResolver.resolveSymbol(symbol);\n if (resolvedSymbol) {\n summary = { symbol: resolvedSymbol.symbol, metadata: resolvedSymbol.metadata };\n }\n }\n return summary;\n };\n return ToJsonSerializer;\n}(ValueTransformer));\nfunction ToJsonSerializer_tsickle_Closure_declarations() {\n /** @type {?} */\n ToJsonSerializer.prototype.symbols;\n /** @type {?} */\n ToJsonSerializer.prototype.indexBySymbol;\n /** @type {?} */\n ToJsonSerializer.prototype.reexportedBy;\n /** @type {?} */\n ToJsonSerializer.prototype.processedSummaryBySymbol;\n /** @type {?} */\n ToJsonSerializer.prototype.processedSummaries;\n /** @type {?} */\n ToJsonSerializer.prototype.moduleName;\n /** @type {?} */\n ToJsonSerializer.prototype.unprocessedSymbolSummariesBySymbol;\n /** @type {?} */\n ToJsonSerializer.prototype.symbolResolver;\n /** @type {?} */\n ToJsonSerializer.prototype.summaryResolver;\n /** @type {?} */\n ToJsonSerializer.prototype.srcFileName;\n}\nvar ForJitSerializer = /** @class */ (function () {\n function ForJitSerializer(outputCtx, symbolResolver, summaryResolver) {\n this.outputCtx = outputCtx;\n this.symbolResolver = symbolResolver;\n this.summaryResolver = summaryResolver;\n this.data = [];\n }\n /**\n * @param {?} summary\n * @param {?} metadata\n * @return {?}\n */\n ForJitSerializer.prototype.addSourceType = /**\n * @param {?} summary\n * @param {?} metadata\n * @return {?}\n */\n function (summary, metadata) {\n this.data.push({ summary: summary, metadata: metadata, isLibrary: false });\n };\n /**\n * @param {?} summary\n * @return {?}\n */\n ForJitSerializer.prototype.addLibType = /**\n * @param {?} summary\n * @return {?}\n */\n function (summary) {\n this.data.push({ summary: summary, metadata: null, isLibrary: true });\n };\n /**\n * @param {?} exportAsArr\n * @return {?}\n */\n ForJitSerializer.prototype.serialize = /**\n * @param {?} exportAsArr\n * @return {?}\n */\n function (exportAsArr) {\n var _this = this;\n var /** @type {?} */ exportAsBySymbol = new Map();\n for (var _i = 0, exportAsArr_1 = exportAsArr; _i < exportAsArr_1.length; _i++) {\n var _a = exportAsArr_1[_i], symbol = _a.symbol, exportAs = _a.exportAs;\n exportAsBySymbol.set(symbol, exportAs);\n }\n var /** @type {?} */ ngModuleSymbols = new Set();\n for (var _b = 0, _c = this.data; _b < _c.length; _b++) {\n var _d = _c[_b], summary = _d.summary, metadata = _d.metadata, isLibrary = _d.isLibrary;\n if (summary.summaryKind === CompileSummaryKind.NgModule) {\n // collect the symbols that refer to NgModule classes.\n // Note: we can't just rely on `summary.type.summaryKind` to determine this as\n // we don't add the summaries of all referenced symbols when we serialize type summaries.\n // See serializeSummaries for details.\n ngModuleSymbols.add(summary.type.reference);\n var /** @type {?} */ modSummary = /** @type {?} */ (summary);\n for (var _e = 0, _f = modSummary.modules; _e < _f.length; _e++) {\n var mod = _f[_e];\n ngModuleSymbols.add(mod.reference);\n }\n }\n if (!isLibrary) {\n var /** @type {?} */ fnName = summaryForJitName(summary.type.reference.name);\n createSummaryForJitFunction(this.outputCtx, summary.type.reference, this.serializeSummaryWithDeps(summary, /** @type {?} */ ((metadata))));\n }\n }\n ngModuleSymbols.forEach(function (ngModuleSymbol) {\n if (_this.summaryResolver.isLibraryFile(ngModuleSymbol.filePath)) {\n var /** @type {?} */ exportAs = exportAsBySymbol.get(ngModuleSymbol) || ngModuleSymbol.name;\n var /** @type {?} */ jitExportAsName = summaryForJitName(exportAs);\n _this.outputCtx.statements.push(o.variable(jitExportAsName)\n .set(_this.serializeSummaryRef(ngModuleSymbol))\n .toDeclStmt(null, [o.StmtModifier.Exported]));\n }\n });\n };\n /**\n * @param {?} summary\n * @param {?} metadata\n * @return {?}\n */\n ForJitSerializer.prototype.serializeSummaryWithDeps = /**\n * @param {?} summary\n * @param {?} metadata\n * @return {?}\n */\n function (summary, metadata) {\n var _this = this;\n var /** @type {?} */ expressions = [this.serializeSummary(summary)];\n var /** @type {?} */ providers = [];\n if (metadata instanceof CompileNgModuleMetadata) {\n expressions.push.apply(expressions, \n // For directives / pipes, we only add the declared ones,\n // and rely on transitively importing NgModules to get the transitive\n // summaries.\n metadata.declaredDirectives.concat(metadata.declaredPipes)\n .map(function (type) { return type.reference; })\n .concat(metadata.transitiveModule.modules.map(function (type) { return type.reference; })\n .filter(function (ref) { return ref !== metadata.type.reference; }))\n .map(function (ref) { return _this.serializeSummaryRef(ref); }));\n // Note: We don't use `NgModuleSummary.providers`, as that one is transitive,\n // and we already have transitive modules.\n providers = metadata.providers;\n }\n else if (summary.summaryKind === CompileSummaryKind.Directive) {\n var /** @type {?} */ dirSummary = /** @type {?} */ (summary);\n providers = dirSummary.providers.concat(dirSummary.viewProviders);\n }\n // Note: We can't just refer to the `ngsummary.ts` files for `useClass` providers (as we do for\n // declaredDirectives / declaredPipes), as we allow\n // providers without ctor arguments to skip the `@Injectable` decorator,\n // i.e. we didn't generate .ngsummary.ts files for these.\n expressions.push.apply(expressions, providers.filter(function (provider) { return !!provider.useClass; }).map(function (provider) {\n return _this.serializeSummary(/** @type {?} */ ({\n summaryKind: CompileSummaryKind.Injectable, type: provider.useClass\n }));\n }));\n return o.literalArr(expressions);\n };\n /**\n * @param {?} typeSymbol\n * @return {?}\n */\n ForJitSerializer.prototype.serializeSummaryRef = /**\n * @param {?} typeSymbol\n * @return {?}\n */\n function (typeSymbol) {\n var /** @type {?} */ jitImportedSymbol = this.symbolResolver.getStaticSymbol(summaryForJitFileName(typeSymbol.filePath), summaryForJitName(typeSymbol.name));\n return this.outputCtx.importExpr(jitImportedSymbol);\n };\n /**\n * @param {?} data\n * @return {?}\n */\n ForJitSerializer.prototype.serializeSummary = /**\n * @param {?} data\n * @return {?}\n */\n function (data) {\n var /** @type {?} */ outputCtx = this.outputCtx;\n var Transformer = /** @class */ (function () {\n function Transformer() {\n }\n /**\n * @param {?} arr\n * @param {?} context\n * @return {?}\n */\n Transformer.prototype.visitArray = /**\n * @param {?} arr\n * @param {?} context\n * @return {?}\n */\n function (arr, context) {\n var _this = this;\n return o.literalArr(arr.map(function (entry) { return visitValue(entry, _this, context); }));\n };\n /**\n * @param {?} map\n * @param {?} context\n * @return {?}\n */\n Transformer.prototype.visitStringMap = /**\n * @param {?} map\n * @param {?} context\n * @return {?}\n */\n function (map, context) {\n var _this = this;\n return new o.LiteralMapExpr(Object.keys(map).map(function (key) { return new o.LiteralMapEntry(key, visitValue(map[key], _this, context), false); }));\n };\n /**\n * @param {?} value\n * @param {?} context\n * @return {?}\n */\n Transformer.prototype.visitPrimitive = /**\n * @param {?} value\n * @param {?} context\n * @return {?}\n */\n function (value, context) { return o.literal(value); };\n /**\n * @param {?} value\n * @param {?} context\n * @return {?}\n */\n Transformer.prototype.visitOther = /**\n * @param {?} value\n * @param {?} context\n * @return {?}\n */\n function (value, context) {\n if (value instanceof StaticSymbol) {\n return outputCtx.importExpr(value);\n }\n else {\n throw new Error(\"Illegal State: Encountered value \" + value);\n }\n };\n return Transformer;\n }());\n return visitValue(data, new Transformer(), null);\n };\n return ForJitSerializer;\n}());\nfunction ForJitSerializer_tsickle_Closure_declarations() {\n /** @type {?} */\n ForJitSerializer.prototype.data;\n /** @type {?} */\n ForJitSerializer.prototype.outputCtx;\n /** @type {?} */\n ForJitSerializer.prototype.symbolResolver;\n /** @type {?} */\n ForJitSerializer.prototype.summaryResolver;\n}\nvar FromJsonDeserializer = /** @class */ (function (_super) {\n tslib_1.__extends(FromJsonDeserializer, _super);\n function FromJsonDeserializer(symbolCache, summaryResolver) {\n var _this = _super.call(this) || this;\n _this.symbolCache = symbolCache;\n _this.summaryResolver = summaryResolver;\n return _this;\n }\n /**\n * @param {?} libraryFileName\n * @param {?} json\n * @return {?}\n */\n FromJsonDeserializer.prototype.deserialize = /**\n * @param {?} libraryFileName\n * @param {?} json\n * @return {?}\n */\n function (libraryFileName, json) {\n var _this = this;\n var /** @type {?} */ data = JSON.parse(json);\n var /** @type {?} */ allImportAs = [];\n this.symbols = data.symbols.map(function (serializedSymbol) {\n return _this.symbolCache.get(_this.summaryResolver.fromSummaryFileName(serializedSymbol.filePath, libraryFileName), serializedSymbol.name);\n });\n data.symbols.forEach(function (serializedSymbol, index) {\n var /** @type {?} */ symbol = _this.symbols[index];\n var /** @type {?} */ importAs = serializedSymbol.importAs;\n if (typeof importAs === 'number') {\n allImportAs.push({ symbol: symbol, importAs: _this.symbols[importAs] });\n }\n else if (typeof importAs === 'string') {\n allImportAs.push({ symbol: symbol, importAs: _this.symbolCache.get(ngfactoryFilePath(libraryFileName), importAs) });\n }\n });\n var /** @type {?} */ summaries = /** @type {?} */ (visitValue(data.summaries, this, null));\n return { moduleName: data.moduleName, summaries: summaries, importAs: allImportAs };\n };\n /**\n * @param {?} map\n * @param {?} context\n * @return {?}\n */\n FromJsonDeserializer.prototype.visitStringMap = /**\n * @param {?} map\n * @param {?} context\n * @return {?}\n */\n function (map, context) {\n if ('__symbol' in map) {\n var /** @type {?} */ baseSymbol = this.symbols[map['__symbol']];\n var /** @type {?} */ members = map['members'];\n return members.length ? this.symbolCache.get(baseSymbol.filePath, baseSymbol.name, members) :\n baseSymbol;\n }\n else {\n return _super.prototype.visitStringMap.call(this, map, context);\n }\n };\n return FromJsonDeserializer;\n}(ValueTransformer));\nfunction FromJsonDeserializer_tsickle_Closure_declarations() {\n /** @type {?} */\n FromJsonDeserializer.prototype.symbols;\n /** @type {?} */\n FromJsonDeserializer.prototype.symbolCache;\n /** @type {?} */\n FromJsonDeserializer.prototype.summaryResolver;\n}\n/**\n * @param {?} metadata\n * @return {?}\n */\nfunction isCall(metadata) {\n return metadata && metadata.__symbolic === 'call';\n}\n/**\n * @param {?} metadata\n * @return {?}\n */\nfunction isFunctionCall(metadata) {\n return isCall(metadata) && unwrapResolvedMetadata(metadata.expression) instanceof StaticSymbol;\n}\n/**\n * @param {?} metadata\n * @return {?}\n */\nfunction isMethodCallOnVariable(metadata) {\n return isCall(metadata) && metadata.expression && metadata.expression.__symbolic === 'select' &&\n unwrapResolvedMetadata(metadata.expression.expression) instanceof StaticSymbol;\n}\n//# sourceMappingURL=summary_serializer.js.map","/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this 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 { componentFactoryName, flatten, identifierName, templateSourceUrl } from '../compile_metadata';\nimport { ViewEncapsulation } from '../core';\nimport { MessageBundle } from '../i18n/message_bundle';\nimport { Identifiers, createTokenForExternalReference } from '../identifiers';\nimport { HtmlParser } from '../ml_parser/html_parser';\nimport { InterpolationConfig } from '../ml_parser/interpolation_config';\nimport * as o from '../output/output_ast';\nimport { syntaxError, visitValue } from '../util';\nimport { GeneratedFile } from './generated_file';\nimport { listLazyRoutes, parseLazyRoute } from './lazy_routes';\nimport { StaticSymbol } from './static_symbol';\nimport { createForJitStub, serializeSummaries } from './summary_serializer';\nimport { ngfactoryFilePath, normalizeGenFileSuffix, splitTypescriptSuffix, summaryFileName, summaryForJitFileName } from './util';\n/** @enum {number} */\nvar StubEmitFlags = {\n Basic: 1,\n TypeCheck: 2,\n All: 3,\n};\nStubEmitFlags[StubEmitFlags.Basic] = \"Basic\";\nStubEmitFlags[StubEmitFlags.TypeCheck] = \"TypeCheck\";\nStubEmitFlags[StubEmitFlags.All] = \"All\";\nvar AotCompiler = /** @class */ (function () {\n function AotCompiler(_config, _options, _host, _reflector, _metadataResolver, _templateParser, _styleCompiler, _viewCompiler, _typeCheckCompiler, _ngModuleCompiler, _outputEmitter, _summaryResolver, _symbolResolver) {\n this._config = _config;\n this._options = _options;\n this._host = _host;\n this._reflector = _reflector;\n this._metadataResolver = _metadataResolver;\n this._templateParser = _templateParser;\n this._styleCompiler = _styleCompiler;\n this._viewCompiler = _viewCompiler;\n this._typeCheckCompiler = _typeCheckCompiler;\n this._ngModuleCompiler = _ngModuleCompiler;\n this._outputEmitter = _outputEmitter;\n this._summaryResolver = _summaryResolver;\n this._symbolResolver = _symbolResolver;\n this._templateAstCache = new Map();\n this._analyzedFiles = new Map();\n }\n /**\n * @return {?}\n */\n AotCompiler.prototype.clearCache = /**\n * @return {?}\n */\n function () { this._metadataResolver.clearCache(); };\n /**\n * @param {?} rootFiles\n * @return {?}\n */\n AotCompiler.prototype.analyzeModulesSync = /**\n * @param {?} rootFiles\n * @return {?}\n */\n function (rootFiles) {\n var _this = this;\n var /** @type {?} */ analyzeResult = analyzeAndValidateNgModules(rootFiles, this._host, this._symbolResolver, this._metadataResolver);\n analyzeResult.ngModules.forEach(function (ngModule) {\n return _this._metadataResolver.loadNgModuleDirectiveAndPipeMetadata(ngModule.type.reference, true);\n });\n return analyzeResult;\n };\n /**\n * @param {?} rootFiles\n * @return {?}\n */\n AotCompiler.prototype.analyzeModulesAsync = /**\n * @param {?} rootFiles\n * @return {?}\n */\n function (rootFiles) {\n var _this = this;\n var /** @type {?} */ analyzeResult = analyzeAndValidateNgModules(rootFiles, this._host, this._symbolResolver, this._metadataResolver);\n return Promise\n .all(analyzeResult.ngModules.map(function (ngModule) {\n return _this._metadataResolver.loadNgModuleDirectiveAndPipeMetadata(ngModule.type.reference, false);\n }))\n .then(function () { return analyzeResult; });\n };\n /**\n * @param {?} fileName\n * @return {?}\n */\n AotCompiler.prototype._analyzeFile = /**\n * @param {?} fileName\n * @return {?}\n */\n function (fileName) {\n var /** @type {?} */ analyzedFile = this._analyzedFiles.get(fileName);\n if (!analyzedFile) {\n analyzedFile =\n analyzeFile(this._host, this._symbolResolver, this._metadataResolver, fileName);\n this._analyzedFiles.set(fileName, analyzedFile);\n }\n return analyzedFile;\n };\n /**\n * @param {?} fileName\n * @return {?}\n */\n AotCompiler.prototype.findGeneratedFileNames = /**\n * @param {?} fileName\n * @return {?}\n */\n function (fileName) {\n var _this = this;\n var /** @type {?} */ genFileNames = [];\n var /** @type {?} */ file = this._analyzeFile(fileName);\n // Make sure we create a .ngfactory if we have a injectable/directive/pipe/NgModule\n // or a reference to a non source file.\n // Note: This is overestimating the required .ngfactory files as the real calculation is harder.\n // Only do this for StubEmitFlags.Basic, as adding a type check block\n // does not change this file (as we generate type check blocks based on NgModules).\n if (this._options.allowEmptyCodegenFiles || file.directives.length || file.pipes.length ||\n file.injectables.length || file.ngModules.length || file.exportsNonSourceFiles) {\n genFileNames.push(ngfactoryFilePath(file.fileName, true));\n if (this._options.enableSummariesForJit) {\n genFileNames.push(summaryForJitFileName(file.fileName, true));\n }\n }\n var /** @type {?} */ fileSuffix = normalizeGenFileSuffix(splitTypescriptSuffix(file.fileName, true)[1]);\n file.directives.forEach(function (dirSymbol) {\n var /** @type {?} */ compMeta = /** @type {?} */ ((_this._metadataResolver.getNonNormalizedDirectiveMetadata(dirSymbol))).metadata;\n if (!compMeta.isComponent) {\n return;\n } /** @type {?} */\n ((\n // Note: compMeta is a component and therefore template is non null.\n compMeta.template)).styleUrls.forEach(function (styleUrl) {\n var /** @type {?} */ normalizedUrl = _this._host.resourceNameToFileName(styleUrl, file.fileName);\n if (!normalizedUrl) {\n throw syntaxError(\"Couldn't resolve resource \" + styleUrl + \" relative to \" + file.fileName);\n }\n var /** @type {?} */ needsShim = (/** @type {?} */ ((compMeta.template)).encapsulation || _this._config.defaultEncapsulation) === ViewEncapsulation.Emulated;\n genFileNames.push(_stylesModuleUrl(normalizedUrl, needsShim, fileSuffix));\n if (_this._options.allowEmptyCodegenFiles) {\n genFileNames.push(_stylesModuleUrl(normalizedUrl, !needsShim, fileSuffix));\n }\n });\n });\n return genFileNames;\n };\n /**\n * @param {?} genFileName\n * @param {?=} originalFileName\n * @return {?}\n */\n AotCompiler.prototype.emitBasicStub = /**\n * @param {?} genFileName\n * @param {?=} originalFileName\n * @return {?}\n */\n function (genFileName, originalFileName) {\n var /** @type {?} */ outputCtx = this._createOutputContext(genFileName);\n if (genFileName.endsWith('.ngfactory.ts')) {\n if (!originalFileName) {\n throw new Error(\"Assertion error: require the original file for .ngfactory.ts stubs. File: \" + genFileName);\n }\n var /** @type {?} */ originalFile = this._analyzeFile(originalFileName);\n this._createNgFactoryStub(outputCtx, originalFile, StubEmitFlags.Basic);\n }\n else if (genFileName.endsWith('.ngsummary.ts')) {\n if (this._options.enableSummariesForJit) {\n if (!originalFileName) {\n throw new Error(\"Assertion error: require the original file for .ngsummary.ts stubs. File: \" + genFileName);\n }\n var /** @type {?} */ originalFile = this._analyzeFile(originalFileName);\n _createEmptyStub(outputCtx);\n originalFile.ngModules.forEach(function (ngModule) {\n // create exports that user code can reference\n createForJitStub(outputCtx, ngModule.type.reference);\n });\n }\n }\n else if (genFileName.endsWith('.ngstyle.ts')) {\n _createEmptyStub(outputCtx);\n }\n // Note: for the stubs, we don't need a property srcFileUrl,\n // as lateron in emitAllImpls we will create the proper GeneratedFiles with the\n // correct srcFileUrl.\n // This is good as e.g. for .ngstyle.ts files we can't derive\n // the url of components based on the genFileUrl.\n return this._codegenSourceModule('unknown', outputCtx);\n };\n /**\n * @param {?} genFileName\n * @param {?} originalFileName\n * @return {?}\n */\n AotCompiler.prototype.emitTypeCheckStub = /**\n * @param {?} genFileName\n * @param {?} originalFileName\n * @return {?}\n */\n function (genFileName, originalFileName) {\n var /** @type {?} */ originalFile = this._analyzeFile(originalFileName);\n var /** @type {?} */ outputCtx = this._createOutputContext(genFileName);\n if (genFileName.endsWith('.ngfactory.ts')) {\n this._createNgFactoryStub(outputCtx, originalFile, StubEmitFlags.TypeCheck);\n }\n return outputCtx.statements.length > 0 ?\n this._codegenSourceModule(originalFile.fileName, outputCtx) :\n null;\n };\n /**\n * @param {?} fileNames\n * @return {?}\n */\n AotCompiler.prototype.loadFilesAsync = /**\n * @param {?} fileNames\n * @return {?}\n */\n function (fileNames) {\n var _this = this;\n var /** @type {?} */ files = fileNames.map(function (fileName) { return _this._analyzeFile(fileName); });\n var /** @type {?} */ loadingPromises = [];\n files.forEach(function (file) {\n return file.ngModules.forEach(function (ngModule) {\n return loadingPromises.push(_this._metadataResolver.loadNgModuleDirectiveAndPipeMetadata(ngModule.type.reference, false));\n });\n });\n return Promise.all(loadingPromises).then(function (_) { return mergeAndValidateNgFiles(files); });\n };\n /**\n * @param {?} fileNames\n * @return {?}\n */\n AotCompiler.prototype.loadFilesSync = /**\n * @param {?} fileNames\n * @return {?}\n */\n function (fileNames) {\n var _this = this;\n var /** @type {?} */ files = fileNames.map(function (fileName) { return _this._analyzeFile(fileName); });\n files.forEach(function (file) {\n return file.ngModules.forEach(function (ngModule) {\n return _this._metadataResolver.loadNgModuleDirectiveAndPipeMetadata(ngModule.type.reference, true);\n });\n });\n return mergeAndValidateNgFiles(files);\n };\n /**\n * @param {?} outputCtx\n * @param {?} file\n * @param {?} emitFlags\n * @return {?}\n */\n AotCompiler.prototype._createNgFactoryStub = /**\n * @param {?} outputCtx\n * @param {?} file\n * @param {?} emitFlags\n * @return {?}\n */\n function (outputCtx, file, emitFlags) {\n var _this = this;\n var /** @type {?} */ componentId = 0;\n file.ngModules.forEach(function (ngModuleMeta, ngModuleIndex) {\n // Note: the code below needs to executed for StubEmitFlags.Basic and StubEmitFlags.TypeCheck,\n // so we don't change the .ngfactory file too much when adding the typecheck block.\n // create exports that user code can reference\n // Note: the code below needs to executed for StubEmitFlags.Basic and StubEmitFlags.TypeCheck,\n // so we don't change the .ngfactory file too much when adding the typecheck block.\n // create exports that user code can reference\n _this._ngModuleCompiler.createStub(outputCtx, ngModuleMeta.type.reference);\n // add references to the symbols from the metadata.\n // These can be used by the type check block for components,\n // and they also cause TypeScript to include these files into the program too,\n // which will make them part of the analyzedFiles.\n var /** @type {?} */ externalReferences = ngModuleMeta.transitiveModule.directives.map(function (d) { return d.reference; }).concat(ngModuleMeta.transitiveModule.pipes.map(function (d) { return d.reference; }), ngModuleMeta.importedModules.map(function (m) { return m.type.reference; }), ngModuleMeta.exportedModules.map(function (m) { return m.type.reference; }), _this._externalIdentifierReferences([Identifiers.TemplateRef, Identifiers.ElementRef]));\n var /** @type {?} */ externalReferenceVars = new Map();\n externalReferences.forEach(function (ref, typeIndex) {\n externalReferenceVars.set(ref, \"_decl\" + ngModuleIndex + \"_\" + typeIndex);\n });\n externalReferenceVars.forEach(function (varName, reference) {\n outputCtx.statements.push(o.variable(varName)\n .set(o.NULL_EXPR.cast(o.DYNAMIC_TYPE))\n .toDeclStmt(o.expressionType(outputCtx.importExpr(reference, /* typeParams */ null, /* useSummaries */ /* useSummaries */ false))));\n });\n if (emitFlags & StubEmitFlags.TypeCheck) {\n // add the typecheck block for all components of the NgModule\n ngModuleMeta.declaredDirectives.forEach(function (dirId) {\n var /** @type {?} */ compMeta = _this._metadataResolver.getDirectiveMetadata(dirId.reference);\n if (!compMeta.isComponent) {\n return;\n }\n componentId++;\n _this._createTypeCheckBlock(outputCtx, compMeta.type.reference.name + \"_Host_\" + componentId, ngModuleMeta, _this._metadataResolver.getHostComponentMetadata(compMeta), [compMeta.type], externalReferenceVars);\n _this._createTypeCheckBlock(outputCtx, compMeta.type.reference.name + \"_\" + componentId, ngModuleMeta, compMeta, ngModuleMeta.transitiveModule.directives, externalReferenceVars);\n });\n }\n });\n if (outputCtx.statements.length === 0) {\n _createEmptyStub(outputCtx);\n }\n };\n /**\n * @param {?} references\n * @return {?}\n */\n AotCompiler.prototype._externalIdentifierReferences = /**\n * @param {?} references\n * @return {?}\n */\n function (references) {\n var /** @type {?} */ result = [];\n for (var _i = 0, references_1 = references; _i < references_1.length; _i++) {\n var reference = references_1[_i];\n var /** @type {?} */ token = createTokenForExternalReference(this._reflector, reference);\n if (token.identifier) {\n result.push(token.identifier.reference);\n }\n }\n return result;\n };\n /**\n * @param {?} ctx\n * @param {?} componentId\n * @param {?} moduleMeta\n * @param {?} compMeta\n * @param {?} directives\n * @param {?} externalReferenceVars\n * @return {?}\n */\n AotCompiler.prototype._createTypeCheckBlock = /**\n * @param {?} ctx\n * @param {?} componentId\n * @param {?} moduleMeta\n * @param {?} compMeta\n * @param {?} directives\n * @param {?} externalReferenceVars\n * @return {?}\n */\n function (ctx, componentId, moduleMeta, compMeta, directives, externalReferenceVars) {\n var _a = this._parseTemplate(compMeta, moduleMeta, directives), parsedTemplate = _a.template, usedPipes = _a.pipes;\n (_b = ctx.statements).push.apply(_b, this._typeCheckCompiler.compileComponent(componentId, compMeta, parsedTemplate, usedPipes, externalReferenceVars, ctx));\n var _b;\n };\n /**\n * @param {?} analyzeResult\n * @param {?} locale\n * @return {?}\n */\n AotCompiler.prototype.emitMessageBundle = /**\n * @param {?} analyzeResult\n * @param {?} locale\n * @return {?}\n */\n function (analyzeResult, locale) {\n var _this = this;\n var /** @type {?} */ errors = [];\n var /** @type {?} */ htmlParser = new HtmlParser();\n // TODO(vicb): implicit tags & attributes\n var /** @type {?} */ messageBundle = new MessageBundle(htmlParser, [], {}, locale);\n analyzeResult.files.forEach(function (file) {\n var /** @type {?} */ compMetas = [];\n file.directives.forEach(function (directiveType) {\n var /** @type {?} */ dirMeta = _this._metadataResolver.getDirectiveMetadata(directiveType);\n if (dirMeta && dirMeta.isComponent) {\n compMetas.push(dirMeta);\n }\n });\n compMetas.forEach(function (compMeta) {\n var /** @type {?} */ html = /** @type {?} */ ((/** @type {?} */ ((compMeta.template)).template));\n var /** @type {?} */ interpolationConfig = InterpolationConfig.fromArray(/** @type {?} */ ((compMeta.template)).interpolation);\n errors.push.apply(errors, /** @type {?} */ ((messageBundle.updateFromTemplate(html, file.fileName, interpolationConfig))));\n });\n });\n if (errors.length) {\n throw new Error(errors.map(function (e) { return e.toString(); }).join('\\n'));\n }\n return messageBundle;\n };\n /**\n * @param {?} analyzeResult\n * @return {?}\n */\n AotCompiler.prototype.emitAllImpls = /**\n * @param {?} analyzeResult\n * @return {?}\n */\n function (analyzeResult) {\n var _this = this;\n var ngModuleByPipeOrDirective = analyzeResult.ngModuleByPipeOrDirective, files = analyzeResult.files;\n var /** @type {?} */ sourceModules = files.map(function (file) {\n return _this._compileImplFile(file.fileName, ngModuleByPipeOrDirective, file.directives, file.pipes, file.ngModules, file.injectables);\n });\n return flatten(sourceModules);\n };\n /**\n * @param {?} srcFileUrl\n * @param {?} ngModuleByPipeOrDirective\n * @param {?} directives\n * @param {?} pipes\n * @param {?} ngModules\n * @param {?} injectables\n * @return {?}\n */\n AotCompiler.prototype._compileImplFile = /**\n * @param {?} srcFileUrl\n * @param {?} ngModuleByPipeOrDirective\n * @param {?} directives\n * @param {?} pipes\n * @param {?} ngModules\n * @param {?} injectables\n * @return {?}\n */\n function (srcFileUrl, ngModuleByPipeOrDirective, directives, pipes, ngModules, injectables) {\n var _this = this;\n var /** @type {?} */ fileSuffix = normalizeGenFileSuffix(splitTypescriptSuffix(srcFileUrl, true)[1]);\n var /** @type {?} */ generatedFiles = [];\n var /** @type {?} */ outputCtx = this._createOutputContext(ngfactoryFilePath(srcFileUrl, true));\n generatedFiles.push.apply(generatedFiles, this._createSummary(srcFileUrl, directives, pipes, ngModules, injectables, outputCtx));\n // compile all ng modules\n ngModules.forEach(function (ngModuleMeta) { return _this._compileModule(outputCtx, ngModuleMeta); });\n // compile components\n directives.forEach(function (dirType) {\n var /** @type {?} */ compMeta = _this._metadataResolver.getDirectiveMetadata(/** @type {?} */ (dirType));\n if (!compMeta.isComponent) {\n return;\n }\n var /** @type {?} */ ngModule = ngModuleByPipeOrDirective.get(dirType);\n if (!ngModule) {\n throw new Error(\"Internal Error: cannot determine the module for component \" + identifierName(compMeta.type) + \"!\");\n }\n // compile styles\n var /** @type {?} */ componentStylesheet = _this._styleCompiler.compileComponent(outputCtx, compMeta); /** @type {?} */\n ((\n // Note: compMeta is a component and therefore template is non null.\n compMeta.template)).externalStylesheets.forEach(function (stylesheetMeta) {\n // Note: fill non shim and shim style files as they might\n // be shared by component with and without ViewEncapsulation.\n var /** @type {?} */ shim = _this._styleCompiler.needsStyleShim(compMeta);\n generatedFiles.push(_this._codegenStyles(srcFileUrl, compMeta, stylesheetMeta, shim, fileSuffix));\n if (_this._options.allowEmptyCodegenFiles) {\n generatedFiles.push(_this._codegenStyles(srcFileUrl, compMeta, stylesheetMeta, !shim, fileSuffix));\n }\n });\n // compile components\n var /** @type {?} */ compViewVars = _this._compileComponent(outputCtx, compMeta, ngModule, ngModule.transitiveModule.directives, componentStylesheet, fileSuffix);\n _this._compileComponentFactory(outputCtx, compMeta, ngModule, fileSuffix);\n });\n if (outputCtx.statements.length > 0 || this._options.allowEmptyCodegenFiles) {\n var /** @type {?} */ srcModule = this._codegenSourceModule(srcFileUrl, outputCtx);\n generatedFiles.unshift(srcModule);\n }\n return generatedFiles;\n };\n /**\n * @param {?} srcFileName\n * @param {?} directives\n * @param {?} pipes\n * @param {?} ngModules\n * @param {?} injectables\n * @param {?} ngFactoryCtx\n * @return {?}\n */\n AotCompiler.prototype._createSummary = /**\n * @param {?} srcFileName\n * @param {?} directives\n * @param {?} pipes\n * @param {?} ngModules\n * @param {?} injectables\n * @param {?} ngFactoryCtx\n * @return {?}\n */\n function (srcFileName, directives, pipes, ngModules, injectables, ngFactoryCtx) {\n var _this = this;\n var /** @type {?} */ symbolSummaries = this._symbolResolver.getSymbolsOf(srcFileName)\n .map(function (symbol) { return _this._symbolResolver.resolveSymbol(symbol); });\n var /** @type {?} */ typeData = ngModules.map(function (meta) {\n return ({\n summary: /** @type {?} */ ((_this._metadataResolver.getNgModuleSummary(meta.type.reference))),\n metadata: /** @type {?} */ ((_this._metadataResolver.getNgModuleMetadata(meta.type.reference)))\n });\n }).concat(directives.map(function (ref) {\n return ({\n summary: /** @type {?} */ ((_this._metadataResolver.getDirectiveSummary(ref))),\n metadata: /** @type {?} */ ((_this._metadataResolver.getDirectiveMetadata(ref)))\n });\n }), pipes.map(function (ref) {\n return ({\n summary: /** @type {?} */ ((_this._metadataResolver.getPipeSummary(ref))),\n metadata: /** @type {?} */ ((_this._metadataResolver.getPipeMetadata(ref)))\n });\n }), injectables.map(function (ref) {\n return ({\n summary: /** @type {?} */ ((_this._metadataResolver.getInjectableSummary(ref))),\n metadata: /** @type {?} */ ((_this._metadataResolver.getInjectableSummary(ref))).type\n });\n }));\n var /** @type {?} */ forJitOutputCtx = this._options.enableSummariesForJit ?\n this._createOutputContext(summaryForJitFileName(srcFileName, true)) :\n null;\n var _a = serializeSummaries(srcFileName, forJitOutputCtx, this._summaryResolver, this._symbolResolver, symbolSummaries, typeData), json = _a.json, exportAs = _a.exportAs;\n exportAs.forEach(function (entry) {\n ngFactoryCtx.statements.push(o.variable(entry.exportAs).set(ngFactoryCtx.importExpr(entry.symbol)).toDeclStmt(null, [\n o.StmtModifier.Exported\n ]));\n });\n var /** @type {?} */ summaryJson = new GeneratedFile(srcFileName, summaryFileName(srcFileName), json);\n var /** @type {?} */ result = [summaryJson];\n if (forJitOutputCtx) {\n result.push(this._codegenSourceModule(srcFileName, forJitOutputCtx));\n }\n return result;\n };\n /**\n * @param {?} outputCtx\n * @param {?} ngModule\n * @return {?}\n */\n AotCompiler.prototype._compileModule = /**\n * @param {?} outputCtx\n * @param {?} ngModule\n * @return {?}\n */\n function (outputCtx, ngModule) {\n var /** @type {?} */ providers = [];\n if (this._options.locale) {\n var /** @type {?} */ normalizedLocale = this._options.locale.replace(/_/g, '-');\n providers.push({\n token: createTokenForExternalReference(this._reflector, Identifiers.LOCALE_ID),\n useValue: normalizedLocale,\n });\n }\n if (this._options.i18nFormat) {\n providers.push({\n token: createTokenForExternalReference(this._reflector, Identifiers.TRANSLATIONS_FORMAT),\n useValue: this._options.i18nFormat\n });\n }\n this._ngModuleCompiler.compile(outputCtx, ngModule, providers);\n };\n /**\n * @param {?} outputCtx\n * @param {?} compMeta\n * @param {?} ngModule\n * @param {?} fileSuffix\n * @return {?}\n */\n AotCompiler.prototype._compileComponentFactory = /**\n * @param {?} outputCtx\n * @param {?} compMeta\n * @param {?} ngModule\n * @param {?} fileSuffix\n * @return {?}\n */\n function (outputCtx, compMeta, ngModule, fileSuffix) {\n var /** @type {?} */ hostMeta = this._metadataResolver.getHostComponentMetadata(compMeta);\n var /** @type {?} */ hostViewFactoryVar = this._compileComponent(outputCtx, hostMeta, ngModule, [compMeta.type], null, fileSuffix)\n .viewClassVar;\n var /** @type {?} */ compFactoryVar = componentFactoryName(compMeta.type.reference);\n var /** @type {?} */ inputsExprs = [];\n for (var /** @type {?} */ propName in compMeta.inputs) {\n var /** @type {?} */ templateName = compMeta.inputs[propName];\n // Don't quote so that the key gets minified...\n inputsExprs.push(new o.LiteralMapEntry(propName, o.literal(templateName), false));\n }\n var /** @type {?} */ outputsExprs = [];\n for (var /** @type {?} */ propName in compMeta.outputs) {\n var /** @type {?} */ templateName = compMeta.outputs[propName];\n // Don't quote so that the key gets minified...\n outputsExprs.push(new o.LiteralMapEntry(propName, o.literal(templateName), false));\n }\n outputCtx.statements.push(o.variable(compFactoryVar)\n .set(o.importExpr(Identifiers.createComponentFactory).callFn([\n o.literal(compMeta.selector), outputCtx.importExpr(compMeta.type.reference),\n o.variable(hostViewFactoryVar), new o.LiteralMapExpr(inputsExprs),\n new o.LiteralMapExpr(outputsExprs),\n o.literalArr(/** @type {?} */ ((compMeta.template)).ngContentSelectors.map(function (selector) { return o.literal(selector); }))\n ]))\n .toDeclStmt(o.importType(Identifiers.ComponentFactory, [/** @type {?} */ ((o.expressionType(outputCtx.importExpr(compMeta.type.reference))))], [o.TypeModifier.Const]), [o.StmtModifier.Final, o.StmtModifier.Exported]));\n };\n /**\n * @param {?} outputCtx\n * @param {?} compMeta\n * @param {?} ngModule\n * @param {?} directiveIdentifiers\n * @param {?} componentStyles\n * @param {?} fileSuffix\n * @return {?}\n */\n AotCompiler.prototype._compileComponent = /**\n * @param {?} outputCtx\n * @param {?} compMeta\n * @param {?} ngModule\n * @param {?} directiveIdentifiers\n * @param {?} componentStyles\n * @param {?} fileSuffix\n * @return {?}\n */\n function (outputCtx, compMeta, ngModule, directiveIdentifiers, componentStyles, fileSuffix) {\n var _a = this._parseTemplate(compMeta, ngModule, directiveIdentifiers), parsedTemplate = _a.template, usedPipes = _a.pipes;\n var /** @type {?} */ stylesExpr = componentStyles ? o.variable(componentStyles.stylesVar) : o.literalArr([]);\n var /** @type {?} */ viewResult = this._viewCompiler.compileComponent(outputCtx, compMeta, parsedTemplate, stylesExpr, usedPipes);\n if (componentStyles) {\n _resolveStyleStatements(this._symbolResolver, componentStyles, this._styleCompiler.needsStyleShim(compMeta), fileSuffix);\n }\n return viewResult;\n };\n /**\n * @param {?} compMeta\n * @param {?} ngModule\n * @param {?} directiveIdentifiers\n * @return {?}\n */\n AotCompiler.prototype._parseTemplate = /**\n * @param {?} compMeta\n * @param {?} ngModule\n * @param {?} directiveIdentifiers\n * @return {?}\n */\n function (compMeta, ngModule, directiveIdentifiers) {\n var _this = this;\n if (this._templateAstCache.has(compMeta.type.reference)) {\n return /** @type {?} */ ((this._templateAstCache.get(compMeta.type.reference)));\n }\n var /** @type {?} */ preserveWhitespaces = /** @type {?} */ ((/** @type {?} */ ((compMeta)).template)).preserveWhitespaces;\n var /** @type {?} */ directives = directiveIdentifiers.map(function (dir) { return _this._metadataResolver.getDirectiveSummary(dir.reference); });\n var /** @type {?} */ pipes = ngModule.transitiveModule.pipes.map(function (pipe) { return _this._metadataResolver.getPipeSummary(pipe.reference); });\n var /** @type {?} */ result = this._templateParser.parse(compMeta, /** @type {?} */ ((/** @type {?} */ ((compMeta.template)).htmlAst)), directives, pipes, ngModule.schemas, templateSourceUrl(ngModule.type, compMeta, /** @type {?} */ ((compMeta.template))), preserveWhitespaces);\n this._templateAstCache.set(compMeta.type.reference, result);\n return result;\n };\n /**\n * @param {?} genFilePath\n * @return {?}\n */\n AotCompiler.prototype._createOutputContext = /**\n * @param {?} genFilePath\n * @return {?}\n */\n function (genFilePath) {\n var _this = this;\n var /** @type {?} */ importExpr = function (symbol, typeParams, useSummaries) {\n if (typeParams === void 0) { typeParams = null; }\n if (useSummaries === void 0) { useSummaries = true; }\n if (!(symbol instanceof StaticSymbol)) {\n throw new Error(\"Internal error: unknown identifier \" + JSON.stringify(symbol));\n }\n var /** @type {?} */ arity = _this._symbolResolver.getTypeArity(symbol) || 0;\n var _a = _this._symbolResolver.getImportAs(symbol, useSummaries) || symbol, filePath = _a.filePath, name = _a.name, members = _a.members;\n var /** @type {?} */ importModule = _this._fileNameToModuleName(filePath, genFilePath);\n // It should be good enough to compare filePath to genFilePath and if they are equal\n // there is a self reference. However, ngfactory files generate to .ts but their\n // symbols have .d.ts so a simple compare is insufficient. They should be canonical\n // and is tracked by #17705.\n var /** @type {?} */ selfReference = _this._fileNameToModuleName(genFilePath, genFilePath);\n var /** @type {?} */ moduleName = importModule === selfReference ? null : importModule;\n // If we are in a type expression that refers to a generic type then supply\n // the required type parameters. If there were not enough type parameters\n // supplied, supply any as the type. Outside a type expression the reference\n // should not supply type parameters and be treated as a simple value reference\n // to the constructor function itself.\n var /** @type {?} */ suppliedTypeParams = typeParams || [];\n var /** @type {?} */ missingTypeParamsCount = arity - suppliedTypeParams.length;\n var /** @type {?} */ allTypeParams = suppliedTypeParams.concat(new Array(missingTypeParamsCount).fill(o.DYNAMIC_TYPE));\n return members.reduce(function (expr, memberName) { return expr.prop(memberName); }, /** @type {?} */ (o.importExpr(new o.ExternalReference(moduleName, name, null), allTypeParams)));\n };\n return { statements: [], genFilePath: genFilePath, importExpr: importExpr };\n };\n /**\n * @param {?} importedFilePath\n * @param {?} containingFilePath\n * @return {?}\n */\n AotCompiler.prototype._fileNameToModuleName = /**\n * @param {?} importedFilePath\n * @param {?} containingFilePath\n * @return {?}\n */\n function (importedFilePath, containingFilePath) {\n return this._summaryResolver.getKnownModuleName(importedFilePath) ||\n this._symbolResolver.getKnownModuleName(importedFilePath) ||\n this._host.fileNameToModuleName(importedFilePath, containingFilePath);\n };\n /**\n * @param {?} srcFileUrl\n * @param {?} compMeta\n * @param {?} stylesheetMetadata\n * @param {?} isShimmed\n * @param {?} fileSuffix\n * @return {?}\n */\n AotCompiler.prototype._codegenStyles = /**\n * @param {?} srcFileUrl\n * @param {?} compMeta\n * @param {?} stylesheetMetadata\n * @param {?} isShimmed\n * @param {?} fileSuffix\n * @return {?}\n */\n function (srcFileUrl, compMeta, stylesheetMetadata, isShimmed, fileSuffix) {\n var /** @type {?} */ outputCtx = this._createOutputContext(_stylesModuleUrl(/** @type {?} */ ((stylesheetMetadata.moduleUrl)), isShimmed, fileSuffix));\n var /** @type {?} */ compiledStylesheet = this._styleCompiler.compileStyles(outputCtx, compMeta, stylesheetMetadata, isShimmed);\n _resolveStyleStatements(this._symbolResolver, compiledStylesheet, isShimmed, fileSuffix);\n return this._codegenSourceModule(srcFileUrl, outputCtx);\n };\n /**\n * @param {?} srcFileUrl\n * @param {?} ctx\n * @return {?}\n */\n AotCompiler.prototype._codegenSourceModule = /**\n * @param {?} srcFileUrl\n * @param {?} ctx\n * @return {?}\n */\n function (srcFileUrl, ctx) {\n return new GeneratedFile(srcFileUrl, ctx.genFilePath, ctx.statements);\n };\n /**\n * @param {?=} entryRoute\n * @param {?=} analyzedModules\n * @return {?}\n */\n AotCompiler.prototype.listLazyRoutes = /**\n * @param {?=} entryRoute\n * @param {?=} analyzedModules\n * @return {?}\n */\n function (entryRoute, analyzedModules) {\n var /** @type {?} */ self = this;\n if (entryRoute) {\n var /** @type {?} */ symbol = parseLazyRoute(entryRoute, this._reflector).referencedModule;\n return visitLazyRoute(symbol);\n }\n else if (analyzedModules) {\n var /** @type {?} */ allLazyRoutes = [];\n for (var _i = 0, _a = analyzedModules.ngModules; _i < _a.length; _i++) {\n var ngModule = _a[_i];\n var /** @type {?} */ lazyRoutes = listLazyRoutes(ngModule, this._reflector);\n for (var _b = 0, lazyRoutes_1 = lazyRoutes; _b < lazyRoutes_1.length; _b++) {\n var lazyRoute = lazyRoutes_1[_b];\n allLazyRoutes.push(lazyRoute);\n }\n }\n return allLazyRoutes;\n }\n else {\n throw new Error(\"Either route or analyzedModules has to be specified!\");\n }\n /**\n * @param {?} symbol\n * @param {?=} seenRoutes\n * @param {?=} allLazyRoutes\n * @return {?}\n */\n function visitLazyRoute(symbol, seenRoutes, allLazyRoutes) {\n if (seenRoutes === void 0) { seenRoutes = new Set(); }\n if (allLazyRoutes === void 0) { allLazyRoutes = []; }\n // Support pointing to default exports, but stop recursing there,\n // as the StaticReflector does not yet support default exports.\n if (seenRoutes.has(symbol) || !symbol.name) {\n return allLazyRoutes;\n }\n seenRoutes.add(symbol);\n var /** @type {?} */ lazyRoutes = listLazyRoutes(/** @type {?} */ ((self._metadataResolver.getNgModuleMetadata(symbol, true))), self._reflector);\n for (var _i = 0, lazyRoutes_2 = lazyRoutes; _i < lazyRoutes_2.length; _i++) {\n var lazyRoute = lazyRoutes_2[_i];\n allLazyRoutes.push(lazyRoute);\n visitLazyRoute(lazyRoute.referencedModule, seenRoutes, allLazyRoutes);\n }\n return allLazyRoutes;\n }\n };\n return AotCompiler;\n}());\nexport { AotCompiler };\nfunction AotCompiler_tsickle_Closure_declarations() {\n /** @type {?} */\n AotCompiler.prototype._templateAstCache;\n /** @type {?} */\n AotCompiler.prototype._analyzedFiles;\n /** @type {?} */\n AotCompiler.prototype._config;\n /** @type {?} */\n AotCompiler.prototype._options;\n /** @type {?} */\n AotCompiler.prototype._host;\n /** @type {?} */\n AotCompiler.prototype._reflector;\n /** @type {?} */\n AotCompiler.prototype._metadataResolver;\n /** @type {?} */\n AotCompiler.prototype._templateParser;\n /** @type {?} */\n AotCompiler.prototype._styleCompiler;\n /** @type {?} */\n AotCompiler.prototype._viewCompiler;\n /** @type {?} */\n AotCompiler.prototype._typeCheckCompiler;\n /** @type {?} */\n AotCompiler.prototype._ngModuleCompiler;\n /** @type {?} */\n AotCompiler.prototype._outputEmitter;\n /** @type {?} */\n AotCompiler.prototype._summaryResolver;\n /** @type {?} */\n AotCompiler.prototype._symbolResolver;\n}\n/**\n * @param {?} outputCtx\n * @return {?}\n */\nfunction _createEmptyStub(outputCtx) {\n // Note: We need to produce at least one import statement so that\n // TypeScript knows that the file is an es6 module. Otherwise our generated\n // exports / imports won't be emitted properly by TypeScript.\n outputCtx.statements.push(o.importExpr(Identifiers.ComponentFactory).toStmt());\n}\n/**\n * @param {?} symbolResolver\n * @param {?} compileResult\n * @param {?} needsShim\n * @param {?} fileSuffix\n * @return {?}\n */\nfunction _resolveStyleStatements(symbolResolver, compileResult, needsShim, fileSuffix) {\n compileResult.dependencies.forEach(function (dep) {\n dep.setValue(symbolResolver.getStaticSymbol(_stylesModuleUrl(dep.moduleUrl, needsShim, fileSuffix), dep.name));\n });\n}\n/**\n * @param {?} stylesheetUrl\n * @param {?} shim\n * @param {?} suffix\n * @return {?}\n */\nfunction _stylesModuleUrl(stylesheetUrl, shim, suffix) {\n return \"\" + stylesheetUrl + (shim ? '.shim' : '') + \".ngstyle\" + suffix;\n}\n/**\n * @record\n */\nexport function NgAnalyzedModules() { }\nfunction NgAnalyzedModules_tsickle_Closure_declarations() {\n /** @type {?} */\n NgAnalyzedModules.prototype.ngModules;\n /** @type {?} */\n NgAnalyzedModules.prototype.ngModuleByPipeOrDirective;\n /** @type {?} */\n NgAnalyzedModules.prototype.files;\n /** @type {?|undefined} */\n NgAnalyzedModules.prototype.symbolsMissingModule;\n}\n/**\n * @record\n */\nexport function NgAnalyzedFile() { }\nfunction NgAnalyzedFile_tsickle_Closure_declarations() {\n /** @type {?} */\n NgAnalyzedFile.prototype.fileName;\n /** @type {?} */\n NgAnalyzedFile.prototype.directives;\n /** @type {?} */\n NgAnalyzedFile.prototype.pipes;\n /** @type {?} */\n NgAnalyzedFile.prototype.ngModules;\n /** @type {?} */\n NgAnalyzedFile.prototype.injectables;\n /** @type {?} */\n NgAnalyzedFile.prototype.exportsNonSourceFiles;\n}\n/**\n * @record\n */\nexport function NgAnalyzeModulesHost() { }\nfunction NgAnalyzeModulesHost_tsickle_Closure_declarations() {\n /** @type {?} */\n NgAnalyzeModulesHost.prototype.isSourceFile;\n}\n/**\n * @param {?} fileNames\n * @param {?} host\n * @param {?} staticSymbolResolver\n * @param {?} metadataResolver\n * @return {?}\n */\nexport function analyzeNgModules(fileNames, host, staticSymbolResolver, metadataResolver) {\n var /** @type {?} */ files = _analyzeFilesIncludingNonProgramFiles(fileNames, host, staticSymbolResolver, metadataResolver);\n return mergeAnalyzedFiles(files);\n}\n/**\n * @param {?} fileNames\n * @param {?} host\n * @param {?} staticSymbolResolver\n * @param {?} metadataResolver\n * @return {?}\n */\nexport function analyzeAndValidateNgModules(fileNames, host, staticSymbolResolver, metadataResolver) {\n return validateAnalyzedModules(analyzeNgModules(fileNames, host, staticSymbolResolver, metadataResolver));\n}\n/**\n * @param {?} analyzedModules\n * @return {?}\n */\nfunction validateAnalyzedModules(analyzedModules) {\n if (analyzedModules.symbolsMissingModule && analyzedModules.symbolsMissingModule.length) {\n var /** @type {?} */ messages = analyzedModules.symbolsMissingModule.map(function (s) {\n return \"Cannot determine the module for class \" + s.name + \" in \" + s.filePath + \"! Add \" + s.name + \" to the NgModule to fix it.\";\n });\n throw syntaxError(messages.join('\\n'));\n }\n return analyzedModules;\n}\n/**\n * @param {?} fileNames\n * @param {?} host\n * @param {?} staticSymbolResolver\n * @param {?} metadataResolver\n * @return {?}\n */\nfunction _analyzeFilesIncludingNonProgramFiles(fileNames, host, staticSymbolResolver, metadataResolver) {\n var /** @type {?} */ seenFiles = new Set();\n var /** @type {?} */ files = [];\n var /** @type {?} */ visitFile = function (fileName) {\n if (seenFiles.has(fileName) || !host.isSourceFile(fileName)) {\n return false;\n }\n seenFiles.add(fileName);\n var /** @type {?} */ analyzedFile = analyzeFile(host, staticSymbolResolver, metadataResolver, fileName);\n files.push(analyzedFile);\n analyzedFile.ngModules.forEach(function (ngModule) {\n ngModule.transitiveModule.modules.forEach(function (modMeta) { return visitFile(modMeta.reference.filePath); });\n });\n };\n fileNames.forEach(function (fileName) { return visitFile(fileName); });\n return files;\n}\n/**\n * @param {?} host\n * @param {?} staticSymbolResolver\n * @param {?} metadataResolver\n * @param {?} fileName\n * @return {?}\n */\nexport function analyzeFile(host, staticSymbolResolver, metadataResolver, fileName) {\n var /** @type {?} */ directives = [];\n var /** @type {?} */ pipes = [];\n var /** @type {?} */ injectables = [];\n var /** @type {?} */ ngModules = [];\n var /** @type {?} */ hasDecorators = staticSymbolResolver.hasDecorators(fileName);\n var /** @type {?} */ exportsNonSourceFiles = false;\n // Don't analyze .d.ts files that have no decorators as a shortcut\n // to speed up the analysis. This prevents us from\n // resolving the references in these files.\n // Note: exportsNonSourceFiles is only needed when compiling with summaries,\n // which is not the case when .d.ts files are treated as input files.\n if (!fileName.endsWith('.d.ts') || hasDecorators) {\n staticSymbolResolver.getSymbolsOf(fileName).forEach(function (symbol) {\n var /** @type {?} */ resolvedSymbol = staticSymbolResolver.resolveSymbol(symbol);\n var /** @type {?} */ symbolMeta = resolvedSymbol.metadata;\n if (!symbolMeta || symbolMeta.__symbolic === 'error') {\n return;\n }\n var /** @type {?} */ isNgSymbol = false;\n if (symbolMeta.__symbolic === 'class') {\n if (metadataResolver.isDirective(symbol)) {\n isNgSymbol = true;\n directives.push(symbol);\n }\n else if (metadataResolver.isPipe(symbol)) {\n isNgSymbol = true;\n pipes.push(symbol);\n }\n else if (metadataResolver.isNgModule(symbol)) {\n var /** @type {?} */ ngModule = metadataResolver.getNgModuleMetadata(symbol, false);\n if (ngModule) {\n isNgSymbol = true;\n ngModules.push(ngModule);\n }\n }\n else if (metadataResolver.isInjectable(symbol)) {\n isNgSymbol = true;\n injectables.push(symbol);\n }\n }\n if (!isNgSymbol) {\n exportsNonSourceFiles =\n exportsNonSourceFiles || isValueExportingNonSourceFile(host, symbolMeta);\n }\n });\n }\n return {\n fileName: fileName, directives: directives, pipes: pipes, ngModules: ngModules, injectables: injectables, exportsNonSourceFiles: exportsNonSourceFiles,\n };\n}\n/**\n * @param {?} host\n * @param {?} metadata\n * @return {?}\n */\nfunction isValueExportingNonSourceFile(host, metadata) {\n var /** @type {?} */ exportsNonSourceFiles = false;\n var Visitor = /** @class */ (function () {\n function Visitor() {\n }\n /**\n * @param {?} arr\n * @param {?} context\n * @return {?}\n */\n Visitor.prototype.visitArray = /**\n * @param {?} arr\n * @param {?} context\n * @return {?}\n */\n function (arr, context) {\n var _this = this;\n arr.forEach(function (v) { return visitValue(v, _this, context); });\n };\n /**\n * @param {?} map\n * @param {?} context\n * @return {?}\n */\n Visitor.prototype.visitStringMap = /**\n * @param {?} map\n * @param {?} context\n * @return {?}\n */\n function (map, context) {\n var _this = this;\n Object.keys(map).forEach(function (key) { return visitValue(map[key], _this, context); });\n };\n /**\n * @param {?} value\n * @param {?} context\n * @return {?}\n */\n Visitor.prototype.visitPrimitive = /**\n * @param {?} value\n * @param {?} context\n * @return {?}\n */\n function (value, context) { };\n /**\n * @param {?} value\n * @param {?} context\n * @return {?}\n */\n Visitor.prototype.visitOther = /**\n * @param {?} value\n * @param {?} context\n * @return {?}\n */\n function (value, context) {\n if (value instanceof StaticSymbol && !host.isSourceFile(value.filePath)) {\n exportsNonSourceFiles = true;\n }\n };\n return Visitor;\n }());\n visitValue(metadata, new Visitor(), null);\n return exportsNonSourceFiles;\n}\n/**\n * @param {?} analyzedFiles\n * @return {?}\n */\nexport function mergeAnalyzedFiles(analyzedFiles) {\n var /** @type {?} */ allNgModules = [];\n var /** @type {?} */ ngModuleByPipeOrDirective = new Map();\n var /** @type {?} */ allPipesAndDirectives = new Set();\n analyzedFiles.forEach(function (af) {\n af.ngModules.forEach(function (ngModule) {\n allNgModules.push(ngModule);\n ngModule.declaredDirectives.forEach(function (d) { return ngModuleByPipeOrDirective.set(d.reference, ngModule); });\n ngModule.declaredPipes.forEach(function (p) { return ngModuleByPipeOrDirective.set(p.reference, ngModule); });\n });\n af.directives.forEach(function (d) { return allPipesAndDirectives.add(d); });\n af.pipes.forEach(function (p) { return allPipesAndDirectives.add(p); });\n });\n var /** @type {?} */ symbolsMissingModule = [];\n allPipesAndDirectives.forEach(function (ref) {\n if (!ngModuleByPipeOrDirective.has(ref)) {\n symbolsMissingModule.push(ref);\n }\n });\n return {\n ngModules: allNgModules,\n ngModuleByPipeOrDirective: ngModuleByPipeOrDirective,\n symbolsMissingModule: symbolsMissingModule,\n files: analyzedFiles\n };\n}\n/**\n * @param {?} files\n * @return {?}\n */\nfunction mergeAndValidateNgFiles(files) {\n return validateAnalyzedModules(mergeAnalyzedFiles(files));\n}\n//# sourceMappingURL=compiler.js.map","/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this 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 { syntaxError } from '../util';\n/**\n * @record\n */\nexport function Position() { }\nfunction Position_tsickle_Closure_declarations() {\n /** @type {?} */\n Position.prototype.fileName;\n /** @type {?} */\n Position.prototype.line;\n /** @type {?} */\n Position.prototype.column;\n}\n/**\n * @record\n */\nexport function FormattedMessageChain() { }\nfunction FormattedMessageChain_tsickle_Closure_declarations() {\n /** @type {?} */\n FormattedMessageChain.prototype.message;\n /** @type {?|undefined} */\n FormattedMessageChain.prototype.position;\n /** @type {?|undefined} */\n FormattedMessageChain.prototype.next;\n}\nvar /** @type {?} */ FORMATTED_MESSAGE = 'ngFormattedMessage';\n/**\n * @param {?} level\n * @return {?}\n */\nfunction indentStr(level) {\n if (level <= 0)\n return '';\n if (level < 6)\n return ['', ' ', ' ', ' ', ' ', ' '][level];\n var /** @type {?} */ half = indentStr(Math.floor(level / 2));\n return half + half + (level % 2 === 1 ? ' ' : '');\n}\n/**\n * @param {?} chain\n * @param {?=} indent\n * @return {?}\n */\nfunction formatChain(chain, indent) {\n if (indent === void 0) { indent = 0; }\n if (!chain)\n return '';\n var /** @type {?} */ position = chain.position ?\n chain.position.fileName + \"(\" + (chain.position.line + 1) + \",\" + (chain.position.column + 1) + \")\" :\n '';\n var /** @type {?} */ prefix = position && indent === 0 ? position + \": \" : '';\n var /** @type {?} */ postfix = position && indent !== 0 ? \" at \" + position : '';\n var /** @type {?} */ message = \"\" + prefix + chain.message + postfix;\n return \"\" + indentStr(indent) + message + ((chain.next && ('\\n' + formatChain(chain.next, indent + 2))) || '');\n}\n/**\n * @param {?} chain\n * @return {?}\n */\nexport function formattedError(chain) {\n var /** @type {?} */ message = formatChain(chain) + '.';\n var /** @type {?} */ error = /** @type {?} */ (syntaxError(message));\n (/** @type {?} */ (error))[FORMATTED_MESSAGE] = true;\n error.chain = chain;\n error.position = chain.position;\n return error;\n}\n/**\n * @param {?} error\n * @return {?}\n */\nexport function isFormattedError(error) {\n return !!(/** @type {?} */ (error))[FORMATTED_MESSAGE];\n}\n//# sourceMappingURL=formatted_error.js.map","/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this 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 tslib_1 from \"tslib\";\nimport { CompileSummaryKind } from '../compile_metadata';\nimport { createAttribute, createComponent, createContentChild, createContentChildren, createDirective, createHost, createHostBinding, createHostListener, createInject, createInjectable, createInput, createNgModule, createOptional, createOutput, createPipe, createSelf, createSkipSelf, createViewChild, createViewChildren } from '../core';\nimport { syntaxError } from '../util';\nimport { formattedError } from './formatted_error';\nimport { StaticSymbol } from './static_symbol';\nvar /** @type {?} */ ANGULAR_CORE = '@angular/core';\nvar /** @type {?} */ ANGULAR_ROUTER = '@angular/router';\nvar /** @type {?} */ HIDDEN_KEY = /^\\$.*\\$$/;\nvar /** @type {?} */ IGNORE = {\n __symbolic: 'ignore'\n};\nvar /** @type {?} */ USE_VALUE = 'useValue';\nvar /** @type {?} */ PROVIDE = 'provide';\nvar /** @type {?} */ REFERENCE_SET = new Set([USE_VALUE, 'useFactory', 'data']);\nvar /** @type {?} */ TYPEGUARD_POSTFIX = 'TypeGuard';\nvar /** @type {?} */ USE_IF = 'UseIf';\n/**\n * @param {?} value\n * @return {?}\n */\nfunction shouldIgnore(value) {\n return value && value.__symbolic == 'ignore';\n}\n/**\n * A static reflector implements enough of the Reflector API that is necessary to compile\n * templates statically.\n */\nvar /**\n * A static reflector implements enough of the Reflector API that is necessary to compile\n * templates statically.\n */\nStaticReflector = /** @class */ (function () {\n function StaticReflector(summaryResolver, symbolResolver, knownMetadataClasses, knownMetadataFunctions, errorRecorder) {\n if (knownMetadataClasses === void 0) { knownMetadataClasses = []; }\n if (knownMetadataFunctions === void 0) { knownMetadataFunctions = []; }\n var _this = this;\n this.summaryResolver = summaryResolver;\n this.symbolResolver = symbolResolver;\n this.errorRecorder = errorRecorder;\n this.annotationCache = new Map();\n this.propertyCache = new Map();\n this.parameterCache = new Map();\n this.methodCache = new Map();\n this.staticCache = new Map();\n this.conversionMap = new Map();\n this.annotationForParentClassWithSummaryKind = new Map();\n this.initializeConversionMap();\n knownMetadataClasses.forEach(function (kc) {\n return _this._registerDecoratorOrConstructor(_this.getStaticSymbol(kc.filePath, kc.name), kc.ctor);\n });\n knownMetadataFunctions.forEach(function (kf) { return _this._registerFunction(_this.getStaticSymbol(kf.filePath, kf.name), kf.fn); });\n this.annotationForParentClassWithSummaryKind.set(CompileSummaryKind.Directive, [createDirective, createComponent]);\n this.annotationForParentClassWithSummaryKind.set(CompileSummaryKind.Pipe, [createPipe]);\n this.annotationForParentClassWithSummaryKind.set(CompileSummaryKind.NgModule, [createNgModule]);\n this.annotationForParentClassWithSummaryKind.set(CompileSummaryKind.Injectable, [createInjectable, createPipe, createDirective, createComponent, createNgModule]);\n }\n /**\n * @param {?} typeOrFunc\n * @return {?}\n */\n StaticReflector.prototype.componentModuleUrl = /**\n * @param {?} typeOrFunc\n * @return {?}\n */\n function (typeOrFunc) {\n var /** @type {?} */ staticSymbol = this.findSymbolDeclaration(typeOrFunc);\n return this.symbolResolver.getResourcePath(staticSymbol);\n };\n /**\n * @param {?} ref\n * @param {?=} containingFile\n * @return {?}\n */\n StaticReflector.prototype.resolveExternalReference = /**\n * @param {?} ref\n * @param {?=} containingFile\n * @return {?}\n */\n function (ref, containingFile) {\n var /** @type {?} */ refSymbol = this.symbolResolver.getSymbolByModule(/** @type {?} */ ((ref.moduleName)), /** @type {?} */ ((ref.name)), containingFile);\n var /** @type {?} */ declarationSymbol = this.findSymbolDeclaration(refSymbol);\n if (!containingFile) {\n this.symbolResolver.recordModuleNameForFileName(refSymbol.filePath, /** @type {?} */ ((ref.moduleName)));\n this.symbolResolver.recordImportAs(declarationSymbol, refSymbol);\n }\n return declarationSymbol;\n };\n /**\n * @param {?} moduleUrl\n * @param {?} name\n * @param {?=} containingFile\n * @return {?}\n */\n StaticReflector.prototype.findDeclaration = /**\n * @param {?} moduleUrl\n * @param {?} name\n * @param {?=} containingFile\n * @return {?}\n */\n function (moduleUrl, name, containingFile) {\n return this.findSymbolDeclaration(this.symbolResolver.getSymbolByModule(moduleUrl, name, containingFile));\n };\n /**\n * @param {?} moduleUrl\n * @param {?} name\n * @return {?}\n */\n StaticReflector.prototype.tryFindDeclaration = /**\n * @param {?} moduleUrl\n * @param {?} name\n * @return {?}\n */\n function (moduleUrl, name) {\n var _this = this;\n return this.symbolResolver.ignoreErrorsFor(function () { return _this.findDeclaration(moduleUrl, name); });\n };\n /**\n * @param {?} symbol\n * @return {?}\n */\n StaticReflector.prototype.findSymbolDeclaration = /**\n * @param {?} symbol\n * @return {?}\n */\n function (symbol) {\n var /** @type {?} */ resolvedSymbol = this.symbolResolver.resolveSymbol(symbol);\n if (resolvedSymbol) {\n var /** @type {?} */ resolvedMetadata = resolvedSymbol.metadata;\n if (resolvedMetadata && resolvedMetadata.__symbolic === 'resolved') {\n resolvedMetadata = resolvedMetadata.symbol;\n }\n if (resolvedMetadata instanceof StaticSymbol) {\n return this.findSymbolDeclaration(resolvedSymbol.metadata);\n }\n }\n return symbol;\n };\n /**\n * @param {?} type\n * @return {?}\n */\n StaticReflector.prototype.annotations = /**\n * @param {?} type\n * @return {?}\n */\n function (type) {\n var /** @type {?} */ annotations = this.annotationCache.get(type);\n if (!annotations) {\n annotations = [];\n var /** @type {?} */ classMetadata = this.getTypeMetadata(type);\n var /** @type {?} */ parentType = this.findParentType(type, classMetadata);\n if (parentType) {\n var /** @type {?} */ parentAnnotations = this.annotations(parentType);\n annotations.push.apply(annotations, parentAnnotations);\n }\n var /** @type {?} */ ownAnnotations_1 = [];\n if (classMetadata['decorators']) {\n ownAnnotations_1 = this.simplify(type, classMetadata['decorators']);\n annotations.push.apply(annotations, ownAnnotations_1);\n }\n if (parentType && !this.summaryResolver.isLibraryFile(type.filePath) &&\n this.summaryResolver.isLibraryFile(parentType.filePath)) {\n var /** @type {?} */ summary = this.summaryResolver.resolveSummary(parentType);\n if (summary && summary.type) {\n var /** @type {?} */ requiredAnnotationTypes = /** @type {?} */ ((this.annotationForParentClassWithSummaryKind.get(/** @type {?} */ ((summary.type.summaryKind)))));\n var /** @type {?} */ typeHasRequiredAnnotation = requiredAnnotationTypes.some(function (requiredType) { return ownAnnotations_1.some(function (ann) { return requiredType.isTypeOf(ann); }); });\n if (!typeHasRequiredAnnotation) {\n this.reportError(formatMetadataError(metadataError(\"Class \" + type.name + \" in \" + type.filePath + \" extends from a \" + CompileSummaryKind[(/** @type {?} */ ((summary.type.summaryKind)))] + \" in another compilation unit without duplicating the decorator\", undefined, \"Please add a \" + requiredAnnotationTypes.map(function (type) { return type.ngMetadataName; }).join(' or ') + \" decorator to the class\"), type), type);\n }\n }\n }\n this.annotationCache.set(type, annotations.filter(function (ann) { return !!ann; }));\n }\n return annotations;\n };\n /**\n * @param {?} type\n * @return {?}\n */\n StaticReflector.prototype.propMetadata = /**\n * @param {?} type\n * @return {?}\n */\n function (type) {\n var _this = this;\n var /** @type {?} */ propMetadata = this.propertyCache.get(type);\n if (!propMetadata) {\n var /** @type {?} */ classMetadata = this.getTypeMetadata(type);\n propMetadata = {};\n var /** @type {?} */ parentType = this.findParentType(type, classMetadata);\n if (parentType) {\n var /** @type {?} */ parentPropMetadata_1 = this.propMetadata(parentType);\n Object.keys(parentPropMetadata_1).forEach(function (parentProp) {\n /** @type {?} */ ((propMetadata))[parentProp] = parentPropMetadata_1[parentProp];\n });\n }\n var /** @type {?} */ members_1 = classMetadata['members'] || {};\n Object.keys(members_1).forEach(function (propName) {\n var /** @type {?} */ propData = members_1[propName];\n var /** @type {?} */ prop = (/** @type {?} */ (propData))\n .find(function (a) { return a['__symbolic'] == 'property' || a['__symbolic'] == 'method'; });\n var /** @type {?} */ decorators = [];\n if (/** @type {?} */ ((propMetadata))[propName]) {\n decorators.push.apply(decorators, /** @type {?} */ ((propMetadata))[propName]);\n } /** @type {?} */\n ((propMetadata))[propName] = decorators;\n if (prop && prop['decorators']) {\n decorators.push.apply(decorators, _this.simplify(type, prop['decorators']));\n }\n });\n this.propertyCache.set(type, propMetadata);\n }\n return propMetadata;\n };\n /**\n * @param {?} type\n * @return {?}\n */\n StaticReflector.prototype.parameters = /**\n * @param {?} type\n * @return {?}\n */\n function (type) {\n var _this = this;\n if (!(type instanceof StaticSymbol)) {\n this.reportError(new Error(\"parameters received \" + JSON.stringify(type) + \" which is not a StaticSymbol\"), type);\n return [];\n }\n try {\n var /** @type {?} */ parameters_1 = this.parameterCache.get(type);\n if (!parameters_1) {\n var /** @type {?} */ classMetadata = this.getTypeMetadata(type);\n var /** @type {?} */ parentType = this.findParentType(type, classMetadata);\n var /** @type {?} */ members = classMetadata ? classMetadata['members'] : null;\n var /** @type {?} */ ctorData = members ? members['__ctor__'] : null;\n if (ctorData) {\n var /** @type {?} */ ctor = (/** @type {?} */ (ctorData)).find(function (a) { return a['__symbolic'] == 'constructor'; });\n var /** @type {?} */ rawParameterTypes = /** @type {?} */ (ctor['parameters']) || [];\n var /** @type {?} */ parameterDecorators_1 = /** @type {?} */ (this.simplify(type, ctor['parameterDecorators'] || []));\n parameters_1 = [];\n rawParameterTypes.forEach(function (rawParamType, index) {\n var /** @type {?} */ nestedResult = [];\n var /** @type {?} */ paramType = _this.trySimplify(type, rawParamType);\n if (paramType)\n nestedResult.push(paramType);\n var /** @type {?} */ decorators = parameterDecorators_1 ? parameterDecorators_1[index] : null;\n if (decorators) {\n nestedResult.push.apply(nestedResult, decorators);\n } /** @type {?} */\n ((parameters_1)).push(nestedResult);\n });\n }\n else if (parentType) {\n parameters_1 = this.parameters(parentType);\n }\n if (!parameters_1) {\n parameters_1 = [];\n }\n this.parameterCache.set(type, parameters_1);\n }\n return parameters_1;\n }\n catch (/** @type {?} */ e) {\n console.error(\"Failed on type \" + JSON.stringify(type) + \" with error \" + e);\n throw e;\n }\n };\n /**\n * @param {?} type\n * @return {?}\n */\n StaticReflector.prototype._methodNames = /**\n * @param {?} type\n * @return {?}\n */\n function (type) {\n var /** @type {?} */ methodNames = this.methodCache.get(type);\n if (!methodNames) {\n var /** @type {?} */ classMetadata = this.getTypeMetadata(type);\n methodNames = {};\n var /** @type {?} */ parentType = this.findParentType(type, classMetadata);\n if (parentType) {\n var /** @type {?} */ parentMethodNames_1 = this._methodNames(parentType);\n Object.keys(parentMethodNames_1).forEach(function (parentProp) {\n /** @type {?} */ ((methodNames))[parentProp] = parentMethodNames_1[parentProp];\n });\n }\n var /** @type {?} */ members_2 = classMetadata['members'] || {};\n Object.keys(members_2).forEach(function (propName) {\n var /** @type {?} */ propData = members_2[propName];\n var /** @type {?} */ isMethod = (/** @type {?} */ (propData)).some(function (a) { return a['__symbolic'] == 'method'; }); /** @type {?} */\n ((methodNames))[propName] = /** @type {?} */ ((methodNames))[propName] || isMethod;\n });\n this.methodCache.set(type, methodNames);\n }\n return methodNames;\n };\n /**\n * @param {?} type\n * @return {?}\n */\n StaticReflector.prototype._staticMembers = /**\n * @param {?} type\n * @return {?}\n */\n function (type) {\n var /** @type {?} */ staticMembers = this.staticCache.get(type);\n if (!staticMembers) {\n var /** @type {?} */ classMetadata = this.getTypeMetadata(type);\n var /** @type {?} */ staticMemberData = classMetadata['statics'] || {};\n staticMembers = Object.keys(staticMemberData);\n this.staticCache.set(type, staticMembers);\n }\n return staticMembers;\n };\n /**\n * @param {?} type\n * @param {?} classMetadata\n * @return {?}\n */\n StaticReflector.prototype.findParentType = /**\n * @param {?} type\n * @param {?} classMetadata\n * @return {?}\n */\n function (type, classMetadata) {\n var /** @type {?} */ parentType = this.trySimplify(type, classMetadata['extends']);\n if (parentType instanceof StaticSymbol) {\n return parentType;\n }\n };\n /**\n * @param {?} type\n * @param {?} lcProperty\n * @return {?}\n */\n StaticReflector.prototype.hasLifecycleHook = /**\n * @param {?} type\n * @param {?} lcProperty\n * @return {?}\n */\n function (type, lcProperty) {\n if (!(type instanceof StaticSymbol)) {\n this.reportError(new Error(\"hasLifecycleHook received \" + JSON.stringify(type) + \" which is not a StaticSymbol\"), type);\n }\n try {\n return !!this._methodNames(type)[lcProperty];\n }\n catch (/** @type {?} */ e) {\n console.error(\"Failed on type \" + JSON.stringify(type) + \" with error \" + e);\n throw e;\n }\n };\n /**\n * @param {?} type\n * @return {?}\n */\n StaticReflector.prototype.guards = /**\n * @param {?} type\n * @return {?}\n */\n function (type) {\n if (!(type instanceof StaticSymbol)) {\n this.reportError(new Error(\"guards received \" + JSON.stringify(type) + \" which is not a StaticSymbol\"), type);\n return {};\n }\n var /** @type {?} */ staticMembers = this._staticMembers(type);\n var /** @type {?} */ result = {};\n for (var _i = 0, staticMembers_1 = staticMembers; _i < staticMembers_1.length; _i++) {\n var name_1 = staticMembers_1[_i];\n if (name_1.endsWith(TYPEGUARD_POSTFIX)) {\n var /** @type {?} */ property = name_1.substr(0, name_1.length - TYPEGUARD_POSTFIX.length);\n var /** @type {?} */ value = void 0;\n if (property.endsWith(USE_IF)) {\n property = name_1.substr(0, property.length - USE_IF.length);\n value = USE_IF;\n }\n else {\n value = this.getStaticSymbol(type.filePath, type.name, [name_1]);\n }\n result[property] = value;\n }\n }\n return result;\n };\n /**\n * @param {?} type\n * @param {?} ctor\n * @return {?}\n */\n StaticReflector.prototype._registerDecoratorOrConstructor = /**\n * @param {?} type\n * @param {?} ctor\n * @return {?}\n */\n function (type, ctor) {\n this.conversionMap.set(type, function (context, args) { return new (ctor.bind.apply(ctor, [void 0].concat(args)))(); });\n };\n /**\n * @param {?} type\n * @param {?} fn\n * @return {?}\n */\n StaticReflector.prototype._registerFunction = /**\n * @param {?} type\n * @param {?} fn\n * @return {?}\n */\n function (type, fn) {\n this.conversionMap.set(type, function (context, args) { return fn.apply(undefined, args); });\n };\n /**\n * @return {?}\n */\n StaticReflector.prototype.initializeConversionMap = /**\n * @return {?}\n */\n function () {\n this.injectionToken = this.findDeclaration(ANGULAR_CORE, 'InjectionToken');\n this.opaqueToken = this.findDeclaration(ANGULAR_CORE, 'OpaqueToken');\n this.ROUTES = this.tryFindDeclaration(ANGULAR_ROUTER, 'ROUTES');\n this.ANALYZE_FOR_ENTRY_COMPONENTS =\n this.findDeclaration(ANGULAR_CORE, 'ANALYZE_FOR_ENTRY_COMPONENTS');\n this._registerDecoratorOrConstructor(this.findDeclaration(ANGULAR_CORE, 'Host'), createHost);\n this._registerDecoratorOrConstructor(this.findDeclaration(ANGULAR_CORE, 'Injectable'), createInjectable);\n this._registerDecoratorOrConstructor(this.findDeclaration(ANGULAR_CORE, 'Self'), createSelf);\n this._registerDecoratorOrConstructor(this.findDeclaration(ANGULAR_CORE, 'SkipSelf'), createSkipSelf);\n this._registerDecoratorOrConstructor(this.findDeclaration(ANGULAR_CORE, 'Inject'), createInject);\n this._registerDecoratorOrConstructor(this.findDeclaration(ANGULAR_CORE, 'Optional'), createOptional);\n this._registerDecoratorOrConstructor(this.findDeclaration(ANGULAR_CORE, 'Attribute'), createAttribute);\n this._registerDecoratorOrConstructor(this.findDeclaration(ANGULAR_CORE, 'ContentChild'), createContentChild);\n this._registerDecoratorOrConstructor(this.findDeclaration(ANGULAR_CORE, 'ContentChildren'), createContentChildren);\n this._registerDecoratorOrConstructor(this.findDeclaration(ANGULAR_CORE, 'ViewChild'), createViewChild);\n this._registerDecoratorOrConstructor(this.findDeclaration(ANGULAR_CORE, 'ViewChildren'), createViewChildren);\n this._registerDecoratorOrConstructor(this.findDeclaration(ANGULAR_CORE, 'Input'), createInput);\n this._registerDecoratorOrConstructor(this.findDeclaration(ANGULAR_CORE, 'Output'), createOutput);\n this._registerDecoratorOrConstructor(this.findDeclaration(ANGULAR_CORE, 'Pipe'), createPipe);\n this._registerDecoratorOrConstructor(this.findDeclaration(ANGULAR_CORE, 'HostBinding'), createHostBinding);\n this._registerDecoratorOrConstructor(this.findDeclaration(ANGULAR_CORE, 'HostListener'), createHostListener);\n this._registerDecoratorOrConstructor(this.findDeclaration(ANGULAR_CORE, 'Directive'), createDirective);\n this._registerDecoratorOrConstructor(this.findDeclaration(ANGULAR_CORE, 'Component'), createComponent);\n this._registerDecoratorOrConstructor(this.findDeclaration(ANGULAR_CORE, 'NgModule'), createNgModule);\n // Note: Some metadata classes can be used directly with Provider.deps.\n this._registerDecoratorOrConstructor(this.findDeclaration(ANGULAR_CORE, 'Host'), createHost);\n this._registerDecoratorOrConstructor(this.findDeclaration(ANGULAR_CORE, 'Self'), createSelf);\n this._registerDecoratorOrConstructor(this.findDeclaration(ANGULAR_CORE, 'SkipSelf'), createSkipSelf);\n this._registerDecoratorOrConstructor(this.findDeclaration(ANGULAR_CORE, 'Optional'), createOptional);\n };\n /**\n * getStaticSymbol produces a Type whose metadata is known but whose implementation is not loaded.\n * All types passed to the StaticResolver should be pseudo-types returned by this method.\n *\n * @param declarationFile the absolute path of the file where the symbol is declared\n * @param name the name of the type.\n */\n /**\n * getStaticSymbol produces a Type whose metadata is known but whose implementation is not loaded.\n * All types passed to the StaticResolver should be pseudo-types returned by this method.\n *\n * @param {?} declarationFile the absolute path of the file where the symbol is declared\n * @param {?} name the name of the type.\n * @param {?=} members\n * @return {?}\n */\n StaticReflector.prototype.getStaticSymbol = /**\n * getStaticSymbol produces a Type whose metadata is known but whose implementation is not loaded.\n * All types passed to the StaticResolver should be pseudo-types returned by this method.\n *\n * @param {?} declarationFile the absolute path of the file where the symbol is declared\n * @param {?} name the name of the type.\n * @param {?=} members\n * @return {?}\n */\n function (declarationFile, name, members) {\n return this.symbolResolver.getStaticSymbol(declarationFile, name, members);\n };\n /**\n * Simplify but discard any errors\n * @param {?} context\n * @param {?} value\n * @return {?}\n */\n StaticReflector.prototype.trySimplify = /**\n * Simplify but discard any errors\n * @param {?} context\n * @param {?} value\n * @return {?}\n */\n function (context, value) {\n var /** @type {?} */ originalRecorder = this.errorRecorder;\n this.errorRecorder = function (error, fileName) { };\n var /** @type {?} */ result = this.simplify(context, value);\n this.errorRecorder = originalRecorder;\n return result;\n };\n /**\n * \\@internal\n * @param {?} context\n * @param {?} value\n * @return {?}\n */\n StaticReflector.prototype.simplify = /**\n * \\@internal\n * @param {?} context\n * @param {?} value\n * @return {?}\n */\n function (context, value) {\n var /** @type {?} */ self = this;\n var /** @type {?} */ scope = BindingScope.empty;\n var /** @type {?} */ calling = new Map();\n var /** @type {?} */ rootContext = context;\n /**\n * @param {?} context\n * @param {?} value\n * @param {?} depth\n * @param {?} references\n * @return {?}\n */\n function simplifyInContext(context, value, depth, references) {\n /**\n * @param {?} staticSymbol\n * @return {?}\n */\n function resolveReferenceValue(staticSymbol) {\n var /** @type {?} */ resolvedSymbol = self.symbolResolver.resolveSymbol(staticSymbol);\n return resolvedSymbol ? resolvedSymbol.metadata : null;\n }\n /**\n * @param {?} value\n * @return {?}\n */\n function simplifyEagerly(value) {\n return simplifyInContext(context, value, depth, 0);\n }\n /**\n * @param {?} value\n * @return {?}\n */\n function simplifyLazily(value) {\n return simplifyInContext(context, value, depth, references + 1);\n }\n /**\n * @param {?} nestedContext\n * @param {?} value\n * @return {?}\n */\n function simplifyNested(nestedContext, value) {\n if (nestedContext === context) {\n // If the context hasn't changed let the exception propagate unmodified.\n return simplifyInContext(nestedContext, value, depth + 1, references);\n }\n try {\n return simplifyInContext(nestedContext, value, depth + 1, references);\n }\n catch (/** @type {?} */ e) {\n if (isMetadataError(e)) {\n // Propagate the message text up but add a message to the chain that explains how we got\n // here.\n // e.chain implies e.symbol\n var /** @type {?} */ summaryMsg = e.chain ? 'references \\'' + /** @type {?} */ ((e.symbol)).name + '\\'' : errorSummary(e);\n var /** @type {?} */ summary = \"'\" + nestedContext.name + \"' \" + summaryMsg;\n var /** @type {?} */ chain = { message: summary, position: e.position, next: e.chain };\n // TODO(chuckj): retrieve the position information indirectly from the collectors node\n // map if the metadata is from a .ts file.\n self.error({\n message: e.message,\n advise: e.advise,\n context: e.context, chain: chain,\n symbol: nestedContext\n }, context);\n }\n else {\n // It is probably an internal error.\n throw e;\n }\n }\n }\n /**\n * @param {?} functionSymbol\n * @param {?} targetFunction\n * @param {?} args\n * @param {?} targetExpression\n * @return {?}\n */\n function simplifyCall(functionSymbol, targetFunction, args, targetExpression) {\n if (targetFunction && targetFunction['__symbolic'] == 'function') {\n if (calling.get(functionSymbol)) {\n self.error({\n message: 'Recursion is not supported',\n summary: \"called '\" + functionSymbol.name + \"' recursively\",\n value: targetFunction\n }, functionSymbol);\n }\n try {\n var /** @type {?} */ value_1 = targetFunction['value'];\n if (value_1 && (depth != 0 || value_1.__symbolic != 'error')) {\n var /** @type {?} */ parameters = targetFunction['parameters'];\n var /** @type {?} */ defaults = targetFunction.defaults;\n args = args.map(function (arg) { return simplifyNested(context, arg); })\n .map(function (arg) { return shouldIgnore(arg) ? undefined : arg; });\n if (defaults && defaults.length > args.length) {\n args.push.apply(args, defaults.slice(args.length).map(function (value) { return simplify(value); }));\n }\n calling.set(functionSymbol, true);\n var /** @type {?} */ functionScope = BindingScope.build();\n for (var /** @type {?} */ i = 0; i < parameters.length; i++) {\n functionScope.define(parameters[i], args[i]);\n }\n var /** @type {?} */ oldScope = scope;\n var /** @type {?} */ result_1;\n try {\n scope = functionScope.done();\n result_1 = simplifyNested(functionSymbol, value_1);\n }\n finally {\n scope = oldScope;\n }\n return result_1;\n }\n }\n finally {\n calling.delete(functionSymbol);\n }\n }\n if (depth === 0) {\n // If depth is 0 we are evaluating the top level expression that is describing element\n // decorator. In this case, it is a decorator we don't understand, such as a custom\n // non-angular decorator, and we should just ignore it.\n return IGNORE;\n }\n var /** @type {?} */ position = undefined;\n if (targetExpression && targetExpression.__symbolic == 'resolved') {\n var /** @type {?} */ line = targetExpression.line;\n var /** @type {?} */ character = targetExpression.character;\n var /** @type {?} */ fileName = targetExpression.fileName;\n if (fileName != null && line != null && character != null) {\n position = { fileName: fileName, line: line, column: character };\n }\n }\n self.error({\n message: FUNCTION_CALL_NOT_SUPPORTED,\n context: functionSymbol,\n value: targetFunction, position: position\n }, context);\n }\n /**\n * @param {?} expression\n * @return {?}\n */\n function simplify(expression) {\n if (isPrimitive(expression)) {\n return expression;\n }\n if (expression instanceof Array) {\n var /** @type {?} */ result_2 = [];\n for (var _i = 0, _a = (/** @type {?} */ (expression)); _i < _a.length; _i++) {\n var item = _a[_i];\n // Check for a spread expression\n if (item && item.__symbolic === 'spread') {\n // We call with references as 0 because we require the actual value and cannot\n // tolerate a reference here.\n var /** @type {?} */ spreadArray = simplifyEagerly(item.expression);\n if (Array.isArray(spreadArray)) {\n for (var _b = 0, spreadArray_1 = spreadArray; _b < spreadArray_1.length; _b++) {\n var spreadItem = spreadArray_1[_b];\n result_2.push(spreadItem);\n }\n continue;\n }\n }\n var /** @type {?} */ value_2 = simplify(item);\n if (shouldIgnore(value_2)) {\n continue;\n }\n result_2.push(value_2);\n }\n return result_2;\n }\n if (expression instanceof StaticSymbol) {\n // Stop simplification at builtin symbols or if we are in a reference context and\n // the symbol doesn't have members.\n if (expression === self.injectionToken || self.conversionMap.has(expression) ||\n (references > 0 && !expression.members.length)) {\n return expression;\n }\n else {\n var /** @type {?} */ staticSymbol = expression;\n var /** @type {?} */ declarationValue = resolveReferenceValue(staticSymbol);\n if (declarationValue != null) {\n return simplifyNested(staticSymbol, declarationValue);\n }\n else {\n return staticSymbol;\n }\n }\n }\n if (expression) {\n if (expression['__symbolic']) {\n var /** @type {?} */ staticSymbol = void 0;\n switch (expression['__symbolic']) {\n case 'binop':\n var /** @type {?} */ left = simplify(expression['left']);\n if (shouldIgnore(left))\n return left;\n var /** @type {?} */ right = simplify(expression['right']);\n if (shouldIgnore(right))\n return right;\n switch (expression['operator']) {\n case '&&':\n return left && right;\n case '||':\n return left || right;\n case '|':\n return left | right;\n case '^':\n return left ^ right;\n case '&':\n return left & right;\n case '==':\n return left == right;\n case '!=':\n return left != right;\n case '===':\n return left === right;\n case '!==':\n return left !== right;\n case '<':\n return left < right;\n case '>':\n return left > right;\n case '<=':\n return left <= right;\n case '>=':\n return left >= right;\n case '<<':\n return left << right;\n case '>>':\n return left >> right;\n case '+':\n return left + right;\n case '-':\n return left - right;\n case '*':\n return left * right;\n case '/':\n return left / right;\n case '%':\n return left % right;\n }\n return null;\n case 'if':\n var /** @type {?} */ condition = simplify(expression['condition']);\n return condition ? simplify(expression['thenExpression']) :\n simplify(expression['elseExpression']);\n case 'pre':\n var /** @type {?} */ operand = simplify(expression['operand']);\n if (shouldIgnore(operand))\n return operand;\n switch (expression['operator']) {\n case '+':\n return operand;\n case '-':\n return -operand;\n case '!':\n return !operand;\n case '~':\n return ~operand;\n }\n return null;\n case 'index':\n var /** @type {?} */ indexTarget = simplifyEagerly(expression['expression']);\n var /** @type {?} */ index = simplifyEagerly(expression['index']);\n if (indexTarget && isPrimitive(index))\n return indexTarget[index];\n return null;\n case 'select':\n var /** @type {?} */ member = expression['member'];\n var /** @type {?} */ selectContext = context;\n var /** @type {?} */ selectTarget = simplify(expression['expression']);\n if (selectTarget instanceof StaticSymbol) {\n var /** @type {?} */ members = selectTarget.members.concat(member);\n selectContext =\n self.getStaticSymbol(selectTarget.filePath, selectTarget.name, members);\n var /** @type {?} */ declarationValue = resolveReferenceValue(selectContext);\n if (declarationValue != null) {\n return simplifyNested(selectContext, declarationValue);\n }\n else {\n return selectContext;\n }\n }\n if (selectTarget && isPrimitive(member))\n return simplifyNested(selectContext, selectTarget[member]);\n return null;\n case 'reference':\n // Note: This only has to deal with variable references, as symbol references have\n // been converted into 'resolved'\n // in the StaticSymbolResolver.\n var /** @type {?} */ name_2 = expression['name'];\n var /** @type {?} */ localValue = scope.resolve(name_2);\n if (localValue != BindingScope.missing) {\n return localValue;\n }\n break;\n case 'resolved':\n try {\n return simplify(expression.symbol);\n }\n catch (/** @type {?} */ e) {\n // If an error is reported evaluating the symbol record the position of the\n // reference in the error so it can\n // be reported in the error message generated from the exception.\n if (isMetadataError(e) && expression.fileName != null &&\n expression.line != null && expression.character != null) {\n e.position = {\n fileName: expression.fileName,\n line: expression.line,\n column: expression.character\n };\n }\n throw e;\n }\n case 'class':\n return context;\n case 'function':\n return context;\n case 'new':\n case 'call':\n // Determine if the function is a built-in conversion\n staticSymbol = simplifyInContext(context, expression['expression'], depth + 1, /* references */ 0);\n if (staticSymbol instanceof StaticSymbol) {\n if (staticSymbol === self.injectionToken || staticSymbol === self.opaqueToken) {\n // if somebody calls new InjectionToken, don't create an InjectionToken,\n // but rather return the symbol to which the InjectionToken is assigned to.\n // OpaqueToken is supported too as it is required by the language service to\n // support v4 and prior versions of Angular.\n return context;\n }\n var /** @type {?} */ argExpressions = expression['arguments'] || [];\n var /** @type {?} */ converter = self.conversionMap.get(staticSymbol);\n if (converter) {\n var /** @type {?} */ args = argExpressions.map(function (arg) { return simplifyNested(context, arg); })\n .map(function (arg) { return shouldIgnore(arg) ? undefined : arg; });\n return converter(context, args);\n }\n else {\n // Determine if the function is one we can simplify.\n var /** @type {?} */ targetFunction = resolveReferenceValue(staticSymbol);\n return simplifyCall(staticSymbol, targetFunction, argExpressions, expression['expression']);\n }\n }\n return IGNORE;\n case 'error':\n var /** @type {?} */ message = expression.message;\n if (expression['line'] != null) {\n self.error({\n message: message,\n context: expression.context,\n value: expression,\n position: {\n fileName: expression['fileName'],\n line: expression['line'],\n column: expression['character']\n }\n }, context);\n }\n else {\n self.error({ message: message, context: expression.context }, context);\n }\n return IGNORE;\n case 'ignore':\n return expression;\n }\n return null;\n }\n return mapStringMap(expression, function (value, name) {\n if (REFERENCE_SET.has(name)) {\n if (name === USE_VALUE && PROVIDE in expression) {\n // If this is a provider expression, check for special tokens that need the value\n // during analysis.\n var /** @type {?} */ provide = simplify(expression.provide);\n if (provide === self.ROUTES || provide == self.ANALYZE_FOR_ENTRY_COMPONENTS) {\n return simplify(value);\n }\n }\n return simplifyLazily(value);\n }\n return simplify(value);\n });\n }\n return IGNORE;\n }\n return simplify(value);\n }\n var /** @type {?} */ result;\n try {\n result = simplifyInContext(context, value, 0, 0);\n }\n catch (/** @type {?} */ e) {\n if (this.errorRecorder) {\n this.reportError(e, context);\n }\n else {\n throw formatMetadataError(e, context);\n }\n }\n if (shouldIgnore(result)) {\n return undefined;\n }\n return result;\n };\n /**\n * @param {?} type\n * @return {?}\n */\n StaticReflector.prototype.getTypeMetadata = /**\n * @param {?} type\n * @return {?}\n */\n function (type) {\n var /** @type {?} */ resolvedSymbol = this.symbolResolver.resolveSymbol(type);\n return resolvedSymbol && resolvedSymbol.metadata ? resolvedSymbol.metadata :\n { __symbolic: 'class' };\n };\n /**\n * @param {?} error\n * @param {?} context\n * @param {?=} path\n * @return {?}\n */\n StaticReflector.prototype.reportError = /**\n * @param {?} error\n * @param {?} context\n * @param {?=} path\n * @return {?}\n */\n function (error, context, path) {\n if (this.errorRecorder) {\n this.errorRecorder(formatMetadataError(error, context), (context && context.filePath) || path);\n }\n else {\n throw error;\n }\n };\n /**\n * @param {?} __0\n * @param {?} reportingContext\n * @return {?}\n */\n StaticReflector.prototype.error = /**\n * @param {?} __0\n * @param {?} reportingContext\n * @return {?}\n */\n function (_a, reportingContext) {\n var message = _a.message, summary = _a.summary, advise = _a.advise, position = _a.position, context = _a.context, value = _a.value, symbol = _a.symbol, chain = _a.chain;\n this.reportError(metadataError(message, summary, advise, position, symbol, context, chain), reportingContext);\n };\n return StaticReflector;\n}());\n/**\n * A static reflector implements enough of the Reflector API that is necessary to compile\n * templates statically.\n */\nexport { StaticReflector };\nfunction StaticReflector_tsickle_Closure_declarations() {\n /** @type {?} */\n StaticReflector.prototype.annotationCache;\n /** @type {?} */\n StaticReflector.prototype.propertyCache;\n /** @type {?} */\n StaticReflector.prototype.parameterCache;\n /** @type {?} */\n StaticReflector.prototype.methodCache;\n /** @type {?} */\n StaticReflector.prototype.staticCache;\n /** @type {?} */\n StaticReflector.prototype.conversionMap;\n /** @type {?} */\n StaticReflector.prototype.injectionToken;\n /** @type {?} */\n StaticReflector.prototype.opaqueToken;\n /** @type {?} */\n StaticReflector.prototype.ROUTES;\n /** @type {?} */\n StaticReflector.prototype.ANALYZE_FOR_ENTRY_COMPONENTS;\n /** @type {?} */\n StaticReflector.prototype.annotationForParentClassWithSummaryKind;\n /** @type {?} */\n StaticReflector.prototype.summaryResolver;\n /** @type {?} */\n StaticReflector.prototype.symbolResolver;\n /** @type {?} */\n StaticReflector.prototype.errorRecorder;\n}\n/**\n * @record\n */\nfunction Position() { }\nfunction Position_tsickle_Closure_declarations() {\n /** @type {?} */\n Position.prototype.fileName;\n /** @type {?} */\n Position.prototype.line;\n /** @type {?} */\n Position.prototype.column;\n}\n/**\n * @record\n */\nfunction MetadataMessageChain() { }\nfunction MetadataMessageChain_tsickle_Closure_declarations() {\n /** @type {?} */\n MetadataMessageChain.prototype.message;\n /** @type {?|undefined} */\n MetadataMessageChain.prototype.summary;\n /** @type {?|undefined} */\n MetadataMessageChain.prototype.position;\n /** @type {?|undefined} */\n MetadataMessageChain.prototype.context;\n /** @type {?|undefined} */\n MetadataMessageChain.prototype.symbol;\n /** @type {?|undefined} */\n MetadataMessageChain.prototype.next;\n}\nvar /** @type {?} */ METADATA_ERROR = 'ngMetadataError';\n/**\n * @param {?} message\n * @param {?=} summary\n * @param {?=} advise\n * @param {?=} position\n * @param {?=} symbol\n * @param {?=} context\n * @param {?=} chain\n * @return {?}\n */\nfunction metadataError(message, summary, advise, position, symbol, context, chain) {\n var /** @type {?} */ error = /** @type {?} */ (syntaxError(message));\n (/** @type {?} */ (error))[METADATA_ERROR] = true;\n if (advise)\n error.advise = advise;\n if (position)\n error.position = position;\n if (summary)\n error.summary = summary;\n if (context)\n error.context = context;\n if (chain)\n error.chain = chain;\n if (symbol)\n error.symbol = symbol;\n return error;\n}\n/**\n * @param {?} error\n * @return {?}\n */\nfunction isMetadataError(error) {\n return !!(/** @type {?} */ (error))[METADATA_ERROR];\n}\nvar /** @type {?} */ REFERENCE_TO_NONEXPORTED_CLASS = 'Reference to non-exported class';\nvar /** @type {?} */ VARIABLE_NOT_INITIALIZED = 'Variable not initialized';\nvar /** @type {?} */ DESTRUCTURE_NOT_SUPPORTED = 'Destructuring not supported';\nvar /** @type {?} */ COULD_NOT_RESOLVE_TYPE = 'Could not resolve type';\nvar /** @type {?} */ FUNCTION_CALL_NOT_SUPPORTED = 'Function call not supported';\nvar /** @type {?} */ REFERENCE_TO_LOCAL_SYMBOL = 'Reference to a local symbol';\nvar /** @type {?} */ LAMBDA_NOT_SUPPORTED = 'Lambda not supported';\n/**\n * @param {?} message\n * @param {?} context\n * @return {?}\n */\nfunction expandedMessage(message, context) {\n switch (message) {\n case REFERENCE_TO_NONEXPORTED_CLASS:\n if (context && context.className) {\n return \"References to a non-exported class are not supported in decorators but \" + context.className + \" was referenced.\";\n }\n break;\n case VARIABLE_NOT_INITIALIZED:\n return 'Only initialized variables and constants can be referenced in decorators because the value of this variable is needed by the template compiler';\n case DESTRUCTURE_NOT_SUPPORTED:\n return 'Referencing an exported destructured variable or constant is not supported in decorators and this value is needed by the template compiler';\n case COULD_NOT_RESOLVE_TYPE:\n if (context && context.typeName) {\n return \"Could not resolve type \" + context.typeName;\n }\n break;\n case FUNCTION_CALL_NOT_SUPPORTED:\n if (context && context.name) {\n return \"Function calls are not supported in decorators but '\" + context.name + \"' was called\";\n }\n return 'Function calls are not supported in decorators';\n case REFERENCE_TO_LOCAL_SYMBOL:\n if (context && context.name) {\n return \"Reference to a local (non-exported) symbols are not supported in decorators but '\" + context.name + \"' was referenced\";\n }\n break;\n case LAMBDA_NOT_SUPPORTED:\n return \"Function expressions are not supported in decorators\";\n }\n return message;\n}\n/**\n * @param {?} message\n * @param {?} context\n * @return {?}\n */\nfunction messageAdvise(message, context) {\n switch (message) {\n case REFERENCE_TO_NONEXPORTED_CLASS:\n if (context && context.className) {\n return \"Consider exporting '\" + context.className + \"'\";\n }\n break;\n case DESTRUCTURE_NOT_SUPPORTED:\n return 'Consider simplifying to avoid destructuring';\n case REFERENCE_TO_LOCAL_SYMBOL:\n if (context && context.name) {\n return \"Consider exporting '\" + context.name + \"'\";\n }\n break;\n case LAMBDA_NOT_SUPPORTED:\n return \"Consider changing the function expression into an exported function\";\n }\n return undefined;\n}\n/**\n * @param {?} error\n * @return {?}\n */\nfunction errorSummary(error) {\n if (error.summary) {\n return error.summary;\n }\n switch (error.message) {\n case REFERENCE_TO_NONEXPORTED_CLASS:\n if (error.context && error.context.className) {\n return \"references non-exported class \" + error.context.className;\n }\n break;\n case VARIABLE_NOT_INITIALIZED:\n return 'is not initialized';\n case DESTRUCTURE_NOT_SUPPORTED:\n return 'is a destructured variable';\n case COULD_NOT_RESOLVE_TYPE:\n return 'could not be resolved';\n case FUNCTION_CALL_NOT_SUPPORTED:\n if (error.context && error.context.name) {\n return \"calls '\" + error.context.name + \"'\";\n }\n return \"calls a function\";\n case REFERENCE_TO_LOCAL_SYMBOL:\n if (error.context && error.context.name) {\n return \"references local variable \" + error.context.name;\n }\n return \"references a local variable\";\n }\n return 'contains the error';\n}\n/**\n * @param {?} input\n * @param {?} transform\n * @return {?}\n */\nfunction mapStringMap(input, transform) {\n if (!input)\n return {};\n var /** @type {?} */ result = {};\n Object.keys(input).forEach(function (key) {\n var /** @type {?} */ value = transform(input[key], key);\n if (!shouldIgnore(value)) {\n if (HIDDEN_KEY.test(key)) {\n Object.defineProperty(result, key, { enumerable: false, configurable: true, value: value });\n }\n else {\n result[key] = value;\n }\n }\n });\n return result;\n}\n/**\n * @param {?} o\n * @return {?}\n */\nfunction isPrimitive(o) {\n return o === null || (typeof o !== 'function' && typeof o !== 'object');\n}\n/**\n * @record\n */\nfunction BindingScopeBuilder() { }\nfunction BindingScopeBuilder_tsickle_Closure_declarations() {\n /** @type {?} */\n BindingScopeBuilder.prototype.define;\n /** @type {?} */\n BindingScopeBuilder.prototype.done;\n}\n/**\n * @abstract\n */\nvar BindingScope = /** @class */ (function () {\n function BindingScope() {\n }\n /**\n * @return {?}\n */\n BindingScope.build = /**\n * @return {?}\n */\n function () {\n var /** @type {?} */ current = new Map();\n return {\n define: function (name, value) {\n current.set(name, value);\n return this;\n },\n done: function () {\n return current.size > 0 ? new PopulatedScope(current) : BindingScope.empty;\n }\n };\n };\n BindingScope.missing = {};\n BindingScope.empty = { resolve: function (name) { return BindingScope.missing; } };\n return BindingScope;\n}());\nfunction BindingScope_tsickle_Closure_declarations() {\n /** @type {?} */\n BindingScope.missing;\n /** @type {?} */\n BindingScope.empty;\n /**\n * @abstract\n * @param {?} name\n * @return {?}\n */\n BindingScope.prototype.resolve = function (name) { };\n}\nvar PopulatedScope = /** @class */ (function (_super) {\n tslib_1.__extends(PopulatedScope, _super);\n function PopulatedScope(bindings) {\n var _this = _super.call(this) || this;\n _this.bindings = bindings;\n return _this;\n }\n /**\n * @param {?} name\n * @return {?}\n */\n PopulatedScope.prototype.resolve = /**\n * @param {?} name\n * @return {?}\n */\n function (name) {\n return this.bindings.has(name) ? this.bindings.get(name) : BindingScope.missing;\n };\n return PopulatedScope;\n}(BindingScope));\nfunction PopulatedScope_tsickle_Closure_declarations() {\n /** @type {?} */\n PopulatedScope.prototype.bindings;\n}\n/**\n * @param {?} chain\n * @param {?} advise\n * @return {?}\n */\nfunction formatMetadataMessageChain(chain, advise) {\n var /** @type {?} */ expanded = expandedMessage(chain.message, chain.context);\n var /** @type {?} */ nesting = chain.symbol ? \" in '\" + chain.symbol.name + \"'\" : '';\n var /** @type {?} */ message = \"\" + expanded + nesting;\n var /** @type {?} */ position = chain.position;\n var /** @type {?} */ next = chain.next ?\n formatMetadataMessageChain(chain.next, advise) :\n advise ? { message: advise } : undefined;\n return { message: message, position: position, next: next };\n}\n/**\n * @param {?} e\n * @param {?} context\n * @return {?}\n */\nfunction formatMetadataError(e, context) {\n if (isMetadataError(e)) {\n // Produce a formatted version of the and leaving enough information in the original error\n // to recover the formatting information to eventually produce a diagnostic error message.\n var /** @type {?} */ position = e.position;\n var /** @type {?} */ chain = {\n message: \"Error during template compile of '\" + context.name + \"'\",\n position: position,\n next: { message: e.message, next: e.chain, context: e.context, symbol: e.symbol }\n };\n var /** @type {?} */ advise = e.advise || messageAdvise(e.message, e.context);\n return formattedError(formatMetadataMessageChain(chain, advise));\n }\n return e;\n}\n//# sourceMappingURL=static_reflector.js.map","/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this 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 { deserializeSummaries } from './summary_serializer';\nimport { stripGeneratedFileSuffix, summaryFileName } from './util';\n/**\n * @record\n */\nexport function AotSummaryResolverHost() { }\nfunction AotSummaryResolverHost_tsickle_Closure_declarations() {\n /**\n * Loads an NgModule/Directive/Pipe summary file\n * @type {?}\n */\n AotSummaryResolverHost.prototype.loadSummary;\n /**\n * Returns whether a file is a source file or not.\n * @type {?}\n */\n AotSummaryResolverHost.prototype.isSourceFile;\n /**\n * Converts a file name into a representation that should be stored in a summary file.\n * This has to include changing the suffix as well.\n * E.g.\n * `some_file.ts` -> `some_file.d.ts`\n *\n * \\@param referringSrcFileName the soure file that refers to fileName\n * @type {?}\n */\n AotSummaryResolverHost.prototype.toSummaryFileName;\n /**\n * Converts a fileName that was processed by `toSummaryFileName` back into a real fileName\n * given the fileName of the library that is referrig to it.\n * @type {?}\n */\n AotSummaryResolverHost.prototype.fromSummaryFileName;\n}\nvar AotSummaryResolver = /** @class */ (function () {\n function AotSummaryResolver(host, staticSymbolCache) {\n this.host = host;\n this.staticSymbolCache = staticSymbolCache;\n this.summaryCache = new Map();\n this.loadedFilePaths = new Map();\n this.importAs = new Map();\n this.knownFileNameToModuleNames = new Map();\n }\n /**\n * @param {?} filePath\n * @return {?}\n */\n AotSummaryResolver.prototype.isLibraryFile = /**\n * @param {?} filePath\n * @return {?}\n */\n function (filePath) {\n // Note: We need to strip the .ngfactory. file path,\n // so this method also works for generated files\n // (for which host.isSourceFile will always return false).\n return !this.host.isSourceFile(stripGeneratedFileSuffix(filePath));\n };\n /**\n * @param {?} filePath\n * @param {?} referringSrcFileName\n * @return {?}\n */\n AotSummaryResolver.prototype.toSummaryFileName = /**\n * @param {?} filePath\n * @param {?} referringSrcFileName\n * @return {?}\n */\n function (filePath, referringSrcFileName) {\n return this.host.toSummaryFileName(filePath, referringSrcFileName);\n };\n /**\n * @param {?} fileName\n * @param {?} referringLibFileName\n * @return {?}\n */\n AotSummaryResolver.prototype.fromSummaryFileName = /**\n * @param {?} fileName\n * @param {?} referringLibFileName\n * @return {?}\n */\n function (fileName, referringLibFileName) {\n return this.host.fromSummaryFileName(fileName, referringLibFileName);\n };\n /**\n * @param {?} staticSymbol\n * @return {?}\n */\n AotSummaryResolver.prototype.resolveSummary = /**\n * @param {?} staticSymbol\n * @return {?}\n */\n function (staticSymbol) {\n var /** @type {?} */ rootSymbol = staticSymbol.members.length ?\n this.staticSymbolCache.get(staticSymbol.filePath, staticSymbol.name) :\n staticSymbol;\n var /** @type {?} */ summary = this.summaryCache.get(rootSymbol);\n if (!summary) {\n this._loadSummaryFile(staticSymbol.filePath);\n summary = /** @type {?} */ ((this.summaryCache.get(staticSymbol)));\n }\n return (rootSymbol === staticSymbol && summary) || null;\n };\n /**\n * @param {?} filePath\n * @return {?}\n */\n AotSummaryResolver.prototype.getSymbolsOf = /**\n * @param {?} filePath\n * @return {?}\n */\n function (filePath) {\n if (this._loadSummaryFile(filePath)) {\n return Array.from(this.summaryCache.keys()).filter(function (symbol) { return symbol.filePath === filePath; });\n }\n return null;\n };\n /**\n * @param {?} staticSymbol\n * @return {?}\n */\n AotSummaryResolver.prototype.getImportAs = /**\n * @param {?} staticSymbol\n * @return {?}\n */\n function (staticSymbol) {\n staticSymbol.assertNoMembers();\n return /** @type {?} */ ((this.importAs.get(staticSymbol)));\n };\n /**\n * Converts a file path to a module name that can be used as an `import`.\n */\n /**\n * Converts a file path to a module name that can be used as an `import`.\n * @param {?} importedFilePath\n * @return {?}\n */\n AotSummaryResolver.prototype.getKnownModuleName = /**\n * Converts a file path to a module name that can be used as an `import`.\n * @param {?} importedFilePath\n * @return {?}\n */\n function (importedFilePath) {\n return this.knownFileNameToModuleNames.get(importedFilePath) || null;\n };\n /**\n * @param {?} summary\n * @return {?}\n */\n AotSummaryResolver.prototype.addSummary = /**\n * @param {?} summary\n * @return {?}\n */\n function (summary) { this.summaryCache.set(summary.symbol, summary); };\n /**\n * @param {?} filePath\n * @return {?}\n */\n AotSummaryResolver.prototype._loadSummaryFile = /**\n * @param {?} filePath\n * @return {?}\n */\n function (filePath) {\n var _this = this;\n var /** @type {?} */ hasSummary = this.loadedFilePaths.get(filePath);\n if (hasSummary != null) {\n return hasSummary;\n }\n var /** @type {?} */ json = null;\n if (this.isLibraryFile(filePath)) {\n var /** @type {?} */ summaryFilePath = summaryFileName(filePath);\n try {\n json = this.host.loadSummary(summaryFilePath);\n }\n catch (/** @type {?} */ e) {\n console.error(\"Error loading summary file \" + summaryFilePath);\n throw e;\n }\n }\n hasSummary = json != null;\n this.loadedFilePaths.set(filePath, hasSummary);\n if (json) {\n var _a = deserializeSummaries(this.staticSymbolCache, this, filePath, json), moduleName = _a.moduleName, summaries = _a.summaries, importAs = _a.importAs;\n summaries.forEach(function (summary) { return _this.summaryCache.set(summary.symbol, summary); });\n if (moduleName) {\n this.knownFileNameToModuleNames.set(filePath, moduleName);\n }\n importAs.forEach(function (importAs) { _this.importAs.set(importAs.symbol, importAs.importAs); });\n }\n return hasSummary;\n };\n return AotSummaryResolver;\n}());\nexport { AotSummaryResolver };\nfunction AotSummaryResolver_tsickle_Closure_declarations() {\n /** @type {?} */\n AotSummaryResolver.prototype.summaryCache;\n /** @type {?} */\n AotSummaryResolver.prototype.loadedFilePaths;\n /** @type {?} */\n AotSummaryResolver.prototype.importAs;\n /** @type {?} */\n AotSummaryResolver.prototype.knownFileNameToModuleNames;\n /** @type {?} */\n AotSummaryResolver.prototype.host;\n /** @type {?} */\n AotSummaryResolver.prototype.staticSymbolCache;\n}\n//# sourceMappingURL=summary_resolver.js.map","/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this 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 { CompilerConfig } from '../config';\nimport { ViewEncapsulation } from '../core';\nimport { DirectiveNormalizer } from '../directive_normalizer';\nimport { DirectiveResolver } from '../directive_resolver';\nimport { Lexer } from '../expression_parser/lexer';\nimport { Parser } from '../expression_parser/parser';\nimport { I18NHtmlParser } from '../i18n/i18n_html_parser';\nimport { CompileMetadataResolver } from '../metadata_resolver';\nimport { HtmlParser } from '../ml_parser/html_parser';\nimport { NgModuleCompiler } from '../ng_module_compiler';\nimport { NgModuleResolver } from '../ng_module_resolver';\nimport { TypeScriptEmitter } from '../output/ts_emitter';\nimport { PipeResolver } from '../pipe_resolver';\nimport { DomElementSchemaRegistry } from '../schema/dom_element_schema_registry';\nimport { StyleCompiler } from '../style_compiler';\nimport { TemplateParser } from '../template_parser/template_parser';\nimport { syntaxError } from '../util';\nimport { TypeCheckCompiler } from '../view_compiler/type_check_compiler';\nimport { ViewCompiler } from '../view_compiler/view_compiler';\nimport { AotCompiler } from './compiler';\nimport { StaticReflector } from './static_reflector';\nimport { StaticSymbolCache } from './static_symbol';\nimport { StaticSymbolResolver } from './static_symbol_resolver';\nimport { AotSummaryResolver } from './summary_resolver';\n/**\n * @param {?} host\n * @return {?}\n */\nexport function createAotUrlResolver(host) {\n return {\n resolve: function (basePath, url) {\n var /** @type {?} */ filePath = host.resourceNameToFileName(url, basePath);\n if (!filePath) {\n throw syntaxError(\"Couldn't resolve resource \" + url + \" from \" + basePath);\n }\n return filePath;\n }\n };\n}\n/**\n * Creates a new AotCompiler based on options and a host.\n * @param {?} compilerHost\n * @param {?} options\n * @param {?=} errorCollector\n * @return {?}\n */\nexport function createAotCompiler(compilerHost, options, errorCollector) {\n var /** @type {?} */ translations = options.translations || '';\n var /** @type {?} */ urlResolver = createAotUrlResolver(compilerHost);\n var /** @type {?} */ symbolCache = new StaticSymbolCache();\n var /** @type {?} */ summaryResolver = new AotSummaryResolver(compilerHost, symbolCache);\n var /** @type {?} */ symbolResolver = new StaticSymbolResolver(compilerHost, symbolCache, summaryResolver);\n var /** @type {?} */ staticReflector = new StaticReflector(summaryResolver, symbolResolver, [], [], errorCollector);\n var /** @type {?} */ htmlParser = new I18NHtmlParser(new HtmlParser(), translations, options.i18nFormat, options.missingTranslation, console);\n var /** @type {?} */ config = new CompilerConfig({\n defaultEncapsulation: ViewEncapsulation.Emulated,\n useJit: false,\n enableLegacyTemplate: options.enableLegacyTemplate === true,\n missingTranslation: options.missingTranslation,\n preserveWhitespaces: options.preserveWhitespaces,\n strictInjectionParameters: options.strictInjectionParameters,\n });\n var /** @type {?} */ normalizer = new DirectiveNormalizer({ get: function (url) { return compilerHost.loadResource(url); } }, urlResolver, htmlParser, config);\n var /** @type {?} */ expressionParser = new Parser(new Lexer());\n var /** @type {?} */ elementSchemaRegistry = new DomElementSchemaRegistry();\n var /** @type {?} */ tmplParser = new TemplateParser(config, staticReflector, expressionParser, elementSchemaRegistry, htmlParser, console, []);\n var /** @type {?} */ resolver = new CompileMetadataResolver(config, htmlParser, new NgModuleResolver(staticReflector), new DirectiveResolver(staticReflector), new PipeResolver(staticReflector), summaryResolver, elementSchemaRegistry, normalizer, console, symbolCache, staticReflector, errorCollector);\n // TODO(vicb): do not pass options.i18nFormat here\n var /** @type {?} */ viewCompiler = new ViewCompiler(staticReflector);\n var /** @type {?} */ typeCheckCompiler = new TypeCheckCompiler(options, staticReflector);\n var /** @type {?} */ compiler = new AotCompiler(config, options, compilerHost, staticReflector, resolver, tmplParser, new StyleCompiler(urlResolver), viewCompiler, typeCheckCompiler, new NgModuleCompiler(staticReflector), new TypeScriptEmitter(), summaryResolver, symbolResolver);\n return { compiler: compiler, reflector: staticReflector };\n}\n//# sourceMappingURL=compiler_factory.js.map","/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @record\n */\nexport function Summary() { }\nfunction Summary_tsickle_Closure_declarations() {\n /** @type {?} */\n Summary.prototype.symbol;\n /** @type {?} */\n Summary.prototype.metadata;\n /** @type {?|undefined} */\n Summary.prototype.type;\n}\n/**\n * @abstract\n */\nvar /**\n * @abstract\n */\nSummaryResolver = /** @class */ (function () {\n function SummaryResolver() {\n }\n return SummaryResolver;\n}());\n/**\n * @abstract\n */\nexport { SummaryResolver };\nfunction SummaryResolver_tsickle_Closure_declarations() {\n /**\n * @abstract\n * @param {?} fileName\n * @return {?}\n */\n SummaryResolver.prototype.isLibraryFile = function (fileName) { };\n /**\n * @abstract\n * @param {?} fileName\n * @param {?} referringSrcFileName\n * @return {?}\n */\n SummaryResolver.prototype.toSummaryFileName = function (fileName, referringSrcFileName) { };\n /**\n * @abstract\n * @param {?} fileName\n * @param {?} referringLibFileName\n * @return {?}\n */\n SummaryResolver.prototype.fromSummaryFileName = function (fileName, referringLibFileName) { };\n /**\n * @abstract\n * @param {?} reference\n * @return {?}\n */\n SummaryResolver.prototype.resolveSummary = function (reference) { };\n /**\n * @abstract\n * @param {?} filePath\n * @return {?}\n */\n SummaryResolver.prototype.getSymbolsOf = function (filePath) { };\n /**\n * @abstract\n * @param {?} reference\n * @return {?}\n */\n SummaryResolver.prototype.getImportAs = function (reference) { };\n /**\n * @abstract\n * @param {?} fileName\n * @return {?}\n */\n SummaryResolver.prototype.getKnownModuleName = function (fileName) { };\n /**\n * @abstract\n * @param {?} summary\n * @return {?}\n */\n SummaryResolver.prototype.addSummary = function (summary) { };\n}\nvar JitSummaryResolver = /** @class */ (function () {\n function JitSummaryResolver() {\n this._summaries = new Map();\n }\n /**\n * @return {?}\n */\n JitSummaryResolver.prototype.isLibraryFile = /**\n * @return {?}\n */\n function () { return false; };\n /**\n * @param {?} fileName\n * @return {?}\n */\n JitSummaryResolver.prototype.toSummaryFileName = /**\n * @param {?} fileName\n * @return {?}\n */\n function (fileName) { return fileName; };\n /**\n * @param {?} fileName\n * @return {?}\n */\n JitSummaryResolver.prototype.fromSummaryFileName = /**\n * @param {?} fileName\n * @return {?}\n */\n function (fileName) { return fileName; };\n /**\n * @param {?} reference\n * @return {?}\n */\n JitSummaryResolver.prototype.resolveSummary = /**\n * @param {?} reference\n * @return {?}\n */\n function (reference) {\n return this._summaries.get(reference) || null;\n };\n /**\n * @return {?}\n */\n JitSummaryResolver.prototype.getSymbolsOf = /**\n * @return {?}\n */\n function () { return []; };\n /**\n * @param {?} reference\n * @return {?}\n */\n JitSummaryResolver.prototype.getImportAs = /**\n * @param {?} reference\n * @return {?}\n */\n function (reference) { return reference; };\n /**\n * @param {?} fileName\n * @return {?}\n */\n JitSummaryResolver.prototype.getKnownModuleName = /**\n * @param {?} fileName\n * @return {?}\n */\n function (fileName) { return null; };\n /**\n * @param {?} summary\n * @return {?}\n */\n JitSummaryResolver.prototype.addSummary = /**\n * @param {?} summary\n * @return {?}\n */\n function (summary) { this._summaries.set(summary.symbol, summary); };\n return JitSummaryResolver;\n}());\nexport { JitSummaryResolver };\nfunction JitSummaryResolver_tsickle_Closure_declarations() {\n /** @type {?} */\n JitSummaryResolver.prototype._summaries;\n}\n//# sourceMappingURL=summary_resolver.js.map","/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this 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_ast';\nimport { debugOutputAstAsTypeScript } from './ts_emitter';\n/**\n * @param {?} statements\n * @param {?} reflector\n * @return {?}\n */\nexport function interpretStatements(statements, reflector) {\n var /** @type {?} */ ctx = new _ExecutionContext(null, null, null, new Map());\n var /** @type {?} */ visitor = new StatementInterpreter(reflector);\n visitor.visitAllStatements(statements, ctx);\n var /** @type {?} */ result = {};\n ctx.exports.forEach(function (exportName) { result[exportName] = ctx.vars.get(exportName); });\n return result;\n}\n/**\n * @param {?} varNames\n * @param {?} varValues\n * @param {?} statements\n * @param {?} ctx\n * @param {?} visitor\n * @return {?}\n */\nfunction _executeFunctionStatements(varNames, varValues, statements, ctx, visitor) {\n var /** @type {?} */ childCtx = ctx.createChildWihtLocalVars();\n for (var /** @type {?} */ i = 0; i < varNames.length; i++) {\n childCtx.vars.set(varNames[i], varValues[i]);\n }\n var /** @type {?} */ result = visitor.visitAllStatements(statements, childCtx);\n return result ? result.value : null;\n}\nvar _ExecutionContext = /** @class */ (function () {\n function _ExecutionContext(parent, instance, className, vars) {\n this.parent = parent;\n this.instance = instance;\n this.className = className;\n this.vars = vars;\n this.exports = [];\n }\n /**\n * @return {?}\n */\n _ExecutionContext.prototype.createChildWihtLocalVars = /**\n * @return {?}\n */\n function () {\n return new _ExecutionContext(this, this.instance, this.className, new Map());\n };\n return _ExecutionContext;\n}());\nfunction _ExecutionContext_tsickle_Closure_declarations() {\n /** @type {?} */\n _ExecutionContext.prototype.exports;\n /** @type {?} */\n _ExecutionContext.prototype.parent;\n /** @type {?} */\n _ExecutionContext.prototype.instance;\n /** @type {?} */\n _ExecutionContext.prototype.className;\n /** @type {?} */\n _ExecutionContext.prototype.vars;\n}\nvar ReturnValue = /** @class */ (function () {\n function ReturnValue(value) {\n this.value = value;\n }\n return ReturnValue;\n}());\nfunction ReturnValue_tsickle_Closure_declarations() {\n /** @type {?} */\n ReturnValue.prototype.value;\n}\n/**\n * @param {?} _classStmt\n * @param {?} _ctx\n * @param {?} _visitor\n * @return {?}\n */\nfunction createDynamicClass(_classStmt, _ctx, _visitor) {\n var /** @type {?} */ propertyDescriptors = {};\n _classStmt.getters.forEach(function (getter) {\n // Note: use `function` instead of arrow function to capture `this`\n propertyDescriptors[getter.name] = {\n configurable: false,\n get: function () {\n var /** @type {?} */ instanceCtx = new _ExecutionContext(_ctx, this, _classStmt.name, _ctx.vars);\n return _executeFunctionStatements([], [], getter.body, instanceCtx, _visitor);\n }\n };\n });\n _classStmt.methods.forEach(function (method) {\n var /** @type {?} */ paramNames = method.params.map(function (param) { return param.name; });\n // Note: use `function` instead of arrow function to capture `this`\n propertyDescriptors[/** @type {?} */ ((method.name))] = {\n writable: false,\n configurable: false,\n value: function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var /** @type {?} */ instanceCtx = new _ExecutionContext(_ctx, this, _classStmt.name, _ctx.vars);\n return _executeFunctionStatements(paramNames, args, method.body, instanceCtx, _visitor);\n }\n };\n });\n var /** @type {?} */ ctorParamNames = _classStmt.constructorMethod.params.map(function (param) { return param.name; });\n // Note: use `function` instead of arrow function to capture `this`\n var /** @type {?} */ ctor = function () {\n var _this = this;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var /** @type {?} */ instanceCtx = new _ExecutionContext(_ctx, this, _classStmt.name, _ctx.vars);\n _classStmt.fields.forEach(function (field) { _this[field.name] = undefined; });\n _executeFunctionStatements(ctorParamNames, args, _classStmt.constructorMethod.body, instanceCtx, _visitor);\n };\n var /** @type {?} */ superClass = _classStmt.parent ? _classStmt.parent.visitExpression(_visitor, _ctx) : Object;\n ctor.prototype = Object.create(superClass.prototype, propertyDescriptors);\n return ctor;\n}\nvar StatementInterpreter = /** @class */ (function () {\n function StatementInterpreter(reflector) {\n this.reflector = reflector;\n }\n /**\n * @param {?} ast\n * @return {?}\n */\n StatementInterpreter.prototype.debugAst = /**\n * @param {?} ast\n * @return {?}\n */\n function (ast) { return debugOutputAstAsTypeScript(ast); };\n /**\n * @param {?} stmt\n * @param {?} ctx\n * @return {?}\n */\n StatementInterpreter.prototype.visitDeclareVarStmt = /**\n * @param {?} stmt\n * @param {?} ctx\n * @return {?}\n */\n function (stmt, ctx) {\n ctx.vars.set(stmt.name, stmt.value.visitExpression(this, ctx));\n if (stmt.hasModifier(o.StmtModifier.Exported)) {\n ctx.exports.push(stmt.name);\n }\n return null;\n };\n /**\n * @param {?} expr\n * @param {?} ctx\n * @return {?}\n */\n StatementInterpreter.prototype.visitWriteVarExpr = /**\n * @param {?} expr\n * @param {?} ctx\n * @return {?}\n */\n function (expr, ctx) {\n var /** @type {?} */ value = expr.value.visitExpression(this, ctx);\n var /** @type {?} */ currCtx = ctx;\n while (currCtx != null) {\n if (currCtx.vars.has(expr.name)) {\n currCtx.vars.set(expr.name, value);\n return value;\n }\n currCtx = /** @type {?} */ ((currCtx.parent));\n }\n throw new Error(\"Not declared variable \" + expr.name);\n };\n /**\n * @param {?} ast\n * @param {?} ctx\n * @return {?}\n */\n StatementInterpreter.prototype.visitReadVarExpr = /**\n * @param {?} ast\n * @param {?} ctx\n * @return {?}\n */\n function (ast, ctx) {\n var /** @type {?} */ varName = /** @type {?} */ ((ast.name));\n if (ast.builtin != null) {\n switch (ast.builtin) {\n case o.BuiltinVar.Super:\n return ctx.instance.__proto__;\n case o.BuiltinVar.This:\n return ctx.instance;\n case o.BuiltinVar.CatchError:\n varName = CATCH_ERROR_VAR;\n break;\n case o.BuiltinVar.CatchStack:\n varName = CATCH_STACK_VAR;\n break;\n default:\n throw new Error(\"Unknown builtin variable \" + ast.builtin);\n }\n }\n var /** @type {?} */ currCtx = ctx;\n while (currCtx != null) {\n if (currCtx.vars.has(varName)) {\n return currCtx.vars.get(varName);\n }\n currCtx = /** @type {?} */ ((currCtx.parent));\n }\n throw new Error(\"Not declared variable \" + varName);\n };\n /**\n * @param {?} expr\n * @param {?} ctx\n * @return {?}\n */\n StatementInterpreter.prototype.visitWriteKeyExpr = /**\n * @param {?} expr\n * @param {?} ctx\n * @return {?}\n */\n function (expr, ctx) {\n var /** @type {?} */ receiver = expr.receiver.visitExpression(this, ctx);\n var /** @type {?} */ index = expr.index.visitExpression(this, ctx);\n var /** @type {?} */ value = expr.value.visitExpression(this, ctx);\n receiver[index] = value;\n return value;\n };\n /**\n * @param {?} expr\n * @param {?} ctx\n * @return {?}\n */\n StatementInterpreter.prototype.visitWritePropExpr = /**\n * @param {?} expr\n * @param {?} ctx\n * @return {?}\n */\n function (expr, ctx) {\n var /** @type {?} */ receiver = expr.receiver.visitExpression(this, ctx);\n var /** @type {?} */ value = expr.value.visitExpression(this, ctx);\n receiver[expr.name] = value;\n return value;\n };\n /**\n * @param {?} expr\n * @param {?} ctx\n * @return {?}\n */\n StatementInterpreter.prototype.visitInvokeMethodExpr = /**\n * @param {?} expr\n * @param {?} ctx\n * @return {?}\n */\n function (expr, ctx) {\n var /** @type {?} */ receiver = expr.receiver.visitExpression(this, ctx);\n var /** @type {?} */ args = this.visitAllExpressions(expr.args, ctx);\n var /** @type {?} */ result;\n if (expr.builtin != null) {\n switch (expr.builtin) {\n case o.BuiltinMethod.ConcatArray:\n result = receiver.concat.apply(receiver, args);\n break;\n case o.BuiltinMethod.SubscribeObservable:\n result = receiver.subscribe({ next: args[0] });\n break;\n case o.BuiltinMethod.Bind:\n result = receiver.bind.apply(receiver, args);\n break;\n default:\n throw new Error(\"Unknown builtin method \" + expr.builtin);\n }\n }\n else {\n result = receiver[/** @type {?} */ ((expr.name))].apply(receiver, args);\n }\n return result;\n };\n /**\n * @param {?} stmt\n * @param {?} ctx\n * @return {?}\n */\n StatementInterpreter.prototype.visitInvokeFunctionExpr = /**\n * @param {?} stmt\n * @param {?} ctx\n * @return {?}\n */\n function (stmt, ctx) {\n var /** @type {?} */ args = this.visitAllExpressions(stmt.args, ctx);\n var /** @type {?} */ fnExpr = stmt.fn;\n if (fnExpr instanceof o.ReadVarExpr && fnExpr.builtin === o.BuiltinVar.Super) {\n ctx.instance.constructor.prototype.constructor.apply(ctx.instance, args);\n return null;\n }\n else {\n var /** @type {?} */ fn = stmt.fn.visitExpression(this, ctx);\n return fn.apply(null, args);\n }\n };\n /**\n * @param {?} stmt\n * @param {?} ctx\n * @return {?}\n */\n StatementInterpreter.prototype.visitReturnStmt = /**\n * @param {?} stmt\n * @param {?} ctx\n * @return {?}\n */\n function (stmt, ctx) {\n return new ReturnValue(stmt.value.visitExpression(this, ctx));\n };\n /**\n * @param {?} stmt\n * @param {?} ctx\n * @return {?}\n */\n StatementInterpreter.prototype.visitDeclareClassStmt = /**\n * @param {?} stmt\n * @param {?} ctx\n * @return {?}\n */\n function (stmt, ctx) {\n var /** @type {?} */ clazz = createDynamicClass(stmt, ctx, this);\n ctx.vars.set(stmt.name, clazz);\n if (stmt.hasModifier(o.StmtModifier.Exported)) {\n ctx.exports.push(stmt.name);\n }\n return null;\n };\n /**\n * @param {?} stmt\n * @param {?} ctx\n * @return {?}\n */\n StatementInterpreter.prototype.visitExpressionStmt = /**\n * @param {?} stmt\n * @param {?} ctx\n * @return {?}\n */\n function (stmt, ctx) {\n return stmt.expr.visitExpression(this, ctx);\n };\n /**\n * @param {?} stmt\n * @param {?} ctx\n * @return {?}\n */\n StatementInterpreter.prototype.visitIfStmt = /**\n * @param {?} stmt\n * @param {?} ctx\n * @return {?}\n */\n function (stmt, ctx) {\n var /** @type {?} */ condition = stmt.condition.visitExpression(this, ctx);\n if (condition) {\n return this.visitAllStatements(stmt.trueCase, ctx);\n }\n else if (stmt.falseCase != null) {\n return this.visitAllStatements(stmt.falseCase, ctx);\n }\n return null;\n };\n /**\n * @param {?} stmt\n * @param {?} ctx\n * @return {?}\n */\n StatementInterpreter.prototype.visitTryCatchStmt = /**\n * @param {?} stmt\n * @param {?} ctx\n * @return {?}\n */\n function (stmt, ctx) {\n try {\n return this.visitAllStatements(stmt.bodyStmts, ctx);\n }\n catch (/** @type {?} */ e) {\n var /** @type {?} */ childCtx = ctx.createChildWihtLocalVars();\n childCtx.vars.set(CATCH_ERROR_VAR, e);\n childCtx.vars.set(CATCH_STACK_VAR, e.stack);\n return this.visitAllStatements(stmt.catchStmts, childCtx);\n }\n };\n /**\n * @param {?} stmt\n * @param {?} ctx\n * @return {?}\n */\n StatementInterpreter.prototype.visitThrowStmt = /**\n * @param {?} stmt\n * @param {?} ctx\n * @return {?}\n */\n function (stmt, ctx) {\n throw stmt.error.visitExpression(this, ctx);\n };\n /**\n * @param {?} stmt\n * @param {?=} context\n * @return {?}\n */\n StatementInterpreter.prototype.visitCommentStmt = /**\n * @param {?} stmt\n * @param {?=} context\n * @return {?}\n */\n function (stmt, context) { return null; };\n /**\n * @param {?} ast\n * @param {?} ctx\n * @return {?}\n */\n StatementInterpreter.prototype.visitInstantiateExpr = /**\n * @param {?} ast\n * @param {?} ctx\n * @return {?}\n */\n function (ast, ctx) {\n var /** @type {?} */ args = this.visitAllExpressions(ast.args, ctx);\n var /** @type {?} */ clazz = ast.classExpr.visitExpression(this, ctx);\n return new (clazz.bind.apply(clazz, [void 0].concat(args)))();\n };\n /**\n * @param {?} ast\n * @param {?} ctx\n * @return {?}\n */\n StatementInterpreter.prototype.visitLiteralExpr = /**\n * @param {?} ast\n * @param {?} ctx\n * @return {?}\n */\n function (ast, ctx) { return ast.value; };\n /**\n * @param {?} ast\n * @param {?} ctx\n * @return {?}\n */\n StatementInterpreter.prototype.visitExternalExpr = /**\n * @param {?} ast\n * @param {?} ctx\n * @return {?}\n */\n function (ast, ctx) {\n return this.reflector.resolveExternalReference(ast.value);\n };\n /**\n * @param {?} ast\n * @param {?} ctx\n * @return {?}\n */\n StatementInterpreter.prototype.visitConditionalExpr = /**\n * @param {?} ast\n * @param {?} ctx\n * @return {?}\n */\n function (ast, ctx) {\n if (ast.condition.visitExpression(this, ctx)) {\n return ast.trueCase.visitExpression(this, ctx);\n }\n else if (ast.falseCase != null) {\n return ast.falseCase.visitExpression(this, ctx);\n }\n return null;\n };\n /**\n * @param {?} ast\n * @param {?} ctx\n * @return {?}\n */\n StatementInterpreter.prototype.visitNotExpr = /**\n * @param {?} ast\n * @param {?} ctx\n * @return {?}\n */\n function (ast, ctx) {\n return !ast.condition.visitExpression(this, ctx);\n };\n /**\n * @param {?} ast\n * @param {?} ctx\n * @return {?}\n */\n StatementInterpreter.prototype.visitAssertNotNullExpr = /**\n * @param {?} ast\n * @param {?} ctx\n * @return {?}\n */\n function (ast, ctx) {\n return ast.condition.visitExpression(this, ctx);\n };\n /**\n * @param {?} ast\n * @param {?} ctx\n * @return {?}\n */\n StatementInterpreter.prototype.visitCastExpr = /**\n * @param {?} ast\n * @param {?} ctx\n * @return {?}\n */\n function (ast, ctx) {\n return ast.value.visitExpression(this, ctx);\n };\n /**\n * @param {?} ast\n * @param {?} ctx\n * @return {?}\n */\n StatementInterpreter.prototype.visitFunctionExpr = /**\n * @param {?} ast\n * @param {?} ctx\n * @return {?}\n */\n function (ast, ctx) {\n var /** @type {?} */ paramNames = ast.params.map(function (param) { return param.name; });\n return _declareFn(paramNames, ast.statements, ctx, this);\n };\n /**\n * @param {?} stmt\n * @param {?} ctx\n * @return {?}\n */\n StatementInterpreter.prototype.visitDeclareFunctionStmt = /**\n * @param {?} stmt\n * @param {?} ctx\n * @return {?}\n */\n function (stmt, ctx) {\n var /** @type {?} */ paramNames = stmt.params.map(function (param) { return param.name; });\n ctx.vars.set(stmt.name, _declareFn(paramNames, stmt.statements, ctx, this));\n if (stmt.hasModifier(o.StmtModifier.Exported)) {\n ctx.exports.push(stmt.name);\n }\n return null;\n };\n /**\n * @param {?} ast\n * @param {?} ctx\n * @return {?}\n */\n StatementInterpreter.prototype.visitBinaryOperatorExpr = /**\n * @param {?} ast\n * @param {?} ctx\n * @return {?}\n */\n function (ast, ctx) {\n var _this = this;\n var /** @type {?} */ lhs = function () { return ast.lhs.visitExpression(_this, ctx); };\n var /** @type {?} */ rhs = function () { return ast.rhs.visitExpression(_this, ctx); };\n switch (ast.operator) {\n case o.BinaryOperator.Equals:\n return lhs() == rhs();\n case o.BinaryOperator.Identical:\n return lhs() === rhs();\n case o.BinaryOperator.NotEquals:\n return lhs() != rhs();\n case o.BinaryOperator.NotIdentical:\n return lhs() !== rhs();\n case o.BinaryOperator.And:\n return lhs() && rhs();\n case o.BinaryOperator.Or:\n return lhs() || rhs();\n case o.BinaryOperator.Plus:\n return lhs() + rhs();\n case o.BinaryOperator.Minus:\n return lhs() - rhs();\n case o.BinaryOperator.Divide:\n return lhs() / rhs();\n case o.BinaryOperator.Multiply:\n return lhs() * rhs();\n case o.BinaryOperator.Modulo:\n return lhs() % rhs();\n case o.BinaryOperator.Lower:\n return lhs() < rhs();\n case o.BinaryOperator.LowerEquals:\n return lhs() <= rhs();\n case o.BinaryOperator.Bigger:\n return lhs() > rhs();\n case o.BinaryOperator.BiggerEquals:\n return lhs() >= rhs();\n default:\n throw new Error(\"Unknown operator \" + ast.operator);\n }\n };\n /**\n * @param {?} ast\n * @param {?} ctx\n * @return {?}\n */\n StatementInterpreter.prototype.visitReadPropExpr = /**\n * @param {?} ast\n * @param {?} ctx\n * @return {?}\n */\n function (ast, ctx) {\n var /** @type {?} */ result;\n var /** @type {?} */ receiver = ast.receiver.visitExpression(this, ctx);\n result = receiver[ast.name];\n return result;\n };\n /**\n * @param {?} ast\n * @param {?} ctx\n * @return {?}\n */\n StatementInterpreter.prototype.visitReadKeyExpr = /**\n * @param {?} ast\n * @param {?} ctx\n * @return {?}\n */\n function (ast, ctx) {\n var /** @type {?} */ receiver = ast.receiver.visitExpression(this, ctx);\n var /** @type {?} */ prop = ast.index.visitExpression(this, ctx);\n return receiver[prop];\n };\n /**\n * @param {?} ast\n * @param {?} ctx\n * @return {?}\n */\n StatementInterpreter.prototype.visitLiteralArrayExpr = /**\n * @param {?} ast\n * @param {?} ctx\n * @return {?}\n */\n function (ast, ctx) {\n return this.visitAllExpressions(ast.entries, ctx);\n };\n /**\n * @param {?} ast\n * @param {?} ctx\n * @return {?}\n */\n StatementInterpreter.prototype.visitLiteralMapExpr = /**\n * @param {?} ast\n * @param {?} ctx\n * @return {?}\n */\n function (ast, ctx) {\n var _this = this;\n var /** @type {?} */ result = {};\n ast.entries.forEach(function (entry) { return result[entry.key] = entry.value.visitExpression(_this, ctx); });\n return result;\n };\n /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n StatementInterpreter.prototype.visitCommaExpr = /**\n * @param {?} ast\n * @param {?} context\n * @return {?}\n */\n function (ast, context) {\n var /** @type {?} */ values = this.visitAllExpressions(ast.parts, context);\n return values[values.length - 1];\n };\n /**\n * @param {?} expressions\n * @param {?} ctx\n * @return {?}\n */\n StatementInterpreter.prototype.visitAllExpressions = /**\n * @param {?} expressions\n * @param {?} ctx\n * @return {?}\n */\n function (expressions, ctx) {\n var _this = this;\n return expressions.map(function (expr) { return expr.visitExpression(_this, ctx); });\n };\n /**\n * @param {?} statements\n * @param {?} ctx\n * @return {?}\n */\n StatementInterpreter.prototype.visitAllStatements = /**\n * @param {?} statements\n * @param {?} ctx\n * @return {?}\n */\n function (statements, ctx) {\n for (var /** @type {?} */ i = 0; i < statements.length; i++) {\n var /** @type {?} */ stmt = statements[i];\n var /** @type {?} */ val = stmt.visitStatement(this, ctx);\n if (val instanceof ReturnValue) {\n return val;\n }\n }\n return null;\n };\n return StatementInterpreter;\n}());\nfunction StatementInterpreter_tsickle_Closure_declarations() {\n /** @type {?} */\n StatementInterpreter.prototype.reflector;\n}\n/**\n * @param {?} varNames\n * @param {?} statements\n * @param {?} ctx\n * @param {?} visitor\n * @return {?}\n */\nfunction _declareFn(varNames, statements, ctx, visitor) {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return _executeFunctionStatements(varNames, args, statements, ctx, visitor);\n };\n}\nvar /** @type {?} */ CATCH_ERROR_VAR = 'error';\nvar /** @type {?} */ CATCH_STACK_VAR = 'stack';\n//# sourceMappingURL=output_interpreter.js.map","/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this 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 tslib_1 from \"tslib\";\nimport { AbstractEmitterVisitor, CATCH_ERROR_VAR, CATCH_STACK_VAR } from './abstract_emitter';\nimport * as o from './output_ast';\n/**\n * @abstract\n */\nvar /**\n * @abstract\n */\nAbstractJsEmitterVisitor = /** @class */ (function (_super) {\n tslib_1.__extends(AbstractJsEmitterVisitor, _super);\n function AbstractJsEmitterVisitor() {\n return _super.call(this, false) || this;\n }\n /**\n * @param {?} stmt\n * @param {?} ctx\n * @return {?}\n */\n AbstractJsEmitterVisitor.prototype.visitDeclareClassStmt = /**\n * @param {?} stmt\n * @param {?} ctx\n * @return {?}\n */\n function (stmt, ctx) {\n var _this = this;\n ctx.pushClass(stmt);\n this._visitClassConstructor(stmt, ctx);\n if (stmt.parent != null) {\n ctx.print(stmt, stmt.name + \".prototype = Object.create(\");\n stmt.parent.visitExpression(this, ctx);\n ctx.println(stmt, \".prototype);\");\n }\n stmt.getters.forEach(function (getter) { return _this._visitClassGetter(stmt, getter, ctx); });\n stmt.methods.forEach(function (method) { return _this._visitClassMethod(stmt, method, ctx); });\n ctx.popClass();\n return null;\n };\n /**\n * @param {?} stmt\n * @param {?} ctx\n * @return {?}\n */\n AbstractJsEmitterVisitor.prototype._visitClassConstructor = /**\n * @param {?} stmt\n * @param {?} ctx\n * @return {?}\n */\n function (stmt, ctx) {\n ctx.print(stmt, \"function \" + stmt.name + \"(\");\n if (stmt.constructorMethod != null) {\n this._visitParams(stmt.constructorMethod.params, ctx);\n }\n ctx.println(stmt, \") {\");\n ctx.incIndent();\n if (stmt.constructorMethod != null) {\n if (stmt.constructorMethod.body.length > 0) {\n ctx.println(stmt, \"var self = this;\");\n this.visitAllStatements(stmt.constructorMethod.body, ctx);\n }\n }\n ctx.decIndent();\n ctx.println(stmt, \"}\");\n };\n /**\n * @param {?} stmt\n * @param {?} getter\n * @param {?} ctx\n * @return {?}\n */\n AbstractJsEmitterVisitor.prototype._visitClassGetter = /**\n * @param {?} stmt\n * @param {?} getter\n * @param {?} ctx\n * @return {?}\n */\n function (stmt, getter, ctx) {\n ctx.println(stmt, \"Object.defineProperty(\" + stmt.name + \".prototype, '\" + getter.name + \"', { get: function() {\");\n ctx.incIndent();\n if (getter.body.length > 0) {\n ctx.println(stmt, \"var self = this;\");\n this.visitAllStatements(getter.body, ctx);\n }\n ctx.decIndent();\n ctx.println(stmt, \"}});\");\n };\n /**\n * @param {?} stmt\n * @param {?} method\n * @param {?} ctx\n * @return {?}\n */\n AbstractJsEmitterVisitor.prototype._visitClassMethod = /**\n * @param {?} stmt\n * @param {?} method\n * @param {?} ctx\n * @return {?}\n */\n function (stmt, method, ctx) {\n ctx.print(stmt, stmt.name + \".prototype.\" + method.name + \" = function(\");\n this._visitParams(method.params, ctx);\n ctx.println(stmt, \") {\");\n ctx.incIndent();\n if (method.body.length > 0) {\n ctx.println(stmt, \"var self = this;\");\n this.visitAllStatements(method.body, ctx);\n }\n ctx.decIndent();\n ctx.println(stmt, \"};\");\n };\n /**\n * @param {?} ast\n * @param {?} ctx\n * @return {?}\n */\n AbstractJsEmitterVisitor.prototype.visitReadVarExpr = /**\n * @param {?} ast\n * @param {?} ctx\n * @return {?}\n */\n function (ast, ctx) {\n if (ast.builtin === o.BuiltinVar.This) {\n ctx.print(ast, 'self');\n }\n else if (ast.builtin === o.BuiltinVar.Super) {\n throw new Error(\"'super' needs to be handled at a parent ast node, not at the variable level!\");\n }\n else {\n _super.prototype.visitReadVarExpr.call(this, ast, ctx);\n }\n return null;\n };\n /**\n * @param {?} stmt\n * @param {?} ctx\n * @return {?}\n */\n AbstractJsEmitterVisitor.prototype.visitDeclareVarStmt = /**\n * @param {?} stmt\n * @param {?} ctx\n * @return {?}\n */\n function (stmt, ctx) {\n ctx.print(stmt, \"var \" + stmt.name + \" = \");\n stmt.value.visitExpression(this, ctx);\n ctx.println(stmt, \";\");\n return null;\n };\n /**\n * @param {?} ast\n * @param {?} ctx\n * @return {?}\n */\n AbstractJsEmitterVisitor.prototype.visitCastExpr = /**\n * @param {?} ast\n * @param {?} ctx\n * @return {?}\n */\n function (ast, ctx) {\n ast.value.visitExpression(this, ctx);\n return null;\n };\n /**\n * @param {?} expr\n * @param {?} ctx\n * @return {?}\n */\n AbstractJsEmitterVisitor.prototype.visitInvokeFunctionExpr = /**\n * @param {?} expr\n * @param {?} ctx\n * @return {?}\n */\n function (expr, ctx) {\n var /** @type {?} */ fnExpr = expr.fn;\n if (fnExpr instanceof o.ReadVarExpr && fnExpr.builtin === o.BuiltinVar.Super) {\n /** @type {?} */ ((/** @type {?} */ ((ctx.currentClass)).parent)).visitExpression(this, ctx);\n ctx.print(expr, \".call(this\");\n if (expr.args.length > 0) {\n ctx.print(expr, \", \");\n this.visitAllExpressions(expr.args, ctx, ',');\n }\n ctx.print(expr, \")\");\n }\n else {\n _super.prototype.visitInvokeFunctionExpr.call(this, expr, ctx);\n }\n return null;\n };\n /**\n * @param {?} ast\n * @param {?} ctx\n * @return {?}\n */\n AbstractJsEmitterVisitor.prototype.visitFunctionExpr = /**\n * @param {?} ast\n * @param {?} ctx\n * @return {?}\n */\n function (ast, ctx) {\n ctx.print(ast, \"function(\");\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 /**\n * @param {?} stmt\n * @param {?} ctx\n * @return {?}\n */\n AbstractJsEmitterVisitor.prototype.visitDeclareFunctionStmt = /**\n * @param {?} stmt\n * @param {?} ctx\n * @return {?}\n */\n function (stmt, ctx) {\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 /**\n * @param {?} stmt\n * @param {?} ctx\n * @return {?}\n */\n AbstractJsEmitterVisitor.prototype.visitTryCatchStmt = /**\n * @param {?} stmt\n * @param {?} ctx\n * @return {?}\n */\n function (stmt, ctx) {\n ctx.println(stmt, \"try {\");\n ctx.incIndent();\n this.visitAllStatements(stmt.bodyStmts, ctx);\n ctx.decIndent();\n ctx.println(stmt, \"} catch (\" + CATCH_ERROR_VAR.name + \") {\");\n ctx.incIndent();\n var /** @type {?} */ catchStmts = [/** @type {?} */ (CATCH_STACK_VAR.set(CATCH_ERROR_VAR.prop('stack')).toDeclStmt(null, [\n o.StmtModifier.Final\n ]))].concat(stmt.catchStmts);\n this.visitAllStatements(catchStmts, ctx);\n ctx.decIndent();\n ctx.println(stmt, \"}\");\n return null;\n };\n /**\n * @param {?} params\n * @param {?} ctx\n * @return {?}\n */\n AbstractJsEmitterVisitor.prototype._visitParams = /**\n * @param {?} params\n * @param {?} ctx\n * @return {?}\n */\n function (params, ctx) {\n this.visitAllObjects(function (param) { return ctx.print(null, param.name); }, params, ctx, ',');\n };\n /**\n * @param {?} method\n * @return {?}\n */\n AbstractJsEmitterVisitor.prototype.getBuiltinMethodName = /**\n * @param {?} method\n * @return {?}\n */\n function (method) {\n var /** @type {?} */ name;\n switch (method) {\n case o.BuiltinMethod.ConcatArray:\n name = 'concat';\n break;\n case o.BuiltinMethod.SubscribeObservable:\n name = 'subscribe';\n break;\n case o.BuiltinMethod.Bind:\n name = 'bind';\n break;\n default:\n throw new Error(\"Unknown builtin method: \" + method);\n }\n return name;\n };\n return AbstractJsEmitterVisitor;\n}(AbstractEmitterVisitor));\n/**\n * @abstract\n */\nexport { AbstractJsEmitterVisitor };\n//# sourceMappingURL=abstract_js_emitter.js.map","/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this 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 tslib_1 from \"tslib\";\nimport { identifierName } from '../compile_metadata';\nimport { EmitterVisitorContext } from './abstract_emitter';\nimport { AbstractJsEmitterVisitor } from './abstract_js_emitter';\nimport * as o from './output_ast';\n/**\n * @param {?} sourceUrl\n * @param {?} ctx\n * @param {?} vars\n * @param {?} createSourceMap\n * @return {?}\n */\nfunction evalExpression(sourceUrl, ctx, vars, createSourceMap) {\n var /** @type {?} */ fnBody = ctx.toSource() + \"\\n//# sourceURL=\" + sourceUrl;\n var /** @type {?} */ fnArgNames = [];\n var /** @type {?} */ fnArgValues = [];\n for (var /** @type {?} */ argName in vars) {\n fnArgNames.push(argName);\n fnArgValues.push(vars[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 var /** @type {?} */ emptyFn = new (Function.bind.apply(Function, [void 0].concat(fnArgNames.concat('return null;'))))().toString();\n var /** @type {?} */ headerLines = emptyFn.slice(0, emptyFn.indexOf('return null;')).split('\\n').length - 1;\n fnBody += \"\\n\" + ctx.toSourceMapGenerator(sourceUrl, headerLines).toJsComment();\n }\n return new (Function.bind.apply(Function, [void 0].concat(fnArgNames.concat(fnBody))))().apply(void 0, fnArgValues);\n}\n/**\n * @param {?} sourceUrl\n * @param {?} statements\n * @param {?} reflector\n * @param {?} createSourceMaps\n * @return {?}\n */\nexport function jitStatements(sourceUrl, statements, reflector, createSourceMaps) {\n var /** @type {?} */ converter = new JitEmitterVisitor(reflector);\n var /** @type {?} */ ctx = EmitterVisitorContext.createRoot();\n converter.visitAllStatements(statements, ctx);\n converter.createReturnStmt(ctx);\n return evalExpression(sourceUrl, ctx, converter.getArgs(), createSourceMaps);\n}\nvar JitEmitterVisitor = /** @class */ (function (_super) {\n tslib_1.__extends(JitEmitterVisitor, _super);\n function JitEmitterVisitor(reflector) {\n var _this = _super.call(this) || this;\n _this.reflector = reflector;\n _this._evalArgNames = [];\n _this._evalArgValues = [];\n _this._evalExportedVars = [];\n return _this;\n }\n /**\n * @param {?} ctx\n * @return {?}\n */\n JitEmitterVisitor.prototype.createReturnStmt = /**\n * @param {?} ctx\n * @return {?}\n */\n function (ctx) {\n var /** @type {?} */ stmt = new o.ReturnStatement(new o.LiteralMapExpr(this._evalExportedVars.map(function (resultVar) { return new o.LiteralMapEntry(resultVar, o.variable(resultVar), false); })));\n stmt.visitStatement(this, ctx);\n };\n /**\n * @return {?}\n */\n JitEmitterVisitor.prototype.getArgs = /**\n * @return {?}\n */\n function () {\n var /** @type {?} */ result = {};\n for (var /** @type {?} */ i = 0; i < this._evalArgNames.length; i++) {\n result[this._evalArgNames[i]] = this._evalArgValues[i];\n }\n return result;\n };\n /**\n * @param {?} ast\n * @param {?} ctx\n * @return {?}\n */\n JitEmitterVisitor.prototype.visitExternalExpr = /**\n * @param {?} ast\n * @param {?} ctx\n * @return {?}\n */\n function (ast, ctx) {\n var /** @type {?} */ value = this.reflector.resolveExternalReference(ast.value);\n var /** @type {?} */ id = this._evalArgValues.indexOf(value);\n if (id === -1) {\n id = this._evalArgValues.length;\n this._evalArgValues.push(value);\n var /** @type {?} */ name_1 = identifierName({ reference: value }) || 'val';\n this._evalArgNames.push(\"jit_\" + name_1 + \"_\" + id);\n }\n ctx.print(ast, this._evalArgNames[id]);\n return null;\n };\n /**\n * @param {?} stmt\n * @param {?} ctx\n * @return {?}\n */\n JitEmitterVisitor.prototype.visitDeclareVarStmt = /**\n * @param {?} stmt\n * @param {?} ctx\n * @return {?}\n */\n function (stmt, ctx) {\n if (stmt.hasModifier(o.StmtModifier.Exported)) {\n this._evalExportedVars.push(stmt.name);\n }\n return _super.prototype.visitDeclareVarStmt.call(this, stmt, ctx);\n };\n /**\n * @param {?} stmt\n * @param {?} ctx\n * @return {?}\n */\n JitEmitterVisitor.prototype.visitDeclareFunctionStmt = /**\n * @param {?} stmt\n * @param {?} ctx\n * @return {?}\n */\n function (stmt, ctx) {\n if (stmt.hasModifier(o.StmtModifier.Exported)) {\n this._evalExportedVars.push(stmt.name);\n }\n return _super.prototype.visitDeclareFunctionStmt.call(this, stmt, ctx);\n };\n /**\n * @param {?} stmt\n * @param {?} ctx\n * @return {?}\n */\n JitEmitterVisitor.prototype.visitDeclareClassStmt = /**\n * @param {?} stmt\n * @param {?} ctx\n * @return {?}\n */\n function (stmt, ctx) {\n if (stmt.hasModifier(o.StmtModifier.Exported)) {\n this._evalExportedVars.push(stmt.name);\n }\n return _super.prototype.visitDeclareClassStmt.call(this, stmt, ctx);\n };\n return JitEmitterVisitor;\n}(AbstractJsEmitterVisitor));\nexport { JitEmitterVisitor };\nfunction JitEmitterVisitor_tsickle_Closure_declarations() {\n /** @type {?} */\n JitEmitterVisitor.prototype._evalArgNames;\n /** @type {?} */\n JitEmitterVisitor.prototype._evalArgValues;\n /** @type {?} */\n JitEmitterVisitor.prototype._evalExportedVars;\n /** @type {?} */\n JitEmitterVisitor.prototype.reflector;\n}\n//# sourceMappingURL=output_jit.js.map","/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this 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 { identifierName, ngModuleJitUrl, sharedStylesheetJitUrl, templateJitUrl, templateSourceUrl } from '../compile_metadata';\nimport * as ir from '../output/output_ast';\nimport { interpretStatements } from '../output/output_interpreter';\nimport { jitStatements } from '../output/output_jit';\nimport { SyncAsync, stringify } from '../util';\n/**\n * @record\n */\nexport function ModuleWithComponentFactories() { }\nfunction ModuleWithComponentFactories_tsickle_Closure_declarations() {\n /** @type {?} */\n ModuleWithComponentFactories.prototype.ngModuleFactory;\n /** @type {?} */\n ModuleWithComponentFactories.prototype.componentFactories;\n}\n/**\n * An internal module of the Angular compiler that begins with component types,\n * extracts templates, and eventually produces a compiled version of the component\n * ready for linking into an application.\n *\n * \\@security When compiling templates at runtime, you must ensure that the entire template comes\n * from a trusted source. Attacker-controlled data introduced by a template could expose your\n * application to XSS risks. For more detail, see the [Security Guide](http://g.co/ng/security).\n */\nvar /**\n * An internal module of the Angular compiler that begins with component types,\n * extracts templates, and eventually produces a compiled version of the component\n * ready for linking into an application.\n *\n * \\@security When compiling templates at runtime, you must ensure that the entire template comes\n * from a trusted source. Attacker-controlled data introduced by a template could expose your\n * application to XSS risks. For more detail, see the [Security Guide](http://g.co/ng/security).\n */\nJitCompiler = /** @class */ (function () {\n function JitCompiler(_metadataResolver, _templateParser, _styleCompiler, _viewCompiler, _ngModuleCompiler, _summaryResolver, _reflector, _compilerConfig, _console, getExtraNgModuleProviders) {\n this._metadataResolver = _metadataResolver;\n this._templateParser = _templateParser;\n this._styleCompiler = _styleCompiler;\n this._viewCompiler = _viewCompiler;\n this._ngModuleCompiler = _ngModuleCompiler;\n this._summaryResolver = _summaryResolver;\n this._reflector = _reflector;\n this._compilerConfig = _compilerConfig;\n this._console = _console;\n this.getExtraNgModuleProviders = getExtraNgModuleProviders;\n this._compiledTemplateCache = new Map();\n this._compiledHostTemplateCache = new Map();\n this._compiledDirectiveWrapperCache = new Map();\n this._compiledNgModuleCache = new Map();\n this._sharedStylesheetCount = 0;\n this._addedAotSummaries = new Set();\n }\n /**\n * @param {?} moduleType\n * @return {?}\n */\n JitCompiler.prototype.compileModuleSync = /**\n * @param {?} moduleType\n * @return {?}\n */\n function (moduleType) {\n return SyncAsync.assertSync(this._compileModuleAndComponents(moduleType, true));\n };\n /**\n * @param {?} moduleType\n * @return {?}\n */\n JitCompiler.prototype.compileModuleAsync = /**\n * @param {?} moduleType\n * @return {?}\n */\n function (moduleType) {\n return Promise.resolve(this._compileModuleAndComponents(moduleType, false));\n };\n /**\n * @param {?} moduleType\n * @return {?}\n */\n JitCompiler.prototype.compileModuleAndAllComponentsSync = /**\n * @param {?} moduleType\n * @return {?}\n */\n function (moduleType) {\n return SyncAsync.assertSync(this._compileModuleAndAllComponents(moduleType, true));\n };\n /**\n * @param {?} moduleType\n * @return {?}\n */\n JitCompiler.prototype.compileModuleAndAllComponentsAsync = /**\n * @param {?} moduleType\n * @return {?}\n */\n function (moduleType) {\n return Promise.resolve(this._compileModuleAndAllComponents(moduleType, false));\n };\n /**\n * @param {?} component\n * @return {?}\n */\n JitCompiler.prototype.getComponentFactory = /**\n * @param {?} component\n * @return {?}\n */\n function (component) {\n var /** @type {?} */ summary = this._metadataResolver.getDirectiveSummary(component);\n return /** @type {?} */ (summary.componentFactory);\n };\n /**\n * @param {?} summaries\n * @return {?}\n */\n JitCompiler.prototype.loadAotSummaries = /**\n * @param {?} summaries\n * @return {?}\n */\n function (summaries) {\n this.clearCache();\n this._addAotSummaries(summaries);\n };\n /**\n * @param {?} fn\n * @return {?}\n */\n JitCompiler.prototype._addAotSummaries = /**\n * @param {?} fn\n * @return {?}\n */\n function (fn) {\n if (this._addedAotSummaries.has(fn)) {\n return;\n }\n this._addedAotSummaries.add(fn);\n var /** @type {?} */ summaries = fn();\n for (var /** @type {?} */ i = 0; i < summaries.length; i++) {\n var /** @type {?} */ entry = summaries[i];\n if (typeof entry === 'function') {\n this._addAotSummaries(entry);\n }\n else {\n var /** @type {?} */ summary = /** @type {?} */ (entry);\n this._summaryResolver.addSummary({ symbol: summary.type.reference, metadata: null, type: summary });\n }\n }\n };\n /**\n * @param {?} ref\n * @return {?}\n */\n JitCompiler.prototype.hasAotSummary = /**\n * @param {?} ref\n * @return {?}\n */\n function (ref) { return !!this._summaryResolver.resolveSummary(ref); };\n /**\n * @param {?} ids\n * @return {?}\n */\n JitCompiler.prototype._filterJitIdentifiers = /**\n * @param {?} ids\n * @return {?}\n */\n function (ids) {\n var _this = this;\n return ids.map(function (mod) { return mod.reference; }).filter(function (ref) { return !_this.hasAotSummary(ref); });\n };\n /**\n * @param {?} moduleType\n * @param {?} isSync\n * @return {?}\n */\n JitCompiler.prototype._compileModuleAndComponents = /**\n * @param {?} moduleType\n * @param {?} isSync\n * @return {?}\n */\n function (moduleType, isSync) {\n var _this = this;\n return SyncAsync.then(this._loadModules(moduleType, isSync), function () {\n _this._compileComponents(moduleType, null);\n return _this._compileModule(moduleType);\n });\n };\n /**\n * @param {?} moduleType\n * @param {?} isSync\n * @return {?}\n */\n JitCompiler.prototype._compileModuleAndAllComponents = /**\n * @param {?} moduleType\n * @param {?} isSync\n * @return {?}\n */\n function (moduleType, isSync) {\n var _this = this;\n return SyncAsync.then(this._loadModules(moduleType, isSync), function () {\n var /** @type {?} */ componentFactories = [];\n _this._compileComponents(moduleType, componentFactories);\n return {\n ngModuleFactory: _this._compileModule(moduleType),\n componentFactories: componentFactories\n };\n });\n };\n /**\n * @param {?} mainModule\n * @param {?} isSync\n * @return {?}\n */\n JitCompiler.prototype._loadModules = /**\n * @param {?} mainModule\n * @param {?} isSync\n * @return {?}\n */\n function (mainModule, isSync) {\n var _this = this;\n var /** @type {?} */ loading = [];\n var /** @type {?} */ mainNgModule = /** @type {?} */ ((this._metadataResolver.getNgModuleMetadata(mainModule)));\n // Note: for runtime compilation, we want to transitively compile all modules,\n // so we also need to load the declared directives / pipes for all nested modules.\n this._filterJitIdentifiers(mainNgModule.transitiveModule.modules).forEach(function (nestedNgModule) {\n // getNgModuleMetadata only returns null if the value passed in is not an NgModule\n var /** @type {?} */ moduleMeta = /** @type {?} */ ((_this._metadataResolver.getNgModuleMetadata(nestedNgModule)));\n _this._filterJitIdentifiers(moduleMeta.declaredDirectives).forEach(function (ref) {\n var /** @type {?} */ promise = _this._metadataResolver.loadDirectiveMetadata(moduleMeta.type.reference, ref, isSync);\n if (promise) {\n loading.push(promise);\n }\n });\n _this._filterJitIdentifiers(moduleMeta.declaredPipes)\n .forEach(function (ref) { return _this._metadataResolver.getOrLoadPipeMetadata(ref); });\n });\n return SyncAsync.all(loading);\n };\n /**\n * @param {?} moduleType\n * @return {?}\n */\n JitCompiler.prototype._compileModule = /**\n * @param {?} moduleType\n * @return {?}\n */\n function (moduleType) {\n var /** @type {?} */ ngModuleFactory = /** @type {?} */ ((this._compiledNgModuleCache.get(moduleType)));\n if (!ngModuleFactory) {\n var /** @type {?} */ moduleMeta = /** @type {?} */ ((this._metadataResolver.getNgModuleMetadata(moduleType)));\n // Always provide a bound Compiler\n var /** @type {?} */ extraProviders = this.getExtraNgModuleProviders(moduleMeta.type.reference);\n var /** @type {?} */ outputCtx = createOutputContext();\n var /** @type {?} */ compileResult = this._ngModuleCompiler.compile(outputCtx, moduleMeta, extraProviders);\n ngModuleFactory = this._interpretOrJit(ngModuleJitUrl(moduleMeta), outputCtx.statements)[compileResult.ngModuleFactoryVar];\n this._compiledNgModuleCache.set(moduleMeta.type.reference, ngModuleFactory);\n }\n return ngModuleFactory;\n };\n /**\n * @internal\n */\n /**\n * \\@internal\n * @param {?} mainModule\n * @param {?} allComponentFactories\n * @return {?}\n */\n JitCompiler.prototype._compileComponents = /**\n * \\@internal\n * @param {?} mainModule\n * @param {?} allComponentFactories\n * @return {?}\n */\n function (mainModule, allComponentFactories) {\n var _this = this;\n var /** @type {?} */ ngModule = /** @type {?} */ ((this._metadataResolver.getNgModuleMetadata(mainModule)));\n var /** @type {?} */ moduleByJitDirective = new Map();\n var /** @type {?} */ templates = new Set();\n var /** @type {?} */ transJitModules = this._filterJitIdentifiers(ngModule.transitiveModule.modules);\n transJitModules.forEach(function (localMod) {\n var /** @type {?} */ localModuleMeta = /** @type {?} */ ((_this._metadataResolver.getNgModuleMetadata(localMod)));\n _this._filterJitIdentifiers(localModuleMeta.declaredDirectives).forEach(function (dirRef) {\n moduleByJitDirective.set(dirRef, localModuleMeta);\n var /** @type {?} */ dirMeta = _this._metadataResolver.getDirectiveMetadata(dirRef);\n if (dirMeta.isComponent) {\n templates.add(_this._createCompiledTemplate(dirMeta, localModuleMeta));\n if (allComponentFactories) {\n var /** @type {?} */ template = _this._createCompiledHostTemplate(dirMeta.type.reference, localModuleMeta);\n templates.add(template);\n allComponentFactories.push(/** @type {?} */ (dirMeta.componentFactory));\n }\n }\n });\n });\n transJitModules.forEach(function (localMod) {\n var /** @type {?} */ localModuleMeta = /** @type {?} */ ((_this._metadataResolver.getNgModuleMetadata(localMod)));\n _this._filterJitIdentifiers(localModuleMeta.declaredDirectives).forEach(function (dirRef) {\n var /** @type {?} */ dirMeta = _this._metadataResolver.getDirectiveMetadata(dirRef);\n if (dirMeta.isComponent) {\n dirMeta.entryComponents.forEach(function (entryComponentType) {\n var /** @type {?} */ moduleMeta = /** @type {?} */ ((moduleByJitDirective.get(entryComponentType.componentType)));\n templates.add(_this._createCompiledHostTemplate(entryComponentType.componentType, moduleMeta));\n });\n }\n });\n localModuleMeta.entryComponents.forEach(function (entryComponentType) {\n if (!_this.hasAotSummary(entryComponentType.componentType.reference)) {\n var /** @type {?} */ moduleMeta = /** @type {?} */ ((moduleByJitDirective.get(entryComponentType.componentType)));\n templates.add(_this._createCompiledHostTemplate(entryComponentType.componentType, moduleMeta));\n }\n });\n });\n templates.forEach(function (template) { return _this._compileTemplate(template); });\n };\n /**\n * @param {?} type\n * @return {?}\n */\n JitCompiler.prototype.clearCacheFor = /**\n * @param {?} type\n * @return {?}\n */\n function (type) {\n this._compiledNgModuleCache.delete(type);\n this._metadataResolver.clearCacheFor(type);\n this._compiledHostTemplateCache.delete(type);\n var /** @type {?} */ compiledTemplate = this._compiledTemplateCache.get(type);\n if (compiledTemplate) {\n this._compiledTemplateCache.delete(type);\n }\n };\n /**\n * @return {?}\n */\n JitCompiler.prototype.clearCache = /**\n * @return {?}\n */\n function () {\n // Note: don't clear the _addedAotSummaries, as they don't change!\n this._metadataResolver.clearCache();\n this._compiledTemplateCache.clear();\n this._compiledHostTemplateCache.clear();\n this._compiledNgModuleCache.clear();\n };\n /**\n * @param {?} compType\n * @param {?} ngModule\n * @return {?}\n */\n JitCompiler.prototype._createCompiledHostTemplate = /**\n * @param {?} compType\n * @param {?} ngModule\n * @return {?}\n */\n function (compType, ngModule) {\n if (!ngModule) {\n throw new Error(\"Component \" + stringify(compType) + \" is not part of any NgModule or the module has not been imported into your module.\");\n }\n var /** @type {?} */ compiledTemplate = this._compiledHostTemplateCache.get(compType);\n if (!compiledTemplate) {\n var /** @type {?} */ compMeta = this._metadataResolver.getDirectiveMetadata(compType);\n assertComponent(compMeta);\n var /** @type {?} */ hostMeta = this._metadataResolver.getHostComponentMetadata(compMeta, (/** @type {?} */ (compMeta.componentFactory)).viewDefFactory);\n compiledTemplate =\n new CompiledTemplate(true, compMeta.type, hostMeta, ngModule, [compMeta.type]);\n this._compiledHostTemplateCache.set(compType, compiledTemplate);\n }\n return compiledTemplate;\n };\n /**\n * @param {?} compMeta\n * @param {?} ngModule\n * @return {?}\n */\n JitCompiler.prototype._createCompiledTemplate = /**\n * @param {?} compMeta\n * @param {?} ngModule\n * @return {?}\n */\n function (compMeta, ngModule) {\n var /** @type {?} */ compiledTemplate = this._compiledTemplateCache.get(compMeta.type.reference);\n if (!compiledTemplate) {\n assertComponent(compMeta);\n compiledTemplate = new CompiledTemplate(false, compMeta.type, compMeta, ngModule, ngModule.transitiveModule.directives);\n this._compiledTemplateCache.set(compMeta.type.reference, compiledTemplate);\n }\n return compiledTemplate;\n };\n /**\n * @param {?} template\n * @return {?}\n */\n JitCompiler.prototype._compileTemplate = /**\n * @param {?} template\n * @return {?}\n */\n function (template) {\n var _this = this;\n if (template.isCompiled) {\n return;\n }\n var /** @type {?} */ compMeta = template.compMeta;\n var /** @type {?} */ externalStylesheetsByModuleUrl = new Map();\n var /** @type {?} */ outputContext = createOutputContext();\n var /** @type {?} */ componentStylesheet = this._styleCompiler.compileComponent(outputContext, compMeta); /** @type {?} */\n ((compMeta.template)).externalStylesheets.forEach(function (stylesheetMeta) {\n var /** @type {?} */ compiledStylesheet = _this._styleCompiler.compileStyles(createOutputContext(), compMeta, stylesheetMeta);\n externalStylesheetsByModuleUrl.set(/** @type {?} */ ((stylesheetMeta.moduleUrl)), compiledStylesheet);\n });\n this._resolveStylesCompileResult(componentStylesheet, externalStylesheetsByModuleUrl);\n var /** @type {?} */ pipes = template.ngModule.transitiveModule.pipes.map(function (pipe) { return _this._metadataResolver.getPipeSummary(pipe.reference); });\n var _a = this._parseTemplate(compMeta, template.ngModule, template.directives), parsedTemplate = _a.template, usedPipes = _a.pipes;\n var /** @type {?} */ compileResult = this._viewCompiler.compileComponent(outputContext, compMeta, parsedTemplate, ir.variable(componentStylesheet.stylesVar), usedPipes);\n var /** @type {?} */ evalResult = this._interpretOrJit(templateJitUrl(template.ngModule.type, template.compMeta), outputContext.statements);\n var /** @type {?} */ viewClass = evalResult[compileResult.viewClassVar];\n var /** @type {?} */ rendererType = evalResult[compileResult.rendererTypeVar];\n template.compiled(viewClass, rendererType);\n };\n /**\n * @param {?} compMeta\n * @param {?} ngModule\n * @param {?} directiveIdentifiers\n * @return {?}\n */\n JitCompiler.prototype._parseTemplate = /**\n * @param {?} compMeta\n * @param {?} ngModule\n * @param {?} directiveIdentifiers\n * @return {?}\n */\n function (compMeta, ngModule, directiveIdentifiers) {\n var _this = this;\n // Note: ! is ok here as components always have a template.\n var /** @type {?} */ preserveWhitespaces = /** @type {?} */ ((compMeta.template)).preserveWhitespaces;\n var /** @type {?} */ directives = directiveIdentifiers.map(function (dir) { return _this._metadataResolver.getDirectiveSummary(dir.reference); });\n var /** @type {?} */ pipes = ngModule.transitiveModule.pipes.map(function (pipe) { return _this._metadataResolver.getPipeSummary(pipe.reference); });\n return this._templateParser.parse(compMeta, /** @type {?} */ ((/** @type {?} */ ((compMeta.template)).htmlAst)), directives, pipes, ngModule.schemas, templateSourceUrl(ngModule.type, compMeta, /** @type {?} */ ((compMeta.template))), preserveWhitespaces);\n };\n /**\n * @param {?} result\n * @param {?} externalStylesheetsByModuleUrl\n * @return {?}\n */\n JitCompiler.prototype._resolveStylesCompileResult = /**\n * @param {?} result\n * @param {?} externalStylesheetsByModuleUrl\n * @return {?}\n */\n function (result, externalStylesheetsByModuleUrl) {\n var _this = this;\n result.dependencies.forEach(function (dep, i) {\n var /** @type {?} */ nestedCompileResult = /** @type {?} */ ((externalStylesheetsByModuleUrl.get(dep.moduleUrl)));\n var /** @type {?} */ nestedStylesArr = _this._resolveAndEvalStylesCompileResult(nestedCompileResult, externalStylesheetsByModuleUrl);\n dep.setValue(nestedStylesArr);\n });\n };\n /**\n * @param {?} result\n * @param {?} externalStylesheetsByModuleUrl\n * @return {?}\n */\n JitCompiler.prototype._resolveAndEvalStylesCompileResult = /**\n * @param {?} result\n * @param {?} externalStylesheetsByModuleUrl\n * @return {?}\n */\n function (result, externalStylesheetsByModuleUrl) {\n this._resolveStylesCompileResult(result, externalStylesheetsByModuleUrl);\n return this._interpretOrJit(sharedStylesheetJitUrl(result.meta, this._sharedStylesheetCount++), result.outputCtx.statements)[result.stylesVar];\n };\n /**\n * @param {?} sourceUrl\n * @param {?} statements\n * @return {?}\n */\n JitCompiler.prototype._interpretOrJit = /**\n * @param {?} sourceUrl\n * @param {?} statements\n * @return {?}\n */\n function (sourceUrl, statements) {\n if (!this._compilerConfig.useJit) {\n return interpretStatements(statements, this._reflector);\n }\n else {\n return jitStatements(sourceUrl, statements, this._reflector, this._compilerConfig.jitDevMode);\n }\n };\n return JitCompiler;\n}());\n/**\n * An internal module of the Angular compiler that begins with component types,\n * extracts templates, and eventually produces a compiled version of the component\n * ready for linking into an application.\n *\n * \\@security When compiling templates at runtime, you must ensure that the entire template comes\n * from a trusted source. Attacker-controlled data introduced by a template could expose your\n * application to XSS risks. For more detail, see the [Security Guide](http://g.co/ng/security).\n */\nexport { JitCompiler };\nfunction JitCompiler_tsickle_Closure_declarations() {\n /** @type {?} */\n JitCompiler.prototype._compiledTemplateCache;\n /** @type {?} */\n JitCompiler.prototype._compiledHostTemplateCache;\n /** @type {?} */\n JitCompiler.prototype._compiledDirectiveWrapperCache;\n /** @type {?} */\n JitCompiler.prototype._compiledNgModuleCache;\n /** @type {?} */\n JitCompiler.prototype._sharedStylesheetCount;\n /** @type {?} */\n JitCompiler.prototype._addedAotSummaries;\n /** @type {?} */\n JitCompiler.prototype._metadataResolver;\n /** @type {?} */\n JitCompiler.prototype._templateParser;\n /** @type {?} */\n JitCompiler.prototype._styleCompiler;\n /** @type {?} */\n JitCompiler.prototype._viewCompiler;\n /** @type {?} */\n JitCompiler.prototype._ngModuleCompiler;\n /** @type {?} */\n JitCompiler.prototype._summaryResolver;\n /** @type {?} */\n JitCompiler.prototype._reflector;\n /** @type {?} */\n JitCompiler.prototype._compilerConfig;\n /** @type {?} */\n JitCompiler.prototype._console;\n /** @type {?} */\n JitCompiler.prototype.getExtraNgModuleProviders;\n}\nvar CompiledTemplate = /** @class */ (function () {\n function CompiledTemplate(isHost, compType, compMeta, ngModule, directives) {\n this.isHost = isHost;\n this.compType = compType;\n this.compMeta = compMeta;\n this.ngModule = ngModule;\n this.directives = directives;\n this._viewClass = /** @type {?} */ ((null));\n this.isCompiled = false;\n }\n /**\n * @param {?} viewClass\n * @param {?} rendererType\n * @return {?}\n */\n CompiledTemplate.prototype.compiled = /**\n * @param {?} viewClass\n * @param {?} rendererType\n * @return {?}\n */\n function (viewClass, rendererType) {\n this._viewClass = viewClass;\n (/** @type {?} */ (this.compMeta.componentViewType)).setDelegate(viewClass);\n for (var /** @type {?} */ prop in rendererType) {\n (/** @type {?} */ (this.compMeta.rendererType))[prop] = rendererType[prop];\n }\n this.isCompiled = true;\n };\n return CompiledTemplate;\n}());\nfunction CompiledTemplate_tsickle_Closure_declarations() {\n /** @type {?} */\n CompiledTemplate.prototype._viewClass;\n /** @type {?} */\n CompiledTemplate.prototype.isCompiled;\n /** @type {?} */\n CompiledTemplate.prototype.isHost;\n /** @type {?} */\n CompiledTemplate.prototype.compType;\n /** @type {?} */\n CompiledTemplate.prototype.compMeta;\n /** @type {?} */\n CompiledTemplate.prototype.ngModule;\n /** @type {?} */\n CompiledTemplate.prototype.directives;\n}\n/**\n * @param {?} meta\n * @return {?}\n */\nfunction assertComponent(meta) {\n if (!meta.isComponent) {\n throw new Error(\"Could not compile '\" + identifierName(meta.type) + \"' because it is not a component.\");\n }\n}\n/**\n * @return {?}\n */\nfunction createOutputContext() {\n var /** @type {?} */ importExpr = function (symbol) {\n return ir.importExpr({ name: identifierName(symbol), moduleName: null, runtime: symbol });\n };\n return { statements: [], genFilePath: '', importExpr: importExpr };\n}\n//# sourceMappingURL=compiler.js.map","/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * Provides access to reflection data about symbols that the compiler needs.\n * @abstract\n */\nvar /**\n * Provides access to reflection data about symbols that the compiler needs.\n * @abstract\n */\nCompileReflector = /** @class */ (function () {\n function CompileReflector() {\n }\n return CompileReflector;\n}());\n/**\n * Provides access to reflection data about symbols that the compiler needs.\n * @abstract\n */\nexport { CompileReflector };\nfunction CompileReflector_tsickle_Closure_declarations() {\n /**\n * @abstract\n * @param {?} typeOrFunc\n * @return {?}\n */\n CompileReflector.prototype.parameters = function (typeOrFunc) { };\n /**\n * @abstract\n * @param {?} typeOrFunc\n * @return {?}\n */\n CompileReflector.prototype.annotations = function (typeOrFunc) { };\n /**\n * @abstract\n * @param {?} typeOrFunc\n * @return {?}\n */\n CompileReflector.prototype.propMetadata = function (typeOrFunc) { };\n /**\n * @abstract\n * @param {?} type\n * @param {?} lcProperty\n * @return {?}\n */\n CompileReflector.prototype.hasLifecycleHook = function (type, lcProperty) { };\n /**\n * @abstract\n * @param {?} typeOrFunc\n * @return {?}\n */\n CompileReflector.prototype.guards = function (typeOrFunc) { };\n /**\n * @abstract\n * @param {?} type\n * @param {?} cmpMetadata\n * @return {?}\n */\n CompileReflector.prototype.componentModuleUrl = function (type, cmpMetadata) { };\n /**\n * @abstract\n * @param {?} ref\n * @return {?}\n */\n CompileReflector.prototype.resolveExternalReference = function (ref) { };\n}\n//# sourceMappingURL=compile_reflector.js.map","/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source 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 * Create a {\\@link UrlResolver} with no package prefix.\n * @return {?}\n */\nexport function createUrlResolverWithoutPackagePrefix() {\n return new UrlResolver();\n}\n/**\n * @return {?}\n */\nexport function createOfflineCompileUrlResolver() {\n return new UrlResolver('.');\n}\n/**\n * @record\n */\nexport function UrlResolverCtor() { }\nfunction UrlResolverCtor_tsickle_Closure_declarations() {\n /* TODO: handle strange member:\n new (packagePrefix?: string|null): UrlResolver;\n */\n}\nexport var /** @type {?} */ UrlResolver = /** @class */ (function () {\n function UrlResolverImpl(_packagePrefix) {\n if (_packagePrefix === void 0) { _packagePrefix = null; }\n this._packagePrefix = _packagePrefix;\n }\n /**\n * Resolves the `url` given the `baseUrl`:\n * - when the `url` is null, the `baseUrl` is returned,\n * - if `url` is relative ('path/to/here', './path/to/here'), the resolved url is a combination of\n * `baseUrl` and `url`,\n * - if `url` is absolute (it has a scheme: 'http://', 'https://' or start with '/'), the `url` is\n * returned as is (ignoring the `baseUrl`)\n */\n /**\n * Resolves the `url` given the `baseUrl`:\n * - when the `url` is null, the `baseUrl` is returned,\n * - if `url` is relative ('path/to/here', './path/to/here'), the resolved url is a combination of\n * `baseUrl` and `url`,\n * - if `url` is absolute (it has a scheme: 'http://', 'https://' or start with '/'), the `url` is\n * returned as is (ignoring the `baseUrl`)\n * @param {?} baseUrl\n * @param {?} url\n * @return {?}\n */\n UrlResolverImpl.prototype.resolve = /**\n * Resolves the `url` given the `baseUrl`:\n * - when the `url` is null, the `baseUrl` is returned,\n * - if `url` is relative ('path/to/here', './path/to/here'), the resolved url is a combination of\n * `baseUrl` and `url`,\n * - if `url` is absolute (it has a scheme: 'http://', 'https://' or start with '/'), the `url` is\n * returned as is (ignoring the `baseUrl`)\n * @param {?} baseUrl\n * @param {?} url\n * @return {?}\n */\n function (baseUrl, url) {\n var /** @type {?} */ resolvedUrl = url;\n if (baseUrl != null && baseUrl.length > 0) {\n resolvedUrl = _resolveUrl(baseUrl, resolvedUrl);\n }\n var /** @type {?} */ resolvedParts = _split(resolvedUrl);\n var /** @type {?} */ prefix = this._packagePrefix;\n if (prefix != null && resolvedParts != null &&\n resolvedParts[_ComponentIndex.Scheme] == 'package') {\n var /** @type {?} */ path = resolvedParts[_ComponentIndex.Path];\n prefix = prefix.replace(/\\/+$/, '');\n path = path.replace(/^\\/+/, '');\n return prefix + \"/\" + path;\n }\n return resolvedUrl;\n };\n return UrlResolverImpl;\n}());\n/**\n * Extract the scheme of a URL.\n * @param {?} url\n * @return {?}\n */\nexport function getUrlScheme(url) {\n var /** @type {?} */ match = _split(url);\n return (match && match[_ComponentIndex.Scheme]) || '';\n}\n/**\n * Builds a URI string from already-encoded parts.\n *\n * No encoding is performed. Any component may be omitted as either null or\n * undefined.\n *\n * @param {?=} opt_scheme The scheme such as 'http'.\n * @param {?=} opt_userInfo The user name before the '\\@'.\n * @param {?=} opt_domain The domain such as 'www.google.com', already\n * URI-encoded.\n * @param {?=} opt_port The port number.\n * @param {?=} opt_path The path, already URI-encoded. If it is not\n * empty, it must begin with a slash.\n * @param {?=} opt_queryData The URI-encoded query data.\n * @param {?=} opt_fragment The URI-encoded fragment identifier.\n * @return {?} The fully combined URI.\n */\nfunction _buildFromEncodedParts(opt_scheme, opt_userInfo, opt_domain, opt_port, opt_path, opt_queryData, opt_fragment) {\n var /** @type {?} */ out = [];\n if (opt_scheme != null) {\n out.push(opt_scheme + ':');\n }\n if (opt_domain != null) {\n out.push('//');\n if (opt_userInfo != null) {\n out.push(opt_userInfo + '@');\n }\n out.push(opt_domain);\n if (opt_port != null) {\n out.push(':' + opt_port);\n }\n }\n if (opt_path != null) {\n out.push(opt_path);\n }\n if (opt_queryData != null) {\n out.push('?' + opt_queryData);\n }\n if (opt_fragment != null) {\n out.push('#' + opt_fragment);\n }\n return out.join('');\n}\n/**\n * A regular expression for breaking a URI into its component parts.\n *\n * {\\@link http://www.gbiv.com/protocols/uri/rfc/rfc3986.html#RFC2234} says\n * As the \"first-match-wins\" algorithm is identical to the \"greedy\"\n * disambiguation method used by POSIX regular expressions, it is natural and\n * commonplace to use a regular expression for parsing the potential five\n * components of a URI reference.\n *\n * The following line is the regular expression for breaking-down a\n * well-formed URI reference into its components.\n *\n * <pre>\n * ^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?\n * 12 3 4 5 6 7 8 9\n * </pre>\n *\n * The numbers in the second line above are only to assist readability; they\n * indicate the reference points for each subexpression (i.e., each paired\n * parenthesis). We refer to the value matched for subexpression <n> as $<n>.\n * For example, matching the above expression to\n * <pre>\n * http://www.ics.uci.edu/pub/ietf/uri/#Related\n * </pre>\n * results in the following subexpression matches:\n * <pre>\n * $1 = http:\n * $2 = http\n * $3 = //www.ics.uci.edu\n * $4 = www.ics.uci.edu\n * $5 = /pub/ietf/uri/\n * $6 = <undefined>\n * $7 = <undefined>\n * $8 = #Related\n * $9 = Related\n * </pre>\n * where <undefined> indicates that the component is not present, as is the\n * case for the query component in the above example. Therefore, we can\n * determine the value of the five components as\n * <pre>\n * scheme = $2\n * authority = $4\n * path = $5\n * query = $7\n * fragment = $9\n * </pre>\n *\n * The regular expression has been modified slightly to expose the\n * userInfo, domain, and port separately from the authority.\n * The modified version yields\n * <pre>\n * $1 = http scheme\n * $2 = <undefined> userInfo -\\\n * $3 = www.ics.uci.edu domain | authority\n * $4 = <undefined> port -/\n * $5 = /pub/ietf/uri/ path\n * $6 = <undefined> query without ?\n * $7 = Related fragment without #\n * </pre>\n * \\@internal\n */\nvar /** @type {?} */ _splitRe = new RegExp('^' +\n '(?:' +\n '([^:/?#.]+)' + // scheme - ignore special characters\n ':)?' +\n '(?://' +\n '(?:([^/?#]*)@)?' + // userInfo\n '([\\\\w\\\\d\\\\-\\\\u0100-\\\\uffff.%]*)' + // domain - restrict to letters,\n '(?::([0-9]+))?' + // port\n ')?' +\n '([^?#]+)?' + // path\n '(?:\\\\?([^#]*))?' + // query\n '(?:#(.*))?' + // fragment\n '$');\n/** @enum {number} */\nvar _ComponentIndex = {\n Scheme: 1,\n UserInfo: 2,\n Domain: 3,\n Port: 4,\n Path: 5,\n QueryData: 6,\n Fragment: 7,\n};\n_ComponentIndex[_ComponentIndex.Scheme] = \"Scheme\";\n_ComponentIndex[_ComponentIndex.UserInfo] = \"UserInfo\";\n_ComponentIndex[_ComponentIndex.Domain] = \"Domain\";\n_ComponentIndex[_ComponentIndex.Port] = \"Port\";\n_ComponentIndex[_ComponentIndex.Path] = \"Path\";\n_ComponentIndex[_ComponentIndex.QueryData] = \"QueryData\";\n_ComponentIndex[_ComponentIndex.Fragment] = \"Fragment\";\n/**\n * Splits a URI into its component parts.\n *\n * Each component can be accessed via the component indices; for example:\n * <pre>\n * goog.uri.utils.split(someStr)[goog.uri.utils.CompontentIndex.QUERY_DATA];\n * </pre>\n *\n * @param {?} uri The URI string to examine.\n * @return {?} Each component still URI-encoded.\n * Each component that is present will contain the encoded value, whereas\n * components that are not present will be undefined or empty, depending\n * on the browser's regular expression implementation. Never null, since\n * arbitrary strings may still look like path names.\n */\nfunction _split(uri) {\n return /** @type {?} */ ((uri.match(_splitRe)));\n}\n/**\n * Removes dot segments in given path component, as described in\n * RFC 3986, section 5.2.4.\n *\n * @param {?} path A non-empty path component.\n * @return {?} Path component with removed dot segments.\n */\nfunction _removeDotSegments(path) {\n if (path == '/')\n return '/';\n var /** @type {?} */ leadingSlash = path[0] == '/' ? '/' : '';\n var /** @type {?} */ trailingSlash = path[path.length - 1] === '/' ? '/' : '';\n var /** @type {?} */ segments = path.split('/');\n var /** @type {?} */ out = [];\n var /** @type {?} */ up = 0;\n for (var /** @type {?} */ pos = 0; pos < segments.length; pos++) {\n var /** @type {?} */ segment = segments[pos];\n switch (segment) {\n case '':\n case '.':\n break;\n case '..':\n if (out.length > 0) {\n out.pop();\n }\n else {\n up++;\n }\n break;\n default:\n out.push(segment);\n }\n }\n if (leadingSlash == '') {\n while (up-- > 0) {\n out.unshift('..');\n }\n if (out.length === 0)\n out.push('.');\n }\n return leadingSlash + out.join('/') + trailingSlash;\n}\n/**\n * Takes an array of the parts from split and canonicalizes the path part\n * and then joins all the parts.\n * @param {?} parts\n * @return {?}\n */\nfunction _joinAndCanonicalizePath(parts) {\n var /** @type {?} */ path = parts[_ComponentIndex.Path];\n path = path == null ? '' : _removeDotSegments(path);\n parts[_ComponentIndex.Path] = path;\n return _buildFromEncodedParts(parts[_ComponentIndex.Scheme], parts[_ComponentIndex.UserInfo], parts[_ComponentIndex.Domain], parts[_ComponentIndex.Port], path, parts[_ComponentIndex.QueryData], parts[_ComponentIndex.Fragment]);\n}\n/**\n * Resolves a URL.\n * @param {?} base The URL acting as the base URL.\n * @param {?} url\n * @return {?}\n */\nfunction _resolveUrl(base, url) {\n var /** @type {?} */ parts = _split(encodeURI(url));\n var /** @type {?} */ baseParts = _split(base);\n if (parts[_ComponentIndex.Scheme] != null) {\n return _joinAndCanonicalizePath(parts);\n }\n else {\n parts[_ComponentIndex.Scheme] = baseParts[_ComponentIndex.Scheme];\n }\n for (var /** @type {?} */ i = _ComponentIndex.Scheme; i <= _ComponentIndex.Port; i++) {\n if (parts[i] == null) {\n parts[i] = baseParts[i];\n }\n }\n if (parts[_ComponentIndex.Path][0] == '/') {\n return _joinAndCanonicalizePath(parts);\n }\n var /** @type {?} */ path = baseParts[_ComponentIndex.Path];\n if (path == null)\n path = '/';\n var /** @type {?} */ index = path.lastIndexOf('/');\n path = path.substring(0, index + 1) + parts[_ComponentIndex.Path];\n parts[_ComponentIndex.Path] = path;\n return _joinAndCanonicalizePath(parts);\n}\n//# sourceMappingURL=url_resolver.js.map","/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n/**\n * An interface for retrieving documents by URL that the compiler uses\n * to load templates.\n */\nvar /**\n * An interface for retrieving documents by URL that the compiler uses\n * to load templates.\n */\nResourceLoader = /** @class */ (function () {\n function ResourceLoader() {\n }\n /**\n * @param {?} url\n * @return {?}\n */\n ResourceLoader.prototype.get = /**\n * @param {?} url\n * @return {?}\n */\n function (url) { return ''; };\n return ResourceLoader;\n}());\n/**\n * An interface for retrieving documents by URL that the compiler uses\n * to load templates.\n */\nexport { ResourceLoader };\n//# sourceMappingURL=resource_loader.js.map","/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this 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 { analyzeAndValidateNgModules } from '../aot/compiler';\nimport { createAotUrlResolver } from '../aot/compiler_factory';\nimport { StaticReflector } from '../aot/static_reflector';\nimport { StaticSymbolCache } from '../aot/static_symbol';\nimport { StaticSymbolResolver } from '../aot/static_symbol_resolver';\nimport { AotSummaryResolver } from '../aot/summary_resolver';\nimport { CompilerConfig } from '../config';\nimport { ViewEncapsulation } from '../core';\nimport { DirectiveNormalizer } from '../directive_normalizer';\nimport { DirectiveResolver } from '../directive_resolver';\nimport { CompileMetadataResolver } from '../metadata_resolver';\nimport { HtmlParser } from '../ml_parser/html_parser';\nimport { InterpolationConfig } from '../ml_parser/interpolation_config';\nimport { NgModuleResolver } from '../ng_module_resolver';\nimport { PipeResolver } from '../pipe_resolver';\nimport { DomElementSchemaRegistry } from '../schema/dom_element_schema_registry';\nimport { MessageBundle } from './message_bundle';\n/**\n * The host of the Extractor disconnects the implementation from TypeScript / other language\n * services and from underlying file systems.\n * @record\n */\nexport function ExtractorHost() { }\nfunction ExtractorHost_tsickle_Closure_declarations() {\n /**\n * Converts a path that refers to a resource into an absolute filePath\n * that can be lateron used for loading the resource via `loadResource.\n * @type {?}\n */\n ExtractorHost.prototype.resourceNameToFileName;\n /**\n * Loads a resource (e.g. html / css)\n * @type {?}\n */\n ExtractorHost.prototype.loadResource;\n}\nvar Extractor = /** @class */ (function () {\n function Extractor(host, staticSymbolResolver, messageBundle, metadataResolver) {\n this.host = host;\n this.staticSymbolResolver = staticSymbolResolver;\n this.messageBundle = messageBundle;\n this.metadataResolver = metadataResolver;\n }\n /**\n * @param {?} rootFiles\n * @return {?}\n */\n Extractor.prototype.extract = /**\n * @param {?} rootFiles\n * @return {?}\n */\n function (rootFiles) {\n var _this = this;\n var _a = analyzeAndValidateNgModules(rootFiles, this.host, this.staticSymbolResolver, this.metadataResolver), files = _a.files, ngModules = _a.ngModules;\n return Promise\n .all(ngModules.map(function (ngModule) {\n return _this.metadataResolver.loadNgModuleDirectiveAndPipeMetadata(ngModule.type.reference, false);\n }))\n .then(function () {\n var /** @type {?} */ errors = [];\n files.forEach(function (file) {\n var /** @type {?} */ compMetas = [];\n file.directives.forEach(function (directiveType) {\n var /** @type {?} */ dirMeta = _this.metadataResolver.getDirectiveMetadata(directiveType);\n if (dirMeta && dirMeta.isComponent) {\n compMetas.push(dirMeta);\n }\n });\n compMetas.forEach(function (compMeta) {\n var /** @type {?} */ html = /** @type {?} */ ((/** @type {?} */ ((compMeta.template)).template));\n var /** @type {?} */ interpolationConfig = InterpolationConfig.fromArray(/** @type {?} */ ((compMeta.template)).interpolation);\n errors.push.apply(errors, /** @type {?} */ ((_this.messageBundle.updateFromTemplate(html, file.fileName, interpolationConfig))));\n });\n });\n if (errors.length) {\n throw new Error(errors.map(function (e) { return e.toString(); }).join('\\n'));\n }\n return _this.messageBundle;\n });\n };\n /**\n * @param {?} host\n * @param {?} locale\n * @return {?}\n */\n Extractor.create = /**\n * @param {?} host\n * @param {?} locale\n * @return {?}\n */\n function (host, locale) {\n var /** @type {?} */ htmlParser = new HtmlParser();\n var /** @type {?} */ urlResolver = createAotUrlResolver(host);\n var /** @type {?} */ symbolCache = new StaticSymbolCache();\n var /** @type {?} */ summaryResolver = new AotSummaryResolver(host, symbolCache);\n var /** @type {?} */ staticSymbolResolver = new StaticSymbolResolver(host, symbolCache, summaryResolver);\n var /** @type {?} */ staticReflector = new StaticReflector(summaryResolver, staticSymbolResolver);\n var /** @type {?} */ config = new CompilerConfig({ defaultEncapsulation: ViewEncapsulation.Emulated, useJit: false });\n var /** @type {?} */ normalizer = new DirectiveNormalizer({ get: function (url) { return host.loadResource(url); } }, urlResolver, htmlParser, config);\n var /** @type {?} */ elementSchemaRegistry = new DomElementSchemaRegistry();\n var /** @type {?} */ resolver = new CompileMetadataResolver(config, htmlParser, new NgModuleResolver(staticReflector), new DirectiveResolver(staticReflector), new PipeResolver(staticReflector), summaryResolver, elementSchemaRegistry, normalizer, console, symbolCache, staticReflector);\n // TODO(vicb): implicit tags & attributes\n var /** @type {?} */ messageBundle = new MessageBundle(htmlParser, [], {}, locale);\n var /** @type {?} */ extractor = new Extractor(host, staticSymbolResolver, messageBundle, resolver);\n return { extractor: extractor, staticReflector: staticReflector };\n };\n return Extractor;\n}());\nexport { Extractor };\nfunction Extractor_tsickle_Closure_declarations() {\n /** @type {?} */\n Extractor.prototype.host;\n /** @type {?} */\n Extractor.prototype.staticSymbolResolver;\n /** @type {?} */\n Extractor.prototype.messageBundle;\n /** @type {?} */\n Extractor.prototype.metadataResolver;\n}\n//# sourceMappingURL=extractor.js.map","/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\nexport { Extractor } from './extractor';\nexport { I18NHtmlParser } from './i18n_html_parser';\nexport { MessageBundle } from './message_bundle';\nexport { Serializer } from './serializers/serializer';\nexport { Xliff } from './serializers/xliff';\nexport { Xliff2 } from './serializers/xliff2';\nexport { Xmb } from './serializers/xmb';\nexport { Xtb } from './serializers/xtb';\n//# sourceMappingURL=index.js.map","/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this 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 core from './core';\nexport { core };\nexport { VERSION } from './version';\nexport { TextAst, BoundTextAst, AttrAst, BoundElementPropertyAst, BoundEventAst, ReferenceAst, VariableAst, ElementAst, EmbeddedTemplateAst, BoundDirectivePropertyAst, DirectiveAst, ProviderAst, ProviderAstType, NgContentAst, PropertyBindingType, NullTemplateVisitor, RecursiveTemplateAstVisitor, templateVisitAll } from './template_parser/template_ast';\nexport { CompilerConfig, preserveWhitespacesDefault } from './config';\nexport { identifierName, identifierModuleUrl, viewClassName, rendererTypeName, hostViewClassName, componentFactoryName, CompileSummaryKind, tokenName, tokenReference, CompileStylesheetMetadata, CompileTemplateMetadata, CompileDirectiveMetadata, CompilePipeMetadata, CompileNgModuleMetadata, TransitiveCompileNgModuleMetadata, ProviderMeta, flatten, templateSourceUrl, sharedStylesheetJitUrl, ngModuleJitUrl, templateJitUrl } from './compile_metadata';\nexport { createAotUrlResolver, createAotCompiler } from './aot/compiler_factory';\nexport { AotCompiler, analyzeNgModules, analyzeAndValidateNgModules, analyzeFile, mergeAnalyzedFiles } from './aot/compiler';\nexport { GeneratedFile, toTypeScript } from './aot/generated_file';\nexport { formattedError, isFormattedError } from './aot/formatted_error';\nexport { StaticReflector } from './aot/static_reflector';\nexport { StaticSymbol, StaticSymbolCache } from './aot/static_symbol';\nexport { ResolvedStaticSymbol, StaticSymbolResolver, unescapeIdentifier, unwrapResolvedMetadata } from './aot/static_symbol_resolver';\nexport { AotSummaryResolver } from './aot/summary_resolver';\nexport { isLoweredSymbol, createLoweredSymbol } from './aot/util';\nexport { AstPath } from './ast_path';\nexport { SummaryResolver, JitSummaryResolver } from './summary_resolver';\nexport { Identifiers } from './identifiers';\nexport { JitCompiler } from './jit/compiler';\nexport { CompileReflector } from './compile_reflector';\nexport { createUrlResolverWithoutPackagePrefix, createOfflineCompileUrlResolver, UrlResolver, getUrlScheme } from './url_resolver';\nexport { ResourceLoader } from './resource_loader';\nexport { DirectiveResolver } from './directive_resolver';\nexport { PipeResolver } from './pipe_resolver';\nexport { NgModuleResolver } from './ng_module_resolver';\nexport { DEFAULT_INTERPOLATION_CONFIG, InterpolationConfig } from './ml_parser/interpolation_config';\nexport { ElementSchemaRegistry } from './schema/element_schema_registry';\nexport { Extractor, I18NHtmlParser, MessageBundle, Serializer, Xliff, Xliff2, Xmb, Xtb } from './i18n/index';\nexport { DirectiveNormalizer } from './directive_normalizer';\nexport { ParserError, ParseSpan, AST, Quote, EmptyExpr, ImplicitReceiver, Chain, Conditional, PropertyRead, PropertyWrite, SafePropertyRead, KeyedRead, KeyedWrite, BindingPipe, LiteralPrimitive, LiteralArray, LiteralMap, Interpolation, Binary, PrefixNot, NonNullAssert, MethodCall, SafeMethodCall, FunctionCall, ASTWithSource, TemplateBinding, NullAstVisitor, RecursiveAstVisitor, AstTransformer, visitAstChildren } from './expression_parser/ast';\nexport { TokenType, Lexer, Token, EOF, isIdentifier, isQuote } from './expression_parser/lexer';\nexport { SplitInterpolation, TemplateBindingParseResult, Parser, _ParseAST } from './expression_parser/parser';\nexport { ERROR_COMPONENT_TYPE, CompileMetadataResolver } from './metadata_resolver';\nexport { Text, Expansion, ExpansionCase, Attribute, Element, Comment, visitAll, RecursiveVisitor, findNode } from './ml_parser/ast';\nexport { ParseTreeResult, TreeError, HtmlParser } from './ml_parser/html_parser';\nexport { HtmlTagDefinition, getHtmlTagDefinition } from './ml_parser/html_tags';\nexport { TagContentType, splitNsName, isNgContainer, isNgContent, isNgTemplate, getNsPrefix, mergeNsAndName, NAMED_ENTITIES, NGSP_UNICODE } from './ml_parser/tags';\nexport { NgModuleCompiler } from './ng_module_compiler';\nexport { AssertNotNull, BinaryOperator, BinaryOperatorExpr, BuiltinMethod, BuiltinVar, CastExpr, ClassStmt, CommaExpr, CommentStmt, ConditionalExpr, DeclareFunctionStmt, DeclareVarStmt, ExpressionStatement, ExternalExpr, ExternalReference, FunctionExpr, IfStmt, InstantiateExpr, InvokeFunctionExpr, InvokeMethodExpr, LiteralArrayExpr, LiteralExpr, LiteralMapExpr, NotExpr, ReadKeyExpr, ReadPropExpr, ReadVarExpr, ReturnStatement, ThrowStmt, TryCatchStmt, WriteKeyExpr, WritePropExpr, WriteVarExpr, StmtModifier, Statement, collectExternalReferences } from './output/output_ast';\nexport { EmitterVisitorContext } from './output/abstract_emitter';\nexport { debugOutputAstAsTypeScript, TypeScriptEmitter } from './output/ts_emitter';\nexport { ParseLocation, ParseSourceFile, ParseSourceSpan, ParseErrorLevel, ParseError, typeSourceSpan } from './parse_util';\nexport { DomElementSchemaRegistry } from './schema/dom_element_schema_registry';\nexport { CssSelector, SelectorMatcher, SelectorListContext, SelectorContext } from './selector';\nexport { StylesCompileDependency, CompiledStylesheet, StyleCompiler } from './style_compiler';\nexport { TemplateParseError, TemplateParseResult, TemplateParser, splitClasses, createElementCssSelector, removeSummaryDuplicates } from './template_parser/template_parser';\nexport { ViewCompiler } from './view_compiler/view_compiler';\nexport { getParseErrors, isSyntaxError, syntaxError, Version } from './util';\n// This file only reexports content of the `src` folder. Keep it that way.\n//# sourceMappingURL=compiler.js.map","/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source 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 * @module\n * @description\n * Entry point for all public APIs of this package.\n */\nexport { core, CompilerConfig, preserveWhitespacesDefault, isLoweredSymbol, createLoweredSymbol, Identifiers, JitCompiler, DirectiveResolver, PipeResolver, NgModuleResolver, DEFAULT_INTERPOLATION_CONFIG, InterpolationConfig, NgModuleCompiler, AssertNotNull, BinaryOperator, BinaryOperatorExpr, BuiltinMethod, BuiltinVar, CastExpr, ClassStmt, CommaExpr, CommentStmt, ConditionalExpr, DeclareFunctionStmt, DeclareVarStmt, ExpressionStatement, ExternalExpr, ExternalReference, FunctionExpr, IfStmt, InstantiateExpr, InvokeFunctionExpr, InvokeMethodExpr, LiteralArrayExpr, LiteralExpr, LiteralMapExpr, NotExpr, ReadKeyExpr, ReadPropExpr, ReadVarExpr, ReturnStatement, ThrowStmt, TryCatchStmt, WriteKeyExpr, WritePropExpr, WriteVarExpr, StmtModifier, Statement, collectExternalReferences, EmitterVisitorContext, ViewCompiler, getParseErrors, isSyntaxError, syntaxError, Version, VERSION, TextAst, BoundTextAst, AttrAst, BoundElementPropertyAst, BoundEventAst, ReferenceAst, VariableAst, ElementAst, EmbeddedTemplateAst, BoundDirectivePropertyAst, DirectiveAst, ProviderAst, ProviderAstType, NgContentAst, PropertyBindingType, NullTemplateVisitor, RecursiveTemplateAstVisitor, templateVisitAll, identifierName, identifierModuleUrl, viewClassName, rendererTypeName, hostViewClassName, componentFactoryName, CompileSummaryKind, tokenName, tokenReference, CompileStylesheetMetadata, CompileTemplateMetadata, CompileDirectiveMetadata, CompilePipeMetadata, CompileNgModuleMetadata, TransitiveCompileNgModuleMetadata, ProviderMeta, flatten, templateSourceUrl, sharedStylesheetJitUrl, ngModuleJitUrl, templateJitUrl, createAotUrlResolver, createAotCompiler, AotCompiler, analyzeNgModules, analyzeAndValidateNgModules, analyzeFile, mergeAnalyzedFiles, GeneratedFile, toTypeScript, formattedError, isFormattedError, StaticReflector, StaticSymbol, StaticSymbolCache, ResolvedStaticSymbol, StaticSymbolResolver, unescapeIdentifier, unwrapResolvedMetadata, AotSummaryResolver, AstPath, SummaryResolver, JitSummaryResolver, CompileReflector, createUrlResolverWithoutPackagePrefix, createOfflineCompileUrlResolver, UrlResolver, getUrlScheme, ResourceLoader, ElementSchemaRegistry, Extractor, I18NHtmlParser, MessageBundle, Serializer, Xliff, Xliff2, Xmb, Xtb, DirectiveNormalizer, ParserError, ParseSpan, AST, Quote, EmptyExpr, ImplicitReceiver, Chain, Conditional, PropertyRead, PropertyWrite, SafePropertyRead, KeyedRead, KeyedWrite, BindingPipe, LiteralPrimitive, LiteralArray, LiteralMap, Interpolation, Binary, PrefixNot, NonNullAssert, MethodCall, SafeMethodCall, FunctionCall, ASTWithSource, TemplateBinding, NullAstVisitor, RecursiveAstVisitor, AstTransformer, visitAstChildren, TokenType, Lexer, Token, EOF, isIdentifier, isQuote, SplitInterpolation, TemplateBindingParseResult, Parser, _ParseAST, ERROR_COMPONENT_TYPE, CompileMetadataResolver, Text, Expansion, ExpansionCase, Attribute, Element, Comment, visitAll, RecursiveVisitor, findNode, ParseTreeResult, TreeError, HtmlParser, HtmlTagDefinition, getHtmlTagDefinition, TagContentType, splitNsName, isNgContainer, isNgContent, isNgTemplate, getNsPrefix, mergeNsAndName, NAMED_ENTITIES, NGSP_UNICODE, debugOutputAstAsTypeScript, TypeScriptEmitter, ParseLocation, ParseSourceFile, ParseSourceSpan, ParseErrorLevel, ParseError, typeSourceSpan, DomElementSchemaRegistry, CssSelector, SelectorMatcher, SelectorListContext, SelectorContext, StylesCompileDependency, CompiledStylesheet, StyleCompiler, TemplateParseError, TemplateParseResult, TemplateParser, splitClasses, createElementCssSelector, removeSummaryDuplicates } from './src/compiler';\n// This file only reexports content of the `src` folder. Keep it that way.\n//# sourceMappingURL=public_api.js.map","/**\n * @fileoverview added by tsickle\n * @suppress {checkTypes} checked by tsc\n */\n/**\n * @license\n * Copyright Google Inc. All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n// This file is not used to build this module. It is only used during editing\n// by the TypeScript language service and during build for verification. `ngc`\n// replaces this file with production index.ts when it rewrites private symbol\n// names.\nexport { core, CompilerConfig, preserveWhitespacesDefault, isLoweredSymbol, createLoweredSymbol, Identifiers, JitCompiler, DirectiveResolver, PipeResolver, NgModuleResolver, DEFAULT_INTERPOLATION_CONFIG, InterpolationConfig, NgModuleCompiler, AssertNotNull, BinaryOperator, BinaryOperatorExpr, BuiltinMethod, BuiltinVar, CastExpr, ClassStmt, CommaExpr, CommentStmt, ConditionalExpr, DeclareFunctionStmt, DeclareVarStmt, ExpressionStatement, ExternalExpr, ExternalReference, FunctionExpr, IfStmt, InstantiateExpr, InvokeFunctionExpr, InvokeMethodExpr, LiteralArrayExpr, LiteralExpr, LiteralMapExpr, NotExpr, ReadKeyExpr, ReadPropExpr, ReadVarExpr, ReturnStatement, ThrowStmt, TryCatchStmt, WriteKeyExpr, WritePropExpr, WriteVarExpr, StmtModifier, Statement, collectExternalReferences, EmitterVisitorContext, ViewCompiler, getParseErrors, isSyntaxError, syntaxError, Version, VERSION, TextAst, BoundTextAst, AttrAst, BoundElementPropertyAst, BoundEventAst, ReferenceAst, VariableAst, ElementAst, EmbeddedTemplateAst, BoundDirectivePropertyAst, DirectiveAst, ProviderAst, ProviderAstType, NgContentAst, PropertyBindingType, NullTemplateVisitor, RecursiveTemplateAstVisitor, templateVisitAll, identifierName, identifierModuleUrl, viewClassName, rendererTypeName, hostViewClassName, componentFactoryName, CompileSummaryKind, tokenName, tokenReference, CompileStylesheetMetadata, CompileTemplateMetadata, CompileDirectiveMetadata, CompilePipeMetadata, CompileNgModuleMetadata, TransitiveCompileNgModuleMetadata, ProviderMeta, flatten, templateSourceUrl, sharedStylesheetJitUrl, ngModuleJitUrl, templateJitUrl, createAotUrlResolver, createAotCompiler, AotCompiler, analyzeNgModules, analyzeAndValidateNgModules, analyzeFile, mergeAnalyzedFiles, GeneratedFile, toTypeScript, formattedError, isFormattedError, StaticReflector, StaticSymbol, StaticSymbolCache, ResolvedStaticSymbol, StaticSymbolResolver, unescapeIdentifier, unwrapResolvedMetadata, AotSummaryResolver, AstPath, SummaryResolver, JitSummaryResolver, CompileReflector, createUrlResolverWithoutPackagePrefix, createOfflineCompileUrlResolver, UrlResolver, getUrlScheme, ResourceLoader, ElementSchemaRegistry, Extractor, I18NHtmlParser, MessageBundle, Serializer, Xliff, Xliff2, Xmb, Xtb, DirectiveNormalizer, ParserError, ParseSpan, AST, Quote, EmptyExpr, ImplicitReceiver, Chain, Conditional, PropertyRead, PropertyWrite, SafePropertyRead, KeyedRead, KeyedWrite, BindingPipe, LiteralPrimitive, LiteralArray, LiteralMap, Interpolation, Binary, PrefixNot, NonNullAssert, MethodCall, SafeMethodCall, FunctionCall, ASTWithSource, TemplateBinding, NullAstVisitor, RecursiveAstVisitor, AstTransformer, visitAstChildren, TokenType, Lexer, Token, EOF, isIdentifier, isQuote, SplitInterpolation, TemplateBindingParseResult, Parser, _ParseAST, ERROR_COMPONENT_TYPE, CompileMetadataResolver, Text, Expansion, ExpansionCase, Attribute, Element, Comment, visitAll, RecursiveVisitor, findNode, ParseTreeResult, TreeError, HtmlParser, HtmlTagDefinition, getHtmlTagDefinition, TagContentType, splitNsName, isNgContainer, isNgContent, isNgTemplate, getNsPrefix, mergeNsAndName, NAMED_ENTITIES, NGSP_UNICODE, debugOutputAstAsTypeScript, TypeScriptEmitter, ParseLocation, ParseSourceFile, ParseSourceSpan, ParseErrorLevel, ParseError, typeSourceSpan, DomElementSchemaRegistry, CssSelector, SelectorMatcher, SelectorListContext, SelectorContext, StylesCompileDependency, CompiledStylesheet, StyleCompiler, TemplateParseError, TemplateParseResult, TemplateParser, splitClasses, createElementCssSelector, removeSummaryDuplicates } from './public_api';\n//# sourceMappingURL=compiler.js.map"],"names":["tslib_1.__assign","tslib_1.__extends","Attribute","html.visitAll","html.Text","chars.$EOF","chars.$SPACE","chars.isDigit","chars.$PERIOD","chars.$LPAREN","chars.$RPAREN","chars.$LBRACE","chars.$RBRACE","chars.$LBRACKET","chars.$RBRACKET","chars.$COMMA","chars.$COLON","chars.$SEMICOLON","chars.$SQ","chars.$DQ","chars.$HASH","chars.$PLUS","chars.$MINUS","chars.$STAR","chars.$SLASH","chars.$PERCENT","chars.$CARET","chars.$QUESTION","chars.$LT","chars.$EQ","chars.$GT","chars.$BANG","chars.$AMPERSAND","chars.$BAR","chars.isWhitespace","chars.$NBSP","chars.$BACKSLASH","chars.$u","chars.$a","chars.$z","chars.$A","chars.$Z","chars.$_","chars.$$","chars.isAsciiLetter","chars.$e","chars.$E","chars.$BT","chars.$LF","chars.$n","chars.$FF","chars.$f","chars.$CR","chars.$r","chars.$TAB","chars.$t","chars.$VTAB","chars.$v","TokenType","Token","chars.$x","chars.$X","chars.$0","chars.$9","chars.isAsciiHexDigit","Parser","lex.tokenize","lex.TokenType","html.Comment","html.Expansion","lex.Token","html.ExpansionCase","html.Element","html.Attribute","Text","ExpressionParser","ExpressionLexer","i18n.Message","i18n.TagPlaceholder","i18n.Icu","i18n.Container","i18n.IcuPlaceholder","i18n.Text","i18n.Placeholder","i18n.RecurseVisitor","_Visitor","xml.Tag","xml.CR","xml.Text","xml.serialize","xml.Declaration","ml.visitAll","_VERSION","_XMLNS","_DEFAULT_SOURCE_LANG","_PLACEHOLDER_TAG","_SOURCE_TAG","_TARGET_TAG","_UNIT_TAG","_WriteVisitor","XmlToI18n","xml.Doctype","digest","cpl.viewClassName","cpl.hostViewClassName","cpl.identifierName","cpl.rendererTypeName","cpl.componentFactoryName","cpl.CompileDirectiveMetadata","cpl.CompileTemplateMetadata","cpl.CompileSummaryKind","cpl.CompileNgModuleMetadata","cpl.TransitiveCompileNgModuleMetadata","cpl.tokenReference","cpl.CompilePipeMetadata","cpl.ProviderMeta","Type","AstTransformer","RecursiveAstVisitor","o.literalArr","o.LiteralMapEntry","o.LiteralMapExpr","o.literal","o.Expression","o.fn","o.ReturnStatement","o.INFERRED_TYPE","o.FnParam","o.DYNAMIC_TYPE","o.variable","o.NULL_EXPR","o.importExpr","o.importType","o.expressionType","o.TypeModifier","o.StmtModifier","VERSION","CATCH_ERROR_VAR","CATCH_STACK_VAR","o.BuiltinVar","o.BinaryOperator","o.Statement","o.Type","o.ExternalExpr","o.BuiltinTypeName","o.BuiltinMethod","o.ArrayType","o.literalMap","o.DeclareVarStmt","cdAst.AstTransformer","o.BinaryOperatorExpr","cdAst.ImplicitReceiver","o.not","o.assertNotNull","cdAst.SafeMethodCall","cdAst.MethodCall","cdAst.PropertyRead","o.ReadVarExpr","o.ExpressionStatement","cdAst.FunctionCall","o.applySourceSpanToStatementIfNeeded","o.IfStmt","o.DeclareFunctionStmt","CLASS_ATTR","ViewBuilder","LOG_VAR","o.findReadVarNames","o.CommaExpr","o.applySourceSpanToExpressionIfNeeded","o.BOOL_TYPE","i18n.CloneVisitor","importExpr","o.ExternalReference","fn","ir.variable","ir.importExpr"],"mappings":"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"}