@angular/compiler-cli 20.0.0-next.7 → 20.0.0-next.9

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.
Files changed (51) hide show
  1. package/bundles/{chunk-K6NOY73Y.js → chunk-2F5IGGXH.js} +12 -12
  2. package/bundles/{chunk-STORTTKY.js → chunk-37JMVF7H.js} +8 -8
  3. package/bundles/{chunk-BNQ3VNZP.js → chunk-5HL3AR4R.js} +180 -120
  4. package/bundles/chunk-5HL3AR4R.js.map +6 -0
  5. package/bundles/{chunk-5UDS2TPQ.js → chunk-77D5CI2U.js} +7 -7
  6. package/bundles/{chunk-GBKXY6BH.js → chunk-FKXFEX7K.js} +3 -3
  7. package/bundles/{chunk-BOV3QCZL.js → chunk-KIC4TVVW.js} +47 -41
  8. package/bundles/chunk-KIC4TVVW.js.map +6 -0
  9. package/bundles/{chunk-I6R3GL3L.js → chunk-Q2WE7ECN.js} +5 -5
  10. package/bundles/{chunk-OBDNP2CK.js → chunk-Q6YAKOMH.js} +5 -5
  11. package/bundles/{chunk-BFF3JTCC.js → chunk-SBWQVXJA.js} +51 -44
  12. package/bundles/chunk-SBWQVXJA.js.map +6 -0
  13. package/bundles/{chunk-5AFVNN25.js → chunk-UTYYMB4Z.js} +3 -3
  14. package/bundles/{chunk-QDS4K6PQ.js → chunk-WNWOEBZS.js} +647 -416
  15. package/bundles/chunk-WNWOEBZS.js.map +6 -0
  16. package/bundles/index.js +12 -12
  17. package/bundles/linker/babel/index.js +12 -12
  18. package/bundles/linker/index.js +4 -4
  19. package/bundles/private/bazel.js +1 -1
  20. package/bundles/private/localize.js +3 -3
  21. package/bundles/private/migrations.js +4 -4
  22. package/bundles/private/tooling.js +6 -6
  23. package/bundles/src/bin/ng_xi18n.js +10 -10
  24. package/bundles/src/bin/ngc.js +8 -8
  25. package/bundles_metadata.json +1 -1
  26. package/linker/src/file_linker/partial_linkers/util.d.ts +1 -1
  27. package/package.json +2 -2
  28. package/src/ngtsc/annotations/component/src/handler.d.ts +16 -1
  29. package/src/ngtsc/annotations/component/src/resources.d.ts +1 -0
  30. package/src/ngtsc/core/src/compiler.d.ts +1 -0
  31. package/src/ngtsc/diagnostics/src/error_code.d.ts +18 -0
  32. package/src/ngtsc/diagnostics/src/extended_template_diagnostic_name.d.ts +1 -0
  33. package/src/ngtsc/docs/src/entities.d.ts +2 -0
  34. package/src/ngtsc/metadata/src/api.d.ts +1 -0
  35. package/src/ngtsc/translator/src/api/ast_factory.d.ts +1 -1
  36. package/src/ngtsc/typecheck/extended/checks/missing_structural_directive/index.d.ts +16 -0
  37. package/src/ngtsc/typecheck/src/dom.d.ts +11 -11
  38. package/src/ngtsc/typecheck/src/oob.d.ts +27 -3
  39. package/src/ngtsc/typecheck/src/tcb_util.d.ts +2 -0
  40. package/src/ngtsc/typecheck/src/type_check_block.d.ts +14 -5
  41. package/bundles/chunk-BFF3JTCC.js.map +0 -6
  42. package/bundles/chunk-BNQ3VNZP.js.map +0 -6
  43. package/bundles/chunk-BOV3QCZL.js.map +0 -6
  44. package/bundles/chunk-QDS4K6PQ.js.map +0 -6
  45. /package/bundles/{chunk-K6NOY73Y.js.map → chunk-2F5IGGXH.js.map} +0 -0
  46. /package/bundles/{chunk-STORTTKY.js.map → chunk-37JMVF7H.js.map} +0 -0
  47. /package/bundles/{chunk-5UDS2TPQ.js.map → chunk-77D5CI2U.js.map} +0 -0
  48. /package/bundles/{chunk-GBKXY6BH.js.map → chunk-FKXFEX7K.js.map} +0 -0
  49. /package/bundles/{chunk-I6R3GL3L.js.map → chunk-Q2WE7ECN.js.map} +0 -0
  50. /package/bundles/{chunk-OBDNP2CK.js.map → chunk-Q6YAKOMH.js.map} +0 -0
  51. /package/bundles/{chunk-5AFVNN25.js.map → chunk-UTYYMB4Z.js.map} +0 -0
@@ -48,23 +48,23 @@ import {
48
48
  translateStatement,
49
49
  translateType,
50
50
  typeNodeToValueExpr
51
- } from "./chunk-BFF3JTCC.js";
51
+ } from "./chunk-SBWQVXJA.js";
52
52
  import {
53
53
  PerfCheckpoint,
54
54
  PerfEvent,
55
55
  PerfPhase
56
- } from "./chunk-I6R3GL3L.js";
56
+ } from "./chunk-Q2WE7ECN.js";
57
57
  import {
58
58
  absoluteFrom,
59
59
  absoluteFromSourceFile,
60
60
  getSourceFileOrError,
61
61
  relative
62
- } from "./chunk-STORTTKY.js";
62
+ } from "./chunk-37JMVF7H.js";
63
63
  import {
64
64
  __publicField
65
65
  } from "./chunk-KPQ72R34.js";
66
66
 
67
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/common/src/util.mjs
67
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/common/src/util.mjs
68
68
  import { ExternalExpr, ParseLocation, ParseSourceFile, ParseSourceSpan, ReadPropExpr, WrappedNodeExpr } from "@angular/compiler";
69
69
  import ts from "typescript";
70
70
  var CORE_MODULE = "@angular/core";
@@ -329,7 +329,7 @@ function isAbstractClassDeclaration(clazz) {
329
329
  return ts.canHaveModifiers(clazz) && clazz.modifiers !== void 0 ? clazz.modifiers.some((mod) => mod.kind === ts.SyntaxKind.AbstractKeyword) : false;
330
330
  }
331
331
 
332
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/partial_evaluator/src/dynamic.mjs
332
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/partial_evaluator/src/dynamic.mjs
333
333
  var DynamicValue = class {
334
334
  node;
335
335
  reason;
@@ -422,10 +422,10 @@ var DynamicValue = class {
422
422
  }
423
423
  };
424
424
 
425
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/partial_evaluator/src/interpreter.mjs
425
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/partial_evaluator/src/interpreter.mjs
426
426
  import ts2 from "typescript";
427
427
 
