@angular/compiler 19.0.0-next.9 → 19.0.0-rc.0
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 +1715 -751
- package/fesm2022/compiler.mjs.map +1 -1
- package/index.d.ts +52 -8
- package/package.json +2 -2
package/fesm2022/compiler.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Angular v19.0.0-
|
|
2
|
+
* @license Angular v19.0.0-rc.0
|
|
3
3
|
* (c) 2010-2024 Google LLC. https://angular.io/
|
|
4
4
|
* License: MIT
|
|
5
5
|
*/
|
|
@@ -20,23 +20,21 @@ const _SELECTOR_REGEXP = new RegExp('(\\:not\\()|' + // 1: ":not("
|
|
|
20
20
|
* of selecting subsets out of them.
|
|
21
21
|
*/
|
|
22
22
|
class CssSelector {
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
this.notSelectors = [];
|
|
39
|
-
}
|
|
23
|
+
element = null;
|
|
24
|
+
classNames = [];
|
|
25
|
+
/**
|
|
26
|
+
* The selectors are encoded in pairs where:
|
|
27
|
+
* - even locations are attribute names
|
|
28
|
+
* - odd locations are attribute values.
|
|
29
|
+
*
|
|
30
|
+
* Example:
|
|
31
|
+
* Selector: `[key1=value1][key2]` would parse to:
|
|
32
|
+
* ```
|
|
33
|
+
* ['key1', 'value1', 'key2', '']
|
|
34
|
+
* ```
|
|
35
|
+
*/
|
|
36
|
+
attrs = [];
|
|
37
|
+
notSelectors = [];
|
|
40
38
|
static parse(selector) {
|
|
41
39
|
const results = [];
|
|
42
40
|
const _addResult = (res, cssSel) => {
|
|
@@ -184,20 +182,18 @@ class CssSelector {
|
|
|
184
182
|
* are contained in a given CssSelector.
|
|
185
183
|
*/
|
|
186
184
|
class SelectorMatcher {
|
|
187
|
-
constructor() {
|
|
188
|
-
this._elementMap = new Map();
|
|
189
|
-
this._elementPartialMap = new Map();
|
|
190
|
-
this._classMap = new Map();
|
|
191
|
-
this._classPartialMap = new Map();
|
|
192
|
-
this._attrValueMap = new Map();
|
|
193
|
-
this._attrValuePartialMap = new Map();
|
|
194
|
-
this._listContexts = [];
|
|
195
|
-
}
|
|
196
185
|
static createNotMatcher(notSelectors) {
|
|
197
186
|
const notMatcher = new SelectorMatcher();
|
|
198
187
|
notMatcher.addSelectables(notSelectors, null);
|
|
199
188
|
return notMatcher;
|
|
200
189
|
}
|
|
190
|
+
_elementMap = new Map();
|
|
191
|
+
_elementPartialMap = new Map();
|
|
192
|
+
_classMap = new Map();
|
|
193
|
+
_classPartialMap = new Map();
|
|
194
|
+
_attrValueMap = new Map();
|
|
195
|
+
_attrValuePartialMap = new Map();
|
|
196
|
+
_listContexts = [];
|
|
201
197
|
addSelectables(cssSelectors, callbackCtxt) {
|
|
202
198
|
let listContext = null;
|
|
203
199
|
if (cssSelectors.length > 1) {
|
|
@@ -368,13 +364,18 @@ class SelectorMatcher {
|
|
|
368
364
|
}
|
|
369
365
|
}
|
|
370
366
|
class SelectorListContext {
|
|
367
|
+
selectors;
|
|
368
|
+
alreadyMatched = false;
|
|
371
369
|
constructor(selectors) {
|
|
372
370
|
this.selectors = selectors;
|
|
373
|
-
this.alreadyMatched = false;
|
|
374
371
|
}
|
|
375
372
|
}
|
|
376
373
|
// Store context to pass back selector and context when a selector is matched
|
|
377
374
|
class SelectorContext {
|
|
375
|
+
selector;
|
|
376
|
+
cbContext;
|
|
377
|
+
listContext;
|
|
378
|
+
notSelectors;
|
|
378
379
|
constructor(selector, cbContext, listContext) {
|
|
379
380
|
this.selector = selector;
|
|
380
381
|
this.cbContext = cbContext;
|
|
@@ -514,14 +515,14 @@ function computeDigest(message) {
|
|
|
514
515
|
/**
|
|
515
516
|
* Return the message id or compute it using the XLIFF2/XMB/$localize digest.
|
|
516
517
|
*/
|
|
517
|
-
function decimalDigest(message
|
|
518
|
-
return message.id || computeDecimalDigest(message
|
|
518
|
+
function decimalDigest(message) {
|
|
519
|
+
return message.id || computeDecimalDigest(message);
|
|
519
520
|
}
|
|
520
521
|
/**
|
|
521
522
|
* Compute the message id using the XLIFF2/XMB/$localize digest.
|
|
522
523
|
*/
|
|
523
|
-
function computeDecimalDigest(message
|
|
524
|
-
const visitor = new
|
|
524
|
+
function computeDecimalDigest(message) {
|
|
525
|
+
const visitor = new _SerializerIgnoreIcuExpVisitor();
|
|
525
526
|
const parts = message.nodes.map((a) => a.visit(visitor, null));
|
|
526
527
|
return computeMsgId(parts.join(''), message.meaning);
|
|
527
528
|
}
|
|
@@ -569,21 +570,11 @@ function serializeNodes(nodes) {
|
|
|
569
570
|
/**
|
|
570
571
|
* Serialize the i18n ast to something xml-like in order to generate an UID.
|
|
571
572
|
*
|
|
572
|
-
* Ignore the expressions so that message IDs stays identical if only the expression changes.
|
|
573
|
+
* Ignore the ICU expressions so that message IDs stays identical if only the expression changes.
|
|
573
574
|
*
|
|
574
575
|
* @internal
|
|
575
576
|
*/
|
|
576
|
-
class
|
|
577
|
-
constructor(preservePlaceholders) {
|
|
578
|
-
super();
|
|
579
|
-
this.preservePlaceholders = preservePlaceholders;
|
|
580
|
-
}
|
|
581
|
-
visitPlaceholder(ph, context) {
|
|
582
|
-
// Do not take the expression into account when `preservePlaceholders` is disabled.
|
|
583
|
-
return this.preservePlaceholders
|
|
584
|
-
? super.visitPlaceholder(ph, context)
|
|
585
|
-
: `<ph name="${ph.name}"/>`;
|
|
586
|
-
}
|
|
577
|
+
class _SerializerIgnoreIcuExpVisitor extends _SerializerVisitor {
|
|
587
578
|
visitIcu(icu) {
|
|
588
579
|
let strCases = Object.keys(icu.cases).map((k) => `${k} {${icu.cases[k].visit(this)}}`);
|
|
589
580
|
// Do not take the expression into account
|
|
@@ -827,6 +818,7 @@ var TypeModifier;
|
|
|
827
818
|
TypeModifier[TypeModifier["Const"] = 1] = "Const";
|
|
828
819
|
})(TypeModifier || (TypeModifier = {}));
|
|
829
820
|
class Type {
|
|
821
|
+
modifiers;
|
|
830
822
|
constructor(modifiers = TypeModifier.None) {
|
|
831
823
|
this.modifiers = modifiers;
|
|
832
824
|
}
|
|
@@ -846,6 +838,7 @@ var BuiltinTypeName;
|
|
|
846
838
|
BuiltinTypeName[BuiltinTypeName["None"] = 7] = "None";
|
|
847
839
|
})(BuiltinTypeName || (BuiltinTypeName = {}));
|
|
848
840
|
class BuiltinType extends Type {
|
|
841
|
+
name;
|
|
849
842
|
constructor(name, modifiers) {
|
|
850
843
|
super(modifiers);
|
|
851
844
|
this.name = name;
|
|
@@ -855,6 +848,8 @@ class BuiltinType extends Type {
|
|
|
855
848
|
}
|
|
856
849
|
}
|
|
857
850
|
class ExpressionType extends Type {
|
|
851
|
+
value;
|
|
852
|
+
typeParams;
|
|
858
853
|
constructor(value, modifiers, typeParams = null) {
|
|
859
854
|
super(modifiers);
|
|
860
855
|
this.value = value;
|
|
@@ -865,6 +860,7 @@ class ExpressionType extends Type {
|
|
|
865
860
|
}
|
|
866
861
|
}
|
|
867
862
|
class ArrayType extends Type {
|
|
863
|
+
of;
|
|
868
864
|
constructor(of, modifiers) {
|
|
869
865
|
super(modifiers);
|
|
870
866
|
this.of = of;
|
|
@@ -874,6 +870,7 @@ class ArrayType extends Type {
|
|
|
874
870
|
}
|
|
875
871
|
}
|
|
876
872
|
class MapType extends Type {
|
|
873
|
+
valueType;
|
|
877
874
|
constructor(valueType, modifiers) {
|
|
878
875
|
super(modifiers);
|
|
879
876
|
this.valueType = valueType || null;
|
|
@@ -883,6 +880,7 @@ class MapType extends Type {
|
|
|
883
880
|
}
|
|
884
881
|
}
|
|
885
882
|
class TransplantedType extends Type {
|
|
883
|
+
type;
|
|
886
884
|
constructor(type, modifiers) {
|
|
887
885
|
super(modifiers);
|
|
888
886
|
this.type = type;
|
|
@@ -948,6 +946,8 @@ function areAllEquivalent(base, other) {
|
|
|
948
946
|
return areAllEquivalentPredicate(base, other, (baseElement, otherElement) => baseElement.isEquivalent(otherElement));
|
|
949
947
|
}
|
|
950
948
|
class Expression {
|
|
949
|
+
type;
|
|
950
|
+
sourceSpan;
|
|
951
951
|
constructor(type, sourceSpan) {
|
|
952
952
|
this.type = type || null;
|
|
953
953
|
this.sourceSpan = sourceSpan || null;
|
|
@@ -1031,6 +1031,7 @@ class Expression {
|
|
|
1031
1031
|
}
|
|
1032
1032
|
}
|
|
1033
1033
|
class ReadVarExpr extends Expression {
|
|
1034
|
+
name;
|
|
1034
1035
|
constructor(name, type, sourceSpan) {
|
|
1035
1036
|
super(type, sourceSpan);
|
|
1036
1037
|
this.name = name;
|
|
@@ -1052,6 +1053,7 @@ class ReadVarExpr extends Expression {
|
|
|
1052
1053
|
}
|
|
1053
1054
|
}
|
|
1054
1055
|
class TypeofExpr extends Expression {
|
|
1056
|
+
expr;
|
|
1055
1057
|
constructor(expr, type, sourceSpan) {
|
|
1056
1058
|
super(type, sourceSpan);
|
|
1057
1059
|
this.expr = expr;
|
|
@@ -1070,6 +1072,7 @@ class TypeofExpr extends Expression {
|
|
|
1070
1072
|
}
|
|
1071
1073
|
}
|
|
1072
1074
|
class WrappedNodeExpr extends Expression {
|
|
1075
|
+
node;
|
|
1073
1076
|
constructor(node, type, sourceSpan) {
|
|
1074
1077
|
super(type, sourceSpan);
|
|
1075
1078
|
this.node = node;
|
|
@@ -1088,6 +1091,8 @@ class WrappedNodeExpr extends Expression {
|
|
|
1088
1091
|
}
|
|
1089
1092
|
}
|
|
1090
1093
|
class WriteVarExpr extends Expression {
|
|
1094
|
+
name;
|
|
1095
|
+
value;
|
|
1091
1096
|
constructor(name, value, type, sourceSpan) {
|
|
1092
1097
|
super(type || value.type, sourceSpan);
|
|
1093
1098
|
this.name = name;
|
|
@@ -1113,6 +1118,9 @@ class WriteVarExpr extends Expression {
|
|
|
1113
1118
|
}
|
|
1114
1119
|
}
|
|
1115
1120
|
class WriteKeyExpr extends Expression {
|
|
1121
|
+
receiver;
|
|
1122
|
+
index;
|
|
1123
|
+
value;
|
|
1116
1124
|
constructor(receiver, index, value, type, sourceSpan) {
|
|
1117
1125
|
super(type || value.type, sourceSpan);
|
|
1118
1126
|
this.receiver = receiver;
|
|
@@ -1136,6 +1144,9 @@ class WriteKeyExpr extends Expression {
|
|
|
1136
1144
|
}
|
|
1137
1145
|
}
|
|
1138
1146
|
class WritePropExpr extends Expression {
|
|
1147
|
+
receiver;
|
|
1148
|
+
name;
|
|
1149
|
+
value;
|
|
1139
1150
|
constructor(receiver, name, value, type, sourceSpan) {
|
|
1140
1151
|
super(type || value.type, sourceSpan);
|
|
1141
1152
|
this.receiver = receiver;
|
|
@@ -1159,6 +1170,9 @@ class WritePropExpr extends Expression {
|
|
|
1159
1170
|
}
|
|
1160
1171
|
}
|
|
1161
1172
|
class InvokeFunctionExpr extends Expression {
|
|
1173
|
+
fn;
|
|
1174
|
+
args;
|
|
1175
|
+
pure;
|
|
1162
1176
|
constructor(fn, args, type, sourceSpan, pure = false) {
|
|
1163
1177
|
super(type, sourceSpan);
|
|
1164
1178
|
this.fn = fn;
|
|
@@ -1186,6 +1200,8 @@ class InvokeFunctionExpr extends Expression {
|
|
|
1186
1200
|
}
|
|
1187
1201
|
}
|
|
1188
1202
|
class TaggedTemplateExpr extends Expression {
|
|
1203
|
+
tag;
|
|
1204
|
+
template;
|
|
1189
1205
|
constructor(tag, template, type, sourceSpan) {
|
|
1190
1206
|
super(type, sourceSpan);
|
|
1191
1207
|
this.tag = tag;
|
|
@@ -1208,6 +1224,8 @@ class TaggedTemplateExpr extends Expression {
|
|
|
1208
1224
|
}
|
|
1209
1225
|
}
|
|
1210
1226
|
class InstantiateExpr extends Expression {
|
|
1227
|
+
classExpr;
|
|
1228
|
+
args;
|
|
1211
1229
|
constructor(classExpr, args, type, sourceSpan) {
|
|
1212
1230
|
super(type, sourceSpan);
|
|
1213
1231
|
this.classExpr = classExpr;
|
|
@@ -1229,6 +1247,7 @@ class InstantiateExpr extends Expression {
|
|
|
1229
1247
|
}
|
|
1230
1248
|
}
|
|
1231
1249
|
class LiteralExpr extends Expression {
|
|
1250
|
+
value;
|
|
1232
1251
|
constructor(value, type, sourceSpan) {
|
|
1233
1252
|
super(type, sourceSpan);
|
|
1234
1253
|
this.value = value;
|
|
@@ -1247,6 +1266,8 @@ class LiteralExpr extends Expression {
|
|
|
1247
1266
|
}
|
|
1248
1267
|
}
|
|
1249
1268
|
class TemplateLiteral {
|
|
1269
|
+
elements;
|
|
1270
|
+
expressions;
|
|
1250
1271
|
constructor(elements, expressions) {
|
|
1251
1272
|
this.elements = elements;
|
|
1252
1273
|
this.expressions = expressions;
|
|
@@ -1256,6 +1277,9 @@ class TemplateLiteral {
|
|
|
1256
1277
|
}
|
|
1257
1278
|
}
|
|
1258
1279
|
class TemplateLiteralElement {
|
|
1280
|
+
text;
|
|
1281
|
+
sourceSpan;
|
|
1282
|
+
rawText;
|
|
1259
1283
|
constructor(text, sourceSpan, rawText) {
|
|
1260
1284
|
this.text = text;
|
|
1261
1285
|
this.sourceSpan = sourceSpan;
|
|
@@ -1273,12 +1297,17 @@ class TemplateLiteralElement {
|
|
|
1273
1297
|
}
|
|
1274
1298
|
}
|
|
1275
1299
|
class LiteralPiece {
|
|
1300
|
+
text;
|
|
1301
|
+
sourceSpan;
|
|
1276
1302
|
constructor(text, sourceSpan) {
|
|
1277
1303
|
this.text = text;
|
|
1278
1304
|
this.sourceSpan = sourceSpan;
|
|
1279
1305
|
}
|
|
1280
1306
|
}
|
|
1281
1307
|
class PlaceholderPiece {
|
|
1308
|
+
text;
|
|
1309
|
+
sourceSpan;
|
|
1310
|
+
associatedMessage;
|
|
1282
1311
|
/**
|
|
1283
1312
|
* Create a new instance of a `PlaceholderPiece`.
|
|
1284
1313
|
*
|
|
@@ -1298,6 +1327,10 @@ const MEANING_SEPARATOR$1 = '|';
|
|
|
1298
1327
|
const ID_SEPARATOR$1 = '@@';
|
|
1299
1328
|
const LEGACY_ID_INDICATOR = '␟';
|
|
1300
1329
|
class LocalizedString extends Expression {
|
|
1330
|
+
metaBlock;
|
|
1331
|
+
messageParts;
|
|
1332
|
+
placeHolderNames;
|
|
1333
|
+
expressions;
|
|
1301
1334
|
constructor(metaBlock, messageParts, placeHolderNames, expressions, sourceSpan) {
|
|
1302
1335
|
super(STRING_TYPE, sourceSpan);
|
|
1303
1336
|
this.metaBlock = metaBlock;
|
|
@@ -1403,6 +1436,8 @@ function createCookedRawString(metaBlock, messagePart, range) {
|
|
|
1403
1436
|
}
|
|
1404
1437
|
}
|
|
1405
1438
|
class ExternalExpr extends Expression {
|
|
1439
|
+
value;
|
|
1440
|
+
typeParams;
|
|
1406
1441
|
constructor(value, type, typeParams = null, sourceSpan) {
|
|
1407
1442
|
super(type, sourceSpan);
|
|
1408
1443
|
this.value = value;
|
|
@@ -1425,6 +1460,9 @@ class ExternalExpr extends Expression {
|
|
|
1425
1460
|
}
|
|
1426
1461
|
}
|
|
1427
1462
|
class ExternalReference {
|
|
1463
|
+
moduleName;
|
|
1464
|
+
name;
|
|
1465
|
+
runtime;
|
|
1428
1466
|
constructor(moduleName, name, runtime) {
|
|
1429
1467
|
this.moduleName = moduleName;
|
|
1430
1468
|
this.name = name;
|
|
@@ -1432,6 +1470,9 @@ class ExternalReference {
|
|
|
1432
1470
|
}
|
|
1433
1471
|
}
|
|
1434
1472
|
class ConditionalExpr extends Expression {
|
|
1473
|
+
condition;
|
|
1474
|
+
falseCase;
|
|
1475
|
+
trueCase;
|
|
1435
1476
|
constructor(condition, trueCase, falseCase = null, type, sourceSpan) {
|
|
1436
1477
|
super(type || trueCase.type, sourceSpan);
|
|
1437
1478
|
this.condition = condition;
|
|
@@ -1455,12 +1496,15 @@ class ConditionalExpr extends Expression {
|
|
|
1455
1496
|
}
|
|
1456
1497
|
}
|
|
1457
1498
|
class DynamicImportExpr extends Expression {
|
|
1458
|
-
|
|
1499
|
+
url;
|
|
1500
|
+
urlComment;
|
|
1501
|
+
constructor(url, sourceSpan, urlComment) {
|
|
1459
1502
|
super(null, sourceSpan);
|
|
1460
1503
|
this.url = url;
|
|
1504
|
+
this.urlComment = urlComment;
|
|
1461
1505
|
}
|
|
1462
1506
|
isEquivalent(e) {
|
|
1463
|
-
return e instanceof DynamicImportExpr && this.url === e.url;
|
|
1507
|
+
return e instanceof DynamicImportExpr && this.url === e.url && this.urlComment === e.urlComment;
|
|
1464
1508
|
}
|
|
1465
1509
|
isConstant() {
|
|
1466
1510
|
return false;
|
|
@@ -1469,10 +1513,11 @@ class DynamicImportExpr extends Expression {
|
|
|
1469
1513
|
return visitor.visitDynamicImportExpr(this, context);
|
|
1470
1514
|
}
|
|
1471
1515
|
clone() {
|
|
1472
|
-
return new DynamicImportExpr(this.url, this.sourceSpan);
|
|
1516
|
+
return new DynamicImportExpr(typeof this.url === 'string' ? this.url : this.url.clone(), this.sourceSpan, this.urlComment);
|
|
1473
1517
|
}
|
|
1474
1518
|
}
|
|
1475
1519
|
class NotExpr extends Expression {
|
|
1520
|
+
condition;
|
|
1476
1521
|
constructor(condition, sourceSpan) {
|
|
1477
1522
|
super(BOOL_TYPE, sourceSpan);
|
|
1478
1523
|
this.condition = condition;
|
|
@@ -1491,6 +1536,8 @@ class NotExpr extends Expression {
|
|
|
1491
1536
|
}
|
|
1492
1537
|
}
|
|
1493
1538
|
class FnParam {
|
|
1539
|
+
name;
|
|
1540
|
+
type;
|
|
1494
1541
|
constructor(name, type = null) {
|
|
1495
1542
|
this.name = name;
|
|
1496
1543
|
this.type = type;
|
|
@@ -1503,6 +1550,9 @@ class FnParam {
|
|
|
1503
1550
|
}
|
|
1504
1551
|
}
|
|
1505
1552
|
class FunctionExpr extends Expression {
|
|
1553
|
+
params;
|
|
1554
|
+
statements;
|
|
1555
|
+
name;
|
|
1506
1556
|
constructor(params, statements, type, sourceSpan, name) {
|
|
1507
1557
|
super(type, sourceSpan);
|
|
1508
1558
|
this.params = params;
|
|
@@ -1529,6 +1579,8 @@ class FunctionExpr extends Expression {
|
|
|
1529
1579
|
}
|
|
1530
1580
|
}
|
|
1531
1581
|
class ArrowFunctionExpr extends Expression {
|
|
1582
|
+
params;
|
|
1583
|
+
body;
|
|
1532
1584
|
// Note that `body: Expression` represents `() => expr` whereas
|
|
1533
1585
|
// `body: Statement[]` represents `() => { expr }`.
|
|
1534
1586
|
constructor(params, body, type, sourceSpan) {
|
|
@@ -1563,6 +1615,9 @@ class ArrowFunctionExpr extends Expression {
|
|
|
1563
1615
|
}
|
|
1564
1616
|
}
|
|
1565
1617
|
class UnaryOperatorExpr extends Expression {
|
|
1618
|
+
operator;
|
|
1619
|
+
expr;
|
|
1620
|
+
parens;
|
|
1566
1621
|
constructor(operator, expr, type, sourceSpan, parens = true) {
|
|
1567
1622
|
super(type || NUMBER_TYPE, sourceSpan);
|
|
1568
1623
|
this.operator = operator;
|
|
@@ -1585,6 +1640,10 @@ class UnaryOperatorExpr extends Expression {
|
|
|
1585
1640
|
}
|
|
1586
1641
|
}
|
|
1587
1642
|
class BinaryOperatorExpr extends Expression {
|
|
1643
|
+
operator;
|
|
1644
|
+
rhs;
|
|
1645
|
+
parens;
|
|
1646
|
+
lhs;
|
|
1588
1647
|
constructor(operator, lhs, rhs, type, sourceSpan, parens = true) {
|
|
1589
1648
|
super(type || lhs.type, sourceSpan);
|
|
1590
1649
|
this.operator = operator;
|
|
@@ -1609,6 +1668,8 @@ class BinaryOperatorExpr extends Expression {
|
|
|
1609
1668
|
}
|
|
1610
1669
|
}
|
|
1611
1670
|
class ReadPropExpr extends Expression {
|
|
1671
|
+
receiver;
|
|
1672
|
+
name;
|
|
1612
1673
|
constructor(receiver, name, type, sourceSpan) {
|
|
1613
1674
|
super(type, sourceSpan);
|
|
1614
1675
|
this.receiver = receiver;
|
|
@@ -1635,6 +1696,8 @@ class ReadPropExpr extends Expression {
|
|
|
1635
1696
|
}
|
|
1636
1697
|
}
|
|
1637
1698
|
class ReadKeyExpr extends Expression {
|
|
1699
|
+
receiver;
|
|
1700
|
+
index;
|
|
1638
1701
|
constructor(receiver, index, type, sourceSpan) {
|
|
1639
1702
|
super(type, sourceSpan);
|
|
1640
1703
|
this.receiver = receiver;
|
|
@@ -1659,6 +1722,7 @@ class ReadKeyExpr extends Expression {
|
|
|
1659
1722
|
}
|
|
1660
1723
|
}
|
|
1661
1724
|
class LiteralArrayExpr extends Expression {
|
|
1725
|
+
entries;
|
|
1662
1726
|
constructor(entries, type, sourceSpan) {
|
|
1663
1727
|
super(type, sourceSpan);
|
|
1664
1728
|
this.entries = entries;
|
|
@@ -1677,6 +1741,9 @@ class LiteralArrayExpr extends Expression {
|
|
|
1677
1741
|
}
|
|
1678
1742
|
}
|
|
1679
1743
|
class LiteralMapEntry {
|
|
1744
|
+
key;
|
|
1745
|
+
value;
|
|
1746
|
+
quoted;
|
|
1680
1747
|
constructor(key, value, quoted) {
|
|
1681
1748
|
this.key = key;
|
|
1682
1749
|
this.value = value;
|
|
@@ -1690,10 +1757,11 @@ class LiteralMapEntry {
|
|
|
1690
1757
|
}
|
|
1691
1758
|
}
|
|
1692
1759
|
class LiteralMapExpr extends Expression {
|
|
1760
|
+
entries;
|
|
1761
|
+
valueType = null;
|
|
1693
1762
|
constructor(entries, type, sourceSpan) {
|
|
1694
1763
|
super(type, sourceSpan);
|
|
1695
1764
|
this.entries = entries;
|
|
1696
|
-
this.valueType = null;
|
|
1697
1765
|
if (type) {
|
|
1698
1766
|
this.valueType = type.valueType;
|
|
1699
1767
|
}
|
|
@@ -1713,6 +1781,7 @@ class LiteralMapExpr extends Expression {
|
|
|
1713
1781
|
}
|
|
1714
1782
|
}
|
|
1715
1783
|
class CommaExpr extends Expression {
|
|
1784
|
+
parts;
|
|
1716
1785
|
constructor(parts, sourceSpan) {
|
|
1717
1786
|
super(parts[parts.length - 1].type, sourceSpan);
|
|
1718
1787
|
this.parts = parts;
|
|
@@ -1742,6 +1811,9 @@ var StmtModifier;
|
|
|
1742
1811
|
StmtModifier[StmtModifier["Static"] = 8] = "Static";
|
|
1743
1812
|
})(StmtModifier || (StmtModifier = {}));
|
|
1744
1813
|
class LeadingComment {
|
|
1814
|
+
text;
|
|
1815
|
+
multiline;
|
|
1816
|
+
trailingNewline;
|
|
1745
1817
|
constructor(text, multiline, trailingNewline) {
|
|
1746
1818
|
this.text = text;
|
|
1747
1819
|
this.multiline = multiline;
|
|
@@ -1752,6 +1824,7 @@ class LeadingComment {
|
|
|
1752
1824
|
}
|
|
1753
1825
|
}
|
|
1754
1826
|
class JSDocComment extends LeadingComment {
|
|
1827
|
+
tags;
|
|
1755
1828
|
constructor(tags) {
|
|
1756
1829
|
super('', /* multiline */ true, /* trailingNewline */ true);
|
|
1757
1830
|
this.tags = tags;
|
|
@@ -1761,6 +1834,9 @@ class JSDocComment extends LeadingComment {
|
|
|
1761
1834
|
}
|
|
1762
1835
|
}
|
|
1763
1836
|
class Statement {
|
|
1837
|
+
modifiers;
|
|
1838
|
+
sourceSpan;
|
|
1839
|
+
leadingComments;
|
|
1764
1840
|
constructor(modifiers = StmtModifier.None, sourceSpan = null, leadingComments) {
|
|
1765
1841
|
this.modifiers = modifiers;
|
|
1766
1842
|
this.sourceSpan = sourceSpan;
|
|
@@ -1775,6 +1851,9 @@ class Statement {
|
|
|
1775
1851
|
}
|
|
1776
1852
|
}
|
|
1777
1853
|
class DeclareVarStmt extends Statement {
|
|
1854
|
+
name;
|
|
1855
|
+
value;
|
|
1856
|
+
type;
|
|
1778
1857
|
constructor(name, value, type, modifiers, sourceSpan, leadingComments) {
|
|
1779
1858
|
super(modifiers, sourceSpan, leadingComments);
|
|
1780
1859
|
this.name = name;
|
|
@@ -1791,6 +1870,10 @@ class DeclareVarStmt extends Statement {
|
|
|
1791
1870
|
}
|
|
1792
1871
|
}
|
|
1793
1872
|
class DeclareFunctionStmt extends Statement {
|
|
1873
|
+
name;
|
|
1874
|
+
params;
|
|
1875
|
+
statements;
|
|
1876
|
+
type;
|
|
1794
1877
|
constructor(name, params, statements, type, modifiers, sourceSpan, leadingComments) {
|
|
1795
1878
|
super(modifiers, sourceSpan, leadingComments);
|
|
1796
1879
|
this.name = name;
|
|
@@ -1808,6 +1891,7 @@ class DeclareFunctionStmt extends Statement {
|
|
|
1808
1891
|
}
|
|
1809
1892
|
}
|
|
1810
1893
|
class ExpressionStatement extends Statement {
|
|
1894
|
+
expr;
|
|
1811
1895
|
constructor(expr, sourceSpan, leadingComments) {
|
|
1812
1896
|
super(StmtModifier.None, sourceSpan, leadingComments);
|
|
1813
1897
|
this.expr = expr;
|
|
@@ -1820,6 +1904,7 @@ class ExpressionStatement extends Statement {
|
|
|
1820
1904
|
}
|
|
1821
1905
|
}
|
|
1822
1906
|
class ReturnStatement extends Statement {
|
|
1907
|
+
value;
|
|
1823
1908
|
constructor(value, sourceSpan = null, leadingComments) {
|
|
1824
1909
|
super(StmtModifier.None, sourceSpan, leadingComments);
|
|
1825
1910
|
this.value = value;
|
|
@@ -1832,6 +1917,9 @@ class ReturnStatement extends Statement {
|
|
|
1832
1917
|
}
|
|
1833
1918
|
}
|
|
1834
1919
|
class IfStmt extends Statement {
|
|
1920
|
+
condition;
|
|
1921
|
+
trueCase;
|
|
1922
|
+
falseCase;
|
|
1835
1923
|
constructor(condition, trueCase, falseCase = [], sourceSpan, leadingComments) {
|
|
1836
1924
|
super(StmtModifier.None, sourceSpan, leadingComments);
|
|
1837
1925
|
this.condition = condition;
|
|
@@ -1950,7 +2038,9 @@ class RecursiveAstVisitor$1 {
|
|
|
1950
2038
|
this.visitAllStatements(ast.body, context);
|
|
1951
2039
|
}
|
|
1952
2040
|
else {
|
|
1953
|
-
this.
|
|
2041
|
+
// Note: `body.visitExpression`, rather than `this.visitExpressiont(body)`,
|
|
2042
|
+
// because the latter won't recurse into the sub-expressions.
|
|
2043
|
+
ast.body.visitExpression(this, context);
|
|
1954
2044
|
}
|
|
1955
2045
|
return this.visitExpression(ast, context);
|
|
1956
2046
|
}
|
|
@@ -2232,10 +2322,12 @@ const POOL_INCLUSION_LENGTH_THRESHOLD_FOR_STRINGS = 50;
|
|
|
2232
2322
|
* change the referenced expression.
|
|
2233
2323
|
*/
|
|
2234
2324
|
class FixupExpression extends Expression {
|
|
2325
|
+
resolved;
|
|
2326
|
+
original;
|
|
2327
|
+
shared = false;
|
|
2235
2328
|
constructor(resolved) {
|
|
2236
2329
|
super(resolved.type);
|
|
2237
2330
|
this.resolved = resolved;
|
|
2238
|
-
this.shared = false;
|
|
2239
2331
|
this.original = resolved;
|
|
2240
2332
|
}
|
|
2241
2333
|
visitExpression(visitor, context) {
|
|
@@ -2268,20 +2360,21 @@ class FixupExpression extends Expression {
|
|
|
2268
2360
|
* The constant pool also supports sharing access to ivy definitions references.
|
|
2269
2361
|
*/
|
|
2270
2362
|
class ConstantPool {
|
|
2363
|
+
isClosureCompilerEnabled;
|
|
2364
|
+
statements = [];
|
|
2365
|
+
literals = new Map();
|
|
2366
|
+
literalFactories = new Map();
|
|
2367
|
+
sharedConstants = new Map();
|
|
2368
|
+
/**
|
|
2369
|
+
* Constant pool also tracks claimed names from {@link uniqueName}.
|
|
2370
|
+
* This is useful to avoid collisions if variables are intended to be
|
|
2371
|
+
* named a certain way- but may conflict. We wouldn't want to always suffix
|
|
2372
|
+
* them with unique numbers.
|
|
2373
|
+
*/
|
|
2374
|
+
_claimedNames = new Map();
|
|
2375
|
+
nextNameIndex = 0;
|
|
2271
2376
|
constructor(isClosureCompilerEnabled = false) {
|
|
2272
2377
|
this.isClosureCompilerEnabled = isClosureCompilerEnabled;
|
|
2273
|
-
this.statements = [];
|
|
2274
|
-
this.literals = new Map();
|
|
2275
|
-
this.literalFactories = new Map();
|
|
2276
|
-
this.sharedConstants = new Map();
|
|
2277
|
-
/**
|
|
2278
|
-
* Constant pool also tracks claimed names from {@link uniqueName}.
|
|
2279
|
-
* This is useful to avoid collisions if variables are intended to be
|
|
2280
|
-
* named a certain way- but may conflict. We wouldn't want to always suffix
|
|
2281
|
-
* them with unique numbers.
|
|
2282
|
-
*/
|
|
2283
|
-
this._claimedNames = new Map();
|
|
2284
|
-
this.nextNameIndex = 0;
|
|
2285
2378
|
}
|
|
2286
2379
|
getConstLiteral(literal, forceShared) {
|
|
2287
2380
|
if ((literal instanceof LiteralExpr && !isLongStringLiteral(literal)) ||
|
|
@@ -2427,7 +2520,7 @@ class ConstantPool {
|
|
|
2427
2520
|
}
|
|
2428
2521
|
}
|
|
2429
2522
|
class GenericKeyFn {
|
|
2430
|
-
static
|
|
2523
|
+
static INSTANCE = new GenericKeyFn();
|
|
2431
2524
|
keyOf(expr) {
|
|
2432
2525
|
if (expr instanceof LiteralExpr && typeof expr.value === 'string') {
|
|
2433
2526
|
return `"${expr.value}"`;
|
|
@@ -2479,505 +2572,504 @@ function isLongStringLiteral(expr) {
|
|
|
2479
2572
|
const CORE = '@angular/core';
|
|
2480
2573
|
class Identifiers {
|
|
2481
2574
|
/* Methods */
|
|
2482
|
-
static
|
|
2483
|
-
static
|
|
2484
|
-
static
|
|
2485
|
-
static
|
|
2575
|
+
static NEW_METHOD = 'factory';
|
|
2576
|
+
static TRANSFORM_METHOD = 'transform';
|
|
2577
|
+
static PATCH_DEPS = 'patchedDeps';
|
|
2578
|
+
static core = { name: null, moduleName: CORE };
|
|
2486
2579
|
/* Instructions */
|
|
2487
|
-
static
|
|
2488
|
-
static
|
|
2489
|
-
static
|
|
2490
|
-
static
|
|
2491
|
-
static
|
|
2492
|
-
static
|
|
2493
|
-
static
|
|
2494
|
-
static
|
|
2580
|
+
static namespaceHTML = { name: 'ɵɵnamespaceHTML', moduleName: CORE };
|
|
2581
|
+
static namespaceMathML = { name: 'ɵɵnamespaceMathML', moduleName: CORE };
|
|
2582
|
+
static namespaceSVG = { name: 'ɵɵnamespaceSVG', moduleName: CORE };
|
|
2583
|
+
static element = { name: 'ɵɵelement', moduleName: CORE };
|
|
2584
|
+
static elementStart = { name: 'ɵɵelementStart', moduleName: CORE };
|
|
2585
|
+
static elementEnd = { name: 'ɵɵelementEnd', moduleName: CORE };
|
|
2586
|
+
static advance = { name: 'ɵɵadvance', moduleName: CORE };
|
|
2587
|
+
static syntheticHostProperty = {
|
|
2495
2588
|
name: 'ɵɵsyntheticHostProperty',
|
|
2496
2589
|
moduleName: CORE,
|
|
2497
|
-
};
|
|
2498
|
-
static
|
|
2590
|
+
};
|
|
2591
|
+
static syntheticHostListener = {
|
|
2499
2592
|
name: 'ɵɵsyntheticHostListener',
|
|
2500
2593
|
moduleName: CORE,
|
|
2501
|
-
};
|
|
2502
|
-
static
|
|
2503
|
-
static
|
|
2594
|
+
};
|
|
2595
|
+
static attribute = { name: 'ɵɵattribute', moduleName: CORE };
|
|
2596
|
+
static attributeInterpolate1 = {
|
|
2504
2597
|
name: 'ɵɵattributeInterpolate1',
|
|
2505
2598
|
moduleName: CORE,
|
|
2506
|
-
};
|
|
2507
|
-
static
|
|
2599
|
+
};
|
|
2600
|
+
static attributeInterpolate2 = {
|
|
2508
2601
|
name: 'ɵɵattributeInterpolate2',
|
|
2509
2602
|
moduleName: CORE,
|
|
2510
|
-
};
|
|
2511
|
-
static
|
|
2603
|
+
};
|
|
2604
|
+
static attributeInterpolate3 = {
|
|
2512
2605
|
name: 'ɵɵattributeInterpolate3',
|
|
2513
2606
|
moduleName: CORE,
|
|
2514
|
-
};
|
|
2515
|
-
static
|
|
2607
|
+
};
|
|
2608
|
+
static attributeInterpolate4 = {
|
|
2516
2609
|
name: 'ɵɵattributeInterpolate4',
|
|
2517
2610
|
moduleName: CORE,
|
|
2518
|
-
};
|
|
2519
|
-
static
|
|
2611
|
+
};
|
|
2612
|
+
static attributeInterpolate5 = {
|
|
2520
2613
|
name: 'ɵɵattributeInterpolate5',
|
|
2521
2614
|
moduleName: CORE,
|
|
2522
|
-
};
|
|
2523
|
-
static
|
|
2615
|
+
};
|
|
2616
|
+
static attributeInterpolate6 = {
|
|
2524
2617
|
name: 'ɵɵattributeInterpolate6',
|
|
2525
2618
|
moduleName: CORE,
|
|
2526
|
-
};
|
|
2527
|
-
static
|
|
2619
|
+
};
|
|
2620
|
+
static attributeInterpolate7 = {
|
|
2528
2621
|
name: 'ɵɵattributeInterpolate7',
|
|
2529
2622
|
moduleName: CORE,
|
|
2530
|
-
};
|
|
2531
|
-
static
|
|
2623
|
+
};
|
|
2624
|
+
static attributeInterpolate8 = {
|
|
2532
2625
|
name: 'ɵɵattributeInterpolate8',
|
|
2533
2626
|
moduleName: CORE,
|
|
2534
|
-
};
|
|
2535
|
-
static
|
|
2627
|
+
};
|
|
2628
|
+
static attributeInterpolateV = {
|
|
2536
2629
|
name: 'ɵɵattributeInterpolateV',
|
|
2537
2630
|
moduleName: CORE,
|
|
2538
|
-
};
|
|
2539
|
-
static
|
|
2540
|
-
static
|
|
2631
|
+
};
|
|
2632
|
+
static classProp = { name: 'ɵɵclassProp', moduleName: CORE };
|
|
2633
|
+
static elementContainerStart = {
|
|
2541
2634
|
name: 'ɵɵelementContainerStart',
|
|
2542
2635
|
moduleName: CORE,
|
|
2543
|
-
};
|
|
2544
|
-
static
|
|
2636
|
+
};
|
|
2637
|
+
static elementContainerEnd = {
|
|
2545
2638
|
name: 'ɵɵelementContainerEnd',
|
|
2546
2639
|
moduleName: CORE,
|
|
2547
|
-
};
|
|
2548
|
-
static
|
|
2549
|
-
static
|
|
2550
|
-
static
|
|
2640
|
+
};
|
|
2641
|
+
static elementContainer = { name: 'ɵɵelementContainer', moduleName: CORE };
|
|
2642
|
+
static styleMap = { name: 'ɵɵstyleMap', moduleName: CORE };
|
|
2643
|
+
static styleMapInterpolate1 = {
|
|
2551
2644
|
name: 'ɵɵstyleMapInterpolate1',
|
|
2552
2645
|
moduleName: CORE,
|
|
2553
|
-
};
|
|
2554
|
-
static
|
|
2646
|
+
};
|
|
2647
|
+
static styleMapInterpolate2 = {
|
|
2555
2648
|
name: 'ɵɵstyleMapInterpolate2',
|
|
2556
2649
|
moduleName: CORE,
|
|
2557
|
-
};
|
|
2558
|
-
static
|
|
2650
|
+
};
|
|
2651
|
+
static styleMapInterpolate3 = {
|
|
2559
2652
|
name: 'ɵɵstyleMapInterpolate3',
|
|
2560
2653
|
moduleName: CORE,
|
|
2561
|
-
};
|
|
2562
|
-
static
|
|
2654
|
+
};
|
|
2655
|
+
static styleMapInterpolate4 = {
|
|
2563
2656
|
name: 'ɵɵstyleMapInterpolate4',
|
|
2564
2657
|
moduleName: CORE,
|
|
2565
|
-
};
|
|
2566
|
-
static
|
|
2658
|
+
};
|
|
2659
|
+
static styleMapInterpolate5 = {
|
|
2567
2660
|
name: 'ɵɵstyleMapInterpolate5',
|
|
2568
2661
|
moduleName: CORE,
|
|
2569
|
-
};
|
|
2570
|
-
static
|
|
2662
|
+
};
|
|
2663
|
+
static styleMapInterpolate6 = {
|
|
2571
2664
|
name: 'ɵɵstyleMapInterpolate6',
|
|
2572
2665
|
moduleName: CORE,
|
|
2573
|
-
};
|
|
2574
|
-
static
|
|
2666
|
+
};
|
|
2667
|
+
static styleMapInterpolate7 = {
|
|
2575
2668
|
name: 'ɵɵstyleMapInterpolate7',
|
|
2576
2669
|
moduleName: CORE,
|
|
2577
|
-
};
|
|
2578
|
-
static
|
|
2670
|
+
};
|
|
2671
|
+
static styleMapInterpolate8 = {
|
|
2579
2672
|
name: 'ɵɵstyleMapInterpolate8',
|
|
2580
2673
|
moduleName: CORE,
|
|
2581
|
-
};
|
|
2582
|
-
static
|
|
2674
|
+
};
|
|
2675
|
+
static styleMapInterpolateV = {
|
|
2583
2676
|
name: 'ɵɵstyleMapInterpolateV',
|
|
2584
2677
|
moduleName: CORE,
|
|
2585
|
-
};
|
|
2586
|
-
static
|
|
2587
|
-
static
|
|
2678
|
+
};
|
|
2679
|
+
static classMap = { name: 'ɵɵclassMap', moduleName: CORE };
|
|
2680
|
+
static classMapInterpolate1 = {
|
|
2588
2681
|
name: 'ɵɵclassMapInterpolate1',
|
|
2589
2682
|
moduleName: CORE,
|
|
2590
|
-
};
|
|
2591
|
-
static
|
|
2683
|
+
};
|
|
2684
|
+
static classMapInterpolate2 = {
|
|
2592
2685
|
name: 'ɵɵclassMapInterpolate2',
|
|
2593
2686
|
moduleName: CORE,
|
|
2594
|
-
};
|
|
2595
|
-
static
|
|
2687
|
+
};
|
|
2688
|
+
static classMapInterpolate3 = {
|
|
2596
2689
|
name: 'ɵɵclassMapInterpolate3',
|
|
2597
2690
|
moduleName: CORE,
|
|
2598
|
-
};
|
|
2599
|
-
static
|
|
2691
|
+
};
|
|
2692
|
+
static classMapInterpolate4 = {
|
|
2600
2693
|
name: 'ɵɵclassMapInterpolate4',
|
|
2601
2694
|
moduleName: CORE,
|
|
2602
|
-
};
|
|
2603
|
-
static
|
|
2695
|
+
};
|
|
2696
|
+
static classMapInterpolate5 = {
|
|
2604
2697
|
name: 'ɵɵclassMapInterpolate5',
|
|
2605
2698
|
moduleName: CORE,
|
|
2606
|
-
};
|
|
2607
|
-
static
|
|
2699
|
+
};
|
|
2700
|
+
static classMapInterpolate6 = {
|
|
2608
2701
|
name: 'ɵɵclassMapInterpolate6',
|
|
2609
2702
|
moduleName: CORE,
|
|
2610
|
-
};
|
|
2611
|
-
static
|
|
2703
|
+
};
|
|
2704
|
+
static classMapInterpolate7 = {
|
|
2612
2705
|
name: 'ɵɵclassMapInterpolate7',
|
|
2613
2706
|
moduleName: CORE,
|
|
2614
|
-
};
|
|
2615
|
-
static
|
|
2707
|
+
};
|
|
2708
|
+
static classMapInterpolate8 = {
|
|
2616
2709
|
name: 'ɵɵclassMapInterpolate8',
|
|
2617
2710
|
moduleName: CORE,
|
|
2618
|
-
};
|
|
2619
|
-
static
|
|
2711
|
+
};
|
|
2712
|
+
static classMapInterpolateV = {
|
|
2620
2713
|
name: 'ɵɵclassMapInterpolateV',
|
|
2621
2714
|
moduleName: CORE,
|
|
2622
|
-
};
|
|
2623
|
-
static
|
|
2624
|
-
static
|
|
2715
|
+
};
|
|
2716
|
+
static styleProp = { name: 'ɵɵstyleProp', moduleName: CORE };
|
|
2717
|
+
static stylePropInterpolate1 = {
|
|
2625
2718
|
name: 'ɵɵstylePropInterpolate1',
|
|
2626
2719
|
moduleName: CORE,
|
|
2627
|
-
};
|
|
2628
|
-
static
|
|
2720
|
+
};
|
|
2721
|
+
static stylePropInterpolate2 = {
|
|
2629
2722
|
name: 'ɵɵstylePropInterpolate2',
|
|
2630
2723
|
moduleName: CORE,
|
|
2631
|
-
};
|
|
2632
|
-
static
|
|
2724
|
+
};
|
|
2725
|
+
static stylePropInterpolate3 = {
|
|
2633
2726
|
name: 'ɵɵstylePropInterpolate3',
|
|
2634
2727
|
moduleName: CORE,
|
|
2635
|
-
};
|
|
2636
|
-
static
|
|
2728
|
+
};
|
|
2729
|
+
static stylePropInterpolate4 = {
|
|
2637
2730
|
name: 'ɵɵstylePropInterpolate4',
|
|
2638
2731
|
moduleName: CORE,
|
|
2639
|
-
};
|
|
2640
|
-
static
|
|
2732
|
+
};
|
|
2733
|
+
static stylePropInterpolate5 = {
|
|
2641
2734
|
name: 'ɵɵstylePropInterpolate5',
|
|
2642
2735
|
moduleName: CORE,
|
|
2643
|
-
};
|
|
2644
|
-
static
|
|
2736
|
+
};
|
|
2737
|
+
static stylePropInterpolate6 = {
|
|
2645
2738
|
name: 'ɵɵstylePropInterpolate6',
|
|
2646
2739
|
moduleName: CORE,
|
|
2647
|
-
};
|
|
2648
|
-
static
|
|
2740
|
+
};
|
|
2741
|
+
static stylePropInterpolate7 = {
|
|
2649
2742
|
name: 'ɵɵstylePropInterpolate7',
|
|
2650
2743
|
moduleName: CORE,
|
|
2651
|
-
};
|
|
2652
|
-
static
|
|
2744
|
+
};
|
|
2745
|
+
static stylePropInterpolate8 = {
|
|
2653
2746
|
name: 'ɵɵstylePropInterpolate8',
|
|
2654
2747
|
moduleName: CORE,
|
|
2655
|
-
};
|
|
2656
|
-
static
|
|
2748
|
+
};
|
|
2749
|
+
static stylePropInterpolateV = {
|
|
2657
2750
|
name: 'ɵɵstylePropInterpolateV',
|
|
2658
2751
|
moduleName: CORE,
|
|
2659
|
-
};
|
|
2660
|
-
static
|
|
2661
|
-
static
|
|
2662
|
-
static
|
|
2663
|
-
static
|
|
2664
|
-
static
|
|
2665
|
-
static
|
|
2666
|
-
static
|
|
2667
|
-
static
|
|
2668
|
-
static
|
|
2669
|
-
static
|
|
2670
|
-
static
|
|
2671
|
-
static
|
|
2672
|
-
static
|
|
2752
|
+
};
|
|
2753
|
+
static nextContext = { name: 'ɵɵnextContext', moduleName: CORE };
|
|
2754
|
+
static resetView = { name: 'ɵɵresetView', moduleName: CORE };
|
|
2755
|
+
static templateCreate = { name: 'ɵɵtemplate', moduleName: CORE };
|
|
2756
|
+
static defer = { name: 'ɵɵdefer', moduleName: CORE };
|
|
2757
|
+
static deferWhen = { name: 'ɵɵdeferWhen', moduleName: CORE };
|
|
2758
|
+
static deferOnIdle = { name: 'ɵɵdeferOnIdle', moduleName: CORE };
|
|
2759
|
+
static deferOnImmediate = { name: 'ɵɵdeferOnImmediate', moduleName: CORE };
|
|
2760
|
+
static deferOnTimer = { name: 'ɵɵdeferOnTimer', moduleName: CORE };
|
|
2761
|
+
static deferOnHover = { name: 'ɵɵdeferOnHover', moduleName: CORE };
|
|
2762
|
+
static deferOnInteraction = { name: 'ɵɵdeferOnInteraction', moduleName: CORE };
|
|
2763
|
+
static deferOnViewport = { name: 'ɵɵdeferOnViewport', moduleName: CORE };
|
|
2764
|
+
static deferPrefetchWhen = { name: 'ɵɵdeferPrefetchWhen', moduleName: CORE };
|
|
2765
|
+
static deferPrefetchOnIdle = {
|
|
2673
2766
|
name: 'ɵɵdeferPrefetchOnIdle',
|
|
2674
2767
|
moduleName: CORE,
|
|
2675
|
-
};
|
|
2676
|
-
static
|
|
2768
|
+
};
|
|
2769
|
+
static deferPrefetchOnImmediate = {
|
|
2677
2770
|
name: 'ɵɵdeferPrefetchOnImmediate',
|
|
2678
2771
|
moduleName: CORE,
|
|
2679
|
-
};
|
|
2680
|
-
static
|
|
2772
|
+
};
|
|
2773
|
+
static deferPrefetchOnTimer = {
|
|
2681
2774
|
name: 'ɵɵdeferPrefetchOnTimer',
|
|
2682
2775
|
moduleName: CORE,
|
|
2683
|
-
};
|
|
2684
|
-
static
|
|
2776
|
+
};
|
|
2777
|
+
static deferPrefetchOnHover = {
|
|
2685
2778
|
name: 'ɵɵdeferPrefetchOnHover',
|
|
2686
2779
|
moduleName: CORE,
|
|
2687
|
-
};
|
|
2688
|
-
static
|
|
2780
|
+
};
|
|
2781
|
+
static deferPrefetchOnInteraction = {
|
|
2689
2782
|
name: 'ɵɵdeferPrefetchOnInteraction',
|
|
2690
2783
|
moduleName: CORE,
|
|
2691
|
-
};
|
|
2692
|
-
static
|
|
2784
|
+
};
|
|
2785
|
+
static deferPrefetchOnViewport = {
|
|
2693
2786
|
name: 'ɵɵdeferPrefetchOnViewport',
|
|
2694
2787
|
moduleName: CORE,
|
|
2695
|
-
};
|
|
2696
|
-
static
|
|
2697
|
-
static
|
|
2698
|
-
static
|
|
2788
|
+
};
|
|
2789
|
+
static deferHydrateWhen = { name: 'ɵɵdeferHydrateWhen', moduleName: CORE };
|
|
2790
|
+
static deferHydrateNever = { name: 'ɵɵdeferHydrateNever', moduleName: CORE };
|
|
2791
|
+
static deferHydrateOnIdle = {
|
|
2699
2792
|
name: 'ɵɵdeferHydrateOnIdle',
|
|
2700
2793
|
moduleName: CORE,
|
|
2701
|
-
};
|
|
2702
|
-
static
|
|
2794
|
+
};
|
|
2795
|
+
static deferHydrateOnImmediate = {
|
|
2703
2796
|
name: 'ɵɵdeferHydrateOnImmediate',
|
|
2704
2797
|
moduleName: CORE,
|
|
2705
|
-
};
|
|
2706
|
-
static
|
|
2798
|
+
};
|
|
2799
|
+
static deferHydrateOnTimer = {
|
|
2707
2800
|
name: 'ɵɵdeferHydrateOnTimer',
|
|
2708
2801
|
moduleName: CORE,
|
|
2709
|
-
};
|
|
2710
|
-
static
|
|
2802
|
+
};
|
|
2803
|
+
static deferHydrateOnHover = {
|
|
2711
2804
|
name: 'ɵɵdeferHydrateOnHover',
|
|
2712
2805
|
moduleName: CORE,
|
|
2713
|
-
};
|
|
2714
|
-
static
|
|
2806
|
+
};
|
|
2807
|
+
static deferHydrateOnInteraction = {
|
|
2715
2808
|
name: 'ɵɵdeferHydrateOnInteraction',
|
|
2716
2809
|
moduleName: CORE,
|
|
2717
|
-
};
|
|
2718
|
-
static
|
|
2810
|
+
};
|
|
2811
|
+
static deferHydrateOnViewport = {
|
|
2719
2812
|
name: 'ɵɵdeferHydrateOnViewport',
|
|
2720
2813
|
moduleName: CORE,
|
|
2721
|
-
};
|
|
2722
|
-
static
|
|
2814
|
+
};
|
|
2815
|
+
static deferEnableTimerScheduling = {
|
|
2723
2816
|
name: 'ɵɵdeferEnableTimerScheduling',
|
|
2724
2817
|
moduleName: CORE,
|
|
2725
|
-
};
|
|
2726
|
-
static
|
|
2727
|
-
static
|
|
2728
|
-
static
|
|
2729
|
-
static
|
|
2818
|
+
};
|
|
2819
|
+
static conditional = { name: 'ɵɵconditional', moduleName: CORE };
|
|
2820
|
+
static repeater = { name: 'ɵɵrepeater', moduleName: CORE };
|
|
2821
|
+
static repeaterCreate = { name: 'ɵɵrepeaterCreate', moduleName: CORE };
|
|
2822
|
+
static repeaterTrackByIndex = {
|
|
2730
2823
|
name: 'ɵɵrepeaterTrackByIndex',
|
|
2731
2824
|
moduleName: CORE,
|
|
2732
|
-
};
|
|
2733
|
-
static
|
|
2825
|
+
};
|
|
2826
|
+
static repeaterTrackByIdentity = {
|
|
2734
2827
|
name: 'ɵɵrepeaterTrackByIdentity',
|
|
2735
2828
|
moduleName: CORE,
|
|
2736
|
-
};
|
|
2737
|
-
static
|
|
2738
|
-
static
|
|
2739
|
-
static
|
|
2740
|
-
static
|
|
2741
|
-
static
|
|
2742
|
-
static
|
|
2743
|
-
static
|
|
2744
|
-
static
|
|
2745
|
-
static
|
|
2746
|
-
static
|
|
2747
|
-
static
|
|
2748
|
-
static
|
|
2749
|
-
static
|
|
2750
|
-
static
|
|
2751
|
-
static
|
|
2752
|
-
static
|
|
2753
|
-
static
|
|
2754
|
-
static
|
|
2755
|
-
static
|
|
2756
|
-
static
|
|
2757
|
-
static
|
|
2758
|
-
static
|
|
2759
|
-
static
|
|
2760
|
-
static
|
|
2761
|
-
static
|
|
2762
|
-
static
|
|
2763
|
-
static
|
|
2764
|
-
static
|
|
2765
|
-
static
|
|
2766
|
-
static
|
|
2767
|
-
static
|
|
2768
|
-
static
|
|
2769
|
-
static
|
|
2770
|
-
static
|
|
2829
|
+
};
|
|
2830
|
+
static componentInstance = { name: 'ɵɵcomponentInstance', moduleName: CORE };
|
|
2831
|
+
static text = { name: 'ɵɵtext', moduleName: CORE };
|
|
2832
|
+
static enableBindings = { name: 'ɵɵenableBindings', moduleName: CORE };
|
|
2833
|
+
static disableBindings = { name: 'ɵɵdisableBindings', moduleName: CORE };
|
|
2834
|
+
static getCurrentView = { name: 'ɵɵgetCurrentView', moduleName: CORE };
|
|
2835
|
+
static textInterpolate = { name: 'ɵɵtextInterpolate', moduleName: CORE };
|
|
2836
|
+
static textInterpolate1 = { name: 'ɵɵtextInterpolate1', moduleName: CORE };
|
|
2837
|
+
static textInterpolate2 = { name: 'ɵɵtextInterpolate2', moduleName: CORE };
|
|
2838
|
+
static textInterpolate3 = { name: 'ɵɵtextInterpolate3', moduleName: CORE };
|
|
2839
|
+
static textInterpolate4 = { name: 'ɵɵtextInterpolate4', moduleName: CORE };
|
|
2840
|
+
static textInterpolate5 = { name: 'ɵɵtextInterpolate5', moduleName: CORE };
|
|
2841
|
+
static textInterpolate6 = { name: 'ɵɵtextInterpolate6', moduleName: CORE };
|
|
2842
|
+
static textInterpolate7 = { name: 'ɵɵtextInterpolate7', moduleName: CORE };
|
|
2843
|
+
static textInterpolate8 = { name: 'ɵɵtextInterpolate8', moduleName: CORE };
|
|
2844
|
+
static textInterpolateV = { name: 'ɵɵtextInterpolateV', moduleName: CORE };
|
|
2845
|
+
static restoreView = { name: 'ɵɵrestoreView', moduleName: CORE };
|
|
2846
|
+
static pureFunction0 = { name: 'ɵɵpureFunction0', moduleName: CORE };
|
|
2847
|
+
static pureFunction1 = { name: 'ɵɵpureFunction1', moduleName: CORE };
|
|
2848
|
+
static pureFunction2 = { name: 'ɵɵpureFunction2', moduleName: CORE };
|
|
2849
|
+
static pureFunction3 = { name: 'ɵɵpureFunction3', moduleName: CORE };
|
|
2850
|
+
static pureFunction4 = { name: 'ɵɵpureFunction4', moduleName: CORE };
|
|
2851
|
+
static pureFunction5 = { name: 'ɵɵpureFunction5', moduleName: CORE };
|
|
2852
|
+
static pureFunction6 = { name: 'ɵɵpureFunction6', moduleName: CORE };
|
|
2853
|
+
static pureFunction7 = { name: 'ɵɵpureFunction7', moduleName: CORE };
|
|
2854
|
+
static pureFunction8 = { name: 'ɵɵpureFunction8', moduleName: CORE };
|
|
2855
|
+
static pureFunctionV = { name: 'ɵɵpureFunctionV', moduleName: CORE };
|
|
2856
|
+
static pipeBind1 = { name: 'ɵɵpipeBind1', moduleName: CORE };
|
|
2857
|
+
static pipeBind2 = { name: 'ɵɵpipeBind2', moduleName: CORE };
|
|
2858
|
+
static pipeBind3 = { name: 'ɵɵpipeBind3', moduleName: CORE };
|
|
2859
|
+
static pipeBind4 = { name: 'ɵɵpipeBind4', moduleName: CORE };
|
|
2860
|
+
static pipeBindV = { name: 'ɵɵpipeBindV', moduleName: CORE };
|
|
2861
|
+
static hostProperty = { name: 'ɵɵhostProperty', moduleName: CORE };
|
|
2862
|
+
static property = { name: 'ɵɵproperty', moduleName: CORE };
|
|
2863
|
+
static propertyInterpolate = {
|
|
2771
2864
|
name: 'ɵɵpropertyInterpolate',
|
|
2772
2865
|
moduleName: CORE,
|
|
2773
|
-
};
|
|
2774
|
-
static
|
|
2866
|
+
};
|
|
2867
|
+
static propertyInterpolate1 = {
|
|
2775
2868
|
name: 'ɵɵpropertyInterpolate1',
|
|
2776
2869
|
moduleName: CORE,
|
|
2777
|
-
};
|
|
2778
|
-
static
|
|
2870
|
+
};
|
|
2871
|
+
static propertyInterpolate2 = {
|
|
2779
2872
|
name: 'ɵɵpropertyInterpolate2',
|
|
2780
2873
|
moduleName: CORE,
|
|
2781
|
-
};
|
|
2782
|
-
static
|
|
2874
|
+
};
|
|
2875
|
+
static propertyInterpolate3 = {
|
|
2783
2876
|
name: 'ɵɵpropertyInterpolate3',
|
|
2784
2877
|
moduleName: CORE,
|
|
2785
|
-
};
|
|
2786
|
-
static
|
|
2878
|
+
};
|
|
2879
|
+
static propertyInterpolate4 = {
|
|
2787
2880
|
name: 'ɵɵpropertyInterpolate4',
|
|
2788
2881
|
moduleName: CORE,
|
|
2789
|
-
};
|
|
2790
|
-
static
|
|
2882
|
+
};
|
|
2883
|
+
static propertyInterpolate5 = {
|
|
2791
2884
|
name: 'ɵɵpropertyInterpolate5',
|
|
2792
2885
|
moduleName: CORE,
|
|
2793
|
-
};
|
|
2794
|
-
static
|
|
2886
|
+
};
|
|
2887
|
+
static propertyInterpolate6 = {
|
|
2795
2888
|
name: 'ɵɵpropertyInterpolate6',
|
|
2796
2889
|
moduleName: CORE,
|
|
2797
|
-
};
|
|
2798
|
-
static
|
|
2890
|
+
};
|
|
2891
|
+
static propertyInterpolate7 = {
|
|
2799
2892
|
name: 'ɵɵpropertyInterpolate7',
|
|
2800
2893
|
moduleName: CORE,
|
|
2801
|
-
};
|
|
2802
|
-
static
|
|
2894
|
+
};
|
|
2895
|
+
static propertyInterpolate8 = {
|
|
2803
2896
|
name: 'ɵɵpropertyInterpolate8',
|
|
2804
2897
|
moduleName: CORE,
|
|
2805
|
-
};
|
|
2806
|
-
static
|
|
2898
|
+
};
|
|
2899
|
+
static propertyInterpolateV = {
|
|
2807
2900
|
name: 'ɵɵpropertyInterpolateV',
|
|
2808
2901
|
moduleName: CORE,
|
|
2809
|
-
};
|
|
2810
|
-
static
|
|
2811
|
-
static
|
|
2812
|
-
static
|
|
2813
|
-
static
|
|
2814
|
-
static
|
|
2815
|
-
static
|
|
2816
|
-
static
|
|
2817
|
-
static
|
|
2818
|
-
static
|
|
2819
|
-
static
|
|
2820
|
-
static
|
|
2821
|
-
static
|
|
2822
|
-
static
|
|
2823
|
-
static
|
|
2824
|
-
static
|
|
2825
|
-
static
|
|
2826
|
-
static
|
|
2902
|
+
};
|
|
2903
|
+
static i18n = { name: 'ɵɵi18n', moduleName: CORE };
|
|
2904
|
+
static i18nAttributes = { name: 'ɵɵi18nAttributes', moduleName: CORE };
|
|
2905
|
+
static i18nExp = { name: 'ɵɵi18nExp', moduleName: CORE };
|
|
2906
|
+
static i18nStart = { name: 'ɵɵi18nStart', moduleName: CORE };
|
|
2907
|
+
static i18nEnd = { name: 'ɵɵi18nEnd', moduleName: CORE };
|
|
2908
|
+
static i18nApply = { name: 'ɵɵi18nApply', moduleName: CORE };
|
|
2909
|
+
static i18nPostprocess = { name: 'ɵɵi18nPostprocess', moduleName: CORE };
|
|
2910
|
+
static pipe = { name: 'ɵɵpipe', moduleName: CORE };
|
|
2911
|
+
static projection = { name: 'ɵɵprojection', moduleName: CORE };
|
|
2912
|
+
static projectionDef = { name: 'ɵɵprojectionDef', moduleName: CORE };
|
|
2913
|
+
static reference = { name: 'ɵɵreference', moduleName: CORE };
|
|
2914
|
+
static inject = { name: 'ɵɵinject', moduleName: CORE };
|
|
2915
|
+
static injectAttribute = { name: 'ɵɵinjectAttribute', moduleName: CORE };
|
|
2916
|
+
static directiveInject = { name: 'ɵɵdirectiveInject', moduleName: CORE };
|
|
2917
|
+
static invalidFactory = { name: 'ɵɵinvalidFactory', moduleName: CORE };
|
|
2918
|
+
static invalidFactoryDep = { name: 'ɵɵinvalidFactoryDep', moduleName: CORE };
|
|
2919
|
+
static templateRefExtractor = {
|
|
2827
2920
|
name: 'ɵɵtemplateRefExtractor',
|
|
2828
2921
|
moduleName: CORE,
|
|
2829
|
-
};
|
|
2830
|
-
static
|
|
2831
|
-
static
|
|
2832
|
-
static
|
|
2833
|
-
static
|
|
2834
|
-
static
|
|
2835
|
-
static
|
|
2922
|
+
};
|
|
2923
|
+
static forwardRef = { name: 'forwardRef', moduleName: CORE };
|
|
2924
|
+
static resolveForwardRef = { name: 'resolveForwardRef', moduleName: CORE };
|
|
2925
|
+
static replaceMetadata = { name: 'ɵɵreplaceMetadata', moduleName: CORE };
|
|
2926
|
+
static ɵɵdefineInjectable = { name: 'ɵɵdefineInjectable', moduleName: CORE };
|
|
2927
|
+
static declareInjectable = { name: 'ɵɵngDeclareInjectable', moduleName: CORE };
|
|
2928
|
+
static InjectableDeclaration = {
|
|
2836
2929
|
name: 'ɵɵInjectableDeclaration',
|
|
2837
2930
|
moduleName: CORE,
|
|
2838
|
-
};
|
|
2839
|
-
static
|
|
2840
|
-
static
|
|
2841
|
-
static
|
|
2842
|
-
static
|
|
2931
|
+
};
|
|
2932
|
+
static resolveWindow = { name: 'ɵɵresolveWindow', moduleName: CORE };
|
|
2933
|
+
static resolveDocument = { name: 'ɵɵresolveDocument', moduleName: CORE };
|
|
2934
|
+
static resolveBody = { name: 'ɵɵresolveBody', moduleName: CORE };
|
|
2935
|
+
static getComponentDepsFactory = {
|
|
2843
2936
|
name: 'ɵɵgetComponentDepsFactory',
|
|
2844
2937
|
moduleName: CORE,
|
|
2845
|
-
};
|
|
2846
|
-
static
|
|
2847
|
-
static
|
|
2848
|
-
static
|
|
2849
|
-
static
|
|
2938
|
+
};
|
|
2939
|
+
static defineComponent = { name: 'ɵɵdefineComponent', moduleName: CORE };
|
|
2940
|
+
static declareComponent = { name: 'ɵɵngDeclareComponent', moduleName: CORE };
|
|
2941
|
+
static setComponentScope = { name: 'ɵɵsetComponentScope', moduleName: CORE };
|
|
2942
|
+
static ChangeDetectionStrategy = {
|
|
2850
2943
|
name: 'ChangeDetectionStrategy',
|
|
2851
2944
|
moduleName: CORE,
|
|
2852
|
-
};
|
|
2853
|
-
static
|
|
2945
|
+
};
|
|
2946
|
+
static ViewEncapsulation = {
|
|
2854
2947
|
name: 'ViewEncapsulation',
|
|
2855
2948
|
moduleName: CORE,
|
|
2856
|
-
};
|
|
2857
|
-
static
|
|
2949
|
+
};
|
|
2950
|
+
static ComponentDeclaration = {
|
|
2858
2951
|
name: 'ɵɵComponentDeclaration',
|
|
2859
2952
|
moduleName: CORE,
|
|
2860
|
-
};
|
|
2861
|
-
static
|
|
2953
|
+
};
|
|
2954
|
+
static FactoryDeclaration = {
|
|
2862
2955
|
name: 'ɵɵFactoryDeclaration',
|
|
2863
2956
|
moduleName: CORE,
|
|
2864
|
-
};
|
|
2865
|
-
static
|
|
2866
|
-
static
|
|
2867
|
-
static
|
|
2868
|
-
static
|
|
2869
|
-
static
|
|
2957
|
+
};
|
|
2958
|
+
static declareFactory = { name: 'ɵɵngDeclareFactory', moduleName: CORE };
|
|
2959
|
+
static FactoryTarget = { name: 'ɵɵFactoryTarget', moduleName: CORE };
|
|
2960
|
+
static defineDirective = { name: 'ɵɵdefineDirective', moduleName: CORE };
|
|
2961
|
+
static declareDirective = { name: 'ɵɵngDeclareDirective', moduleName: CORE };
|
|
2962
|
+
static DirectiveDeclaration = {
|
|
2870
2963
|
name: 'ɵɵDirectiveDeclaration',
|
|
2871
2964
|
moduleName: CORE,
|
|
2872
|
-
};
|
|
2873
|
-
static
|
|
2874
|
-
static
|
|
2965
|
+
};
|
|
2966
|
+
static InjectorDef = { name: 'ɵɵInjectorDef', moduleName: CORE };
|
|
2967
|
+
static InjectorDeclaration = {
|
|
2875
2968
|
name: 'ɵɵInjectorDeclaration',
|
|
2876
2969
|
moduleName: CORE,
|
|
2877
|
-
};
|
|
2878
|
-
static
|
|
2879
|
-
static
|
|
2880
|
-
static
|
|
2970
|
+
};
|
|
2971
|
+
static defineInjector = { name: 'ɵɵdefineInjector', moduleName: CORE };
|
|
2972
|
+
static declareInjector = { name: 'ɵɵngDeclareInjector', moduleName: CORE };
|
|
2973
|
+
static NgModuleDeclaration = {
|
|
2881
2974
|
name: 'ɵɵNgModuleDeclaration',
|
|
2882
2975
|
moduleName: CORE,
|
|
2883
|
-
};
|
|
2884
|
-
static
|
|
2976
|
+
};
|
|
2977
|
+
static ModuleWithProviders = {
|
|
2885
2978
|
name: 'ModuleWithProviders',
|
|
2886
2979
|
moduleName: CORE,
|
|
2887
|
-
};
|
|
2888
|
-
static
|
|
2889
|
-
static
|
|
2890
|
-
static
|
|
2891
|
-
static
|
|
2980
|
+
};
|
|
2981
|
+
static defineNgModule = { name: 'ɵɵdefineNgModule', moduleName: CORE };
|
|
2982
|
+
static declareNgModule = { name: 'ɵɵngDeclareNgModule', moduleName: CORE };
|
|
2983
|
+
static setNgModuleScope = { name: 'ɵɵsetNgModuleScope', moduleName: CORE };
|
|
2984
|
+
static registerNgModuleType = {
|
|
2892
2985
|
name: 'ɵɵregisterNgModuleType',
|
|
2893
2986
|
moduleName: CORE,
|
|
2894
|
-
};
|
|
2895
|
-
static
|
|
2896
|
-
static
|
|
2897
|
-
static
|
|
2898
|
-
static
|
|
2987
|
+
};
|
|
2988
|
+
static PipeDeclaration = { name: 'ɵɵPipeDeclaration', moduleName: CORE };
|
|
2989
|
+
static definePipe = { name: 'ɵɵdefinePipe', moduleName: CORE };
|
|
2990
|
+
static declarePipe = { name: 'ɵɵngDeclarePipe', moduleName: CORE };
|
|
2991
|
+
static declareClassMetadata = {
|
|
2899
2992
|
name: 'ɵɵngDeclareClassMetadata',
|
|
2900
2993
|
moduleName: CORE,
|
|
2901
|
-
};
|
|
2902
|
-
static
|
|
2994
|
+
};
|
|
2995
|
+
static declareClassMetadataAsync = {
|
|
2903
2996
|
name: 'ɵɵngDeclareClassMetadataAsync',
|
|
2904
2997
|
moduleName: CORE,
|
|
2905
|
-
};
|
|
2906
|
-
static
|
|
2907
|
-
static
|
|
2998
|
+
};
|
|
2999
|
+
static setClassMetadata = { name: 'ɵsetClassMetadata', moduleName: CORE };
|
|
3000
|
+
static setClassMetadataAsync = {
|
|
2908
3001
|
name: 'ɵsetClassMetadataAsync',
|
|
2909
3002
|
moduleName: CORE,
|
|
2910
|
-
};
|
|
2911
|
-
static
|
|
2912
|
-
static
|
|
2913
|
-
static
|
|
2914
|
-
static
|
|
2915
|
-
static
|
|
3003
|
+
};
|
|
3004
|
+
static setClassDebugInfo = { name: 'ɵsetClassDebugInfo', moduleName: CORE };
|
|
3005
|
+
static queryRefresh = { name: 'ɵɵqueryRefresh', moduleName: CORE };
|
|
3006
|
+
static viewQuery = { name: 'ɵɵviewQuery', moduleName: CORE };
|
|
3007
|
+
static loadQuery = { name: 'ɵɵloadQuery', moduleName: CORE };
|
|
3008
|
+
static contentQuery = { name: 'ɵɵcontentQuery', moduleName: CORE };
|
|
2916
3009
|
// Signal queries
|
|
2917
|
-
static
|
|
2918
|
-
static
|
|
2919
|
-
static
|
|
3010
|
+
static viewQuerySignal = { name: 'ɵɵviewQuerySignal', moduleName: CORE };
|
|
3011
|
+
static contentQuerySignal = { name: 'ɵɵcontentQuerySignal', moduleName: CORE };
|
|
3012
|
+
static queryAdvance = { name: 'ɵɵqueryAdvance', moduleName: CORE };
|
|
2920
3013
|
// Two-way bindings
|
|
2921
|
-
static
|
|
2922
|
-
static
|
|
2923
|
-
static
|
|
2924
|
-
static
|
|
2925
|
-
static
|
|
2926
|
-
static
|
|
2927
|
-
static
|
|
2928
|
-
static
|
|
3014
|
+
static twoWayProperty = { name: 'ɵɵtwoWayProperty', moduleName: CORE };
|
|
3015
|
+
static twoWayBindingSet = { name: 'ɵɵtwoWayBindingSet', moduleName: CORE };
|
|
3016
|
+
static twoWayListener = { name: 'ɵɵtwoWayListener', moduleName: CORE };
|
|
3017
|
+
static declareLet = { name: 'ɵɵdeclareLet', moduleName: CORE };
|
|
3018
|
+
static storeLet = { name: 'ɵɵstoreLet', moduleName: CORE };
|
|
3019
|
+
static readContextLet = { name: 'ɵɵreadContextLet', moduleName: CORE };
|
|
3020
|
+
static NgOnChangesFeature = { name: 'ɵɵNgOnChangesFeature', moduleName: CORE };
|
|
3021
|
+
static InheritDefinitionFeature = {
|
|
2929
3022
|
name: 'ɵɵInheritDefinitionFeature',
|
|
2930
3023
|
moduleName: CORE,
|
|
2931
|
-
};
|
|
2932
|
-
static
|
|
3024
|
+
};
|
|
3025
|
+
static CopyDefinitionFeature = {
|
|
2933
3026
|
name: 'ɵɵCopyDefinitionFeature',
|
|
2934
3027
|
moduleName: CORE,
|
|
2935
|
-
};
|
|
2936
|
-
static
|
|
2937
|
-
static
|
|
2938
|
-
static { this.HostDirectivesFeature = {
|
|
3028
|
+
};
|
|
3029
|
+
static ProvidersFeature = { name: 'ɵɵProvidersFeature', moduleName: CORE };
|
|
3030
|
+
static HostDirectivesFeature = {
|
|
2939
3031
|
name: 'ɵɵHostDirectivesFeature',
|
|
2940
3032
|
moduleName: CORE,
|
|
2941
|
-
};
|
|
2942
|
-
static
|
|
3033
|
+
};
|
|
3034
|
+
static InputTransformsFeatureFeature = {
|
|
2943
3035
|
name: 'ɵɵInputTransformsFeature',
|
|
2944
3036
|
moduleName: CORE,
|
|
2945
|
-
};
|
|
2946
|
-
static
|
|
3037
|
+
};
|
|
3038
|
+
static ExternalStylesFeature = {
|
|
2947
3039
|
name: 'ɵɵExternalStylesFeature',
|
|
2948
3040
|
moduleName: CORE,
|
|
2949
|
-
};
|
|
2950
|
-
static
|
|
2951
|
-
static
|
|
3041
|
+
};
|
|
3042
|
+
static listener = { name: 'ɵɵlistener', moduleName: CORE };
|
|
3043
|
+
static getInheritedFactory = {
|
|
2952
3044
|
name: 'ɵɵgetInheritedFactory',
|
|
2953
3045
|
moduleName: CORE,
|
|
2954
|
-
};
|
|
3046
|
+
};
|
|
2955
3047
|
// sanitization-related functions
|
|
2956
|
-
static
|
|
2957
|
-
static
|
|
2958
|
-
static
|
|
3048
|
+
static sanitizeHtml = { name: 'ɵɵsanitizeHtml', moduleName: CORE };
|
|
3049
|
+
static sanitizeStyle = { name: 'ɵɵsanitizeStyle', moduleName: CORE };
|
|
3050
|
+
static sanitizeResourceUrl = {
|
|
2959
3051
|
name: 'ɵɵsanitizeResourceUrl',
|
|
2960
3052
|
moduleName: CORE,
|
|
2961
|
-
};
|
|
2962
|
-
static
|
|
2963
|
-
static
|
|
2964
|
-
static
|
|
3053
|
+
};
|
|
3054
|
+
static sanitizeScript = { name: 'ɵɵsanitizeScript', moduleName: CORE };
|
|
3055
|
+
static sanitizeUrl = { name: 'ɵɵsanitizeUrl', moduleName: CORE };
|
|
3056
|
+
static sanitizeUrlOrResourceUrl = {
|
|
2965
3057
|
name: 'ɵɵsanitizeUrlOrResourceUrl',
|
|
2966
3058
|
moduleName: CORE,
|
|
2967
|
-
};
|
|
2968
|
-
static
|
|
2969
|
-
static
|
|
3059
|
+
};
|
|
3060
|
+
static trustConstantHtml = { name: 'ɵɵtrustConstantHtml', moduleName: CORE };
|
|
3061
|
+
static trustConstantResourceUrl = {
|
|
2970
3062
|
name: 'ɵɵtrustConstantResourceUrl',
|
|
2971
3063
|
moduleName: CORE,
|
|
2972
|
-
};
|
|
2973
|
-
static
|
|
3064
|
+
};
|
|
3065
|
+
static validateIframeAttribute = {
|
|
2974
3066
|
name: 'ɵɵvalidateIframeAttribute',
|
|
2975
3067
|
moduleName: CORE,
|
|
2976
|
-
};
|
|
3068
|
+
};
|
|
2977
3069
|
// type-checking
|
|
2978
|
-
static
|
|
2979
|
-
static
|
|
2980
|
-
static
|
|
3070
|
+
static InputSignalBrandWriteType = { name: 'ɵINPUT_SIGNAL_BRAND_WRITE_TYPE', moduleName: CORE };
|
|
3071
|
+
static UnwrapDirectiveSignalInputs = { name: 'ɵUnwrapDirectiveSignalInputs', moduleName: CORE };
|
|
3072
|
+
static unwrapWritableSignal = { name: 'ɵunwrapWritableSignal', moduleName: CORE };
|
|
2981
3073
|
}
|
|
2982
3074
|
|
|
2983
3075
|
const DASH_CASE_REGEXP = /-+([a-z0-9])/g;
|
|
@@ -3063,6 +3155,10 @@ function stringify(token) {
|
|
|
3063
3155
|
return newLineIndex === -1 ? res : res.substring(0, newLineIndex);
|
|
3064
3156
|
}
|
|
3065
3157
|
class Version {
|
|
3158
|
+
full;
|
|
3159
|
+
major;
|
|
3160
|
+
minor;
|
|
3161
|
+
patch;
|
|
3066
3162
|
constructor(full) {
|
|
3067
3163
|
this.full = full;
|
|
3068
3164
|
const splits = full.split('.');
|
|
@@ -3095,17 +3191,31 @@ function partitionArray(arr, conditionFn) {
|
|
|
3095
3191
|
}
|
|
3096
3192
|
return [truthy, falsy];
|
|
3097
3193
|
}
|
|
3194
|
+
const V1_TO_18 = /^([1-9]|1[0-8])\./;
|
|
3195
|
+
function getJitStandaloneDefaultForVersion(version) {
|
|
3196
|
+
if (version.startsWith('0.')) {
|
|
3197
|
+
// 0.0.0 is always "latest", default is true.
|
|
3198
|
+
return true;
|
|
3199
|
+
}
|
|
3200
|
+
if (V1_TO_18.test(version)) {
|
|
3201
|
+
// Angular v2 - v18 default is false.
|
|
3202
|
+
return false;
|
|
3203
|
+
}
|
|
3204
|
+
// All other Angular versions (v19+) default to true.
|
|
3205
|
+
return true;
|
|
3206
|
+
}
|
|
3098
3207
|
|
|
3099
3208
|
// https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit
|
|
3100
3209
|
const VERSION$1 = 3;
|
|
3101
3210
|
const JS_B64_PREFIX = '# sourceMappingURL=data:application/json;base64,';
|
|
3102
3211
|
class SourceMapGenerator {
|
|
3212
|
+
file;
|
|
3213
|
+
sourcesContent = new Map();
|
|
3214
|
+
lines = [];
|
|
3215
|
+
lastCol0 = 0;
|
|
3216
|
+
hasMappings = false;
|
|
3103
3217
|
constructor(file = null) {
|
|
3104
3218
|
this.file = file;
|
|
3105
|
-
this.sourcesContent = new Map();
|
|
3106
|
-
this.lines = [];
|
|
3107
|
-
this.lastCol0 = 0;
|
|
3108
|
-
this.hasMappings = false;
|
|
3109
3219
|
}
|
|
3110
3220
|
// The content is `null` when the content is expected to be loaded using the URL
|
|
3111
3221
|
addSource(url, content = null) {
|
|
@@ -3242,17 +3352,20 @@ const _SINGLE_QUOTE_ESCAPE_STRING_RE = /'|\\|\n|\r|\$/g;
|
|
|
3242
3352
|
const _LEGAL_IDENTIFIER_RE = /^[$A-Z_][0-9A-Z_$]*$/i;
|
|
3243
3353
|
const _INDENT_WITH = ' ';
|
|
3244
3354
|
class _EmittedLine {
|
|
3355
|
+
indent;
|
|
3356
|
+
partsLength = 0;
|
|
3357
|
+
parts = [];
|
|
3358
|
+
srcSpans = [];
|
|
3245
3359
|
constructor(indent) {
|
|
3246
3360
|
this.indent = indent;
|
|
3247
|
-
this.partsLength = 0;
|
|
3248
|
-
this.parts = [];
|
|
3249
|
-
this.srcSpans = [];
|
|
3250
3361
|
}
|
|
3251
3362
|
}
|
|
3252
3363
|
class EmitterVisitorContext {
|
|
3364
|
+
_indent;
|
|
3253
3365
|
static createRoot() {
|
|
3254
3366
|
return new EmitterVisitorContext(0);
|
|
3255
3367
|
}
|
|
3368
|
+
_lines;
|
|
3256
3369
|
constructor(_indent) {
|
|
3257
3370
|
this._indent = _indent;
|
|
3258
3371
|
this._lines = [new _EmittedLine(_indent)];
|
|
@@ -3383,6 +3496,7 @@ class EmitterVisitorContext {
|
|
|
3383
3496
|
}
|
|
3384
3497
|
}
|
|
3385
3498
|
class AbstractEmitterVisitor {
|
|
3499
|
+
_escapeDollarInStrings;
|
|
3386
3500
|
constructor(_escapeDollarInStrings) {
|
|
3387
3501
|
this._escapeDollarInStrings = _escapeDollarInStrings;
|
|
3388
3502
|
}
|
|
@@ -4030,6 +4144,10 @@ function getInjectFn(target) {
|
|
|
4030
4144
|
}
|
|
4031
4145
|
|
|
4032
4146
|
class ParserError {
|
|
4147
|
+
input;
|
|
4148
|
+
errLocation;
|
|
4149
|
+
ctxLocation;
|
|
4150
|
+
message;
|
|
4033
4151
|
constructor(message, input, errLocation, ctxLocation) {
|
|
4034
4152
|
this.input = input;
|
|
4035
4153
|
this.errLocation = errLocation;
|
|
@@ -4038,6 +4156,8 @@ class ParserError {
|
|
|
4038
4156
|
}
|
|
4039
4157
|
}
|
|
4040
4158
|
class ParseSpan {
|
|
4159
|
+
start;
|
|
4160
|
+
end;
|
|
4041
4161
|
constructor(start, end) {
|
|
4042
4162
|
this.start = start;
|
|
4043
4163
|
this.end = end;
|
|
@@ -4047,6 +4167,8 @@ class ParseSpan {
|
|
|
4047
4167
|
}
|
|
4048
4168
|
}
|
|
4049
4169
|
class AST {
|
|
4170
|
+
span;
|
|
4171
|
+
sourceSpan;
|
|
4050
4172
|
constructor(span,
|
|
4051
4173
|
/**
|
|
4052
4174
|
* Absolute location of the expression AST in a source code file.
|
|
@@ -4060,6 +4182,7 @@ class AST {
|
|
|
4060
4182
|
}
|
|
4061
4183
|
}
|
|
4062
4184
|
class ASTWithName extends AST {
|
|
4185
|
+
nameSpan;
|
|
4063
4186
|
constructor(span, sourceSpan, nameSpan) {
|
|
4064
4187
|
super(span, sourceSpan);
|
|
4065
4188
|
this.nameSpan = nameSpan;
|
|
@@ -4092,6 +4215,7 @@ class ThisReceiver extends ImplicitReceiver {
|
|
|
4092
4215
|
* Multiple expressions separated by a semicolon.
|
|
4093
4216
|
*/
|
|
4094
4217
|
class Chain extends AST {
|
|
4218
|
+
expressions;
|
|
4095
4219
|
constructor(span, sourceSpan, expressions) {
|
|
4096
4220
|
super(span, sourceSpan);
|
|
4097
4221
|
this.expressions = expressions;
|
|
@@ -4101,6 +4225,9 @@ class Chain extends AST {
|
|
|
4101
4225
|
}
|
|
4102
4226
|
}
|
|
4103
4227
|
class Conditional extends AST {
|
|
4228
|
+
condition;
|
|
4229
|
+
trueExp;
|
|
4230
|
+
falseExp;
|
|
4104
4231
|
constructor(span, sourceSpan, condition, trueExp, falseExp) {
|
|
4105
4232
|
super(span, sourceSpan);
|
|
4106
4233
|
this.condition = condition;
|
|
@@ -4112,6 +4239,8 @@ class Conditional extends AST {
|
|
|
4112
4239
|
}
|
|
4113
4240
|
}
|
|
4114
4241
|
class PropertyRead extends ASTWithName {
|
|
4242
|
+
receiver;
|
|
4243
|
+
name;
|
|
4115
4244
|
constructor(span, sourceSpan, nameSpan, receiver, name) {
|
|
4116
4245
|
super(span, sourceSpan, nameSpan);
|
|
4117
4246
|
this.receiver = receiver;
|
|
@@ -4122,6 +4251,9 @@ class PropertyRead extends ASTWithName {
|
|
|
4122
4251
|
}
|
|
4123
4252
|
}
|
|
4124
4253
|
class PropertyWrite extends ASTWithName {
|
|
4254
|
+
receiver;
|
|
4255
|
+
name;
|
|
4256
|
+
value;
|
|
4125
4257
|
constructor(span, sourceSpan, nameSpan, receiver, name, value) {
|
|
4126
4258
|
super(span, sourceSpan, nameSpan);
|
|
4127
4259
|
this.receiver = receiver;
|
|
@@ -4133,6 +4265,8 @@ class PropertyWrite extends ASTWithName {
|
|
|
4133
4265
|
}
|
|
4134
4266
|
}
|
|
4135
4267
|
class SafePropertyRead extends ASTWithName {
|
|
4268
|
+
receiver;
|
|
4269
|
+
name;
|
|
4136
4270
|
constructor(span, sourceSpan, nameSpan, receiver, name) {
|
|
4137
4271
|
super(span, sourceSpan, nameSpan);
|
|
4138
4272
|
this.receiver = receiver;
|
|
@@ -4143,6 +4277,8 @@ class SafePropertyRead extends ASTWithName {
|
|
|
4143
4277
|
}
|
|
4144
4278
|
}
|
|
4145
4279
|
class KeyedRead extends AST {
|
|
4280
|
+
receiver;
|
|
4281
|
+
key;
|
|
4146
4282
|
constructor(span, sourceSpan, receiver, key) {
|
|
4147
4283
|
super(span, sourceSpan);
|
|
4148
4284
|
this.receiver = receiver;
|
|
@@ -4153,6 +4289,8 @@ class KeyedRead extends AST {
|
|
|
4153
4289
|
}
|
|
4154
4290
|
}
|
|
4155
4291
|
class SafeKeyedRead extends AST {
|
|
4292
|
+
receiver;
|
|
4293
|
+
key;
|
|
4156
4294
|
constructor(span, sourceSpan, receiver, key) {
|
|
4157
4295
|
super(span, sourceSpan);
|
|
4158
4296
|
this.receiver = receiver;
|
|
@@ -4163,6 +4301,9 @@ class SafeKeyedRead extends AST {
|
|
|
4163
4301
|
}
|
|
4164
4302
|
}
|
|
4165
4303
|
class KeyedWrite extends AST {
|
|
4304
|
+
receiver;
|
|
4305
|
+
key;
|
|
4306
|
+
value;
|
|
4166
4307
|
constructor(span, sourceSpan, receiver, key, value) {
|
|
4167
4308
|
super(span, sourceSpan);
|
|
4168
4309
|
this.receiver = receiver;
|
|
@@ -4174,6 +4315,9 @@ class KeyedWrite extends AST {
|
|
|
4174
4315
|
}
|
|
4175
4316
|
}
|
|
4176
4317
|
class BindingPipe extends ASTWithName {
|
|
4318
|
+
exp;
|
|
4319
|
+
name;
|
|
4320
|
+
args;
|
|
4177
4321
|
constructor(span, sourceSpan, exp, name, args, nameSpan) {
|
|
4178
4322
|
super(span, sourceSpan, nameSpan);
|
|
4179
4323
|
this.exp = exp;
|
|
@@ -4185,6 +4329,7 @@ class BindingPipe extends ASTWithName {
|
|
|
4185
4329
|
}
|
|
4186
4330
|
}
|
|
4187
4331
|
class LiteralPrimitive extends AST {
|
|
4332
|
+
value;
|
|
4188
4333
|
constructor(span, sourceSpan, value) {
|
|
4189
4334
|
super(span, sourceSpan);
|
|
4190
4335
|
this.value = value;
|
|
@@ -4194,6 +4339,7 @@ class LiteralPrimitive extends AST {
|
|
|
4194
4339
|
}
|
|
4195
4340
|
}
|
|
4196
4341
|
class LiteralArray extends AST {
|
|
4342
|
+
expressions;
|
|
4197
4343
|
constructor(span, sourceSpan, expressions) {
|
|
4198
4344
|
super(span, sourceSpan);
|
|
4199
4345
|
this.expressions = expressions;
|
|
@@ -4203,6 +4349,8 @@ class LiteralArray extends AST {
|
|
|
4203
4349
|
}
|
|
4204
4350
|
}
|
|
4205
4351
|
class LiteralMap extends AST {
|
|
4352
|
+
keys;
|
|
4353
|
+
values;
|
|
4206
4354
|
constructor(span, sourceSpan, keys, values) {
|
|
4207
4355
|
super(span, sourceSpan);
|
|
4208
4356
|
this.keys = keys;
|
|
@@ -4213,6 +4361,8 @@ class LiteralMap extends AST {
|
|
|
4213
4361
|
}
|
|
4214
4362
|
}
|
|
4215
4363
|
class Interpolation$1 extends AST {
|
|
4364
|
+
strings;
|
|
4365
|
+
expressions;
|
|
4216
4366
|
constructor(span, sourceSpan, strings, expressions) {
|
|
4217
4367
|
super(span, sourceSpan);
|
|
4218
4368
|
this.strings = strings;
|
|
@@ -4223,6 +4373,9 @@ class Interpolation$1 extends AST {
|
|
|
4223
4373
|
}
|
|
4224
4374
|
}
|
|
4225
4375
|
class Binary extends AST {
|
|
4376
|
+
operation;
|
|
4377
|
+
left;
|
|
4378
|
+
right;
|
|
4226
4379
|
constructor(span, sourceSpan, operation, left, right) {
|
|
4227
4380
|
super(span, sourceSpan);
|
|
4228
4381
|
this.operation = operation;
|
|
@@ -4239,6 +4392,13 @@ class Binary extends AST {
|
|
|
4239
4392
|
* after consumers have been given a chance to fully support Unary.
|
|
4240
4393
|
*/
|
|
4241
4394
|
class Unary extends Binary {
|
|
4395
|
+
operator;
|
|
4396
|
+
expr;
|
|
4397
|
+
// Redeclare the properties that are inherited from `Binary` as `never`, as consumers should not
|
|
4398
|
+
// depend on these fields when operating on `Unary`.
|
|
4399
|
+
left = null;
|
|
4400
|
+
right = null;
|
|
4401
|
+
operation = null;
|
|
4242
4402
|
/**
|
|
4243
4403
|
* Creates a unary minus expression "-x", represented as `Binary` using "0 - x".
|
|
4244
4404
|
*/
|
|
@@ -4259,11 +4419,6 @@ class Unary extends Binary {
|
|
|
4259
4419
|
super(span, sourceSpan, binaryOp, binaryLeft, binaryRight);
|
|
4260
4420
|
this.operator = operator;
|
|
4261
4421
|
this.expr = expr;
|
|
4262
|
-
// Redeclare the properties that are inherited from `Binary` as `never`, as consumers should not
|
|
4263
|
-
// depend on these fields when operating on `Unary`.
|
|
4264
|
-
this.left = null;
|
|
4265
|
-
this.right = null;
|
|
4266
|
-
this.operation = null;
|
|
4267
4422
|
}
|
|
4268
4423
|
visit(visitor, context = null) {
|
|
4269
4424
|
if (visitor.visitUnary !== undefined) {
|
|
@@ -4273,6 +4428,7 @@ class Unary extends Binary {
|
|
|
4273
4428
|
}
|
|
4274
4429
|
}
|
|
4275
4430
|
class PrefixNot extends AST {
|
|
4431
|
+
expression;
|
|
4276
4432
|
constructor(span, sourceSpan, expression) {
|
|
4277
4433
|
super(span, sourceSpan);
|
|
4278
4434
|
this.expression = expression;
|
|
@@ -4281,7 +4437,18 @@ class PrefixNot extends AST {
|
|
|
4281
4437
|
return visitor.visitPrefixNot(this, context);
|
|
4282
4438
|
}
|
|
4283
4439
|
}
|
|
4440
|
+
class TypeofExpression extends AST {
|
|
4441
|
+
expression;
|
|
4442
|
+
constructor(span, sourceSpan, expression) {
|
|
4443
|
+
super(span, sourceSpan);
|
|
4444
|
+
this.expression = expression;
|
|
4445
|
+
}
|
|
4446
|
+
visit(visitor, context = null) {
|
|
4447
|
+
return visitor.visitTypeofExpresion(this, context);
|
|
4448
|
+
}
|
|
4449
|
+
}
|
|
4284
4450
|
class NonNullAssert extends AST {
|
|
4451
|
+
expression;
|
|
4285
4452
|
constructor(span, sourceSpan, expression) {
|
|
4286
4453
|
super(span, sourceSpan);
|
|
4287
4454
|
this.expression = expression;
|
|
@@ -4291,6 +4458,9 @@ class NonNullAssert extends AST {
|
|
|
4291
4458
|
}
|
|
4292
4459
|
}
|
|
4293
4460
|
class Call extends AST {
|
|
4461
|
+
receiver;
|
|
4462
|
+
args;
|
|
4463
|
+
argumentSpan;
|
|
4294
4464
|
constructor(span, sourceSpan, receiver, args, argumentSpan) {
|
|
4295
4465
|
super(span, sourceSpan);
|
|
4296
4466
|
this.receiver = receiver;
|
|
@@ -4302,6 +4472,9 @@ class Call extends AST {
|
|
|
4302
4472
|
}
|
|
4303
4473
|
}
|
|
4304
4474
|
class SafeCall extends AST {
|
|
4475
|
+
receiver;
|
|
4476
|
+
args;
|
|
4477
|
+
argumentSpan;
|
|
4305
4478
|
constructor(span, sourceSpan, receiver, args, argumentSpan) {
|
|
4306
4479
|
super(span, sourceSpan);
|
|
4307
4480
|
this.receiver = receiver;
|
|
@@ -4317,12 +4490,18 @@ class SafeCall extends AST {
|
|
|
4317
4490
|
* starting and ending byte offsets, respectively, of the text span in a source file.
|
|
4318
4491
|
*/
|
|
4319
4492
|
class AbsoluteSourceSpan {
|
|
4493
|
+
start;
|
|
4494
|
+
end;
|
|
4320
4495
|
constructor(start, end) {
|
|
4321
4496
|
this.start = start;
|
|
4322
4497
|
this.end = end;
|
|
4323
4498
|
}
|
|
4324
4499
|
}
|
|
4325
4500
|
class ASTWithSource extends AST {
|
|
4501
|
+
ast;
|
|
4502
|
+
source;
|
|
4503
|
+
location;
|
|
4504
|
+
errors;
|
|
4326
4505
|
constructor(ast, source, location, absoluteOffset, errors) {
|
|
4327
4506
|
super(new ParseSpan(0, source === null ? 0 : source.length), new AbsoluteSourceSpan(absoluteOffset, source === null ? absoluteOffset : absoluteOffset + source.length));
|
|
4328
4507
|
this.ast = ast;
|
|
@@ -4341,6 +4520,9 @@ class ASTWithSource extends AST {
|
|
|
4341
4520
|
}
|
|
4342
4521
|
}
|
|
4343
4522
|
class VariableBinding {
|
|
4523
|
+
sourceSpan;
|
|
4524
|
+
key;
|
|
4525
|
+
value;
|
|
4344
4526
|
/**
|
|
4345
4527
|
* @param sourceSpan entire span of the binding.
|
|
4346
4528
|
* @param key name of the LHS along with its span.
|
|
@@ -4353,6 +4535,9 @@ class VariableBinding {
|
|
|
4353
4535
|
}
|
|
4354
4536
|
}
|
|
4355
4537
|
class ExpressionBinding {
|
|
4538
|
+
sourceSpan;
|
|
4539
|
+
key;
|
|
4540
|
+
value;
|
|
4356
4541
|
/**
|
|
4357
4542
|
* @param sourceSpan entire span of the binding.
|
|
4358
4543
|
* @param key binding name, like ngForOf, ngForTrackBy, ngIf, along with its
|
|
@@ -4419,6 +4604,9 @@ class RecursiveAstVisitor {
|
|
|
4419
4604
|
visitPrefixNot(ast, context) {
|
|
4420
4605
|
this.visit(ast.expression, context);
|
|
4421
4606
|
}
|
|
4607
|
+
visitTypeofExpresion(ast, context) {
|
|
4608
|
+
this.visit(ast.expression, context);
|
|
4609
|
+
}
|
|
4422
4610
|
visitNonNullAssert(ast, context) {
|
|
4423
4611
|
this.visit(ast.expression, context);
|
|
4424
4612
|
}
|
|
@@ -4495,6 +4683,9 @@ class AstTransformer {
|
|
|
4495
4683
|
visitPrefixNot(ast, context) {
|
|
4496
4684
|
return new PrefixNot(ast.span, ast.sourceSpan, ast.expression.visit(this));
|
|
4497
4685
|
}
|
|
4686
|
+
visitTypeofExpresion(ast, context) {
|
|
4687
|
+
return new TypeofExpression(ast.span, ast.sourceSpan, ast.expression.visit(this));
|
|
4688
|
+
}
|
|
4498
4689
|
visitNonNullAssert(ast, context) {
|
|
4499
4690
|
return new NonNullAssert(ast.span, ast.sourceSpan, ast.expression.visit(this));
|
|
4500
4691
|
}
|
|
@@ -4613,6 +4804,13 @@ class AstMemoryEfficientTransformer {
|
|
|
4613
4804
|
}
|
|
4614
4805
|
return ast;
|
|
4615
4806
|
}
|
|
4807
|
+
visitTypeofExpresion(ast, context) {
|
|
4808
|
+
const expression = ast.expression.visit(this);
|
|
4809
|
+
if (expression !== ast.expression) {
|
|
4810
|
+
return new TypeofExpression(ast.span, ast.sourceSpan, expression);
|
|
4811
|
+
}
|
|
4812
|
+
return ast;
|
|
4813
|
+
}
|
|
4616
4814
|
visitNonNullAssert(ast, context) {
|
|
4617
4815
|
const expression = ast.expression.visit(this);
|
|
4618
4816
|
if (expression !== ast.expression) {
|
|
@@ -4699,6 +4897,14 @@ class AstMemoryEfficientTransformer {
|
|
|
4699
4897
|
}
|
|
4700
4898
|
// Bindings
|
|
4701
4899
|
class ParsedProperty {
|
|
4900
|
+
name;
|
|
4901
|
+
expression;
|
|
4902
|
+
type;
|
|
4903
|
+
sourceSpan;
|
|
4904
|
+
keySpan;
|
|
4905
|
+
valueSpan;
|
|
4906
|
+
isLiteral;
|
|
4907
|
+
isAnimation;
|
|
4702
4908
|
constructor(name, expression, type, sourceSpan, keySpan, valueSpan) {
|
|
4703
4909
|
this.name = name;
|
|
4704
4910
|
this.expression = expression;
|
|
@@ -4727,6 +4933,13 @@ var ParsedEventType;
|
|
|
4727
4933
|
ParsedEventType[ParsedEventType["TwoWay"] = 2] = "TwoWay";
|
|
4728
4934
|
})(ParsedEventType || (ParsedEventType = {}));
|
|
4729
4935
|
class ParsedEvent {
|
|
4936
|
+
name;
|
|
4937
|
+
targetOrPhase;
|
|
4938
|
+
type;
|
|
4939
|
+
handler;
|
|
4940
|
+
sourceSpan;
|
|
4941
|
+
handlerSpan;
|
|
4942
|
+
keySpan;
|
|
4730
4943
|
constructor(name, targetOrPhase, type, handler, sourceSpan, handlerSpan, keySpan) {
|
|
4731
4944
|
this.name = name;
|
|
4732
4945
|
this.targetOrPhase = targetOrPhase;
|
|
@@ -4741,6 +4954,11 @@ class ParsedEvent {
|
|
|
4741
4954
|
* ParsedVariable represents a variable declaration in a microsyntax expression.
|
|
4742
4955
|
*/
|
|
4743
4956
|
class ParsedVariable {
|
|
4957
|
+
name;
|
|
4958
|
+
value;
|
|
4959
|
+
sourceSpan;
|
|
4960
|
+
keySpan;
|
|
4961
|
+
valueSpan;
|
|
4744
4962
|
constructor(name, value, sourceSpan, keySpan, valueSpan) {
|
|
4745
4963
|
this.name = name;
|
|
4746
4964
|
this.value = value;
|
|
@@ -4765,6 +4983,14 @@ var BindingType;
|
|
|
4765
4983
|
BindingType[BindingType["TwoWay"] = 5] = "TwoWay";
|
|
4766
4984
|
})(BindingType || (BindingType = {}));
|
|
4767
4985
|
class BoundElementProperty {
|
|
4986
|
+
name;
|
|
4987
|
+
type;
|
|
4988
|
+
securityContext;
|
|
4989
|
+
value;
|
|
4990
|
+
unit;
|
|
4991
|
+
sourceSpan;
|
|
4992
|
+
keySpan;
|
|
4993
|
+
valueSpan;
|
|
4768
4994
|
constructor(name, type, securityContext, value, unit, sourceSpan, keySpan, valueSpan) {
|
|
4769
4995
|
this.name = name;
|
|
4770
4996
|
this.type = type;
|
|
@@ -4824,6 +5050,8 @@ function mergeNsAndName(prefix, localName) {
|
|
|
4824
5050
|
* is true.
|
|
4825
5051
|
*/
|
|
4826
5052
|
class Comment$1 {
|
|
5053
|
+
value;
|
|
5054
|
+
sourceSpan;
|
|
4827
5055
|
constructor(value, sourceSpan) {
|
|
4828
5056
|
this.value = value;
|
|
4829
5057
|
this.sourceSpan = sourceSpan;
|
|
@@ -4833,6 +5061,8 @@ class Comment$1 {
|
|
|
4833
5061
|
}
|
|
4834
5062
|
}
|
|
4835
5063
|
class Text$3 {
|
|
5064
|
+
value;
|
|
5065
|
+
sourceSpan;
|
|
4836
5066
|
constructor(value, sourceSpan) {
|
|
4837
5067
|
this.value = value;
|
|
4838
5068
|
this.sourceSpan = sourceSpan;
|
|
@@ -4842,6 +5072,9 @@ class Text$3 {
|
|
|
4842
5072
|
}
|
|
4843
5073
|
}
|
|
4844
5074
|
class BoundText {
|
|
5075
|
+
value;
|
|
5076
|
+
sourceSpan;
|
|
5077
|
+
i18n;
|
|
4845
5078
|
constructor(value, sourceSpan, i18n) {
|
|
4846
5079
|
this.value = value;
|
|
4847
5080
|
this.sourceSpan = sourceSpan;
|
|
@@ -4858,6 +5091,12 @@ class BoundText {
|
|
|
4858
5091
|
* `keySpan` may also not be present for synthetic attributes from ICU expansions.
|
|
4859
5092
|
*/
|
|
4860
5093
|
class TextAttribute {
|
|
5094
|
+
name;
|
|
5095
|
+
value;
|
|
5096
|
+
sourceSpan;
|
|
5097
|
+
keySpan;
|
|
5098
|
+
valueSpan;
|
|
5099
|
+
i18n;
|
|
4861
5100
|
constructor(name, value, sourceSpan, keySpan, valueSpan, i18n) {
|
|
4862
5101
|
this.name = name;
|
|
4863
5102
|
this.value = value;
|
|
@@ -4871,6 +5110,15 @@ class TextAttribute {
|
|
|
4871
5110
|
}
|
|
4872
5111
|
}
|
|
4873
5112
|
class BoundAttribute {
|
|
5113
|
+
name;
|
|
5114
|
+
type;
|
|
5115
|
+
securityContext;
|
|
5116
|
+
value;
|
|
5117
|
+
unit;
|
|
5118
|
+
sourceSpan;
|
|
5119
|
+
keySpan;
|
|
5120
|
+
valueSpan;
|
|
5121
|
+
i18n;
|
|
4874
5122
|
constructor(name, type, securityContext, value, unit, sourceSpan, keySpan, valueSpan, i18n) {
|
|
4875
5123
|
this.name = name;
|
|
4876
5124
|
this.type = type;
|
|
@@ -4893,6 +5141,14 @@ class BoundAttribute {
|
|
|
4893
5141
|
}
|
|
4894
5142
|
}
|
|
4895
5143
|
class BoundEvent {
|
|
5144
|
+
name;
|
|
5145
|
+
type;
|
|
5146
|
+
handler;
|
|
5147
|
+
target;
|
|
5148
|
+
phase;
|
|
5149
|
+
sourceSpan;
|
|
5150
|
+
handlerSpan;
|
|
5151
|
+
keySpan;
|
|
4896
5152
|
constructor(name, type, handler, target, phase, sourceSpan, handlerSpan, keySpan) {
|
|
4897
5153
|
this.name = name;
|
|
4898
5154
|
this.type = type;
|
|
@@ -4916,6 +5172,16 @@ class BoundEvent {
|
|
|
4916
5172
|
}
|
|
4917
5173
|
}
|
|
4918
5174
|
class Element$1 {
|
|
5175
|
+
name;
|
|
5176
|
+
attributes;
|
|
5177
|
+
inputs;
|
|
5178
|
+
outputs;
|
|
5179
|
+
children;
|
|
5180
|
+
references;
|
|
5181
|
+
sourceSpan;
|
|
5182
|
+
startSourceSpan;
|
|
5183
|
+
endSourceSpan;
|
|
5184
|
+
i18n;
|
|
4919
5185
|
constructor(name, attributes, inputs, outputs, children, references, sourceSpan, startSourceSpan, endSourceSpan, i18n) {
|
|
4920
5186
|
this.name = name;
|
|
4921
5187
|
this.attributes = attributes;
|
|
@@ -4933,6 +5199,11 @@ class Element$1 {
|
|
|
4933
5199
|
}
|
|
4934
5200
|
}
|
|
4935
5201
|
class DeferredTrigger {
|
|
5202
|
+
nameSpan;
|
|
5203
|
+
sourceSpan;
|
|
5204
|
+
prefetchSpan;
|
|
5205
|
+
whenOrOnSourceSpan;
|
|
5206
|
+
hydrateSpan;
|
|
4936
5207
|
constructor(nameSpan, sourceSpan, prefetchSpan, whenOrOnSourceSpan, hydrateSpan) {
|
|
4937
5208
|
this.nameSpan = nameSpan;
|
|
4938
5209
|
this.sourceSpan = sourceSpan;
|
|
@@ -4945,6 +5216,7 @@ class DeferredTrigger {
|
|
|
4945
5216
|
}
|
|
4946
5217
|
}
|
|
4947
5218
|
class BoundDeferredTrigger extends DeferredTrigger {
|
|
5219
|
+
value;
|
|
4948
5220
|
constructor(value, sourceSpan, prefetchSpan, whenSourceSpan, hydrateSpan) {
|
|
4949
5221
|
// BoundDeferredTrigger is for 'when' triggers. These aren't really "triggers" and don't have a
|
|
4950
5222
|
// nameSpan. Trigger names are the built in event triggers like hover, interaction, etc.
|
|
@@ -4959,30 +5231,38 @@ class IdleDeferredTrigger extends DeferredTrigger {
|
|
|
4959
5231
|
class ImmediateDeferredTrigger extends DeferredTrigger {
|
|
4960
5232
|
}
|
|
4961
5233
|
class HoverDeferredTrigger extends DeferredTrigger {
|
|
5234
|
+
reference;
|
|
4962
5235
|
constructor(reference, nameSpan, sourceSpan, prefetchSpan, onSourceSpan, hydrateSpan) {
|
|
4963
5236
|
super(nameSpan, sourceSpan, prefetchSpan, onSourceSpan, hydrateSpan);
|
|
4964
5237
|
this.reference = reference;
|
|
4965
5238
|
}
|
|
4966
5239
|
}
|
|
4967
5240
|
class TimerDeferredTrigger extends DeferredTrigger {
|
|
5241
|
+
delay;
|
|
4968
5242
|
constructor(delay, nameSpan, sourceSpan, prefetchSpan, onSourceSpan, hydrateSpan) {
|
|
4969
5243
|
super(nameSpan, sourceSpan, prefetchSpan, onSourceSpan, hydrateSpan);
|
|
4970
5244
|
this.delay = delay;
|
|
4971
5245
|
}
|
|
4972
5246
|
}
|
|
4973
5247
|
class InteractionDeferredTrigger extends DeferredTrigger {
|
|
5248
|
+
reference;
|
|
4974
5249
|
constructor(reference, nameSpan, sourceSpan, prefetchSpan, onSourceSpan, hydrateSpan) {
|
|
4975
5250
|
super(nameSpan, sourceSpan, prefetchSpan, onSourceSpan, hydrateSpan);
|
|
4976
5251
|
this.reference = reference;
|
|
4977
5252
|
}
|
|
4978
5253
|
}
|
|
4979
5254
|
class ViewportDeferredTrigger extends DeferredTrigger {
|
|
5255
|
+
reference;
|
|
4980
5256
|
constructor(reference, nameSpan, sourceSpan, prefetchSpan, onSourceSpan, hydrateSpan) {
|
|
4981
5257
|
super(nameSpan, sourceSpan, prefetchSpan, onSourceSpan, hydrateSpan);
|
|
4982
5258
|
this.reference = reference;
|
|
4983
5259
|
}
|
|
4984
5260
|
}
|
|
4985
5261
|
class BlockNode {
|
|
5262
|
+
nameSpan;
|
|
5263
|
+
sourceSpan;
|
|
5264
|
+
startSourceSpan;
|
|
5265
|
+
endSourceSpan;
|
|
4986
5266
|
constructor(nameSpan, sourceSpan, startSourceSpan, endSourceSpan) {
|
|
4987
5267
|
this.nameSpan = nameSpan;
|
|
4988
5268
|
this.sourceSpan = sourceSpan;
|
|
@@ -4991,6 +5271,9 @@ class BlockNode {
|
|
|
4991
5271
|
}
|
|
4992
5272
|
}
|
|
4993
5273
|
class DeferredBlockPlaceholder extends BlockNode {
|
|
5274
|
+
children;
|
|
5275
|
+
minimumTime;
|
|
5276
|
+
i18n;
|
|
4994
5277
|
constructor(children, minimumTime, nameSpan, sourceSpan, startSourceSpan, endSourceSpan, i18n) {
|
|
4995
5278
|
super(nameSpan, sourceSpan, startSourceSpan, endSourceSpan);
|
|
4996
5279
|
this.children = children;
|
|
@@ -5002,6 +5285,10 @@ class DeferredBlockPlaceholder extends BlockNode {
|
|
|
5002
5285
|
}
|
|
5003
5286
|
}
|
|
5004
5287
|
class DeferredBlockLoading extends BlockNode {
|
|
5288
|
+
children;
|
|
5289
|
+
afterTime;
|
|
5290
|
+
minimumTime;
|
|
5291
|
+
i18n;
|
|
5005
5292
|
constructor(children, afterTime, minimumTime, nameSpan, sourceSpan, startSourceSpan, endSourceSpan, i18n) {
|
|
5006
5293
|
super(nameSpan, sourceSpan, startSourceSpan, endSourceSpan);
|
|
5007
5294
|
this.children = children;
|
|
@@ -5014,6 +5301,8 @@ class DeferredBlockLoading extends BlockNode {
|
|
|
5014
5301
|
}
|
|
5015
5302
|
}
|
|
5016
5303
|
class DeferredBlockError extends BlockNode {
|
|
5304
|
+
children;
|
|
5305
|
+
i18n;
|
|
5017
5306
|
constructor(children, nameSpan, sourceSpan, startSourceSpan, endSourceSpan, i18n) {
|
|
5018
5307
|
super(nameSpan, sourceSpan, startSourceSpan, endSourceSpan);
|
|
5019
5308
|
this.children = children;
|
|
@@ -5024,6 +5313,18 @@ class DeferredBlockError extends BlockNode {
|
|
|
5024
5313
|
}
|
|
5025
5314
|
}
|
|
5026
5315
|
class DeferredBlock extends BlockNode {
|
|
5316
|
+
children;
|
|
5317
|
+
placeholder;
|
|
5318
|
+
loading;
|
|
5319
|
+
error;
|
|
5320
|
+
mainBlockSpan;
|
|
5321
|
+
i18n;
|
|
5322
|
+
triggers;
|
|
5323
|
+
prefetchTriggers;
|
|
5324
|
+
hydrateTriggers;
|
|
5325
|
+
definedTriggers;
|
|
5326
|
+
definedPrefetchTriggers;
|
|
5327
|
+
definedHydrateTriggers;
|
|
5027
5328
|
constructor(children, triggers, prefetchTriggers, hydrateTriggers, placeholder, loading, error, nameSpan, sourceSpan, mainBlockSpan, startSourceSpan, endSourceSpan, i18n) {
|
|
5028
5329
|
super(nameSpan, sourceSpan, startSourceSpan, endSourceSpan);
|
|
5029
5330
|
this.children = children;
|
|
@@ -5058,6 +5359,9 @@ class DeferredBlock extends BlockNode {
|
|
|
5058
5359
|
}
|
|
5059
5360
|
}
|
|
5060
5361
|
class SwitchBlock extends BlockNode {
|
|
5362
|
+
expression;
|
|
5363
|
+
cases;
|
|
5364
|
+
unknownBlocks;
|
|
5061
5365
|
constructor(expression, cases,
|
|
5062
5366
|
/**
|
|
5063
5367
|
* These blocks are only captured to allow for autocompletion in the language service. They
|
|
@@ -5074,6 +5378,9 @@ class SwitchBlock extends BlockNode {
|
|
|
5074
5378
|
}
|
|
5075
5379
|
}
|
|
5076
5380
|
class SwitchBlockCase extends BlockNode {
|
|
5381
|
+
expression;
|
|
5382
|
+
children;
|
|
5383
|
+
i18n;
|
|
5077
5384
|
constructor(expression, children, sourceSpan, startSourceSpan, endSourceSpan, nameSpan, i18n) {
|
|
5078
5385
|
super(nameSpan, sourceSpan, startSourceSpan, endSourceSpan);
|
|
5079
5386
|
this.expression = expression;
|
|
@@ -5085,6 +5392,15 @@ class SwitchBlockCase extends BlockNode {
|
|
|
5085
5392
|
}
|
|
5086
5393
|
}
|
|
5087
5394
|
class ForLoopBlock extends BlockNode {
|
|
5395
|
+
item;
|
|
5396
|
+
expression;
|
|
5397
|
+
trackBy;
|
|
5398
|
+
trackKeywordSpan;
|
|
5399
|
+
contextVariables;
|
|
5400
|
+
children;
|
|
5401
|
+
empty;
|
|
5402
|
+
mainBlockSpan;
|
|
5403
|
+
i18n;
|
|
5088
5404
|
constructor(item, expression, trackBy, trackKeywordSpan, contextVariables, children, empty, sourceSpan, mainBlockSpan, startSourceSpan, endSourceSpan, nameSpan, i18n) {
|
|
5089
5405
|
super(nameSpan, sourceSpan, startSourceSpan, endSourceSpan);
|
|
5090
5406
|
this.item = item;
|
|
@@ -5102,6 +5418,8 @@ class ForLoopBlock extends BlockNode {
|
|
|
5102
5418
|
}
|
|
5103
5419
|
}
|
|
5104
5420
|
class ForLoopBlockEmpty extends BlockNode {
|
|
5421
|
+
children;
|
|
5422
|
+
i18n;
|
|
5105
5423
|
constructor(children, sourceSpan, startSourceSpan, endSourceSpan, nameSpan, i18n) {
|
|
5106
5424
|
super(nameSpan, sourceSpan, startSourceSpan, endSourceSpan);
|
|
5107
5425
|
this.children = children;
|
|
@@ -5112,6 +5430,7 @@ class ForLoopBlockEmpty extends BlockNode {
|
|
|
5112
5430
|
}
|
|
5113
5431
|
}
|
|
5114
5432
|
class IfBlock extends BlockNode {
|
|
5433
|
+
branches;
|
|
5115
5434
|
constructor(branches, sourceSpan, startSourceSpan, endSourceSpan, nameSpan) {
|
|
5116
5435
|
super(nameSpan, sourceSpan, startSourceSpan, endSourceSpan);
|
|
5117
5436
|
this.branches = branches;
|
|
@@ -5121,6 +5440,10 @@ class IfBlock extends BlockNode {
|
|
|
5121
5440
|
}
|
|
5122
5441
|
}
|
|
5123
5442
|
class IfBlockBranch extends BlockNode {
|
|
5443
|
+
expression;
|
|
5444
|
+
children;
|
|
5445
|
+
expressionAlias;
|
|
5446
|
+
i18n;
|
|
5124
5447
|
constructor(expression, children, expressionAlias, sourceSpan, startSourceSpan, endSourceSpan, nameSpan, i18n) {
|
|
5125
5448
|
super(nameSpan, sourceSpan, startSourceSpan, endSourceSpan);
|
|
5126
5449
|
this.expression = expression;
|
|
@@ -5133,6 +5456,9 @@ class IfBlockBranch extends BlockNode {
|
|
|
5133
5456
|
}
|
|
5134
5457
|
}
|
|
5135
5458
|
class UnknownBlock {
|
|
5459
|
+
name;
|
|
5460
|
+
sourceSpan;
|
|
5461
|
+
nameSpan;
|
|
5136
5462
|
constructor(name, sourceSpan, nameSpan) {
|
|
5137
5463
|
this.name = name;
|
|
5138
5464
|
this.sourceSpan = sourceSpan;
|
|
@@ -5143,6 +5469,11 @@ class UnknownBlock {
|
|
|
5143
5469
|
}
|
|
5144
5470
|
}
|
|
5145
5471
|
class LetDeclaration$1 {
|
|
5472
|
+
name;
|
|
5473
|
+
value;
|
|
5474
|
+
sourceSpan;
|
|
5475
|
+
nameSpan;
|
|
5476
|
+
valueSpan;
|
|
5146
5477
|
constructor(name, value, sourceSpan, nameSpan, valueSpan) {
|
|
5147
5478
|
this.name = name;
|
|
5148
5479
|
this.value = value;
|
|
@@ -5155,6 +5486,18 @@ class LetDeclaration$1 {
|
|
|
5155
5486
|
}
|
|
5156
5487
|
}
|
|
5157
5488
|
class Template {
|
|
5489
|
+
tagName;
|
|
5490
|
+
attributes;
|
|
5491
|
+
inputs;
|
|
5492
|
+
outputs;
|
|
5493
|
+
templateAttrs;
|
|
5494
|
+
children;
|
|
5495
|
+
references;
|
|
5496
|
+
variables;
|
|
5497
|
+
sourceSpan;
|
|
5498
|
+
startSourceSpan;
|
|
5499
|
+
endSourceSpan;
|
|
5500
|
+
i18n;
|
|
5158
5501
|
constructor(
|
|
5159
5502
|
// tagName is the name of the container element, if applicable.
|
|
5160
5503
|
// `null` is a special case for when there is a structural directive on an `ng-template` so
|
|
@@ -5179,19 +5522,29 @@ class Template {
|
|
|
5179
5522
|
}
|
|
5180
5523
|
}
|
|
5181
5524
|
class Content {
|
|
5525
|
+
selector;
|
|
5526
|
+
attributes;
|
|
5527
|
+
children;
|
|
5528
|
+
sourceSpan;
|
|
5529
|
+
i18n;
|
|
5530
|
+
name = 'ng-content';
|
|
5182
5531
|
constructor(selector, attributes, children, sourceSpan, i18n) {
|
|
5183
5532
|
this.selector = selector;
|
|
5184
5533
|
this.attributes = attributes;
|
|
5185
5534
|
this.children = children;
|
|
5186
5535
|
this.sourceSpan = sourceSpan;
|
|
5187
5536
|
this.i18n = i18n;
|
|
5188
|
-
this.name = 'ng-content';
|
|
5189
5537
|
}
|
|
5190
5538
|
visit(visitor) {
|
|
5191
5539
|
return visitor.visitContent(this);
|
|
5192
5540
|
}
|
|
5193
5541
|
}
|
|
5194
5542
|
class Variable {
|
|
5543
|
+
name;
|
|
5544
|
+
value;
|
|
5545
|
+
sourceSpan;
|
|
5546
|
+
keySpan;
|
|
5547
|
+
valueSpan;
|
|
5195
5548
|
constructor(name, value, sourceSpan, keySpan, valueSpan) {
|
|
5196
5549
|
this.name = name;
|
|
5197
5550
|
this.value = value;
|
|
@@ -5204,6 +5557,11 @@ class Variable {
|
|
|
5204
5557
|
}
|
|
5205
5558
|
}
|
|
5206
5559
|
class Reference {
|
|
5560
|
+
name;
|
|
5561
|
+
value;
|
|
5562
|
+
sourceSpan;
|
|
5563
|
+
keySpan;
|
|
5564
|
+
valueSpan;
|
|
5207
5565
|
constructor(name, value, sourceSpan, keySpan, valueSpan) {
|
|
5208
5566
|
this.name = name;
|
|
5209
5567
|
this.value = value;
|
|
@@ -5216,6 +5574,10 @@ class Reference {
|
|
|
5216
5574
|
}
|
|
5217
5575
|
}
|
|
5218
5576
|
class Icu$1 {
|
|
5577
|
+
vars;
|
|
5578
|
+
placeholders;
|
|
5579
|
+
sourceSpan;
|
|
5580
|
+
i18n;
|
|
5219
5581
|
constructor(vars, placeholders, sourceSpan, i18n) {
|
|
5220
5582
|
this.vars = vars;
|
|
5221
5583
|
this.placeholders = placeholders;
|
|
@@ -5310,6 +5672,17 @@ function visitAll$1(visitor, nodes) {
|
|
|
5310
5672
|
}
|
|
5311
5673
|
|
|
5312
5674
|
class Message {
|
|
5675
|
+
nodes;
|
|
5676
|
+
placeholders;
|
|
5677
|
+
placeholderToMessage;
|
|
5678
|
+
meaning;
|
|
5679
|
+
description;
|
|
5680
|
+
customId;
|
|
5681
|
+
sources;
|
|
5682
|
+
id;
|
|
5683
|
+
/** The ids to use if there are no custom id and if `i18nLegacyMessageIdFormat` is not empty */
|
|
5684
|
+
legacyIds = [];
|
|
5685
|
+
messageString;
|
|
5313
5686
|
/**
|
|
5314
5687
|
* @param nodes message AST
|
|
5315
5688
|
* @param placeholders maps placeholder names to static content and their source spans
|
|
@@ -5325,8 +5698,6 @@ class Message {
|
|
|
5325
5698
|
this.meaning = meaning;
|
|
5326
5699
|
this.description = description;
|
|
5327
5700
|
this.customId = customId;
|
|
5328
|
-
/** The ids to use if there are no custom id and if `i18nLegacyMessageIdFormat` is not empty */
|
|
5329
|
-
this.legacyIds = [];
|
|
5330
5701
|
this.id = this.customId;
|
|
5331
5702
|
this.messageString = serializeMessage(this.nodes);
|
|
5332
5703
|
if (nodes.length) {
|
|
@@ -5346,6 +5717,8 @@ class Message {
|
|
|
5346
5717
|
}
|
|
5347
5718
|
}
|
|
5348
5719
|
class Text$2 {
|
|
5720
|
+
value;
|
|
5721
|
+
sourceSpan;
|
|
5349
5722
|
constructor(value, sourceSpan) {
|
|
5350
5723
|
this.value = value;
|
|
5351
5724
|
this.sourceSpan = sourceSpan;
|
|
@@ -5356,6 +5729,8 @@ class Text$2 {
|
|
|
5356
5729
|
}
|
|
5357
5730
|
// TODO(vicb): do we really need this node (vs an array) ?
|
|
5358
5731
|
class Container {
|
|
5732
|
+
children;
|
|
5733
|
+
sourceSpan;
|
|
5359
5734
|
constructor(children, sourceSpan) {
|
|
5360
5735
|
this.children = children;
|
|
5361
5736
|
this.sourceSpan = sourceSpan;
|
|
@@ -5365,6 +5740,11 @@ class Container {
|
|
|
5365
5740
|
}
|
|
5366
5741
|
}
|
|
5367
5742
|
class Icu {
|
|
5743
|
+
expression;
|
|
5744
|
+
type;
|
|
5745
|
+
cases;
|
|
5746
|
+
sourceSpan;
|
|
5747
|
+
expressionPlaceholder;
|
|
5368
5748
|
constructor(expression, type, cases, sourceSpan, expressionPlaceholder) {
|
|
5369
5749
|
this.expression = expression;
|
|
5370
5750
|
this.type = type;
|
|
@@ -5377,6 +5757,15 @@ class Icu {
|
|
|
5377
5757
|
}
|
|
5378
5758
|
}
|
|
5379
5759
|
class TagPlaceholder {
|
|
5760
|
+
tag;
|
|
5761
|
+
attrs;
|
|
5762
|
+
startName;
|
|
5763
|
+
closeName;
|
|
5764
|
+
children;
|
|
5765
|
+
isVoid;
|
|
5766
|
+
sourceSpan;
|
|
5767
|
+
startSourceSpan;
|
|
5768
|
+
endSourceSpan;
|
|
5380
5769
|
constructor(tag, attrs, startName, closeName, children, isVoid,
|
|
5381
5770
|
// TODO sourceSpan should cover all (we need a startSourceSpan and endSourceSpan)
|
|
5382
5771
|
sourceSpan, startSourceSpan, endSourceSpan) {
|
|
@@ -5395,6 +5784,9 @@ class TagPlaceholder {
|
|
|
5395
5784
|
}
|
|
5396
5785
|
}
|
|
5397
5786
|
class Placeholder {
|
|
5787
|
+
value;
|
|
5788
|
+
name;
|
|
5789
|
+
sourceSpan;
|
|
5398
5790
|
constructor(value, name, sourceSpan) {
|
|
5399
5791
|
this.value = value;
|
|
5400
5792
|
this.name = name;
|
|
@@ -5405,6 +5797,11 @@ class Placeholder {
|
|
|
5405
5797
|
}
|
|
5406
5798
|
}
|
|
5407
5799
|
class IcuPlaceholder {
|
|
5800
|
+
value;
|
|
5801
|
+
name;
|
|
5802
|
+
sourceSpan;
|
|
5803
|
+
/** Used to capture a message computed from a previous processing pass (see `setI18nRefs()`). */
|
|
5804
|
+
previousMessage;
|
|
5408
5805
|
constructor(value, name, sourceSpan) {
|
|
5409
5806
|
this.value = value;
|
|
5410
5807
|
this.name = name;
|
|
@@ -5415,6 +5812,14 @@ class IcuPlaceholder {
|
|
|
5415
5812
|
}
|
|
5416
5813
|
}
|
|
5417
5814
|
class BlockPlaceholder {
|
|
5815
|
+
name;
|
|
5816
|
+
parameters;
|
|
5817
|
+
startName;
|
|
5818
|
+
closeName;
|
|
5819
|
+
children;
|
|
5820
|
+
sourceSpan;
|
|
5821
|
+
startSourceSpan;
|
|
5822
|
+
endSourceSpan;
|
|
5418
5823
|
constructor(name, parameters, startName, closeName, children, sourceSpan, startSourceSpan, endSourceSpan) {
|
|
5419
5824
|
this.name = name;
|
|
5420
5825
|
this.parameters = parameters;
|
|
@@ -5525,13 +5930,14 @@ class Serializer {
|
|
|
5525
5930
|
* A simple mapper that take a function to transform an internal name to a public name
|
|
5526
5931
|
*/
|
|
5527
5932
|
class SimplePlaceholderMapper extends RecurseVisitor {
|
|
5933
|
+
mapName;
|
|
5934
|
+
internalToPublic = {};
|
|
5935
|
+
publicToNextId = {};
|
|
5936
|
+
publicToInternal = {};
|
|
5528
5937
|
// create a mapping from the message
|
|
5529
5938
|
constructor(message, mapName) {
|
|
5530
5939
|
super();
|
|
5531
5940
|
this.mapName = mapName;
|
|
5532
|
-
this.internalToPublic = {};
|
|
5533
|
-
this.publicToNextId = {};
|
|
5534
|
-
this.publicToInternal = {};
|
|
5535
5941
|
message.nodes.forEach((node) => node.visit(this));
|
|
5536
5942
|
}
|
|
5537
5943
|
toPublicName(internalName) {
|
|
@@ -5609,12 +6015,12 @@ class _Visitor$2 {
|
|
|
5609
6015
|
}
|
|
5610
6016
|
}
|
|
5611
6017
|
const _visitor = new _Visitor$2();
|
|
5612
|
-
function serialize(nodes) {
|
|
6018
|
+
function serialize$1(nodes) {
|
|
5613
6019
|
return nodes.map((node) => node.visit(_visitor)).join('');
|
|
5614
6020
|
}
|
|
5615
6021
|
class Declaration {
|
|
6022
|
+
attrs = {};
|
|
5616
6023
|
constructor(unescapedAttrs) {
|
|
5617
|
-
this.attrs = {};
|
|
5618
6024
|
Object.keys(unescapedAttrs).forEach((k) => {
|
|
5619
6025
|
this.attrs[k] = escapeXml(unescapedAttrs[k]);
|
|
5620
6026
|
});
|
|
@@ -5624,6 +6030,8 @@ class Declaration {
|
|
|
5624
6030
|
}
|
|
5625
6031
|
}
|
|
5626
6032
|
class Doctype {
|
|
6033
|
+
rootTag;
|
|
6034
|
+
dtd;
|
|
5627
6035
|
constructor(rootTag, dtd) {
|
|
5628
6036
|
this.rootTag = rootTag;
|
|
5629
6037
|
this.dtd = dtd;
|
|
@@ -5633,10 +6041,12 @@ class Doctype {
|
|
|
5633
6041
|
}
|
|
5634
6042
|
}
|
|
5635
6043
|
class Tag {
|
|
6044
|
+
name;
|
|
6045
|
+
children;
|
|
6046
|
+
attrs = {};
|
|
5636
6047
|
constructor(name, unescapedAttrs = {}, children = []) {
|
|
5637
6048
|
this.name = name;
|
|
5638
6049
|
this.children = children;
|
|
5639
|
-
this.attrs = {};
|
|
5640
6050
|
Object.keys(unescapedAttrs).forEach((k) => {
|
|
5641
6051
|
this.attrs[k] = escapeXml(unescapedAttrs[k]);
|
|
5642
6052
|
});
|
|
@@ -5646,6 +6056,7 @@ class Tag {
|
|
|
5646
6056
|
}
|
|
5647
6057
|
}
|
|
5648
6058
|
class Text$1 {
|
|
6059
|
+
value;
|
|
5649
6060
|
constructor(unescapedValue) {
|
|
5650
6061
|
this.value = escapeXml(unescapedValue);
|
|
5651
6062
|
}
|
|
@@ -5703,10 +6114,6 @@ const _DOCTYPE = `<!ELEMENT messagebundle (msg)*>
|
|
|
5703
6114
|
|
|
5704
6115
|
<!ELEMENT ex (#PCDATA)>`;
|
|
5705
6116
|
class Xmb extends Serializer {
|
|
5706
|
-
constructor(preservePlaceholders = true) {
|
|
5707
|
-
super();
|
|
5708
|
-
this.preservePlaceholders = preservePlaceholders;
|
|
5709
|
-
}
|
|
5710
6117
|
write(messages, locale) {
|
|
5711
6118
|
const exampleVisitor = new ExampleVisitor();
|
|
5712
6119
|
const visitor = new _Visitor$1();
|
|
@@ -5729,7 +6136,7 @@ class Xmb extends Serializer {
|
|
|
5729
6136
|
rootNode.children.push(new CR(2), new Tag(_MESSAGE_TAG, attrs, [...sourceTags, ...visitor.serialize(message.nodes)]));
|
|
5730
6137
|
});
|
|
5731
6138
|
rootNode.children.push(new CR());
|
|
5732
|
-
return serialize([
|
|
6139
|
+
return serialize$1([
|
|
5733
6140
|
new Declaration({ version: '1.0', encoding: 'UTF-8' }),
|
|
5734
6141
|
new CR(),
|
|
5735
6142
|
new Doctype(_MESSAGES_TAG, _DOCTYPE),
|
|
@@ -5742,7 +6149,7 @@ class Xmb extends Serializer {
|
|
|
5742
6149
|
throw new Error('Unsupported');
|
|
5743
6150
|
}
|
|
5744
6151
|
digest(message) {
|
|
5745
|
-
return digest(message
|
|
6152
|
+
return digest(message);
|
|
5746
6153
|
}
|
|
5747
6154
|
createNameMapper(message) {
|
|
5748
6155
|
return new SimplePlaceholderMapper(message, toPublicName);
|
|
@@ -5823,8 +6230,8 @@ class _Visitor$1 {
|
|
|
5823
6230
|
return [].concat(...nodes.map((node) => node.visit(this)));
|
|
5824
6231
|
}
|
|
5825
6232
|
}
|
|
5826
|
-
function digest(message
|
|
5827
|
-
return decimalDigest(message
|
|
6233
|
+
function digest(message) {
|
|
6234
|
+
return decimalDigest(message);
|
|
5828
6235
|
}
|
|
5829
6236
|
// TC requires at least one non-empty example on placeholders
|
|
5830
6237
|
class ExampleVisitor {
|
|
@@ -6028,9 +6435,7 @@ function conditionallyCreateDirectiveBindingLiteral(map, forInputs) {
|
|
|
6028
6435
|
* property names that are set can be resolved to their documented declaration.
|
|
6029
6436
|
*/
|
|
6030
6437
|
class DefinitionMap {
|
|
6031
|
-
|
|
6032
|
-
this.values = [];
|
|
6033
|
-
}
|
|
6438
|
+
values = [];
|
|
6034
6439
|
set(key, value) {
|
|
6035
6440
|
if (value) {
|
|
6036
6441
|
const existing = this.values.find((value) => value.key === key);
|
|
@@ -6248,6 +6653,8 @@ function assertInterpolationSymbols(identifier, value) {
|
|
|
6248
6653
|
}
|
|
6249
6654
|
|
|
6250
6655
|
class InterpolationConfig {
|
|
6656
|
+
start;
|
|
6657
|
+
end;
|
|
6251
6658
|
static fromArray(markers) {
|
|
6252
6659
|
if (!markers) {
|
|
6253
6660
|
return DEFAULT_INTERPOLATION_CONFIG;
|
|
@@ -6347,6 +6754,10 @@ function isQuote(code) {
|
|
|
6347
6754
|
}
|
|
6348
6755
|
|
|
6349
6756
|
class ParseLocation {
|
|
6757
|
+
file;
|
|
6758
|
+
offset;
|
|
6759
|
+
line;
|
|
6760
|
+
col;
|
|
6350
6761
|
constructor(file, offset, line, col) {
|
|
6351
6762
|
this.file = file;
|
|
6352
6763
|
this.offset = offset;
|
|
@@ -6432,12 +6843,18 @@ class ParseLocation {
|
|
|
6432
6843
|
}
|
|
6433
6844
|
}
|
|
6434
6845
|
class ParseSourceFile {
|
|
6846
|
+
content;
|
|
6847
|
+
url;
|
|
6435
6848
|
constructor(content, url) {
|
|
6436
6849
|
this.content = content;
|
|
6437
6850
|
this.url = url;
|
|
6438
6851
|
}
|
|
6439
6852
|
}
|
|
6440
6853
|
class ParseSourceSpan {
|
|
6854
|
+
start;
|
|
6855
|
+
end;
|
|
6856
|
+
fullStart;
|
|
6857
|
+
details;
|
|
6441
6858
|
/**
|
|
6442
6859
|
* Create an object that holds information about spans of tokens/nodes captured during
|
|
6443
6860
|
* lexing/parsing of text.
|
|
@@ -6477,6 +6894,9 @@ var ParseErrorLevel;
|
|
|
6477
6894
|
ParseErrorLevel[ParseErrorLevel["ERROR"] = 1] = "ERROR";
|
|
6478
6895
|
})(ParseErrorLevel || (ParseErrorLevel = {}));
|
|
6479
6896
|
class ParseError {
|
|
6897
|
+
span;
|
|
6898
|
+
msg;
|
|
6899
|
+
level;
|
|
6480
6900
|
constructor(span, msg, level = ParseErrorLevel.ERROR) {
|
|
6481
6901
|
this.span = span;
|
|
6482
6902
|
this.msg = msg;
|
|
@@ -6821,12 +7241,13 @@ class JitEvaluator {
|
|
|
6821
7241
|
* An Angular AST visitor that converts AST nodes into executable JavaScript code.
|
|
6822
7242
|
*/
|
|
6823
7243
|
class JitEmitterVisitor extends AbstractJsEmitterVisitor {
|
|
7244
|
+
refResolver;
|
|
7245
|
+
_evalArgNames = [];
|
|
7246
|
+
_evalArgValues = [];
|
|
7247
|
+
_evalExportedVars = [];
|
|
6824
7248
|
constructor(refResolver) {
|
|
6825
7249
|
super();
|
|
6826
7250
|
this.refResolver = refResolver;
|
|
6827
|
-
this._evalArgNames = [];
|
|
6828
|
-
this._evalArgValues = [];
|
|
6829
|
-
this._evalExportedVars = [];
|
|
6830
7251
|
}
|
|
6831
7252
|
createReturnStmt(ctx) {
|
|
6832
7253
|
const stmt = new ReturnStatement(new LiteralMapExpr(this._evalExportedVars.map((resultVar) => new LiteralMapEntry(resultVar, variable(resultVar), false))));
|
|
@@ -6898,6 +7319,7 @@ function createInjectorType(meta) {
|
|
|
6898
7319
|
* Only supports `resolveExternalReference`, all other methods throw.
|
|
6899
7320
|
*/
|
|
6900
7321
|
class R3JitReflector {
|
|
7322
|
+
context;
|
|
6901
7323
|
constructor(context) {
|
|
6902
7324
|
this.context = context;
|
|
6903
7325
|
}
|
|
@@ -7120,8 +7542,8 @@ function compilePipeFromMetadata(metadata) {
|
|
|
7120
7542
|
definitionMapValues.push({ key: 'type', value: metadata.type.value, quoted: false });
|
|
7121
7543
|
// e.g. `pure: true`
|
|
7122
7544
|
definitionMapValues.push({ key: 'pure', value: literal(metadata.pure), quoted: false });
|
|
7123
|
-
if (metadata.isStandalone) {
|
|
7124
|
-
definitionMapValues.push({ key: 'standalone', value: literal(
|
|
7545
|
+
if (metadata.isStandalone === false) {
|
|
7546
|
+
definitionMapValues.push({ key: 'standalone', value: literal(false), quoted: false });
|
|
7125
7547
|
}
|
|
7126
7548
|
const expression = importExpr(Identifiers.definePipe)
|
|
7127
7549
|
.callFn([literalMap(definitionMapValues)], undefined, true);
|
|
@@ -7299,23 +7721,6 @@ const scopedAtRuleIdentifiers = [
|
|
|
7299
7721
|
in comments in lieu of the next selector when running under polyfill.
|
|
7300
7722
|
*/
|
|
7301
7723
|
class ShadowCss {
|
|
7302
|
-
constructor() {
|
|
7303
|
-
/**
|
|
7304
|
-
* Regular expression used to extrapolate the possible keyframes from an
|
|
7305
|
-
* animation declaration (with possibly multiple animation definitions)
|
|
7306
|
-
*
|
|
7307
|
-
* The regular expression can be divided in three parts
|
|
7308
|
-
* - (^|\s+|,)
|
|
7309
|
-
* captures how many (if any) leading whitespaces are present or a comma
|
|
7310
|
-
* - (?:(?:(['"])((?:\\\\|\\\2|(?!\2).)+)\2)|(-?[A-Za-z][\w\-]*))
|
|
7311
|
-
* captures two different possible keyframes, ones which are quoted or ones which are valid css
|
|
7312
|
-
* indents (custom properties excluded)
|
|
7313
|
-
* - (?=[,\s;]|$)
|
|
7314
|
-
* simply matches the end of the possible keyframe, valid endings are: a comma, a space, a
|
|
7315
|
-
* semicolon or the end of the string
|
|
7316
|
-
*/
|
|
7317
|
-
this._animationDeclarationKeyframesRe = /(^|\s+|,)(?:(?:(['"])((?:\\\\|\\\2|(?!\2).)+)\2)|(-?[A-Za-z][\w\-]*))(?=[,\s]|$)/g;
|
|
7318
|
-
}
|
|
7319
7724
|
/*
|
|
7320
7725
|
* Shim some cssText with the given selector. Returns cssText that can be included in the document
|
|
7321
7726
|
*
|
|
@@ -7458,6 +7863,21 @@ class ShadowCss {
|
|
|
7458
7863
|
return `${spaces1}${quote}${name}${quote}${spaces2}`;
|
|
7459
7864
|
});
|
|
7460
7865
|
}
|
|
7866
|
+
/**
|
|
7867
|
+
* Regular expression used to extrapolate the possible keyframes from an
|
|
7868
|
+
* animation declaration (with possibly multiple animation definitions)
|
|
7869
|
+
*
|
|
7870
|
+
* The regular expression can be divided in three parts
|
|
7871
|
+
* - (^|\s+|,)
|
|
7872
|
+
* captures how many (if any) leading whitespaces are present or a comma
|
|
7873
|
+
* - (?:(?:(['"])((?:\\\\|\\\2|(?!\2).)+)\2)|(-?[A-Za-z][\w\-]*))
|
|
7874
|
+
* captures two different possible keyframes, ones which are quoted or ones which are valid css
|
|
7875
|
+
* indents (custom properties excluded)
|
|
7876
|
+
* - (?=[,\s;]|$)
|
|
7877
|
+
* simply matches the end of the possible keyframe, valid endings are: a comma, a space, a
|
|
7878
|
+
* semicolon or the end of the string
|
|
7879
|
+
*/
|
|
7880
|
+
_animationDeclarationKeyframesRe = /(^|\s+|,)(?:(?:(['"])((?:\\\\|\\\2|(?!\2).)+)\2)|(-?[A-Za-z][\w\-]*))(?=[,\s]|$)/g;
|
|
7461
7881
|
/**
|
|
7462
7882
|
* Scope an animation rule so that the keyframes mentioned in such rule
|
|
7463
7883
|
* are scoped if defined in the component's css and left untouched otherwise.
|
|
@@ -7730,6 +8150,8 @@ class ShadowCss {
|
|
|
7730
8150
|
return new CssRule(selector, rule.content);
|
|
7731
8151
|
});
|
|
7732
8152
|
}
|
|
8153
|
+
_safeSelector;
|
|
8154
|
+
_shouldScopeIndicator;
|
|
7733
8155
|
// `isParentSelector` is used to distinguish the selectors which are coming from
|
|
7734
8156
|
// the initial selector string and any nested selectors, parsed recursively,
|
|
7735
8157
|
// for example `selector = 'a:where(.one)'` could be the parent, while recursive call
|
|
@@ -7913,9 +8335,10 @@ class ShadowCss {
|
|
|
7913
8335
|
}
|
|
7914
8336
|
}
|
|
7915
8337
|
class SafeSelector {
|
|
8338
|
+
placeholders = [];
|
|
8339
|
+
index = 0;
|
|
8340
|
+
_content;
|
|
7916
8341
|
constructor(selector) {
|
|
7917
|
-
this.placeholders = [];
|
|
7918
|
-
this.index = 0;
|
|
7919
8342
|
// Replaces attribute selectors with placeholders.
|
|
7920
8343
|
// The WS in [attr="va lue"] would otherwise be interpreted as a selector separator.
|
|
7921
8344
|
selector = this._escapeRegexMatches(selector, /(\[[^\]]*\])/g);
|
|
@@ -8005,6 +8428,8 @@ const _cssCommaInPlaceholderReGlobal = new RegExp(COMMA_IN_PLACEHOLDER, 'g');
|
|
|
8005
8428
|
const _cssSemiInPlaceholderReGlobal = new RegExp(SEMI_IN_PLACEHOLDER, 'g');
|
|
8006
8429
|
const _cssColonInPlaceholderReGlobal = new RegExp(COLON_IN_PLACEHOLDER, 'g');
|
|
8007
8430
|
class CssRule {
|
|
8431
|
+
selector;
|
|
8432
|
+
content;
|
|
8008
8433
|
constructor(selector, content) {
|
|
8009
8434
|
this.selector = selector;
|
|
8010
8435
|
this.content = content;
|
|
@@ -8030,6 +8455,8 @@ function processRules(input, ruleCallback) {
|
|
|
8030
8455
|
return unescapeInStrings(escapedResult);
|
|
8031
8456
|
}
|
|
8032
8457
|
class StringWithEscapedBlocks {
|
|
8458
|
+
escapedString;
|
|
8459
|
+
blocks;
|
|
8033
8460
|
constructor(escapedString, blocks) {
|
|
8034
8461
|
this.escapedString = escapedString;
|
|
8035
8462
|
this.blocks = blocks;
|
|
@@ -8862,6 +9289,9 @@ function createInterpolateTextOp(xref, interpolation, sourceSpan) {
|
|
|
8862
9289
|
};
|
|
8863
9290
|
}
|
|
8864
9291
|
class Interpolation {
|
|
9292
|
+
strings;
|
|
9293
|
+
expressions;
|
|
9294
|
+
i18nPlaceholders;
|
|
8865
9295
|
constructor(strings, expressions, i18nPlaceholders) {
|
|
8866
9296
|
this.strings = strings;
|
|
8867
9297
|
this.expressions = expressions;
|
|
@@ -9114,7 +9544,6 @@ function createStoreLetOp(target, declaredName, value, sourceSpan) {
|
|
|
9114
9544
|
};
|
|
9115
9545
|
}
|
|
9116
9546
|
|
|
9117
|
-
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
9118
9547
|
/**
|
|
9119
9548
|
* Check whether a given `o.Expression` is a logical IR expression type.
|
|
9120
9549
|
*/
|
|
@@ -9133,10 +9562,11 @@ class ExpressionBase extends Expression {
|
|
|
9133
9562
|
* Logical expression representing a lexical read of a variable name.
|
|
9134
9563
|
*/
|
|
9135
9564
|
class LexicalReadExpr extends ExpressionBase {
|
|
9565
|
+
name;
|
|
9566
|
+
kind = ExpressionKind.LexicalRead;
|
|
9136
9567
|
constructor(name) {
|
|
9137
9568
|
super();
|
|
9138
9569
|
this.name = name;
|
|
9139
|
-
this.kind = ExpressionKind.LexicalRead;
|
|
9140
9570
|
}
|
|
9141
9571
|
visitExpression(visitor, context) { }
|
|
9142
9572
|
isEquivalent(other) {
|
|
@@ -9157,12 +9587,15 @@ class LexicalReadExpr extends ExpressionBase {
|
|
|
9157
9587
|
* Runtime operation to retrieve the value of a local reference.
|
|
9158
9588
|
*/
|
|
9159
9589
|
class ReferenceExpr extends ExpressionBase {
|
|
9590
|
+
target;
|
|
9591
|
+
targetSlot;
|
|
9592
|
+
offset;
|
|
9593
|
+
kind = ExpressionKind.Reference;
|
|
9160
9594
|
constructor(target, targetSlot, offset) {
|
|
9161
9595
|
super();
|
|
9162
9596
|
this.target = target;
|
|
9163
9597
|
this.targetSlot = targetSlot;
|
|
9164
9598
|
this.offset = offset;
|
|
9165
|
-
this.kind = ExpressionKind.Reference;
|
|
9166
9599
|
}
|
|
9167
9600
|
visitExpression() { }
|
|
9168
9601
|
isEquivalent(e) {
|
|
@@ -9177,15 +9610,17 @@ class ReferenceExpr extends ExpressionBase {
|
|
|
9177
9610
|
}
|
|
9178
9611
|
}
|
|
9179
9612
|
class StoreLetExpr extends ExpressionBase {
|
|
9180
|
-
|
|
9613
|
+
target;
|
|
9614
|
+
value;
|
|
9615
|
+
sourceSpan;
|
|
9616
|
+
kind = ExpressionKind.StoreLet;
|
|
9617
|
+
[ConsumesVarsTrait] = true;
|
|
9618
|
+
[DependsOnSlotContext] = true;
|
|
9181
9619
|
constructor(target, value, sourceSpan) {
|
|
9182
9620
|
super();
|
|
9183
9621
|
this.target = target;
|
|
9184
9622
|
this.value = value;
|
|
9185
9623
|
this.sourceSpan = sourceSpan;
|
|
9186
|
-
this.kind = ExpressionKind.StoreLet;
|
|
9187
|
-
this[_a] = true;
|
|
9188
|
-
this[_b] = true;
|
|
9189
9624
|
}
|
|
9190
9625
|
visitExpression() { }
|
|
9191
9626
|
isEquivalent(e) {
|
|
@@ -9202,11 +9637,13 @@ class StoreLetExpr extends ExpressionBase {
|
|
|
9202
9637
|
}
|
|
9203
9638
|
}
|
|
9204
9639
|
class ContextLetReferenceExpr extends ExpressionBase {
|
|
9640
|
+
target;
|
|
9641
|
+
targetSlot;
|
|
9642
|
+
kind = ExpressionKind.ContextLetReference;
|
|
9205
9643
|
constructor(target, targetSlot) {
|
|
9206
9644
|
super();
|
|
9207
9645
|
this.target = target;
|
|
9208
9646
|
this.targetSlot = targetSlot;
|
|
9209
|
-
this.kind = ExpressionKind.ContextLetReference;
|
|
9210
9647
|
}
|
|
9211
9648
|
visitExpression() { }
|
|
9212
9649
|
isEquivalent(e) {
|
|
@@ -9224,10 +9661,11 @@ class ContextLetReferenceExpr extends ExpressionBase {
|
|
|
9224
9661
|
* A reference to the current view context (usually the `ctx` variable in a template function).
|
|
9225
9662
|
*/
|
|
9226
9663
|
class ContextExpr extends ExpressionBase {
|
|
9664
|
+
view;
|
|
9665
|
+
kind = ExpressionKind.Context;
|
|
9227
9666
|
constructor(view) {
|
|
9228
9667
|
super();
|
|
9229
9668
|
this.view = view;
|
|
9230
|
-
this.kind = ExpressionKind.Context;
|
|
9231
9669
|
}
|
|
9232
9670
|
visitExpression() { }
|
|
9233
9671
|
isEquivalent(e) {
|
|
@@ -9245,10 +9683,11 @@ class ContextExpr extends ExpressionBase {
|
|
|
9245
9683
|
* A reference to the current view context inside a track function.
|
|
9246
9684
|
*/
|
|
9247
9685
|
class TrackContextExpr extends ExpressionBase {
|
|
9686
|
+
view;
|
|
9687
|
+
kind = ExpressionKind.TrackContext;
|
|
9248
9688
|
constructor(view) {
|
|
9249
9689
|
super();
|
|
9250
9690
|
this.view = view;
|
|
9251
|
-
this.kind = ExpressionKind.TrackContext;
|
|
9252
9691
|
}
|
|
9253
9692
|
visitExpression() { }
|
|
9254
9693
|
isEquivalent(e) {
|
|
@@ -9266,10 +9705,10 @@ class TrackContextExpr extends ExpressionBase {
|
|
|
9266
9705
|
* Runtime operation to navigate to the next view context in the view hierarchy.
|
|
9267
9706
|
*/
|
|
9268
9707
|
class NextContextExpr extends ExpressionBase {
|
|
9708
|
+
kind = ExpressionKind.NextContext;
|
|
9709
|
+
steps = 1;
|
|
9269
9710
|
constructor() {
|
|
9270
9711
|
super();
|
|
9271
|
-
this.kind = ExpressionKind.NextContext;
|
|
9272
|
-
this.steps = 1;
|
|
9273
9712
|
}
|
|
9274
9713
|
visitExpression() { }
|
|
9275
9714
|
isEquivalent(e) {
|
|
@@ -9292,9 +9731,9 @@ class NextContextExpr extends ExpressionBase {
|
|
|
9292
9731
|
* operation.
|
|
9293
9732
|
*/
|
|
9294
9733
|
class GetCurrentViewExpr extends ExpressionBase {
|
|
9734
|
+
kind = ExpressionKind.GetCurrentView;
|
|
9295
9735
|
constructor() {
|
|
9296
9736
|
super();
|
|
9297
|
-
this.kind = ExpressionKind.GetCurrentView;
|
|
9298
9737
|
}
|
|
9299
9738
|
visitExpression() { }
|
|
9300
9739
|
isEquivalent(e) {
|
|
@@ -9312,10 +9751,11 @@ class GetCurrentViewExpr extends ExpressionBase {
|
|
|
9312
9751
|
* Runtime operation to restore a snapshotted view.
|
|
9313
9752
|
*/
|
|
9314
9753
|
class RestoreViewExpr extends ExpressionBase {
|
|
9754
|
+
view;
|
|
9755
|
+
kind = ExpressionKind.RestoreView;
|
|
9315
9756
|
constructor(view) {
|
|
9316
9757
|
super();
|
|
9317
9758
|
this.view = view;
|
|
9318
|
-
this.kind = ExpressionKind.RestoreView;
|
|
9319
9759
|
}
|
|
9320
9760
|
visitExpression(visitor, context) {
|
|
9321
9761
|
if (typeof this.view !== 'number') {
|
|
@@ -9349,10 +9789,11 @@ class RestoreViewExpr extends ExpressionBase {
|
|
|
9349
9789
|
* Runtime operation to reset the current view context after `RestoreView`.
|
|
9350
9790
|
*/
|
|
9351
9791
|
class ResetViewExpr extends ExpressionBase {
|
|
9792
|
+
expr;
|
|
9793
|
+
kind = ExpressionKind.ResetView;
|
|
9352
9794
|
constructor(expr) {
|
|
9353
9795
|
super();
|
|
9354
9796
|
this.expr = expr;
|
|
9355
|
-
this.kind = ExpressionKind.ResetView;
|
|
9356
9797
|
}
|
|
9357
9798
|
visitExpression(visitor, context) {
|
|
9358
9799
|
this.expr.visitExpression(visitor, context);
|
|
@@ -9371,11 +9812,13 @@ class ResetViewExpr extends ExpressionBase {
|
|
|
9371
9812
|
}
|
|
9372
9813
|
}
|
|
9373
9814
|
class TwoWayBindingSetExpr extends ExpressionBase {
|
|
9815
|
+
target;
|
|
9816
|
+
value;
|
|
9817
|
+
kind = ExpressionKind.TwoWayBindingSet;
|
|
9374
9818
|
constructor(target, value) {
|
|
9375
9819
|
super();
|
|
9376
9820
|
this.target = target;
|
|
9377
9821
|
this.value = value;
|
|
9378
|
-
this.kind = ExpressionKind.TwoWayBindingSet;
|
|
9379
9822
|
}
|
|
9380
9823
|
visitExpression(visitor, context) {
|
|
9381
9824
|
this.target.visitExpression(visitor, context);
|
|
@@ -9399,11 +9842,12 @@ class TwoWayBindingSetExpr extends ExpressionBase {
|
|
|
9399
9842
|
* Read of a variable declared as an `ir.VariableOp` and referenced through its `ir.XrefId`.
|
|
9400
9843
|
*/
|
|
9401
9844
|
class ReadVariableExpr extends ExpressionBase {
|
|
9845
|
+
xref;
|
|
9846
|
+
kind = ExpressionKind.ReadVariable;
|
|
9847
|
+
name = null;
|
|
9402
9848
|
constructor(xref) {
|
|
9403
9849
|
super();
|
|
9404
9850
|
this.xref = xref;
|
|
9405
|
-
this.kind = ExpressionKind.ReadVariable;
|
|
9406
|
-
this.name = null;
|
|
9407
9851
|
}
|
|
9408
9852
|
visitExpression() { }
|
|
9409
9853
|
isEquivalent(other) {
|
|
@@ -9420,18 +9864,29 @@ class ReadVariableExpr extends ExpressionBase {
|
|
|
9420
9864
|
}
|
|
9421
9865
|
}
|
|
9422
9866
|
class PureFunctionExpr extends ExpressionBase {
|
|
9423
|
-
|
|
9867
|
+
kind = ExpressionKind.PureFunctionExpr;
|
|
9868
|
+
[ConsumesVarsTrait] = true;
|
|
9869
|
+
[UsesVarOffset] = true;
|
|
9870
|
+
varOffset = null;
|
|
9871
|
+
/**
|
|
9872
|
+
* The expression which should be memoized as a pure computation.
|
|
9873
|
+
*
|
|
9874
|
+
* This expression contains internal `PureFunctionParameterExpr`s, which are placeholders for the
|
|
9875
|
+
* positional argument expressions in `args.
|
|
9876
|
+
*/
|
|
9877
|
+
body;
|
|
9878
|
+
/**
|
|
9879
|
+
* Positional arguments to the pure function which will memoize the `body` expression, which act
|
|
9880
|
+
* as memoization keys.
|
|
9881
|
+
*/
|
|
9882
|
+
args;
|
|
9883
|
+
/**
|
|
9884
|
+
* Once extracted to the `ConstantPool`, a reference to the function which defines the computation
|
|
9885
|
+
* of `body`.
|
|
9886
|
+
*/
|
|
9887
|
+
fn = null;
|
|
9424
9888
|
constructor(expression, args) {
|
|
9425
9889
|
super();
|
|
9426
|
-
this.kind = ExpressionKind.PureFunctionExpr;
|
|
9427
|
-
this[_c] = true;
|
|
9428
|
-
this[_d] = true;
|
|
9429
|
-
this.varOffset = null;
|
|
9430
|
-
/**
|
|
9431
|
-
* Once extracted to the `ConstantPool`, a reference to the function which defines the computation
|
|
9432
|
-
* of `body`.
|
|
9433
|
-
*/
|
|
9434
|
-
this.fn = null;
|
|
9435
9890
|
this.body = expression;
|
|
9436
9891
|
this.args = args;
|
|
9437
9892
|
}
|
|
@@ -9473,10 +9928,11 @@ class PureFunctionExpr extends ExpressionBase {
|
|
|
9473
9928
|
}
|
|
9474
9929
|
}
|
|
9475
9930
|
class PureFunctionParameterExpr extends ExpressionBase {
|
|
9931
|
+
index;
|
|
9932
|
+
kind = ExpressionKind.PureFunctionParameterExpr;
|
|
9476
9933
|
constructor(index) {
|
|
9477
9934
|
super();
|
|
9478
9935
|
this.index = index;
|
|
9479
|
-
this.kind = ExpressionKind.PureFunctionParameterExpr;
|
|
9480
9936
|
}
|
|
9481
9937
|
visitExpression() { }
|
|
9482
9938
|
isEquivalent(other) {
|
|
@@ -9491,17 +9947,20 @@ class PureFunctionParameterExpr extends ExpressionBase {
|
|
|
9491
9947
|
}
|
|
9492
9948
|
}
|
|
9493
9949
|
class PipeBindingExpr extends ExpressionBase {
|
|
9494
|
-
|
|
9950
|
+
target;
|
|
9951
|
+
targetSlot;
|
|
9952
|
+
name;
|
|
9953
|
+
args;
|
|
9954
|
+
kind = ExpressionKind.PipeBinding;
|
|
9955
|
+
[ConsumesVarsTrait] = true;
|
|
9956
|
+
[UsesVarOffset] = true;
|
|
9957
|
+
varOffset = null;
|
|
9495
9958
|
constructor(target, targetSlot, name, args) {
|
|
9496
9959
|
super();
|
|
9497
9960
|
this.target = target;
|
|
9498
9961
|
this.targetSlot = targetSlot;
|
|
9499
9962
|
this.name = name;
|
|
9500
9963
|
this.args = args;
|
|
9501
|
-
this.kind = ExpressionKind.PipeBinding;
|
|
9502
|
-
this[_e] = true;
|
|
9503
|
-
this[_f] = true;
|
|
9504
|
-
this.varOffset = null;
|
|
9505
9964
|
}
|
|
9506
9965
|
visitExpression(visitor, context) {
|
|
9507
9966
|
for (const arg of this.args) {
|
|
@@ -9526,7 +9985,15 @@ class PipeBindingExpr extends ExpressionBase {
|
|
|
9526
9985
|
}
|
|
9527
9986
|
}
|
|
9528
9987
|
class PipeBindingVariadicExpr extends ExpressionBase {
|
|
9529
|
-
|
|
9988
|
+
target;
|
|
9989
|
+
targetSlot;
|
|
9990
|
+
name;
|
|
9991
|
+
args;
|
|
9992
|
+
numArgs;
|
|
9993
|
+
kind = ExpressionKind.PipeBindingVariadic;
|
|
9994
|
+
[ConsumesVarsTrait] = true;
|
|
9995
|
+
[UsesVarOffset] = true;
|
|
9996
|
+
varOffset = null;
|
|
9530
9997
|
constructor(target, targetSlot, name, args, numArgs) {
|
|
9531
9998
|
super();
|
|
9532
9999
|
this.target = target;
|
|
@@ -9534,10 +10001,6 @@ class PipeBindingVariadicExpr extends ExpressionBase {
|
|
|
9534
10001
|
this.name = name;
|
|
9535
10002
|
this.args = args;
|
|
9536
10003
|
this.numArgs = numArgs;
|
|
9537
|
-
this.kind = ExpressionKind.PipeBindingVariadic;
|
|
9538
|
-
this[_g] = true;
|
|
9539
|
-
this[_h] = true;
|
|
9540
|
-
this.varOffset = null;
|
|
9541
10004
|
}
|
|
9542
10005
|
visitExpression(visitor, context) {
|
|
9543
10006
|
this.args.visitExpression(visitor, context);
|
|
@@ -9558,11 +10021,13 @@ class PipeBindingVariadicExpr extends ExpressionBase {
|
|
|
9558
10021
|
}
|
|
9559
10022
|
}
|
|
9560
10023
|
class SafePropertyReadExpr extends ExpressionBase {
|
|
10024
|
+
receiver;
|
|
10025
|
+
name;
|
|
10026
|
+
kind = ExpressionKind.SafePropertyRead;
|
|
9561
10027
|
constructor(receiver, name) {
|
|
9562
10028
|
super();
|
|
9563
10029
|
this.receiver = receiver;
|
|
9564
10030
|
this.name = name;
|
|
9565
|
-
this.kind = ExpressionKind.SafePropertyRead;
|
|
9566
10031
|
}
|
|
9567
10032
|
// An alias for name, which allows other logic to handle property reads and keyed reads together.
|
|
9568
10033
|
get index() {
|
|
@@ -9585,11 +10050,13 @@ class SafePropertyReadExpr extends ExpressionBase {
|
|
|
9585
10050
|
}
|
|
9586
10051
|
}
|
|
9587
10052
|
class SafeKeyedReadExpr extends ExpressionBase {
|
|
10053
|
+
receiver;
|
|
10054
|
+
index;
|
|
10055
|
+
kind = ExpressionKind.SafeKeyedRead;
|
|
9588
10056
|
constructor(receiver, index, sourceSpan) {
|
|
9589
10057
|
super(sourceSpan);
|
|
9590
10058
|
this.receiver = receiver;
|
|
9591
10059
|
this.index = index;
|
|
9592
|
-
this.kind = ExpressionKind.SafeKeyedRead;
|
|
9593
10060
|
}
|
|
9594
10061
|
visitExpression(visitor, context) {
|
|
9595
10062
|
this.receiver.visitExpression(visitor, context);
|
|
@@ -9610,11 +10077,13 @@ class SafeKeyedReadExpr extends ExpressionBase {
|
|
|
9610
10077
|
}
|
|
9611
10078
|
}
|
|
9612
10079
|
class SafeInvokeFunctionExpr extends ExpressionBase {
|
|
10080
|
+
receiver;
|
|
10081
|
+
args;
|
|
10082
|
+
kind = ExpressionKind.SafeInvokeFunction;
|
|
9613
10083
|
constructor(receiver, args) {
|
|
9614
10084
|
super();
|
|
9615
10085
|
this.receiver = receiver;
|
|
9616
10086
|
this.args = args;
|
|
9617
|
-
this.kind = ExpressionKind.SafeInvokeFunction;
|
|
9618
10087
|
}
|
|
9619
10088
|
visitExpression(visitor, context) {
|
|
9620
10089
|
this.receiver.visitExpression(visitor, context);
|
|
@@ -9639,11 +10108,13 @@ class SafeInvokeFunctionExpr extends ExpressionBase {
|
|
|
9639
10108
|
}
|
|
9640
10109
|
}
|
|
9641
10110
|
class SafeTernaryExpr extends ExpressionBase {
|
|
10111
|
+
guard;
|
|
10112
|
+
expr;
|
|
10113
|
+
kind = ExpressionKind.SafeTernaryExpr;
|
|
9642
10114
|
constructor(guard, expr) {
|
|
9643
10115
|
super();
|
|
9644
10116
|
this.guard = guard;
|
|
9645
10117
|
this.expr = expr;
|
|
9646
|
-
this.kind = ExpressionKind.SafeTernaryExpr;
|
|
9647
10118
|
}
|
|
9648
10119
|
visitExpression(visitor, context) {
|
|
9649
10120
|
this.guard.visitExpression(visitor, context);
|
|
@@ -9664,10 +10135,7 @@ class SafeTernaryExpr extends ExpressionBase {
|
|
|
9664
10135
|
}
|
|
9665
10136
|
}
|
|
9666
10137
|
class EmptyExpr extends ExpressionBase {
|
|
9667
|
-
|
|
9668
|
-
super(...arguments);
|
|
9669
|
-
this.kind = ExpressionKind.EmptyExpr;
|
|
9670
|
-
}
|
|
10138
|
+
kind = ExpressionKind.EmptyExpr;
|
|
9671
10139
|
visitExpression(visitor, context) { }
|
|
9672
10140
|
isEquivalent(e) {
|
|
9673
10141
|
return e instanceof EmptyExpr;
|
|
@@ -9681,12 +10149,14 @@ class EmptyExpr extends ExpressionBase {
|
|
|
9681
10149
|
transformInternalExpressions() { }
|
|
9682
10150
|
}
|
|
9683
10151
|
class AssignTemporaryExpr extends ExpressionBase {
|
|
10152
|
+
expr;
|
|
10153
|
+
xref;
|
|
10154
|
+
kind = ExpressionKind.AssignTemporaryExpr;
|
|
10155
|
+
name = null;
|
|
9684
10156
|
constructor(expr, xref) {
|
|
9685
10157
|
super();
|
|
9686
10158
|
this.expr = expr;
|
|
9687
10159
|
this.xref = xref;
|
|
9688
|
-
this.kind = ExpressionKind.AssignTemporaryExpr;
|
|
9689
|
-
this.name = null;
|
|
9690
10160
|
}
|
|
9691
10161
|
visitExpression(visitor, context) {
|
|
9692
10162
|
this.expr.visitExpression(visitor, context);
|
|
@@ -9707,11 +10177,12 @@ class AssignTemporaryExpr extends ExpressionBase {
|
|
|
9707
10177
|
}
|
|
9708
10178
|
}
|
|
9709
10179
|
class ReadTemporaryExpr extends ExpressionBase {
|
|
10180
|
+
xref;
|
|
10181
|
+
kind = ExpressionKind.ReadTemporaryExpr;
|
|
10182
|
+
name = null;
|
|
9710
10183
|
constructor(xref) {
|
|
9711
10184
|
super();
|
|
9712
10185
|
this.xref = xref;
|
|
9713
|
-
this.kind = ExpressionKind.ReadTemporaryExpr;
|
|
9714
|
-
this.name = null;
|
|
9715
10186
|
}
|
|
9716
10187
|
visitExpression(visitor, context) { }
|
|
9717
10188
|
isEquivalent() {
|
|
@@ -9728,10 +10199,11 @@ class ReadTemporaryExpr extends ExpressionBase {
|
|
|
9728
10199
|
}
|
|
9729
10200
|
}
|
|
9730
10201
|
class SlotLiteralExpr extends ExpressionBase {
|
|
10202
|
+
slot;
|
|
10203
|
+
kind = ExpressionKind.SlotLiteralExpr;
|
|
9731
10204
|
constructor(slot) {
|
|
9732
10205
|
super();
|
|
9733
10206
|
this.slot = slot;
|
|
9734
|
-
this.kind = ExpressionKind.SlotLiteralExpr;
|
|
9735
10207
|
}
|
|
9736
10208
|
visitExpression(visitor, context) { }
|
|
9737
10209
|
isEquivalent(e) {
|
|
@@ -9746,6 +10218,11 @@ class SlotLiteralExpr extends ExpressionBase {
|
|
|
9746
10218
|
transformInternalExpressions() { }
|
|
9747
10219
|
}
|
|
9748
10220
|
class ConditionalCaseExpr extends ExpressionBase {
|
|
10221
|
+
expr;
|
|
10222
|
+
target;
|
|
10223
|
+
targetSlot;
|
|
10224
|
+
alias;
|
|
10225
|
+
kind = ExpressionKind.ConditionalCase;
|
|
9749
10226
|
/**
|
|
9750
10227
|
* Create an expression for one branch of a conditional.
|
|
9751
10228
|
* @param expr The expression to be tested for this case. Might be null, as in an `else` case.
|
|
@@ -9757,7 +10234,6 @@ class ConditionalCaseExpr extends ExpressionBase {
|
|
|
9757
10234
|
this.target = target;
|
|
9758
10235
|
this.targetSlot = targetSlot;
|
|
9759
10236
|
this.alias = alias;
|
|
9760
|
-
this.kind = ExpressionKind.ConditionalCase;
|
|
9761
10237
|
}
|
|
9762
10238
|
visitExpression(visitor, context) {
|
|
9763
10239
|
if (this.expr !== null) {
|
|
@@ -9780,10 +10256,11 @@ class ConditionalCaseExpr extends ExpressionBase {
|
|
|
9780
10256
|
}
|
|
9781
10257
|
}
|
|
9782
10258
|
class ConstCollectedExpr extends ExpressionBase {
|
|
10259
|
+
expr;
|
|
10260
|
+
kind = ExpressionKind.ConstCollected;
|
|
9783
10261
|
constructor(expr) {
|
|
9784
10262
|
super();
|
|
9785
10263
|
this.expr = expr;
|
|
9786
|
-
this.kind = ExpressionKind.ConstCollected;
|
|
9787
10264
|
}
|
|
9788
10265
|
transformInternalExpressions(transform, flags) {
|
|
9789
10266
|
this.expr = transform(this.expr, flags);
|
|
@@ -10106,27 +10583,27 @@ function isStringLiteral(expr) {
|
|
|
10106
10583
|
* @param OpT specific subtype of `Op` nodes which this list contains.
|
|
10107
10584
|
*/
|
|
10108
10585
|
class OpList {
|
|
10109
|
-
static
|
|
10586
|
+
static nextListId = 0;
|
|
10587
|
+
/**
|
|
10588
|
+
* Debug ID of this `OpList` instance.
|
|
10589
|
+
*/
|
|
10590
|
+
debugListId = OpList.nextListId++;
|
|
10591
|
+
// OpList uses static head/tail nodes of a special `ListEnd` type.
|
|
10592
|
+
// This avoids the need for special casing of the first and last list
|
|
10593
|
+
// elements in all list operations.
|
|
10594
|
+
head = {
|
|
10595
|
+
kind: OpKind.ListEnd,
|
|
10596
|
+
next: null,
|
|
10597
|
+
prev: null,
|
|
10598
|
+
debugListId: this.debugListId,
|
|
10599
|
+
};
|
|
10600
|
+
tail = {
|
|
10601
|
+
kind: OpKind.ListEnd,
|
|
10602
|
+
next: null,
|
|
10603
|
+
prev: null,
|
|
10604
|
+
debugListId: this.debugListId,
|
|
10605
|
+
};
|
|
10110
10606
|
constructor() {
|
|
10111
|
-
/**
|
|
10112
|
-
* Debug ID of this `OpList` instance.
|
|
10113
|
-
*/
|
|
10114
|
-
this.debugListId = OpList.nextListId++;
|
|
10115
|
-
// OpList uses static head/tail nodes of a special `ListEnd` type.
|
|
10116
|
-
// This avoids the need for special casing of the first and last list
|
|
10117
|
-
// elements in all list operations.
|
|
10118
|
-
this.head = {
|
|
10119
|
-
kind: OpKind.ListEnd,
|
|
10120
|
-
next: null,
|
|
10121
|
-
prev: null,
|
|
10122
|
-
debugListId: this.debugListId,
|
|
10123
|
-
};
|
|
10124
|
-
this.tail = {
|
|
10125
|
-
kind: OpKind.ListEnd,
|
|
10126
|
-
next: null,
|
|
10127
|
-
prev: null,
|
|
10128
|
-
debugListId: this.debugListId,
|
|
10129
|
-
};
|
|
10130
10607
|
// Link `head` and `tail` together at the start (list is empty).
|
|
10131
10608
|
this.head.next = this.tail;
|
|
10132
10609
|
this.tail.prev = this.head;
|
|
@@ -10354,9 +10831,7 @@ class OpList {
|
|
|
10354
10831
|
}
|
|
10355
10832
|
|
|
10356
10833
|
class SlotHandle {
|
|
10357
|
-
|
|
10358
|
-
this.slot = null;
|
|
10359
|
-
}
|
|
10834
|
+
slot = null;
|
|
10360
10835
|
}
|
|
10361
10836
|
|
|
10362
10837
|
/**
|
|
@@ -10784,55 +11259,56 @@ var CompilationJobKind;
|
|
|
10784
11259
|
* Contains one or more corresponding compilation units.
|
|
10785
11260
|
*/
|
|
10786
11261
|
class CompilationJob {
|
|
11262
|
+
componentName;
|
|
11263
|
+
pool;
|
|
11264
|
+
compatibility;
|
|
10787
11265
|
constructor(componentName, pool, compatibility) {
|
|
10788
11266
|
this.componentName = componentName;
|
|
10789
11267
|
this.pool = pool;
|
|
10790
11268
|
this.compatibility = compatibility;
|
|
10791
|
-
this.kind = CompilationJobKind.Both;
|
|
10792
|
-
/**
|
|
10793
|
-
* Tracks the next `ir.XrefId` which can be assigned as template structures are ingested.
|
|
10794
|
-
*/
|
|
10795
|
-
this.nextXrefId = 0;
|
|
10796
11269
|
}
|
|
11270
|
+
kind = CompilationJobKind.Both;
|
|
10797
11271
|
/**
|
|
10798
11272
|
* Generate a new unique `ir.XrefId` in this job.
|
|
10799
11273
|
*/
|
|
10800
11274
|
allocateXrefId() {
|
|
10801
11275
|
return this.nextXrefId++;
|
|
10802
11276
|
}
|
|
11277
|
+
/**
|
|
11278
|
+
* Tracks the next `ir.XrefId` which can be assigned as template structures are ingested.
|
|
11279
|
+
*/
|
|
11280
|
+
nextXrefId = 0;
|
|
10803
11281
|
}
|
|
10804
11282
|
/**
|
|
10805
11283
|
* Compilation-in-progress of a whole component's template, including the main template and any
|
|
10806
11284
|
* embedded views or host bindings.
|
|
10807
11285
|
*/
|
|
10808
11286
|
class ComponentCompilationJob extends CompilationJob {
|
|
11287
|
+
relativeContextFilePath;
|
|
11288
|
+
i18nUseExternalIds;
|
|
11289
|
+
deferMeta;
|
|
11290
|
+
allDeferrableDepsFn;
|
|
10809
11291
|
constructor(componentName, pool, compatibility, relativeContextFilePath, i18nUseExternalIds, deferMeta, allDeferrableDepsFn) {
|
|
10810
11292
|
super(componentName, pool, compatibility);
|
|
10811
11293
|
this.relativeContextFilePath = relativeContextFilePath;
|
|
10812
11294
|
this.i18nUseExternalIds = i18nUseExternalIds;
|
|
10813
11295
|
this.deferMeta = deferMeta;
|
|
10814
11296
|
this.allDeferrableDepsFn = allDeferrableDepsFn;
|
|
10815
|
-
this.kind = CompilationJobKind.Tmpl;
|
|
10816
|
-
this.fnSuffix = 'Template';
|
|
10817
|
-
this.views = new Map();
|
|
10818
|
-
/**
|
|
10819
|
-
* Causes ngContentSelectors to be emitted, for content projection slots in the view. Possibly a
|
|
10820
|
-
* reference into the constant pool.
|
|
10821
|
-
*/
|
|
10822
|
-
this.contentSelectors = null;
|
|
10823
|
-
/**
|
|
10824
|
-
* Constant expressions used by operations within this component's compilation.
|
|
10825
|
-
*
|
|
10826
|
-
* This will eventually become the `consts` array in the component definition.
|
|
10827
|
-
*/
|
|
10828
|
-
this.consts = [];
|
|
10829
|
-
/**
|
|
10830
|
-
* Initialization statements needed to set up the consts.
|
|
10831
|
-
*/
|
|
10832
|
-
this.constsInitializers = [];
|
|
10833
11297
|
this.root = new ViewCompilationUnit(this, this.allocateXrefId(), null);
|
|
10834
11298
|
this.views.set(this.root.xref, this.root);
|
|
10835
11299
|
}
|
|
11300
|
+
kind = CompilationJobKind.Tmpl;
|
|
11301
|
+
fnSuffix = 'Template';
|
|
11302
|
+
/**
|
|
11303
|
+
* The root view, representing the component's template.
|
|
11304
|
+
*/
|
|
11305
|
+
root;
|
|
11306
|
+
views = new Map();
|
|
11307
|
+
/**
|
|
11308
|
+
* Causes ngContentSelectors to be emitted, for content projection slots in the view. Possibly a
|
|
11309
|
+
* reference into the constant pool.
|
|
11310
|
+
*/
|
|
11311
|
+
contentSelectors = null;
|
|
10836
11312
|
/**
|
|
10837
11313
|
* Add a `ViewCompilation` for a new embedded view to this compilation.
|
|
10838
11314
|
*/
|
|
@@ -10860,36 +11336,47 @@ class ComponentCompilationJob extends CompilationJob {
|
|
|
10860
11336
|
}
|
|
10861
11337
|
return idx;
|
|
10862
11338
|
}
|
|
11339
|
+
/**
|
|
11340
|
+
* Constant expressions used by operations within this component's compilation.
|
|
11341
|
+
*
|
|
11342
|
+
* This will eventually become the `consts` array in the component definition.
|
|
11343
|
+
*/
|
|
11344
|
+
consts = [];
|
|
11345
|
+
/**
|
|
11346
|
+
* Initialization statements needed to set up the consts.
|
|
11347
|
+
*/
|
|
11348
|
+
constsInitializers = [];
|
|
10863
11349
|
}
|
|
10864
11350
|
/**
|
|
10865
11351
|
* A compilation unit is compiled into a template function. Some example units are views and host
|
|
10866
11352
|
* bindings.
|
|
10867
11353
|
*/
|
|
10868
11354
|
class CompilationUnit {
|
|
11355
|
+
xref;
|
|
10869
11356
|
constructor(xref) {
|
|
10870
11357
|
this.xref = xref;
|
|
10871
|
-
/**
|
|
10872
|
-
* List of creation operations for this view.
|
|
10873
|
-
*
|
|
10874
|
-
* Creation operations may internally contain other operations, including update operations.
|
|
10875
|
-
*/
|
|
10876
|
-
this.create = new OpList();
|
|
10877
|
-
/**
|
|
10878
|
-
* List of update operations for this view.
|
|
10879
|
-
*/
|
|
10880
|
-
this.update = new OpList();
|
|
10881
|
-
/**
|
|
10882
|
-
* Name of the function which will be generated for this unit.
|
|
10883
|
-
*
|
|
10884
|
-
* May be `null` if not yet determined.
|
|
10885
|
-
*/
|
|
10886
|
-
this.fnName = null;
|
|
10887
|
-
/**
|
|
10888
|
-
* Number of variable slots used within this view, or `null` if variables have not yet been
|
|
10889
|
-
* counted.
|
|
10890
|
-
*/
|
|
10891
|
-
this.vars = null;
|
|
10892
11358
|
}
|
|
11359
|
+
/**
|
|
11360
|
+
* List of creation operations for this view.
|
|
11361
|
+
*
|
|
11362
|
+
* Creation operations may internally contain other operations, including update operations.
|
|
11363
|
+
*/
|
|
11364
|
+
create = new OpList();
|
|
11365
|
+
/**
|
|
11366
|
+
* List of update operations for this view.
|
|
11367
|
+
*/
|
|
11368
|
+
update = new OpList();
|
|
11369
|
+
/**
|
|
11370
|
+
* Name of the function which will be generated for this unit.
|
|
11371
|
+
*
|
|
11372
|
+
* May be `null` if not yet determined.
|
|
11373
|
+
*/
|
|
11374
|
+
fnName = null;
|
|
11375
|
+
/**
|
|
11376
|
+
* Number of variable slots used within this view, or `null` if variables have not yet been
|
|
11377
|
+
* counted.
|
|
11378
|
+
*/
|
|
11379
|
+
vars = null;
|
|
10893
11380
|
/**
|
|
10894
11381
|
* Iterate over all `ir.Op`s within this view.
|
|
10895
11382
|
*
|
|
@@ -10913,26 +11400,28 @@ class CompilationUnit {
|
|
|
10913
11400
|
* Compilation-in-progress of an individual view within a template.
|
|
10914
11401
|
*/
|
|
10915
11402
|
class ViewCompilationUnit extends CompilationUnit {
|
|
11403
|
+
job;
|
|
11404
|
+
parent;
|
|
10916
11405
|
constructor(job, xref, parent) {
|
|
10917
11406
|
super(xref);
|
|
10918
11407
|
this.job = job;
|
|
10919
11408
|
this.parent = parent;
|
|
10920
|
-
/**
|
|
10921
|
-
* Map of declared variables available within this view to the property on the context object
|
|
10922
|
-
* which they alias.
|
|
10923
|
-
*/
|
|
10924
|
-
this.contextVariables = new Map();
|
|
10925
|
-
/**
|
|
10926
|
-
* Set of aliases available within this view. An alias is a variable whose provided expression is
|
|
10927
|
-
* inlined at every location it is used. It may also depend on context variables, by name.
|
|
10928
|
-
*/
|
|
10929
|
-
this.aliases = new Set();
|
|
10930
|
-
/**
|
|
10931
|
-
* Number of declaration slots used within this view, or `null` if slots have not yet been
|
|
10932
|
-
* allocated.
|
|
10933
|
-
*/
|
|
10934
|
-
this.decls = null;
|
|
10935
11409
|
}
|
|
11410
|
+
/**
|
|
11411
|
+
* Map of declared variables available within this view to the property on the context object
|
|
11412
|
+
* which they alias.
|
|
11413
|
+
*/
|
|
11414
|
+
contextVariables = new Map();
|
|
11415
|
+
/**
|
|
11416
|
+
* Set of aliases available within this view. An alias is a variable whose provided expression is
|
|
11417
|
+
* inlined at every location it is used. It may also depend on context variables, by name.
|
|
11418
|
+
*/
|
|
11419
|
+
aliases = new Set();
|
|
11420
|
+
/**
|
|
11421
|
+
* Number of declaration slots used within this view, or `null` if slots have not yet been
|
|
11422
|
+
* allocated.
|
|
11423
|
+
*/
|
|
11424
|
+
decls = null;
|
|
10936
11425
|
}
|
|
10937
11426
|
/**
|
|
10938
11427
|
* Compilation-in-progress of a host binding, which contains a single unit for that host binding.
|
|
@@ -10940,23 +11429,25 @@ class ViewCompilationUnit extends CompilationUnit {
|
|
|
10940
11429
|
class HostBindingCompilationJob extends CompilationJob {
|
|
10941
11430
|
constructor(componentName, pool, compatibility) {
|
|
10942
11431
|
super(componentName, pool, compatibility);
|
|
10943
|
-
this.kind = CompilationJobKind.Host;
|
|
10944
|
-
this.fnSuffix = 'HostBindings';
|
|
10945
11432
|
this.root = new HostBindingCompilationUnit(this);
|
|
10946
11433
|
}
|
|
11434
|
+
kind = CompilationJobKind.Host;
|
|
11435
|
+
fnSuffix = 'HostBindings';
|
|
11436
|
+
root;
|
|
10947
11437
|
get units() {
|
|
10948
11438
|
return [this.root];
|
|
10949
11439
|
}
|
|
10950
11440
|
}
|
|
10951
11441
|
class HostBindingCompilationUnit extends CompilationUnit {
|
|
11442
|
+
job;
|
|
10952
11443
|
constructor(job) {
|
|
10953
11444
|
super(0);
|
|
10954
11445
|
this.job = job;
|
|
10955
|
-
/**
|
|
10956
|
-
* Much like an element can have attributes, so can a host binding function.
|
|
10957
|
-
*/
|
|
10958
|
-
this.attributes = null;
|
|
10959
11446
|
}
|
|
11447
|
+
/**
|
|
11448
|
+
* Much like an element can have attributes, so can a host binding function.
|
|
11449
|
+
*/
|
|
11450
|
+
attributes = null;
|
|
10960
11451
|
}
|
|
10961
11452
|
|
|
10962
11453
|
/**
|
|
@@ -11610,6 +12101,11 @@ const FLYWEIGHT_ARRAY = Object.freeze([]);
|
|
|
11610
12101
|
* Container for all of the various kinds of attributes which are applied on an element.
|
|
11611
12102
|
*/
|
|
11612
12103
|
class ElementAttributes {
|
|
12104
|
+
compatibility;
|
|
12105
|
+
known = new Map();
|
|
12106
|
+
byKind = new Map();
|
|
12107
|
+
propertyBindings = null;
|
|
12108
|
+
projectAs = null;
|
|
11613
12109
|
get attributes() {
|
|
11614
12110
|
return this.byKind.get(BindingKind.Attribute) ?? FLYWEIGHT_ARRAY;
|
|
11615
12111
|
}
|
|
@@ -11630,10 +12126,6 @@ class ElementAttributes {
|
|
|
11630
12126
|
}
|
|
11631
12127
|
constructor(compatibility) {
|
|
11632
12128
|
this.compatibility = compatibility;
|
|
11633
|
-
this.known = new Map();
|
|
11634
|
-
this.byKind = new Map();
|
|
11635
|
-
this.propertyBindings = null;
|
|
11636
|
-
this.projectAs = null;
|
|
11637
12129
|
}
|
|
11638
12130
|
isKnown(kind, name) {
|
|
11639
12131
|
const nameToValue = this.known.get(kind) ?? new Set();
|
|
@@ -12055,9 +12547,7 @@ function resolveDeferTargetNames(job) {
|
|
|
12055
12547
|
}
|
|
12056
12548
|
}
|
|
12057
12549
|
class Scope$1 {
|
|
12058
|
-
|
|
12059
|
-
this.targets = new Map();
|
|
12060
|
-
}
|
|
12550
|
+
targets = new Map();
|
|
12061
12551
|
}
|
|
12062
12552
|
|
|
12063
12553
|
const REPLACEMENTS = new Map([
|
|
@@ -12892,12 +13382,16 @@ function serializeIcuNode(icu) {
|
|
|
12892
13382
|
}
|
|
12893
13383
|
|
|
12894
13384
|
class NodeWithI18n {
|
|
13385
|
+
sourceSpan;
|
|
13386
|
+
i18n;
|
|
12895
13387
|
constructor(sourceSpan, i18n) {
|
|
12896
13388
|
this.sourceSpan = sourceSpan;
|
|
12897
13389
|
this.i18n = i18n;
|
|
12898
13390
|
}
|
|
12899
13391
|
}
|
|
12900
13392
|
class Text extends NodeWithI18n {
|
|
13393
|
+
value;
|
|
13394
|
+
tokens;
|
|
12901
13395
|
constructor(value, sourceSpan, tokens, i18n) {
|
|
12902
13396
|
super(sourceSpan, i18n);
|
|
12903
13397
|
this.value = value;
|
|
@@ -12908,6 +13402,10 @@ class Text extends NodeWithI18n {
|
|
|
12908
13402
|
}
|
|
12909
13403
|
}
|
|
12910
13404
|
class Expansion extends NodeWithI18n {
|
|
13405
|
+
switchValue;
|
|
13406
|
+
type;
|
|
13407
|
+
cases;
|
|
13408
|
+
switchValueSourceSpan;
|
|
12911
13409
|
constructor(switchValue, type, cases, sourceSpan, switchValueSourceSpan, i18n) {
|
|
12912
13410
|
super(sourceSpan, i18n);
|
|
12913
13411
|
this.switchValue = switchValue;
|
|
@@ -12920,6 +13418,11 @@ class Expansion extends NodeWithI18n {
|
|
|
12920
13418
|
}
|
|
12921
13419
|
}
|
|
12922
13420
|
class ExpansionCase {
|
|
13421
|
+
value;
|
|
13422
|
+
expression;
|
|
13423
|
+
sourceSpan;
|
|
13424
|
+
valueSourceSpan;
|
|
13425
|
+
expSourceSpan;
|
|
12923
13426
|
constructor(value, expression, sourceSpan, valueSourceSpan, expSourceSpan) {
|
|
12924
13427
|
this.value = value;
|
|
12925
13428
|
this.expression = expression;
|
|
@@ -12932,6 +13435,11 @@ class ExpansionCase {
|
|
|
12932
13435
|
}
|
|
12933
13436
|
}
|
|
12934
13437
|
class Attribute extends NodeWithI18n {
|
|
13438
|
+
name;
|
|
13439
|
+
value;
|
|
13440
|
+
keySpan;
|
|
13441
|
+
valueSpan;
|
|
13442
|
+
valueTokens;
|
|
12935
13443
|
constructor(name, value, sourceSpan, keySpan, valueSpan, valueTokens, i18n) {
|
|
12936
13444
|
super(sourceSpan, i18n);
|
|
12937
13445
|
this.name = name;
|
|
@@ -12945,6 +13453,11 @@ class Attribute extends NodeWithI18n {
|
|
|
12945
13453
|
}
|
|
12946
13454
|
}
|
|
12947
13455
|
class Element extends NodeWithI18n {
|
|
13456
|
+
name;
|
|
13457
|
+
attrs;
|
|
13458
|
+
children;
|
|
13459
|
+
startSourceSpan;
|
|
13460
|
+
endSourceSpan;
|
|
12948
13461
|
constructor(name, attrs, children, sourceSpan, startSourceSpan, endSourceSpan = null, i18n) {
|
|
12949
13462
|
super(sourceSpan, i18n);
|
|
12950
13463
|
this.name = name;
|
|
@@ -12958,6 +13471,8 @@ class Element extends NodeWithI18n {
|
|
|
12958
13471
|
}
|
|
12959
13472
|
}
|
|
12960
13473
|
class Comment {
|
|
13474
|
+
value;
|
|
13475
|
+
sourceSpan;
|
|
12961
13476
|
constructor(value, sourceSpan) {
|
|
12962
13477
|
this.value = value;
|
|
12963
13478
|
this.sourceSpan = sourceSpan;
|
|
@@ -12967,6 +13482,12 @@ class Comment {
|
|
|
12967
13482
|
}
|
|
12968
13483
|
}
|
|
12969
13484
|
class Block extends NodeWithI18n {
|
|
13485
|
+
name;
|
|
13486
|
+
parameters;
|
|
13487
|
+
children;
|
|
13488
|
+
nameSpan;
|
|
13489
|
+
startSourceSpan;
|
|
13490
|
+
endSourceSpan;
|
|
12970
13491
|
constructor(name, parameters, children, sourceSpan, nameSpan, startSourceSpan, endSourceSpan = null, i18n) {
|
|
12971
13492
|
super(sourceSpan, i18n);
|
|
12972
13493
|
this.name = name;
|
|
@@ -12981,6 +13502,8 @@ class Block extends NodeWithI18n {
|
|
|
12981
13502
|
}
|
|
12982
13503
|
}
|
|
12983
13504
|
class BlockParameter {
|
|
13505
|
+
expression;
|
|
13506
|
+
sourceSpan;
|
|
12984
13507
|
constructor(expression, sourceSpan) {
|
|
12985
13508
|
this.expression = expression;
|
|
12986
13509
|
this.sourceSpan = sourceSpan;
|
|
@@ -12990,6 +13513,11 @@ class BlockParameter {
|
|
|
12990
13513
|
}
|
|
12991
13514
|
}
|
|
12992
13515
|
class LetDeclaration {
|
|
13516
|
+
name;
|
|
13517
|
+
value;
|
|
13518
|
+
sourceSpan;
|
|
13519
|
+
nameSpan;
|
|
13520
|
+
valueSpan;
|
|
12993
13521
|
constructor(name, value, sourceSpan, nameSpan, valueSpan) {
|
|
12994
13522
|
this.name = name;
|
|
12995
13523
|
this.value = value;
|
|
@@ -15189,12 +15717,16 @@ const NGSP_UNICODE = '\uE500';
|
|
|
15189
15717
|
NAMED_ENTITIES['ngsp'] = NGSP_UNICODE;
|
|
15190
15718
|
|
|
15191
15719
|
class TokenError extends ParseError {
|
|
15720
|
+
tokenType;
|
|
15192
15721
|
constructor(errorMsg, tokenType, span) {
|
|
15193
15722
|
super(span, errorMsg);
|
|
15194
15723
|
this.tokenType = tokenType;
|
|
15195
15724
|
}
|
|
15196
15725
|
}
|
|
15197
15726
|
class TokenizeResult {
|
|
15727
|
+
tokens;
|
|
15728
|
+
errors;
|
|
15729
|
+
nonNormalizedIcuExpressions;
|
|
15198
15730
|
constructor(tokens, errors, nonNormalizedIcuExpressions) {
|
|
15199
15731
|
this.tokens = tokens;
|
|
15200
15732
|
this.errors = errors;
|
|
@@ -15223,12 +15755,29 @@ var CharacterReferenceType;
|
|
|
15223
15755
|
CharacterReferenceType["DEC"] = "decimal";
|
|
15224
15756
|
})(CharacterReferenceType || (CharacterReferenceType = {}));
|
|
15225
15757
|
class _ControlFlowError {
|
|
15758
|
+
error;
|
|
15226
15759
|
constructor(error) {
|
|
15227
15760
|
this.error = error;
|
|
15228
15761
|
}
|
|
15229
15762
|
}
|
|
15230
15763
|
// See https://www.w3.org/TR/html51/syntax.html#writing-html-documents
|
|
15231
15764
|
class _Tokenizer {
|
|
15765
|
+
_getTagDefinition;
|
|
15766
|
+
_cursor;
|
|
15767
|
+
_tokenizeIcu;
|
|
15768
|
+
_interpolationConfig;
|
|
15769
|
+
_leadingTriviaCodePoints;
|
|
15770
|
+
_currentTokenStart = null;
|
|
15771
|
+
_currentTokenType = null;
|
|
15772
|
+
_expansionCaseStack = [];
|
|
15773
|
+
_inInterpolation = false;
|
|
15774
|
+
_preserveLineEndings;
|
|
15775
|
+
_i18nNormalizeLineEndingsInICUs;
|
|
15776
|
+
_tokenizeBlocks;
|
|
15777
|
+
_tokenizeLet;
|
|
15778
|
+
tokens = [];
|
|
15779
|
+
errors = [];
|
|
15780
|
+
nonNormalizedIcuExpressions = [];
|
|
15232
15781
|
/**
|
|
15233
15782
|
* @param _file The html source file being tokenized.
|
|
15234
15783
|
* @param _getTagDefinition A function that will retrieve a tag definition for a given tag name.
|
|
@@ -15236,13 +15785,6 @@ class _Tokenizer {
|
|
|
15236
15785
|
*/
|
|
15237
15786
|
constructor(_file, _getTagDefinition, options) {
|
|
15238
15787
|
this._getTagDefinition = _getTagDefinition;
|
|
15239
|
-
this._currentTokenStart = null;
|
|
15240
|
-
this._currentTokenType = null;
|
|
15241
|
-
this._expansionCaseStack = [];
|
|
15242
|
-
this._inInterpolation = false;
|
|
15243
|
-
this.tokens = [];
|
|
15244
|
-
this.errors = [];
|
|
15245
|
-
this.nonNormalizedIcuExpressions = [];
|
|
15246
15788
|
this._tokenizeIcu = options.tokenizeExpansionForms || false;
|
|
15247
15789
|
this._interpolationConfig = options.interpolationConfig || DEFAULT_INTERPOLATION_CONFIG;
|
|
15248
15790
|
this._leadingTriviaCodePoints =
|
|
@@ -16149,6 +16691,10 @@ function mergeTextTokens(srcTokens) {
|
|
|
16149
16691
|
return dstTokens;
|
|
16150
16692
|
}
|
|
16151
16693
|
class PlainCharacterCursor {
|
|
16694
|
+
state;
|
|
16695
|
+
file;
|
|
16696
|
+
input;
|
|
16697
|
+
end;
|
|
16152
16698
|
constructor(fileOrCursor, range) {
|
|
16153
16699
|
if (fileOrCursor instanceof PlainCharacterCursor) {
|
|
16154
16700
|
this.file = fileOrCursor.file;
|
|
@@ -16245,6 +16791,7 @@ class PlainCharacterCursor {
|
|
|
16245
16791
|
}
|
|
16246
16792
|
}
|
|
16247
16793
|
class EscapedCharacterCursor extends PlainCharacterCursor {
|
|
16794
|
+
internalState;
|
|
16248
16795
|
constructor(fileOrCursor, range) {
|
|
16249
16796
|
if (fileOrCursor instanceof EscapedCharacterCursor) {
|
|
16250
16797
|
super(fileOrCursor);
|
|
@@ -16380,6 +16927,8 @@ class EscapedCharacterCursor extends PlainCharacterCursor {
|
|
|
16380
16927
|
}
|
|
16381
16928
|
}
|
|
16382
16929
|
class CursorError {
|
|
16930
|
+
msg;
|
|
16931
|
+
cursor;
|
|
16383
16932
|
constructor(msg, cursor) {
|
|
16384
16933
|
this.msg = msg;
|
|
16385
16934
|
this.cursor = cursor;
|
|
@@ -16387,6 +16936,7 @@ class CursorError {
|
|
|
16387
16936
|
}
|
|
16388
16937
|
|
|
16389
16938
|
class TreeError extends ParseError {
|
|
16939
|
+
elementName;
|
|
16390
16940
|
static create(elementName, span, msg) {
|
|
16391
16941
|
return new TreeError(elementName, span, msg);
|
|
16392
16942
|
}
|
|
@@ -16396,12 +16946,15 @@ class TreeError extends ParseError {
|
|
|
16396
16946
|
}
|
|
16397
16947
|
}
|
|
16398
16948
|
class ParseTreeResult {
|
|
16949
|
+
rootNodes;
|
|
16950
|
+
errors;
|
|
16399
16951
|
constructor(rootNodes, errors) {
|
|
16400
16952
|
this.rootNodes = rootNodes;
|
|
16401
16953
|
this.errors = errors;
|
|
16402
16954
|
}
|
|
16403
16955
|
}
|
|
16404
16956
|
class Parser$1 {
|
|
16957
|
+
getTagDefinition;
|
|
16405
16958
|
constructor(getTagDefinition) {
|
|
16406
16959
|
this.getTagDefinition = getTagDefinition;
|
|
16407
16960
|
}
|
|
@@ -16413,13 +16966,17 @@ class Parser$1 {
|
|
|
16413
16966
|
}
|
|
16414
16967
|
}
|
|
16415
16968
|
class _TreeBuilder {
|
|
16969
|
+
tokens;
|
|
16970
|
+
getTagDefinition;
|
|
16971
|
+
_index = -1;
|
|
16972
|
+
// `_peek` will be initialized by the call to `_advance()` in the constructor.
|
|
16973
|
+
_peek;
|
|
16974
|
+
_containerStack = [];
|
|
16975
|
+
rootNodes = [];
|
|
16976
|
+
errors = [];
|
|
16416
16977
|
constructor(tokens, getTagDefinition) {
|
|
16417
16978
|
this.tokens = tokens;
|
|
16418
16979
|
this.getTagDefinition = getTagDefinition;
|
|
16419
|
-
this._index = -1;
|
|
16420
|
-
this._containerStack = [];
|
|
16421
|
-
this.rootNodes = [];
|
|
16422
|
-
this.errors = [];
|
|
16423
16980
|
this._advance();
|
|
16424
16981
|
}
|
|
16425
16982
|
build() {
|
|
@@ -16952,14 +17509,17 @@ function replaceNgsp(value) {
|
|
|
16952
17509
|
* such that trimming whitespace does not does not drop required information from the node.
|
|
16953
17510
|
*/
|
|
16954
17511
|
class WhitespaceVisitor {
|
|
17512
|
+
preserveSignificantWhitespace;
|
|
17513
|
+
originalNodeMap;
|
|
17514
|
+
requireContext;
|
|
17515
|
+
// How many ICU expansions which are currently being visited. ICUs can be nested, so this
|
|
17516
|
+
// tracks the current depth of nesting. If this depth is greater than 0, then this visitor is
|
|
17517
|
+
// currently processing content inside an ICU expansion.
|
|
17518
|
+
icuExpansionDepth = 0;
|
|
16955
17519
|
constructor(preserveSignificantWhitespace, originalNodeMap, requireContext = true) {
|
|
16956
17520
|
this.preserveSignificantWhitespace = preserveSignificantWhitespace;
|
|
16957
17521
|
this.originalNodeMap = originalNodeMap;
|
|
16958
17522
|
this.requireContext = requireContext;
|
|
16959
|
-
// How many ICU expansions which are currently being visited. ICUs can be nested, so this
|
|
16960
|
-
// tracks the current depth of nesting. If this depth is greater than 0, then this visitor is
|
|
16961
|
-
// currently processing content inside an ICU expansion.
|
|
16962
|
-
this.icuExpansionDepth = 0;
|
|
16963
17523
|
}
|
|
16964
17524
|
visitElement(element, context) {
|
|
16965
17525
|
if (SKIP_WS_TRIM_TAGS.has(element.name) || hasPreserveWhitespacesAttr(element.attrs)) {
|
|
@@ -17111,7 +17671,19 @@ var TokenType;
|
|
|
17111
17671
|
TokenType[TokenType["Number"] = 6] = "Number";
|
|
17112
17672
|
TokenType[TokenType["Error"] = 7] = "Error";
|
|
17113
17673
|
})(TokenType || (TokenType = {}));
|
|
17114
|
-
const KEYWORDS = [
|
|
17674
|
+
const KEYWORDS = [
|
|
17675
|
+
'var',
|
|
17676
|
+
'let',
|
|
17677
|
+
'as',
|
|
17678
|
+
'null',
|
|
17679
|
+
'undefined',
|
|
17680
|
+
'true',
|
|
17681
|
+
'false',
|
|
17682
|
+
'if',
|
|
17683
|
+
'else',
|
|
17684
|
+
'this',
|
|
17685
|
+
'typeof',
|
|
17686
|
+
];
|
|
17115
17687
|
class Lexer {
|
|
17116
17688
|
tokenize(text) {
|
|
17117
17689
|
const scanner = new _Scanner(text);
|
|
@@ -17125,6 +17697,11 @@ class Lexer {
|
|
|
17125
17697
|
}
|
|
17126
17698
|
}
|
|
17127
17699
|
class Token {
|
|
17700
|
+
index;
|
|
17701
|
+
end;
|
|
17702
|
+
type;
|
|
17703
|
+
numValue;
|
|
17704
|
+
strValue;
|
|
17128
17705
|
constructor(index, end, type, numValue, strValue) {
|
|
17129
17706
|
this.index = index;
|
|
17130
17707
|
this.end = end;
|
|
@@ -17174,6 +17751,9 @@ class Token {
|
|
|
17174
17751
|
isKeywordThis() {
|
|
17175
17752
|
return this.type == TokenType.Keyword && this.strValue == 'this';
|
|
17176
17753
|
}
|
|
17754
|
+
isKeywordTypeof() {
|
|
17755
|
+
return this.type === TokenType.Keyword && this.strValue === 'typeof';
|
|
17756
|
+
}
|
|
17177
17757
|
isError() {
|
|
17178
17758
|
return this.type == TokenType.Error;
|
|
17179
17759
|
}
|
|
@@ -17223,10 +17803,12 @@ function newErrorToken(index, end, message) {
|
|
|
17223
17803
|
}
|
|
17224
17804
|
const EOF = new Token(-1, -1, TokenType.Character, 0, '');
|
|
17225
17805
|
class _Scanner {
|
|
17806
|
+
input;
|
|
17807
|
+
length;
|
|
17808
|
+
peek = 0;
|
|
17809
|
+
index = -1;
|
|
17226
17810
|
constructor(input) {
|
|
17227
17811
|
this.input = input;
|
|
17228
|
-
this.peek = 0;
|
|
17229
|
-
this.index = -1;
|
|
17230
17812
|
this.length = input.length;
|
|
17231
17813
|
this.advance();
|
|
17232
17814
|
}
|
|
@@ -17466,20 +18048,6 @@ function isIdentifierStart(code) {
|
|
|
17466
18048
|
code == $_ ||
|
|
17467
18049
|
code == $$);
|
|
17468
18050
|
}
|
|
17469
|
-
function isIdentifier(input) {
|
|
17470
|
-
if (input.length == 0)
|
|
17471
|
-
return false;
|
|
17472
|
-
const scanner = new _Scanner(input);
|
|
17473
|
-
if (!isIdentifierStart(scanner.peek))
|
|
17474
|
-
return false;
|
|
17475
|
-
scanner.advance();
|
|
17476
|
-
while (scanner.peek !== $EOF) {
|
|
17477
|
-
if (!isIdentifierPart(scanner.peek))
|
|
17478
|
-
return false;
|
|
17479
|
-
scanner.advance();
|
|
17480
|
-
}
|
|
17481
|
-
return true;
|
|
17482
|
-
}
|
|
17483
18051
|
function isIdentifierPart(code) {
|
|
17484
18052
|
return isAsciiLetter(code) || isDigit(code) || code == $_ || code == $$;
|
|
17485
18053
|
}
|
|
@@ -17514,6 +18082,9 @@ function parseIntAutoRadix(text) {
|
|
|
17514
18082
|
}
|
|
17515
18083
|
|
|
17516
18084
|
class SplitInterpolation {
|
|
18085
|
+
strings;
|
|
18086
|
+
expressions;
|
|
18087
|
+
offsets;
|
|
17517
18088
|
constructor(strings, expressions, offsets) {
|
|
17518
18089
|
this.strings = strings;
|
|
17519
18090
|
this.expressions = expressions;
|
|
@@ -17521,6 +18092,9 @@ class SplitInterpolation {
|
|
|
17521
18092
|
}
|
|
17522
18093
|
}
|
|
17523
18094
|
class TemplateBindingParseResult {
|
|
18095
|
+
templateBindings;
|
|
18096
|
+
warnings;
|
|
18097
|
+
errors;
|
|
17524
18098
|
constructor(templateBindings, warnings, errors) {
|
|
17525
18099
|
this.templateBindings = templateBindings;
|
|
17526
18100
|
this.warnings = warnings;
|
|
@@ -17528,9 +18102,10 @@ class TemplateBindingParseResult {
|
|
|
17528
18102
|
}
|
|
17529
18103
|
}
|
|
17530
18104
|
class Parser {
|
|
18105
|
+
_lexer;
|
|
18106
|
+
errors = [];
|
|
17531
18107
|
constructor(_lexer) {
|
|
17532
18108
|
this._lexer = _lexer;
|
|
17533
|
-
this.errors = [];
|
|
17534
18109
|
}
|
|
17535
18110
|
parseAction(input, location, absoluteOffset, interpolationConfig = DEFAULT_INTERPOLATION_CONFIG) {
|
|
17536
18111
|
this._checkNoInterpolation(input, location, interpolationConfig);
|
|
@@ -17798,6 +18373,23 @@ var ParseContextFlags;
|
|
|
17798
18373
|
ParseContextFlags[ParseContextFlags["Writable"] = 1] = "Writable";
|
|
17799
18374
|
})(ParseContextFlags || (ParseContextFlags = {}));
|
|
17800
18375
|
class _ParseAST {
|
|
18376
|
+
input;
|
|
18377
|
+
location;
|
|
18378
|
+
absoluteOffset;
|
|
18379
|
+
tokens;
|
|
18380
|
+
parseFlags;
|
|
18381
|
+
errors;
|
|
18382
|
+
offset;
|
|
18383
|
+
rparensExpected = 0;
|
|
18384
|
+
rbracketsExpected = 0;
|
|
18385
|
+
rbracesExpected = 0;
|
|
18386
|
+
context = ParseContextFlags.None;
|
|
18387
|
+
// Cache of expression start and input indeces to the absolute source span they map to, used to
|
|
18388
|
+
// prevent creating superfluous source spans in `sourceSpan`.
|
|
18389
|
+
// A serial of the expression start and input index is used for mapping because both are stateful
|
|
18390
|
+
// and may change for subsequent expressions visited by the parser.
|
|
18391
|
+
sourceSpanCache = new Map();
|
|
18392
|
+
index = 0;
|
|
17801
18393
|
constructor(input, location, absoluteOffset, tokens, parseFlags, errors, offset) {
|
|
17802
18394
|
this.input = input;
|
|
17803
18395
|
this.location = location;
|
|
@@ -17806,16 +18398,6 @@ class _ParseAST {
|
|
|
17806
18398
|
this.parseFlags = parseFlags;
|
|
17807
18399
|
this.errors = errors;
|
|
17808
18400
|
this.offset = offset;
|
|
17809
|
-
this.rparensExpected = 0;
|
|
17810
|
-
this.rbracketsExpected = 0;
|
|
17811
|
-
this.rbracesExpected = 0;
|
|
17812
|
-
this.context = ParseContextFlags.None;
|
|
17813
|
-
// Cache of expression start and input indeces to the absolute source span they map to, used to
|
|
17814
|
-
// prevent creating superfluous source spans in `sourceSpan`.
|
|
17815
|
-
// A serial of the expression start and input index is used for mapping because both are stateful
|
|
17816
|
-
// and may change for subsequent expressions visited by the parser.
|
|
17817
|
-
this.sourceSpanCache = new Map();
|
|
17818
|
-
this.index = 0;
|
|
17819
18401
|
}
|
|
17820
18402
|
peek(offset) {
|
|
17821
18403
|
const i = this.index + offset;
|
|
@@ -18200,6 +18782,12 @@ class _ParseAST {
|
|
|
18200
18782
|
return new PrefixNot(this.span(start), this.sourceSpan(start), result);
|
|
18201
18783
|
}
|
|
18202
18784
|
}
|
|
18785
|
+
else if (this.next.isKeywordTypeof()) {
|
|
18786
|
+
this.advance();
|
|
18787
|
+
const start = this.inputIndex;
|
|
18788
|
+
let result = this.parsePrefix();
|
|
18789
|
+
return new TypeofExpression(this.span(start), this.sourceSpan(start), result);
|
|
18790
|
+
}
|
|
18203
18791
|
return this.parseCallChain();
|
|
18204
18792
|
}
|
|
18205
18793
|
parseCallChain() {
|
|
@@ -18680,10 +19268,7 @@ class _ParseAST {
|
|
|
18680
19268
|
}
|
|
18681
19269
|
}
|
|
18682
19270
|
class SimpleExpressionChecker extends RecursiveAstVisitor {
|
|
18683
|
-
|
|
18684
|
-
super(...arguments);
|
|
18685
|
-
this.errors = [];
|
|
18686
|
-
}
|
|
19271
|
+
errors = [];
|
|
18687
19272
|
visitPipe() {
|
|
18688
19273
|
this.errors.push('pipes');
|
|
18689
19274
|
}
|
|
@@ -18724,6 +19309,131 @@ function getIndexMapForOriginalTemplate(interpolatedTokens) {
|
|
|
18724
19309
|
return offsetMap;
|
|
18725
19310
|
}
|
|
18726
19311
|
|
|
19312
|
+
/** Serializes the given AST into a normalized string format. */
|
|
19313
|
+
function serialize(expression) {
|
|
19314
|
+
return expression.visit(new SerializeExpressionVisitor());
|
|
19315
|
+
}
|
|
19316
|
+
class SerializeExpressionVisitor {
|
|
19317
|
+
visitUnary(ast, context) {
|
|
19318
|
+
return `${ast.operator}${ast.expr.visit(this, context)}`;
|
|
19319
|
+
}
|
|
19320
|
+
visitBinary(ast, context) {
|
|
19321
|
+
return `${ast.left.visit(this, context)} ${ast.operation} ${ast.right.visit(this, context)}`;
|
|
19322
|
+
}
|
|
19323
|
+
visitChain(ast, context) {
|
|
19324
|
+
return ast.expressions.map((e) => e.visit(this, context)).join('; ');
|
|
19325
|
+
}
|
|
19326
|
+
visitConditional(ast, context) {
|
|
19327
|
+
return `${ast.condition.visit(this, context)} ? ${ast.trueExp.visit(this, context)} : ${ast.falseExp.visit(this, context)}`;
|
|
19328
|
+
}
|
|
19329
|
+
visitThisReceiver() {
|
|
19330
|
+
return 'this';
|
|
19331
|
+
}
|
|
19332
|
+
visitImplicitReceiver() {
|
|
19333
|
+
return '';
|
|
19334
|
+
}
|
|
19335
|
+
visitInterpolation(ast, context) {
|
|
19336
|
+
return interleave(ast.strings, ast.expressions.map((e) => e.visit(this, context))).join('');
|
|
19337
|
+
}
|
|
19338
|
+
visitKeyedRead(ast, context) {
|
|
19339
|
+
return `${ast.receiver.visit(this, context)}[${ast.key.visit(this, context)}]`;
|
|
19340
|
+
}
|
|
19341
|
+
visitKeyedWrite(ast, context) {
|
|
19342
|
+
return `${ast.receiver.visit(this, context)}[${ast.key.visit(this, context)}] = ${ast.value.visit(this, context)}`;
|
|
19343
|
+
}
|
|
19344
|
+
visitLiteralArray(ast, context) {
|
|
19345
|
+
return `[${ast.expressions.map((e) => e.visit(this, context)).join(', ')}]`;
|
|
19346
|
+
}
|
|
19347
|
+
visitLiteralMap(ast, context) {
|
|
19348
|
+
return `{${zip(ast.keys.map((literal) => (literal.quoted ? `'${literal.key}'` : literal.key)), ast.values.map((value) => value.visit(this, context)))
|
|
19349
|
+
.map(([key, value]) => `${key}: ${value}`)
|
|
19350
|
+
.join(', ')}}`;
|
|
19351
|
+
}
|
|
19352
|
+
visitLiteralPrimitive(ast) {
|
|
19353
|
+
if (ast.value === null)
|
|
19354
|
+
return 'null';
|
|
19355
|
+
switch (typeof ast.value) {
|
|
19356
|
+
case 'number':
|
|
19357
|
+
case 'boolean':
|
|
19358
|
+
return ast.value.toString();
|
|
19359
|
+
case 'undefined':
|
|
19360
|
+
return 'undefined';
|
|
19361
|
+
case 'string':
|
|
19362
|
+
return `'${ast.value.replace(/'/g, `\\'`)}'`;
|
|
19363
|
+
default:
|
|
19364
|
+
throw new Error(`Unsupported primitive type: ${ast.value}`);
|
|
19365
|
+
}
|
|
19366
|
+
}
|
|
19367
|
+
visitPipe(ast, context) {
|
|
19368
|
+
return `${ast.exp.visit(this, context)} | ${ast.name}`;
|
|
19369
|
+
}
|
|
19370
|
+
visitPrefixNot(ast, context) {
|
|
19371
|
+
return `!${ast.expression.visit(this, context)}`;
|
|
19372
|
+
}
|
|
19373
|
+
visitNonNullAssert(ast, context) {
|
|
19374
|
+
return `${ast.expression.visit(this, context)}!`;
|
|
19375
|
+
}
|
|
19376
|
+
visitPropertyRead(ast, context) {
|
|
19377
|
+
if (ast.receiver instanceof ImplicitReceiver) {
|
|
19378
|
+
return ast.name;
|
|
19379
|
+
}
|
|
19380
|
+
else {
|
|
19381
|
+
return `${ast.receiver.visit(this, context)}.${ast.name}`;
|
|
19382
|
+
}
|
|
19383
|
+
}
|
|
19384
|
+
visitPropertyWrite(ast, context) {
|
|
19385
|
+
if (ast.receiver instanceof ImplicitReceiver) {
|
|
19386
|
+
return `${ast.name} = ${ast.value.visit(this, context)}`;
|
|
19387
|
+
}
|
|
19388
|
+
else {
|
|
19389
|
+
return `${ast.receiver.visit(this, context)}.${ast.name} = ${ast.value.visit(this, context)}`;
|
|
19390
|
+
}
|
|
19391
|
+
}
|
|
19392
|
+
visitSafePropertyRead(ast, context) {
|
|
19393
|
+
return `${ast.receiver.visit(this, context)}?.${ast.name}`;
|
|
19394
|
+
}
|
|
19395
|
+
visitSafeKeyedRead(ast, context) {
|
|
19396
|
+
return `${ast.receiver.visit(this, context)}?.[${ast.key.visit(this, context)}]`;
|
|
19397
|
+
}
|
|
19398
|
+
visitCall(ast, context) {
|
|
19399
|
+
return `${ast.receiver.visit(this, context)}(${ast.args
|
|
19400
|
+
.map((e) => e.visit(this, context))
|
|
19401
|
+
.join(', ')})`;
|
|
19402
|
+
}
|
|
19403
|
+
visitSafeCall(ast, context) {
|
|
19404
|
+
return `${ast.receiver.visit(this, context)}?.(${ast.args
|
|
19405
|
+
.map((e) => e.visit(this, context))
|
|
19406
|
+
.join(', ')})`;
|
|
19407
|
+
}
|
|
19408
|
+
visitTypeofExpresion(ast, context) {
|
|
19409
|
+
return `typeof ${ast.expression.visit(this, context)}`;
|
|
19410
|
+
}
|
|
19411
|
+
visitASTWithSource(ast, context) {
|
|
19412
|
+
return ast.ast.visit(this, context);
|
|
19413
|
+
}
|
|
19414
|
+
}
|
|
19415
|
+
/** Zips the two input arrays into a single array of pairs of elements at the same index. */
|
|
19416
|
+
function zip(left, right) {
|
|
19417
|
+
if (left.length !== right.length)
|
|
19418
|
+
throw new Error('Array lengths must match');
|
|
19419
|
+
return left.map((l, i) => [l, right[i]]);
|
|
19420
|
+
}
|
|
19421
|
+
/**
|
|
19422
|
+
* Interleaves the two arrays, starting with the first item on the left, then the first item
|
|
19423
|
+
* on the right, second item from the left, and so on. When the first array's items are exhausted,
|
|
19424
|
+
* the remaining items from the other array are included with no interleaving.
|
|
19425
|
+
*/
|
|
19426
|
+
function interleave(left, right) {
|
|
19427
|
+
const result = [];
|
|
19428
|
+
for (let index = 0; index < Math.max(left.length, right.length); index++) {
|
|
19429
|
+
if (index < left.length)
|
|
19430
|
+
result.push(left[index]);
|
|
19431
|
+
if (index < right.length)
|
|
19432
|
+
result.push(right[index]);
|
|
19433
|
+
}
|
|
19434
|
+
return result;
|
|
19435
|
+
}
|
|
19436
|
+
|
|
18727
19437
|
// =================================================================================================
|
|
18728
19438
|
// =================================================================================================
|
|
18729
19439
|
// =========== S T O P - S T O P - S T O P - S T O P - S T O P - S T O P ===========
|
|
@@ -19073,12 +19783,12 @@ const _PROP_TO_ATTR = Array.from(_ATTR_TO_PROP).reduce((inverted, [propertyName,
|
|
|
19073
19783
|
return inverted;
|
|
19074
19784
|
}, new Map());
|
|
19075
19785
|
class DomElementSchemaRegistry extends ElementSchemaRegistry {
|
|
19786
|
+
_schema = new Map();
|
|
19787
|
+
// We don't allow binding to events for security reasons. Allowing event bindings would almost
|
|
19788
|
+
// certainly introduce bad XSS vulnerabilities. Instead, we store events in a separate schema.
|
|
19789
|
+
_eventSchema = new Map();
|
|
19076
19790
|
constructor() {
|
|
19077
19791
|
super();
|
|
19078
|
-
this._schema = new Map();
|
|
19079
|
-
// We don't allow binding to events for security reasons. Allowing event bindings would almost
|
|
19080
|
-
// certainly introduce bad XSS vulnerabilities. Instead, we store events in a separate schema.
|
|
19081
|
-
this._eventSchema = new Map();
|
|
19082
19792
|
SCHEMA.forEach((encodedType) => {
|
|
19083
19793
|
const type = new Map();
|
|
19084
19794
|
const events = new Set();
|
|
@@ -19275,9 +19985,15 @@ function _isPixelDimensionStyle(prop) {
|
|
|
19275
19985
|
}
|
|
19276
19986
|
|
|
19277
19987
|
class HtmlTagDefinition {
|
|
19988
|
+
closedByChildren = {};
|
|
19989
|
+
contentType;
|
|
19990
|
+
closedByParent = false;
|
|
19991
|
+
implicitNamespacePrefix;
|
|
19992
|
+
isVoid;
|
|
19993
|
+
ignoreFirstLf;
|
|
19994
|
+
canSelfClose;
|
|
19995
|
+
preventNamespaceInheritance;
|
|
19278
19996
|
constructor({ closedByChildren, implicitNamespacePrefix, contentType = TagContentType.PARSABLE_DATA, closedByParent = false, isVoid = false, ignoreFirstLf = false, preventNamespaceInheritance = false, canSelfClose = false, } = {}) {
|
|
19279
|
-
this.closedByChildren = {};
|
|
19280
|
-
this.closedByParent = false;
|
|
19281
19997
|
if (closedByChildren && closedByChildren.length > 0) {
|
|
19282
19998
|
closedByChildren.forEach((tagName) => (this.closedByChildren[tagName] = true));
|
|
19283
19999
|
}
|
|
@@ -19459,12 +20175,10 @@ const TAG_TO_PLACEHOLDER_NAMES = {
|
|
|
19459
20175
|
* Returns the same placeholder name when the content is identical.
|
|
19460
20176
|
*/
|
|
19461
20177
|
class PlaceholderRegistry {
|
|
19462
|
-
|
|
19463
|
-
|
|
19464
|
-
|
|
19465
|
-
|
|
19466
|
-
this._signatureToName = {};
|
|
19467
|
-
}
|
|
20178
|
+
// Count the occurrence of the base name top generate a unique name
|
|
20179
|
+
_placeHolderNameCounts = {};
|
|
20180
|
+
// Maps signature to placeholder names
|
|
20181
|
+
_signatureToName = {};
|
|
19468
20182
|
getStartTagPlaceholderName(tag, attrs, isVoid) {
|
|
19469
20183
|
const signature = this._hashTag(tag, attrs, isVoid);
|
|
19470
20184
|
if (this._signatureToName[signature]) {
|
|
@@ -19557,19 +20271,25 @@ const _expParser = new Parser(new Lexer());
|
|
|
19557
20271
|
/**
|
|
19558
20272
|
* Returns a function converting html nodes to an i18n Message given an interpolationConfig
|
|
19559
20273
|
*/
|
|
19560
|
-
function createI18nMessageFactory(interpolationConfig, containerBlocks, retainEmptyTokens) {
|
|
19561
|
-
const visitor = new _I18nVisitor(_expParser, interpolationConfig, containerBlocks, retainEmptyTokens);
|
|
20274
|
+
function createI18nMessageFactory(interpolationConfig, containerBlocks, retainEmptyTokens, preserveExpressionWhitespace) {
|
|
20275
|
+
const visitor = new _I18nVisitor(_expParser, interpolationConfig, containerBlocks, retainEmptyTokens, preserveExpressionWhitespace);
|
|
19562
20276
|
return (nodes, meaning, description, customId, visitNodeFn) => visitor.toI18nMessage(nodes, meaning, description, customId, visitNodeFn);
|
|
19563
20277
|
}
|
|
19564
20278
|
function noopVisitNodeFn(_html, i18n) {
|
|
19565
20279
|
return i18n;
|
|
19566
20280
|
}
|
|
19567
20281
|
class _I18nVisitor {
|
|
19568
|
-
|
|
20282
|
+
_expressionParser;
|
|
20283
|
+
_interpolationConfig;
|
|
20284
|
+
_containerBlocks;
|
|
20285
|
+
_retainEmptyTokens;
|
|
20286
|
+
_preserveExpressionWhitespace;
|
|
20287
|
+
constructor(_expressionParser, _interpolationConfig, _containerBlocks, _retainEmptyTokens, _preserveExpressionWhitespace) {
|
|
19569
20288
|
this._expressionParser = _expressionParser;
|
|
19570
20289
|
this._interpolationConfig = _interpolationConfig;
|
|
19571
20290
|
this._containerBlocks = _containerBlocks;
|
|
19572
20291
|
this._retainEmptyTokens = _retainEmptyTokens;
|
|
20292
|
+
this._preserveExpressionWhitespace = _preserveExpressionWhitespace;
|
|
19573
20293
|
}
|
|
19574
20294
|
toI18nMessage(nodes, meaning = '', description = '', customId = '', visitNodeFn) {
|
|
19575
20295
|
const context = {
|
|
@@ -19698,14 +20418,24 @@ class _I18nVisitor {
|
|
|
19698
20418
|
case 8 /* TokenType.INTERPOLATION */:
|
|
19699
20419
|
case 17 /* TokenType.ATTR_VALUE_INTERPOLATION */:
|
|
19700
20420
|
hasInterpolation = true;
|
|
19701
|
-
const expression = token.parts
|
|
20421
|
+
const [startMarker, expression, endMarker] = token.parts;
|
|
19702
20422
|
const baseName = extractPlaceholderName(expression) || 'INTERPOLATION';
|
|
19703
20423
|
const phName = context.placeholderRegistry.getPlaceholderName(baseName, expression);
|
|
19704
|
-
|
|
19705
|
-
|
|
19706
|
-
|
|
19707
|
-
|
|
19708
|
-
|
|
20424
|
+
if (this._preserveExpressionWhitespace) {
|
|
20425
|
+
context.placeholderToContent[phName] = {
|
|
20426
|
+
text: token.parts.join(''),
|
|
20427
|
+
sourceSpan: token.sourceSpan,
|
|
20428
|
+
};
|
|
20429
|
+
nodes.push(new Placeholder(expression, phName, token.sourceSpan));
|
|
20430
|
+
}
|
|
20431
|
+
else {
|
|
20432
|
+
const normalized = this.normalizeExpression(token);
|
|
20433
|
+
context.placeholderToContent[phName] = {
|
|
20434
|
+
text: `${startMarker}${normalized}${endMarker}`,
|
|
20435
|
+
sourceSpan: token.sourceSpan,
|
|
20436
|
+
};
|
|
20437
|
+
nodes.push(new Placeholder(normalized, phName, token.sourceSpan));
|
|
20438
|
+
}
|
|
19709
20439
|
break;
|
|
19710
20440
|
default:
|
|
19711
20441
|
// Try to merge text tokens with previous tokens. We do this even for all tokens
|
|
@@ -19752,6 +20482,15 @@ class _I18nVisitor {
|
|
|
19752
20482
|
return nodes[0];
|
|
19753
20483
|
}
|
|
19754
20484
|
}
|
|
20485
|
+
// Normalize expression whitespace by parsing and re-serializing it. This makes
|
|
20486
|
+
// message IDs more durable to insignificant whitespace changes.
|
|
20487
|
+
normalizeExpression(token) {
|
|
20488
|
+
const expression = token.parts[1];
|
|
20489
|
+
const expr = this._expressionParser.parseBinding(expression,
|
|
20490
|
+
/* location */ token.sourceSpan.start.toString(),
|
|
20491
|
+
/* absoluteOffset */ token.sourceSpan.start.offset, this._interpolationConfig);
|
|
20492
|
+
return serialize(expr);
|
|
20493
|
+
}
|
|
19755
20494
|
}
|
|
19756
20495
|
/**
|
|
19757
20496
|
* Re-use the source-spans from `previousI18n` metadata for the `nodes`.
|
|
@@ -19884,6 +20623,15 @@ const setI18nRefs = (originalNodeMap) => {
|
|
|
19884
20623
|
* stored with other element's and attribute's information.
|
|
19885
20624
|
*/
|
|
19886
20625
|
class I18nMetaVisitor {
|
|
20626
|
+
interpolationConfig;
|
|
20627
|
+
keepI18nAttrs;
|
|
20628
|
+
enableI18nLegacyMessageIdFormat;
|
|
20629
|
+
containerBlocks;
|
|
20630
|
+
preserveSignificantWhitespace;
|
|
20631
|
+
retainEmptyTokens;
|
|
20632
|
+
// whether visited nodes contain i18n information
|
|
20633
|
+
hasI18nMeta = false;
|
|
20634
|
+
_errors = [];
|
|
19887
20635
|
constructor(interpolationConfig = DEFAULT_INTERPOLATION_CONFIG, keepI18nAttrs = false, enableI18nLegacyMessageIdFormat = false, containerBlocks = DEFAULT_CONTAINER_BLOCKS, preserveSignificantWhitespace = true,
|
|
19888
20636
|
// When dropping significant whitespace we need to retain empty tokens or
|
|
19889
20637
|
// else we won't be able to reuse source spans because empty tokens would be
|
|
@@ -19898,13 +20646,11 @@ class I18nMetaVisitor {
|
|
|
19898
20646
|
this.containerBlocks = containerBlocks;
|
|
19899
20647
|
this.preserveSignificantWhitespace = preserveSignificantWhitespace;
|
|
19900
20648
|
this.retainEmptyTokens = retainEmptyTokens;
|
|
19901
|
-
// whether visited nodes contain i18n information
|
|
19902
|
-
this.hasI18nMeta = false;
|
|
19903
|
-
this._errors = [];
|
|
19904
20649
|
}
|
|
19905
20650
|
_generateI18nMessage(nodes, meta = '', visitNodeFn) {
|
|
19906
20651
|
const { meaning, description, customId } = this._parseMetadata(meta);
|
|
19907
|
-
const createI18nMessage = createI18nMessageFactory(this.interpolationConfig, this.containerBlocks, this.retainEmptyTokens
|
|
20652
|
+
const createI18nMessage = createI18nMessageFactory(this.interpolationConfig, this.containerBlocks, this.retainEmptyTokens,
|
|
20653
|
+
/* preserveExpressionWhitespace */ this.preserveSignificantWhitespace);
|
|
19908
20654
|
const message = createI18nMessage(nodes, meaning, description, customId, visitNodeFn);
|
|
19909
20655
|
this._setMessageId(message, meta);
|
|
19910
20656
|
this._setLegacyIds(message, meta);
|
|
@@ -20053,9 +20799,7 @@ class I18nMetaVisitor {
|
|
|
20053
20799
|
*/
|
|
20054
20800
|
_setMessageId(message, meta) {
|
|
20055
20801
|
if (!message.id) {
|
|
20056
|
-
message.id =
|
|
20057
|
-
(meta instanceof Message && meta.id) ||
|
|
20058
|
-
decimalDigest(message, /* preservePlaceholders */ this.preserveSignificantWhitespace);
|
|
20802
|
+
message.id = (meta instanceof Message && meta.id) || decimalDigest(message);
|
|
20059
20803
|
}
|
|
20060
20804
|
}
|
|
20061
20805
|
/**
|
|
@@ -20066,11 +20810,7 @@ class I18nMetaVisitor {
|
|
|
20066
20810
|
*/
|
|
20067
20811
|
_setLegacyIds(message, meta) {
|
|
20068
20812
|
if (this.enableI18nLegacyMessageIdFormat) {
|
|
20069
|
-
message.legacyIds = [
|
|
20070
|
-
computeDigest(message),
|
|
20071
|
-
computeDecimalDigest(message,
|
|
20072
|
-
/* preservePlaceholders */ this.preserveSignificantWhitespace),
|
|
20073
|
-
];
|
|
20813
|
+
message.legacyIds = [computeDigest(message), computeDecimalDigest(message)];
|
|
20074
20814
|
}
|
|
20075
20815
|
else if (typeof meta !== 'string') {
|
|
20076
20816
|
// This occurs if we are doing the 2nd pass after whitespace removal (see `parseTemplate()` in
|
|
@@ -20263,6 +21003,8 @@ function createLocalizeStatements(variable, message, params) {
|
|
|
20263
21003
|
* The result can be used for generating the `$localize` tagged template literals.
|
|
20264
21004
|
*/
|
|
20265
21005
|
class LocalizeSerializerVisitor {
|
|
21006
|
+
placeholderToMessage;
|
|
21007
|
+
pieces;
|
|
20266
21008
|
constructor(placeholderToMessage, pieces) {
|
|
20267
21009
|
this.placeholderToMessage = placeholderToMessage;
|
|
20268
21010
|
this.pieces = pieces;
|
|
@@ -21581,6 +22323,7 @@ function extractPureFunctions(job) {
|
|
|
21581
22323
|
}
|
|
21582
22324
|
}
|
|
21583
22325
|
class PureFunctionConstant extends GenericKeyFn {
|
|
22326
|
+
numArgs;
|
|
21584
22327
|
constructor(numArgs) {
|
|
21585
22328
|
super();
|
|
21586
22329
|
this.numArgs = numArgs;
|
|
@@ -25280,6 +26023,9 @@ function convertAst(ast, job, baseSourceSpan) {
|
|
|
25280
26023
|
else if (ast instanceof PrefixNot) {
|
|
25281
26024
|
return not(convertAst(ast.expression, job, baseSourceSpan), convertSourceSpan(ast.span, baseSourceSpan));
|
|
25282
26025
|
}
|
|
26026
|
+
else if (ast instanceof TypeofExpression) {
|
|
26027
|
+
return typeofExpr(convertAst(ast.expression, job, baseSourceSpan));
|
|
26028
|
+
}
|
|
25283
26029
|
else {
|
|
25284
26030
|
throw new Error(`Unhandled expression type "${ast.constructor.name}" in file "${baseSourceSpan?.start.file.url}"`);
|
|
25285
26031
|
}
|
|
@@ -25837,6 +26583,11 @@ const ANIMATE_PROP_PREFIX = 'animate-';
|
|
|
25837
26583
|
* Parses bindings in templates and in the directive host area.
|
|
25838
26584
|
*/
|
|
25839
26585
|
class BindingParser {
|
|
26586
|
+
_exprParser;
|
|
26587
|
+
_interpolationConfig;
|
|
26588
|
+
_schemaRegistry;
|
|
26589
|
+
errors;
|
|
26590
|
+
_allowInvalidAssignmentEvents;
|
|
25840
26591
|
constructor(_exprParser, _interpolationConfig, _schemaRegistry, errors, _allowInvalidAssignmentEvents = false) {
|
|
25841
26592
|
this._exprParser = _exprParser;
|
|
25842
26593
|
this._interpolationConfig = _interpolationConfig;
|
|
@@ -26239,10 +26990,7 @@ class BindingParser {
|
|
|
26239
26990
|
}
|
|
26240
26991
|
}
|
|
26241
26992
|
class PipeCollector extends RecursiveAstVisitor {
|
|
26242
|
-
|
|
26243
|
-
super(...arguments);
|
|
26244
|
-
this.pipes = new Map();
|
|
26245
|
-
}
|
|
26993
|
+
pipes = new Map();
|
|
26246
26994
|
visitPipe(ast, context) {
|
|
26247
26995
|
this.pipes.set(ast.name, ast);
|
|
26248
26996
|
ast.exp.visit(this);
|
|
@@ -26350,6 +27098,11 @@ var PreparsedElementType;
|
|
|
26350
27098
|
PreparsedElementType[PreparsedElementType["OTHER"] = 4] = "OTHER";
|
|
26351
27099
|
})(PreparsedElementType || (PreparsedElementType = {}));
|
|
26352
27100
|
class PreparsedElement {
|
|
27101
|
+
type;
|
|
27102
|
+
selectAttr;
|
|
27103
|
+
hrefAttr;
|
|
27104
|
+
nonBindable;
|
|
27105
|
+
projectAs;
|
|
26353
27106
|
constructor(type, selectAttr, hrefAttr, nonBindable, projectAs) {
|
|
26354
27107
|
this.type = type;
|
|
26355
27108
|
this.selectAttr = selectAttr;
|
|
@@ -26860,6 +27613,18 @@ function getHydrateSpan(expression, sourceSpan) {
|
|
|
26860
27613
|
return new ParseSourceSpan(sourceSpan.start, sourceSpan.start.moveBy('hydrate'.length));
|
|
26861
27614
|
}
|
|
26862
27615
|
class OnTriggerParser {
|
|
27616
|
+
expression;
|
|
27617
|
+
start;
|
|
27618
|
+
span;
|
|
27619
|
+
triggers;
|
|
27620
|
+
errors;
|
|
27621
|
+
validator;
|
|
27622
|
+
placeholder;
|
|
27623
|
+
prefetchSpan;
|
|
27624
|
+
onSourceSpan;
|
|
27625
|
+
hydrateSpan;
|
|
27626
|
+
index = 0;
|
|
27627
|
+
tokens;
|
|
26863
27628
|
constructor(expression, start, span, triggers, errors, validator, placeholder, prefetchSpan, onSourceSpan, hydrateSpan) {
|
|
26864
27629
|
this.expression = expression;
|
|
26865
27630
|
this.start = start;
|
|
@@ -26871,7 +27636,6 @@ class OnTriggerParser {
|
|
|
26871
27636
|
this.prefetchSpan = prefetchSpan;
|
|
26872
27637
|
this.onSourceSpan = onSourceSpan;
|
|
26873
27638
|
this.hydrateSpan = hydrateSpan;
|
|
26874
|
-
this.index = 0;
|
|
26875
27639
|
this.tokens = new Lexer().tokenize(expression.slice(start));
|
|
26876
27640
|
}
|
|
26877
27641
|
parse() {
|
|
@@ -27134,7 +27898,7 @@ const HYDRATE_WHEN_PATTERN = /^hydrate\s+when\s/;
|
|
|
27134
27898
|
/** Pattern to identify a `hydrate on` trigger. */
|
|
27135
27899
|
const HYDRATE_ON_PATTERN = /^hydrate\s+on\s/;
|
|
27136
27900
|
/** Pattern to identify a `hydrate never` trigger. */
|
|
27137
|
-
const HYDRATE_NEVER_PATTERN = /^hydrate\s+never\s
|
|
27901
|
+
const HYDRATE_NEVER_PATTERN = /^hydrate\s+never(\s*)$/;
|
|
27138
27902
|
/** Pattern to identify a `minimum` parameter in a block. */
|
|
27139
27903
|
const MINIMUM_PARAMETER_PATTERN = /^minimum\s/;
|
|
27140
27904
|
/** Pattern to identify a `after` parameter in a block. */
|
|
@@ -27342,21 +28106,23 @@ function htmlAstToRender3Ast(htmlNodes, bindingParser, options) {
|
|
|
27342
28106
|
return result;
|
|
27343
28107
|
}
|
|
27344
28108
|
class HtmlAstToIvyAst {
|
|
28109
|
+
bindingParser;
|
|
28110
|
+
options;
|
|
28111
|
+
errors = [];
|
|
28112
|
+
styles = [];
|
|
28113
|
+
styleUrls = [];
|
|
28114
|
+
ngContentSelectors = [];
|
|
28115
|
+
// This array will be populated if `Render3ParseOptions['collectCommentNodes']` is true
|
|
28116
|
+
commentNodes = [];
|
|
28117
|
+
inI18nBlock = false;
|
|
28118
|
+
/**
|
|
28119
|
+
* Keeps track of the nodes that have been processed already when previous nodes were visited.
|
|
28120
|
+
* These are typically blocks connected to other blocks or text nodes between connected blocks.
|
|
28121
|
+
*/
|
|
28122
|
+
processedNodes = new Set();
|
|
27345
28123
|
constructor(bindingParser, options) {
|
|
27346
28124
|
this.bindingParser = bindingParser;
|
|
27347
28125
|
this.options = options;
|
|
27348
|
-
this.errors = [];
|
|
27349
|
-
this.styles = [];
|
|
27350
|
-
this.styleUrls = [];
|
|
27351
|
-
this.ngContentSelectors = [];
|
|
27352
|
-
// This array will be populated if `Render3ParseOptions['collectCommentNodes']` is true
|
|
27353
|
-
this.commentNodes = [];
|
|
27354
|
-
this.inI18nBlock = false;
|
|
27355
|
-
/**
|
|
27356
|
-
* Keeps track of the nodes that have been processed already when previous nodes were visited.
|
|
27357
|
-
* These are typically blocks connected to other blocks or text nodes between connected blocks.
|
|
27358
|
-
*/
|
|
27359
|
-
this.processedNodes = new Set();
|
|
27360
28126
|
}
|
|
27361
28127
|
// HTML visitor
|
|
27362
28128
|
visitElement(element) {
|
|
@@ -27992,8 +28758,8 @@ function baseDirectiveFields(meta, constantPool, bindingParser) {
|
|
|
27992
28758
|
if (meta.exportAs !== null) {
|
|
27993
28759
|
definitionMap.set('exportAs', literalArr(meta.exportAs.map((e) => literal(e))));
|
|
27994
28760
|
}
|
|
27995
|
-
if (meta.isStandalone) {
|
|
27996
|
-
definitionMap.set('standalone', literal(
|
|
28761
|
+
if (meta.isStandalone === false) {
|
|
28762
|
+
definitionMap.set('standalone', literal(false));
|
|
27997
28763
|
}
|
|
27998
28764
|
if (meta.isSignal) {
|
|
27999
28765
|
definitionMap.set('signals', literal(true));
|
|
@@ -28037,10 +28803,6 @@ function addFeatures(definitionMap, meta) {
|
|
|
28037
28803
|
if (meta.lifecycle.usesOnChanges) {
|
|
28038
28804
|
features.push(importExpr(Identifiers.NgOnChangesFeature));
|
|
28039
28805
|
}
|
|
28040
|
-
// TODO: better way of differentiating component vs directive metadata.
|
|
28041
|
-
if (meta.hasOwnProperty('template') && meta.isStandalone) {
|
|
28042
|
-
features.push(importExpr(Identifiers.StandaloneFeature));
|
|
28043
|
-
}
|
|
28044
28806
|
if ('externalStyles' in meta && meta.externalStyles?.length) {
|
|
28045
28807
|
const externalStyleNodes = meta.externalStyles.map((externalStyle) => literal(externalStyle));
|
|
28046
28808
|
features.push(importExpr(Identifiers.ExternalStylesFeature).callFn([literalArr(externalStyleNodes)]));
|
|
@@ -28569,6 +29331,7 @@ function findMatchingDirectivesAndPipes(template, directiveSelectors) {
|
|
|
28569
29331
|
* target.
|
|
28570
29332
|
*/
|
|
28571
29333
|
class R3TargetBinder {
|
|
29334
|
+
directiveMatcher;
|
|
28572
29335
|
constructor(directiveMatcher) {
|
|
28573
29336
|
this.directiveMatcher = directiveMatcher;
|
|
28574
29337
|
}
|
|
@@ -28606,21 +29369,25 @@ class R3TargetBinder {
|
|
|
28606
29369
|
* be analyzed and have their child `Scope`s available in `childScopes`.
|
|
28607
29370
|
*/
|
|
28608
29371
|
class Scope {
|
|
29372
|
+
parentScope;
|
|
29373
|
+
rootNode;
|
|
29374
|
+
/**
|
|
29375
|
+
* Named members of the `Scope`, such as `Reference`s or `Variable`s.
|
|
29376
|
+
*/
|
|
29377
|
+
namedEntities = new Map();
|
|
29378
|
+
/**
|
|
29379
|
+
* Set of elements that belong to this scope.
|
|
29380
|
+
*/
|
|
29381
|
+
elementsInScope = new Set();
|
|
29382
|
+
/**
|
|
29383
|
+
* Child `Scope`s for immediately nested `ScopedNode`s.
|
|
29384
|
+
*/
|
|
29385
|
+
childScopes = new Map();
|
|
29386
|
+
/** Whether this scope is deferred or if any of its ancestors are deferred. */
|
|
29387
|
+
isDeferred;
|
|
28609
29388
|
constructor(parentScope, rootNode) {
|
|
28610
29389
|
this.parentScope = parentScope;
|
|
28611
29390
|
this.rootNode = rootNode;
|
|
28612
|
-
/**
|
|
28613
|
-
* Named members of the `Scope`, such as `Reference`s or `Variable`s.
|
|
28614
|
-
*/
|
|
28615
|
-
this.namedEntities = new Map();
|
|
28616
|
-
/**
|
|
28617
|
-
* Set of elements that belong to this scope.
|
|
28618
|
-
*/
|
|
28619
|
-
this.elementsInScope = new Set();
|
|
28620
|
-
/**
|
|
28621
|
-
* Child `Scope`s for immediately nested `ScopedNode`s.
|
|
28622
|
-
*/
|
|
28623
|
-
this.childScopes = new Map();
|
|
28624
29391
|
this.isDeferred =
|
|
28625
29392
|
parentScope !== null && parentScope.isDeferred ? true : rootNode instanceof DeferredBlock;
|
|
28626
29393
|
}
|
|
@@ -28791,14 +29558,19 @@ class Scope {
|
|
|
28791
29558
|
* Usually used via the static `apply()` method.
|
|
28792
29559
|
*/
|
|
28793
29560
|
class DirectiveBinder {
|
|
29561
|
+
matcher;
|
|
29562
|
+
directives;
|
|
29563
|
+
eagerDirectives;
|
|
29564
|
+
bindings;
|
|
29565
|
+
references;
|
|
29566
|
+
// Indicates whether we are visiting elements within a `defer` block
|
|
29567
|
+
isInDeferBlock = false;
|
|
28794
29568
|
constructor(matcher, directives, eagerDirectives, bindings, references) {
|
|
28795
29569
|
this.matcher = matcher;
|
|
28796
29570
|
this.directives = directives;
|
|
28797
29571
|
this.eagerDirectives = eagerDirectives;
|
|
28798
29572
|
this.bindings = bindings;
|
|
28799
29573
|
this.references = references;
|
|
28800
|
-
// Indicates whether we are visiting elements within a `defer` block
|
|
28801
|
-
this.isInDeferBlock = false;
|
|
28802
29574
|
}
|
|
28803
29575
|
/**
|
|
28804
29576
|
* Process a template (list of `Node`s) and perform directive matching against each node.
|
|
@@ -28957,6 +29729,16 @@ class DirectiveBinder {
|
|
|
28957
29729
|
* by overridden methods from that visitor.
|
|
28958
29730
|
*/
|
|
28959
29731
|
class TemplateBinder extends RecursiveAstVisitor {
|
|
29732
|
+
bindings;
|
|
29733
|
+
symbols;
|
|
29734
|
+
usedPipes;
|
|
29735
|
+
eagerPipes;
|
|
29736
|
+
deferBlocks;
|
|
29737
|
+
nestingLevel;
|
|
29738
|
+
scope;
|
|
29739
|
+
rootNode;
|
|
29740
|
+
level;
|
|
29741
|
+
visitNode;
|
|
28960
29742
|
constructor(bindings, symbols, usedPipes, eagerPipes, deferBlocks, nestingLevel, scope, rootNode, level) {
|
|
28961
29743
|
super();
|
|
28962
29744
|
this.bindings = bindings;
|
|
@@ -29196,6 +29978,21 @@ class TemplateBinder extends RecursiveAstVisitor {
|
|
|
29196
29978
|
* See `BoundTarget` for documentation on the individual methods.
|
|
29197
29979
|
*/
|
|
29198
29980
|
class R3BoundTarget {
|
|
29981
|
+
target;
|
|
29982
|
+
directives;
|
|
29983
|
+
eagerDirectives;
|
|
29984
|
+
bindings;
|
|
29985
|
+
references;
|
|
29986
|
+
exprTargets;
|
|
29987
|
+
symbols;
|
|
29988
|
+
nestingLevel;
|
|
29989
|
+
scopedNodeEntities;
|
|
29990
|
+
usedPipes;
|
|
29991
|
+
eagerPipes;
|
|
29992
|
+
/** Deferred blocks, ordered as they appear in the template. */
|
|
29993
|
+
deferredBlocks;
|
|
29994
|
+
/** Map of deferred blocks to their scope. */
|
|
29995
|
+
deferredScopes;
|
|
29199
29996
|
constructor(target, directives, eagerDirectives, bindings, references, exprTargets, symbols, nestingLevel, scopedNodeEntities, usedPipes, eagerPipes, rawDeferred) {
|
|
29200
29997
|
this.target = target;
|
|
29201
29998
|
this.directives = directives;
|
|
@@ -29383,11 +30180,12 @@ class ResourceLoader {
|
|
|
29383
30180
|
}
|
|
29384
30181
|
|
|
29385
30182
|
class CompilerFacadeImpl {
|
|
30183
|
+
jitEvaluator;
|
|
30184
|
+
FactoryTarget = FactoryTarget$1;
|
|
30185
|
+
ResourceLoader = ResourceLoader;
|
|
30186
|
+
elementSchemaRegistry = new DomElementSchemaRegistry();
|
|
29386
30187
|
constructor(jitEvaluator = new JitEvaluator()) {
|
|
29387
30188
|
this.jitEvaluator = jitEvaluator;
|
|
29388
|
-
this.FactoryTarget = FactoryTarget$1;
|
|
29389
|
-
this.ResourceLoader = ResourceLoader;
|
|
29390
|
-
this.elementSchemaRegistry = new DomElementSchemaRegistry();
|
|
29391
30189
|
}
|
|
29392
30190
|
compilePipe(angularCoreEnv, sourceMapUrl, facade) {
|
|
29393
30191
|
const metadata = {
|
|
@@ -29692,7 +30490,7 @@ function convertDeclareDirectiveFacadeToMetadata(declaration, typeSourceSpan) {
|
|
|
29692
30490
|
deps: null,
|
|
29693
30491
|
typeArgumentCount: 0,
|
|
29694
30492
|
fullInheritance: false,
|
|
29695
|
-
isStandalone: declaration.isStandalone ??
|
|
30493
|
+
isStandalone: declaration.isStandalone ?? getJitStandaloneDefaultForVersion(declaration.version),
|
|
29696
30494
|
isSignal: declaration.isSignal ?? false,
|
|
29697
30495
|
hostDirectives,
|
|
29698
30496
|
};
|
|
@@ -30016,7 +30814,7 @@ function convertDeclarePipeFacadeToMetadata(declaration) {
|
|
|
30016
30814
|
pipeName: declaration.name,
|
|
30017
30815
|
deps: null,
|
|
30018
30816
|
pure: declaration.pure ?? true,
|
|
30019
|
-
isStandalone: declaration.isStandalone ??
|
|
30817
|
+
isStandalone: declaration.isStandalone ?? getJitStandaloneDefaultForVersion(declaration.version),
|
|
30020
30818
|
};
|
|
30021
30819
|
}
|
|
30022
30820
|
function convertDeclareInjectorFacadeToMetadata(declaration) {
|
|
@@ -30041,9 +30839,12 @@ function publishFacade(global) {
|
|
|
30041
30839
|
* @description
|
|
30042
30840
|
* Entry point for all public APIs of the compiler package.
|
|
30043
30841
|
*/
|
|
30044
|
-
const VERSION = new Version('19.0.0-
|
|
30842
|
+
const VERSION = new Version('19.0.0-rc.0');
|
|
30045
30843
|
|
|
30046
30844
|
class CompilerConfig {
|
|
30845
|
+
defaultEncapsulation;
|
|
30846
|
+
preserveWhitespaces;
|
|
30847
|
+
strictInjectionParameters;
|
|
30047
30848
|
constructor({ defaultEncapsulation = ViewEncapsulation.Emulated, preserveWhitespaces, strictInjectionParameters, } = {}) {
|
|
30048
30849
|
this.defaultEncapsulation = defaultEncapsulation;
|
|
30049
30850
|
this.preserveWhitespaces = preserveWhitespacesDefault(noUndefined(preserveWhitespaces));
|
|
@@ -30072,6 +30873,8 @@ function mergeTranslations(nodes, translations, interpolationConfig, implicitTag
|
|
|
30072
30873
|
return visitor.merge(nodes, translations, interpolationConfig);
|
|
30073
30874
|
}
|
|
30074
30875
|
class ExtractionResult {
|
|
30876
|
+
messages;
|
|
30877
|
+
errors;
|
|
30075
30878
|
constructor(messages, errors) {
|
|
30076
30879
|
this.messages = messages;
|
|
30077
30880
|
this.errors = errors;
|
|
@@ -30090,6 +30893,30 @@ var _VisitorMode;
|
|
|
30090
30893
|
* @internal
|
|
30091
30894
|
*/
|
|
30092
30895
|
class _Visitor {
|
|
30896
|
+
_implicitTags;
|
|
30897
|
+
_implicitAttrs;
|
|
30898
|
+
_preserveSignificantWhitespace;
|
|
30899
|
+
// Using non-null assertions because all variables are (re)set in init()
|
|
30900
|
+
_depth;
|
|
30901
|
+
// <el i18n>...</el>
|
|
30902
|
+
_inI18nNode;
|
|
30903
|
+
_inImplicitNode;
|
|
30904
|
+
// <!--i18n-->...<!--/i18n-->
|
|
30905
|
+
_inI18nBlock;
|
|
30906
|
+
_blockMeaningAndDesc;
|
|
30907
|
+
_blockChildren;
|
|
30908
|
+
_blockStartDepth;
|
|
30909
|
+
// {<icu message>}
|
|
30910
|
+
_inIcu;
|
|
30911
|
+
// set to void 0 when not in a section
|
|
30912
|
+
_msgCountAtSectionStart;
|
|
30913
|
+
_errors;
|
|
30914
|
+
_mode;
|
|
30915
|
+
// _VisitorMode.Extract only
|
|
30916
|
+
_messages;
|
|
30917
|
+
// _VisitorMode.Merge only
|
|
30918
|
+
_translations;
|
|
30919
|
+
_createI18nMessage;
|
|
30093
30920
|
constructor(_implicitTags, _implicitAttrs, _preserveSignificantWhitespace = true) {
|
|
30094
30921
|
this._implicitTags = _implicitTags;
|
|
30095
30922
|
this._implicitAttrs = _implicitAttrs;
|
|
@@ -30282,7 +31109,8 @@ class _Visitor {
|
|
|
30282
31109
|
// When dropping significant whitespace we need to retain whitespace tokens or
|
|
30283
31110
|
// else we won't be able to reuse source spans because empty tokens would be
|
|
30284
31111
|
// removed and cause a mismatch.
|
|
30285
|
-
!this._preserveSignificantWhitespace
|
|
31112
|
+
/* retainEmptyTokens */ !this._preserveSignificantWhitespace,
|
|
31113
|
+
/* preserveExpressionWhitespace */ this._preserveSignificantWhitespace);
|
|
30286
31114
|
}
|
|
30287
31115
|
// looks for translatable attributes
|
|
30288
31116
|
_visitAttributesOf(el) {
|
|
@@ -30303,7 +31131,9 @@ class _Visitor {
|
|
|
30303
31131
|
// add a translatable message
|
|
30304
31132
|
_addMessage(ast, msgMeta) {
|
|
30305
31133
|
if (ast.length == 0 ||
|
|
30306
|
-
(ast
|
|
31134
|
+
this._isEmptyAttributeValue(ast) ||
|
|
31135
|
+
this._isPlaceholderOnlyAttributeValue(ast) ||
|
|
31136
|
+
this._isPlaceholderOnlyMessage(ast)) {
|
|
30307
31137
|
// Do not create empty messages
|
|
30308
31138
|
return null;
|
|
30309
31139
|
}
|
|
@@ -30312,6 +31142,41 @@ class _Visitor {
|
|
|
30312
31142
|
this._messages.push(message);
|
|
30313
31143
|
return message;
|
|
30314
31144
|
}
|
|
31145
|
+
// Check for cases like `<div i18n-title title="">`.
|
|
31146
|
+
_isEmptyAttributeValue(ast) {
|
|
31147
|
+
if (!isAttrNode(ast))
|
|
31148
|
+
return false;
|
|
31149
|
+
const node = ast[0];
|
|
31150
|
+
return node.value.trim() === '';
|
|
31151
|
+
}
|
|
31152
|
+
// Check for cases like `<div i18n-title title="{{ name }}">`.
|
|
31153
|
+
_isPlaceholderOnlyAttributeValue(ast) {
|
|
31154
|
+
if (!isAttrNode(ast))
|
|
31155
|
+
return false;
|
|
31156
|
+
const tokens = ast[0].valueTokens ?? [];
|
|
31157
|
+
const interpolations = tokens.filter((token) => token.type === 17 /* TokenType.ATTR_VALUE_INTERPOLATION */);
|
|
31158
|
+
const plainText = tokens
|
|
31159
|
+
.filter((token) => token.type === 16 /* TokenType.ATTR_VALUE_TEXT */)
|
|
31160
|
+
// `AttributeValueTextToken` always has exactly one part per its type.
|
|
31161
|
+
.map((token) => token.parts[0].trim())
|
|
31162
|
+
.join('');
|
|
31163
|
+
// Check if there is a single interpolation and all text around it is empty.
|
|
31164
|
+
return interpolations.length === 1 && plainText === '';
|
|
31165
|
+
}
|
|
31166
|
+
// Check for cases like `<div i18n>{{ name }}</div>`.
|
|
31167
|
+
_isPlaceholderOnlyMessage(ast) {
|
|
31168
|
+
if (!isTextNode(ast))
|
|
31169
|
+
return false;
|
|
31170
|
+
const tokens = ast[0].tokens;
|
|
31171
|
+
const interpolations = tokens.filter((token) => token.type === 8 /* TokenType.INTERPOLATION */);
|
|
31172
|
+
const plainText = tokens
|
|
31173
|
+
.filter((token) => token.type === 5 /* TokenType.TEXT */)
|
|
31174
|
+
// `TextToken` always has exactly one part per its type.
|
|
31175
|
+
.map((token) => token.parts[0].trim())
|
|
31176
|
+
.join('');
|
|
31177
|
+
// Check if there is a single interpolation and all text around it is empty.
|
|
31178
|
+
return interpolations.length === 1 && plainText === '';
|
|
31179
|
+
}
|
|
30315
31180
|
// Translates the given message given the `TranslationBundle`
|
|
30316
31181
|
// This is used for translating elements / blocks - see `_translateAttributes` for attributes
|
|
30317
31182
|
// no-op when called in extraction mode (returns [])
|
|
@@ -30454,16 +31319,20 @@ function _parseMessageMeta(i18n) {
|
|
|
30454
31319
|
: ['', meaningAndDesc];
|
|
30455
31320
|
return { meaning, description, id: id.trim() };
|
|
30456
31321
|
}
|
|
31322
|
+
function isTextNode(ast) {
|
|
31323
|
+
return ast.length === 1 && ast[0] instanceof Text;
|
|
31324
|
+
}
|
|
31325
|
+
function isAttrNode(ast) {
|
|
31326
|
+
return ast.length === 1 && ast[0] instanceof Attribute;
|
|
31327
|
+
}
|
|
30457
31328
|
|
|
30458
31329
|
class XmlTagDefinition {
|
|
30459
|
-
|
|
30460
|
-
|
|
30461
|
-
|
|
30462
|
-
|
|
30463
|
-
|
|
30464
|
-
|
|
30465
|
-
this.preventNamespaceInheritance = false;
|
|
30466
|
-
}
|
|
31330
|
+
closedByParent = false;
|
|
31331
|
+
implicitNamespacePrefix = null;
|
|
31332
|
+
isVoid = false;
|
|
31333
|
+
ignoreFirstLf = false;
|
|
31334
|
+
canSelfClose = true;
|
|
31335
|
+
preventNamespaceInheritance = false;
|
|
30467
31336
|
requireExtraParent(currentParent) {
|
|
30468
31337
|
return false;
|
|
30469
31338
|
}
|
|
@@ -30544,7 +31413,7 @@ class Xliff extends Serializer {
|
|
|
30544
31413
|
file,
|
|
30545
31414
|
new CR(),
|
|
30546
31415
|
]);
|
|
30547
|
-
return serialize([
|
|
31416
|
+
return serialize$1([
|
|
30548
31417
|
new Declaration({ version: '1.0', encoding: 'UTF-8' }),
|
|
30549
31418
|
new CR(),
|
|
30550
31419
|
xliff,
|
|
@@ -30635,9 +31504,11 @@ class _WriteVisitor$1 {
|
|
|
30635
31504
|
// TODO(vicb): add error management (structure)
|
|
30636
31505
|
// Extract messages as xml nodes from the xliff file
|
|
30637
31506
|
class XliffParser {
|
|
30638
|
-
|
|
30639
|
-
|
|
30640
|
-
|
|
31507
|
+
// using non-null assertions because they're re(set) by parse()
|
|
31508
|
+
_unitMlString;
|
|
31509
|
+
_errors;
|
|
31510
|
+
_msgIdToHtml;
|
|
31511
|
+
_locale = null;
|
|
30641
31512
|
parse(xliff, url) {
|
|
30642
31513
|
this._unitMlString = null;
|
|
30643
31514
|
this._msgIdToHtml = {};
|
|
@@ -30713,6 +31584,8 @@ class XliffParser {
|
|
|
30713
31584
|
}
|
|
30714
31585
|
// Convert ml nodes (xliff syntax) to i18n nodes
|
|
30715
31586
|
class XmlToI18n$2 {
|
|
31587
|
+
// using non-null assertion because it's re(set) by convert()
|
|
31588
|
+
_errors;
|
|
30716
31589
|
convert(message, url) {
|
|
30717
31590
|
const xmlIcu = new XmlParser().parse(message, url, { tokenizeExpansionForms: true });
|
|
30718
31591
|
this._errors = xmlIcu.errors;
|
|
@@ -30819,7 +31692,7 @@ class Xliff2 extends Serializer {
|
|
|
30819
31692
|
new CR(2),
|
|
30820
31693
|
]);
|
|
30821
31694
|
const xliff = new Tag(_XLIFF_TAG, { version: _VERSION, xmlns: _XMLNS, srcLang: locale || _DEFAULT_SOURCE_LANG }, [new CR(2), file, new CR()]);
|
|
30822
|
-
return serialize([
|
|
31695
|
+
return serialize$1([
|
|
30823
31696
|
new Declaration({ version: '1.0', encoding: 'UTF-8' }),
|
|
30824
31697
|
new CR(),
|
|
30825
31698
|
xliff,
|
|
@@ -30844,13 +31717,11 @@ class Xliff2 extends Serializer {
|
|
|
30844
31717
|
return { locale: locale, i18nNodesByMsgId };
|
|
30845
31718
|
}
|
|
30846
31719
|
digest(message) {
|
|
30847
|
-
return decimalDigest(message
|
|
31720
|
+
return decimalDigest(message);
|
|
30848
31721
|
}
|
|
30849
31722
|
}
|
|
30850
31723
|
class _WriteVisitor {
|
|
30851
|
-
|
|
30852
|
-
this._nextPlaceholderId = 0;
|
|
30853
|
-
}
|
|
31724
|
+
_nextPlaceholderId = 0;
|
|
30854
31725
|
visitText(text, context) {
|
|
30855
31726
|
return [new Text$1(text.value)];
|
|
30856
31727
|
}
|
|
@@ -30943,9 +31814,11 @@ class _WriteVisitor {
|
|
|
30943
31814
|
}
|
|
30944
31815
|
// Extract messages as xml nodes from the xliff file
|
|
30945
31816
|
class Xliff2Parser {
|
|
30946
|
-
|
|
30947
|
-
|
|
30948
|
-
|
|
31817
|
+
// using non-null assertions because they're all (re)set by parse()
|
|
31818
|
+
_unitMlString;
|
|
31819
|
+
_errors;
|
|
31820
|
+
_msgIdToHtml;
|
|
31821
|
+
_locale = null;
|
|
30949
31822
|
parse(xliff, url) {
|
|
30950
31823
|
this._unitMlString = null;
|
|
30951
31824
|
this._msgIdToHtml = {};
|
|
@@ -31026,6 +31899,8 @@ class Xliff2Parser {
|
|
|
31026
31899
|
}
|
|
31027
31900
|
// Convert ml nodes (xliff syntax) to i18n nodes
|
|
31028
31901
|
class XmlToI18n$1 {
|
|
31902
|
+
// using non-null assertion because re(set) by convert()
|
|
31903
|
+
_errors;
|
|
31029
31904
|
convert(message, url) {
|
|
31030
31905
|
const xmlIcu = new XmlParser().parse(message, url, { tokenizeExpansionForms: true });
|
|
31031
31906
|
this._errors = xmlIcu.errors;
|
|
@@ -31143,7 +32018,7 @@ class Xtb extends Serializer {
|
|
|
31143
32018
|
return { locale: locale, i18nNodesByMsgId };
|
|
31144
32019
|
}
|
|
31145
32020
|
digest(message) {
|
|
31146
|
-
return digest(message
|
|
32021
|
+
return digest(message);
|
|
31147
32022
|
}
|
|
31148
32023
|
createNameMapper(message) {
|
|
31149
32024
|
return new SimplePlaceholderMapper(message, toPublicName);
|
|
@@ -31165,9 +32040,11 @@ function createLazyProperty(messages, id, valueFn) {
|
|
|
31165
32040
|
}
|
|
31166
32041
|
// Extract messages as xml nodes from the xtb file
|
|
31167
32042
|
class XtbParser {
|
|
31168
|
-
|
|
31169
|
-
|
|
31170
|
-
|
|
32043
|
+
// using non-null assertions because they're (re)set by parse()
|
|
32044
|
+
_bundleDepth;
|
|
32045
|
+
_errors;
|
|
32046
|
+
_msgIdToHtml;
|
|
32047
|
+
_locale = null;
|
|
31171
32048
|
parse(xtb, url) {
|
|
31172
32049
|
this._bundleDepth = 0;
|
|
31173
32050
|
this._msgIdToHtml = {};
|
|
@@ -31233,6 +32110,8 @@ class XtbParser {
|
|
|
31233
32110
|
}
|
|
31234
32111
|
// Convert ml nodes (xtb syntax) to i18n nodes
|
|
31235
32112
|
class XmlToI18n {
|
|
32113
|
+
// using non-null assertion because it's (re)set by convert()
|
|
32114
|
+
_errors;
|
|
31236
32115
|
convert(message, url) {
|
|
31237
32116
|
const xmlIcu = new XmlParser().parse(message, url, { tokenizeExpansionForms: true });
|
|
31238
32117
|
this._errors = xmlIcu.errors;
|
|
@@ -31287,6 +32166,10 @@ class XmlToI18n {
|
|
|
31287
32166
|
* A container for translated messages
|
|
31288
32167
|
*/
|
|
31289
32168
|
class TranslationBundle {
|
|
32169
|
+
_i18nNodesByMsgId;
|
|
32170
|
+
digest;
|
|
32171
|
+
mapperFactory;
|
|
32172
|
+
_i18nToHtml;
|
|
31290
32173
|
constructor(_i18nNodesByMsgId = {}, locale, digest, mapperFactory, missingTranslationStrategy = MissingTranslationStrategy.Warning, console) {
|
|
31291
32174
|
this._i18nNodesByMsgId = _i18nNodesByMsgId;
|
|
31292
32175
|
this.digest = digest;
|
|
@@ -31313,6 +32196,17 @@ class TranslationBundle {
|
|
|
31313
32196
|
}
|
|
31314
32197
|
}
|
|
31315
32198
|
class I18nToHtmlVisitor {
|
|
32199
|
+
_i18nNodesByMsgId;
|
|
32200
|
+
_locale;
|
|
32201
|
+
_digest;
|
|
32202
|
+
_mapperFactory;
|
|
32203
|
+
_missingTranslationStrategy;
|
|
32204
|
+
_console;
|
|
32205
|
+
// using non-null assertions because they're (re)set by convert()
|
|
32206
|
+
_srcMsg;
|
|
32207
|
+
_errors = [];
|
|
32208
|
+
_contextStack = [];
|
|
32209
|
+
_mapper;
|
|
31316
32210
|
constructor(_i18nNodesByMsgId = {}, _locale, _digest, _mapperFactory, _missingTranslationStrategy, _console) {
|
|
31317
32211
|
this._i18nNodesByMsgId = _i18nNodesByMsgId;
|
|
31318
32212
|
this._locale = _locale;
|
|
@@ -31320,8 +32214,6 @@ class I18nToHtmlVisitor {
|
|
|
31320
32214
|
this._mapperFactory = _mapperFactory;
|
|
31321
32215
|
this._missingTranslationStrategy = _missingTranslationStrategy;
|
|
31322
32216
|
this._console = _console;
|
|
31323
|
-
this._errors = [];
|
|
31324
|
-
this._contextStack = [];
|
|
31325
32217
|
}
|
|
31326
32218
|
convert(srcMsg) {
|
|
31327
32219
|
this._contextStack.length = 0;
|
|
@@ -31437,6 +32329,10 @@ class I18nToHtmlVisitor {
|
|
|
31437
32329
|
}
|
|
31438
32330
|
|
|
31439
32331
|
class I18NHtmlParser {
|
|
32332
|
+
_htmlParser;
|
|
32333
|
+
// @override
|
|
32334
|
+
getTagDefinition;
|
|
32335
|
+
_translationBundle;
|
|
31440
32336
|
constructor(_htmlParser, translations, translationsFormat, missingTranslation = MissingTranslationStrategy.Warning, console) {
|
|
31441
32337
|
this._htmlParser = _htmlParser;
|
|
31442
32338
|
if (translations) {
|
|
@@ -31460,7 +32356,7 @@ function createSerializer(format) {
|
|
|
31460
32356
|
format = (format || 'xlf').toLowerCase();
|
|
31461
32357
|
switch (format) {
|
|
31462
32358
|
case 'xmb':
|
|
31463
|
-
return new Xmb(
|
|
32359
|
+
return new Xmb();
|
|
31464
32360
|
case 'xtb':
|
|
31465
32361
|
return new Xtb();
|
|
31466
32362
|
case 'xliff2':
|
|
@@ -31477,13 +32373,18 @@ function createSerializer(format) {
|
|
|
31477
32373
|
* A container for message extracted from the templates.
|
|
31478
32374
|
*/
|
|
31479
32375
|
class MessageBundle {
|
|
32376
|
+
_htmlParser;
|
|
32377
|
+
_implicitTags;
|
|
32378
|
+
_implicitAttrs;
|
|
32379
|
+
_locale;
|
|
32380
|
+
_preserveWhitespace;
|
|
32381
|
+
_messages = [];
|
|
31480
32382
|
constructor(_htmlParser, _implicitTags, _implicitAttrs, _locale = null, _preserveWhitespace = true) {
|
|
31481
32383
|
this._htmlParser = _htmlParser;
|
|
31482
32384
|
this._implicitTags = _implicitTags;
|
|
31483
32385
|
this._implicitAttrs = _implicitAttrs;
|
|
31484
32386
|
this._locale = _locale;
|
|
31485
32387
|
this._preserveWhitespace = _preserveWhitespace;
|
|
31486
|
-
this._messages = [];
|
|
31487
32388
|
}
|
|
31488
32389
|
updateFromTemplate(source, url, interpolationConfig) {
|
|
31489
32390
|
const htmlParserResult = this._htmlParser.parse(source, url, {
|
|
@@ -31677,6 +32578,72 @@ function compileClassDebugInfo(debugInfo) {
|
|
|
31677
32578
|
return iife.callFn([]);
|
|
31678
32579
|
}
|
|
31679
32580
|
|
|
32581
|
+
/*!
|
|
32582
|
+
* @license
|
|
32583
|
+
* Copyright Google LLC All Rights Reserved.
|
|
32584
|
+
*
|
|
32585
|
+
* Use of this source code is governed by an MIT-style license that can be
|
|
32586
|
+
* found in the LICENSE file at https://angular.dev/license
|
|
32587
|
+
*/
|
|
32588
|
+
/**
|
|
32589
|
+
* Compiles the expression that initializes HMR for a class.
|
|
32590
|
+
* @param meta HMR metadata extracted from the class.
|
|
32591
|
+
*/
|
|
32592
|
+
function compileHmrInitializer(meta) {
|
|
32593
|
+
const id = encodeURIComponent(`${meta.filePath}@${meta.className}`);
|
|
32594
|
+
const urlPartial = `/@ng/component?c=${id}&t=`;
|
|
32595
|
+
const moduleName = 'm';
|
|
32596
|
+
const dataName = 'd';
|
|
32597
|
+
const locals = meta.locals.map((localName) => variable(localName));
|
|
32598
|
+
// ɵɵreplaceMetadata(Comp, m.default, [...]);
|
|
32599
|
+
const replaceMetadata = importExpr(Identifiers.replaceMetadata)
|
|
32600
|
+
.callFn([meta.type, variable(moduleName).prop('default'), literalArr(locals)]);
|
|
32601
|
+
// (m) => ɵɵreplaceMetadata(...)
|
|
32602
|
+
const replaceCallback = arrowFn([new FnParam(moduleName)], replaceMetadata);
|
|
32603
|
+
// '<urlPartial>' + encodeURIComponent(d.timestamp)
|
|
32604
|
+
const urlValue = literal(urlPartial)
|
|
32605
|
+
.plus(variable('encodeURIComponent').callFn([variable(dataName).prop('timestamp')]));
|
|
32606
|
+
// import(/* @vite-ignore */ url).then(() => replaceMetadata(...));
|
|
32607
|
+
// The vite-ignore special comment is required to avoid Vite from generating a superfluous
|
|
32608
|
+
// warning for each usage within the development code. If Vite provides a method to
|
|
32609
|
+
// programmatically avoid this warning in the future, this added comment can be removed here.
|
|
32610
|
+
const dynamicImport = new DynamicImportExpr(urlValue, null, '@vite-ignore')
|
|
32611
|
+
.prop('then')
|
|
32612
|
+
.callFn([replaceCallback]);
|
|
32613
|
+
// (d) => { if (d.id === <id>) { replaceMetadata(...) } }
|
|
32614
|
+
const listenerCallback = arrowFn([new FnParam(dataName)], [ifStmt(variable(dataName).prop('id').equals(literal(id)), [dynamicImport.toStmt()])]);
|
|
32615
|
+
// import.meta.hot
|
|
32616
|
+
const hotRead = variable('import').prop('meta').prop('hot');
|
|
32617
|
+
// import.meta.hot.on('angular:component-update', () => ...);
|
|
32618
|
+
const hotListener = hotRead
|
|
32619
|
+
.clone()
|
|
32620
|
+
.prop('on')
|
|
32621
|
+
.callFn([literal('angular:component-update'), listenerCallback]);
|
|
32622
|
+
// import.meta.hot && import.meta.hot.on(...)
|
|
32623
|
+
return arrowFn([], [devOnlyGuardedExpression(hotRead.and(hotListener)).toStmt()]).callFn([]);
|
|
32624
|
+
}
|
|
32625
|
+
/**
|
|
32626
|
+
* Compiles the HMR update callback for a class.
|
|
32627
|
+
* @param definitions Compiled definitions for the class (e.g. `defineComponent` calls).
|
|
32628
|
+
* @param constantStatements Supporting constants statements that were generated alongside
|
|
32629
|
+
* the definition.
|
|
32630
|
+
* @param meta HMR metadata extracted from the class.
|
|
32631
|
+
*/
|
|
32632
|
+
function compileHmrUpdateCallback(definitions, constantStatements, meta) {
|
|
32633
|
+
// The class name should always be first and core should be second.
|
|
32634
|
+
const params = [meta.className, meta.coreName, ...meta.locals].map((name) => new FnParam(name, DYNAMIC_TYPE));
|
|
32635
|
+
const body = [...constantStatements];
|
|
32636
|
+
for (const field of definitions) {
|
|
32637
|
+
if (field.initializer !== null) {
|
|
32638
|
+
body.push(variable(meta.className).prop(field.name).set(field.initializer).toStmt());
|
|
32639
|
+
for (const stmt of field.statements) {
|
|
32640
|
+
body.push(stmt);
|
|
32641
|
+
}
|
|
32642
|
+
}
|
|
32643
|
+
}
|
|
32644
|
+
return new DeclareFunctionStmt(`${meta.className}_UpdateMetadata`, params, body, null, StmtModifier.Final);
|
|
32645
|
+
}
|
|
32646
|
+
|
|
31680
32647
|
/**
|
|
31681
32648
|
* Every time we make a breaking change to the declaration interface or partial-linker behavior, we
|
|
31682
32649
|
* must update this constant to prevent old partial-linkers from incorrectly processing the
|
|
@@ -31692,7 +32659,7 @@ const MINIMUM_PARTIAL_LINKER_DEFER_SUPPORT_VERSION = '18.0.0';
|
|
|
31692
32659
|
function compileDeclareClassMetadata(metadata) {
|
|
31693
32660
|
const definitionMap = new DefinitionMap();
|
|
31694
32661
|
definitionMap.set('minVersion', literal(MINIMUM_PARTIAL_LINKER_VERSION$5));
|
|
31695
|
-
definitionMap.set('version', literal('19.0.0-
|
|
32662
|
+
definitionMap.set('version', literal('19.0.0-rc.0'));
|
|
31696
32663
|
definitionMap.set('ngImport', importExpr(Identifiers.core));
|
|
31697
32664
|
definitionMap.set('type', metadata.type);
|
|
31698
32665
|
definitionMap.set('decorators', metadata.decorators);
|
|
@@ -31710,7 +32677,7 @@ function compileComponentDeclareClassMetadata(metadata, dependencies) {
|
|
|
31710
32677
|
callbackReturnDefinitionMap.set('ctorParameters', metadata.ctorParameters ?? literal(null));
|
|
31711
32678
|
callbackReturnDefinitionMap.set('propDecorators', metadata.propDecorators ?? literal(null));
|
|
31712
32679
|
definitionMap.set('minVersion', literal(MINIMUM_PARTIAL_LINKER_DEFER_SUPPORT_VERSION));
|
|
31713
|
-
definitionMap.set('version', literal('19.0.0-
|
|
32680
|
+
definitionMap.set('version', literal('19.0.0-rc.0'));
|
|
31714
32681
|
definitionMap.set('ngImport', importExpr(Identifiers.core));
|
|
31715
32682
|
definitionMap.set('type', metadata.type);
|
|
31716
32683
|
definitionMap.set('resolveDeferredDeps', compileComponentMetadataAsyncResolver(dependencies));
|
|
@@ -31805,10 +32772,10 @@ function createDirectiveDefinitionMap(meta) {
|
|
|
31805
32772
|
const definitionMap = new DefinitionMap();
|
|
31806
32773
|
const minVersion = getMinimumVersionForPartialOutput(meta);
|
|
31807
32774
|
definitionMap.set('minVersion', literal(minVersion));
|
|
31808
|
-
definitionMap.set('version', literal('19.0.0-
|
|
32775
|
+
definitionMap.set('version', literal('19.0.0-rc.0'));
|
|
31809
32776
|
// e.g. `type: MyDirective`
|
|
31810
32777
|
definitionMap.set('type', meta.type.value);
|
|
31811
|
-
if (meta.isStandalone) {
|
|
32778
|
+
if (meta.isStandalone !== undefined) {
|
|
31812
32779
|
definitionMap.set('isStandalone', literal(meta.isStandalone));
|
|
31813
32780
|
}
|
|
31814
32781
|
if (meta.isSignal) {
|
|
@@ -32180,10 +33147,7 @@ function compileUsedDependenciesMetadata(meta) {
|
|
|
32180
33147
|
});
|
|
32181
33148
|
}
|
|
32182
33149
|
class BlockPresenceVisitor extends RecursiveVisitor$1 {
|
|
32183
|
-
|
|
32184
|
-
super(...arguments);
|
|
32185
|
-
this.hasBlocks = false;
|
|
32186
|
-
}
|
|
33150
|
+
hasBlocks = false;
|
|
32187
33151
|
visitDeferredBlock() {
|
|
32188
33152
|
this.hasBlocks = true;
|
|
32189
33153
|
}
|
|
@@ -32227,7 +33191,7 @@ const MINIMUM_PARTIAL_LINKER_VERSION$4 = '12.0.0';
|
|
|
32227
33191
|
function compileDeclareFactoryFunction(meta) {
|
|
32228
33192
|
const definitionMap = new DefinitionMap();
|
|
32229
33193
|
definitionMap.set('minVersion', literal(MINIMUM_PARTIAL_LINKER_VERSION$4));
|
|
32230
|
-
definitionMap.set('version', literal('19.0.0-
|
|
33194
|
+
definitionMap.set('version', literal('19.0.0-rc.0'));
|
|
32231
33195
|
definitionMap.set('ngImport', importExpr(Identifiers.core));
|
|
32232
33196
|
definitionMap.set('type', meta.type.value);
|
|
32233
33197
|
definitionMap.set('deps', compileDependencies(meta.deps));
|
|
@@ -32262,7 +33226,7 @@ function compileDeclareInjectableFromMetadata(meta) {
|
|
|
32262
33226
|
function createInjectableDefinitionMap(meta) {
|
|
32263
33227
|
const definitionMap = new DefinitionMap();
|
|
32264
33228
|
definitionMap.set('minVersion', literal(MINIMUM_PARTIAL_LINKER_VERSION$3));
|
|
32265
|
-
definitionMap.set('version', literal('19.0.0-
|
|
33229
|
+
definitionMap.set('version', literal('19.0.0-rc.0'));
|
|
32266
33230
|
definitionMap.set('ngImport', importExpr(Identifiers.core));
|
|
32267
33231
|
definitionMap.set('type', meta.type.value);
|
|
32268
33232
|
// Only generate providedIn property if it has a non-null value
|
|
@@ -32313,7 +33277,7 @@ function compileDeclareInjectorFromMetadata(meta) {
|
|
|
32313
33277
|
function createInjectorDefinitionMap(meta) {
|
|
32314
33278
|
const definitionMap = new DefinitionMap();
|
|
32315
33279
|
definitionMap.set('minVersion', literal(MINIMUM_PARTIAL_LINKER_VERSION$2));
|
|
32316
|
-
definitionMap.set('version', literal('19.0.0-
|
|
33280
|
+
definitionMap.set('version', literal('19.0.0-rc.0'));
|
|
32317
33281
|
definitionMap.set('ngImport', importExpr(Identifiers.core));
|
|
32318
33282
|
definitionMap.set('type', meta.type.value);
|
|
32319
33283
|
definitionMap.set('providers', meta.providers);
|
|
@@ -32346,7 +33310,7 @@ function createNgModuleDefinitionMap(meta) {
|
|
|
32346
33310
|
throw new Error('Invalid path! Local compilation mode should not get into the partial compilation path');
|
|
32347
33311
|
}
|
|
32348
33312
|
definitionMap.set('minVersion', literal(MINIMUM_PARTIAL_LINKER_VERSION$1));
|
|
32349
|
-
definitionMap.set('version', literal('19.0.0-
|
|
33313
|
+
definitionMap.set('version', literal('19.0.0-rc.0'));
|
|
32350
33314
|
definitionMap.set('ngImport', importExpr(Identifiers.core));
|
|
32351
33315
|
definitionMap.set('type', meta.type.value);
|
|
32352
33316
|
// We only generate the keys in the metadata if the arrays contain values.
|
|
@@ -32397,11 +33361,11 @@ function compileDeclarePipeFromMetadata(meta) {
|
|
|
32397
33361
|
function createPipeDefinitionMap(meta) {
|
|
32398
33362
|
const definitionMap = new DefinitionMap();
|
|
32399
33363
|
definitionMap.set('minVersion', literal(MINIMUM_PARTIAL_LINKER_VERSION));
|
|
32400
|
-
definitionMap.set('version', literal('19.0.0-
|
|
33364
|
+
definitionMap.set('version', literal('19.0.0-rc.0'));
|
|
32401
33365
|
definitionMap.set('ngImport', importExpr(Identifiers.core));
|
|
32402
33366
|
// e.g. `type: MyPipe`
|
|
32403
33367
|
definitionMap.set('type', meta.type.value);
|
|
32404
|
-
if (meta.isStandalone) {
|
|
33368
|
+
if (meta.isStandalone !== undefined) {
|
|
32405
33369
|
definitionMap.set('isStandalone', literal(meta.isStandalone));
|
|
32406
33370
|
}
|
|
32407
33371
|
// e.g. `name: "myPipe"`
|
|
@@ -32430,5 +33394,5 @@ publishFacade(_global);
|
|
|
32430
33394
|
|
|
32431
33395
|
// This file is not used to build this module. It is only used during editing
|
|
32432
33396
|
|
|
32433
|
-
export { AST, ASTWithName, ASTWithSource, AbsoluteSourceSpan, ArrayType, ArrowFunctionExpr, AstMemoryEfficientTransformer, AstTransformer, 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, TagContentType, TaggedTemplateExpr, TemplateBindingParseResult, TemplateLiteral, TemplateLiteralElement, 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, 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, compileInjectable, compileInjector, compileNgModule, compileOpaqueAsyncClassMetadata, compilePipeFromMetadata, computeMsgId, core, createCssSelectorFromNode, createInjectableType, createMayBeForwardRefExpression, devOnlyGuardedExpression, emitDistinctChangesOnlyDefaultValue, encapsulateStyle, findMatchingDirectivesAndPipes, getHtmlTagDefinition, getNsPrefix, getSafePropertyAccessString, identifierName,
|
|
33397
|
+
export { AST, ASTWithName, ASTWithSource, AbsoluteSourceSpan, ArrayType, ArrowFunctionExpr, AstMemoryEfficientTransformer, AstTransformer, 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, TagContentType, TaggedTemplateExpr, TemplateBindingParseResult, TemplateLiteral, TemplateLiteralElement, 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 };
|
|
32434
33398
|
//# sourceMappingURL=compiler.mjs.map
|