@angular/compiler 14.0.0-next.0 → 14.0.0-next.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/src/compiler.mjs +2 -3
- package/esm2020/src/compiler_facade_interface.mjs +1 -1
- package/esm2020/src/compiler_util/expression_converter.mjs +38 -44
- package/esm2020/src/expression_parser/ast.mjs +1 -35
- package/esm2020/src/expression_parser/parser.mjs +78 -40
- package/esm2020/src/jit_compiler_facade.mjs +6 -3
- package/esm2020/src/ml_parser/lexer.mjs +2 -2
- package/esm2020/src/output/output_ast.mjs +1 -1
- package/esm2020/src/parse_util.mjs +2 -2
- package/esm2020/src/render3/partial/api.mjs +1 -1
- package/esm2020/src/render3/partial/class_metadata.mjs +1 -1
- package/esm2020/src/render3/partial/directive.mjs +1 -1
- package/esm2020/src/render3/partial/factory.mjs +1 -1
- package/esm2020/src/render3/partial/injectable.mjs +1 -1
- package/esm2020/src/render3/partial/injector.mjs +1 -1
- package/esm2020/src/render3/partial/ng_module.mjs +1 -1
- package/esm2020/src/render3/partial/pipe.mjs +1 -1
- package/esm2020/src/render3/r3_identifiers.mjs +3 -1
- package/esm2020/src/render3/r3_module_compiler.mjs +45 -8
- package/esm2020/src/render3/r3_pipe_compiler.mjs +4 -1
- package/esm2020/src/render3/r3_template_transform.mjs +9 -9
- package/esm2020/src/render3/view/api.mjs +1 -1
- package/esm2020/src/render3/view/compiler.mjs +44 -41
- package/esm2020/src/render3/view/i18n/get_msg_utils.mjs +2 -5
- package/esm2020/src/render3/view/i18n/meta.mjs +11 -6
- package/esm2020/src/render3/view/style_parser.mjs +2 -2
- package/esm2020/src/render3/view/styling_builder.mjs +3 -3
- package/esm2020/src/render3/view/template.mjs +100 -131
- package/esm2020/src/render3/view/util.mjs +94 -15
- package/esm2020/src/selector.mjs +3 -3
- package/esm2020/src/shadow_css.mjs +2 -2
- package/esm2020/src/template_parser/binding_parser.mjs +16 -16
- package/esm2020/src/version.mjs +1 -1
- package/fesm2015/compiler.mjs +798 -791
- package/fesm2015/compiler.mjs.map +1 -1
- package/fesm2015/testing.mjs +1 -1
- package/fesm2015/testing.mjs.map +1 -1
- package/fesm2020/compiler.mjs +794 -789
- package/fesm2020/compiler.mjs.map +1 -1
- package/fesm2020/testing.mjs +1 -1
- package/fesm2020/testing.mjs.map +1 -1
- package/package.json +10 -2
- package/src/compiler.d.ts +1 -2
- package/src/compiler_facade_interface.d.ts +4 -0
- package/src/compiler_util/expression_converter.d.ts +3 -4
- package/src/expression_parser/ast.d.ts +0 -25
- package/src/expression_parser/parser.d.ts +22 -6
- package/src/output/output_ast.d.ts +2 -1
- package/src/render3/partial/api.d.ts +10 -0
- package/src/render3/r3_identifiers.d.ts +2 -0
- package/src/render3/r3_module_compiler.d.ts +30 -4
- package/src/render3/r3_pipe_compiler.d.ts +4 -0
- package/src/render3/view/api.d.ts +4 -0
- package/src/render3/view/i18n/meta.d.ts +1 -1
- package/src/render3/view/template.d.ts +1 -4
- package/src/render3/view/util.d.ts +19 -2
- package/src/template_parser/binding_parser.d.ts +4 -3
- package/esm2020/src/identifiers.mjs +0 -92
- package/src/identifiers.d.ts +0 -44
package/fesm2020/testing.mjs
CHANGED
package/fesm2020/testing.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testing.mjs","sources":["../../../../../../packages/compiler/testing/src/testing.ts","../../../../../../packages/compiler/testing/public_api.ts","../../../../../../packages/compiler/testing/index.ts","../../../../../../packages/compiler/testing/testing.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * @module\n * @description\n * Entry point for all APIs of the compiler package.\n *\n * <div class=\"callout is-critical\">\n * <header>Unstable APIs</header>\n * <p>\n * All compiler apis are currently considered experimental and private!\n * </p>\n * <p>\n * We expect the APIs in this package to keep on changing. Do not rely on them.\n * </p>\n * </div>\n */\n\n// TODO(alxhub): @angular/compiler/testing is unused in Ivy. A placeholder\n// is left here because the components repo still depends on this package\n// directly. It will be cleaned up at a later date.\n//\n// This export ensures this package is not empty.\nexport const unusedExport = true;\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/// <reference types=\"node\" />\n\n/**\n * @module\n * @description\n * Entry point for all public APIs of this package.\n */\nexport * from './src/testing';\n\n// This file only reexports content of the `src` folder. Keep it that way.\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n// This file is not used to build this module. It is only used during editing\n// by the TypeScript language service and during build for verification. `ngc`\n// replaces this file with production index.ts when it rewrites private symbol\n// names.\n\nexport * from './public_api';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;AAAA
|
|
1
|
+
{"version":3,"file":"testing.mjs","sources":["../../../../../../packages/compiler/testing/src/testing.ts","../../../../../../packages/compiler/testing/public_api.ts","../../../../../../packages/compiler/testing/index.ts","../../../../../../packages/compiler/testing/testing.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * @module\n * @description\n * Entry point for all APIs of the compiler package.\n *\n * <div class=\"callout is-critical\">\n * <header>Unstable APIs</header>\n * <p>\n * All compiler apis are currently considered experimental and private!\n * </p>\n * <p>\n * We expect the APIs in this package to keep on changing. Do not rely on them.\n * </p>\n * </div>\n */\n\n// TODO(alxhub): @angular/compiler/testing is unused in Ivy. A placeholder\n// is left here because the components repo still depends on this package\n// directly. It will be cleaned up at a later date.\n//\n// This export ensures this package is not empty.\nexport const unusedExport = true;\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/// <reference types=\"node\" />\n\n/**\n * @module\n * @description\n * Entry point for all public APIs of this package.\n */\nexport * from './src/testing';\n\n// This file only reexports content of the `src` folder. Keep it that way.\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n// This file is not used to build this module. It is only used during editing\n// by the TypeScript language service and during build for verification. `ngc`\n// replaces this file with production index.ts when it rewrites private symbol\n// names.\n\nexport * from './public_api';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;AAAA;;;;;;AAMG;AAEH;;;;;;;;;;;;;;AAcG;AAEH;AACA;AACA;AACA;AACA;AACO,MAAM,YAAY,GAAG;;AC7B5B;;;;;;AAMG;AAWH;;ACjBA;;;;;;AAMG;;ACNH;;AAEG;;;;"}
|
package/package.json
CHANGED
|
@@ -1,15 +1,23 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@angular/compiler",
|
|
3
|
-
"version": "14.0.0-next.
|
|
3
|
+
"version": "14.0.0-next.11",
|
|
4
4
|
"description": "Angular - the compiler library",
|
|
5
5
|
"author": "angular",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"engines": {
|
|
8
|
-
"node": "^
|
|
8
|
+
"node": "^14.15.0 || >=16.10.0"
|
|
9
9
|
},
|
|
10
10
|
"dependencies": {
|
|
11
11
|
"tslib": "^2.3.0"
|
|
12
12
|
},
|
|
13
|
+
"peerDependencies": {
|
|
14
|
+
"@angular/core": "14.0.0-next.11"
|
|
15
|
+
},
|
|
16
|
+
"peerDependenciesMeta": {
|
|
17
|
+
"@angular/core": {
|
|
18
|
+
"optional": true
|
|
19
|
+
}
|
|
20
|
+
},
|
|
13
21
|
"repository": {
|
|
14
22
|
"type": "git",
|
|
15
23
|
"url": "https://github.com/angular/angular.git",
|
package/src/compiler.d.ts
CHANGED
|
@@ -25,7 +25,6 @@ export { CUSTOM_ELEMENTS_SCHEMA, NO_ERRORS_SCHEMA, SchemaMetadata } from './core
|
|
|
25
25
|
export { core };
|
|
26
26
|
export * from './version';
|
|
27
27
|
export { CompilerConfig, preserveWhitespacesDefault } from './config';
|
|
28
|
-
export { Identifiers } from './identifiers';
|
|
29
28
|
export * from './resource_loader';
|
|
30
29
|
export { ConstantPool } from './constant_pool';
|
|
31
30
|
export { DEFAULT_INTERPOLATION_CONFIG, InterpolationConfig } from './ml_parser/interpolation_config';
|
|
@@ -59,7 +58,7 @@ export * from './render3/view/t2_binder';
|
|
|
59
58
|
export { Identifiers as R3Identifiers } from './render3/r3_identifiers';
|
|
60
59
|
export { R3ClassMetadata, CompileClassMetadataFn, compileClassMetadata } from './render3/r3_class_metadata_compiler';
|
|
61
60
|
export { compileFactoryFunction, R3DependencyMetadata, R3FactoryMetadata, FactoryTarget } from './render3/r3_factory';
|
|
62
|
-
export { compileNgModule, R3NgModuleMetadata } from './render3/r3_module_compiler';
|
|
61
|
+
export { compileNgModule, R3NgModuleMetadata, R3SelectorScopeMode } from './render3/r3_module_compiler';
|
|
63
62
|
export { compileInjector, R3InjectorMetadata } from './render3/r3_injector_compiler';
|
|
64
63
|
export { compilePipeFromMetadata, R3PipeMetadata } from './render3/r3_pipe_compiler';
|
|
65
64
|
export { makeBindingParser, ParsedTemplate, parseTemplate, ParseTemplateOptions } from './render3/view/template';
|
|
@@ -86,6 +86,7 @@ export interface R3PipeMetadataFacade {
|
|
|
86
86
|
type: Type;
|
|
87
87
|
pipeName: string;
|
|
88
88
|
pure: boolean;
|
|
89
|
+
isStandalone: boolean;
|
|
89
90
|
}
|
|
90
91
|
export interface R3InjectableMetadataFacade {
|
|
91
92
|
name: string;
|
|
@@ -136,6 +137,7 @@ export interface R3DirectiveMetadataFacade {
|
|
|
136
137
|
exportAs: string[] | null;
|
|
137
138
|
providers: Provider[] | null;
|
|
138
139
|
viewQueries: R3QueryMetadataFacade[];
|
|
140
|
+
isStandalone: boolean;
|
|
139
141
|
}
|
|
140
142
|
export interface R3ComponentMetadataFacade extends R3DirectiveMetadataFacade {
|
|
141
143
|
template: string;
|
|
@@ -177,6 +179,7 @@ export interface R3DeclareDirectiveFacade {
|
|
|
177
179
|
exportAs?: string[];
|
|
178
180
|
usesInheritance?: boolean;
|
|
179
181
|
usesOnChanges?: boolean;
|
|
182
|
+
isStandalone?: boolean;
|
|
180
183
|
}
|
|
181
184
|
export interface R3DeclareComponentFacade extends R3DeclareDirectiveFacade {
|
|
182
185
|
template: string;
|
|
@@ -271,6 +274,7 @@ export interface R3DeclarePipeFacade {
|
|
|
271
274
|
type: Type;
|
|
272
275
|
name: string;
|
|
273
276
|
pure?: boolean;
|
|
277
|
+
isStandalone?: boolean;
|
|
274
278
|
}
|
|
275
279
|
export interface ParseSourceSpan {
|
|
276
280
|
start: any;
|
|
@@ -17,12 +17,11 @@ export interface LocalResolver {
|
|
|
17
17
|
globals?: Set<string>;
|
|
18
18
|
maybeRestoreView(): void;
|
|
19
19
|
}
|
|
20
|
-
export declare type InterpolationFunction = (args: o.Expression[]) => o.Expression;
|
|
21
20
|
/**
|
|
22
21
|
* Converts the given expression AST into an executable output AST, assuming the expression is
|
|
23
22
|
* used in an action binding (e.g. an event handler).
|
|
24
23
|
*/
|
|
25
|
-
export declare function convertActionBinding(localResolver: LocalResolver | null, implicitReceiver: o.Expression, action: cdAst.AST, bindingId: string,
|
|
24
|
+
export declare function convertActionBinding(localResolver: LocalResolver | null, implicitReceiver: o.Expression, action: cdAst.AST, bindingId: string, baseSourceSpan?: ParseSourceSpan, implicitReceiverAccesses?: Set<string>, globals?: Set<string>): o.Statement[];
|
|
26
25
|
export interface BuiltinConverter {
|
|
27
26
|
(args: o.Expression[]): o.Expression;
|
|
28
27
|
}
|
|
@@ -45,7 +44,7 @@ export declare class ConvertPropertyBindingResult {
|
|
|
45
44
|
* is used in property binding. The expression has to be preprocessed via
|
|
46
45
|
* `convertPropertyBindingBuiltins`.
|
|
47
46
|
*/
|
|
48
|
-
export declare function convertPropertyBinding(localResolver: LocalResolver | null, implicitReceiver: o.Expression, expressionWithoutBuiltins: cdAst.AST, bindingId: string
|
|
47
|
+
export declare function convertPropertyBinding(localResolver: LocalResolver | null, implicitReceiver: o.Expression, expressionWithoutBuiltins: cdAst.AST, bindingId: string): ConvertPropertyBindingResult;
|
|
49
48
|
/**
|
|
50
49
|
* Given some expression, such as a binding or interpolation expression, and a context expression to
|
|
51
50
|
* look values up on, visit each facet of the given expression resolving values from the context
|
|
@@ -62,7 +61,7 @@ export declare function convertPropertyBinding(localResolver: LocalResolver | nu
|
|
|
62
61
|
* @returns An array of expressions that can be passed as arguments to instruction expressions like
|
|
63
62
|
* `o.importExpr(R3.propertyInterpolate).callFn(result)`
|
|
64
63
|
*/
|
|
65
|
-
export declare function convertUpdateArguments(localResolver: LocalResolver, contextVariableExpression: o.Expression, expressionWithArgumentsToExtract: cdAst.
|
|
64
|
+
export declare function convertUpdateArguments(localResolver: LocalResolver, contextVariableExpression: o.Expression, expressionWithArgumentsToExtract: cdAst.Interpolation, bindingId: string): {
|
|
66
65
|
stmts: o.Statement[];
|
|
67
66
|
args: o.Expression[];
|
|
68
67
|
};
|
|
@@ -38,27 +38,6 @@ export declare abstract class ASTWithName extends AST {
|
|
|
38
38
|
nameSpan: AbsoluteSourceSpan;
|
|
39
39
|
constructor(span: ParseSpan, sourceSpan: AbsoluteSourceSpan, nameSpan: AbsoluteSourceSpan);
|
|
40
40
|
}
|
|
41
|
-
/**
|
|
42
|
-
* Represents a quoted expression of the form:
|
|
43
|
-
*
|
|
44
|
-
* quote = prefix `:` uninterpretedExpression
|
|
45
|
-
* prefix = identifier
|
|
46
|
-
* uninterpretedExpression = arbitrary string
|
|
47
|
-
*
|
|
48
|
-
* A quoted expression is meant to be pre-processed by an AST transformer that
|
|
49
|
-
* converts it into another AST that no longer contains quoted expressions.
|
|
50
|
-
* It is meant to allow third-party developers to extend Angular template
|
|
51
|
-
* expression language. The `uninterpretedExpression` part of the quote is
|
|
52
|
-
* therefore not interpreted by the Angular's own expression parser.
|
|
53
|
-
*/
|
|
54
|
-
export declare class Quote extends AST {
|
|
55
|
-
prefix: string;
|
|
56
|
-
uninterpretedExpression: string;
|
|
57
|
-
location: any;
|
|
58
|
-
constructor(span: ParseSpan, sourceSpan: AbsoluteSourceSpan, prefix: string, uninterpretedExpression: string, location: any);
|
|
59
|
-
visit(visitor: AstVisitor, context?: any): any;
|
|
60
|
-
toString(): string;
|
|
61
|
-
}
|
|
62
41
|
export declare class EmptyExpr extends AST {
|
|
63
42
|
visit(visitor: AstVisitor, context?: any): void;
|
|
64
43
|
}
|
|
@@ -314,7 +293,6 @@ export interface AstVisitor {
|
|
|
314
293
|
visitNonNullAssert(ast: NonNullAssert, context: any): any;
|
|
315
294
|
visitPropertyRead(ast: PropertyRead, context: any): any;
|
|
316
295
|
visitPropertyWrite(ast: PropertyWrite, context: any): any;
|
|
317
|
-
visitQuote(ast: Quote, context: any): any;
|
|
318
296
|
visitSafePropertyRead(ast: SafePropertyRead, context: any): any;
|
|
319
297
|
visitSafeKeyedRead(ast: SafeKeyedRead, context: any): any;
|
|
320
298
|
visitCall(ast: Call, context: any): any;
|
|
@@ -351,7 +329,6 @@ export declare class RecursiveAstVisitor implements AstVisitor {
|
|
|
351
329
|
visitSafeKeyedRead(ast: SafeKeyedRead, context: any): any;
|
|
352
330
|
visitCall(ast: Call, context: any): any;
|
|
353
331
|
visitSafeCall(ast: SafeCall, context: any): any;
|
|
354
|
-
visitQuote(ast: Quote, context: any): any;
|
|
355
332
|
visitAll(asts: AST[], context: any): any;
|
|
356
333
|
}
|
|
357
334
|
export declare class AstTransformer implements AstVisitor {
|
|
@@ -376,7 +353,6 @@ export declare class AstTransformer implements AstVisitor {
|
|
|
376
353
|
visitSafeCall(ast: SafeCall, context: any): AST;
|
|
377
354
|
visitAll(asts: any[]): any[];
|
|
378
355
|
visitChain(ast: Chain, context: any): AST;
|
|
379
|
-
visitQuote(ast: Quote, context: any): AST;
|
|
380
356
|
visitSafeKeyedRead(ast: SafeKeyedRead, context: any): AST;
|
|
381
357
|
}
|
|
382
358
|
export declare class AstMemoryEfficientTransformer implements AstVisitor {
|
|
@@ -401,7 +377,6 @@ export declare class AstMemoryEfficientTransformer implements AstVisitor {
|
|
|
401
377
|
visitChain(ast: Chain, context: any): AST;
|
|
402
378
|
visitCall(ast: Call, context: any): AST;
|
|
403
379
|
visitSafeCall(ast: SafeCall, context: any): AST;
|
|
404
|
-
visitQuote(ast: Quote, context: any): AST;
|
|
405
380
|
visitSafeKeyedRead(ast: SafeKeyedRead, context: any): AST;
|
|
406
381
|
}
|
|
407
382
|
export declare class ParsedProperty {
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
* found in the LICENSE file at https://angular.io/license
|
|
7
7
|
*/
|
|
8
8
|
import { InterpolationConfig } from '../ml_parser/interpolation_config';
|
|
9
|
+
import { InterpolatedAttributeToken, InterpolatedTextToken } from '../ml_parser/tokens';
|
|
9
10
|
import { AbsoluteSourceSpan, AST, ASTWithSource, BindingPipe, LiteralMap, ParserError, ParseSpan, TemplateBinding, TemplateBindingIdentifier } from './ast';
|
|
10
11
|
import { Lexer, Token } from './lexer';
|
|
11
12
|
export interface InterpolationPiece {
|
|
@@ -25,17 +26,31 @@ export declare class TemplateBindingParseResult {
|
|
|
25
26
|
errors: ParserError[];
|
|
26
27
|
constructor(templateBindings: TemplateBinding[], warnings: string[], errors: ParserError[]);
|
|
27
28
|
}
|
|
29
|
+
/**
|
|
30
|
+
* Represents the possible parse modes to be used as a bitmask.
|
|
31
|
+
*/
|
|
32
|
+
export declare const enum ParseFlags {
|
|
33
|
+
None = 0,
|
|
34
|
+
/**
|
|
35
|
+
* Whether an output binding is being parsed.
|
|
36
|
+
*/
|
|
37
|
+
Action = 1,
|
|
38
|
+
/**
|
|
39
|
+
* Whether an assignment event is being parsed, i.e. an expression originating from
|
|
40
|
+
* two-way-binding aka banana-in-a-box syntax.
|
|
41
|
+
*/
|
|
42
|
+
AssignmentEvent = 2
|
|
43
|
+
}
|
|
28
44
|
export declare class Parser {
|
|
29
45
|
private _lexer;
|
|
30
46
|
private errors;
|
|
31
47
|
constructor(_lexer: Lexer);
|
|
32
|
-
parseAction(input: string, location: string, absoluteOffset: number, interpolationConfig?: InterpolationConfig): ASTWithSource;
|
|
48
|
+
parseAction(input: string, isAssignmentEvent: boolean, location: string, absoluteOffset: number, interpolationConfig?: InterpolationConfig): ASTWithSource;
|
|
33
49
|
parseBinding(input: string, location: string, absoluteOffset: number, interpolationConfig?: InterpolationConfig): ASTWithSource;
|
|
34
50
|
private checkSimpleExpression;
|
|
35
51
|
parseSimpleBinding(input: string, location: string, absoluteOffset: number, interpolationConfig?: InterpolationConfig): ASTWithSource;
|
|
36
52
|
private _reportError;
|
|
37
53
|
private _parseBindingAst;
|
|
38
|
-
private _parseQuote;
|
|
39
54
|
/**
|
|
40
55
|
* Parse microsyntax template expression and return a list of bindings or
|
|
41
56
|
* parsing errors in case the given expression is invalid.
|
|
@@ -63,7 +78,7 @@ export declare class Parser {
|
|
|
63
78
|
* @param absoluteValueOffset start of the `templateValue`
|
|
64
79
|
*/
|
|
65
80
|
parseTemplateBindings(templateKey: string, templateValue: string, templateUrl: string, absoluteKeyOffset: number, absoluteValueOffset: number): TemplateBindingParseResult;
|
|
66
|
-
parseInterpolation(input: string, location: string, absoluteOffset: number, interpolationConfig?: InterpolationConfig): ASTWithSource | null;
|
|
81
|
+
parseInterpolation(input: string, location: string, absoluteOffset: number, interpolatedTokens: InterpolatedAttributeToken[] | InterpolatedTextToken[] | null, interpolationConfig?: InterpolationConfig): ASTWithSource | null;
|
|
67
82
|
/**
|
|
68
83
|
* Similar to `parseInterpolation`, but treats the provided string as a single expression
|
|
69
84
|
* element that would normally appear within the interpolation prefix and suffix (`{{` and `}}`).
|
|
@@ -78,7 +93,7 @@ export declare class Parser {
|
|
|
78
93
|
* `SplitInterpolation` with splits that look like
|
|
79
94
|
* <raw text> <expression> <raw text> ... <raw text> <expression> <raw text>
|
|
80
95
|
*/
|
|
81
|
-
splitInterpolation(input: string, location: string, interpolationConfig?: InterpolationConfig): SplitInterpolation;
|
|
96
|
+
splitInterpolation(input: string, location: string, interpolatedTokens: InterpolatedAttributeToken[] | InterpolatedTextToken[] | null, interpolationConfig?: InterpolationConfig): SplitInterpolation;
|
|
82
97
|
wrapLiteralPrimitive(input: string | null, location: string, absoluteOffset: number): ASTWithSource;
|
|
83
98
|
private _stripComments;
|
|
84
99
|
private _commentStart;
|
|
@@ -100,7 +115,7 @@ export declare class _ParseAST {
|
|
|
100
115
|
location: string;
|
|
101
116
|
absoluteOffset: number;
|
|
102
117
|
tokens: Token[];
|
|
103
|
-
|
|
118
|
+
parseFlags: ParseFlags;
|
|
104
119
|
private errors;
|
|
105
120
|
private offset;
|
|
106
121
|
private rparensExpected;
|
|
@@ -109,7 +124,7 @@ export declare class _ParseAST {
|
|
|
109
124
|
private context;
|
|
110
125
|
private sourceSpanCache;
|
|
111
126
|
index: number;
|
|
112
|
-
constructor(input: string, location: string, absoluteOffset: number, tokens: Token[],
|
|
127
|
+
constructor(input: string, location: string, absoluteOffset: number, tokens: Token[], parseFlags: ParseFlags, errors: ParserError[], offset: number);
|
|
113
128
|
peek(offset: number): Token;
|
|
114
129
|
get next(): Token;
|
|
115
130
|
/** Whether all the parser input has been processed. */
|
|
@@ -176,6 +191,7 @@ export declare class _ParseAST {
|
|
|
176
191
|
parseLiteralMap(): LiteralMap;
|
|
177
192
|
parseAccessMember(readReceiver: AST, start: number, isSafe: boolean): AST;
|
|
178
193
|
parseCall(receiver: AST, start: number, isSafe: boolean): AST;
|
|
194
|
+
private consumeOptionalAssignment;
|
|
179
195
|
parseCallArguments(): BindingPipe[];
|
|
180
196
|
/**
|
|
181
197
|
* Parses an identifier, a keyword, a string with an optional `-` in between,
|
|
@@ -563,7 +563,8 @@ export declare function isNull(exp: Expression): boolean;
|
|
|
563
563
|
export declare const enum JSDocTagName {
|
|
564
564
|
Desc = "desc",
|
|
565
565
|
Id = "id",
|
|
566
|
-
Meaning = "meaning"
|
|
566
|
+
Meaning = "meaning",
|
|
567
|
+
Suppress = "suppress"
|
|
567
568
|
}
|
|
568
569
|
export declare type JSDocTag = {
|
|
569
570
|
tagName: JSDocTagName | string;
|
|
@@ -105,6 +105,10 @@ export interface R3DeclareDirectiveMetadata extends R3PartialDeclaration {
|
|
|
105
105
|
* Whether the directive implements the `ngOnChanges` hook. Defaults to false.
|
|
106
106
|
*/
|
|
107
107
|
usesOnChanges?: boolean;
|
|
108
|
+
/**
|
|
109
|
+
* Whether the directive is standalone. Defaults to false.
|
|
110
|
+
*/
|
|
111
|
+
isStandalone?: boolean;
|
|
108
112
|
}
|
|
109
113
|
/**
|
|
110
114
|
* Describes the shape of the object that the `ɵɵngDeclareComponent()` function accepts.
|
|
@@ -298,6 +302,12 @@ export interface R3DeclarePipeMetadata extends R3PartialDeclaration {
|
|
|
298
302
|
* Default: true.
|
|
299
303
|
*/
|
|
300
304
|
pure?: boolean;
|
|
305
|
+
/**
|
|
306
|
+
* Whether the pipe is standalone.
|
|
307
|
+
*
|
|
308
|
+
* Default: false.
|
|
309
|
+
*/
|
|
310
|
+
isStandalone?: boolean;
|
|
301
311
|
}
|
|
302
312
|
/**
|
|
303
313
|
* Describes the shape of the object that the `ɵɵngDeclareFactory()` function accepts.
|
|
@@ -65,6 +65,7 @@ export declare class Identifiers {
|
|
|
65
65
|
static stylePropInterpolate8: o.ExternalReference;
|
|
66
66
|
static stylePropInterpolateV: o.ExternalReference;
|
|
67
67
|
static nextContext: o.ExternalReference;
|
|
68
|
+
static resetView: o.ExternalReference;
|
|
68
69
|
static templateCreate: o.ExternalReference;
|
|
69
70
|
static text: o.ExternalReference;
|
|
70
71
|
static enableBindings: o.ExternalReference;
|
|
@@ -154,6 +155,7 @@ export declare class Identifiers {
|
|
|
154
155
|
static defineNgModule: o.ExternalReference;
|
|
155
156
|
static declareNgModule: o.ExternalReference;
|
|
156
157
|
static setNgModuleScope: o.ExternalReference;
|
|
158
|
+
static registerNgModuleType: o.ExternalReference;
|
|
157
159
|
static PipeDeclaration: o.ExternalReference;
|
|
158
160
|
static definePipe: o.ExternalReference;
|
|
159
161
|
static declarePipe: o.ExternalReference;
|
|
@@ -8,6 +8,34 @@
|
|
|
8
8
|
import { R3DeclareNgModuleFacade } from '../compiler_facade_interface';
|
|
9
9
|
import * as o from '../output/output_ast';
|
|
10
10
|
import { R3CompiledExpression, R3Reference } from './util';
|
|
11
|
+
/**
|
|
12
|
+
* How the selector scope of an NgModule (its declarations, imports, and exports) should be emitted
|
|
13
|
+
* as a part of the NgModule definition.
|
|
14
|
+
*/
|
|
15
|
+
export declare enum R3SelectorScopeMode {
|
|
16
|
+
/**
|
|
17
|
+
* Emit the declarations inline into the module definition.
|
|
18
|
+
*
|
|
19
|
+
* This option is useful in certain contexts where it's known that JIT support is required. The
|
|
20
|
+
* tradeoff here is that this emit style prevents directives and pipes from being tree-shaken if
|
|
21
|
+
* they are unused, but the NgModule is used.
|
|
22
|
+
*/
|
|
23
|
+
Inline = 0,
|
|
24
|
+
/**
|
|
25
|
+
* Emit the declarations using a side effectful function call, `ɵɵsetNgModuleScope`, that is
|
|
26
|
+
* guarded with the `ngJitMode` flag.
|
|
27
|
+
*
|
|
28
|
+
* This form of emit supports JIT and can be optimized away if the `ngJitMode` flag is set to
|
|
29
|
+
* false, which allows unused directives and pipes to be tree-shaken.
|
|
30
|
+
*/
|
|
31
|
+
SideEffect = 1,
|
|
32
|
+
/**
|
|
33
|
+
* Don't generate selector scopes at all.
|
|
34
|
+
*
|
|
35
|
+
* This is useful for contexts where JIT support is known to be unnecessary.
|
|
36
|
+
*/
|
|
37
|
+
Omit = 2
|
|
38
|
+
}
|
|
11
39
|
/**
|
|
12
40
|
* Metadata required by the module compiler to generate a module def (`ɵmod`) for a type.
|
|
13
41
|
*/
|
|
@@ -49,11 +77,9 @@ export interface R3NgModuleMetadata {
|
|
|
49
77
|
*/
|
|
50
78
|
exports: R3Reference[];
|
|
51
79
|
/**
|
|
52
|
-
*
|
|
53
|
-
* module definition, or to generate additional statements which patch them on. Inline emission
|
|
54
|
-
* does not allow components to be tree-shaken, but is useful for JIT mode.
|
|
80
|
+
* How to emit the selector scope values (declarations, imports, exports).
|
|
55
81
|
*/
|
|
56
|
-
|
|
82
|
+
selectorScopeMode: R3SelectorScopeMode;
|
|
57
83
|
/**
|
|
58
84
|
* Whether to generate closure wrappers for bootstrap, declarations, imports, and exports.
|
|
59
85
|
*/
|
|
@@ -41,6 +41,10 @@ export interface R3PipeMetadata {
|
|
|
41
41
|
* Whether the pipe is marked as pure.
|
|
42
42
|
*/
|
|
43
43
|
pure: boolean;
|
|
44
|
+
/**
|
|
45
|
+
* Whether the pipe is standalone.
|
|
46
|
+
*/
|
|
47
|
+
isStandalone: boolean;
|
|
44
48
|
}
|
|
45
49
|
export declare function compilePipeFromMetadata(metadata: R3PipeMetadata): R3CompiledExpression;
|
|
46
50
|
export declare function createPipeType(metadata: R3PipeMetadata): o.Type;
|
|
@@ -102,6 +102,10 @@ export interface R3DirectiveMetadata {
|
|
|
102
102
|
* The list of providers defined in the directive.
|
|
103
103
|
*/
|
|
104
104
|
providers: o.Expression | null;
|
|
105
|
+
/**
|
|
106
|
+
* Whether or not the component or directive is standalone.
|
|
107
|
+
*/
|
|
108
|
+
isStandalone: boolean;
|
|
105
109
|
}
|
|
106
110
|
/**
|
|
107
111
|
* Specifies how a list of declaration type references should be emitted into the generated code.
|
|
@@ -75,4 +75,4 @@ export declare class I18nMetaVisitor implements html.Visitor {
|
|
|
75
75
|
* @returns Object with id, meaning and description fields
|
|
76
76
|
*/
|
|
77
77
|
export declare function parseI18nMeta(meta?: string): I18nMeta;
|
|
78
|
-
export declare function i18nMetaToJSDoc(meta: I18nMeta): o.JSDocComment
|
|
78
|
+
export declare function i18nMetaToJSDoc(meta: I18nMeta): o.JSDocComment;
|
|
@@ -130,11 +130,8 @@ export declare class TemplateDefinitionBuilder implements t.Visitor<void>, Local
|
|
|
130
130
|
private instructionFn;
|
|
131
131
|
private processStylingUpdateInstruction;
|
|
132
132
|
private creationInstruction;
|
|
133
|
-
private creationInstructionChain;
|
|
134
133
|
private updateInstructionWithAdvance;
|
|
135
134
|
private updateInstruction;
|
|
136
|
-
private updateInstructionChain;
|
|
137
|
-
private updateInstructionChainWithAdvance;
|
|
138
135
|
private addAdvanceInstructionIfNecessary;
|
|
139
136
|
private allocatePureFunctionSlots;
|
|
140
137
|
private allocateBindingSlots;
|
|
@@ -257,7 +254,7 @@ export declare class BindingScope implements LocalResolver {
|
|
|
257
254
|
generateSharedContextVar(retrievalLevel: number): void;
|
|
258
255
|
getComponentProperty(name: string): o.Expression;
|
|
259
256
|
maybeRestoreView(): void;
|
|
260
|
-
restoreViewStatement(): o.Statement
|
|
257
|
+
restoreViewStatement(): o.Statement | null;
|
|
261
258
|
viewSnapshotStatements(): o.Statement[];
|
|
262
259
|
isListenerScope(): boolean | null;
|
|
263
260
|
variableDeclarations(): o.Statement[];
|
|
@@ -25,6 +25,20 @@ export declare const IMPLICIT_REFERENCE = "$implicit";
|
|
|
25
25
|
export declare const NON_BINDABLE_ATTR = "ngNonBindable";
|
|
26
26
|
/** Name for the variable keeping track of the context returned by `ɵɵrestoreView`. */
|
|
27
27
|
export declare const RESTORED_VIEW_CONTEXT_NAME = "restoredCtx";
|
|
28
|
+
/**
|
|
29
|
+
* Possible types that can be used to generate the parameters of an instruction call.
|
|
30
|
+
* If the parameters are a function, the function will be invoked at the time the instruction
|
|
31
|
+
* is generated.
|
|
32
|
+
*/
|
|
33
|
+
export declare type InstructionParams = (o.Expression | o.Expression[]) | (() => (o.Expression | o.Expression[]));
|
|
34
|
+
/** Necessary information to generate a call to an instruction function. */
|
|
35
|
+
export interface Instruction {
|
|
36
|
+
span: ParseSourceSpan | null;
|
|
37
|
+
reference: o.ExternalReference;
|
|
38
|
+
paramsOrFn?: InstructionParams;
|
|
39
|
+
}
|
|
40
|
+
/** Generates a call to a single instruction. */
|
|
41
|
+
export declare function invokeInstruction(span: ParseSourceSpan | null, reference: o.ExternalReference, params: o.Expression[]): o.Expression;
|
|
28
42
|
/**
|
|
29
43
|
* Creates an allocator for a temporary variable.
|
|
30
44
|
*
|
|
@@ -67,11 +81,14 @@ export declare class DefinitionMap<T = any> {
|
|
|
67
81
|
export declare function getAttrsForDirectiveMatching(elOrTpl: t.Element | t.Template): {
|
|
68
82
|
[name: string]: string;
|
|
69
83
|
};
|
|
70
|
-
/** Returns a call expression to a chained instruction, e.g. `property(params[0])(params[1])`. */
|
|
71
|
-
export declare function chainedInstruction(reference: o.ExternalReference, calls: o.Expression[][], span?: ParseSourceSpan | null): o.Expression;
|
|
72
84
|
/**
|
|
73
85
|
* Gets the number of arguments expected to be passed to a generated instruction in the case of
|
|
74
86
|
* interpolation instructions.
|
|
75
87
|
* @param interpolation An interpolation ast
|
|
76
88
|
*/
|
|
77
89
|
export declare function getInterpolationArgsLength(interpolation: Interpolation): number;
|
|
90
|
+
/**
|
|
91
|
+
* Generates the final instruction call statements based on the passed in configuration.
|
|
92
|
+
* Will try to chain instructions as much as possible, if chaining is supported.
|
|
93
|
+
*/
|
|
94
|
+
export declare function getInstructionStatements(instructions: Instruction[]): o.Statement[];
|
|
@@ -9,6 +9,7 @@ import { SecurityContext } from '../core';
|
|
|
9
9
|
import { ASTWithSource, BindingPipe, BoundElementProperty, ParsedEvent, ParsedProperty, ParsedVariable, RecursiveAstVisitor } from '../expression_parser/ast';
|
|
10
10
|
import { Parser } from '../expression_parser/parser';
|
|
11
11
|
import { InterpolationConfig } from '../ml_parser/interpolation_config';
|
|
12
|
+
import { InterpolatedAttributeToken, InterpolatedTextToken } from '../ml_parser/tokens';
|
|
12
13
|
import { ParseError, ParseSourceSpan } from '../parse_util';
|
|
13
14
|
import { ElementSchemaRegistry } from '../schema/element_schema_registry';
|
|
14
15
|
export interface HostProperties {
|
|
@@ -29,7 +30,7 @@ export declare class BindingParser {
|
|
|
29
30
|
get interpolationConfig(): InterpolationConfig;
|
|
30
31
|
createBoundHostProperties(properties: HostProperties, sourceSpan: ParseSourceSpan): ParsedProperty[] | null;
|
|
31
32
|
createDirectiveHostEventAsts(hostListeners: HostListeners, sourceSpan: ParseSourceSpan): ParsedEvent[] | null;
|
|
32
|
-
parseInterpolation(value: string, sourceSpan: ParseSourceSpan): ASTWithSource;
|
|
33
|
+
parseInterpolation(value: string, sourceSpan: ParseSourceSpan, interpolatedTokens: InterpolatedAttributeToken[] | InterpolatedTextToken[] | null): ASTWithSource;
|
|
33
34
|
/**
|
|
34
35
|
* Similar to `parseInterpolation`, but treats the provided string as a single expression
|
|
35
36
|
* element that would normally appear within the interpolation prefix and suffix (`{{` and `}}`).
|
|
@@ -64,12 +65,12 @@ export declare class BindingParser {
|
|
|
64
65
|
private _parseTemplateBindings;
|
|
65
66
|
parseLiteralAttr(name: string, value: string | null, sourceSpan: ParseSourceSpan, absoluteOffset: number, valueSpan: ParseSourceSpan | undefined, targetMatchableAttrs: string[][], targetProps: ParsedProperty[], keySpan: ParseSourceSpan): void;
|
|
66
67
|
parsePropertyBinding(name: string, expression: string, isHost: boolean, sourceSpan: ParseSourceSpan, absoluteOffset: number, valueSpan: ParseSourceSpan | undefined, targetMatchableAttrs: string[][], targetProps: ParsedProperty[], keySpan: ParseSourceSpan): void;
|
|
67
|
-
parsePropertyInterpolation(name: string, value: string, sourceSpan: ParseSourceSpan, valueSpan: ParseSourceSpan | undefined, targetMatchableAttrs: string[][], targetProps: ParsedProperty[], keySpan: ParseSourceSpan): boolean;
|
|
68
|
+
parsePropertyInterpolation(name: string, value: string, sourceSpan: ParseSourceSpan, valueSpan: ParseSourceSpan | undefined, targetMatchableAttrs: string[][], targetProps: ParsedProperty[], keySpan: ParseSourceSpan, interpolatedTokens: InterpolatedAttributeToken[] | InterpolatedTextToken[] | null): boolean;
|
|
68
69
|
private _parsePropertyAst;
|
|
69
70
|
private _parseAnimation;
|
|
70
71
|
private _parseBinding;
|
|
71
72
|
createBoundElementProperty(elementSelector: string, boundProp: ParsedProperty, skipValidation?: boolean, mapPropertyName?: boolean): BoundElementProperty;
|
|
72
|
-
parseEvent(name: string, expression: string, sourceSpan: ParseSourceSpan, handlerSpan: ParseSourceSpan, targetMatchableAttrs: string[][], targetEvents: ParsedEvent[], keySpan: ParseSourceSpan): void;
|
|
73
|
+
parseEvent(name: string, expression: string, isAssignmentEvent: boolean, sourceSpan: ParseSourceSpan, handlerSpan: ParseSourceSpan, targetMatchableAttrs: string[][], targetEvents: ParsedEvent[], keySpan: ParseSourceSpan): void;
|
|
73
74
|
calcPossibleSecurityContexts(selector: string, propName: string, isAttribute: boolean): SecurityContext[];
|
|
74
75
|
private _parseAnimationEvent;
|
|
75
76
|
private _parseRegularEvent;
|
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @license
|
|
3
|
-
* Copyright Google LLC All Rights Reserved.
|
|
4
|
-
*
|
|
5
|
-
* Use of this source code is governed by an MIT-style license that can be
|
|
6
|
-
* found in the LICENSE file at https://angular.io/license
|
|
7
|
-
*/
|
|
8
|
-
const CORE = '@angular/core';
|
|
9
|
-
export class Identifiers {
|
|
10
|
-
}
|
|
11
|
-
Identifiers.ANALYZE_FOR_ENTRY_COMPONENTS = {
|
|
12
|
-
name: 'ANALYZE_FOR_ENTRY_COMPONENTS',
|
|
13
|
-
moduleName: CORE,
|
|
14
|
-
};
|
|
15
|
-
Identifiers.ElementRef = { name: 'ElementRef', moduleName: CORE };
|
|
16
|
-
Identifiers.NgModuleRef = { name: 'NgModuleRef', moduleName: CORE };
|
|
17
|
-
Identifiers.ViewContainerRef = { name: 'ViewContainerRef', moduleName: CORE };
|
|
18
|
-
Identifiers.ChangeDetectorRef = {
|
|
19
|
-
name: 'ChangeDetectorRef',
|
|
20
|
-
moduleName: CORE,
|
|
21
|
-
};
|
|
22
|
-
Identifiers.QueryList = { name: 'QueryList', moduleName: CORE };
|
|
23
|
-
Identifiers.TemplateRef = { name: 'TemplateRef', moduleName: CORE };
|
|
24
|
-
Identifiers.Renderer2 = { name: 'Renderer2', moduleName: CORE };
|
|
25
|
-
Identifiers.CodegenComponentFactoryResolver = {
|
|
26
|
-
name: 'ɵCodegenComponentFactoryResolver',
|
|
27
|
-
moduleName: CORE,
|
|
28
|
-
};
|
|
29
|
-
Identifiers.ComponentFactoryResolver = {
|
|
30
|
-
name: 'ComponentFactoryResolver',
|
|
31
|
-
moduleName: CORE,
|
|
32
|
-
};
|
|
33
|
-
Identifiers.ComponentFactory = { name: 'ComponentFactory', moduleName: CORE };
|
|
34
|
-
Identifiers.ComponentRef = { name: 'ComponentRef', moduleName: CORE };
|
|
35
|
-
Identifiers.NgModuleFactory = { name: 'NgModuleFactory', moduleName: CORE };
|
|
36
|
-
Identifiers.createModuleFactory = {
|
|
37
|
-
name: 'ɵcmf',
|
|
38
|
-
moduleName: CORE,
|
|
39
|
-
};
|
|
40
|
-
Identifiers.moduleDef = {
|
|
41
|
-
name: 'ɵmod',
|
|
42
|
-
moduleName: CORE,
|
|
43
|
-
};
|
|
44
|
-
Identifiers.moduleProviderDef = {
|
|
45
|
-
name: 'ɵmpd',
|
|
46
|
-
moduleName: CORE,
|
|
47
|
-
};
|
|
48
|
-
Identifiers.RegisterModuleFactoryFn = {
|
|
49
|
-
name: 'ɵregisterModuleFactory',
|
|
50
|
-
moduleName: CORE,
|
|
51
|
-
};
|
|
52
|
-
Identifiers.inject = { name: 'ɵɵinject', moduleName: CORE };
|
|
53
|
-
Identifiers.directiveInject = { name: 'ɵɵdirectiveInject', moduleName: CORE };
|
|
54
|
-
Identifiers.INJECTOR = { name: 'INJECTOR', moduleName: CORE };
|
|
55
|
-
Identifiers.Injector = { name: 'Injector', moduleName: CORE };
|
|
56
|
-
Identifiers.ViewEncapsulation = {
|
|
57
|
-
name: 'ViewEncapsulation',
|
|
58
|
-
moduleName: CORE,
|
|
59
|
-
};
|
|
60
|
-
Identifiers.ChangeDetectionStrategy = {
|
|
61
|
-
name: 'ChangeDetectionStrategy',
|
|
62
|
-
moduleName: CORE,
|
|
63
|
-
};
|
|
64
|
-
Identifiers.SecurityContext = {
|
|
65
|
-
name: 'SecurityContext',
|
|
66
|
-
moduleName: CORE,
|
|
67
|
-
};
|
|
68
|
-
Identifiers.LOCALE_ID = { name: 'LOCALE_ID', moduleName: CORE };
|
|
69
|
-
Identifiers.TRANSLATIONS_FORMAT = {
|
|
70
|
-
name: 'TRANSLATIONS_FORMAT',
|
|
71
|
-
moduleName: CORE,
|
|
72
|
-
};
|
|
73
|
-
Identifiers.inlineInterpolate = {
|
|
74
|
-
name: 'ɵinlineInterpolate',
|
|
75
|
-
moduleName: CORE,
|
|
76
|
-
};
|
|
77
|
-
Identifiers.interpolate = { name: 'ɵinterpolate', moduleName: CORE };
|
|
78
|
-
Identifiers.EMPTY_ARRAY = { name: 'ɵEMPTY_ARRAY', moduleName: CORE };
|
|
79
|
-
Identifiers.EMPTY_MAP = { name: 'ɵEMPTY_MAP', moduleName: CORE };
|
|
80
|
-
Identifiers.Renderer = { name: 'Renderer', moduleName: CORE };
|
|
81
|
-
// type only
|
|
82
|
-
Identifiers.RendererType2 = {
|
|
83
|
-
name: 'RendererType2',
|
|
84
|
-
moduleName: CORE,
|
|
85
|
-
};
|
|
86
|
-
// type only
|
|
87
|
-
Identifiers.ViewDefinition = {
|
|
88
|
-
name: 'ɵViewDefinition',
|
|
89
|
-
moduleName: CORE,
|
|
90
|
-
};
|
|
91
|
-
Identifiers.createComponentFactory = { name: 'ɵccf', moduleName: CORE };
|
|
92
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWRlbnRpZmllcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21waWxlci9zcmMvaWRlbnRpZmllcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBSUgsTUFBTSxJQUFJLEdBQUcsZUFBZSxDQUFDO0FBRTdCLE1BQU0sT0FBTyxXQUFXOztBQUNmLHdDQUE0QixHQUF3QjtJQUN6RCxJQUFJLEVBQUUsOEJBQThCO0lBQ3BDLFVBQVUsRUFBRSxJQUFJO0NBRWpCLENBQUM7QUFDSyxzQkFBVSxHQUF3QixFQUFDLElBQUksRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBQyxDQUFDO0FBQ3pFLHVCQUFXLEdBQXdCLEVBQUMsSUFBSSxFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFDLENBQUM7QUFDM0UsNEJBQWdCLEdBQXdCLEVBQUMsSUFBSSxFQUFFLGtCQUFrQixFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUMsQ0FBQztBQUNyRiw2QkFBaUIsR0FBd0I7SUFDOUMsSUFBSSxFQUFFLG1CQUFtQjtJQUN6QixVQUFVLEVBQUUsSUFBSTtDQUVqQixDQUFDO0FBQ0sscUJBQVMsR0FBd0IsRUFBQyxJQUFJLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUMsQ0FBQztBQUN2RSx1QkFBVyxHQUF3QixFQUFDLElBQUksRUFBRSxhQUFhLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBQyxDQUFDO0FBQzNFLHFCQUFTLEdBQXdCLEVBQUMsSUFBSSxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFDLENBQUM7QUFDdkUsMkNBQStCLEdBQXdCO0lBQzVELElBQUksRUFBRSxrQ0FBa0M7SUFDeEMsVUFBVSxFQUFFLElBQUk7Q0FFakIsQ0FBQztBQUNLLG9DQUF3QixHQUF3QjtJQUNyRCxJQUFJLEVBQUUsMEJBQTBCO0lBQ2hDLFVBQVUsRUFBRSxJQUFJO0NBRWpCLENBQUM7QUFDSyw0QkFBZ0IsR0FBd0IsRUFBQyxJQUFJLEVBQUUsa0JBQWtCLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBQyxDQUFDO0FBQ3JGLHdCQUFZLEdBQXdCLEVBQUMsSUFBSSxFQUFFLGNBQWMsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFDLENBQUM7QUFDN0UsMkJBQWUsR0FBd0IsRUFBQyxJQUFJLEVBQUUsaUJBQWlCLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBQyxDQUFDO0FBQ25GLCtCQUFtQixHQUF3QjtJQUNoRCxJQUFJLEVBQUUsTUFBTTtJQUNaLFVBQVUsRUFBRSxJQUFJO0NBRWpCLENBQUM7QUFDSyxxQkFBUyxHQUF3QjtJQUN0QyxJQUFJLEVBQUUsTUFBTTtJQUNaLFVBQVUsRUFBRSxJQUFJO0NBRWpCLENBQUM7QUFDSyw2QkFBaUIsR0FBd0I7SUFDOUMsSUFBSSxFQUFFLE1BQU07SUFDWixVQUFVLEVBQUUsSUFBSTtDQUVqQixDQUFDO0FBQ0ssbUNBQXVCLEdBQXdCO0lBQ3BELElBQUksRUFBRSx3QkFBd0I7SUFDOUIsVUFBVSxFQUFFLElBQUk7Q0FFakIsQ0FBQztBQUNLLGtCQUFNLEdBQXdCLEVBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFDLENBQUM7QUFDbkUsMkJBQWUsR0FBd0IsRUFBQyxJQUFJLEVBQUUsbUJBQW1CLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBQyxDQUFDO0FBQ3JGLG9CQUFRLEdBQXdCLEVBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFDLENBQUM7QUFDckUsb0JBQVEsR0FBd0IsRUFBQyxJQUFJLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUMsQ0FBQztBQUNyRSw2QkFBaUIsR0FBd0I7SUFDOUMsSUFBSSxFQUFFLG1CQUFtQjtJQUN6QixVQUFVLEVBQUUsSUFBSTtDQUVqQixDQUFDO0FBQ0ssbUNBQXVCLEdBQXdCO0lBQ3BELElBQUksRUFBRSx5QkFBeUI7SUFDL0IsVUFBVSxFQUFFLElBQUk7Q0FFakIsQ0FBQztBQUNLLDJCQUFlLEdBQXdCO0lBQzVDLElBQUksRUFBRSxpQkFBaUI7SUFDdkIsVUFBVSxFQUFFLElBQUk7Q0FFakIsQ0FBQztBQUNLLHFCQUFTLEdBQXdCLEVBQUMsSUFBSSxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFDLENBQUM7QUFDdkUsK0JBQW1CLEdBQXdCO0lBQ2hELElBQUksRUFBRSxxQkFBcUI7SUFDM0IsVUFBVSxFQUFFLElBQUk7Q0FFakIsQ0FBQztBQUNLLDZCQUFpQixHQUF3QjtJQUM5QyxJQUFJLEVBQUUsb0JBQW9CO0lBQzFCLFVBQVUsRUFBRSxJQUFJO0NBQ2pCLENBQUM7QUFDSyx1QkFBVyxHQUF3QixFQUFDLElBQUksRUFBRSxjQUFjLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBQyxDQUFDO0FBQzVFLHVCQUFXLEdBQXdCLEVBQUMsSUFBSSxFQUFFLGNBQWMsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFDLENBQUM7QUFDNUUscUJBQVMsR0FBd0IsRUFBQyxJQUFJLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUMsQ0FBQztBQUN4RSxvQkFBUSxHQUF3QixFQUFDLElBQUksRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBQyxDQUFDO0FBQzVFLFlBQVk7QUFDTCx5QkFBYSxHQUF3QjtJQUMxQyxJQUFJLEVBQUUsZUFBZTtJQUNyQixVQUFVLEVBQUUsSUFBSTtDQUVqQixDQUFDO0FBQ0YsWUFBWTtBQUNMLDBCQUFjLEdBQXdCO0lBQzNDLElBQUksRUFBRSxpQkFBaUI7SUFDdkIsVUFBVSxFQUFFLElBQUk7Q0FDakIsQ0FBQztBQUNLLGtDQUFzQixHQUF3QixFQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCAqIGFzIG8gZnJvbSAnLi9vdXRwdXQvb3V0cHV0X2FzdCc7XG5cbmNvbnN0IENPUkUgPSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBjbGFzcyBJZGVudGlmaWVycyB7XG4gIHN0YXRpYyBBTkFMWVpFX0ZPUl9FTlRSWV9DT01QT05FTlRTOiBvLkV4dGVybmFsUmVmZXJlbmNlID0ge1xuICAgIG5hbWU6ICdBTkFMWVpFX0ZPUl9FTlRSWV9DT01QT05FTlRTJyxcbiAgICBtb2R1bGVOYW1lOiBDT1JFLFxuXG4gIH07XG4gIHN0YXRpYyBFbGVtZW50UmVmOiBvLkV4dGVybmFsUmVmZXJlbmNlID0ge25hbWU6ICdFbGVtZW50UmVmJywgbW9kdWxlTmFtZTogQ09SRX07XG4gIHN0YXRpYyBOZ01vZHVsZVJlZjogby5FeHRlcm5hbFJlZmVyZW5jZSA9IHtuYW1lOiAnTmdNb2R1bGVSZWYnLCBtb2R1bGVOYW1lOiBDT1JFfTtcbiAgc3RhdGljIFZpZXdDb250YWluZXJSZWY6IG8uRXh0ZXJuYWxSZWZlcmVuY2UgPSB7bmFtZTogJ1ZpZXdDb250YWluZXJSZWYnLCBtb2R1bGVOYW1lOiBDT1JFfTtcbiAgc3RhdGljIENoYW5nZURldGVjdG9yUmVmOiBvLkV4dGVybmFsUmVmZXJlbmNlID0ge1xuICAgIG5hbWU6ICdDaGFuZ2VEZXRlY3RvclJlZicsXG4gICAgbW9kdWxlTmFtZTogQ09SRSxcblxuICB9O1xuICBzdGF0aWMgUXVlcnlMaXN0OiBvLkV4dGVybmFsUmVmZXJlbmNlID0ge25hbWU6ICdRdWVyeUxpc3QnLCBtb2R1bGVOYW1lOiBDT1JFfTtcbiAgc3RhdGljIFRlbXBsYXRlUmVmOiBvLkV4dGVybmFsUmVmZXJlbmNlID0ge25hbWU6ICdUZW1wbGF0ZVJlZicsIG1vZHVsZU5hbWU6IENPUkV9O1xuICBzdGF0aWMgUmVuZGVyZXIyOiBvLkV4dGVybmFsUmVmZXJlbmNlID0ge25hbWU6ICdSZW5kZXJlcjInLCBtb2R1bGVOYW1lOiBDT1JFfTtcbiAgc3RhdGljIENvZGVnZW5Db21wb25lbnRGYWN0b3J5UmVzb2x2ZXI6IG8uRXh0ZXJuYWxSZWZlcmVuY2UgPSB7XG4gICAgbmFtZTogJ8m1Q29kZWdlbkNvbXBvbmVudEZhY3RvcnlSZXNvbHZlcicsXG4gICAgbW9kdWxlTmFtZTogQ09SRSxcblxuICB9O1xuICBzdGF0aWMgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyOiBvLkV4dGVybmFsUmVmZXJlbmNlID0ge1xuICAgIG5hbWU6ICdDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXInLFxuICAgIG1vZHVsZU5hbWU6IENPUkUsXG5cbiAgfTtcbiAgc3RhdGljIENvbXBvbmVudEZhY3Rvcnk6IG8uRXh0ZXJuYWxSZWZlcmVuY2UgPSB7bmFtZTogJ0NvbXBvbmVudEZhY3RvcnknLCBtb2R1bGVOYW1lOiBDT1JFfTtcbiAgc3RhdGljIENvbXBvbmVudFJlZjogby5FeHRlcm5hbFJlZmVyZW5jZSA9IHtuYW1lOiAnQ29tcG9uZW50UmVmJywgbW9kdWxlTmFtZTogQ09SRX07XG4gIHN0YXRpYyBOZ01vZHVsZUZhY3Rvcnk6IG8uRXh0ZXJuYWxSZWZlcmVuY2UgPSB7bmFtZTogJ05nTW9kdWxlRmFjdG9yeScsIG1vZHVsZU5hbWU6IENPUkV9O1xuICBzdGF0aWMgY3JlYXRlTW9kdWxlRmFjdG9yeTogby5FeHRlcm5hbFJlZmVyZW5jZSA9IHtcbiAgICBuYW1lOiAnybVjbWYnLFxuICAgIG1vZHVsZU5hbWU6IENPUkUsXG5cbiAgfTtcbiAgc3RhdGljIG1vZHVsZURlZjogby5FeHRlcm5hbFJlZmVyZW5jZSA9IHtcbiAgICBuYW1lOiAnybVtb2QnLFxuICAgIG1vZHVsZU5hbWU6IENPUkUsXG5cbiAgfTtcbiAgc3RhdGljIG1vZHVsZVByb3ZpZGVyRGVmOiBvLkV4dGVybmFsUmVmZXJlbmNlID0ge1xuICAgIG5hbWU6ICfJtW1wZCcsXG4gICAgbW9kdWxlTmFtZTogQ09SRSxcblxuICB9O1xuICBzdGF0aWMgUmVnaXN0ZXJNb2R1bGVGYWN0b3J5Rm46IG8uRXh0ZXJuYWxSZWZlcmVuY2UgPSB7XG4gICAgbmFtZTogJ8m1cmVnaXN0ZXJNb2R1bGVGYWN0b3J5JyxcbiAgICBtb2R1bGVOYW1lOiBDT1JFLFxuXG4gIH07XG4gIHN0YXRpYyBpbmplY3Q6IG8uRXh0ZXJuYWxSZWZlcmVuY2UgPSB7bmFtZTogJ8m1ybVpbmplY3QnLCBtb2R1bGVOYW1lOiBDT1JFfTtcbiAgc3RhdGljIGRpcmVjdGl2ZUluamVjdDogby5FeHRlcm5hbFJlZmVyZW5jZSA9IHtuYW1lOiAnybXJtWRpcmVjdGl2ZUluamVjdCcsIG1vZHVsZU5hbWU6IENPUkV9O1xuICBzdGF0aWMgSU5KRUNUT1I6IG8uRXh0ZXJuYWxSZWZlcmVuY2UgPSB7bmFtZTogJ0lOSkVDVE9SJywgbW9kdWxlTmFtZTogQ09SRX07XG4gIHN0YXRpYyBJbmplY3Rvcjogby5FeHRlcm5hbFJlZmVyZW5jZSA9IHtuYW1lOiAnSW5qZWN0b3InLCBtb2R1bGVOYW1lOiBDT1JFfTtcbiAgc3RhdGljIFZpZXdFbmNhcHN1bGF0aW9uOiBvLkV4dGVybmFsUmVmZXJlbmNlID0ge1xuICAgIG5hbWU6ICdWaWV3RW5jYXBzdWxhdGlvbicsXG4gICAgbW9kdWxlTmFtZTogQ09SRSxcblxuICB9O1xuICBzdGF0aWMgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3k6IG8uRXh0ZXJuYWxSZWZlcmVuY2UgPSB7XG4gICAgbmFtZTogJ0NoYW5nZURldGVjdGlvblN0cmF0ZWd5JyxcbiAgICBtb2R1bGVOYW1lOiBDT1JFLFxuXG4gIH07XG4gIHN0YXRpYyBTZWN1cml0eUNvbnRleHQ6IG8uRXh0ZXJuYWxSZWZlcmVuY2UgPSB7XG4gICAgbmFtZTogJ1NlY3VyaXR5Q29udGV4dCcsXG4gICAgbW9kdWxlTmFtZTogQ09SRSxcblxuICB9O1xuICBzdGF0aWMgTE9DQUxFX0lEOiBvLkV4dGVybmFsUmVmZXJlbmNlID0ge25hbWU6ICdMT0NBTEVfSUQnLCBtb2R1bGVOYW1lOiBDT1JFfTtcbiAgc3RhdGljIFRSQU5TTEFUSU9OU19GT1JNQVQ6IG8uRXh0ZXJuYWxSZWZlcmVuY2UgPSB7XG4gICAgbmFtZTogJ1RSQU5TTEFUSU9OU19GT1JNQVQnLFxuICAgIG1vZHVsZU5hbWU6IENPUkUsXG5cbiAgfTtcbiAgc3RhdGljIGlubGluZUludGVycG9sYXRlOiBvLkV4dGVybmFsUmVmZXJlbmNlID0ge1xuICAgIG5hbWU6ICfJtWlubGluZUludGVycG9sYXRlJyxcbiAgICBtb2R1bGVOYW1lOiBDT1JFLFxuICB9O1xuICBzdGF0aWMgaW50ZXJwb2xhdGU6IG8uRXh0ZXJuYWxSZWZlcmVuY2UgPSB7bmFtZTogJ8m1aW50ZXJwb2xhdGUnLCBtb2R1bGVOYW1lOiBDT1JFfTtcbiAgc3RhdGljIEVNUFRZX0FSUkFZOiBvLkV4dGVybmFsUmVmZXJlbmNlID0ge25hbWU6ICfJtUVNUFRZX0FSUkFZJywgbW9kdWxlTmFtZTogQ09SRX07XG4gIHN0YXRpYyBFTVBUWV9NQVA6IG8uRXh0ZXJuYWxSZWZlcmVuY2UgPSB7bmFtZTogJ8m1RU1QVFlfTUFQJywgbW9kdWxlTmFtZTogQ09SRX07XG4gIHN0YXRpYyBSZW5kZXJlcjogby5FeHRlcm5hbFJlZmVyZW5jZSA9IHtuYW1lOiAnUmVuZGVyZXInLCBtb2R1bGVOYW1lOiBDT1JFfTtcbiAgLy8gdHlwZSBvbmx5XG4gIHN0YXRpYyBSZW5kZXJlclR5cGUyOiBvLkV4dGVybmFsUmVmZXJlbmNlID0ge1xuICAgIG5hbWU6ICdSZW5kZXJlclR5cGUyJyxcbiAgICBtb2R1bGVOYW1lOiBDT1JFLFxuXG4gIH07XG4gIC8vIHR5cGUgb25seVxuICBzdGF0aWMgVmlld0RlZmluaXRpb246IG8uRXh0ZXJuYWxSZWZlcmVuY2UgPSB7XG4gICAgbmFtZTogJ8m1Vmlld0RlZmluaXRpb24nLFxuICAgIG1vZHVsZU5hbWU6IENPUkUsXG4gIH07XG4gIHN0YXRpYyBjcmVhdGVDb21wb25lbnRGYWN0b3J5OiBvLkV4dGVybmFsUmVmZXJlbmNlID0ge25hbWU6ICfJtWNjZicsIG1vZHVsZU5hbWU6IENPUkV9O1xufVxuIl19
|