428
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/partial_evaluator/src/result.mjs
428
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/partial_evaluator/src/result.mjs
429
429
  var ResolvedModule = class {
430
430
  exports;
431
431
  evaluate;
@@ -460,7 +460,7 @@ var EnumValue = class {
460
460
  var KnownFn = class {
461
461
  };
462
462
 
463
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/partial_evaluator/src/builtin.mjs
463
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/partial_evaluator/src/builtin.mjs
464
464
  var ArraySliceBuiltinFn = class extends KnownFn {
465
465
  lhs;
466
466
  constructor(lhs) {
@@ -515,7 +515,7 @@ var StringConcatBuiltinFn = class extends KnownFn {
515
515
  }
516
516
  };
517
517
 
518
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/partial_evaluator/src/synthetic.mjs
518
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/partial_evaluator/src/synthetic.mjs
519
519
  var SyntheticValue = class {
520
520
  value;
521
521
  constructor(value) {
@@ -523,7 +523,7 @@ var SyntheticValue = class {
523
523
  }
524
524
  };
525
525
 
526
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/partial_evaluator/src/interpreter.mjs
526
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/partial_evaluator/src/interpreter.mjs
527
527
  function literalBinaryOp(op) {
528
528
  return { op, literal: true };
529
529
  }
@@ -1104,7 +1104,7 @@ function owningModule(context, override = null) {
1104
1104
  }
1105
1105
  }
1106
1106
 
1107
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/partial_evaluator/src/interface.mjs
1107
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/partial_evaluator/src/interface.mjs
1108
1108
  var PartialEvaluator = class {
1109
1109
  host;
1110
1110
  checker;
@@ -1127,7 +1127,7 @@ var PartialEvaluator = class {
1127
1127
  }
1128
1128
  };
1129
1129
 
1130
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/partial_evaluator/src/diagnostics.mjs
1130
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/partial_evaluator/src/diagnostics.mjs
1131
1131
  import ts3 from "typescript";
1132
1132
  function describeResolvedType(value, maxDepth = 1) {
1133
1133
  var _a, _b;
@@ -1262,14 +1262,14 @@ function getContainerNode(node) {
1262
1262
  return node.getSourceFile();
1263
1263
  }
1264
1264
 
1265
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/api/checker.mjs
1265
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/api/checker.mjs
1266
1266
  var OptimizeFor;
1267
1267
  (function(OptimizeFor2) {
1268
1268
  OptimizeFor2[OptimizeFor2["SingleFile"] = 0] = "SingleFile";
1269
1269
  OptimizeFor2[OptimizeFor2["WholeProgram"] = 1] = "WholeProgram";
1270
1270
  })(OptimizeFor || (OptimizeFor = {}));
1271
1271
 
1272
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/api/scope.mjs
1272
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/api/scope.mjs
1273
1273
  var PotentialImportKind;
1274
1274
  (function(PotentialImportKind2) {
1275
1275
  PotentialImportKind2[PotentialImportKind2["NgModule"] = 0] = "NgModule";
@@ -1281,7 +1281,7 @@ var PotentialImportMode;
1281
1281
  PotentialImportMode2[PotentialImportMode2["ForceDirect"] = 1] = "ForceDirect";
1282
1282
  })(PotentialImportMode || (PotentialImportMode = {}));
1283
1283
 
1284
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/api/completion.mjs
1284
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/api/completion.mjs
1285
1285
  var CompletionKind;
1286
1286
  (function(CompletionKind2) {
1287
1287
  CompletionKind2[CompletionKind2["Reference"] = 0] = "Reference";
@@ -1289,7 +1289,7 @@ var CompletionKind;
1289
1289
  CompletionKind2[CompletionKind2["LetDeclaration"] = 2] = "LetDeclaration";
1290
1290
  })(CompletionKind || (CompletionKind = {}));
1291
1291
 
1292
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/api/symbols.mjs
1292
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/api/symbols.mjs
1293
1293
  var SymbolKind;
1294
1294
  (function(SymbolKind2) {
1295
1295
  SymbolKind2[SymbolKind2["Input"] = 0] = "Input";
@@ -1306,7 +1306,7 @@ var SymbolKind;
1306
1306
  SymbolKind2[SymbolKind2["LetDeclaration"] = 11] = "LetDeclaration";
1307
1307
  })(SymbolKind || (SymbolKind = {}));
1308
1308
 
1309
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/common/src/di.mjs
1309
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/common/src/di.mjs
1310
1310
  import { LiteralExpr, WrappedNodeExpr as WrappedNodeExpr2 } from "@angular/compiler";
1311
1311
  import ts4 from "typescript";
1312
1312
  function getConstructorDependencies(clazz, reflector, isCore) {
@@ -1452,10 +1452,10 @@ function createUnsuitableInjectionTokenError(clazz, error) {
1452
1452
  return new FatalDiagnosticError(ErrorCode.PARAM_MISSING_TOKEN, param.nameNode, chain, hints);
1453
1453
  }
1454
1454
 
1455
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/common/src/diagnostics.mjs
1455
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/common/src/diagnostics.mjs
1456
1456
  import ts12 from "typescript";
1457
1457
 
1458
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/metadata/src/api.mjs
1458
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/metadata/src/api.mjs
1459
1459
  var MetaKind;
1460
1460
  (function(MetaKind2) {
1461
1461
  MetaKind2[MetaKind2["Directive"] = 0] = "Directive";
@@ -1468,10 +1468,10 @@ var MatchSource;
1468
1468
  MatchSource2[MatchSource2["HostDirective"] = 1] = "HostDirective";
1469
1469
  })(MatchSource || (MatchSource = {}));
1470
1470
 
1471
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/metadata/src/dts.mjs
1471
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/metadata/src/dts.mjs
1472
1472
  import ts6 from "typescript";
1473
1473
 
1474
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/metadata/src/property_mapping.mjs
1474
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/metadata/src/property_mapping.mjs
1475
1475
  var ClassPropertyMapping = class {
1476
1476
  forwardMap;
1477
1477
  reverseMap;
@@ -1553,7 +1553,7 @@ function reverseMapFromForwardMap(forwardMap) {
1553
1553
  return reverseMap;
1554
1554
  }
1555
1555
 
1556
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/metadata/src/util.mjs
1556
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/metadata/src/util.mjs
1557
1557
  import ts5 from "typescript";
1558
1558
  function extractReferencesFromType(checker, def, bestGuessOwningModule) {
1559
1559
  if (!ts5.isTupleTypeNode(def)) {
@@ -1769,7 +1769,7 @@ function isHostDirectiveMetaForGlobalMode(hostDirectiveMeta) {
1769
1769
  return hostDirectiveMeta.directive instanceof Reference;
1770
1770
  }
1771
1771
 
1772
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/metadata/src/dts.mjs
1772
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/metadata/src/dts.mjs
1773
1773
  var DtsMetadataReader = class {
1774
1774
  checker;
1775
1775
  reflector;
@@ -1877,6 +1877,7 @@ var DtsMetadataReader = class {
1877
1877
  name,
1878
1878
  nameExpr: null,
1879
1879
  isStandalone,
1880
+ isPure: null,
1880
1881
  decorator: null,
1881
1882
  isExplicitlyDeferred: false
1882
1883
  };
@@ -1968,7 +1969,7 @@ function readHostDirectivesType(checker, type, bestGuessOwningModule) {
1968
1969
  return result.length > 0 ? { result, isIncomplete } : null;
1969
1970
  }
1970
1971
 
1971
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/metadata/src/inheritance.mjs
1972
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/metadata/src/inheritance.mjs
1972
1973
  function flattenInheritedDirectiveMetadata(reader, dir) {
1973
1974
  const topMeta = reader.getDirectiveMetadata(dir);
1974
1975
  if (topMeta === null) {
@@ -2032,7 +2033,7 @@ function flattenInheritedDirectiveMetadata(reader, dir) {
2032
2033
  };
2033
2034
  }
2034
2035
 
2035
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/metadata/src/registry.mjs
2036
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/metadata/src/registry.mjs
2036
2037
  var LocalMetadataRegistry = class {
2037
2038
  directives = /* @__PURE__ */ new Map();
2038
2039
  ngModules = /* @__PURE__ */ new Map();
@@ -2088,7 +2089,7 @@ var CompoundMetadataRegistry = class {
2088
2089
  }
2089
2090
  };
2090
2091
 
2091
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/metadata/src/resource_registry.mjs
2092
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/metadata/src/resource_registry.mjs
2092
2093
  var ResourceRegistry = class {
2093
2094
  externalTemplateToComponentsMap = /* @__PURE__ */ new Map();
2094
2095
  componentToTemplateMap = /* @__PURE__ */ new Map();
@@ -2161,7 +2162,7 @@ var ResourceRegistry = class {
2161
2162
  }
2162
2163
  };
2163
2164
 
2164
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/metadata/src/providers.mjs
2165
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/metadata/src/providers.mjs
2165
2166
  var ExportedProviderStatusResolver = class {
2166
2167
  metaReader;
2167
2168
  calculating = /* @__PURE__ */ new Set();
@@ -2206,7 +2207,7 @@ var ExportedProviderStatusResolver = class {
2206
2207
  }
2207
2208
  };
2208
2209
 
2209
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/metadata/src/host_directives_resolver.mjs
2210
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/metadata/src/host_directives_resolver.mjs
2210
2211
  var EMPTY_ARRAY = [];
2211
2212
  var HostDirectivesResolver = class {
2212
2213
  metaReader;
@@ -2273,7 +2274,7 @@ function resolveOutput(bindingName) {
2273
2274
  return bindingName;
2274
2275
  }
2275
2276
 
2276
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/transform/src/api.mjs
2277
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/transform/src/api.mjs
2277
2278
  var CompilationMode;
2278
2279
  (function(CompilationMode2) {
2279
2280
  CompilationMode2[CompilationMode2["FULL"] = 0] = "FULL";
@@ -2287,7 +2288,7 @@ var HandlerPrecedence;
2287
2288
  HandlerPrecedence2[HandlerPrecedence2["WEAK"] = 2] = "WEAK";
2288
2289
  })(HandlerPrecedence || (HandlerPrecedence = {}));
2289
2290
 
2290
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/transform/src/alias.mjs
2291
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/transform/src/alias.mjs
2291
2292
  import ts7 from "typescript";
2292
2293
  function aliasTransformFactory(exportStatements) {
2293
2294
  return () => {
@@ -2312,10 +2313,10 @@ function aliasTransformFactory(exportStatements) {
2312
2313
  };
2313
2314
  }
2314
2315
 
2315
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/transform/src/compilation.mjs
2316
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/transform/src/compilation.mjs
2316
2317
  import ts8 from "typescript";
2317
2318
 
2318
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/transform/src/trait.mjs
2319
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/transform/src/trait.mjs
2319
2320
  var TraitState;
2320
2321
  (function(TraitState2) {
2321
2322
  TraitState2[TraitState2["Pending"] = 0] = "Pending";
@@ -2374,7 +2375,7 @@ var TraitImpl = class {
2374
2375
  }
2375
2376
  };
2376
2377
 
2377
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/transform/src/compilation.mjs
2378
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/transform/src/compilation.mjs
2378
2379
  var TraitCompiler = class {
2379
2380
  handlers;
2380
2381
  reflector;
@@ -2855,7 +2856,7 @@ function containsErrors(diagnostics) {
2855
2856
  return diagnostics !== null && diagnostics.some((diag) => diag.category === ts8.DiagnosticCategory.Error);
2856
2857
  }
2857
2858
 
2858
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/transform/src/declaration.mjs
2859
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/transform/src/declaration.mjs
2859
2860
  import ts9 from "typescript";
2860
2861
  var DtsTransformRegistry = class {
2861
2862
  ivyDeclarationTransforms = /* @__PURE__ */ new Map();
@@ -3005,11 +3006,11 @@ function markForEmitAsSingleLine(node) {
3005
3006
  ts9.forEachChild(node, markForEmitAsSingleLine);
3006
3007
  }
3007
3008
 
3008
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/transform/src/transform.mjs
3009
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/transform/src/transform.mjs
3009
3010
  import { ConstantPool } from "@angular/compiler";
3010
3011
  import ts11 from "typescript";
3011
3012
 
3012
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/util/src/visitor.mjs
3013
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/util/src/visitor.mjs
3013
3014
  import ts10 from "typescript";
3014
3015
  function visit(node, visitor, context) {
3015
3016
  return visitor._visit(node, context);
@@ -3068,7 +3069,7 @@ var Visitor = class {
3068
3069
  }
3069
3070
  };
3070
3071
 
3071
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/transform/src/transform.mjs
3072
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/transform/src/transform.mjs
3072
3073
  var NO_DECORATORS = /* @__PURE__ */ new Set();
3073
3074
  var CLOSURE_FILE_OVERVIEW_REGEXP = /\s+@fileoverview\s+/i;
3074
3075
  function ivyTransformFactory(compilation, reflector, importRewriter, defaultImportTracker, localCompilationExtraImportsTracker, perf, isCore, isClosureCompilerEnabled) {
@@ -3314,7 +3315,7 @@ function nodeArrayFromDecoratorsArray(decorators) {
3314
3315
  return array;
3315
3316
  }
3316
3317
 
3317
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/common/src/diagnostics.mjs
3318
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/common/src/diagnostics.mjs
3318
3319
  function makeDuplicateDeclarationError(node, data, kind) {
3319
3320
  const context = [];
3320
3321
  for (const decl of data) {
@@ -3523,7 +3524,7 @@ function assertLocalCompilationUnresolvedConst(compilationMode, value, nodeToHig
3523
3524
  }
3524
3525
  }
3525
3526
 
3526
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/common/src/evaluation.mjs
3527
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/common/src/evaluation.mjs
3527
3528
  import { ViewEncapsulation } from "@angular/compiler";
3528
3529
  import ts13 from "typescript";
3529
3530
  function resolveEnumValue(evaluator, metadata, field, enumSymbolName, isCore) {
@@ -3574,7 +3575,7 @@ function resolveLiteral(decorator, literalCache) {
3574
3575
  return meta;
3575
3576
  }
3576
3577
 
3577
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/common/src/factory.mjs
3578
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/common/src/factory.mjs
3578
3579
  import { compileDeclareFactoryFunction, compileFactoryFunction } from "@angular/compiler";
3579
3580
  function compileNgFactoryDefField(metadata) {
3580
3581
  const res = compileFactoryFunction(metadata);
@@ -3597,7 +3598,7 @@ function compileDeclareFactory(metadata) {
3597
3598
  };
3598
3599
  }
3599
3600
 
3600
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/common/src/injectable_registry.mjs
3601
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/common/src/injectable_registry.mjs
3601
3602
  var InjectableClassRegistry = class {
3602
3603
  host;
3603
3604
  isCore;
@@ -3625,7 +3626,7 @@ var InjectableClassRegistry = class {
3625
3626
  }
3626
3627
  };
3627
3628
 
3628
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/common/src/metadata.mjs
3629
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/common/src/metadata.mjs
3629
3630
  import { ArrowFunctionExpr, LiteralArrayExpr, LiteralExpr as LiteralExpr2, literalMap, WrappedNodeExpr as WrappedNodeExpr3 } from "@angular/compiler";
3630
3631
  import ts14 from "typescript";
3631
3632
  function extractClassMetadata(clazz, reflection, isCore, annotateForClosureCompiler, angularDecoratorTransform = (dec) => dec) {
@@ -3713,7 +3714,7 @@ function removeIdentifierReferences(node, names) {
3713
3714
  return result.transformed[0];
3714
3715
  }
3715
3716
 
3716
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/common/src/debug_info.mjs
3717
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/common/src/debug_info.mjs
3717
3718
  import { literal as literal2, WrappedNodeExpr as WrappedNodeExpr4 } from "@angular/compiler";
3718
3719
  function extractClassDebugInfo(clazz, reflection, compilerHost, rootDirs, forbidOrphanRendering) {
3719
3720
  if (!reflection.isClass(clazz)) {
@@ -3730,13 +3731,13 @@ function extractClassDebugInfo(clazz, reflection, compilerHost, rootDirs, forbid
3730
3731
  };
3731
3732
  }
3732
3733
 
3733
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/common/src/references_registry.mjs
3734
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/common/src/references_registry.mjs
3734
3735
  var NoopReferencesRegistry = class {
3735
3736
  add(source, ...references) {
3736
3737
  }
3737
3738
  };
3738
3739
 
3739
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/common/src/schema.mjs
3740
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/common/src/schema.mjs
3740
3741
  import { CUSTOM_ELEMENTS_SCHEMA, NO_ERRORS_SCHEMA } from "@angular/compiler";
3741
3742
  function extractSchemas(rawExpr, evaluator, context) {
3742
3743
  const schemas = [];
@@ -3766,7 +3767,7 @@ function extractSchemas(rawExpr, evaluator, context) {
3766
3767
  return schemas;
3767
3768
  }
3768
3769
 
3769
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/common/src/input_transforms.mjs
3770
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/common/src/input_transforms.mjs
3770
3771
  import { outputAst } from "@angular/compiler";
3771
3772
  function compileInputTransformFields(inputs) {
3772
3773
  const extraFields = [];
@@ -3784,16 +3785,16 @@ function compileInputTransformFields(inputs) {
3784
3785
  return extraFields;
3785
3786
  }
3786
3787
 
3787
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/common/src/jit_declaration_registry.mjs
3788
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/common/src/jit_declaration_registry.mjs
3788
3789
  var JitDeclarationRegistry = class {
3789
3790
  jitDeclarations = /* @__PURE__ */ new Set();
3790
3791
  };
3791
3792
 
3792
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/component/src/handler.mjs
3793
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/component/src/handler.mjs
3793
3794
  import { compileClassDebugInfo, compileHmrInitializer, compileComponentClassMetadata, compileComponentDeclareClassMetadata, compileComponentFromMetadata, compileDeclareComponentFromMetadata, compileDeferResolverFunction, ConstantPool as ConstantPool2, CssSelector as CssSelector5, DEFAULT_INTERPOLATION_CONFIG as DEFAULT_INTERPOLATION_CONFIG2, DomElementSchemaRegistry as DomElementSchemaRegistry3, ExternalExpr as ExternalExpr8, FactoryTarget as FactoryTarget3, makeBindingParser as makeBindingParser3, outputAst as o4, R3TargetBinder as R3TargetBinder2, R3TemplateDependencyKind, SelectorMatcher as SelectorMatcher3, ViewEncapsulation as ViewEncapsulation2 } from "@angular/compiler";
3794
3795
  import ts51 from "typescript";
3795
3796
 
3796
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/incremental/semantic_graph/src/api.mjs
3797
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/incremental/semantic_graph/src/api.mjs
3797
3798
  import ts15 from "typescript";
3798
3799
  var SemanticSymbol = class {
3799
3800
  decl;
@@ -3812,7 +3813,7 @@ function getSymbolIdentifier(decl) {
3812
3813
  return decl.name.text;
3813
3814
  }
3814
3815
 
3815
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/incremental/semantic_graph/src/graph.mjs
3816
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/incremental/semantic_graph/src/graph.mjs
3816
3817
  import { ExternalExpr as ExternalExpr2 } from "@angular/compiler";
3817
3818
  var OpaqueSymbol = class extends SemanticSymbol {
3818
3819
  isPublicApiAffected() {
@@ -3954,10 +3955,10 @@ function getImportPath(expr) {
3954
3955
  }
3955
3956
  }
3956
3957
 
3957
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/incremental/semantic_graph/src/type_parameters.mjs
3958
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/incremental/semantic_graph/src/type_parameters.mjs
3958
3959
  import ts16 from "typescript";
3959
3960
 
3960
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/incremental/semantic_graph/src/util.mjs
3961
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/incremental/semantic_graph/src/util.mjs
3961
3962
  function isSymbolEqual(a, b) {
3962
3963
  if (a.decl === b.decl) {
3963
3964
  return true;
@@ -4007,7 +4008,7 @@ function isSetEqual(a, b, equalityTester = referenceEquality) {
4007
4008
  return true;
4008
4009
  }
4009
4010
 
4010
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/incremental/semantic_graph/src/type_parameters.mjs
4011
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/incremental/semantic_graph/src/type_parameters.mjs
4011
4012
  function extractSemanticTypeParameters(node) {
4012
4013
  if (!ts16.isClassDeclaration(node) || node.typeParameters === void 0) {
4013
4014
  return null;
@@ -4029,14 +4030,14 @@ function isTypeParameterEqual(a, b) {
4029
4030
  return a.hasGenericTypeBound === b.hasGenericTypeBound;
4030
4031
  }
4031
4032
 
4032
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/scope/src/api.mjs
4033
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/scope/src/api.mjs
4033
4034
  var ComponentScopeKind;
4034
4035
  (function(ComponentScopeKind2) {
4035
4036
  ComponentScopeKind2[ComponentScopeKind2["NgModule"] = 0] = "NgModule";
4036
4037
  ComponentScopeKind2[ComponentScopeKind2["Standalone"] = 1] = "Standalone";
4037
4038
  })(ComponentScopeKind || (ComponentScopeKind = {}));
4038
4039
 
4039
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/scope/src/component_scope.mjs
4040
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/scope/src/component_scope.mjs
4040
4041
  var CompoundComponentScopeReader = class {
4041
4042
  readers;
4042
4043
  constructor(readers) {
@@ -4062,7 +4063,7 @@ var CompoundComponentScopeReader = class {
4062
4063
  }
4063
4064
  };
4064
4065
 
4065
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/scope/src/dependency.mjs
4066
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/scope/src/dependency.mjs
4066
4067
  var MetadataDtsModuleScopeResolver = class {
4067
4068
  dtsMetaReader;
4068
4069
  aliasingHost;
@@ -4140,11 +4141,11 @@ var MetadataDtsModuleScopeResolver = class {
4140
4141
  }
4141
4142
  };
4142
4143
 
4143
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/scope/src/local.mjs
4144
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/scope/src/local.mjs
4144
4145
  import { ExternalExpr as ExternalExpr3 } from "@angular/compiler";
4145
4146
  import ts17 from "typescript";
4146
4147
 
4147
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/scope/src/util.mjs
4148
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/scope/src/util.mjs
4148
4149
  function getDiagnosticNode(ref, rawExpr) {
4149
4150
  return rawExpr !== null ? ref.getOriginForDiagnostics(rawExpr) : ref.node.name;
4150
4151
  }
@@ -4170,7 +4171,7 @@ function makeUnknownComponentDeferredImportDiagnostic(ref, rawExpr) {
4170
4171
  return makeDiagnostic(ErrorCode.COMPONENT_UNKNOWN_DEFERRED_IMPORT, getDiagnosticNode(ref, rawExpr), `Component deferred imports must be standalone components, directives or pipes.`);
4171
4172
  }
4172
4173
 
4173
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/scope/src/local.mjs
4174
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/scope/src/local.mjs
4174
4175
  var IN_PROGRESS_RESOLUTION = {};
4175
4176
  var LocalModuleScopeRegistry = class {
4176
4177
  localReader;
@@ -4529,7 +4530,7 @@ function reexportCollision(module, refA, refB) {
4529
4530
  ]);
4530
4531
  }
4531
4532
 
4532
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/scope/src/typecheck.mjs
4533
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/scope/src/typecheck.mjs
4533
4534
  import { CssSelector, SelectorMatcher } from "@angular/compiler";
4534
4535
  import ts18 from "typescript";
4535
4536
  var TypeCheckScopeRegistry = class {
@@ -4613,15 +4614,15 @@ var TypeCheckScopeRegistry = class {
4613
4614
  }
4614
4615
  };
4615
4616
 
4616
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/directive/src/handler.mjs
4617
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/directive/src/handler.mjs
4617
4618
  import { compileClassMetadata, compileDeclareClassMetadata, compileDeclareDirectiveFromMetadata, compileDirectiveFromMetadata, FactoryTarget, makeBindingParser as makeBindingParser2, R3TargetBinder, WrappedNodeExpr as WrappedNodeExpr8 } from "@angular/compiler";
4618
4619
  import ts43 from "typescript";
4619
4620
 
4620
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/directive/src/shared.mjs
4621
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/directive/src/shared.mjs
4621
4622
  import { createMayBeForwardRefExpression as createMayBeForwardRefExpression2, emitDistinctChangesOnlyDefaultValue, ExternalExpr as ExternalExpr4, getSafePropertyAccessString, parseHostBindings, ParserError, verifyHostBindings, WrappedNodeExpr as WrappedNodeExpr5 } from "@angular/compiler";
4622
4623
  import ts22 from "typescript";
4623
4624
 
4624
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/directive/src/initializer_function_access.mjs
4625
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/directive/src/initializer_function_access.mjs
4625
4626
  function validateAccessOfInitializerApiMember({ api, call }, member) {
4626
4627
  if (!api.allowedAccessLevels.includes(member.accessLevel)) {
4627
4628
  throw new FatalDiagnosticError(ErrorCode.INITIALIZER_API_DISALLOWED_MEMBER_VISIBILITY, call, makeDiagnosticChain(`Cannot use "${api.functionName}" on a class member that is declared as ${classMemberAccessLevelToString(member.accessLevel)}.`, [
@@ -4630,7 +4631,7 @@ function validateAccessOfInitializerApiMember({ api, call }, member) {
4630
4631
  }
4631
4632
  }
4632
4633
 
4633
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/directive/src/initializer_functions.mjs
4634
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/directive/src/initializer_functions.mjs
4634
4635
  import ts19 from "typescript";
4635
4636
  function tryParseInitializerApi(functions, expression, reflector, importTracker) {
4636
4637
  if (!ts19.isCallExpression(expression)) {
@@ -4699,7 +4700,7 @@ function parseTopLevelCallFromNamespace(call, functions, importTracker) {
4699
4700
  return { api: matchingApi, apiReference, isRequired };
4700
4701
  }
4701
4702
 
4702
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/directive/src/input_output_parse_options.mjs
4703
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/directive/src/input_output_parse_options.mjs
4703
4704
  import ts20 from "typescript";
4704
4705
  function parseAndValidateInputAndOutputOptions(optionsNode) {
4705
4706
  if (!ts20.isObjectLiteralExpression(optionsNode)) {
@@ -4717,7 +4718,7 @@ function parseAndValidateInputAndOutputOptions(optionsNode) {
4717
4718
  return { alias };
4718
4719
  }
4719
4720
 
4720
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/directive/src/input_function.mjs
4721
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/directive/src/input_function.mjs
4721
4722
  var INPUT_INITIALIZER_FN = {
4722
4723
  functionName: "input",
4723
4724
  owningModule: "@angular/core",
@@ -4749,7 +4750,7 @@ function tryParseSignalInputMapping(member, reflector, importTracker) {
4749
4750
  };
4750
4751
  }
4751
4752
 
4752
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/directive/src/model_function.mjs
4753
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/directive/src/model_function.mjs
4753
4754
  var MODEL_INITIALIZER_FN = {
4754
4755
  functionName: "model",
4755
4756
  owningModule: "@angular/core",
@@ -4790,7 +4791,7 @@ function tryParseSignalModelMapping(member, reflector, importTracker) {
4790
4791
  };
4791
4792
  }
4792
4793
 
4793
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/directive/src/output_function.mjs
4794
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/directive/src/output_function.mjs
4794
4795
  var allowedAccessLevels = [
4795
4796
  ClassMemberAccessLevel.PublicWritable,
4796
4797
  ClassMemberAccessLevel.PublicReadonly,
@@ -4834,7 +4835,7 @@ function tryParseInitializerBasedOutput(member, reflector, importTracker) {
4834
4835
  };
4835
4836
  }
4836
4837
 
4837
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/directive/src/query_functions.mjs
4838
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/directive/src/query_functions.mjs
4838
4839
  import { createMayBeForwardRefExpression, outputAst as o } from "@angular/compiler";
4839
4840
  import ts21 from "typescript";
4840
4841
  var queryFunctionNames = [
@@ -4919,7 +4920,7 @@ function parseDescendantsOption(value) {
4919
4920
  throw new FatalDiagnosticError(ErrorCode.VALUE_HAS_WRONG_TYPE, value, `Expected "descendants" option to be a boolean literal.`);
4920
4921
  }
4921
4922
 
4922
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/directive/src/shared.mjs
4923
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/directive/src/shared.mjs
4923
4924
  var EMPTY_OBJECT = {};
4924
4925
  var queryDecoratorNames = [
4925
4926
  "ViewChild",
@@ -5759,7 +5760,7 @@ function extractHostBindingResources(nodes) {
5759
5760
  return result;
5760
5761
  }
5761
5762
 
5762
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/directive/src/symbol.mjs
5763
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/directive/src/symbol.mjs
5763
5764
  var DirectiveSymbol = class extends SemanticSymbol {
5764
5765
  selector;
5765
5766
  inputs;
@@ -5845,10 +5846,10 @@ function isBaseClassEqual(current, previous) {
5845
5846
  return isSymbolEqual(current, previous);
5846
5847
  }
5847
5848
 
5848
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/checker.mjs
5849
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/checker.mjs
5849
5850
  import { CssSelector as CssSelector4, DomElementSchemaRegistry as DomElementSchemaRegistry2, ExternalExpr as ExternalExpr6, WrappedNodeExpr as WrappedNodeExpr7 } from "@angular/compiler";
5850
5851
 
5851
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/program_driver/src/api.mjs
5852
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/program_driver/src/api.mjs
5852
5853
  var NgOriginalFile = Symbol("NgOriginalFile");
5853
5854
  var UpdateMode;
5854
5855
  (function(UpdateMode2) {
@@ -5856,13 +5857,13 @@ var UpdateMode;
5856
5857
  UpdateMode2[UpdateMode2["Incremental"] = 1] = "Incremental";
5857
5858
  })(UpdateMode || (UpdateMode = {}));
5858
5859
 
5859
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/program_driver/src/ts_create_program_driver.mjs
5860
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/program_driver/src/ts_create_program_driver.mjs
5860
5861
  import ts24 from "typescript";
5861
5862
 
5862
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/shims/src/adapter.mjs
5863
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/shims/src/adapter.mjs
5863
5864
  import ts23 from "typescript";
5864
5865
 
5865
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/shims/src/expando.mjs
5866
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/shims/src/expando.mjs
5866
5867
  var NgExtension = Symbol("NgExtension");
5867
5868
  function isExtended(sf) {
5868
5869
  return sf[NgExtension] !== void 0;
@@ -5922,13 +5923,13 @@ function retagTsFile(sf) {
5922
5923
  }
5923
5924
  }
5924
5925
 
5925
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/shims/src/util.mjs
5926
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/shims/src/util.mjs
5926
5927
  var TS_EXTENSIONS = /\.tsx?$/i;
5927
5928
  function makeShimFileName(fileName, suffix) {
5928
5929
  return absoluteFrom(fileName.replace(TS_EXTENSIONS, suffix));
5929
5930
  }
5930
5931
 
5931
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/shims/src/adapter.mjs
5932
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/shims/src/adapter.mjs
5932
5933
  var ShimAdapter = class {
5933
5934
  delegate;
5934
5935
  shims = /* @__PURE__ */ new Map();
@@ -6025,7 +6026,7 @@ var ShimAdapter = class {
6025
6026
  }
6026
6027
  };
6027
6028
 
6028
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/shims/src/reference_tagger.mjs
6029
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/shims/src/reference_tagger.mjs
6029
6030
  var ShimReferenceTagger = class {
6030
6031
  suffixes;
6031
6032
  tagged = /* @__PURE__ */ new Set();
@@ -6060,7 +6061,7 @@ var ShimReferenceTagger = class {
6060
6061
  }
6061
6062
  };
6062
6063
 
6063
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/program_driver/src/ts_create_program_driver.mjs
6064
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/program_driver/src/ts_create_program_driver.mjs
6064
6065
  var DelegatingCompilerHost = class {
6065
6066
  delegate;
6066
6067
  createHash;
@@ -6211,7 +6212,7 @@ var TsCreateProgramDriver = class {
6211
6212
  }
6212
6213
  };
6213
6214
 
6214
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/diagnostics/src/diagnostic.mjs
6215
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/diagnostics/src/diagnostic.mjs
6215
6216
  import ts25 from "typescript";
6216
6217
  function makeTemplateDiagnostic(id, mapping, span, category, code, messageText, relatedMessages) {
6217
6218
  var _a;
@@ -6322,7 +6323,7 @@ function parseTemplateAsSourceFile(fileName, template) {
6322
6323
  );
6323
6324
  }
6324
6325
 
6325
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/diagnostics/src/id.mjs
6326
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/diagnostics/src/id.mjs
6326
6327
  var TYPE_CHECK_ID_MAP = Symbol("TypeCheckId");
6327
6328
  function getTypeCheckId(clazz) {
6328
6329
  const sf = clazz.getSourceFile();
@@ -6335,11 +6336,11 @@ function getTypeCheckId(clazz) {
6335
6336
  return sf[TYPE_CHECK_ID_MAP].get(clazz);
6336
6337
  }
6337
6338
 
6338
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/completion.mjs
6339
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/completion.mjs
6339
6340
  import { EmptyExpr, ImplicitReceiver, PropertyRead, PropertyWrite, SafePropertyRead, TmplAstLetDeclaration, TmplAstReference, TmplAstTextAttribute } from "@angular/compiler";
6340
6341
  import ts27 from "typescript";
6341
6342
 
6342
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/comments.mjs
6343
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/comments.mjs
6343
6344
  import { AbsoluteSourceSpan } from "@angular/compiler";
6344
6345
  import ts26 from "typescript";
6345
6346
  var parseSpanComment = /^(\d+),(\d+)$/;
@@ -6470,7 +6471,7 @@ function hasExpressionIdentifier(sourceFile, node, identifier) {
6470
6471
  }) || false;
6471
6472
  }
6472
6473
 
6473
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/completion.mjs
6474
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/completion.mjs
6474
6475
  var CompletionEngine = class {
6475
6476
  tcb;
6476
6477
  data;
@@ -6637,7 +6638,7 @@ var CompletionEngine = class {
6637
6638
  }
6638
6639
  };
6639
6640
 
6640
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/context.mjs
6641
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/context.mjs
6641
6642
  import { ParseSourceFile as ParseSourceFile2 } from "@angular/compiler";
6642
6643
 
6643
6644
  // node_modules/magic-string/dist/magic-string.es.mjs
@@ -7680,10 +7681,10 @@ var MagicString = class {
7680
7681
  }
7681
7682
  };
7682
7683
 
7683
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/context.mjs
7684
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/context.mjs
7684
7685
  import ts41 from "typescript";
7685
7686
 
7686
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/dom.mjs
7687
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/dom.mjs
7687
7688
  import { DomElementSchemaRegistry } from "@angular/compiler";
7688
7689
  import ts28 from "typescript";
7689
7690
  var REGISTRY = new DomElementSchemaRegistry();
@@ -7697,8 +7698,8 @@ var RegistryDomSchemaChecker = class {
7697
7698
  constructor(resolver) {
7698
7699
  this.resolver = resolver;
7699
7700
  }
7700
- checkElement(id, element, schemas, hostIsStandalone) {
7701
- const name = element.name.replace(REMOVE_XHTML_REGEX, "");
7701
+ checkElement(id, tagName, sourceSpanForDiagnostics, schemas, hostIsStandalone) {
7702
+ const name = tagName.replace(REMOVE_XHTML_REGEX, "");
7702
7703
  if (!REGISTRY.hasElement(name, schemas)) {
7703
7704
  const mapping = this.resolver.getTemplateSourceMapping(id);
7704
7705
  const schemas2 = `'${hostIsStandalone ? "@Component" : "@NgModule"}.schemas'`;
@@ -7711,24 +7712,24 @@ var RegistryDomSchemaChecker = class {
7711
7712
  } else {
7712
7713
  errorMsg += `2. To allow any element add 'NO_ERRORS_SCHEMA' to the ${schemas2} of this component.`;
7713
7714
  }
7714
- const diag = makeTemplateDiagnostic(id, mapping, element.startSourceSpan, ts28.DiagnosticCategory.Error, ngErrorCode(ErrorCode.SCHEMA_INVALID_ELEMENT), errorMsg);
7715
+ const diag = makeTemplateDiagnostic(id, mapping, sourceSpanForDiagnostics, ts28.DiagnosticCategory.Error, ngErrorCode(ErrorCode.SCHEMA_INVALID_ELEMENT), errorMsg);
7715
7716
  this._diagnostics.push(diag);
7716
7717
  }
7717
7718
  }
7718
- checkTemplateElementProperty(id, element, name, span, schemas, hostIsStandalone) {
7719
- if (!REGISTRY.hasProperty(element.name, name, schemas)) {
7719
+ checkTemplateElementProperty(id, tagName, name, span, schemas, hostIsStandalone) {
7720
+ if (!REGISTRY.hasProperty(tagName, name, schemas)) {
7720
7721
  const mapping = this.resolver.getTemplateSourceMapping(id);
7721
7722
  const decorator = hostIsStandalone ? "@Component" : "@NgModule";
7722
7723
  const schemas2 = `'${decorator}.schemas'`;
7723
- let errorMsg = `Can't bind to '${name}' since it isn't a known property of '${element.name}'.`;
7724
- if (element.name.startsWith("ng-")) {
7724
+ let errorMsg = `Can't bind to '${name}' since it isn't a known property of '${tagName}'.`;
7725
+ if (tagName.startsWith("ng-")) {
7725
7726
  errorMsg += `
7726
7727
  1. If '${name}' is an Angular directive, then add 'CommonModule' to the '${decorator}.imports' of this component.
7727
7728
  2. To allow any property add 'NO_ERRORS_SCHEMA' to the ${schemas2} of this component.`;
7728
- } else if (element.name.indexOf("-") > -1) {
7729
+ } else if (tagName.indexOf("-") > -1) {
7729
7730
  errorMsg += `
7730
- 1. If '${element.name}' is an Angular component and it has '${name}' input, then verify that it is ${hostIsStandalone ? "included in the '@Component.imports' of this component" : "part of this module"}.
7731
- 2. If '${element.name}' is a Web Component then add 'CUSTOM_ELEMENTS_SCHEMA' to the ${schemas2} of this component to suppress this message.
7731
+ 1. If '${tagName}' is an Angular component and it has '${name}' input, then verify that it is ${hostIsStandalone ? "included in the '@Component.imports' of this component" : "part of this module"}.
7732
+ 2. If '${tagName}' is a Web Component then add 'CUSTOM_ELEMENTS_SCHEMA' to the ${schemas2} of this component to suppress this message.
7732
7733
  3. To allow any property add 'NO_ERRORS_SCHEMA' to the ${schemas2} of this component.`;
7733
7734
  }
7734
7735
  const diag = makeTemplateDiagnostic(id, mapping, span, ts28.DiagnosticCategory.Error, ngErrorCode(ErrorCode.SCHEMA_INVALID_ATTRIBUTE), errorMsg);
@@ -7749,10 +7750,10 @@ var RegistryDomSchemaChecker = class {
7749
7750
  }
7750
7751
  };
7751
7752
 
7752
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/environment.mjs
7753
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/environment.mjs
7753
7754
  import ts34 from "typescript";
7754
7755
 
7755
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/reference_emit_environment.mjs
7756
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/reference_emit_environment.mjs
7756
7757
  import { ExpressionType, ExternalExpr as ExternalExpr5, TypeModifier } from "@angular/compiler";
7757
7758
  var ReferenceEmitEnvironment = class {
7758
7759
  importManager;
@@ -7787,7 +7788,7 @@ var ReferenceEmitEnvironment = class {
7787
7788
  }
7788
7789
  };
7789
7790
 
7790
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/ts_util.mjs
7791
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/ts_util.mjs
7791
7792
  import ts29 from "typescript";
7792
7793
  var SAFE_TO_CAST_WITHOUT_PARENS = /* @__PURE__ */ new Set([
7793
7794
  ts29.SyntaxKind.ParenthesizedExpression,
@@ -7878,15 +7879,15 @@ function tsNumericExpression(value) {
7878
7879
  return ts29.factory.createNumericLiteral(value);
7879
7880
  }
7880
7881
 
7881
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/type_constructor.mjs
7882
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/type_constructor.mjs
7882
7883
  import { ExpressionType as ExpressionType2, R3Identifiers as R3Identifiers2, WrappedNodeExpr as WrappedNodeExpr6 } from "@angular/compiler";
7883
7884
  import ts33 from "typescript";
7884
7885
 
7885
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/tcb_util.mjs
7886
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/tcb_util.mjs
7886
7887
  import { R3Identifiers } from "@angular/compiler";
7887
7888
  import ts32 from "typescript";
7888
7889
 
7889
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/type_parameter_emitter.mjs
7890
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/type_parameter_emitter.mjs
7890
7891
  import ts30 from "typescript";
7891
7892
  var TypeParameterEmitter = class {
7892
7893
  typeParameters;
@@ -7966,7 +7967,7 @@ var TypeParameterEmitter = class {
7966
7967
  }
7967
7968
  };
7968
7969
 
7969
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/host_bindings.mjs
7970
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/host_bindings.mjs
7970
7971
  import { BindingType, CssSelector as CssSelector2, makeBindingParser, TmplAstBoundAttribute, TmplAstBoundEvent, TmplAstHostElement, AbsoluteSourceSpan as AbsoluteSourceSpan2, ParseSpan, PropertyRead as PropertyRead2, ParsedEventType, Call, ThisReceiver, KeyedRead, LiteralPrimitive, RecursiveAstVisitor, ASTWithName, SafeCall, ImplicitReceiver as ImplicitReceiver2 } from "@angular/compiler";
7971
7972
  import ts31 from "typescript";
7972
7973
  var GUARD_COMMENT_TEXT = "hostBindingsBlockGuard";
@@ -8192,7 +8193,7 @@ var ReplaceSpanVisitor = class extends RecursiveAstVisitor {
8192
8193
  }
8193
8194
  };
8194
8195
 
8195
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/tcb_util.mjs
8196
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/tcb_util.mjs
8196
8197
  var TCB_FILE_IMPORT_GRAPH_PREPARE_IDENTIFIERS = [
8197
8198
  R3Identifiers.InputSignalBrandWriteType
8198
8199
  ];
@@ -8253,7 +8254,7 @@ function findTypeCheckBlock(file, id, isDiagnosticRequest) {
8253
8254
  return stmt;
8254
8255
  }
8255
8256
  }
8256
- return null;
8257
+ return findNodeInFile(file, (node) => ts32.isFunctionDeclaration(node) && getTypeCheckId2(node, file, isDiagnosticRequest) === id);
8257
8258
  }
8258
8259
  function findSourceLocation(node, sourceFile, isDiagnosticsRequest) {
8259
8260
  while (node !== void 0 && !ts32.isFunctionDeclaration(node)) {
@@ -8304,8 +8305,19 @@ function checkIfGenericTypeBoundsCanBeEmitted(node, reflector, env) {
8304
8305
  const emitter = new TypeParameterEmitter(node.typeParameters, reflector);
8305
8306
  return emitter.canEmit((ref) => env.canReferenceType(ref));
8306
8307
  }
8308
+ function findNodeInFile(file, predicate) {
8309
+ var _a;
8310
+ const visit2 = (node) => {
8311
+ var _a2;
8312
+ if (predicate(node)) {
8313
+ return node;
8314
+ }
8315
+ return (_a2 = ts32.forEachChild(node, visit2)) != null ? _a2 : null;
8316
+ };
8317
+ return (_a = ts32.forEachChild(file, visit2)) != null ? _a : null;
8318
+ }
8307
8319
 
8308
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/type_constructor.mjs
8320
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/type_constructor.mjs
8309
8321
  function generateTypeCtorDeclarationFn(env, meta, nodeTypeRef, typeParams) {
8310
8322
  const rawTypeArgs = typeParams !== void 0 ? generateGenericArgs(typeParams) : void 0;
8311
8323
  const rawType = ts33.factory.createTypeReferenceNode(nodeTypeRef, rawTypeArgs);
@@ -8428,7 +8440,7 @@ function typeParametersWithDefaultTypes(params) {
8428
8440
  });
8429
8441
  }
8430
8442
 
8431
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/environment.mjs
8443
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/environment.mjs
8432
8444
  var Environment = class extends ReferenceEmitEnvironment {
8433
8445
  config;
8434
8446
  nextIds = {
@@ -8501,8 +8513,8 @@ var Environment = class extends ReferenceEmitEnvironment {
8501
8513
  }
8502
8514
  };
8503
8515
 
8504
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/oob.mjs
8505
- import { AbsoluteSourceSpan as AbsoluteSourceSpan3, TmplAstElement } from "@angular/compiler";
8516
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/oob.mjs
8517
+ import { AbsoluteSourceSpan as AbsoluteSourceSpan3, TmplAstBoundEvent as TmplAstBoundEvent2, TmplAstComponent, TmplAstDirective, TmplAstElement } from "@angular/compiler";
8506
8518
  import ts35 from "typescript";
8507
8519
  var OutOfBandDiagnosticRecorderImpl = class {
8508
8520
  resolver;
@@ -8695,6 +8707,23 @@ Deferred blocks can only access triggers in same view, a parent embedded view or
8695
8707
  const errorMsg = `Cannot declare @let called '${decl.name}' as there is another symbol in the template with the same name.`;
8696
8708
  this._diagnostics.push(makeTemplateDiagnostic(id, mapping, decl.sourceSpan, ts35.DiagnosticCategory.Error, ngErrorCode(ErrorCode.CONFLICTING_LET_DECLARATION), errorMsg));
8697
8709
  }
8710
+ missingNamedTemplateDependency(id, node) {
8711
+ this._diagnostics.push(makeTemplateDiagnostic(
8712
+ id,
8713
+ this.resolver.getTemplateSourceMapping(id),
8714
+ node.startSourceSpan,
8715
+ ts35.DiagnosticCategory.Error,
8716
+ ngErrorCode(ErrorCode.MISSING_NAMED_TEMPLATE_DEPENDENCY),
8717
+ `Cannot find name "${node instanceof TmplAstDirective ? node.name : node.componentName}".`
8718
+ ));
8719
+ }
8720
+ incorrectTemplateDependencyType(id, node) {
8721
+ this._diagnostics.push(makeTemplateDiagnostic(id, this.resolver.getTemplateSourceMapping(id), node.startSourceSpan, ts35.DiagnosticCategory.Error, ngErrorCode(ErrorCode.INCORRECT_NAMED_TEMPLATE_DEPENDENCY_TYPE), `Incorrect reference type. Type must be an ${node instanceof TmplAstComponent ? "@Component" : "@Directive"}.`));
8722
+ }
8723
+ unclaimedDirectiveBinding(id, directive, node) {
8724
+ const errorMsg = `Directive ${directive.name} does not have an ${node instanceof TmplAstBoundEvent2 ? "output" : "input"} named "${node.name}". Bindings to directives must target existing inputs or outputs.`;
8725
+ this._diagnostics.push(makeTemplateDiagnostic(id, this.resolver.getTemplateSourceMapping(id), node.keySpan || node.sourceSpan, ts35.DiagnosticCategory.Error, ngErrorCode(ErrorCode.UNCLAIMED_DIRECTIVE_BINDING), errorMsg));
8726
+ }
8698
8727
  };
8699
8728
  function makeInlineDiagnostic(id, code, node, messageText, relatedInformation) {
8700
8729
  return {
@@ -8704,7 +8733,7 @@ function makeInlineDiagnostic(id, code, node, messageText, relatedInformation) {
8704
8733
  };
8705
8734
  }
8706
8735
 
8707
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/shim.mjs
8736
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/shim.mjs
8708
8737
  import ts36 from "typescript";
8709
8738
  var TypeCheckShimGenerator = class {
8710
8739
  extensionPrefix = "ngtypecheck";
@@ -8720,11 +8749,11 @@ var TypeCheckShimGenerator = class {
8720
8749
  }
8721
8750
  };
8722
8751
 
8723
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/type_check_block.mjs
8724
- import { BindingPipe, BindingType as BindingType2, Call as Call3, createCssSelectorFromNode, CssSelector as CssSelector3, DYNAMIC_TYPE, ImplicitReceiver as ImplicitReceiver3, ParsedEventType as ParsedEventType2, PropertyRead as PropertyRead4, PropertyWrite as PropertyWrite2, R3Identifiers as R3Identifiers3, SafeCall as SafeCall2, SafePropertyRead as SafePropertyRead3, SelectorMatcher as SelectorMatcher2, ThisReceiver as ThisReceiver2, TmplAstBoundAttribute as TmplAstBoundAttribute2, TmplAstBoundText, TmplAstContent, TmplAstDeferredBlock, TmplAstElement as TmplAstElement2, TmplAstForLoopBlock, TmplAstIcu, TmplAstIfBlock, TmplAstIfBlockBranch, TmplAstLetDeclaration as TmplAstLetDeclaration2, TmplAstReference as TmplAstReference2, TmplAstSwitchBlock, TmplAstTemplate, TmplAstText, TmplAstTextAttribute as TmplAstTextAttribute2, TmplAstVariable, TmplAstHostElement as TmplAstHostElement2, TransplantedType } from "@angular/compiler";
8752
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/type_check_block.mjs
8753
+ import { BindingPipe, BindingType as BindingType2, Call as Call3, createCssSelectorFromNode, CssSelector as CssSelector3, DYNAMIC_TYPE, ImplicitReceiver as ImplicitReceiver3, ParsedEventType as ParsedEventType2, PropertyRead as PropertyRead4, PropertyWrite as PropertyWrite2, R3Identifiers as R3Identifiers3, SafeCall as SafeCall2, SafePropertyRead as SafePropertyRead3, SelectorMatcher as SelectorMatcher2, ThisReceiver as ThisReceiver2, TmplAstBoundAttribute as TmplAstBoundAttribute2, TmplAstBoundText, TmplAstContent, TmplAstDeferredBlock, TmplAstElement as TmplAstElement2, TmplAstForLoopBlock, TmplAstIcu, TmplAstIfBlock, TmplAstIfBlockBranch, TmplAstLetDeclaration as TmplAstLetDeclaration2, TmplAstReference as TmplAstReference2, TmplAstSwitchBlock, TmplAstTemplate, TmplAstText, TmplAstTextAttribute as TmplAstTextAttribute2, TmplAstVariable, TmplAstHostElement as TmplAstHostElement2, TransplantedType, TmplAstComponent as TmplAstComponent2, TmplAstDirective as TmplAstDirective2 } from "@angular/compiler";
8725
8754
  import ts39 from "typescript";
8726
8755
 
8727
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/diagnostics.mjs
8756
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/diagnostics.mjs
8728
8757
  import { AbsoluteSourceSpan as AbsoluteSourceSpan4 } from "@angular/compiler";
8729
8758
  import ts37 from "typescript";
8730
8759
  function wrapForDiagnostics(expr) {
@@ -8780,7 +8809,7 @@ function translateDiagnostic(diagnostic, resolver) {
8780
8809
  return makeTemplateDiagnostic(sourceLocation.id, templateSourceMapping, span, diagnostic.category, diagnostic.code, diagnostic.messageText);
8781
8810
  }
8782
8811
 
8783
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/expression.mjs
8812
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/expression.mjs
8784
8813
  import { ASTWithSource, Call as Call2, EmptyExpr as EmptyExpr2, PropertyRead as PropertyRead3, SafeKeyedRead, SafePropertyRead as SafePropertyRead2 } from "@angular/compiler";
8785
8814
  import ts38 from "typescript";
8786
8815
  var ANY_EXPRESSION = ts38.factory.createAsExpression(ts38.factory.createNumericLiteral("0"), ts38.factory.createKeywordTypeNode(ts38.SyntaxKind.AnyKeyword));
@@ -8808,7 +8837,8 @@ var BINARY_OPS = /* @__PURE__ */ new Map([
8808
8837
  ["&&", ts38.SyntaxKind.AmpersandAmpersandToken],
8809
8838
  ["&", ts38.SyntaxKind.AmpersandToken],
8810
8839
  ["|", ts38.SyntaxKind.BarToken],
8811
- ["??", ts38.SyntaxKind.QuestionQuestionToken]
8840
+ ["??", ts38.SyntaxKind.QuestionQuestionToken],
8841
+ ["in", ts38.SyntaxKind.InKeyword]
8812
8842
  ]);
8813
8843
  function astToTypescript(ast, maybeResolve, config) {
8814
8844
  const translator = new AstTranslator(maybeResolve, config);
@@ -9173,7 +9203,7 @@ var _VeSafeLhsInferenceBugDetector = class {
9173
9203
  var VeSafeLhsInferenceBugDetector = _VeSafeLhsInferenceBugDetector;
9174
9204
  __publicField(VeSafeLhsInferenceBugDetector, "SINGLETON", new _VeSafeLhsInferenceBugDetector());
9175
9205
 
9176
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/type_check_block.mjs
9206
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/type_check_block.mjs
9177
9207
  var TcbGenericContextBehavior;
9178
9208
  (function(TcbGenericContextBehavior2) {
9179
9209
  TcbGenericContextBehavior2[TcbGenericContextBehavior2["UseEmitter"] = 0] = "UseEmitter";
@@ -9352,42 +9382,12 @@ var TcbTemplateBodyOp = class extends TcbOp {
9352
9382
  return false;
9353
9383
  }
9354
9384
  execute() {
9385
+ let guard = null;
9355
9386
  const directiveGuards = [];
9356
- const directives = this.tcb.boundTarget.getDirectivesOfNode(this.template);
9357
- if (directives !== null) {
9358
- for (const dir of directives) {
9359
- const dirInstId = this.scope.resolve(this.template, dir);
9360
- const dirId = this.tcb.env.reference(dir.ref);
9361
- dir.ngTemplateGuards.forEach((guard2) => {
9362
- const boundInput = this.template.inputs.find((i) => i.name === guard2.inputName) || this.template.templateAttrs.find((i) => i instanceof TmplAstBoundAttribute2 && i.name === guard2.inputName);
9363
- if (boundInput !== void 0) {
9364
- const expr = tcbExpression(boundInput.value, this.tcb, this.scope);
9365
- markIgnoreDiagnostics(expr);
9366
- if (guard2.type === "binding") {
9367
- directiveGuards.push(expr);
9368
- } else {
9369
- const guardInvoke = tsCallMethod(dirId, `ngTemplateGuard_${guard2.inputName}`, [
9370
- dirInstId,
9371
- expr
9372
- ]);
9373
- addParseSpanInfo(guardInvoke, boundInput.value.sourceSpan);
9374
- directiveGuards.push(guardInvoke);
9375
- }
9376
- }
9377
- });
9378
- if (dir.hasNgTemplateContextGuard) {
9379
- if (this.tcb.env.config.applyTemplateContextGuards) {
9380
- const ctx = this.scope.resolve(this.template);
9381
- const guardInvoke = tsCallMethod(dirId, "ngTemplateContextGuard", [dirInstId, ctx]);
9382
- addParseSpanInfo(guardInvoke, this.template.sourceSpan);
9383
- directiveGuards.push(guardInvoke);
9384
- } else if (this.template.variables.length > 0 && this.tcb.env.config.suggestionsForSuboptimalTypeInference) {
9385
- this.tcb.oobRecorder.suboptimalTypeInference(this.tcb.id, this.template.variables);
9386
- }
9387
- }
9388
- }
9387
+ this.addDirectiveGuards(directiveGuards, this.template, this.tcb.boundTarget.getDirectivesOfNode(this.template));
9388
+ for (const directive of this.template.directives) {
9389
+ this.addDirectiveGuards(directiveGuards, directive, this.tcb.boundTarget.getDirectivesOfNode(directive));
9389
9390
  }
9390
- let guard = null;
9391
9391
  if (directiveGuards.length > 0) {
9392
9392
  guard = directiveGuards.reduce((expr, dirGuard) => ts39.factory.createBinaryExpression(expr, ts39.SyntaxKind.AmpersandAmpersandToken, dirGuard), directiveGuards.pop());
9393
9393
  }
@@ -9406,6 +9406,45 @@ var TcbTemplateBodyOp = class extends TcbOp {
9406
9406
  this.scope.addStatement(tmplBlock);
9407
9407
  return null;
9408
9408
  }
9409
+ addDirectiveGuards(guards, hostNode, directives) {
9410
+ if (directives === null || directives.length === 0) {
9411
+ return;
9412
+ }
9413
+ const isTemplate = hostNode instanceof TmplAstTemplate;
9414
+ for (const dir of directives) {
9415
+ const dirInstId = this.scope.resolve(hostNode, dir);
9416
+ const dirId = this.tcb.env.reference(dir.ref);
9417
+ dir.ngTemplateGuards.forEach((guard) => {
9418
+ const boundInput = hostNode.inputs.find((i) => i.name === guard.inputName) || (isTemplate ? hostNode.templateAttrs.find((input) => {
9419
+ return input instanceof TmplAstBoundAttribute2 && input.name === guard.inputName;
9420
+ }) : void 0);
9421
+ if (boundInput !== void 0) {
9422
+ const expr = tcbExpression(boundInput.value, this.tcb, this.scope);
9423
+ markIgnoreDiagnostics(expr);
9424
+ if (guard.type === "binding") {
9425
+ guards.push(expr);
9426
+ } else {
9427
+ const guardInvoke = tsCallMethod(dirId, `ngTemplateGuard_${guard.inputName}`, [
9428
+ dirInstId,
9429
+ expr
9430
+ ]);
9431
+ addParseSpanInfo(guardInvoke, boundInput.value.sourceSpan);
9432
+ guards.push(guardInvoke);
9433
+ }
9434
+ }
9435
+ });
9436
+ if (dir.hasNgTemplateContextGuard) {
9437
+ if (this.tcb.env.config.applyTemplateContextGuards) {
9438
+ const ctx = this.scope.resolve(hostNode);
9439
+ const guardInvoke = tsCallMethod(dirId, "ngTemplateContextGuard", [dirInstId, ctx]);
9440
+ addParseSpanInfo(guardInvoke, hostNode.sourceSpan);
9441
+ guards.push(guardInvoke);
9442
+ } else if (isTemplate && hostNode.variables.length > 0 && this.tcb.env.config.suggestionsForSuboptimalTypeInference) {
9443
+ this.tcb.oobRecorder.suboptimalTypeInference(this.tcb.id, hostNode.variables);
9444
+ }
9445
+ }
9446
+ }
9447
+ }
9409
9448
  };
9410
9449
  var TcbExpressionOp = class extends TcbOp {
9411
9450
  tcb;
@@ -9575,7 +9614,7 @@ var TcbDirectiveCtorOp = class extends TcbOp {
9575
9614
  return id;
9576
9615
  }
9577
9616
  circularFallback() {
9578
- return new TcbDirectiveCtorCircularFallbackOp(this.tcb, this.scope, this.node, this.dir);
9617
+ return new TcbDirectiveCtorCircularFallbackOp(this.tcb, this.scope, this.dir);
9579
9618
  }
9580
9619
  };
9581
9620
  var TcbDirectiveInputsOp = class extends TcbOp {
@@ -9679,13 +9718,11 @@ var TcbDirectiveInputsOp = class extends TcbOp {
9679
9718
  var TcbDirectiveCtorCircularFallbackOp = class extends TcbOp {
9680
9719
  tcb;
9681
9720
  scope;
9682
- node;
9683
9721
  dir;
9684
- constructor(tcb, scope, node, dir) {
9722
+ constructor(tcb, scope, dir) {
9685
9723
  super();
9686
9724
  this.tcb = tcb;
9687
9725
  this.scope = scope;
9688
- this.node = node;
9689
9726
  this.dir = dir;
9690
9727
  }
9691
9728
  get optional() {
@@ -9721,10 +9758,10 @@ var TcbDomSchemaCheckerOp = class extends TcbOp {
9721
9758
  execute() {
9722
9759
  var _a, _b;
9723
9760
  const element = this.element;
9724
- const isTemplateElement = element instanceof TmplAstElement2;
9761
+ const isTemplateElement = element instanceof TmplAstElement2 || element instanceof TmplAstComponent2;
9725
9762
  const bindings = isTemplateElement ? element.inputs : element.bindings;
9726
9763
  if (this.checkElement && isTemplateElement) {
9727
- this.tcb.domSchemaChecker.checkElement(this.tcb.id, element, this.tcb.schemas, this.tcb.hostIsStandalone);
9764
+ this.tcb.domSchemaChecker.checkElement(this.tcb.id, this.getTagName(element), element.startSourceSpan, this.tcb.schemas, this.tcb.hostIsStandalone);
9728
9765
  }
9729
9766
  for (const binding of bindings) {
9730
9767
  const isPropertyBinding = binding.type === BindingType2.Property || binding.type === BindingType2.TwoWay;
@@ -9734,7 +9771,7 @@ var TcbDomSchemaCheckerOp = class extends TcbOp {
9734
9771
  if (isPropertyBinding && binding.name !== "style" && binding.name !== "class") {
9735
9772
  const propertyName = (_b = ATTR_TO_PROP.get(binding.name)) != null ? _b : binding.name;
9736
9773
  if (isTemplateElement) {
9737
- this.tcb.domSchemaChecker.checkTemplateElementProperty(this.tcb.id, element, propertyName, binding.sourceSpan, this.tcb.schemas, this.tcb.hostIsStandalone);
9774
+ this.tcb.domSchemaChecker.checkTemplateElementProperty(this.tcb.id, this.getTagName(element), propertyName, binding.sourceSpan, this.tcb.schemas, this.tcb.hostIsStandalone);
9738
9775
  } else {
9739
9776
  this.tcb.domSchemaChecker.checkHostElementProperty(this.tcb.id, element, propertyName, binding.keySpan, this.tcb.schemas);
9740
9777
  }
@@ -9742,6 +9779,9 @@ var TcbDomSchemaCheckerOp = class extends TcbOp {
9742
9779
  }
9743
9780
  return null;
9744
9781
  }
9782
+ getTagName(node) {
9783
+ return node instanceof TmplAstElement2 ? node.name : getComponentTagName(node);
9784
+ }
9745
9785
  };
9746
9786
  var TcbControlFlowContentProjectionOp = class extends TcbOp {
9747
9787
  tcb;
@@ -9840,6 +9880,25 @@ var TcbHostElementOp = class extends TcbOp {
9840
9880
  return id;
9841
9881
  }
9842
9882
  };
9883
+ var TcbComponentNodeOp = class extends TcbOp {
9884
+ tcb;
9885
+ scope;
9886
+ component;
9887
+ optional = true;
9888
+ constructor(tcb, scope, component) {
9889
+ super();
9890
+ this.tcb = tcb;
9891
+ this.scope = scope;
9892
+ this.component = component;
9893
+ }
9894
+ execute() {
9895
+ const id = this.tcb.allocateId();
9896
+ const initializer = tsCreateElement(getComponentTagName(this.component));
9897
+ addParseSpanInfo(initializer, this.component.startSourceSpan || this.component.sourceSpan);
9898
+ this.scope.addStatement(tsCreateVariable(id, initializer));
9899
+ return id;
9900
+ }
9901
+ };
9843
9902
  var ATTR_TO_PROP = new Map(Object.entries({
9844
9903
  "class": "className",
9845
9904
  "for": "htmlFor",
@@ -10252,6 +10311,7 @@ var _Scope = class {
10252
10311
  opQueue = [];
10253
10312
  elementOpMap = /* @__PURE__ */ new Map();
10254
10313
  hostElementOpMap = /* @__PURE__ */ new Map();
10314
+ componentNodeOpMap = /* @__PURE__ */ new Map();
10255
10315
  directiveOpMap = /* @__PURE__ */ new Map();
10256
10316
  referenceOpMap = /* @__PURE__ */ new Map();
10257
10317
  templateCtxOpMap = /* @__PURE__ */ new Map();
@@ -10377,15 +10437,13 @@ var _Scope = class {
10377
10437
  return typeof opIndexOrNode === "number" ? this.resolveOp(opIndexOrNode) : opIndexOrNode;
10378
10438
  } else if (ref instanceof TmplAstTemplate && directive === void 0 && this.templateCtxOpMap.has(ref)) {
10379
10439
  return this.resolveOp(this.templateCtxOpMap.get(ref));
10380
- } else if ((ref instanceof TmplAstElement2 || ref instanceof TmplAstTemplate) && directive !== void 0 && this.directiveOpMap.has(ref)) {
10440
+ } else if ((ref instanceof TmplAstElement2 || ref instanceof TmplAstTemplate || ref instanceof TmplAstComponent2 || ref instanceof TmplAstDirective2) && directive !== void 0 && this.directiveOpMap.has(ref)) {
10381
10441
  const dirMap = this.directiveOpMap.get(ref);
10382
- if (dirMap.has(directive)) {
10383
- return this.resolveOp(dirMap.get(directive));
10384
- } else {
10385
- return null;
10386
- }
10442
+ return dirMap.has(directive) ? this.resolveOp(dirMap.get(directive)) : null;
10387
10443
  } else if (ref instanceof TmplAstElement2 && this.elementOpMap.has(ref)) {
10388
10444
  return this.resolveOp(this.elementOpMap.get(ref));
10445
+ } else if (ref instanceof TmplAstComponent2 && this.componentNodeOpMap.has(ref)) {
10446
+ return this.resolveOp(this.componentNodeOpMap.get(ref));
10389
10447
  } else if (ref instanceof TmplAstHostElement2 && this.hostElementOpMap.has(ref)) {
10390
10448
  return this.resolveOp(this.hostElementOpMap.get(ref));
10391
10449
  } else {
@@ -10419,13 +10477,15 @@ var _Scope = class {
10419
10477
  if (this.tcb.env.config.controlFlowPreventingContentProjection !== "suppress") {
10420
10478
  this.appendContentProjectionCheckOp(node);
10421
10479
  }
10422
- this.appendDirectivesAndInputsOfNode(node);
10423
- this.appendOutputsOfNode(node);
10480
+ this.appendDirectivesAndInputsOfElementLikeNode(node);
10481
+ this.appendOutputsOfElementLikeNode(node);
10482
+ this.appendSelectorlessDirectives(node);
10424
10483
  this.appendChildren(node);
10425
10484
  this.checkAndAppendReferencesOfNode(node);
10426
10485
  } else if (node instanceof TmplAstTemplate) {
10427
- this.appendDirectivesAndInputsOfNode(node);
10428
- this.appendOutputsOfNode(node);
10486
+ this.appendDirectivesAndInputsOfElementLikeNode(node);
10487
+ this.appendOutputsOfElementLikeNode(node);
10488
+ this.appendSelectorlessDirectives(node);
10429
10489
  const ctxIndex = this.opQueue.push(new TcbTemplateContextOp(this.tcb, this)) - 1;
10430
10490
  this.templateCtxOpMap.set(node, ctxIndex);
10431
10491
  if (this.tcb.env.config.checkTemplateBodies) {
@@ -10434,6 +10494,8 @@ var _Scope = class {
10434
10494
  this.appendDeepSchemaChecks(node.children);
10435
10495
  }
10436
10496
  this.checkAndAppendReferencesOfNode(node);
10497
+ } else if (node instanceof TmplAstComponent2) {
10498
+ this.appendComponentNode(node);
10437
10499
  } else if (node instanceof TmplAstDeferredBlock) {
10438
10500
  this.appendDeferredBlock(node);
10439
10501
  } else if (node instanceof TmplAstIfBlock) {
@@ -10482,7 +10544,7 @@ var _Scope = class {
10482
10544
  this.referenceOpMap.set(ref, ctxIndex);
10483
10545
  }
10484
10546
  }
10485
- appendDirectivesAndInputsOfNode(node) {
10547
+ appendDirectivesAndInputsOfElementLikeNode(node) {
10486
10548
  const claimedInputs = /* @__PURE__ */ new Set();
10487
10549
  const directives = this.tcb.boundTarget.getDirectivesOfNode(node);
10488
10550
  if (directives === null || directives.length === 0) {
@@ -10490,29 +10552,16 @@ var _Scope = class {
10490
10552
  this.opQueue.push(new TcbUnclaimedInputsOp(this.tcb, this, node.inputs, node, claimedInputs), new TcbDomSchemaCheckerOp(this.tcb, node, true, claimedInputs));
10491
10553
  }
10492
10554
  return;
10493
- } else {
10494
- if (node instanceof TmplAstElement2) {
10495
- const isDeferred = this.tcb.boundTarget.isDeferred(node);
10496
- if (!isDeferred && directives.some((dirMeta) => dirMeta.isExplicitlyDeferred)) {
10497
- this.tcb.oobRecorder.deferredComponentUsedEagerly(this.tcb.id, node);
10498
- }
10555
+ }
10556
+ if (node instanceof TmplAstElement2) {
10557
+ const isDeferred = this.tcb.boundTarget.isDeferred(node);
10558
+ if (!isDeferred && directives.some((dirMeta) => dirMeta.isExplicitlyDeferred)) {
10559
+ this.tcb.oobRecorder.deferredComponentUsedEagerly(this.tcb.id, node);
10499
10560
  }
10500
10561
  }
10501
10562
  const dirMap = /* @__PURE__ */ new Map();
10502
10563
  for (const dir of directives) {
10503
- let directiveOp;
10504
- const host = this.tcb.env.reflector;
10505
- const dirRef = dir.ref;
10506
- if (!dir.isGeneric) {
10507
- directiveOp = new TcbNonGenericDirectiveTypeOp(this.tcb, this, node, dir);
10508
- } else if (!requiresInlineTypeCtor(dirRef.node, host, this.tcb.env) || this.tcb.env.config.useInlineTypeConstructors) {
10509
- directiveOp = new TcbDirectiveCtorOp(this.tcb, this, node, dir);
10510
- } else {
10511
- directiveOp = new TcbGenericDirectiveTypeWithAnyParamsOp(this.tcb, this, node, dir);
10512
- }
10513
- const dirIndex = this.opQueue.push(directiveOp) - 1;
10514
- dirMap.set(dir, dirIndex);
10515
- this.opQueue.push(new TcbDirectiveInputsOp(this.tcb, this, node, dir));
10564
+ this.appendDirectiveInputs(dir, node, dirMap);
10516
10565
  }
10517
10566
  this.directiveOpMap.set(node, dirMap);
10518
10567
  if (node instanceof TmplAstElement2) {
@@ -10526,7 +10575,7 @@ var _Scope = class {
10526
10575
  this.opQueue.push(new TcbDomSchemaCheckerOp(this.tcb, node, checkElement, claimedInputs));
10527
10576
  }
10528
10577
  }
10529
- appendOutputsOfNode(node) {
10578
+ appendOutputsOfElementLikeNode(node) {
10530
10579
  const claimedOutputs = /* @__PURE__ */ new Set();
10531
10580
  const directives = this.tcb.boundTarget.getDirectivesOfNode(node);
10532
10581
  if (directives === null || directives.length === 0) {
@@ -10547,6 +10596,87 @@ var _Scope = class {
10547
10596
  this.opQueue.push(new TcbUnclaimedOutputsOp(this.tcb, this, node, node.outputs, node.inputs, claimedOutputs));
10548
10597
  }
10549
10598
  }
10599
+ appendInputsOfSelectorlessNode(node) {
10600
+ const directives = this.tcb.boundTarget.getDirectivesOfNode(node);
10601
+ const claimedInputs = /* @__PURE__ */ new Set();
10602
+ if (directives !== null && directives.length > 0) {
10603
+ const dirMap = /* @__PURE__ */ new Map();
10604
+ for (const dir of directives) {
10605
+ this.appendDirectiveInputs(dir, node, dirMap);
10606
+ for (const propertyName of dir.inputs.propertyNames) {
10607
+ claimedInputs.add(propertyName);
10608
+ }
10609
+ }
10610
+ this.directiveOpMap.set(node, dirMap);
10611
+ }
10612
+ if (node instanceof TmplAstDirective2) {
10613
+ for (const input of node.inputs) {
10614
+ if (!claimedInputs.has(input.name)) {
10615
+ this.tcb.oobRecorder.unclaimedDirectiveBinding(this.tcb.id, node, input);
10616
+ }
10617
+ }
10618
+ for (const attr of node.attributes) {
10619
+ if (!claimedInputs.has(attr.name)) {
10620
+ this.tcb.oobRecorder.unclaimedDirectiveBinding(this.tcb.id, node, attr);
10621
+ }
10622
+ }
10623
+ } else {
10624
+ const checkElement = node.tagName !== null;
10625
+ this.opQueue.push(new TcbUnclaimedInputsOp(this.tcb, this, node.inputs, node, claimedInputs), new TcbDomSchemaCheckerOp(this.tcb, node, checkElement, claimedInputs));
10626
+ }
10627
+ }
10628
+ appendOutputsOfSelectorlessNode(node) {
10629
+ const directives = this.tcb.boundTarget.getDirectivesOfNode(node);
10630
+ const claimedOutputs = /* @__PURE__ */ new Set();
10631
+ if (directives !== null && directives.length > 0) {
10632
+ for (const dir of directives) {
10633
+ this.opQueue.push(new TcbDirectiveOutputsOp(this.tcb, this, node, dir));
10634
+ for (const outputProperty of dir.outputs.propertyNames) {
10635
+ claimedOutputs.add(outputProperty);
10636
+ }
10637
+ }
10638
+ }
10639
+ if (node instanceof TmplAstDirective2) {
10640
+ for (const output of node.outputs) {
10641
+ if (!claimedOutputs.has(output.name)) {
10642
+ this.tcb.oobRecorder.unclaimedDirectiveBinding(this.tcb.id, node, output);
10643
+ }
10644
+ }
10645
+ } else {
10646
+ this.opQueue.push(new TcbUnclaimedOutputsOp(this.tcb, this, node, node.outputs, node.inputs, claimedOutputs));
10647
+ }
10648
+ }
10649
+ appendDirectiveInputs(dir, node, dirMap) {
10650
+ let directiveOp;
10651
+ const host = this.tcb.env.reflector;
10652
+ const dirRef = dir.ref;
10653
+ if (!dir.isGeneric) {
10654
+ directiveOp = new TcbNonGenericDirectiveTypeOp(this.tcb, this, node, dir);
10655
+ } else if (!requiresInlineTypeCtor(dirRef.node, host, this.tcb.env) || this.tcb.env.config.useInlineTypeConstructors) {
10656
+ directiveOp = new TcbDirectiveCtorOp(this.tcb, this, node, dir);
10657
+ } else {
10658
+ directiveOp = new TcbGenericDirectiveTypeWithAnyParamsOp(this.tcb, this, node, dir);
10659
+ }
10660
+ const dirIndex = this.opQueue.push(directiveOp) - 1;
10661
+ dirMap.set(dir, dirIndex);
10662
+ this.opQueue.push(new TcbDirectiveInputsOp(this.tcb, this, node, dir));
10663
+ }
10664
+ appendSelectorlessDirectives(node) {
10665
+ for (const directive of node.directives) {
10666
+ if (!this.tcb.boundTarget.referencedDirectiveExists(directive.name)) {
10667
+ this.tcb.oobRecorder.missingNamedTemplateDependency(this.tcb.id, directive);
10668
+ continue;
10669
+ }
10670
+ const directives = this.tcb.boundTarget.getDirectivesOfNode(directive);
10671
+ if (directives === null || directives.length === 0 || directives.some((dir) => dir.isComponent)) {
10672
+ this.tcb.oobRecorder.incorrectTemplateDependencyType(this.tcb.id, directive);
10673
+ continue;
10674
+ }
10675
+ this.appendInputsOfSelectorlessNode(directive);
10676
+ this.appendOutputsOfSelectorlessNode(directive);
10677
+ this.checkAndAppendReferencesOfNode(directive);
10678
+ }
10679
+ }
10550
10680
  appendDeepSchemaChecks(nodes) {
10551
10681
  for (const node of nodes) {
10552
10682
  if (!(node instanceof TmplAstElement2 || node instanceof TmplAstTemplate)) {
@@ -10554,7 +10684,14 @@ var _Scope = class {
10554
10684
  }
10555
10685
  if (node instanceof TmplAstElement2) {
10556
10686
  const claimedInputs = /* @__PURE__ */ new Set();
10557
- const directives = this.tcb.boundTarget.getDirectivesOfNode(node);
10687
+ let directives = this.tcb.boundTarget.getDirectivesOfNode(node);
10688
+ for (const dirNode of node.directives) {
10689
+ const directiveResults = this.tcb.boundTarget.getDirectivesOfNode(dirNode);
10690
+ if (directiveResults !== null && directiveResults.length > 0) {
10691
+ directives != null ? directives : directives = [];
10692
+ directives.push(...directiveResults);
10693
+ }
10694
+ }
10558
10695
  let hasDirectives;
10559
10696
  if (directives === null || directives.length === 0) {
10560
10697
  hasDirectives = false;
@@ -10591,6 +10728,27 @@ var _Scope = class {
10591
10728
  }
10592
10729
  }
10593
10730
  }
10731
+ appendComponentNode(node) {
10732
+ if (!this.tcb.boundTarget.referencedDirectiveExists(node.componentName)) {
10733
+ this.tcb.oobRecorder.missingNamedTemplateDependency(this.tcb.id, node);
10734
+ return;
10735
+ }
10736
+ const directives = this.tcb.boundTarget.getDirectivesOfNode(node);
10737
+ if (directives === null || directives.length === 0 || directives.every((dir) => !dir.isComponent)) {
10738
+ this.tcb.oobRecorder.incorrectTemplateDependencyType(this.tcb.id, node);
10739
+ return;
10740
+ }
10741
+ const opIndex = this.opQueue.push(new TcbComponentNodeOp(this.tcb, this, node)) - 1;
10742
+ this.componentNodeOpMap.set(node, opIndex);
10743
+ if (this.tcb.env.config.controlFlowPreventingContentProjection !== "suppress") {
10744
+ this.appendContentProjectionCheckOp(node);
10745
+ }
10746
+ this.appendInputsOfSelectorlessNode(node);
10747
+ this.appendOutputsOfSelectorlessNode(node);
10748
+ this.appendSelectorlessDirectives(node);
10749
+ this.appendChildren(node);
10750
+ this.checkAndAppendReferencesOfNode(node);
10751
+ }
10594
10752
  appendDeferredBlock(block) {
10595
10753
  this.appendDeferredTriggers(block, block.triggers);
10596
10754
  this.appendDeferredTriggers(block, block.prefetchTriggers);
@@ -10930,8 +11088,11 @@ var TcbForLoopTrackTranslator = class extends TcbExpressionTranslator {
10930
11088
  return super.resolve(ast);
10931
11089
  }
10932
11090
  };
11091
+ function getComponentTagName(node) {
11092
+ return node.tagName || "ng-component";
11093
+ }
10933
11094
 
10934
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/type_check_file.mjs
11095
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/type_check_file.mjs
10935
11096
  import ts40 from "typescript";
10936
11097
  var TypeCheckFile = class extends Environment {
10937
11098
  fileName;
@@ -10980,7 +11141,7 @@ var TypeCheckFile = class extends Environment {
10980
11141
  }
10981
11142
  };
10982
11143
 
10983
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/context.mjs
11144
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/context.mjs
10984
11145
  var InliningMode;
10985
11146
  (function(InliningMode2) {
10986
11147
  InliningMode2[InliningMode2["InlineOps"] = 0] = "InlineOps";
@@ -11265,10 +11426,10 @@ var TypeCtorOp = class {
11265
11426
  }
11266
11427
  };
11267
11428
 
11268
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/source.mjs
11429
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/source.mjs
11269
11430
  import { ParseLocation as ParseLocation2, ParseSourceSpan as ParseSourceSpan2 } from "@angular/compiler";
11270
11431
 
11271
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/line_mappings.mjs
11432
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/line_mappings.mjs
11272
11433
  var LF_CHAR = 10;
11273
11434
  var CR_CHAR = 13;
11274
11435
  var LINE_SEP_CHAR = 8232;
@@ -11309,7 +11470,7 @@ function findClosestLineStartPosition(linesMap, position, low = 0, high = linesM
11309
11470
  return low - 1;
11310
11471
  }
11311
11472
 
11312
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/source.mjs
11473
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/source.mjs
11313
11474
  var Source = class {
11314
11475
  mapping;
11315
11476
  file;
@@ -11375,8 +11536,8 @@ var DirectiveSourceManager = class {
11375
11536
  }
11376
11537
  };
11377
11538
 
11378
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/template_symbol_builder.mjs
11379
- import { AST, ASTWithName as ASTWithName2, ASTWithSource as ASTWithSource2, BindingPipe as BindingPipe2, PropertyRead as PropertyRead5, PropertyWrite as PropertyWrite3, R3Identifiers as R3Identifiers4, SafePropertyRead as SafePropertyRead4, TmplAstBoundAttribute as TmplAstBoundAttribute3, TmplAstBoundEvent as TmplAstBoundEvent2, TmplAstElement as TmplAstElement3, TmplAstLetDeclaration as TmplAstLetDeclaration3, TmplAstReference as TmplAstReference3, TmplAstTemplate as TmplAstTemplate2, TmplAstTextAttribute as TmplAstTextAttribute3, TmplAstVariable as TmplAstVariable2 } from "@angular/compiler";
11539
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/template_symbol_builder.mjs
11540
+ import { AST, ASTWithName as ASTWithName2, ASTWithSource as ASTWithSource2, BindingPipe as BindingPipe2, PropertyRead as PropertyRead5, PropertyWrite as PropertyWrite3, R3Identifiers as R3Identifiers4, SafePropertyRead as SafePropertyRead4, TmplAstBoundAttribute as TmplAstBoundAttribute3, TmplAstBoundEvent as TmplAstBoundEvent3, TmplAstElement as TmplAstElement3, TmplAstLetDeclaration as TmplAstLetDeclaration3, TmplAstReference as TmplAstReference3, TmplAstTemplate as TmplAstTemplate2, TmplAstTextAttribute as TmplAstTextAttribute3, TmplAstVariable as TmplAstVariable2 } from "@angular/compiler";
11380
11541
  import ts42 from "typescript";
11381
11542
  var SymbolBuilder = class {
11382
11543
  tcbPath;
@@ -11401,7 +11562,7 @@ var SymbolBuilder = class {
11401
11562
  let symbol = null;
11402
11563
  if (node instanceof TmplAstBoundAttribute3 || node instanceof TmplAstTextAttribute3) {
11403
11564
  symbol = this.getSymbolOfInputBinding(node);
11404
- } else if (node instanceof TmplAstBoundEvent2) {
11565
+ } else if (node instanceof TmplAstBoundEvent3) {
11405
11566
  symbol = this.getSymbolOfBoundEvent(node);
11406
11567
  } else if (node instanceof TmplAstElement3) {
11407
11568
  symbol = this.getSymbolOfElement(node);
@@ -11536,7 +11697,24 @@ var SymbolBuilder = class {
11536
11697
  if (directives === null) {
11537
11698
  return null;
11538
11699
  }
11539
- return (_a = directives.find((m) => m.ref.node === directiveDeclaration)) != null ? _a : null;
11700
+ const directive = directives.find((m) => m.ref.node === directiveDeclaration);
11701
+ if (directive) {
11702
+ return directive;
11703
+ }
11704
+ const originalFile = directiveDeclaration.getSourceFile()[NgOriginalFile];
11705
+ if (originalFile !== void 0) {
11706
+ const hasPotentialCandidate = directives.find((m) => {
11707
+ var _a2;
11708
+ return m.ref.node.name.text === ((_a2 = directiveDeclaration.name) == null ? void 0 : _a2.text);
11709
+ });
11710
+ if (hasPotentialCandidate) {
11711
+ const classWithSameName = findMatchingDirective(originalFile, directiveDeclaration);
11712
+ if (classWithSameName !== null) {
11713
+ return (_a = directives.find((m) => m.ref.node === classWithSameName)) != null ? _a : null;
11714
+ }
11715
+ }
11716
+ }
11717
+ return null;
11540
11718
  }
11541
11719
  getDirectiveModule(declaration) {
11542
11720
  const scope = this.componentScopeReader.getScopeForComponent(declaration);
@@ -11956,8 +12134,27 @@ function unwrapSignalInputWriteTAccessor(expr) {
11956
12134
  typeExpr: expr
11957
12135
  };
11958
12136
  }
12137
+ function findMatchingDirective(originalSourceFile, directiveDeclarationInTypeCheckSourceFile) {
12138
+ var _a, _b, _c;
12139
+ const className = (_b = (_a = directiveDeclarationInTypeCheckSourceFile.name) == null ? void 0 : _a.text) != null ? _b : "";
12140
+ const ogClasses = collectClassesWithName(originalSourceFile, className);
12141
+ const typecheckClasses = collectClassesWithName(directiveDeclarationInTypeCheckSourceFile.getSourceFile(), className);
12142
+ return (_c = ogClasses[typecheckClasses.indexOf(directiveDeclarationInTypeCheckSourceFile)]) != null ? _c : null;
12143
+ }
12144
+ function collectClassesWithName(sourceFile, className) {
12145
+ const classes = [];
12146
+ function visit2(node) {
12147
+ var _a;
12148
+ if (ts42.isClassDeclaration(node) && ((_a = node.name) == null ? void 0 : _a.text) === className) {
12149
+ classes.push(node);
12150
+ }
12151
+ ts42.forEachChild(node, visit2);
12152
+ }
12153
+ sourceFile.forEachChild(visit2);
12154
+ return classes;
12155
+ }
11959
12156
 
11960
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/checker.mjs
12157
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/typecheck/src/checker.mjs
11961
12158
  var REGISTRY2 = new DomElementSchemaRegistry2();
11962
12159
  var TemplateTypeCheckerImpl = class {
11963
12160
  originalProgram;
@@ -12684,7 +12881,7 @@ var SingleShimTypeCheckingHost = class extends SingleFileTypeCheckingHost {
12684
12881
  }
12685
12882
  };
12686
12883
 
12687
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/directive/src/handler.mjs
12884
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/directive/src/handler.mjs
12688
12885
  var FIELD_DECORATORS = [
12689
12886
  "Input",
12690
12887
  "Output",
@@ -12943,11 +13140,11 @@ var DirectiveDecoratorHandler = class {
12943
13140
  }
12944
13141
  };
12945
13142
 
12946
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/ng_module/src/handler.mjs
13143
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/ng_module/src/handler.mjs
12947
13144
  import { compileClassMetadata as compileClassMetadata2, compileDeclareClassMetadata as compileDeclareClassMetadata2, compileDeclareInjectorFromMetadata, compileDeclareNgModuleFromMetadata, compileInjector, compileNgModule, ExternalExpr as ExternalExpr7, FactoryTarget as FactoryTarget2, FunctionExpr, InvokeFunctionExpr, LiteralArrayExpr as LiteralArrayExpr2, R3Identifiers as R3Identifiers5, R3NgModuleMetadataKind, R3SelectorScopeMode, ReturnStatement, WrappedNodeExpr as WrappedNodeExpr9 } from "@angular/compiler";
12948
13145
  import ts45 from "typescript";
12949
13146
 
12950
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/ng_module/src/module_with_providers.mjs
13147
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/ng_module/src/module_with_providers.mjs
12951
13148
  import ts44 from "typescript";
12952
13149
  function createModuleWithProvidersResolver(reflector, isCore) {
12953
13150
  function _reflectModuleFromTypeParam(type, node) {
@@ -13019,7 +13216,7 @@ function isResolvedModuleWithProviders(sv) {
13019
13216
  return typeof sv.value === "object" && sv.value != null && sv.value.hasOwnProperty("ngModule") && sv.value.hasOwnProperty("mwpCall");
13020
13217
  }
13021
13218
 
13022
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/ng_module/src/handler.mjs
13219
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/ng_module/src/handler.mjs
13023
13220
  var NgModuleSymbol = class extends SemanticSymbol {
13024
13221
  hasProviders;
13025
13222
  remotelyScopedComponents = [];
@@ -13660,7 +13857,7 @@ function isSyntheticReference(ref) {
13660
13857
  return ref.synthetic;
13661
13858
  }
13662
13859
 
13663
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/component/src/diagnostics.mjs
13860
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/component/src/diagnostics.mjs
13664
13861
  function makeCyclicImportInfo(ref, type, cycle) {
13665
13862
  const name = ref.debugName || "(unknown)";
13666
13863
  const path = cycle.getPath().map((sf) => sf.fileName).join(" -> ");
@@ -13683,7 +13880,7 @@ function checkCustomElementSelectorForErrors(selector) {
13683
13880
  return null;
13684
13881
  }
13685
13882
 
13686
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/component/src/resources.mjs
13883
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/component/src/resources.mjs
13687
13884
  import { DEFAULT_INTERPOLATION_CONFIG, InterpolationConfig, ParseSourceFile as ParseSourceFile3, parseTemplate } from "@angular/compiler";
13688
13885
  import ts46 from "typescript";
13689
13886
  function getTemplateDeclarationNodeForError(declaration) {
@@ -13801,7 +13998,8 @@ function parseExtractedTemplate(template, sourceStr, sourceParseRange, escapedSt
13801
13998
  alwaysAttemptHtmlToR3AstConversion: options.usePoisonedData,
13802
13999
  escapedString,
13803
14000
  enableBlockSyntax: options.enableBlockSyntax,
13804
- enableLetSyntax: options.enableLetSyntax
14001
+ enableLetSyntax: options.enableLetSyntax,
14002
+ enableSelectorless: options.enableSelectorless
13805
14003
  };
13806
14004
  const parsedTemplate = parseTemplate(sourceStr, sourceMapUrl != null ? sourceMapUrl : "", {
13807
14005
  ...commonParseOptions,
@@ -14057,7 +14255,7 @@ function _extractTemplateStyleUrls(template) {
14057
14255
  }));
14058
14256
  }
14059
14257
 
14060
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/component/src/symbol.mjs
14258
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/component/src/symbol.mjs
14061
14259
  var ComponentSymbol = class extends DirectiveSymbol {
14062
14260
  usedDirectives = [];
14063
14261
  usedPipes = [];
@@ -14089,7 +14287,7 @@ var ComponentSymbol = class extends DirectiveSymbol {
14089
14287
  }
14090
14288
  };
14091
14289
 
14092
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/component/src/util.mjs
14290
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/component/src/util.mjs
14093
14291
  import ts47 from "typescript";
14094
14292
  function collectAnimationNames(value, animationTriggerNames) {
14095
14293
  if (value instanceof Map) {
@@ -14180,10 +14378,10 @@ function isLikelyModuleWithProviders(value) {
14180
14378
  return false;
14181
14379
  }
14182
14380
 
14183
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/hmr/src/metadata.mjs
14381
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/hmr/src/metadata.mjs
14184
14382
  import { outputAst as o3 } from "@angular/compiler";
14185
14383
 
14186
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/hmr/src/extract_dependencies.mjs
14384
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/hmr/src/extract_dependencies.mjs
14187
14385
  import { outputAst as o2 } from "@angular/compiler";
14188
14386
  import ts48 from "typescript";
14189
14387
  function extractHmrDependencies(node, definition, factory, deferBlockMetadata, classMetadata, debugInfo, reflection, evaluator) {
@@ -14395,7 +14593,7 @@ function isConstEnumReference(node, reflection) {
14395
14593
  return declaration !== null && ts48.isEnumDeclaration(declaration.node) && !!((_a = declaration.node.modifiers) == null ? void 0 : _a.some((m) => m.kind === ts48.SyntaxKind.ConstKeyword));
14396
14594
  }
14397
14595
 
14398
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/hmr/src/metadata.mjs
14596
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/hmr/src/metadata.mjs
14399
14597
  import ts49 from "typescript";
14400
14598
  function extractHmrMetatadata(clazz, reflection, evaluator, compilerHost, rootDirs, definition, factory, deferBlockMetadata, classMetadata, debugInfo) {
14401
14599
  if (!reflection.isClass(clazz)) {
@@ -14417,7 +14615,7 @@ function extractHmrMetatadata(clazz, reflection, evaluator, compilerHost, rootDi
14417
14615
  return meta;
14418
14616
  }
14419
14617
 
14420
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/hmr/src/update_declaration.mjs
14618
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/hmr/src/update_declaration.mjs
14421
14619
  import { compileHmrUpdateCallback } from "@angular/compiler";
14422
14620
  import ts50 from "typescript";
14423
14621
  function getHmrUpdateDeclaration(compilationResults, constantStatements, meta, declaration) {
@@ -14454,7 +14652,7 @@ var HmrModuleImportRewriter = class {
14454
14652
  }
14455
14653
  };
14456
14654
 
14457
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/component/src/handler.mjs
14655
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/component/src/handler.mjs
14458
14656
  var EMPTY_ARRAY2 = [];
14459
14657
  var isUsedDirective = (decl) => decl.kind === R3TemplateDependencyKind.Directive;
14460
14658
  var isUsedPipe = (decl) => decl.kind === R3TemplateDependencyKind.Pipe;
@@ -14503,7 +14701,8 @@ var ComponentDecoratorHandler = class {
14503
14701
  enableHmr;
14504
14702
  implicitStandaloneValue;
14505
14703
  typeCheckHostBindings;
14506
- constructor(reflector, evaluator, metaRegistry, metaReader, scopeReader, compilerHost, scopeRegistry, typeCheckScopeRegistry, resourceRegistry, isCore, strictCtorDeps, resourceLoader, rootDirs, defaultPreserveWhitespaces, i18nUseExternalIds, enableI18nLegacyMessageIdFormat, usePoisonedData, i18nNormalizeLineEndingsInICUs, moduleResolver, cycleAnalyzer, cycleHandlingStrategy, refEmitter, referencesRegistry, depTracker, injectableRegistry, semanticDepGraphUpdater, annotateForClosureCompiler, perf, hostDirectivesResolver, importTracker, includeClassMetadata, compilationMode, deferredSymbolTracker, forbidOrphanRendering, enableBlockSyntax, enableLetSyntax, externalRuntimeStyles, localCompilationExtraImportsTracker, jitDeclarationRegistry, i18nPreserveSignificantWhitespace, strictStandalone, enableHmr, implicitStandaloneValue, typeCheckHostBindings) {
14704
+ enableSelectorless;
14705
+ constructor(reflector, evaluator, metaRegistry, metaReader, scopeReader, compilerHost, scopeRegistry, typeCheckScopeRegistry, resourceRegistry, isCore, strictCtorDeps, resourceLoader, rootDirs, defaultPreserveWhitespaces, i18nUseExternalIds, enableI18nLegacyMessageIdFormat, usePoisonedData, i18nNormalizeLineEndingsInICUs, moduleResolver, cycleAnalyzer, cycleHandlingStrategy, refEmitter, referencesRegistry, depTracker, injectableRegistry, semanticDepGraphUpdater, annotateForClosureCompiler, perf, hostDirectivesResolver, importTracker, includeClassMetadata, compilationMode, deferredSymbolTracker, forbidOrphanRendering, enableBlockSyntax, enableLetSyntax, externalRuntimeStyles, localCompilationExtraImportsTracker, jitDeclarationRegistry, i18nPreserveSignificantWhitespace, strictStandalone, enableHmr, implicitStandaloneValue, typeCheckHostBindings, enableSelectorless) {
14507
14706
  this.reflector = reflector;
14508
14707
  this.evaluator = evaluator;
14509
14708
  this.metaRegistry = metaRegistry;
@@ -14548,12 +14747,14 @@ var ComponentDecoratorHandler = class {
14548
14747
  this.enableHmr = enableHmr;
14549
14748
  this.implicitStandaloneValue = implicitStandaloneValue;
14550
14749
  this.typeCheckHostBindings = typeCheckHostBindings;
14750
+ this.enableSelectorless = enableSelectorless;
14551
14751
  this.extractTemplateOptions = {
14552
14752
  enableI18nLegacyMessageIdFormat: this.enableI18nLegacyMessageIdFormat,
14553
14753
  i18nNormalizeLineEndingsInICUs: this.i18nNormalizeLineEndingsInICUs,
14554
14754
  usePoisonedData: this.usePoisonedData,
14555
14755
  enableBlockSyntax: this.enableBlockSyntax,
14556
14756
  enableLetSyntax: this.enableLetSyntax,
14757
+ enableSelectorless: this.enableSelectorless,
14557
14758
  preserveSignificantWhitespace: this.i18nPreserveSignificantWhitespace
14558
14759
  };
14559
14760
  this.canDeferDeps = !enableHmr;
@@ -14765,6 +14966,7 @@ var ComponentDecoratorHandler = class {
14765
14966
  usePoisonedData: this.usePoisonedData,
14766
14967
  enableBlockSyntax: this.enableBlockSyntax,
14767
14968
  enableLetSyntax: this.enableLetSyntax,
14969
+ enableSelectorless: this.enableSelectorless,
14768
14970
  preserveSignificantWhitespace: this.i18nPreserveSignificantWhitespace
14769
14971
  }, this.compilationMode);
14770
14972
  if (this.compilationMode === CompilationMode.LOCAL && template.errors && template.errors.length > 0) {
@@ -15043,7 +15245,7 @@ var ComponentDecoratorHandler = class {
15043
15245
  return templateSemanticsChecker.getDiagnosticsForComponent(component);
15044
15246
  }
15045
15247
  resolve(node, analysis, symbol) {
15046
- var _a, _b;
15248
+ var _a;
15047
15249
  const metadata = analysis.meta;
15048
15250
  const diagnostics = [];
15049
15251
  const context = getSourceFile(node);
@@ -15085,209 +15287,25 @@ var ComponentDecoratorHandler = class {
15085
15287
  return {};
15086
15288
  }
15087
15289
  const scope = this.scopeReader.getScopeForComponent(node);
15088
- if (scope !== null) {
15089
- const isModuleScope = scope.kind === ComponentScopeKind.NgModule;
15090
- const dependencies = isModuleScope ? scope.compilation.dependencies : scope.dependencies;
15091
- const explicitlyDeferredDependencies = getExplicitlyDeferredDeps(scope);
15092
- if (isModuleScope && context.fileName !== getSourceFile(scope.ngModule).fileName) {
15093
- (_b = this.localCompilationExtraImportsTracker) == null ? void 0 : _b.markFileForExtraImportGeneration(context);
15094
- }
15095
- if (metadata.isStandalone && analysis.rawDeferredImports !== null && explicitlyDeferredDependencies.length > 0) {
15096
- const diagnostic = validateNoImportOverlap(dependencies, explicitlyDeferredDependencies, analysis.rawDeferredImports);
15097
- if (diagnostic !== null) {
15098
- diagnostics.push(diagnostic);
15099
- }
15100
- }
15101
- const binder = createTargetBinder(dependencies);
15102
- let allDependencies = dependencies;
15103
- let deferBlockBinder = binder;
15104
- if (explicitlyDeferredDependencies.length > 0) {
15105
- allDependencies = [...explicitlyDeferredDependencies, ...dependencies];
15106
- deferBlockBinder = createTargetBinder(allDependencies);
15107
- }
15108
- const pipes = extractPipes(allDependencies);
15109
- const bound = binder.bind({ template: metadata.template.nodes });
15110
- const deferBlocks = /* @__PURE__ */ new Map();
15111
- for (const deferBlock of bound.getDeferBlocks()) {
15112
- deferBlocks.set(deferBlock, deferBlockBinder.bind({ template: deferBlock.children }));
15113
- }
15114
- const eagerlyUsed = /* @__PURE__ */ new Set();
15115
- if (this.enableHmr) {
15116
- for (const dep of dependencies) {
15117
- if (dep.ref.node !== node) {
15118
- eagerlyUsed.add(dep.ref.node);
15119
- } else {
15120
- const used = bound.getEagerlyUsedDirectives();
15121
- if (used.some((current) => current.ref.node === node)) {
15122
- eagerlyUsed.add(node);
15123
- }
15124
- }
15125
- }
15126
- } else {
15127
- for (const dir of bound.getEagerlyUsedDirectives()) {
15128
- eagerlyUsed.add(dir.ref.node);
15129
- }
15130
- for (const name of bound.getEagerlyUsedPipes()) {
15131
- if (!pipes.has(name)) {
15132
- continue;
15133
- }
15134
- eagerlyUsed.add(pipes.get(name).ref.node);
15135
- }
15136
- }
15137
- const wholeTemplateUsed = new Set(eagerlyUsed);
15138
- for (const bound2 of deferBlocks.values()) {
15139
- for (const dir of bound2.getUsedDirectives()) {
15140
- wholeTemplateUsed.add(dir.ref.node);
15141
- }
15142
- for (const name of bound2.getUsedPipes()) {
15143
- if (!pipes.has(name)) {
15144
- continue;
15145
- }
15146
- wholeTemplateUsed.add(pipes.get(name).ref.node);
15147
- }
15148
- }
15149
- const declarations = /* @__PURE__ */ new Map();
15150
- for (const dep of allDependencies) {
15151
- if (declarations.has(dep.ref.node)) {
15152
- continue;
15153
- }
15154
- switch (dep.kind) {
15155
- case MetaKind.Directive:
15156
- if (!wholeTemplateUsed.has(dep.ref.node) || dep.matchSource !== MatchSource.Selector) {
15157
- continue;
15158
- }
15159
- const dirType = this.refEmitter.emit(dep.ref, context);
15160
- assertSuccessfulReferenceEmit(dirType, node.name, dep.isComponent ? "component" : "directive");
15161
- declarations.set(dep.ref.node, {
15162
- kind: R3TemplateDependencyKind.Directive,
15163
- ref: dep.ref,
15164
- type: dirType.expression,
15165
- importedFile: dirType.importedFile,
15166
- selector: dep.selector,
15167
- inputs: dep.inputs.propertyNames,
15168
- outputs: dep.outputs.propertyNames,
15169
- exportAs: dep.exportAs,
15170
- isComponent: dep.isComponent
15171
- });
15172
- break;
15173
- case MetaKind.Pipe:
15174
- if (!wholeTemplateUsed.has(dep.ref.node)) {
15175
- continue;
15176
- }
15177
- const pipeType = this.refEmitter.emit(dep.ref, context);
15178
- assertSuccessfulReferenceEmit(pipeType, node.name, "pipe");
15179
- declarations.set(dep.ref.node, {
15180
- kind: R3TemplateDependencyKind.Pipe,
15181
- type: pipeType.expression,
15182
- name: dep.name,
15183
- ref: dep.ref,
15184
- importedFile: pipeType.importedFile
15185
- });
15186
- break;
15187
- case MetaKind.NgModule:
15188
- const ngModuleType = this.refEmitter.emit(dep.ref, context);
15189
- assertSuccessfulReferenceEmit(ngModuleType, node.name, "NgModule");
15190
- declarations.set(dep.ref.node, {
15191
- kind: R3TemplateDependencyKind.NgModule,
15192
- type: ngModuleType.expression,
15193
- importedFile: ngModuleType.importedFile
15194
- });
15195
- break;
15196
- }
15197
- }
15198
- const getSemanticReference = (decl) => this.semanticDepGraphUpdater.getSemanticReference(decl.ref.node, decl.type);
15290
+ if (scope === null) {
15291
+ data.deferPerBlockDependencies = this.locateDeferBlocksWithoutScope(metadata.template);
15292
+ } else {
15293
+ const { eagerlyUsed, deferBlocks, allDependencies, wholeTemplateUsed } = this.resolveComponentDependencies(node, context, analysis, scope, metadata, diagnostics);
15294
+ const declarations = this.componentDependenciesToDeclarations(node, context, allDependencies, wholeTemplateUsed);
15199
15295
  if (this.semanticDepGraphUpdater !== null) {
15296
+ const getSemanticReference = (decl) => this.semanticDepGraphUpdater.getSemanticReference(decl.ref.node, decl.type);
15200
15297
  symbol.usedDirectives = Array.from(declarations.values()).filter(isUsedDirective).map(getSemanticReference);
15201
15298
  symbol.usedPipes = Array.from(declarations.values()).filter(isUsedPipe).map(getSemanticReference);
15202
15299
  }
15203
- const eagerDeclarations = Array.from(declarations.values()).filter((decl) => decl.kind === R3TemplateDependencyKind.NgModule || eagerlyUsed.has(decl.ref.node));
15204
15300
  if (this.compilationMode !== CompilationMode.LOCAL) {
15205
15301
  this.resolveDeferBlocks(node, deferBlocks, declarations, data, analysis, eagerlyUsed);
15206
15302
  }
15207
- const cyclesFromDirectives = /* @__PURE__ */ new Map();
15208
- const cyclesFromPipes = /* @__PURE__ */ new Map();
15209
- if (!metadata.isStandalone) {
15210
- for (const usedDep of eagerDeclarations) {
15211
- const cycle = this._checkForCyclicImport(usedDep.importedFile, usedDep.type, context);
15212
- if (cycle !== null) {
15213
- switch (usedDep.kind) {
15214
- case R3TemplateDependencyKind.Directive:
15215
- cyclesFromDirectives.set(usedDep, cycle);
15216
- break;
15217
- case R3TemplateDependencyKind.Pipe:
15218
- cyclesFromPipes.set(usedDep, cycle);
15219
- break;
15220
- }
15221
- }
15222
- }
15223
- }
15224
- const standaloneImportMayBeForwardDeclared = analysis.resolvedImports !== null && analysis.resolvedImports.some((ref) => ref.synthetic);
15225
- const cycleDetected = cyclesFromDirectives.size !== 0 || cyclesFromPipes.size !== 0;
15226
- if (!cycleDetected) {
15227
- for (const { type, importedFile } of eagerDeclarations) {
15228
- this.maybeRecordSyntheticImport(importedFile, type, context);
15229
- }
15230
- const declarationIsForwardDeclared = eagerDeclarations.some((decl) => isExpressionForwardReference(decl.type, node.name, context));
15231
- if (this.compilationMode !== CompilationMode.LOCAL && (declarationIsForwardDeclared || standaloneImportMayBeForwardDeclared)) {
15232
- data.declarationListEmitMode = 1;
15233
- }
15234
- data.declarations = eagerDeclarations;
15235
- if (this.compilationMode === CompilationMode.LOCAL && this.localCompilationExtraImportsTracker !== null) {
15236
- for (const { type } of eagerDeclarations) {
15237
- if (type instanceof ExternalExpr8 && type.value.moduleName) {
15238
- this.localCompilationExtraImportsTracker.addImportForFile(context, type.value.moduleName);
15239
- }
15240
- }
15241
- }
15242
- } else {
15243
- if (this.cycleHandlingStrategy === 0) {
15244
- this.scopeRegistry.setComponentRemoteScope(node, eagerDeclarations.filter(isUsedDirective).map((dir) => dir.ref), eagerDeclarations.filter(isUsedPipe).map((pipe) => pipe.ref));
15245
- symbol.isRemotelyScoped = true;
15246
- if (this.semanticDepGraphUpdater !== null && scope.kind === ComponentScopeKind.NgModule && scope.ngModule !== null) {
15247
- const moduleSymbol = this.semanticDepGraphUpdater.getSymbol(scope.ngModule);
15248
- if (!(moduleSymbol instanceof NgModuleSymbol)) {
15249
- throw new Error(`AssertionError: Expected ${scope.ngModule.name} to be an NgModuleSymbol.`);
15250
- }
15251
- moduleSymbol.addRemotelyScopedComponent(symbol, symbol.usedDirectives, symbol.usedPipes);
15252
- }
15253
- } else {
15254
- const relatedMessages = [];
15255
- for (const [dir, cycle] of cyclesFromDirectives) {
15256
- relatedMessages.push(makeCyclicImportInfo(dir.ref, dir.isComponent ? "component" : "directive", cycle));
15257
- }
15258
- for (const [pipe, cycle] of cyclesFromPipes) {
15259
- relatedMessages.push(makeCyclicImportInfo(pipe.ref, "pipe", cycle));
15260
- }
15261
- throw new FatalDiagnosticError(ErrorCode.IMPORT_CYCLE_DETECTED, node, "One or more import cycles would need to be created to compile this component, which is not supported by the current compiler configuration.", relatedMessages);
15262
- }
15263
- }
15264
- } else {
15265
- data.deferPerBlockDependencies = this.locateDeferBlocksWithoutScope(metadata.template);
15303
+ this.handleDependencyCycles(node, context, scope, data, analysis, metadata, declarations, eagerlyUsed, symbol);
15266
15304
  }
15267
15305
  if (this.compilationMode !== CompilationMode.LOCAL) {
15268
- if (analysis.resolvedImports !== null && analysis.rawImports !== null) {
15269
- const importDiagnostics = validateStandaloneImports(analysis.resolvedImports, analysis.rawImports, this.metaReader, this.scopeReader, false);
15270
- diagnostics.push(...importDiagnostics);
15271
- }
15272
- if (analysis.resolvedDeferredImports !== null && analysis.rawDeferredImports !== null) {
15273
- const importDiagnostics = validateStandaloneImports(analysis.resolvedDeferredImports, analysis.rawDeferredImports, this.metaReader, this.scopeReader, true);
15274
- diagnostics.push(...importDiagnostics);
15275
- }
15276
- if (analysis.providersRequiringFactory !== null && analysis.meta.providers instanceof o4.WrappedNodeExpr) {
15277
- const providerDiagnostics = getProviderDiagnostics(analysis.providersRequiringFactory, analysis.meta.providers.node, this.injectableRegistry);
15278
- diagnostics.push(...providerDiagnostics);
15279
- }
15280
- if (analysis.viewProvidersRequiringFactory !== null && analysis.meta.viewProviders instanceof o4.WrappedNodeExpr) {
15281
- const viewProviderDiagnostics = getProviderDiagnostics(analysis.viewProvidersRequiringFactory, analysis.meta.viewProviders.node, this.injectableRegistry);
15282
- diagnostics.push(...viewProviderDiagnostics);
15283
- }
15284
- const directiveDiagnostics = getDirectiveDiagnostics(node, this.injectableRegistry, this.evaluator, this.reflector, this.scopeRegistry, this.strictCtorDeps, "Component");
15285
- if (directiveDiagnostics !== null) {
15286
- diagnostics.push(...directiveDiagnostics);
15287
- }
15288
- const hostDirectivesDiagnostics = analysis.hostDirectives && analysis.rawHostDirectives ? validateHostDirectives(analysis.rawHostDirectives, analysis.hostDirectives, this.metaReader) : null;
15289
- if (hostDirectivesDiagnostics !== null) {
15290
- diagnostics.push(...hostDirectivesDiagnostics);
15306
+ const nonLocalDiagnostics = this.getNonLocalDiagnostics(node, analysis);
15307
+ if (nonLocalDiagnostics !== null) {
15308
+ diagnostics.push(...nonLocalDiagnostics);
15291
15309
  }
15292
15310
  }
15293
15311
  if (diagnostics.length > 0) {
@@ -15416,9 +15434,221 @@ var ComponentDecoratorHandler = class {
15416
15434
  const res = compileResults(fac, def, classMetadata, "\u0275cmp", null, null, debugInfo, null);
15417
15435
  return hmrMeta === null || res.length === 0 ? null : getHmrUpdateDeclaration(res, pool.statements, hmrMeta, node);
15418
15436
  }
15437
+ resolveComponentDependencies(node, context, analysis, scope, metadata, diagnostics) {
15438
+ var _a;
15439
+ const isModuleScope = scope.kind === ComponentScopeKind.NgModule;
15440
+ const dependencies = isModuleScope ? scope.compilation.dependencies : scope.dependencies;
15441
+ const explicitlyDeferredDependencies = getExplicitlyDeferredDeps(scope);
15442
+ if (isModuleScope && context.fileName !== getSourceFile(scope.ngModule).fileName) {
15443
+ (_a = this.localCompilationExtraImportsTracker) == null ? void 0 : _a.markFileForExtraImportGeneration(context);
15444
+ }
15445
+ if (metadata.isStandalone && analysis.rawDeferredImports !== null && explicitlyDeferredDependencies.length > 0) {
15446
+ const diagnostic = validateNoImportOverlap(dependencies, explicitlyDeferredDependencies, analysis.rawDeferredImports);
15447
+ if (diagnostic !== null) {
15448
+ diagnostics.push(diagnostic);
15449
+ }
15450
+ }
15451
+ const binder = createTargetBinder(dependencies);
15452
+ let allDependencies = dependencies;
15453
+ let deferBlockBinder = binder;
15454
+ if (explicitlyDeferredDependencies.length > 0) {
15455
+ allDependencies = [...explicitlyDeferredDependencies, ...dependencies];
15456
+ deferBlockBinder = createTargetBinder(allDependencies);
15457
+ }
15458
+ const pipes = extractPipes(allDependencies);
15459
+ const bound = binder.bind({ template: metadata.template.nodes });
15460
+ const deferBlocks = /* @__PURE__ */ new Map();
15461
+ for (const deferBlock of bound.getDeferBlocks()) {
15462
+ deferBlocks.set(deferBlock, deferBlockBinder.bind({ template: deferBlock.children }));
15463
+ }
15464
+ const eagerlyUsed = /* @__PURE__ */ new Set();
15465
+ if (this.enableHmr) {
15466
+ for (const dep of dependencies) {
15467
+ if (dep.ref.node !== node) {
15468
+ eagerlyUsed.add(dep.ref.node);
15469
+ } else {
15470
+ const used = bound.getEagerlyUsedDirectives();
15471
+ if (used.some((current) => current.ref.node === node)) {
15472
+ eagerlyUsed.add(node);
15473
+ }
15474
+ }
15475
+ }
15476
+ } else {
15477
+ for (const dir of bound.getEagerlyUsedDirectives()) {
15478
+ eagerlyUsed.add(dir.ref.node);
15479
+ }
15480
+ for (const name of bound.getEagerlyUsedPipes()) {
15481
+ if (pipes.has(name)) {
15482
+ eagerlyUsed.add(pipes.get(name).ref.node);
15483
+ }
15484
+ }
15485
+ }
15486
+ const wholeTemplateUsed = new Set(eagerlyUsed);
15487
+ for (const bound2 of deferBlocks.values()) {
15488
+ for (const dir of bound2.getUsedDirectives()) {
15489
+ wholeTemplateUsed.add(dir.ref.node);
15490
+ }
15491
+ for (const name of bound2.getUsedPipes()) {
15492
+ if (!pipes.has(name)) {
15493
+ continue;
15494
+ }
15495
+ wholeTemplateUsed.add(pipes.get(name).ref.node);
15496
+ }
15497
+ }
15498
+ return { allDependencies, eagerlyUsed, wholeTemplateUsed, deferBlocks };
15499
+ }
15500
+ componentDependenciesToDeclarations(node, context, allDependencies, wholeTemplateUsed) {
15501
+ const declarations = /* @__PURE__ */ new Map();
15502
+ for (const dep of allDependencies) {
15503
+ if (declarations.has(dep.ref.node)) {
15504
+ continue;
15505
+ }
15506
+ switch (dep.kind) {
15507
+ case MetaKind.Directive:
15508
+ if (!wholeTemplateUsed.has(dep.ref.node) || dep.matchSource !== MatchSource.Selector) {
15509
+ continue;
15510
+ }
15511
+ const dirType = this.refEmitter.emit(dep.ref, context);
15512
+ assertSuccessfulReferenceEmit(dirType, node.name, dep.isComponent ? "component" : "directive");
15513
+ declarations.set(dep.ref.node, {
15514
+ kind: R3TemplateDependencyKind.Directive,
15515
+ ref: dep.ref,
15516
+ type: dirType.expression,
15517
+ importedFile: dirType.importedFile,
15518
+ selector: dep.selector,
15519
+ inputs: dep.inputs.propertyNames,
15520
+ outputs: dep.outputs.propertyNames,
15521
+ exportAs: dep.exportAs,
15522
+ isComponent: dep.isComponent
15523
+ });
15524
+ break;
15525
+ case MetaKind.Pipe:
15526
+ if (!wholeTemplateUsed.has(dep.ref.node)) {
15527
+ continue;
15528
+ }
15529
+ const pipeType = this.refEmitter.emit(dep.ref, context);
15530
+ assertSuccessfulReferenceEmit(pipeType, node.name, "pipe");
15531
+ declarations.set(dep.ref.node, {
15532
+ kind: R3TemplateDependencyKind.Pipe,
15533
+ type: pipeType.expression,
15534
+ name: dep.name,
15535
+ ref: dep.ref,
15536
+ importedFile: pipeType.importedFile
15537
+ });
15538
+ break;
15539
+ case MetaKind.NgModule:
15540
+ const ngModuleType = this.refEmitter.emit(dep.ref, context);
15541
+ assertSuccessfulReferenceEmit(ngModuleType, node.name, "NgModule");
15542
+ declarations.set(dep.ref.node, {
15543
+ kind: R3TemplateDependencyKind.NgModule,
15544
+ type: ngModuleType.expression,
15545
+ importedFile: ngModuleType.importedFile
15546
+ });
15547
+ break;
15548
+ }
15549
+ }
15550
+ return declarations;
15551
+ }
15552
+ handleDependencyCycles(node, context, scope, data, analysis, metadata, declarations, eagerlyUsed, symbol) {
15553
+ const eagerDeclarations = Array.from(declarations.values()).filter((decl) => {
15554
+ return decl.kind === R3TemplateDependencyKind.NgModule || eagerlyUsed.has(decl.ref.node);
15555
+ });
15556
+ const cyclesFromDirectives = /* @__PURE__ */ new Map();
15557
+ const cyclesFromPipes = /* @__PURE__ */ new Map();
15558
+ if (!metadata.isStandalone) {
15559
+ for (const usedDep of eagerDeclarations) {
15560
+ const cycle = this._checkForCyclicImport(usedDep.importedFile, usedDep.type, context);
15561
+ if (cycle !== null) {
15562
+ switch (usedDep.kind) {
15563
+ case R3TemplateDependencyKind.Directive:
15564
+ cyclesFromDirectives.set(usedDep, cycle);
15565
+ break;
15566
+ case R3TemplateDependencyKind.Pipe:
15567
+ cyclesFromPipes.set(usedDep, cycle);
15568
+ break;
15569
+ }
15570
+ }
15571
+ }
15572
+ }
15573
+ const standaloneImportMayBeForwardDeclared = analysis.resolvedImports !== null && analysis.resolvedImports.some((ref) => ref.synthetic);
15574
+ const cycleDetected = cyclesFromDirectives.size !== 0 || cyclesFromPipes.size !== 0;
15575
+ if (!cycleDetected) {
15576
+ for (const { type, importedFile } of eagerDeclarations) {
15577
+ this.maybeRecordSyntheticImport(importedFile, type, context);
15578
+ }
15579
+ const declarationIsForwardDeclared = eagerDeclarations.some((decl) => isExpressionForwardReference(decl.type, node.name, context));
15580
+ if (this.compilationMode !== CompilationMode.LOCAL && (declarationIsForwardDeclared || standaloneImportMayBeForwardDeclared)) {
15581
+ data.declarationListEmitMode = 1;
15582
+ }
15583
+ data.declarations = eagerDeclarations;
15584
+ if (this.compilationMode === CompilationMode.LOCAL && this.localCompilationExtraImportsTracker !== null) {
15585
+ for (const { type } of eagerDeclarations) {
15586
+ if (type instanceof ExternalExpr8 && type.value.moduleName) {
15587
+ this.localCompilationExtraImportsTracker.addImportForFile(context, type.value.moduleName);
15588
+ }
15589
+ }
15590
+ }
15591
+ } else if (this.cycleHandlingStrategy === 0) {
15592
+ this.scopeRegistry.setComponentRemoteScope(node, eagerDeclarations.filter(isUsedDirective).map((dir) => dir.ref), eagerDeclarations.filter(isUsedPipe).map((pipe) => pipe.ref));
15593
+ symbol.isRemotelyScoped = true;
15594
+ if (this.semanticDepGraphUpdater !== null && scope.kind === ComponentScopeKind.NgModule && scope.ngModule !== null) {
15595
+ const moduleSymbol = this.semanticDepGraphUpdater.getSymbol(scope.ngModule);
15596
+ if (!(moduleSymbol instanceof NgModuleSymbol)) {
15597
+ throw new Error(`AssertionError: Expected ${scope.ngModule.name} to be an NgModuleSymbol.`);
15598
+ }
15599
+ moduleSymbol.addRemotelyScopedComponent(symbol, symbol.usedDirectives, symbol.usedPipes);
15600
+ }
15601
+ } else {
15602
+ const relatedMessages = [];
15603
+ for (const [dir, cycle] of cyclesFromDirectives) {
15604
+ relatedMessages.push(makeCyclicImportInfo(dir.ref, dir.isComponent ? "component" : "directive", cycle));
15605
+ }
15606
+ for (const [pipe, cycle] of cyclesFromPipes) {
15607
+ relatedMessages.push(makeCyclicImportInfo(pipe.ref, "pipe", cycle));
15608
+ }
15609
+ throw new FatalDiagnosticError(ErrorCode.IMPORT_CYCLE_DETECTED, node, "One or more import cycles would need to be created to compile this component, which is not supported by the current compiler configuration.", relatedMessages);
15610
+ }
15611
+ }
15612
+ getNonLocalDiagnostics(node, analysis) {
15613
+ if (this.compilationMode === CompilationMode.LOCAL) {
15614
+ throw new Error("Method cannot be called in local compilation mode.");
15615
+ }
15616
+ let diagnostics = null;
15617
+ if (analysis.resolvedImports !== null && analysis.rawImports !== null) {
15618
+ const importDiagnostics = validateStandaloneImports(analysis.resolvedImports, analysis.rawImports, this.metaReader, this.scopeReader, false);
15619
+ diagnostics != null ? diagnostics : diagnostics = [];
15620
+ diagnostics.push(...importDiagnostics);
15621
+ }
15622
+ if (analysis.resolvedDeferredImports !== null && analysis.rawDeferredImports !== null) {
15623
+ const importDiagnostics = validateStandaloneImports(analysis.resolvedDeferredImports, analysis.rawDeferredImports, this.metaReader, this.scopeReader, true);
15624
+ diagnostics != null ? diagnostics : diagnostics = [];
15625
+ diagnostics.push(...importDiagnostics);
15626
+ }
15627
+ if (analysis.providersRequiringFactory !== null && analysis.meta.providers instanceof o4.WrappedNodeExpr) {
15628
+ const providerDiagnostics = getProviderDiagnostics(analysis.providersRequiringFactory, analysis.meta.providers.node, this.injectableRegistry);
15629
+ diagnostics != null ? diagnostics : diagnostics = [];
15630
+ diagnostics.push(...providerDiagnostics);
15631
+ }
15632
+ if (analysis.viewProvidersRequiringFactory !== null && analysis.meta.viewProviders instanceof o4.WrappedNodeExpr) {
15633
+ const viewProviderDiagnostics = getProviderDiagnostics(analysis.viewProvidersRequiringFactory, analysis.meta.viewProviders.node, this.injectableRegistry);
15634
+ diagnostics != null ? diagnostics : diagnostics = [];
15635
+ diagnostics.push(...viewProviderDiagnostics);
15636
+ }
15637
+ const directiveDiagnostics = getDirectiveDiagnostics(node, this.injectableRegistry, this.evaluator, this.reflector, this.scopeRegistry, this.strictCtorDeps, "Component");
15638
+ if (directiveDiagnostics !== null) {
15639
+ diagnostics != null ? diagnostics : diagnostics = [];
15640
+ diagnostics.push(...directiveDiagnostics);
15641
+ }
15642
+ const hostDirectivesDiagnostics = analysis.hostDirectives && analysis.rawHostDirectives ? validateHostDirectives(analysis.rawHostDirectives, analysis.hostDirectives, this.metaReader) : null;
15643
+ if (hostDirectivesDiagnostics !== null) {
15644
+ diagnostics != null ? diagnostics : diagnostics = [];
15645
+ diagnostics.push(...hostDirectivesDiagnostics);
15646
+ }
15647
+ return diagnostics;
15648
+ }
15419
15649
  locateDeferBlocksWithoutScope(template) {
15420
15650
  const deferBlocks = /* @__PURE__ */ new Map();
15421
- const directivelessBinder = new R3TargetBinder2(new SelectorMatcher3());
15651
+ const directivelessBinder = new R3TargetBinder2(null);
15422
15652
  const bound = directivelessBinder.bind({ template: template.nodes });
15423
15653
  const deferredBlocks = bound.getDeferBlocks();
15424
15654
  for (const block of deferredBlocks) {
@@ -15658,7 +15888,7 @@ function isDefaultImport(node) {
15658
15888
  return node.importClause !== void 0 && node.importClause.namedBindings === void 0;
15659
15889
  }
15660
15890
 
15661
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/src/injectable.mjs
15891
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/src/injectable.mjs
15662
15892
  import { compileClassMetadata as compileClassMetadata3, compileDeclareClassMetadata as compileDeclareClassMetadata3, compileDeclareInjectableFromMetadata, compileInjectable, createMayBeForwardRefExpression as createMayBeForwardRefExpression3, FactoryTarget as FactoryTarget4, LiteralExpr as LiteralExpr3, WrappedNodeExpr as WrappedNodeExpr10 } from "@angular/compiler";
15663
15893
  import ts52 from "typescript";
15664
15894
  var InjectableDecoratorHandler = class {
@@ -15899,7 +16129,7 @@ function getDep(dep, reflector) {
15899
16129
  return meta;
15900
16130
  }
15901
16131
 
15902
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/src/pipe.mjs
16132
+ // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/annotations/src/pipe.mjs
15903
16133
  import { compileClassMetadata as compileClassMetadata4, compileDeclareClassMetadata as compileDeclareClassMetadata4, compileDeclarePipeFromMetadata, compilePipeFromMetadata, FactoryTarget as FactoryTarget5 } from "@angular/compiler";
15904
16134
  import ts53 from "typescript";
15905
16135
  var PipeSymbol = class extends SemanticSymbol {
@@ -16036,7 +16266,8 @@ var PipeDecoratorHandler = class {
16036
16266
  nameExpr: analysis.pipeNameExpr,
16037
16267
  isStandalone: analysis.meta.isStandalone,
16038
16268
  decorator: analysis.decorator,
16039
- isExplicitlyDeferred: false
16269
+ isExplicitlyDeferred: false,
16270
+ isPure: analysis.meta.pure
16040
16271
  });
16041
16272
  this.injectableRegistry.registerInjectable(node, {
16042
16273
  ctorDeps: analysis.meta.deps
@@ -16147,4 +16378,4 @@ export {
16147
16378
  * Use of this source code is governed by an MIT-style license that can be
16148
16379
  * found in the LICENSE file at https://angular.dev/license
16149
16380
  */
16150
- //# sourceMappingURL=chunk-QDS4K6PQ.js.map
16381
+ //# sourceMappingURL=chunk-WNWOEBZS.js.map