@angular/compiler 19.2.1 → 19.2.3
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/fesm2022/compiler.mjs +181 -295
- package/fesm2022/compiler.mjs.map +1 -1
- package/index.d.ts +4328 -4717
- package/package.json +4 -10
package/fesm2022/compiler.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Angular v19.2.
|
|
2
|
+
* @license Angular v19.2.3
|
|
3
3
|
* (c) 2010-2025 Google LLC. https://angular.io/
|
|
4
4
|
* License: MIT
|
|
5
5
|
*/
|
|
@@ -399,6 +399,10 @@ class SelectorContext {
|
|
|
399
399
|
}
|
|
400
400
|
|
|
401
401
|
// Attention:
|
|
402
|
+
// This file duplicates types and values from @angular/core
|
|
403
|
+
// so that we are able to make @angular/compiler independent of @angular/core.
|
|
404
|
+
// This is important to prevent a build cycle, as @angular/core needs to
|
|
405
|
+
// be compiled with the compiler.
|
|
402
406
|
// Stores the default value of `emitDistinctChangesOnly` when the `emitDistinctChangesOnly` is not
|
|
403
407
|
// explicitly set.
|
|
404
408
|
const emitDistinctChangesOnlyDefaultValue = true;
|
|
@@ -484,15 +488,15 @@ function parseSelectorToR3Selector(selector) {
|
|
|
484
488
|
|
|
485
489
|
var core = /*#__PURE__*/Object.freeze({
|
|
486
490
|
__proto__: null,
|
|
487
|
-
|
|
488
|
-
get ViewEncapsulation () { return ViewEncapsulation; },
|
|
491
|
+
CUSTOM_ELEMENTS_SCHEMA: CUSTOM_ELEMENTS_SCHEMA,
|
|
489
492
|
get ChangeDetectionStrategy () { return ChangeDetectionStrategy; },
|
|
490
493
|
get InputFlags () { return InputFlags; },
|
|
491
|
-
|
|
494
|
+
get MissingTranslationStrategy () { return MissingTranslationStrategy; },
|
|
492
495
|
NO_ERRORS_SCHEMA: NO_ERRORS_SCHEMA,
|
|
493
|
-
Type: Type$1,
|
|
494
496
|
get SecurityContext () { return SecurityContext; },
|
|
495
|
-
|
|
497
|
+
Type: Type$1,
|
|
498
|
+
get ViewEncapsulation () { return ViewEncapsulation; },
|
|
499
|
+
emitDistinctChangesOnlyDefaultValue: emitDistinctChangesOnlyDefaultValue,
|
|
496
500
|
parseSelectorToR3Selector: parseSelectorToR3Selector
|
|
497
501
|
});
|
|
498
502
|
|
|
@@ -663,7 +667,7 @@ function fingerprint(str) {
|
|
|
663
667
|
let lo = hash32(view, utf8.length, 102072);
|
|
664
668
|
if (hi == 0 && (lo == 0 || lo == 1)) {
|
|
665
669
|
hi = hi ^ 0x130f9bef;
|
|
666
|
-
lo = lo ^ -
|
|
670
|
+
lo = lo ^ -1801410264;
|
|
667
671
|
}
|
|
668
672
|
return (BigInt.asUintN(32, BigInt(hi)) << BigInt(32)) | BigInt.asUintN(32, BigInt(lo));
|
|
669
673
|
}
|
|
@@ -1952,7 +1956,7 @@ class IfStmt extends Statement {
|
|
|
1952
1956
|
return visitor.visitIfStmt(this, context);
|
|
1953
1957
|
}
|
|
1954
1958
|
}
|
|
1955
|
-
|
|
1959
|
+
let RecursiveAstVisitor$1 = class RecursiveAstVisitor {
|
|
1956
1960
|
visitType(ast, context) {
|
|
1957
1961
|
return ast;
|
|
1958
1962
|
}
|
|
@@ -2134,7 +2138,7 @@ class RecursiveAstVisitor$1 {
|
|
|
2134
2138
|
visitAllStatements(stmts, context) {
|
|
2135
2139
|
stmts.forEach((stmt) => stmt.visitStatement(this, context));
|
|
2136
2140
|
}
|
|
2137
|
-
}
|
|
2141
|
+
};
|
|
2138
2142
|
function leadingComment(text, multiline = false, trailingNewline = true) {
|
|
2139
2143
|
return new LeadingComment(text, multiline, trailingNewline);
|
|
2140
2144
|
}
|
|
@@ -2229,89 +2233,89 @@ function serializeTags(tags) {
|
|
|
2229
2233
|
|
|
2230
2234
|
var output_ast = /*#__PURE__*/Object.freeze({
|
|
2231
2235
|
__proto__: null,
|
|
2232
|
-
get TypeModifier () { return TypeModifier; },
|
|
2233
|
-
Type: Type,
|
|
2234
|
-
get BuiltinTypeName () { return BuiltinTypeName; },
|
|
2235
|
-
BuiltinType: BuiltinType,
|
|
2236
|
-
ExpressionType: ExpressionType,
|
|
2237
2236
|
ArrayType: ArrayType,
|
|
2238
|
-
|
|
2239
|
-
TransplantedType: TransplantedType,
|
|
2240
|
-
DYNAMIC_TYPE: DYNAMIC_TYPE,
|
|
2241
|
-
INFERRED_TYPE: INFERRED_TYPE,
|
|
2237
|
+
ArrowFunctionExpr: ArrowFunctionExpr,
|
|
2242
2238
|
BOOL_TYPE: BOOL_TYPE,
|
|
2243
|
-
INT_TYPE: INT_TYPE,
|
|
2244
|
-
NUMBER_TYPE: NUMBER_TYPE,
|
|
2245
|
-
STRING_TYPE: STRING_TYPE,
|
|
2246
|
-
FUNCTION_TYPE: FUNCTION_TYPE,
|
|
2247
|
-
NONE_TYPE: NONE_TYPE,
|
|
2248
|
-
get UnaryOperator () { return UnaryOperator; },
|
|
2249
2239
|
get BinaryOperator () { return BinaryOperator; },
|
|
2250
|
-
|
|
2251
|
-
|
|
2240
|
+
BinaryOperatorExpr: BinaryOperatorExpr,
|
|
2241
|
+
BuiltinType: BuiltinType,
|
|
2242
|
+
get BuiltinTypeName () { return BuiltinTypeName; },
|
|
2243
|
+
CommaExpr: CommaExpr,
|
|
2244
|
+
ConditionalExpr: ConditionalExpr,
|
|
2245
|
+
DYNAMIC_TYPE: DYNAMIC_TYPE,
|
|
2246
|
+
DeclareFunctionStmt: DeclareFunctionStmt,
|
|
2247
|
+
DeclareVarStmt: DeclareVarStmt,
|
|
2248
|
+
DynamicImportExpr: DynamicImportExpr,
|
|
2252
2249
|
Expression: Expression,
|
|
2253
|
-
|
|
2254
|
-
|
|
2255
|
-
WrappedNodeExpr: WrappedNodeExpr,
|
|
2256
|
-
WriteVarExpr: WriteVarExpr,
|
|
2257
|
-
WriteKeyExpr: WriteKeyExpr,
|
|
2258
|
-
WritePropExpr: WritePropExpr,
|
|
2259
|
-
InvokeFunctionExpr: InvokeFunctionExpr,
|
|
2260
|
-
TaggedTemplateLiteralExpr: TaggedTemplateLiteralExpr,
|
|
2261
|
-
InstantiateExpr: InstantiateExpr,
|
|
2262
|
-
LiteralExpr: LiteralExpr,
|
|
2263
|
-
TemplateLiteralExpr: TemplateLiteralExpr,
|
|
2264
|
-
TemplateLiteralElementExpr: TemplateLiteralElementExpr,
|
|
2265
|
-
LiteralPiece: LiteralPiece,
|
|
2266
|
-
PlaceholderPiece: PlaceholderPiece,
|
|
2267
|
-
LocalizedString: LocalizedString,
|
|
2250
|
+
ExpressionStatement: ExpressionStatement,
|
|
2251
|
+
ExpressionType: ExpressionType,
|
|
2268
2252
|
ExternalExpr: ExternalExpr,
|
|
2269
2253
|
ExternalReference: ExternalReference,
|
|
2270
|
-
|
|
2271
|
-
DynamicImportExpr: DynamicImportExpr,
|
|
2272
|
-
NotExpr: NotExpr,
|
|
2254
|
+
FUNCTION_TYPE: FUNCTION_TYPE,
|
|
2273
2255
|
FnParam: FnParam,
|
|
2274
2256
|
FunctionExpr: FunctionExpr,
|
|
2275
|
-
|
|
2276
|
-
|
|
2277
|
-
|
|
2278
|
-
|
|
2279
|
-
|
|
2257
|
+
INFERRED_TYPE: INFERRED_TYPE,
|
|
2258
|
+
INT_TYPE: INT_TYPE,
|
|
2259
|
+
IfStmt: IfStmt,
|
|
2260
|
+
InstantiateExpr: InstantiateExpr,
|
|
2261
|
+
InvokeFunctionExpr: InvokeFunctionExpr,
|
|
2262
|
+
JSDocComment: JSDocComment,
|
|
2263
|
+
LeadingComment: LeadingComment,
|
|
2280
2264
|
LiteralArrayExpr: LiteralArrayExpr,
|
|
2265
|
+
LiteralExpr: LiteralExpr,
|
|
2281
2266
|
LiteralMapEntry: LiteralMapEntry,
|
|
2282
2267
|
LiteralMapExpr: LiteralMapExpr,
|
|
2283
|
-
|
|
2268
|
+
LiteralPiece: LiteralPiece,
|
|
2269
|
+
LocalizedString: LocalizedString,
|
|
2270
|
+
MapType: MapType,
|
|
2271
|
+
NONE_TYPE: NONE_TYPE,
|
|
2284
2272
|
NULL_EXPR: NULL_EXPR,
|
|
2285
|
-
|
|
2286
|
-
|
|
2287
|
-
|
|
2288
|
-
|
|
2289
|
-
|
|
2290
|
-
|
|
2291
|
-
DeclareFunctionStmt: DeclareFunctionStmt,
|
|
2292
|
-
ExpressionStatement: ExpressionStatement,
|
|
2293
|
-
ReturnStatement: ReturnStatement,
|
|
2294
|
-
IfStmt: IfStmt,
|
|
2273
|
+
NUMBER_TYPE: NUMBER_TYPE,
|
|
2274
|
+
NotExpr: NotExpr,
|
|
2275
|
+
PlaceholderPiece: PlaceholderPiece,
|
|
2276
|
+
ReadKeyExpr: ReadKeyExpr,
|
|
2277
|
+
ReadPropExpr: ReadPropExpr,
|
|
2278
|
+
ReadVarExpr: ReadVarExpr,
|
|
2295
2279
|
RecursiveAstVisitor: RecursiveAstVisitor$1,
|
|
2296
|
-
|
|
2297
|
-
|
|
2298
|
-
|
|
2280
|
+
ReturnStatement: ReturnStatement,
|
|
2281
|
+
STRING_TYPE: STRING_TYPE,
|
|
2282
|
+
Statement: Statement,
|
|
2283
|
+
get StmtModifier () { return StmtModifier; },
|
|
2284
|
+
TYPED_NULL_EXPR: TYPED_NULL_EXPR,
|
|
2285
|
+
TaggedTemplateLiteralExpr: TaggedTemplateLiteralExpr,
|
|
2286
|
+
TemplateLiteralElementExpr: TemplateLiteralElementExpr,
|
|
2287
|
+
TemplateLiteralExpr: TemplateLiteralExpr,
|
|
2288
|
+
TransplantedType: TransplantedType,
|
|
2289
|
+
Type: Type,
|
|
2290
|
+
get TypeModifier () { return TypeModifier; },
|
|
2291
|
+
TypeofExpr: TypeofExpr,
|
|
2292
|
+
get UnaryOperator () { return UnaryOperator; },
|
|
2293
|
+
UnaryOperatorExpr: UnaryOperatorExpr,
|
|
2294
|
+
WrappedNodeExpr: WrappedNodeExpr,
|
|
2295
|
+
WriteKeyExpr: WriteKeyExpr,
|
|
2296
|
+
WritePropExpr: WritePropExpr,
|
|
2297
|
+
WriteVarExpr: WriteVarExpr,
|
|
2298
|
+
areAllEquivalent: areAllEquivalent,
|
|
2299
|
+
arrowFn: arrowFn,
|
|
2300
|
+
expressionType: expressionType,
|
|
2301
|
+
fn: fn,
|
|
2302
|
+
ifStmt: ifStmt,
|
|
2299
2303
|
importExpr: importExpr,
|
|
2300
2304
|
importType: importType,
|
|
2301
|
-
|
|
2302
|
-
|
|
2303
|
-
|
|
2305
|
+
isNull: isNull,
|
|
2306
|
+
jsDocComment: jsDocComment,
|
|
2307
|
+
leadingComment: leadingComment,
|
|
2308
|
+
literal: literal,
|
|
2304
2309
|
literalArr: literalArr,
|
|
2305
2310
|
literalMap: literalMap,
|
|
2306
|
-
|
|
2311
|
+
localizedString: localizedString,
|
|
2307
2312
|
not: not,
|
|
2308
|
-
|
|
2309
|
-
arrowFn: arrowFn,
|
|
2310
|
-
ifStmt: ifStmt,
|
|
2313
|
+
nullSafeIsEquivalent: nullSafeIsEquivalent,
|
|
2311
2314
|
taggedTemplate: taggedTemplate,
|
|
2312
|
-
|
|
2313
|
-
|
|
2314
|
-
|
|
2315
|
+
transplantedType: transplantedType,
|
|
2316
|
+
typeofExpr: typeofExpr,
|
|
2317
|
+
unary: unary,
|
|
2318
|
+
variable: variable
|
|
2315
2319
|
});
|
|
2316
2320
|
|
|
2317
2321
|
const CONSTANT_PREFIX = '_c';
|
|
@@ -3115,13 +3119,6 @@ function _splitAt(input, character, defaultValues) {
|
|
|
3115
3119
|
function noUndefined(val) {
|
|
3116
3120
|
return val === undefined ? null : val;
|
|
3117
3121
|
}
|
|
3118
|
-
function error(msg) {
|
|
3119
|
-
throw new Error(`Internal Error: ${msg}`);
|
|
3120
|
-
}
|
|
3121
|
-
// Escape characters that have a special meaning in Regular Expressions
|
|
3122
|
-
function escapeRegExp(s) {
|
|
3123
|
-
return s.replace(/([.*+?^=!:${}()|[\]\/\\])/g, '\\$1');
|
|
3124
|
-
}
|
|
3125
3122
|
function utf8Encode(str) {
|
|
3126
3123
|
let encoded = [];
|
|
3127
3124
|
for (let index = 0; index < str.length; index++) {
|
|
@@ -3192,29 +3189,6 @@ class Version {
|
|
|
3192
3189
|
}
|
|
3193
3190
|
}
|
|
3194
3191
|
const _global = globalThis;
|
|
3195
|
-
function newArray(size, value) {
|
|
3196
|
-
const list = [];
|
|
3197
|
-
for (let i = 0; i < size; i++) {
|
|
3198
|
-
list.push(value);
|
|
3199
|
-
}
|
|
3200
|
-
return list;
|
|
3201
|
-
}
|
|
3202
|
-
/**
|
|
3203
|
-
* Partitions a given array into 2 arrays, based on a boolean value returned by the condition
|
|
3204
|
-
* function.
|
|
3205
|
-
*
|
|
3206
|
-
* @param arr Input array that should be partitioned
|
|
3207
|
-
* @param conditionFn Condition function that is called for each item in a given array and returns a
|
|
3208
|
-
* boolean value.
|
|
3209
|
-
*/
|
|
3210
|
-
function partitionArray(arr, conditionFn) {
|
|
3211
|
-
const truthy = [];
|
|
3212
|
-
const falsy = [];
|
|
3213
|
-
for (const item of arr) {
|
|
3214
|
-
(conditionFn(item) ? truthy : falsy).push(item);
|
|
3215
|
-
}
|
|
3216
|
-
return [truthy, falsy];
|
|
3217
|
-
}
|
|
3218
3192
|
const V1_TO_18 = /^([1-9]|1[0-8])\./;
|
|
3219
3193
|
function getJitStandaloneDefaultForVersion(version) {
|
|
3220
3194
|
if (version.startsWith('0.')) {
|
|
@@ -3911,20 +3885,10 @@ function typeWithParameters(type, numParams) {
|
|
|
3911
3885
|
}
|
|
3912
3886
|
return expressionType(type, undefined, params);
|
|
3913
3887
|
}
|
|
3914
|
-
const ANIMATE_SYMBOL_PREFIX = '@';
|
|
3915
|
-
function prepareSyntheticPropertyName(name) {
|
|
3916
|
-
return `${ANIMATE_SYMBOL_PREFIX}${name}`;
|
|
3917
|
-
}
|
|
3918
|
-
function prepareSyntheticListenerName(name, phase) {
|
|
3919
|
-
return `${ANIMATE_SYMBOL_PREFIX}${name}.${phase}`;
|
|
3920
|
-
}
|
|
3921
3888
|
function getSafePropertyAccessString(accessor, name) {
|
|
3922
3889
|
const escapedName = escapeIdentifier(name, false, false);
|
|
3923
3890
|
return escapedName !== name ? `${accessor}[${escapedName}]` : `${accessor}.${name}`;
|
|
3924
3891
|
}
|
|
3925
|
-
function prepareSyntheticListenerFunctionName(name, phase) {
|
|
3926
|
-
return `animation_${name}_${phase}`;
|
|
3927
|
-
}
|
|
3928
3892
|
function jitOnlyGuardedExpression(expr) {
|
|
3929
3893
|
return guardedExpression('ngJitMode', expr);
|
|
3930
3894
|
}
|
|
@@ -4222,11 +4186,11 @@ class ASTWithName extends AST {
|
|
|
4222
4186
|
this.nameSpan = nameSpan;
|
|
4223
4187
|
}
|
|
4224
4188
|
}
|
|
4225
|
-
|
|
4189
|
+
let EmptyExpr$1 = class EmptyExpr extends AST {
|
|
4226
4190
|
visit(visitor, context = null) {
|
|
4227
4191
|
// do nothing
|
|
4228
4192
|
}
|
|
4229
|
-
}
|
|
4193
|
+
};
|
|
4230
4194
|
class ImplicitReceiver extends AST {
|
|
4231
4195
|
visit(visitor, context = null) {
|
|
4232
4196
|
return visitor.visitImplicitReceiver(this, context);
|
|
@@ -4394,7 +4358,7 @@ class LiteralMap extends AST {
|
|
|
4394
4358
|
return visitor.visitLiteralMap(this, context);
|
|
4395
4359
|
}
|
|
4396
4360
|
}
|
|
4397
|
-
|
|
4361
|
+
let Interpolation$1 = class Interpolation extends AST {
|
|
4398
4362
|
strings;
|
|
4399
4363
|
expressions;
|
|
4400
4364
|
constructor(span, sourceSpan, strings, expressions) {
|
|
@@ -4405,7 +4369,7 @@ class Interpolation$1 extends AST {
|
|
|
4405
4369
|
visit(visitor, context = null) {
|
|
4406
4370
|
return visitor.visitInterpolation(this, context);
|
|
4407
4371
|
}
|
|
4408
|
-
}
|
|
4372
|
+
};
|
|
4409
4373
|
class Binary extends AST {
|
|
4410
4374
|
operation;
|
|
4411
4375
|
left;
|
|
@@ -4861,7 +4825,7 @@ function mergeNsAndName(prefix, localName) {
|
|
|
4861
4825
|
* the top-level of the R3 AST, and only if `Render3ParseOptions['collectCommentNodes']`
|
|
4862
4826
|
* is true.
|
|
4863
4827
|
*/
|
|
4864
|
-
|
|
4828
|
+
let Comment$1 = class Comment {
|
|
4865
4829
|
value;
|
|
4866
4830
|
sourceSpan;
|
|
4867
4831
|
constructor(value, sourceSpan) {
|
|
@@ -4871,8 +4835,8 @@ class Comment$1 {
|
|
|
4871
4835
|
visit(_visitor) {
|
|
4872
4836
|
throw new Error('visit() not implemented for Comment');
|
|
4873
4837
|
}
|
|
4874
|
-
}
|
|
4875
|
-
|
|
4838
|
+
};
|
|
4839
|
+
let Text$3 = class Text {
|
|
4876
4840
|
value;
|
|
4877
4841
|
sourceSpan;
|
|
4878
4842
|
constructor(value, sourceSpan) {
|
|
@@ -4882,7 +4846,7 @@ class Text$3 {
|
|
|
4882
4846
|
visit(visitor) {
|
|
4883
4847
|
return visitor.visitText(this);
|
|
4884
4848
|
}
|
|
4885
|
-
}
|
|
4849
|
+
};
|
|
4886
4850
|
class BoundText {
|
|
4887
4851
|
value;
|
|
4888
4852
|
sourceSpan;
|
|
@@ -4983,7 +4947,7 @@ class BoundEvent {
|
|
|
4983
4947
|
return visitor.visitBoundEvent(this);
|
|
4984
4948
|
}
|
|
4985
4949
|
}
|
|
4986
|
-
|
|
4950
|
+
let Element$1 = class Element {
|
|
4987
4951
|
name;
|
|
4988
4952
|
attributes;
|
|
4989
4953
|
inputs;
|
|
@@ -5009,7 +4973,7 @@ class Element$1 {
|
|
|
5009
4973
|
visit(visitor) {
|
|
5010
4974
|
return visitor.visitElement(this);
|
|
5011
4975
|
}
|
|
5012
|
-
}
|
|
4976
|
+
};
|
|
5013
4977
|
class DeferredTrigger {
|
|
5014
4978
|
nameSpan;
|
|
5015
4979
|
sourceSpan;
|
|
@@ -5280,7 +5244,7 @@ class UnknownBlock {
|
|
|
5280
5244
|
return visitor.visitUnknownBlock(this);
|
|
5281
5245
|
}
|
|
5282
5246
|
}
|
|
5283
|
-
|
|
5247
|
+
let LetDeclaration$1 = class LetDeclaration {
|
|
5284
5248
|
name;
|
|
5285
5249
|
value;
|
|
5286
5250
|
sourceSpan;
|
|
@@ -5296,7 +5260,7 @@ class LetDeclaration$1 {
|
|
|
5296
5260
|
visit(visitor) {
|
|
5297
5261
|
return visitor.visitLetDeclaration(this);
|
|
5298
5262
|
}
|
|
5299
|
-
}
|
|
5263
|
+
};
|
|
5300
5264
|
class Template {
|
|
5301
5265
|
tagName;
|
|
5302
5266
|
attributes;
|
|
@@ -5385,7 +5349,7 @@ class Reference {
|
|
|
5385
5349
|
return visitor.visitReference(this);
|
|
5386
5350
|
}
|
|
5387
5351
|
}
|
|
5388
|
-
|
|
5352
|
+
let Icu$1 = class Icu {
|
|
5389
5353
|
vars;
|
|
5390
5354
|
placeholders;
|
|
5391
5355
|
sourceSpan;
|
|
@@ -5399,8 +5363,8 @@ class Icu$1 {
|
|
|
5399
5363
|
visit(visitor) {
|
|
5400
5364
|
return visitor.visitIcu(this);
|
|
5401
5365
|
}
|
|
5402
|
-
}
|
|
5403
|
-
|
|
5366
|
+
};
|
|
5367
|
+
let RecursiveVisitor$1 = class RecursiveVisitor {
|
|
5404
5368
|
visitElement(element) {
|
|
5405
5369
|
visitAll$1(this, element.attributes);
|
|
5406
5370
|
visitAll$1(this, element.inputs);
|
|
@@ -5464,7 +5428,7 @@ class RecursiveVisitor$1 {
|
|
|
5464
5428
|
visitDeferredTrigger(trigger) { }
|
|
5465
5429
|
visitUnknownBlock(block) { }
|
|
5466
5430
|
visitLetDeclaration(decl) { }
|
|
5467
|
-
}
|
|
5431
|
+
};
|
|
5468
5432
|
function visitAll$1(visitor, nodes) {
|
|
5469
5433
|
const result = [];
|
|
5470
5434
|
if (visitor.visit) {
|
|
@@ -5528,7 +5492,7 @@ class Message {
|
|
|
5528
5492
|
}
|
|
5529
5493
|
}
|
|
5530
5494
|
}
|
|
5531
|
-
|
|
5495
|
+
let Text$2 = class Text {
|
|
5532
5496
|
value;
|
|
5533
5497
|
sourceSpan;
|
|
5534
5498
|
constructor(value, sourceSpan) {
|
|
@@ -5538,7 +5502,7 @@ class Text$2 {
|
|
|
5538
5502
|
visit(visitor, context) {
|
|
5539
5503
|
return visitor.visitText(this, context);
|
|
5540
5504
|
}
|
|
5541
|
-
}
|
|
5505
|
+
};
|
|
5542
5506
|
// TODO(vicb): do we really need this node (vs an array) ?
|
|
5543
5507
|
class Container {
|
|
5544
5508
|
children;
|
|
@@ -5801,7 +5765,7 @@ class SimplePlaceholderMapper extends RecurseVisitor {
|
|
|
5801
5765
|
}
|
|
5802
5766
|
}
|
|
5803
5767
|
|
|
5804
|
-
|
|
5768
|
+
let _Visitor$2 = class _Visitor {
|
|
5805
5769
|
visitTag(tag) {
|
|
5806
5770
|
const strAttrs = this._serializeAttributes(tag.attrs);
|
|
5807
5771
|
if (tag.children.length == 0) {
|
|
@@ -5825,7 +5789,7 @@ class _Visitor$2 {
|
|
|
5825
5789
|
visitDoctype(doctype) {
|
|
5826
5790
|
return `<!DOCTYPE ${doctype.rootTag} [\n${doctype.dtd}\n]>`;
|
|
5827
5791
|
}
|
|
5828
|
-
}
|
|
5792
|
+
};
|
|
5829
5793
|
const _visitor = new _Visitor$2();
|
|
5830
5794
|
function serialize$1(nodes) {
|
|
5831
5795
|
return nodes.map((node) => node.visit(_visitor)).join('');
|
|
@@ -5867,7 +5831,7 @@ class Tag {
|
|
|
5867
5831
|
return visitor.visitTag(this);
|
|
5868
5832
|
}
|
|
5869
5833
|
}
|
|
5870
|
-
|
|
5834
|
+
let Text$1 = class Text {
|
|
5871
5835
|
value;
|
|
5872
5836
|
constructor(unescapedValue) {
|
|
5873
5837
|
this.value = escapeXml(unescapedValue);
|
|
@@ -5875,7 +5839,7 @@ class Text$1 {
|
|
|
5875
5839
|
visit(visitor) {
|
|
5876
5840
|
return visitor.visitText(this);
|
|
5877
5841
|
}
|
|
5878
|
-
}
|
|
5842
|
+
};
|
|
5879
5843
|
class CR extends Text$1 {
|
|
5880
5844
|
constructor(ws = 0) {
|
|
5881
5845
|
super(`\n${new Array(ws + 1).join(' ')}`);
|
|
@@ -5967,7 +5931,7 @@ class Xmb extends Serializer {
|
|
|
5967
5931
|
return new SimplePlaceholderMapper(message, toPublicName);
|
|
5968
5932
|
}
|
|
5969
5933
|
}
|
|
5970
|
-
|
|
5934
|
+
let _Visitor$1 = class _Visitor {
|
|
5971
5935
|
visitText(text, context) {
|
|
5972
5936
|
return [new Text$1(text.value)];
|
|
5973
5937
|
}
|
|
@@ -6041,7 +6005,7 @@ class _Visitor$1 {
|
|
|
6041
6005
|
serialize(nodes) {
|
|
6042
6006
|
return [].concat(...nodes.map((node) => node.visit(this)));
|
|
6043
6007
|
}
|
|
6044
|
-
}
|
|
6008
|
+
};
|
|
6045
6009
|
function digest(message) {
|
|
6046
6010
|
return decimalDigest(message);
|
|
6047
6011
|
}
|
|
@@ -6085,13 +6049,6 @@ function hasI18nAttrs(element) {
|
|
|
6085
6049
|
function icuFromI18nMessage(message) {
|
|
6086
6050
|
return message.nodes[0];
|
|
6087
6051
|
}
|
|
6088
|
-
function placeholdersToParams(placeholders) {
|
|
6089
|
-
const params = {};
|
|
6090
|
-
placeholders.forEach((values, key) => {
|
|
6091
|
-
params[key] = literal(values.length > 1 ? `[${values.join('|')}]` : values[0]);
|
|
6092
|
-
});
|
|
6093
|
-
return params;
|
|
6094
|
-
}
|
|
6095
6052
|
/**
|
|
6096
6053
|
* Format the placeholder names in a map of placeholders to expressions.
|
|
6097
6054
|
*
|
|
@@ -6169,9 +6126,6 @@ function temporaryAllocator(pushStatement, name) {
|
|
|
6169
6126
|
return temp;
|
|
6170
6127
|
};
|
|
6171
6128
|
}
|
|
6172
|
-
function invalid(arg) {
|
|
6173
|
-
throw new Error(`Invalid state: Visitor ${this.constructor.name} doesn't handle ${arg.constructor.name}`);
|
|
6174
|
-
}
|
|
6175
6129
|
function asLiteral(value) {
|
|
6176
6130
|
if (Array.isArray(value)) {
|
|
6177
6131
|
return literalArr(value.map(asLiteral));
|
|
@@ -6539,8 +6493,6 @@ const $LBRACE = 123;
|
|
|
6539
6493
|
const $BAR = 124;
|
|
6540
6494
|
const $RBRACE = 125;
|
|
6541
6495
|
const $NBSP = 160;
|
|
6542
|
-
const $PIPE = 124;
|
|
6543
|
-
const $TILDA = 126;
|
|
6544
6496
|
const $AT = 64;
|
|
6545
6497
|
const $BT = 96;
|
|
6546
6498
|
function isWhitespace(code) {
|
|
@@ -7253,9 +7205,7 @@ function compileNgModule(meta) {
|
|
|
7253
7205
|
statements.push(setNgModuleScopeCall);
|
|
7254
7206
|
}
|
|
7255
7207
|
}
|
|
7256
|
-
else
|
|
7257
|
-
// Selector scope emit was not requested, so skip it.
|
|
7258
|
-
}
|
|
7208
|
+
else ;
|
|
7259
7209
|
if (meta.schemas !== null && meta.schemas.length > 0) {
|
|
7260
7210
|
definitionMap.set('schemas', literalArr(meta.schemas.map((ref) => ref.value)));
|
|
7261
7211
|
}
|
|
@@ -10445,9 +10395,7 @@ function transformExpressionsInExpression(expr, transform, flags) {
|
|
|
10445
10395
|
expr.body = transformExpressionsInExpression(expr.body, transform, flags);
|
|
10446
10396
|
}
|
|
10447
10397
|
}
|
|
10448
|
-
else if (expr instanceof WrappedNodeExpr)
|
|
10449
|
-
// TODO: Do we need to transform any TS nodes nested inside of this expression?
|
|
10450
|
-
}
|
|
10398
|
+
else if (expr instanceof WrappedNodeExpr) ;
|
|
10451
10399
|
else if (expr instanceof TemplateLiteralExpr) {
|
|
10452
10400
|
for (let i = 0; i < expr.expressions.length; i++) {
|
|
10453
10401
|
expr.expressions[i] = transformExpressionsInExpression(expr.expressions[i], transform, flags);
|
|
@@ -10455,9 +10403,7 @@ function transformExpressionsInExpression(expr, transform, flags) {
|
|
|
10455
10403
|
}
|
|
10456
10404
|
else if (expr instanceof ReadVarExpr ||
|
|
10457
10405
|
expr instanceof ExternalExpr ||
|
|
10458
|
-
expr instanceof LiteralExpr)
|
|
10459
|
-
// No action for these types.
|
|
10460
|
-
}
|
|
10406
|
+
expr instanceof LiteralExpr) ;
|
|
10461
10407
|
else {
|
|
10462
10408
|
throw new Error(`Unhandled expression kind: ${expr.constructor.name}`);
|
|
10463
10409
|
}
|
|
@@ -12355,11 +12301,6 @@ function deduplicateTextBindings(job) {
|
|
|
12355
12301
|
OpList.remove(op);
|
|
12356
12302
|
}
|
|
12357
12303
|
}
|
|
12358
|
-
else {
|
|
12359
|
-
// TODO: Determine the correct behavior. It would probably make sense to merge multiple
|
|
12360
|
-
// style and class attributes. Alternatively we could just throw an error, as HTML
|
|
12361
|
-
// doesn't permit duplicate attributes.
|
|
12362
|
-
}
|
|
12363
12304
|
}
|
|
12364
12305
|
seenForElement.add(op.name);
|
|
12365
12306
|
seen.set(op.target, seenForElement);
|
|
@@ -12490,9 +12431,9 @@ function resolveDeferTargetNames(job) {
|
|
|
12490
12431
|
}
|
|
12491
12432
|
}
|
|
12492
12433
|
}
|
|
12493
|
-
|
|
12434
|
+
let Scope$1 = class Scope {
|
|
12494
12435
|
targets = new Map();
|
|
12495
|
-
}
|
|
12436
|
+
};
|
|
12496
12437
|
|
|
12497
12438
|
const REPLACEMENTS = new Map([
|
|
12498
12439
|
[OpKind.ElementEnd, [OpKind.ElementStart, OpKind.Element]],
|
|
@@ -12548,14 +12489,6 @@ function expandSafeReads(job) {
|
|
|
12548
12489
|
}
|
|
12549
12490
|
}
|
|
12550
12491
|
}
|
|
12551
|
-
// A lookup set of all the expression kinds that require a temporary variable to be generated.
|
|
12552
|
-
const requiresTemporary = [
|
|
12553
|
-
InvokeFunctionExpr,
|
|
12554
|
-
LiteralArrayExpr,
|
|
12555
|
-
LiteralMapExpr,
|
|
12556
|
-
SafeInvokeFunctionExpr,
|
|
12557
|
-
PipeBindingExpr,
|
|
12558
|
-
].map((e) => e.constructor.name);
|
|
12559
12492
|
function needsTemporaryInSafeAccess(e) {
|
|
12560
12493
|
// TODO: We probably want to use an expression visitor to recursively visit all descendents.
|
|
12561
12494
|
// However, that would potentially do a lot of extra work (because it cannot short circuit), so we
|
|
@@ -12827,7 +12760,7 @@ function createI18nMessage(job, context, messagePlaceholder) {
|
|
|
12827
12760
|
let formattedParams = formatParams(context.params);
|
|
12828
12761
|
const formattedPostprocessingParams = formatParams(context.postprocessingParams);
|
|
12829
12762
|
let needsPostprocessing = [...context.params.values()].some((v) => v.length > 1);
|
|
12830
|
-
return createI18nMessageOp(job.allocateXrefId(), context.xref, context.i18nBlock, context.message,
|
|
12763
|
+
return createI18nMessageOp(job.allocateXrefId(), context.xref, context.i18nBlock, context.message, null, formattedParams, formattedPostprocessingParams, needsPostprocessing);
|
|
12831
12764
|
}
|
|
12832
12765
|
/**
|
|
12833
12766
|
* Formats an ICU placeholder into a single string with expression placeholders.
|
|
@@ -13278,9 +13211,6 @@ function parseProperty(name) {
|
|
|
13278
13211
|
return { property, suffix };
|
|
13279
13212
|
}
|
|
13280
13213
|
|
|
13281
|
-
function mapEntry(key, value) {
|
|
13282
|
-
return { key, value, quoted: false };
|
|
13283
|
-
}
|
|
13284
13214
|
function mapLiteral(obj, quoted = false) {
|
|
13285
13215
|
return literalMap(Object.keys(obj).map((key) => ({
|
|
13286
13216
|
key,
|
|
@@ -16900,7 +16830,7 @@ class ParseTreeResult {
|
|
|
16900
16830
|
this.errors = errors;
|
|
16901
16831
|
}
|
|
16902
16832
|
}
|
|
16903
|
-
|
|
16833
|
+
let Parser$1 = class Parser {
|
|
16904
16834
|
getTagDefinition;
|
|
16905
16835
|
constructor(getTagDefinition) {
|
|
16906
16836
|
this.getTagDefinition = getTagDefinition;
|
|
@@ -16911,7 +16841,7 @@ class Parser$1 {
|
|
|
16911
16841
|
parser.build();
|
|
16912
16842
|
return new ParseTreeResult(parser.rootNodes, tokenizeResult.errors.concat(parser.errors));
|
|
16913
16843
|
}
|
|
16914
|
-
}
|
|
16844
|
+
};
|
|
16915
16845
|
class _TreeBuilder {
|
|
16916
16846
|
tokens;
|
|
16917
16847
|
getTagDefinition;
|
|
@@ -17592,9 +17522,6 @@ function transformTextToken({ type, parts, sourceSpan }, transform) {
|
|
|
17592
17522
|
function processWhitespace(text) {
|
|
17593
17523
|
return replaceNgsp(text).replace(WS_REPLACE_REGEXP, ' ');
|
|
17594
17524
|
}
|
|
17595
|
-
function removeWhitespaces(htmlAstWithErrors, preserveSignificantWhitespace) {
|
|
17596
|
-
return new ParseTreeResult(visitAllWithSiblings(new WhitespaceVisitor(preserveSignificantWhitespace), htmlAstWithErrors.rootNodes), htmlAstWithErrors.errors);
|
|
17597
|
-
}
|
|
17598
17525
|
function visitAllWithSiblings(visitor, nodes) {
|
|
17599
17526
|
const result = [];
|
|
17600
17527
|
nodes.forEach((ast, i) => {
|
|
@@ -17942,9 +17869,7 @@ class _Scanner {
|
|
|
17942
17869
|
let hasSeparators = false;
|
|
17943
17870
|
this.advance(); // Skip initial digit.
|
|
17944
17871
|
while (true) {
|
|
17945
|
-
if (isDigit(this.peek))
|
|
17946
|
-
// Do nothing.
|
|
17947
|
-
}
|
|
17872
|
+
if (isDigit(this.peek)) ;
|
|
17948
17873
|
else if (this.peek === $_) {
|
|
17949
17874
|
// Separators are only valid when they're surrounded by digits. E.g. `1_0_1` is
|
|
17950
17875
|
// valid while `_101` and `101_` are not. The separator can't be next to the decimal
|
|
@@ -18907,7 +18832,7 @@ class _ParseAST {
|
|
|
18907
18832
|
return new LiteralPrimitive(this.span(start), this.sourceSpan(start), value);
|
|
18908
18833
|
}
|
|
18909
18834
|
else if (this.next.isTemplateLiteralEnd()) {
|
|
18910
|
-
return this.parseNoInterpolationTemplateLiteral(
|
|
18835
|
+
return this.parseNoInterpolationTemplateLiteral();
|
|
18911
18836
|
}
|
|
18912
18837
|
else if (this.next.isTemplateLiteralPart()) {
|
|
18913
18838
|
return this.parseTemplateLiteral();
|
|
@@ -19237,8 +19162,9 @@ class _ParseAST {
|
|
|
19237
19162
|
const sourceSpan = new AbsoluteSourceSpan(spanStart, this.currentAbsoluteOffset);
|
|
19238
19163
|
return new VariableBinding(sourceSpan, key, value);
|
|
19239
19164
|
}
|
|
19240
|
-
parseNoInterpolationTemplateLiteral(
|
|
19165
|
+
parseNoInterpolationTemplateLiteral() {
|
|
19241
19166
|
const text = this.next.strValue;
|
|
19167
|
+
const start = this.inputIndex;
|
|
19242
19168
|
this.advance();
|
|
19243
19169
|
const span = this.span(start);
|
|
19244
19170
|
const sourceSpan = this.sourceSpan(start);
|
|
@@ -19251,8 +19177,9 @@ class _ParseAST {
|
|
|
19251
19177
|
while (this.next !== EOF) {
|
|
19252
19178
|
const token = this.next;
|
|
19253
19179
|
if (token.isTemplateLiteralPart() || token.isTemplateLiteralEnd()) {
|
|
19254
|
-
|
|
19180
|
+
const partStart = this.inputIndex;
|
|
19255
19181
|
this.advance();
|
|
19182
|
+
elements.push(new TemplateLiteralElement(this.span(partStart), this.sourceSpan(partStart), token.strValue));
|
|
19256
19183
|
if (token.isTemplateLiteralEnd()) {
|
|
19257
19184
|
break;
|
|
19258
19185
|
}
|
|
@@ -23121,31 +23048,6 @@ function reify(job) {
|
|
|
23121
23048
|
reifyUpdateOperations(unit, unit.update);
|
|
23122
23049
|
}
|
|
23123
23050
|
}
|
|
23124
|
-
/**
|
|
23125
|
-
* This function can be used a sanity check -- it walks every expression in the const pool, and
|
|
23126
|
-
* every expression reachable from an op, and makes sure that there are no IR expressions
|
|
23127
|
-
* left. This is nice to use for debugging mysterious failures where an IR expression cannot be
|
|
23128
|
-
* output from the output AST code.
|
|
23129
|
-
*/
|
|
23130
|
-
function ensureNoIrForDebug(job) {
|
|
23131
|
-
for (const stmt of job.pool.statements) {
|
|
23132
|
-
transformExpressionsInStatement(stmt, (expr) => {
|
|
23133
|
-
if (isIrExpression(expr)) {
|
|
23134
|
-
throw new Error(`AssertionError: IR expression found during reify: ${ExpressionKind[expr.kind]}`);
|
|
23135
|
-
}
|
|
23136
|
-
return expr;
|
|
23137
|
-
}, VisitorContextFlag.None);
|
|
23138
|
-
}
|
|
23139
|
-
for (const unit of job.units) {
|
|
23140
|
-
for (const op of unit.ops()) {
|
|
23141
|
-
visitExpressionsInOp(op, (expr) => {
|
|
23142
|
-
if (isIrExpression(expr)) {
|
|
23143
|
-
throw new Error(`AssertionError: IR expression found during reify: ${ExpressionKind[expr.kind]}`);
|
|
23144
|
-
}
|
|
23145
|
-
});
|
|
23146
|
-
}
|
|
23147
|
-
}
|
|
23148
|
-
}
|
|
23149
23051
|
function reifyCreateOperations(unit, ops) {
|
|
23150
23052
|
for (const op of ops) {
|
|
23151
23053
|
transformExpressionsInOp(op, reifyIrExpression, VisitorContextFlag.None);
|
|
@@ -26206,10 +26108,10 @@ function convertAst(ast, job, baseSourceSpan) {
|
|
|
26206
26108
|
function convertAstWithInterpolation(job, value, i18nMeta, sourceSpan) {
|
|
26207
26109
|
let expression;
|
|
26208
26110
|
if (value instanceof Interpolation$1) {
|
|
26209
|
-
expression = new Interpolation(value.strings, value.expressions.map((e) => convertAst(e, job,
|
|
26111
|
+
expression = new Interpolation(value.strings, value.expressions.map((e) => convertAst(e, job, null)), Object.keys(asMessage(i18nMeta)?.placeholders ?? {}));
|
|
26210
26112
|
}
|
|
26211
26113
|
else if (value instanceof AST) {
|
|
26212
|
-
expression = convertAst(value, job,
|
|
26114
|
+
expression = convertAst(value, job, null);
|
|
26213
26115
|
}
|
|
26214
26116
|
else {
|
|
26215
26117
|
expression = literal(value);
|
|
@@ -26587,12 +26489,6 @@ function ingestControlFlowInsertionPoint(unit, xref, node) {
|
|
|
26587
26489
|
* internal tooling as well.
|
|
26588
26490
|
*/
|
|
26589
26491
|
let ENABLE_TEMPLATE_SOURCE_LOCATIONS = false;
|
|
26590
|
-
/**
|
|
26591
|
-
* Utility function to enable source locations. Intended to be used **only** inside unit tests.
|
|
26592
|
-
*/
|
|
26593
|
-
function setEnableTemplateSourceLocations(value) {
|
|
26594
|
-
ENABLE_TEMPLATE_SOURCE_LOCATIONS = value;
|
|
26595
|
-
}
|
|
26596
26492
|
/** Gets whether template source locations are enabled. */
|
|
26597
26493
|
function getTemplateSourceLocationsEnabled() {
|
|
26598
26494
|
return ENABLE_TEMPLATE_SOURCE_LOCATIONS;
|
|
@@ -27189,15 +27085,6 @@ class BindingParser {
|
|
|
27189
27085
|
return false;
|
|
27190
27086
|
}
|
|
27191
27087
|
}
|
|
27192
|
-
class PipeCollector extends RecursiveAstVisitor {
|
|
27193
|
-
pipes = new Map();
|
|
27194
|
-
visitPipe(ast, context) {
|
|
27195
|
-
this.pipes.set(ast.name, ast);
|
|
27196
|
-
ast.exp.visit(this);
|
|
27197
|
-
this.visitAll(ast.args, context);
|
|
27198
|
-
return null;
|
|
27199
|
-
}
|
|
27200
|
-
}
|
|
27201
27088
|
function isAnimationLabel(name) {
|
|
27202
27089
|
return name[0] == '@';
|
|
27203
27090
|
}
|
|
@@ -29534,23 +29421,35 @@ class R3TargetBinder {
|
|
|
29534
29421
|
*/
|
|
29535
29422
|
bind(target) {
|
|
29536
29423
|
if (!target.template) {
|
|
29537
|
-
|
|
29538
|
-
|
|
29539
|
-
|
|
29540
|
-
|
|
29541
|
-
|
|
29542
|
-
const
|
|
29543
|
-
|
|
29544
|
-
const
|
|
29545
|
-
|
|
29546
|
-
|
|
29547
|
-
|
|
29548
|
-
|
|
29549
|
-
|
|
29550
|
-
|
|
29551
|
-
|
|
29552
|
-
|
|
29553
|
-
|
|
29424
|
+
throw new Error('Empty bound targets are not supported');
|
|
29425
|
+
}
|
|
29426
|
+
const directives = new Map();
|
|
29427
|
+
const eagerDirectives = [];
|
|
29428
|
+
const bindings = new Map();
|
|
29429
|
+
const references = new Map();
|
|
29430
|
+
const scopedNodeEntities = new Map();
|
|
29431
|
+
const expressions = new Map();
|
|
29432
|
+
const symbols = new Map();
|
|
29433
|
+
const nestingLevel = new Map();
|
|
29434
|
+
const usedPipes = new Set();
|
|
29435
|
+
const eagerPipes = new Set();
|
|
29436
|
+
const deferBlocks = [];
|
|
29437
|
+
if (target.template) {
|
|
29438
|
+
// First, parse the template into a `Scope` structure. This operation captures the syntactic
|
|
29439
|
+
// scopes in the template and makes them available for later use.
|
|
29440
|
+
const scope = Scope.apply(target.template);
|
|
29441
|
+
// Use the `Scope` to extract the entities present at every level of the template.
|
|
29442
|
+
extractScopedNodeEntities(scope, scopedNodeEntities);
|
|
29443
|
+
// Next, perform directive matching on the template using the `DirectiveBinder`. This returns:
|
|
29444
|
+
// - directives: Map of nodes (elements & ng-templates) to the directives on them.
|
|
29445
|
+
// - bindings: Map of inputs, outputs, and attributes to the directive/element that claims
|
|
29446
|
+
// them. TODO(alxhub): handle multiple directives claiming an input/output/etc.
|
|
29447
|
+
// - references: Map of #references to their targets.
|
|
29448
|
+
DirectiveBinder.apply(target.template, this.directiveMatcher, directives, eagerDirectives, bindings, references);
|
|
29449
|
+
// Finally, run the TemplateBinder to bind references, variables, and other entities within the
|
|
29450
|
+
// template. This extracts all the metadata that doesn't depend on directive matching.
|
|
29451
|
+
TemplateBinder.applyWithScope(target.template, scope, expressions, symbols, nestingLevel, usedPipes, eagerPipes, deferBlocks);
|
|
29452
|
+
}
|
|
29554
29453
|
return new R3BoundTarget(target, directives, eagerDirectives, bindings, references, expressions, symbols, nestingLevel, scopedNodeEntities, usedPipes, eagerPipes, deferBlocks);
|
|
29555
29454
|
}
|
|
29556
29455
|
}
|
|
@@ -29777,14 +29676,9 @@ class DirectiveBinder {
|
|
|
29777
29676
|
* map which resolves #references (`Reference`s) within the template to the named directive or
|
|
29778
29677
|
* template node.
|
|
29779
29678
|
*/
|
|
29780
|
-
static apply(template, selectorMatcher) {
|
|
29781
|
-
const directives = new Map();
|
|
29782
|
-
const bindings = new Map();
|
|
29783
|
-
const references = new Map();
|
|
29784
|
-
const eagerDirectives = [];
|
|
29679
|
+
static apply(template, selectorMatcher, directives, eagerDirectives, bindings, references) {
|
|
29785
29680
|
const matcher = new DirectiveBinder(selectorMatcher, directives, eagerDirectives, bindings, references);
|
|
29786
29681
|
matcher.ingest(template);
|
|
29787
|
-
return { directives, eagerDirectives, bindings, references };
|
|
29788
29682
|
}
|
|
29789
29683
|
ingest(template) {
|
|
29790
29684
|
template.forEach((node) => node.visit(this));
|
|
@@ -29969,18 +29863,11 @@ class TemplateBinder extends RecursiveAstVisitor {
|
|
|
29969
29863
|
* nesting level (how many levels deep within the template structure the `Template` is), starting
|
|
29970
29864
|
* at 1.
|
|
29971
29865
|
*/
|
|
29972
|
-
static applyWithScope(nodes, scope) {
|
|
29973
|
-
const expressions = new Map();
|
|
29974
|
-
const symbols = new Map();
|
|
29975
|
-
const nestingLevel = new Map();
|
|
29976
|
-
const usedPipes = new Set();
|
|
29977
|
-
const eagerPipes = new Set();
|
|
29866
|
+
static applyWithScope(nodes, scope, expressions, symbols, nestingLevel, usedPipes, eagerPipes, deferBlocks) {
|
|
29978
29867
|
const template = nodes instanceof Template ? nodes : null;
|
|
29979
|
-
const deferBlocks = [];
|
|
29980
29868
|
// The top-level template has nesting level 0.
|
|
29981
29869
|
const binder = new TemplateBinder(expressions, symbols, usedPipes, eagerPipes, deferBlocks, nestingLevel, scope, template, 0);
|
|
29982
29870
|
binder.ingest(nodes);
|
|
29983
|
-
return { expressions, symbols, nestingLevel, usedPipes, eagerPipes, deferBlocks };
|
|
29984
29871
|
}
|
|
29985
29872
|
ingest(nodeOrNodes) {
|
|
29986
29873
|
if (nodeOrNodes instanceof Template) {
|
|
@@ -30330,7 +30217,7 @@ class R3BoundTarget {
|
|
|
30330
30217
|
return this.referenceTargetToElement(target.node);
|
|
30331
30218
|
}
|
|
30332
30219
|
}
|
|
30333
|
-
function extractScopedNodeEntities(rootScope) {
|
|
30220
|
+
function extractScopedNodeEntities(rootScope, templateEntities) {
|
|
30334
30221
|
const entityMap = new Map();
|
|
30335
30222
|
function extractScopeEntities(scope) {
|
|
30336
30223
|
if (entityMap.has(scope.rootNode)) {
|
|
@@ -30355,11 +30242,9 @@ function extractScopedNodeEntities(rootScope) {
|
|
|
30355
30242
|
}
|
|
30356
30243
|
extractScopeEntities(scope);
|
|
30357
30244
|
}
|
|
30358
|
-
const templateEntities = new Map();
|
|
30359
30245
|
for (const [template, entities] of entityMap) {
|
|
30360
30246
|
templateEntities.set(template, new Set(entities.values()));
|
|
30361
30247
|
}
|
|
30362
|
-
return templateEntities;
|
|
30363
30248
|
}
|
|
30364
30249
|
|
|
30365
30250
|
/**
|
|
@@ -30382,10 +30267,8 @@ class CompilerFacadeImpl {
|
|
|
30382
30267
|
}
|
|
30383
30268
|
compilePipe(angularCoreEnv, sourceMapUrl, facade) {
|
|
30384
30269
|
const metadata = {
|
|
30385
|
-
name: facade.name,
|
|
30386
30270
|
type: wrapReference(facade.type),
|
|
30387
30271
|
typeArgumentCount: 0,
|
|
30388
|
-
deps: null,
|
|
30389
30272
|
pipeName: facade.pipeName,
|
|
30390
30273
|
pure: facade.pure,
|
|
30391
30274
|
isStandalone: facade.isStandalone,
|
|
@@ -30430,7 +30313,6 @@ class CompilerFacadeImpl {
|
|
|
30430
30313
|
}
|
|
30431
30314
|
compileInjector(angularCoreEnv, sourceMapUrl, facade) {
|
|
30432
30315
|
const meta = {
|
|
30433
|
-
name: facade.name,
|
|
30434
30316
|
type: wrapReference(facade.type),
|
|
30435
30317
|
providers: facade.providers && facade.providers.length > 0
|
|
30436
30318
|
? new WrappedNodeExpr(facade.providers)
|
|
@@ -31034,7 +30916,7 @@ function publishFacade(global) {
|
|
|
31034
30916
|
* @description
|
|
31035
30917
|
* Entry point for all public APIs of the compiler package.
|
|
31036
30918
|
*/
|
|
31037
|
-
const VERSION = new Version('19.2.
|
|
30919
|
+
const VERSION = new Version('19.2.3');
|
|
31038
30920
|
|
|
31039
30921
|
class CompilerConfig {
|
|
31040
30922
|
defaultEncapsulation;
|
|
@@ -31636,7 +31518,7 @@ class Xliff extends Serializer {
|
|
|
31636
31518
|
return digest$1(message);
|
|
31637
31519
|
}
|
|
31638
31520
|
}
|
|
31639
|
-
|
|
31521
|
+
let _WriteVisitor$1 = class _WriteVisitor {
|
|
31640
31522
|
visitText(text, context) {
|
|
31641
31523
|
return [new Text$1(text.value)];
|
|
31642
31524
|
}
|
|
@@ -31695,7 +31577,7 @@ class _WriteVisitor$1 {
|
|
|
31695
31577
|
serialize(nodes) {
|
|
31696
31578
|
return [].concat(...nodes.map((node) => node.visit(this)));
|
|
31697
31579
|
}
|
|
31698
|
-
}
|
|
31580
|
+
};
|
|
31699
31581
|
// TODO(vicb): add error management (structure)
|
|
31700
31582
|
// Extract messages as xml nodes from the xliff file
|
|
31701
31583
|
class XliffParser {
|
|
@@ -31778,7 +31660,7 @@ class XliffParser {
|
|
|
31778
31660
|
}
|
|
31779
31661
|
}
|
|
31780
31662
|
// Convert ml nodes (xliff syntax) to i18n nodes
|
|
31781
|
-
|
|
31663
|
+
let XmlToI18n$2 = class XmlToI18n {
|
|
31782
31664
|
// using non-null assertion because it's re(set) by convert()
|
|
31783
31665
|
_errors;
|
|
31784
31666
|
convert(message, url) {
|
|
@@ -31831,7 +31713,7 @@ class XmlToI18n$2 {
|
|
|
31831
31713
|
_addError(node, message) {
|
|
31832
31714
|
this._errors.push(new I18nError(node.sourceSpan, message));
|
|
31833
31715
|
}
|
|
31834
|
-
}
|
|
31716
|
+
};
|
|
31835
31717
|
function getCtypeForTag(tag) {
|
|
31836
31718
|
switch (tag.toLowerCase()) {
|
|
31837
31719
|
case 'br':
|
|
@@ -32093,7 +31975,7 @@ class Xliff2Parser {
|
|
|
32093
31975
|
}
|
|
32094
31976
|
}
|
|
32095
31977
|
// Convert ml nodes (xliff syntax) to i18n nodes
|
|
32096
|
-
|
|
31978
|
+
let XmlToI18n$1 = class XmlToI18n {
|
|
32097
31979
|
// using non-null assertion because re(set) by convert()
|
|
32098
31980
|
_errors;
|
|
32099
31981
|
convert(message, url) {
|
|
@@ -32163,7 +32045,7 @@ class XmlToI18n$1 {
|
|
|
32163
32045
|
_addError(node, message) {
|
|
32164
32046
|
this._errors.push(new I18nError(node.sourceSpan, message));
|
|
32165
32047
|
}
|
|
32166
|
-
}
|
|
32048
|
+
};
|
|
32167
32049
|
function getTypeForTag(tag) {
|
|
32168
32050
|
switch (tag.toLowerCase()) {
|
|
32169
32051
|
case 'br':
|
|
@@ -32902,7 +32784,7 @@ const MINIMUM_PARTIAL_LINKER_DEFER_SUPPORT_VERSION = '18.0.0';
|
|
|
32902
32784
|
function compileDeclareClassMetadata(metadata) {
|
|
32903
32785
|
const definitionMap = new DefinitionMap();
|
|
32904
32786
|
definitionMap.set('minVersion', literal(MINIMUM_PARTIAL_LINKER_VERSION$5));
|
|
32905
|
-
definitionMap.set('version', literal('19.2.
|
|
32787
|
+
definitionMap.set('version', literal('19.2.3'));
|
|
32906
32788
|
definitionMap.set('ngImport', importExpr(Identifiers.core));
|
|
32907
32789
|
definitionMap.set('type', metadata.type);
|
|
32908
32790
|
definitionMap.set('decorators', metadata.decorators);
|
|
@@ -32920,7 +32802,7 @@ function compileComponentDeclareClassMetadata(metadata, dependencies) {
|
|
|
32920
32802
|
callbackReturnDefinitionMap.set('ctorParameters', metadata.ctorParameters ?? literal(null));
|
|
32921
32803
|
callbackReturnDefinitionMap.set('propDecorators', metadata.propDecorators ?? literal(null));
|
|
32922
32804
|
definitionMap.set('minVersion', literal(MINIMUM_PARTIAL_LINKER_DEFER_SUPPORT_VERSION));
|
|
32923
|
-
definitionMap.set('version', literal('19.2.
|
|
32805
|
+
definitionMap.set('version', literal('19.2.3'));
|
|
32924
32806
|
definitionMap.set('ngImport', importExpr(Identifiers.core));
|
|
32925
32807
|
definitionMap.set('type', metadata.type);
|
|
32926
32808
|
definitionMap.set('resolveDeferredDeps', compileComponentMetadataAsyncResolver(dependencies));
|
|
@@ -33015,7 +32897,7 @@ function createDirectiveDefinitionMap(meta) {
|
|
|
33015
32897
|
const definitionMap = new DefinitionMap();
|
|
33016
32898
|
const minVersion = getMinimumVersionForPartialOutput(meta);
|
|
33017
32899
|
definitionMap.set('minVersion', literal(minVersion));
|
|
33018
|
-
definitionMap.set('version', literal('19.2.
|
|
32900
|
+
definitionMap.set('version', literal('19.2.3'));
|
|
33019
32901
|
// e.g. `type: MyDirective`
|
|
33020
32902
|
definitionMap.set('type', meta.type.value);
|
|
33021
32903
|
if (meta.isStandalone !== undefined) {
|
|
@@ -33116,9 +32998,6 @@ function compileQuery(query) {
|
|
|
33116
32998
|
// Therefore we explicitly emit the field, and explicitly place it only when it's `false`.
|
|
33117
32999
|
meta.set('emitDistinctChangesOnly', literal(false));
|
|
33118
33000
|
}
|
|
33119
|
-
else {
|
|
33120
|
-
// The linker will assume that an absent `emitDistinctChangesOnly` flag is by default `true`.
|
|
33121
|
-
}
|
|
33122
33001
|
if (query.descendants) {
|
|
33123
33002
|
meta.set('descendants', literal(true));
|
|
33124
33003
|
}
|
|
@@ -33434,7 +33313,7 @@ const MINIMUM_PARTIAL_LINKER_VERSION$4 = '12.0.0';
|
|
|
33434
33313
|
function compileDeclareFactoryFunction(meta) {
|
|
33435
33314
|
const definitionMap = new DefinitionMap();
|
|
33436
33315
|
definitionMap.set('minVersion', literal(MINIMUM_PARTIAL_LINKER_VERSION$4));
|
|
33437
|
-
definitionMap.set('version', literal('19.2.
|
|
33316
|
+
definitionMap.set('version', literal('19.2.3'));
|
|
33438
33317
|
definitionMap.set('ngImport', importExpr(Identifiers.core));
|
|
33439
33318
|
definitionMap.set('type', meta.type.value);
|
|
33440
33319
|
definitionMap.set('deps', compileDependencies(meta.deps));
|
|
@@ -33469,7 +33348,7 @@ function compileDeclareInjectableFromMetadata(meta) {
|
|
|
33469
33348
|
function createInjectableDefinitionMap(meta) {
|
|
33470
33349
|
const definitionMap = new DefinitionMap();
|
|
33471
33350
|
definitionMap.set('minVersion', literal(MINIMUM_PARTIAL_LINKER_VERSION$3));
|
|
33472
|
-
definitionMap.set('version', literal('19.2.
|
|
33351
|
+
definitionMap.set('version', literal('19.2.3'));
|
|
33473
33352
|
definitionMap.set('ngImport', importExpr(Identifiers.core));
|
|
33474
33353
|
definitionMap.set('type', meta.type.value);
|
|
33475
33354
|
// Only generate providedIn property if it has a non-null value
|
|
@@ -33520,7 +33399,7 @@ function compileDeclareInjectorFromMetadata(meta) {
|
|
|
33520
33399
|
function createInjectorDefinitionMap(meta) {
|
|
33521
33400
|
const definitionMap = new DefinitionMap();
|
|
33522
33401
|
definitionMap.set('minVersion', literal(MINIMUM_PARTIAL_LINKER_VERSION$2));
|
|
33523
|
-
definitionMap.set('version', literal('19.2.
|
|
33402
|
+
definitionMap.set('version', literal('19.2.3'));
|
|
33524
33403
|
definitionMap.set('ngImport', importExpr(Identifiers.core));
|
|
33525
33404
|
definitionMap.set('type', meta.type.value);
|
|
33526
33405
|
definitionMap.set('providers', meta.providers);
|
|
@@ -33553,7 +33432,7 @@ function createNgModuleDefinitionMap(meta) {
|
|
|
33553
33432
|
throw new Error('Invalid path! Local compilation mode should not get into the partial compilation path');
|
|
33554
33433
|
}
|
|
33555
33434
|
definitionMap.set('minVersion', literal(MINIMUM_PARTIAL_LINKER_VERSION$1));
|
|
33556
|
-
definitionMap.set('version', literal('19.2.
|
|
33435
|
+
definitionMap.set('version', literal('19.2.3'));
|
|
33557
33436
|
definitionMap.set('ngImport', importExpr(Identifiers.core));
|
|
33558
33437
|
definitionMap.set('type', meta.type.value);
|
|
33559
33438
|
// We only generate the keys in the metadata if the arrays contain values.
|
|
@@ -33604,7 +33483,7 @@ function compileDeclarePipeFromMetadata(meta) {
|
|
|
33604
33483
|
function createPipeDefinitionMap(meta) {
|
|
33605
33484
|
const definitionMap = new DefinitionMap();
|
|
33606
33485
|
definitionMap.set('minVersion', literal(MINIMUM_PARTIAL_LINKER_VERSION));
|
|
33607
|
-
definitionMap.set('version', literal('19.2.
|
|
33486
|
+
definitionMap.set('version', literal('19.2.3'));
|
|
33608
33487
|
definitionMap.set('ngImport', importExpr(Identifiers.core));
|
|
33609
33488
|
// e.g. `type: MyPipe`
|
|
33610
33489
|
definitionMap.set('type', meta.type.value);
|
|
@@ -33621,21 +33500,28 @@ function createPipeDefinitionMap(meta) {
|
|
|
33621
33500
|
}
|
|
33622
33501
|
|
|
33623
33502
|
//////////////////////////////////////
|
|
33624
|
-
//
|
|
33625
|
-
//
|
|
33626
|
-
|
|
33627
|
-
publishFacade(_global);
|
|
33628
|
-
|
|
33503
|
+
// THIS FILE HAS GLOBAL SIDE EFFECT //
|
|
33504
|
+
// (see bottom of file) //
|
|
33505
|
+
//////////////////////////////////////
|
|
33629
33506
|
/**
|
|
33630
33507
|
* @module
|
|
33631
33508
|
* @description
|
|
33632
|
-
* Entry point for all
|
|
33509
|
+
* Entry point for all APIs of the compiler package.
|
|
33510
|
+
*
|
|
33511
|
+
* <div class="callout is-critical">
|
|
33512
|
+
* <header>Unstable APIs</header>
|
|
33513
|
+
* <p>
|
|
33514
|
+
* All compiler apis are currently considered experimental and private!
|
|
33515
|
+
* </p>
|
|
33516
|
+
* <p>
|
|
33517
|
+
* We expect the APIs in this package to keep on changing. Do not rely on them.
|
|
33518
|
+
* </p>
|
|
33519
|
+
* </div>
|
|
33633
33520
|
*/
|
|
33634
33521
|
// This file only reexports content of the `src` folder. Keep it that way.
|
|
33635
|
-
|
|
33636
|
-
//
|
|
33637
|
-
|
|
33638
|
-
// This file is not used to build this module. It is only used during editing
|
|
33522
|
+
// This function call has a global side effects and publishes the compiler into global namespace for
|
|
33523
|
+
// the late binding of the Compiler to the @angular/core for jit compilation.
|
|
33524
|
+
publishFacade(_global);
|
|
33639
33525
|
|
|
33640
33526
|
export { AST, ASTWithName, ASTWithSource, AbsoluteSourceSpan, ArrayType, ArrowFunctionExpr, Attribute, Binary, BinaryOperator, BinaryOperatorExpr, BindingPipe, BindingType, Block, BlockParameter, BoundElementProperty, BuiltinType, BuiltinTypeName, CUSTOM_ELEMENTS_SCHEMA, Call, Chain, ChangeDetectionStrategy, CommaExpr, Comment, CompilerConfig, Conditional, ConditionalExpr, ConstantPool, CssSelector, DEFAULT_INTERPOLATION_CONFIG, DYNAMIC_TYPE, DeclareFunctionStmt, DeclareVarStmt, DomElementSchemaRegistry, DynamicImportExpr, EOF, Element, ElementSchemaRegistry, EmitterVisitorContext, EmptyExpr$1 as EmptyExpr, Expansion, ExpansionCase, Expression, ExpressionBinding, ExpressionStatement, ExpressionType, ExternalExpr, ExternalReference, FactoryTarget$1 as FactoryTarget, FunctionExpr, HtmlParser, HtmlTagDefinition, I18NHtmlParser, IfStmt, ImplicitReceiver, InstantiateExpr, Interpolation$1 as Interpolation, InterpolationConfig, InvokeFunctionExpr, JSDocComment, JitEvaluator, KeyedRead, KeyedWrite, LeadingComment, LetDeclaration, Lexer, LiteralArray, LiteralArrayExpr, LiteralExpr, LiteralMap, LiteralMapExpr, LiteralPrimitive, LocalizedString, MapType, MessageBundle, NONE_TYPE, NO_ERRORS_SCHEMA, NodeWithI18n, NonNullAssert, NotExpr, ParseError, ParseErrorLevel, ParseLocation, ParseSourceFile, ParseSourceSpan, ParseSpan, ParseTreeResult, ParsedEvent, ParsedEventType, ParsedProperty, ParsedPropertyType, ParsedVariable, Parser, ParserError, PrefixNot, PropertyRead, PropertyWrite, R3BoundTarget, Identifiers as R3Identifiers, R3NgModuleMetadataKind, R3SelectorScopeMode, R3TargetBinder, R3TemplateDependencyKind, ReadKeyExpr, ReadPropExpr, ReadVarExpr, RecursiveAstVisitor, RecursiveVisitor, ResourceLoader, ReturnStatement, STRING_TYPE, SafeCall, SafeKeyedRead, SafePropertyRead, SelectorContext, SelectorListContext, SelectorMatcher, Serializer, SplitInterpolation, Statement, StmtModifier, StringToken, StringTokenKind, TagContentType, TaggedTemplateLiteralExpr, TemplateBindingParseResult, TemplateLiteral, TemplateLiteralElement, TemplateLiteralElementExpr, TemplateLiteralExpr, Text, ThisReceiver, BlockNode as TmplAstBlockNode, BoundAttribute as TmplAstBoundAttribute, BoundDeferredTrigger as TmplAstBoundDeferredTrigger, BoundEvent as TmplAstBoundEvent, BoundText as TmplAstBoundText, Content as TmplAstContent, DeferredBlock as TmplAstDeferredBlock, DeferredBlockError as TmplAstDeferredBlockError, DeferredBlockLoading as TmplAstDeferredBlockLoading, DeferredBlockPlaceholder as TmplAstDeferredBlockPlaceholder, DeferredTrigger as TmplAstDeferredTrigger, Element$1 as TmplAstElement, ForLoopBlock as TmplAstForLoopBlock, ForLoopBlockEmpty as TmplAstForLoopBlockEmpty, HoverDeferredTrigger as TmplAstHoverDeferredTrigger, Icu$1 as TmplAstIcu, IdleDeferredTrigger as TmplAstIdleDeferredTrigger, IfBlock as TmplAstIfBlock, IfBlockBranch as TmplAstIfBlockBranch, ImmediateDeferredTrigger as TmplAstImmediateDeferredTrigger, InteractionDeferredTrigger as TmplAstInteractionDeferredTrigger, LetDeclaration$1 as TmplAstLetDeclaration, NeverDeferredTrigger as TmplAstNeverDeferredTrigger, RecursiveVisitor$1 as TmplAstRecursiveVisitor, Reference as TmplAstReference, SwitchBlock as TmplAstSwitchBlock, SwitchBlockCase as TmplAstSwitchBlockCase, Template as TmplAstTemplate, Text$3 as TmplAstText, TextAttribute as TmplAstTextAttribute, TimerDeferredTrigger as TmplAstTimerDeferredTrigger, UnknownBlock as TmplAstUnknownBlock, Variable as TmplAstVariable, ViewportDeferredTrigger as TmplAstViewportDeferredTrigger, Token, TokenType, TransplantedType, TreeError, Type, TypeModifier, TypeofExpr, TypeofExpression, Unary, UnaryOperator, UnaryOperatorExpr, VERSION, VariableBinding, Version, ViewEncapsulation, WrappedNodeExpr, WriteKeyExpr, WritePropExpr, WriteVarExpr, Xliff, Xliff2, Xmb, XmlParser, Xtb, compileClassDebugInfo, compileClassMetadata, compileComponentClassMetadata, compileComponentDeclareClassMetadata, compileComponentFromMetadata, compileDeclareClassMetadata, compileDeclareComponentFromMetadata, compileDeclareDirectiveFromMetadata, compileDeclareFactoryFunction, compileDeclareInjectableFromMetadata, compileDeclareInjectorFromMetadata, compileDeclareNgModuleFromMetadata, compileDeclarePipeFromMetadata, compileDeferResolverFunction, compileDirectiveFromMetadata, compileFactoryFunction, compileHmrInitializer, compileHmrUpdateCallback, compileInjectable, compileInjector, compileNgModule, compileOpaqueAsyncClassMetadata, compilePipeFromMetadata, computeMsgId, core, createCssSelectorFromNode, createInjectableType, createMayBeForwardRefExpression, devOnlyGuardedExpression, emitDistinctChangesOnlyDefaultValue, encapsulateStyle, findMatchingDirectivesAndPipes, getHtmlTagDefinition, getNsPrefix, getSafePropertyAccessString, identifierName, isNgContainer, isNgContent, isNgTemplate, jsDocComment, leadingComment, literal, literalMap, makeBindingParser, mergeNsAndName, output_ast as outputAst, parseHostBindings, parseTemplate, preserveWhitespacesDefault, publishFacade, r3JitTypeSourceSpan, sanitizeIdentifier, splitNsName, visitAll$1 as tmplAstVisitAll, verifyHostBindings, visitAll };
|
|
33641
33527
|
//# sourceMappingURL=compiler.mjs.map
|