@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.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Angular v19.0.0-next.9
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
- constructor() {
24
- this.element = null;
25
- this.classNames = [];
26
- /**
27
- * The selectors are encoded in pairs where:
28
- * - even locations are attribute names
29
- * - odd locations are attribute values.
30
- *
31
- * Example:
32
- * Selector: `[key1=value1][key2]` would parse to:
33
- * ```
34
- * ['key1', 'value1', 'key2', '']
35
- * ```
36
- */
37
- this.attrs = [];
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, preservePlaceholders) {
518
- return message.id || computeDecimalDigest(message, preservePlaceholders);
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, preservePlaceholders) {
524
- const visitor = new _SerializerIgnoreExpVisitor(preservePlaceholders);
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 _SerializerIgnoreExpVisitor extends _SerializerVisitor {
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
- constructor(url, sourceSpan) {
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.visitExpression(ast.body, context);
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 { this.INSTANCE = new GenericKeyFn(); }
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 { this.NEW_METHOD = 'factory'; }
2483
- static { this.TRANSFORM_METHOD = 'transform'; }
2484
- static { this.PATCH_DEPS = 'patchedDeps'; }
2485
- static { this.core = { name: null, moduleName: CORE }; }
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 { this.namespaceHTML = { name: 'ɵɵnamespaceHTML', moduleName: CORE }; }
2488
- static { this.namespaceMathML = { name: 'ɵɵnamespaceMathML', moduleName: CORE }; }
2489
- static { this.namespaceSVG = { name: 'ɵɵnamespaceSVG', moduleName: CORE }; }
2490
- static { this.element = { name: 'ɵɵelement', moduleName: CORE }; }
2491
- static { this.elementStart = { name: 'ɵɵelementStart', moduleName: CORE }; }
2492
- static { this.elementEnd = { name: 'ɵɵelementEnd', moduleName: CORE }; }
2493
- static { this.advance = { name: 'ɵɵadvance', moduleName: CORE }; }
2494
- static { this.syntheticHostProperty = {
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 { this.syntheticHostListener = {
2590
+ };
2591
+ static syntheticHostListener = {
2499
2592
  name: 'ɵɵsyntheticHostListener',
2500
2593
  moduleName: CORE,
2501
- }; }
2502
- static { this.attribute = { name: 'ɵɵattribute', moduleName: CORE }; }
2503
- static { this.attributeInterpolate1 = {
2594
+ };
2595
+ static attribute = { name: 'ɵɵattribute', moduleName: CORE };
2596
+ static attributeInterpolate1 = {
2504
2597
  name: 'ɵɵattributeInterpolate1',
2505
2598
  moduleName: CORE,
2506
- }; }
2507
- static { this.attributeInterpolate2 = {
2599
+ };
2600
+ static attributeInterpolate2 = {
2508
2601
  name: 'ɵɵattributeInterpolate2',
2509
2602
  moduleName: CORE,
2510
- }; }
2511
- static { this.attributeInterpolate3 = {
2603
+ };
2604
+ static attributeInterpolate3 = {
2512
2605
  name: 'ɵɵattributeInterpolate3',
2513
2606
  moduleName: CORE,
2514
- }; }
2515
- static { this.attributeInterpolate4 = {
2607
+ };
2608
+ static attributeInterpolate4 = {
2516
2609
  name: 'ɵɵattributeInterpolate4',
2517
2610
  moduleName: CORE,
2518
- }; }
2519
- static { this.attributeInterpolate5 = {
2611
+ };
2612
+ static attributeInterpolate5 = {
2520
2613
  name: 'ɵɵattributeInterpolate5',
2521
2614
  moduleName: CORE,
2522
- }; }
2523
- static { this.attributeInterpolate6 = {
2615
+ };
2616
+ static attributeInterpolate6 = {
2524
2617
  name: 'ɵɵattributeInterpolate6',
2525
2618
  moduleName: CORE,
2526
- }; }
2527
- static { this.attributeInterpolate7 = {
2619
+ };
2620
+ static attributeInterpolate7 = {
2528
2621
  name: 'ɵɵattributeInterpolate7',
2529
2622
  moduleName: CORE,
2530
- }; }
2531
- static { this.attributeInterpolate8 = {
2623
+ };
2624
+ static attributeInterpolate8 = {
2532
2625
  name: 'ɵɵattributeInterpolate8',
2533
2626
  moduleName: CORE,
2534
- }; }
2535
- static { this.attributeInterpolateV = {
2627
+ };
2628
+ static attributeInterpolateV = {
2536
2629
  name: 'ɵɵattributeInterpolateV',
2537
2630
  moduleName: CORE,
2538
- }; }
2539
- static { this.classProp = { name: 'ɵɵclassProp', moduleName: CORE }; }
2540
- static { this.elementContainerStart = {
2631
+ };
2632
+ static classProp = { name: 'ɵɵclassProp', moduleName: CORE };
2633
+ static elementContainerStart = {
2541
2634
  name: 'ɵɵelementContainerStart',
2542
2635
  moduleName: CORE,
2543
- }; }
2544
- static { this.elementContainerEnd = {
2636
+ };
2637
+ static elementContainerEnd = {
2545
2638
  name: 'ɵɵelementContainerEnd',
2546
2639
  moduleName: CORE,
2547
- }; }
2548
- static { this.elementContainer = { name: 'ɵɵelementContainer', moduleName: CORE }; }
2549
- static { this.styleMap = { name: 'ɵɵstyleMap', moduleName: CORE }; }
2550
- static { this.styleMapInterpolate1 = {
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 { this.styleMapInterpolate2 = {
2646
+ };
2647
+ static styleMapInterpolate2 = {
2555
2648
  name: 'ɵɵstyleMapInterpolate2',
2556
2649
  moduleName: CORE,
2557
- }; }
2558
- static { this.styleMapInterpolate3 = {
2650
+ };
2651
+ static styleMapInterpolate3 = {
2559
2652
  name: 'ɵɵstyleMapInterpolate3',
2560
2653
  moduleName: CORE,
2561
- }; }
2562
- static { this.styleMapInterpolate4 = {
2654
+ };
2655
+ static styleMapInterpolate4 = {
2563
2656
  name: 'ɵɵstyleMapInterpolate4',
2564
2657
  moduleName: CORE,
2565
- }; }
2566
- static { this.styleMapInterpolate5 = {
2658
+ };
2659
+ static styleMapInterpolate5 = {
2567
2660
  name: 'ɵɵstyleMapInterpolate5',
2568
2661
  moduleName: CORE,
2569
- }; }
2570
- static { this.styleMapInterpolate6 = {
2662
+ };
2663
+ static styleMapInterpolate6 = {
2571
2664
  name: 'ɵɵstyleMapInterpolate6',
2572
2665
  moduleName: CORE,
2573
- }; }
2574
- static { this.styleMapInterpolate7 = {
2666
+ };
2667
+ static styleMapInterpolate7 = {
2575
2668
  name: 'ɵɵstyleMapInterpolate7',
2576
2669
  moduleName: CORE,
2577
- }; }
2578
- static { this.styleMapInterpolate8 = {
2670
+ };
2671
+ static styleMapInterpolate8 = {
2579
2672
  name: 'ɵɵstyleMapInterpolate8',
2580
2673
  moduleName: CORE,
2581
- }; }
2582
- static { this.styleMapInterpolateV = {
2674
+ };
2675
+ static styleMapInterpolateV = {
2583
2676
  name: 'ɵɵstyleMapInterpolateV',
2584
2677
  moduleName: CORE,
2585
- }; }
2586
- static { this.classMap = { name: 'ɵɵclassMap', moduleName: CORE }; }
2587
- static { this.classMapInterpolate1 = {
2678
+ };
2679
+ static classMap = { name: 'ɵɵclassMap', moduleName: CORE };
2680
+ static classMapInterpolate1 = {
2588
2681
  name: 'ɵɵclassMapInterpolate1',
2589
2682
  moduleName: CORE,
2590
- }; }
2591
- static { this.classMapInterpolate2 = {
2683
+ };
2684
+ static classMapInterpolate2 = {
2592
2685
  name: 'ɵɵclassMapInterpolate2',
2593
2686
  moduleName: CORE,
2594
- }; }
2595
- static { this.classMapInterpolate3 = {
2687
+ };
2688
+ static classMapInterpolate3 = {
2596
2689
  name: 'ɵɵclassMapInterpolate3',
2597
2690
  moduleName: CORE,
2598
- }; }
2599
- static { this.classMapInterpolate4 = {
2691
+ };
2692
+ static classMapInterpolate4 = {
2600
2693
  name: 'ɵɵclassMapInterpolate4',
2601
2694
  moduleName: CORE,
2602
- }; }
2603
- static { this.classMapInterpolate5 = {
2695
+ };
2696
+ static classMapInterpolate5 = {
2604
2697
  name: 'ɵɵclassMapInterpolate5',
2605
2698
  moduleName: CORE,
2606
- }; }
2607
- static { this.classMapInterpolate6 = {
2699
+ };
2700
+ static classMapInterpolate6 = {
2608
2701
  name: 'ɵɵclassMapInterpolate6',
2609
2702
  moduleName: CORE,
2610
- }; }
2611
- static { this.classMapInterpolate7 = {
2703
+ };
2704
+ static classMapInterpolate7 = {
2612
2705
  name: 'ɵɵclassMapInterpolate7',
2613
2706
  moduleName: CORE,
2614
- }; }
2615
- static { this.classMapInterpolate8 = {
2707
+ };
2708
+ static classMapInterpolate8 = {
2616
2709
  name: 'ɵɵclassMapInterpolate8',
2617
2710
  moduleName: CORE,
2618
- }; }
2619
- static { this.classMapInterpolateV = {
2711
+ };
2712
+ static classMapInterpolateV = {
2620
2713
  name: 'ɵɵclassMapInterpolateV',
2621
2714
  moduleName: CORE,
2622
- }; }
2623
- static { this.styleProp = { name: 'ɵɵstyleProp', moduleName: CORE }; }
2624
- static { this.stylePropInterpolate1 = {
2715
+ };
2716
+ static styleProp = { name: 'ɵɵstyleProp', moduleName: CORE };
2717
+ static stylePropInterpolate1 = {
2625
2718
  name: 'ɵɵstylePropInterpolate1',
2626
2719
  moduleName: CORE,
2627
- }; }
2628
- static { this.stylePropInterpolate2 = {
2720
+ };
2721
+ static stylePropInterpolate2 = {
2629
2722
  name: 'ɵɵstylePropInterpolate2',
2630
2723
  moduleName: CORE,
2631
- }; }
2632
- static { this.stylePropInterpolate3 = {
2724
+ };
2725
+ static stylePropInterpolate3 = {
2633
2726
  name: 'ɵɵstylePropInterpolate3',
2634
2727
  moduleName: CORE,
2635
- }; }
2636
- static { this.stylePropInterpolate4 = {
2728
+ };
2729
+ static stylePropInterpolate4 = {
2637
2730
  name: 'ɵɵstylePropInterpolate4',
2638
2731
  moduleName: CORE,
2639
- }; }
2640
- static { this.stylePropInterpolate5 = {
2732
+ };
2733
+ static stylePropInterpolate5 = {
2641
2734
  name: 'ɵɵstylePropInterpolate5',
2642
2735
  moduleName: CORE,
2643
- }; }
2644
- static { this.stylePropInterpolate6 = {
2736
+ };
2737
+ static stylePropInterpolate6 = {
2645
2738
  name: 'ɵɵstylePropInterpolate6',
2646
2739
  moduleName: CORE,
2647
- }; }
2648
- static { this.stylePropInterpolate7 = {
2740
+ };
2741
+ static stylePropInterpolate7 = {
2649
2742
  name: 'ɵɵstylePropInterpolate7',
2650
2743
  moduleName: CORE,
2651
- }; }
2652
- static { this.stylePropInterpolate8 = {
2744
+ };
2745
+ static stylePropInterpolate8 = {
2653
2746
  name: 'ɵɵstylePropInterpolate8',
2654
2747
  moduleName: CORE,
2655
- }; }
2656
- static { this.stylePropInterpolateV = {
2748
+ };
2749
+ static stylePropInterpolateV = {
2657
2750
  name: 'ɵɵstylePropInterpolateV',
2658
2751
  moduleName: CORE,
2659
- }; }
2660
- static { this.nextContext = { name: 'ɵɵnextContext', moduleName: CORE }; }
2661
- static { this.resetView = { name: 'ɵɵresetView', moduleName: CORE }; }
2662
- static { this.templateCreate = { name: 'ɵɵtemplate', moduleName: CORE }; }
2663
- static { this.defer = { name: 'ɵɵdefer', moduleName: CORE }; }
2664
- static { this.deferWhen = { name: 'ɵɵdeferWhen', moduleName: CORE }; }
2665
- static { this.deferOnIdle = { name: 'ɵɵdeferOnIdle', moduleName: CORE }; }
2666
- static { this.deferOnImmediate = { name: 'ɵɵdeferOnImmediate', moduleName: CORE }; }
2667
- static { this.deferOnTimer = { name: 'ɵɵdeferOnTimer', moduleName: CORE }; }
2668
- static { this.deferOnHover = { name: 'ɵɵdeferOnHover', moduleName: CORE }; }
2669
- static { this.deferOnInteraction = { name: 'ɵɵdeferOnInteraction', moduleName: CORE }; }
2670
- static { this.deferOnViewport = { name: 'ɵɵdeferOnViewport', moduleName: CORE }; }
2671
- static { this.deferPrefetchWhen = { name: 'ɵɵdeferPrefetchWhen', moduleName: CORE }; }
2672
- static { this.deferPrefetchOnIdle = {
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 { this.deferPrefetchOnImmediate = {
2768
+ };
2769
+ static deferPrefetchOnImmediate = {
2677
2770
  name: 'ɵɵdeferPrefetchOnImmediate',
2678
2771
  moduleName: CORE,
2679
- }; }
2680
- static { this.deferPrefetchOnTimer = {
2772
+ };
2773
+ static deferPrefetchOnTimer = {
2681
2774
  name: 'ɵɵdeferPrefetchOnTimer',
2682
2775
  moduleName: CORE,
2683
- }; }
2684
- static { this.deferPrefetchOnHover = {
2776
+ };
2777
+ static deferPrefetchOnHover = {
2685
2778
  name: 'ɵɵdeferPrefetchOnHover',
2686
2779
  moduleName: CORE,
2687
- }; }
2688
- static { this.deferPrefetchOnInteraction = {
2780
+ };
2781
+ static deferPrefetchOnInteraction = {
2689
2782
  name: 'ɵɵdeferPrefetchOnInteraction',
2690
2783
  moduleName: CORE,
2691
- }; }
2692
- static { this.deferPrefetchOnViewport = {
2784
+ };
2785
+ static deferPrefetchOnViewport = {
2693
2786
  name: 'ɵɵdeferPrefetchOnViewport',
2694
2787
  moduleName: CORE,
2695
- }; }
2696
- static { this.deferHydrateWhen = { name: 'ɵɵdeferHydrateWhen', moduleName: CORE }; }
2697
- static { this.deferHydrateNever = { name: 'ɵɵdeferHydrateNever', moduleName: CORE }; }
2698
- static { this.deferHydrateOnIdle = {
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 { this.deferHydrateOnImmediate = {
2794
+ };
2795
+ static deferHydrateOnImmediate = {
2703
2796
  name: 'ɵɵdeferHydrateOnImmediate',
2704
2797
  moduleName: CORE,
2705
- }; }
2706
- static { this.deferHydrateOnTimer = {
2798
+ };
2799
+ static deferHydrateOnTimer = {
2707
2800
  name: 'ɵɵdeferHydrateOnTimer',
2708
2801
  moduleName: CORE,
2709
- }; }
2710
- static { this.deferHydrateOnHover = {
2802
+ };
2803
+ static deferHydrateOnHover = {
2711
2804
  name: 'ɵɵdeferHydrateOnHover',
2712
2805
  moduleName: CORE,
2713
- }; }
2714
- static { this.deferHydrateOnInteraction = {
2806
+ };
2807
+ static deferHydrateOnInteraction = {
2715
2808
  name: 'ɵɵdeferHydrateOnInteraction',
2716
2809
  moduleName: CORE,
2717
- }; }
2718
- static { this.deferHydrateOnViewport = {
2810
+ };
2811
+ static deferHydrateOnViewport = {
2719
2812
  name: 'ɵɵdeferHydrateOnViewport',
2720
2813
  moduleName: CORE,
2721
- }; }
2722
- static { this.deferEnableTimerScheduling = {
2814
+ };
2815
+ static deferEnableTimerScheduling = {
2723
2816
  name: 'ɵɵdeferEnableTimerScheduling',
2724
2817
  moduleName: CORE,
2725
- }; }
2726
- static { this.conditional = { name: 'ɵɵconditional', moduleName: CORE }; }
2727
- static { this.repeater = { name: 'ɵɵrepeater', moduleName: CORE }; }
2728
- static { this.repeaterCreate = { name: 'ɵɵrepeaterCreate', moduleName: CORE }; }
2729
- static { this.repeaterTrackByIndex = {
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 { this.repeaterTrackByIdentity = {
2825
+ };
2826
+ static repeaterTrackByIdentity = {
2734
2827
  name: 'ɵɵrepeaterTrackByIdentity',
2735
2828
  moduleName: CORE,
2736
- }; }
2737
- static { this.componentInstance = { name: 'ɵɵcomponentInstance', moduleName: CORE }; }
2738
- static { this.text = { name: 'ɵɵtext', moduleName: CORE }; }
2739
- static { this.enableBindings = { name: 'ɵɵenableBindings', moduleName: CORE }; }
2740
- static { this.disableBindings = { name: 'ɵɵdisableBindings', moduleName: CORE }; }
2741
- static { this.getCurrentView = { name: 'ɵɵgetCurrentView', moduleName: CORE }; }
2742
- static { this.textInterpolate = { name: 'ɵɵtextInterpolate', moduleName: CORE }; }
2743
- static { this.textInterpolate1 = { name: 'ɵɵtextInterpolate1', moduleName: CORE }; }
2744
- static { this.textInterpolate2 = { name: 'ɵɵtextInterpolate2', moduleName: CORE }; }
2745
- static { this.textInterpolate3 = { name: 'ɵɵtextInterpolate3', moduleName: CORE }; }
2746
- static { this.textInterpolate4 = { name: 'ɵɵtextInterpolate4', moduleName: CORE }; }
2747
- static { this.textInterpolate5 = { name: 'ɵɵtextInterpolate5', moduleName: CORE }; }
2748
- static { this.textInterpolate6 = { name: 'ɵɵtextInterpolate6', moduleName: CORE }; }
2749
- static { this.textInterpolate7 = { name: 'ɵɵtextInterpolate7', moduleName: CORE }; }
2750
- static { this.textInterpolate8 = { name: 'ɵɵtextInterpolate8', moduleName: CORE }; }
2751
- static { this.textInterpolateV = { name: 'ɵɵtextInterpolateV', moduleName: CORE }; }
2752
- static { this.restoreView = { name: 'ɵɵrestoreView', moduleName: CORE }; }
2753
- static { this.pureFunction0 = { name: 'ɵɵpureFunction0', moduleName: CORE }; }
2754
- static { this.pureFunction1 = { name: 'ɵɵpureFunction1', moduleName: CORE }; }
2755
- static { this.pureFunction2 = { name: 'ɵɵpureFunction2', moduleName: CORE }; }
2756
- static { this.pureFunction3 = { name: 'ɵɵpureFunction3', moduleName: CORE }; }
2757
- static { this.pureFunction4 = { name: 'ɵɵpureFunction4', moduleName: CORE }; }
2758
- static { this.pureFunction5 = { name: 'ɵɵpureFunction5', moduleName: CORE }; }
2759
- static { this.pureFunction6 = { name: 'ɵɵpureFunction6', moduleName: CORE }; }
2760
- static { this.pureFunction7 = { name: 'ɵɵpureFunction7', moduleName: CORE }; }
2761
- static { this.pureFunction8 = { name: 'ɵɵpureFunction8', moduleName: CORE }; }
2762
- static { this.pureFunctionV = { name: 'ɵɵpureFunctionV', moduleName: CORE }; }
2763
- static { this.pipeBind1 = { name: 'ɵɵpipeBind1', moduleName: CORE }; }
2764
- static { this.pipeBind2 = { name: 'ɵɵpipeBind2', moduleName: CORE }; }
2765
- static { this.pipeBind3 = { name: 'ɵɵpipeBind3', moduleName: CORE }; }
2766
- static { this.pipeBind4 = { name: 'ɵɵpipeBind4', moduleName: CORE }; }
2767
- static { this.pipeBindV = { name: 'ɵɵpipeBindV', moduleName: CORE }; }
2768
- static { this.hostProperty = { name: 'ɵɵhostProperty', moduleName: CORE }; }
2769
- static { this.property = { name: 'ɵɵproperty', moduleName: CORE }; }
2770
- static { this.propertyInterpolate = {
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 { this.propertyInterpolate1 = {
2866
+ };
2867
+ static propertyInterpolate1 = {
2775
2868
  name: 'ɵɵpropertyInterpolate1',
2776
2869
  moduleName: CORE,
2777
- }; }
2778
- static { this.propertyInterpolate2 = {
2870
+ };
2871
+ static propertyInterpolate2 = {
2779
2872
  name: 'ɵɵpropertyInterpolate2',
2780
2873
  moduleName: CORE,
2781
- }; }
2782
- static { this.propertyInterpolate3 = {
2874
+ };
2875
+ static propertyInterpolate3 = {
2783
2876
  name: 'ɵɵpropertyInterpolate3',
2784
2877
  moduleName: CORE,
2785
- }; }
2786
- static { this.propertyInterpolate4 = {
2878
+ };
2879
+ static propertyInterpolate4 = {
2787
2880
  name: 'ɵɵpropertyInterpolate4',
2788
2881
  moduleName: CORE,
2789
- }; }
2790
- static { this.propertyInterpolate5 = {
2882
+ };
2883
+ static propertyInterpolate5 = {
2791
2884
  name: 'ɵɵpropertyInterpolate5',
2792
2885
  moduleName: CORE,
2793
- }; }
2794
- static { this.propertyInterpolate6 = {
2886
+ };
2887
+ static propertyInterpolate6 = {
2795
2888
  name: 'ɵɵpropertyInterpolate6',
2796
2889
  moduleName: CORE,
2797
- }; }
2798
- static { this.propertyInterpolate7 = {
2890
+ };
2891
+ static propertyInterpolate7 = {
2799
2892
  name: 'ɵɵpropertyInterpolate7',
2800
2893
  moduleName: CORE,
2801
- }; }
2802
- static { this.propertyInterpolate8 = {
2894
+ };
2895
+ static propertyInterpolate8 = {
2803
2896
  name: 'ɵɵpropertyInterpolate8',
2804
2897
  moduleName: CORE,
2805
- }; }
2806
- static { this.propertyInterpolateV = {
2898
+ };
2899
+ static propertyInterpolateV = {
2807
2900
  name: 'ɵɵpropertyInterpolateV',
2808
2901
  moduleName: CORE,
2809
- }; }
2810
- static { this.i18n = { name: 'ɵɵi18n', moduleName: CORE }; }
2811
- static { this.i18nAttributes = { name: 'ɵɵi18nAttributes', moduleName: CORE }; }
2812
- static { this.i18nExp = { name: 'ɵɵi18nExp', moduleName: CORE }; }
2813
- static { this.i18nStart = { name: 'ɵɵi18nStart', moduleName: CORE }; }
2814
- static { this.i18nEnd = { name: 'ɵɵi18nEnd', moduleName: CORE }; }
2815
- static { this.i18nApply = { name: 'ɵɵi18nApply', moduleName: CORE }; }
2816
- static { this.i18nPostprocess = { name: 'ɵɵi18nPostprocess', moduleName: CORE }; }
2817
- static { this.pipe = { name: 'ɵɵpipe', moduleName: CORE }; }
2818
- static { this.projection = { name: 'ɵɵprojection', moduleName: CORE }; }
2819
- static { this.projectionDef = { name: 'ɵɵprojectionDef', moduleName: CORE }; }
2820
- static { this.reference = { name: 'ɵɵreference', moduleName: CORE }; }
2821
- static { this.inject = { name: 'ɵɵinject', moduleName: CORE }; }
2822
- static { this.injectAttribute = { name: 'ɵɵinjectAttribute', moduleName: CORE }; }
2823
- static { this.directiveInject = { name: 'ɵɵdirectiveInject', moduleName: CORE }; }
2824
- static { this.invalidFactory = { name: 'ɵɵinvalidFactory', moduleName: CORE }; }
2825
- static { this.invalidFactoryDep = { name: 'ɵɵinvalidFactoryDep', moduleName: CORE }; }
2826
- static { this.templateRefExtractor = {
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 { this.forwardRef = { name: 'forwardRef', moduleName: CORE }; }
2831
- static { this.resolveForwardRef = { name: 'resolveForwardRef', moduleName: CORE }; }
2832
- static { this.replaceMetadata = { name: 'ɵɵreplaceMetadata', moduleName: CORE }; }
2833
- static { this.ɵɵdefineInjectable = { name: 'ɵɵdefineInjectable', moduleName: CORE }; }
2834
- static { this.declareInjectable = { name: 'ɵɵngDeclareInjectable', moduleName: CORE }; }
2835
- static { this.InjectableDeclaration = {
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 { this.resolveWindow = { name: 'ɵɵresolveWindow', moduleName: CORE }; }
2840
- static { this.resolveDocument = { name: 'ɵɵresolveDocument', moduleName: CORE }; }
2841
- static { this.resolveBody = { name: 'ɵɵresolveBody', moduleName: CORE }; }
2842
- static { this.getComponentDepsFactory = {
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 { this.defineComponent = { name: 'ɵɵdefineComponent', moduleName: CORE }; }
2847
- static { this.declareComponent = { name: 'ɵɵngDeclareComponent', moduleName: CORE }; }
2848
- static { this.setComponentScope = { name: 'ɵɵsetComponentScope', moduleName: CORE }; }
2849
- static { this.ChangeDetectionStrategy = {
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 { this.ViewEncapsulation = {
2945
+ };
2946
+ static ViewEncapsulation = {
2854
2947
  name: 'ViewEncapsulation',
2855
2948
  moduleName: CORE,
2856
- }; }
2857
- static { this.ComponentDeclaration = {
2949
+ };
2950
+ static ComponentDeclaration = {
2858
2951
  name: 'ɵɵComponentDeclaration',
2859
2952
  moduleName: CORE,
2860
- }; }
2861
- static { this.FactoryDeclaration = {
2953
+ };
2954
+ static FactoryDeclaration = {
2862
2955
  name: 'ɵɵFactoryDeclaration',
2863
2956
  moduleName: CORE,
2864
- }; }
2865
- static { this.declareFactory = { name: 'ɵɵngDeclareFactory', moduleName: CORE }; }
2866
- static { this.FactoryTarget = { name: 'ɵɵFactoryTarget', moduleName: CORE }; }
2867
- static { this.defineDirective = { name: 'ɵɵdefineDirective', moduleName: CORE }; }
2868
- static { this.declareDirective = { name: 'ɵɵngDeclareDirective', moduleName: CORE }; }
2869
- static { this.DirectiveDeclaration = {
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 { this.InjectorDef = { name: 'ɵɵInjectorDef', moduleName: CORE }; }
2874
- static { this.InjectorDeclaration = {
2965
+ };
2966
+ static InjectorDef = { name: 'ɵɵInjectorDef', moduleName: CORE };
2967
+ static InjectorDeclaration = {
2875
2968
  name: 'ɵɵInjectorDeclaration',
2876
2969
  moduleName: CORE,
2877
- }; }
2878
- static { this.defineInjector = { name: 'ɵɵdefineInjector', moduleName: CORE }; }
2879
- static { this.declareInjector = { name: 'ɵɵngDeclareInjector', moduleName: CORE }; }
2880
- static { this.NgModuleDeclaration = {
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 { this.ModuleWithProviders = {
2976
+ };
2977
+ static ModuleWithProviders = {
2885
2978
  name: 'ModuleWithProviders',
2886
2979
  moduleName: CORE,
2887
- }; }
2888
- static { this.defineNgModule = { name: 'ɵɵdefineNgModule', moduleName: CORE }; }
2889
- static { this.declareNgModule = { name: 'ɵɵngDeclareNgModule', moduleName: CORE }; }
2890
- static { this.setNgModuleScope = { name: 'ɵɵsetNgModuleScope', moduleName: CORE }; }
2891
- static { this.registerNgModuleType = {
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 { this.PipeDeclaration = { name: 'ɵɵPipeDeclaration', moduleName: CORE }; }
2896
- static { this.definePipe = { name: 'ɵɵdefinePipe', moduleName: CORE }; }
2897
- static { this.declarePipe = { name: 'ɵɵngDeclarePipe', moduleName: CORE }; }
2898
- static { this.declareClassMetadata = {
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 { this.declareClassMetadataAsync = {
2994
+ };
2995
+ static declareClassMetadataAsync = {
2903
2996
  name: 'ɵɵngDeclareClassMetadataAsync',
2904
2997
  moduleName: CORE,
2905
- }; }
2906
- static { this.setClassMetadata = { name: 'ɵsetClassMetadata', moduleName: CORE }; }
2907
- static { this.setClassMetadataAsync = {
2998
+ };
2999
+ static setClassMetadata = { name: 'ɵsetClassMetadata', moduleName: CORE };
3000
+ static setClassMetadataAsync = {
2908
3001
  name: 'ɵsetClassMetadataAsync',
2909
3002
  moduleName: CORE,
2910
- }; }
2911
- static { this.setClassDebugInfo = { name: 'ɵsetClassDebugInfo', moduleName: CORE }; }
2912
- static { this.queryRefresh = { name: 'ɵɵqueryRefresh', moduleName: CORE }; }
2913
- static { this.viewQuery = { name: 'ɵɵviewQuery', moduleName: CORE }; }
2914
- static { this.loadQuery = { name: 'ɵɵloadQuery', moduleName: CORE }; }
2915
- static { this.contentQuery = { name: 'ɵɵcontentQuery', moduleName: CORE }; }
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 { this.viewQuerySignal = { name: 'ɵɵviewQuerySignal', moduleName: CORE }; }
2918
- static { this.contentQuerySignal = { name: 'ɵɵcontentQuerySignal', moduleName: CORE }; }
2919
- static { this.queryAdvance = { name: 'ɵɵqueryAdvance', moduleName: CORE }; }
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 { this.twoWayProperty = { name: 'ɵɵtwoWayProperty', moduleName: CORE }; }
2922
- static { this.twoWayBindingSet = { name: 'ɵɵtwoWayBindingSet', moduleName: CORE }; }
2923
- static { this.twoWayListener = { name: 'ɵɵtwoWayListener', moduleName: CORE }; }
2924
- static { this.declareLet = { name: 'ɵɵdeclareLet', moduleName: CORE }; }
2925
- static { this.storeLet = { name: 'ɵɵstoreLet', moduleName: CORE }; }
2926
- static { this.readContextLet = { name: 'ɵɵreadContextLet', moduleName: CORE }; }
2927
- static { this.NgOnChangesFeature = { name: 'ɵɵNgOnChangesFeature', moduleName: CORE }; }
2928
- static { this.InheritDefinitionFeature = {
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 { this.CopyDefinitionFeature = {
3024
+ };
3025
+ static CopyDefinitionFeature = {
2933
3026
  name: 'ɵɵCopyDefinitionFeature',
2934
3027
  moduleName: CORE,
2935
- }; }
2936
- static { this.StandaloneFeature = { name: 'ɵɵStandaloneFeature', moduleName: CORE }; }
2937
- static { this.ProvidersFeature = { name: 'ɵɵProvidersFeature', moduleName: CORE }; }
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 { this.InputTransformsFeatureFeature = {
3033
+ };
3034
+ static InputTransformsFeatureFeature = {
2943
3035
  name: 'ɵɵInputTransformsFeature',
2944
3036
  moduleName: CORE,
2945
- }; }
2946
- static { this.ExternalStylesFeature = {
3037
+ };
3038
+ static ExternalStylesFeature = {
2947
3039
  name: 'ɵɵExternalStylesFeature',
2948
3040
  moduleName: CORE,
2949
- }; }
2950
- static { this.listener = { name: 'ɵɵlistener', moduleName: CORE }; }
2951
- static { this.getInheritedFactory = {
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 { this.sanitizeHtml = { name: 'ɵɵsanitizeHtml', moduleName: CORE }; }
2957
- static { this.sanitizeStyle = { name: 'ɵɵsanitizeStyle', moduleName: CORE }; }
2958
- static { this.sanitizeResourceUrl = {
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 { this.sanitizeScript = { name: 'ɵɵsanitizeScript', moduleName: CORE }; }
2963
- static { this.sanitizeUrl = { name: 'ɵɵsanitizeUrl', moduleName: CORE }; }
2964
- static { this.sanitizeUrlOrResourceUrl = {
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 { this.trustConstantHtml = { name: 'ɵɵtrustConstantHtml', moduleName: CORE }; }
2969
- static { this.trustConstantResourceUrl = {
3059
+ };
3060
+ static trustConstantHtml = { name: 'ɵɵtrustConstantHtml', moduleName: CORE };
3061
+ static trustConstantResourceUrl = {
2970
3062
  name: 'ɵɵtrustConstantResourceUrl',
2971
3063
  moduleName: CORE,
2972
- }; }
2973
- static { this.validateIframeAttribute = {
3064
+ };
3065
+ static validateIframeAttribute = {
2974
3066
  name: 'ɵɵvalidateIframeAttribute',
2975
3067
  moduleName: CORE,
2976
- }; }
3068
+ };
2977
3069
  // type-checking
2978
- static { this.InputSignalBrandWriteType = { name: 'ɵINPUT_SIGNAL_BRAND_WRITE_TYPE', moduleName: CORE }; }
2979
- static { this.UnwrapDirectiveSignalInputs = { name: 'ɵUnwrapDirectiveSignalInputs', moduleName: CORE }; }
2980
- static { this.unwrapWritableSignal = { name: 'ɵunwrapWritableSignal', moduleName: CORE }; }
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, this.preservePlaceholders);
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, preservePlaceholders) {
5827
- return decimalDigest(message, preservePlaceholders);
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
- constructor() {
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(true), quoted: false });
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
- static { _a = ConsumesVarsTrait, _b = DependsOnSlotContext; }
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
- static { _c = ConsumesVarsTrait, _d = UsesVarOffset; }
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
- static { _e = ConsumesVarsTrait, _f = UsesVarOffset; }
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
- static { _g = ConsumesVarsTrait, _h = UsesVarOffset; }
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
- constructor() {
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 { this.nextListId = 0; }
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
- constructor() {
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
- constructor() {
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 = ['var', 'let', 'as', 'null', 'undefined', 'true', 'false', 'if', 'else', 'this'];
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
- constructor() {
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
- constructor() {
19463
- // Count the occurrence of the base name top generate a unique name
19464
- this._placeHolderNameCounts = {};
19465
- // Maps signature to placeholder names
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
- constructor(_expressionParser, _interpolationConfig, _containerBlocks, _retainEmptyTokens) {
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[1];
20421
+ const [startMarker, expression, endMarker] = token.parts;
19702
20422
  const baseName = extractPlaceholderName(expression) || 'INTERPOLATION';
19703
20423
  const phName = context.placeholderRegistry.getPlaceholderName(baseName, expression);
19704
- context.placeholderToContent[phName] = {
19705
- text: token.parts.join(''),
19706
- sourceSpan: token.sourceSpan,
19707
- };
19708
- nodes.push(new Placeholder(expression, phName, token.sourceSpan));
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
- constructor() {
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(true));
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 ?? false,
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 ?? false,
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-next.9');
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 /* retainEmptyTokens */);
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.length == 1 && ast[0] instanceof Attribute && !ast[0].value)) {
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
- constructor() {
30460
- this.closedByParent = false;
30461
- this.implicitNamespacePrefix = null;
30462
- this.isVoid = false;
30463
- this.ignoreFirstLf = false;
30464
- this.canSelfClose = true;
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
- constructor() {
30639
- this._locale = null;
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, /* preservePlaceholders */ true);
31720
+ return decimalDigest(message);
30848
31721
  }
30849
31722
  }
30850
31723
  class _WriteVisitor {
30851
- constructor() {
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
- constructor() {
30947
- this._locale = null;
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, /* preservePlaceholders */ true);
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
- constructor() {
31169
- this._locale = null;
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(/* preservePlaceholders */ true);
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-next.9'));
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-next.9'));
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-next.9'));
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
- constructor() {
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-next.9'));
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-next.9'));
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-next.9'));
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-next.9'));
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-next.9'));
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, isIdentifier, 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 };
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