@angular/core 18.0.0-next.1 → 18.0.0-next.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (78) hide show
  1. package/esm2022/rxjs-interop/src/to_signal.mjs +2 -2
  2. package/esm2022/src/application/application_init.mjs +2 -2
  3. package/esm2022/src/application/application_ref.mjs +10 -15
  4. package/esm2022/src/application/application_tokens.mjs +3 -3
  5. package/esm2022/src/authoring/input/input.mjs +37 -14
  6. package/esm2022/src/authoring/input/input_signal.mjs +1 -1
  7. package/esm2022/src/authoring/input/input_signal_node.mjs +1 -1
  8. package/esm2022/src/authoring/input/input_type_checking.mjs +1 -1
  9. package/esm2022/src/authoring/model/model.mjs +35 -15
  10. package/esm2022/src/authoring/output/output.mjs +32 -10
  11. package/esm2022/src/authoring/queries.mjs +11 -1
  12. package/esm2022/src/change_detection/scheduling/ng_zone_scheduling.mjs +38 -4
  13. package/esm2022/src/change_detection/scheduling/zoneless_scheduling.mjs +5 -1
  14. package/esm2022/src/change_detection/scheduling/zoneless_scheduling_impl.mjs +91 -22
  15. package/esm2022/src/compiler/compiler_facade_interface.mjs +1 -1
  16. package/esm2022/src/core_private_export.mjs +4 -4
  17. package/esm2022/src/core_render3_private_export.mjs +2 -2
  18. package/esm2022/src/defer/instructions.mjs +23 -9
  19. package/esm2022/src/di/interface/provider.mjs +1 -1
  20. package/esm2022/src/di/metadata.mjs +1 -1
  21. package/esm2022/src/hydration/annotate.mjs +35 -49
  22. package/esm2022/src/hydration/api.mjs +36 -13
  23. package/esm2022/src/hydration/cleanup.mjs +4 -18
  24. package/esm2022/src/hydration/i18n.mjs +378 -0
  25. package/esm2022/src/hydration/interfaces.mjs +2 -1
  26. package/esm2022/src/hydration/node_lookup_utils.mjs +24 -10
  27. package/esm2022/src/hydration/utils.mjs +61 -2
  28. package/esm2022/src/linker/component_factory.mjs +1 -1
  29. package/esm2022/src/linker/view_container_ref.mjs +2 -2
  30. package/esm2022/src/linker/view_ref.mjs +4 -4
  31. package/esm2022/src/metadata/directives.mjs +1 -1
  32. package/esm2022/src/metadata/ng_module.mjs +1 -1
  33. package/esm2022/src/platform/platform_ref.mjs +3 -2
  34. package/esm2022/src/render3/component_ref.mjs +1 -1
  35. package/esm2022/src/render3/debug/framework_injector_profiler.mjs +2 -2
  36. package/esm2022/src/render3/i18n/i18n_apply.mjs +28 -6
  37. package/esm2022/src/render3/i18n/i18n_parse.mjs +2 -5
  38. package/esm2022/src/render3/i18n/i18n_util.mjs +6 -1
  39. package/esm2022/src/render3/instructions/control_flow.mjs +24 -15
  40. package/esm2022/src/render3/instructions/i18n.mjs +3 -1
  41. package/esm2022/src/render3/instructions/projection.mjs +35 -9
  42. package/esm2022/src/render3/instructions/template.mjs +45 -24
  43. package/esm2022/src/render3/jit/partial.mjs +13 -2
  44. package/esm2022/src/render3/util/injector_discovery_utils.mjs +13 -9
  45. package/esm2022/src/render3/util/view_utils.mjs +4 -14
  46. package/esm2022/src/util/callback_scheduler.mjs +25 -30
  47. package/esm2022/src/version.mjs +1 -1
  48. package/esm2022/src/zone/ng_zone.mjs +3 -3
  49. package/esm2022/testing/src/component_fixture.mjs +24 -59
  50. package/esm2022/testing/src/fake_async.mjs +6 -1
  51. package/esm2022/testing/src/logger.mjs +3 -3
  52. package/esm2022/testing/src/private_export.mjs +9 -0
  53. package/esm2022/testing/src/test_bed.mjs +4 -4
  54. package/esm2022/testing/src/test_hooks.mjs +3 -3
  55. package/esm2022/testing/src/testing.mjs +3 -2
  56. package/fesm2022/core.mjs +1499 -823
  57. package/fesm2022/core.mjs.map +1 -1
  58. package/fesm2022/primitives/signals.mjs +1 -1
  59. package/fesm2022/rxjs-interop.mjs +2 -2
  60. package/fesm2022/rxjs-interop.mjs.map +1 -1
  61. package/fesm2022/testing.mjs +64 -94
  62. package/fesm2022/testing.mjs.map +1 -1
  63. package/index.d.ts +269 -149
  64. package/package.json +1 -1
  65. package/primitives/signals/index.d.ts +1 -1
  66. package/rxjs-interop/index.d.ts +2 -2
  67. package/schematics/migrations/block-template-entities/bundle.js +313 -255
  68. package/schematics/migrations/block-template-entities/bundle.js.map +3 -3
  69. package/schematics/migrations/compiler-options/bundle.js +13 -13
  70. package/schematics/migrations/invalid-two-way-bindings/bundle.js +316 -257
  71. package/schematics/migrations/invalid-two-way-bindings/bundle.js.map +3 -3
  72. package/schematics/migrations/transfer-state/bundle.js +13 -13
  73. package/schematics/ng-generate/control-flow-migration/bundle.js +349 -276
  74. package/schematics/ng-generate/control-flow-migration/bundle.js.map +3 -3
  75. package/schematics/ng-generate/standalone-migration/bundle.js +1811 -1330
  76. package/schematics/ng-generate/standalone-migration/bundle.js.map +4 -4
  77. package/testing/index.d.ts +10 -3
  78. package/esm2022/src/change_detection/flags.mjs +0 -17
@@ -63,7 +63,7 @@ var __async = (__this, __arguments, generator) => {
63
63
  });
64
64
  };
65
65
 
66
- // bazel-out/darwin_arm64-fastbuild/bin/packages/core/schematics/migrations/invalid-two-way-bindings/index.mjs
66
+ // bazel-out/k8-fastbuild/bin/packages/core/schematics/migrations/invalid-two-way-bindings/index.mjs
67
67
  var invalid_two_way_bindings_exports = {};
68
68
  __export(invalid_two_way_bindings_exports, {
69
69
  default: () => invalid_two_way_bindings_default
@@ -72,7 +72,7 @@ module.exports = __toCommonJS(invalid_two_way_bindings_exports);
72
72
  var import_schematics = require("@angular-devkit/schematics");
73
73
  var import_path3 = require("path");
74
74
 
75
- // bazel-out/darwin_arm64-fastbuild/bin/packages/core/schematics/utils/project_tsconfig_paths.mjs
75
+ // bazel-out/k8-fastbuild/bin/packages/core/schematics/utils/project_tsconfig_paths.mjs
76
76
  var import_core = require("@angular-devkit/core");
77
77
  function getProjectTsConfigPaths(tree) {
78
78
  return __async(this, null, function* () {
@@ -152,11 +152,11 @@ function getWorkspace(tree) {
152
152
  });
153
153
  }
154
154
 
155
- // bazel-out/darwin_arm64-fastbuild/bin/packages/core/schematics/utils/typescript/compiler_host.mjs
155
+ // bazel-out/k8-fastbuild/bin/packages/core/schematics/utils/typescript/compiler_host.mjs
156
156
  var import_path = require("path");
157
157
  var import_typescript2 = __toESM(require("typescript"), 1);
158
158
 
159
- // bazel-out/darwin_arm64-fastbuild/bin/packages/core/schematics/utils/typescript/parse_tsconfig.mjs
159
+ // bazel-out/k8-fastbuild/bin/packages/core/schematics/utils/typescript/parse_tsconfig.mjs
160
160
  var path = __toESM(require("path"), 1);
161
161
  var import_typescript = __toESM(require("typescript"), 1);
162
162
  function parseTsconfigFile(tsconfigPath, basePath) {
@@ -173,7 +173,7 @@ function parseTsconfigFile(tsconfigPath, basePath) {
173
173
  return import_typescript.default.parseJsonConfigFileContent(config, parseConfigHost, basePath, {});
174
174
  }
175
175
 
176
- // bazel-out/darwin_arm64-fastbuild/bin/packages/core/schematics/utils/typescript/compiler_host.mjs
176
+ // bazel-out/k8-fastbuild/bin/packages/core/schematics/utils/typescript/compiler_host.mjs
177
177
  function createMigrationProgram(tree, tsconfigPath, basePath, fakeFileRead, additionalFiles) {
178
178
  const { rootNames, options, host } = createProgramOptions(tree, tsconfigPath, basePath, fakeFileRead, additionalFiles);
179
179
  return import_typescript2.default.createProgram(rootNames, options, host);
@@ -206,7 +206,7 @@ function canMigrateFile(basePath, sourceFile, program) {
206
206
  return !(0, import_path.relative)(basePath, sourceFile.fileName).startsWith("..");
207
207
  }
208
208
 
209
- // bazel-out/darwin_arm64-fastbuild/bin/packages/core/schematics/migrations/invalid-two-way-bindings/analysis.mjs
209
+ // bazel-out/k8-fastbuild/bin/packages/core/schematics/migrations/invalid-two-way-bindings/analysis.mjs
210
210
  var import_path2 = require("path");
211
211
  var import_typescript3 = __toESM(require("typescript"), 1);
212
212
  var AnalyzedFile = class {
@@ -263,7 +263,7 @@ function forEachClass(sourceFile, callback) {
263
263
  });
264
264
  }
265
265
 
266
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/selector.mjs
266
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/selector.mjs
267
267
  var _SELECTOR_REGEXP = new RegExp(
268
268
  `(\\:not\\()|(([\\.\\#]?)[-\\w]+)|(?:\\[([-.\\w*\\\\$]+)(?:=(["']?)([^\\]"']*)\\5)?\\])|(\\))|(\\s*,\\s*)`,
269
269
  "g"
@@ -571,7 +571,7 @@ var SelectorContext = class {
571
571
  }
572
572
  };
573
573
 
574
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/core.mjs
574
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/core.mjs
575
575
  var ViewEncapsulation;
576
576
  (function(ViewEncapsulation2) {
577
577
  ViewEncapsulation2[ViewEncapsulation2["Emulated"] = 0] = "Emulated";
@@ -639,7 +639,7 @@ function parseSelectorToR3Selector(selector) {
639
639
  return selector ? CssSelector.parse(selector).map(parserSelectorToR3Selector) : [];
640
640
  }
641
641
 
642
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/i18n/digest.mjs
642
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/i18n/digest.mjs
643
643
  var textEncoder;
644
644
  function computeDigest(message) {
645
645
  return sha1(serializeNodes(message.nodes).join("") + `[${message.meaning}]`);
@@ -879,7 +879,7 @@ function wordAt(bytes, index, endian) {
879
879
  return word;
880
880
  }
881
881
 
882
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/output/output_ast.mjs
882
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/output/output_ast.mjs
883
883
  var TypeModifier;
884
884
  (function(TypeModifier2) {
885
885
  TypeModifier2[TypeModifier2["None"] = 0] = "None";
@@ -1817,7 +1817,7 @@ function serializeTags(tags) {
1817
1817
  return out;
1818
1818
  }
1819
1819
 
1820
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/constant_pool.mjs
1820
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/constant_pool.mjs
1821
1821
  var CONSTANT_PREFIX = "_c";
1822
1822
  var UNKNOWN_VALUE_KEY = variable("<unknown>");
1823
1823
  var KEY_CONTEXT = {};
@@ -1928,12 +1928,12 @@ var ConstantPool = class {
1928
1928
  if (isArrow && current instanceof DeclareVarStmt && ((_a2 = current.value) == null ? void 0 : _a2.isEquivalent(fn2))) {
1929
1929
  return variable(current.name);
1930
1930
  }
1931
- if (!isArrow && current instanceof DeclareFunctionStmt && fn2.isEquivalent(current)) {
1931
+ if (!isArrow && current instanceof DeclareFunctionStmt && fn2 instanceof FunctionExpr && fn2.isEquivalent(current)) {
1932
1932
  return variable(current.name);
1933
1933
  }
1934
1934
  }
1935
1935
  const name = useUniqueName ? this.uniqueName(prefix) : prefix;
1936
- this.statements.push(fn2.toDeclStmt(name, StmtModifier.Final));
1936
+ this.statements.push(fn2 instanceof FunctionExpr ? fn2.toDeclStmt(name, StmtModifier.Final) : new DeclareVarStmt(name, fn2, INFERRED_TYPE, StmtModifier.Final, fn2.sourceSpan));
1937
1937
  return variable(name);
1938
1938
  }
1939
1939
  _getLiteralFactory(key, values, resultMap) {
@@ -2005,7 +2005,7 @@ function isLongStringLiteral(expr) {
2005
2005
  return expr instanceof LiteralExpr && typeof expr.value === "string" && expr.value.length >= POOL_INCLUSION_LENGTH_THRESHOLD_FOR_STRINGS;
2006
2006
  }
2007
2007
 
2008
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/render3/r3_identifiers.mjs
2008
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/render3/r3_identifiers.mjs
2009
2009
  var CORE = "@angular/core";
2010
2010
  var _Identifiers = class {
2011
2011
  };
@@ -2559,6 +2559,9 @@ var Identifiers = _Identifiers;
2559
2559
  (() => {
2560
2560
  _Identifiers.declareClassMetadata = { name: "\u0275\u0275ngDeclareClassMetadata", moduleName: CORE };
2561
2561
  })();
2562
+ (() => {
2563
+ _Identifiers.declareClassMetadataAsync = { name: "\u0275\u0275ngDeclareClassMetadataAsync", moduleName: CORE };
2564
+ })();
2562
2565
  (() => {
2563
2566
  _Identifiers.setClassMetadata = { name: "\u0275setClassMetadata", moduleName: CORE };
2564
2567
  })();
@@ -2671,7 +2674,7 @@ var Identifiers = _Identifiers;
2671
2674
  _Identifiers.unwrapWritableSignal = { name: "\u0275unwrapWritableSignal", moduleName: CORE };
2672
2675
  })();
2673
2676
 
2674
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/util.mjs
2677
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/util.mjs
2675
2678
  var DASH_CASE_REGEXP = /-+([a-z0-9])/g;
2676
2679
  function dashCaseToCamelCase(input) {
2677
2680
  return input.replace(DASH_CASE_REGEXP, (...m) => m[1].toUpperCase());
@@ -2748,7 +2751,7 @@ var Version = class {
2748
2751
  };
2749
2752
  var _global = globalThis;
2750
2753
 
2751
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/output/source_map.mjs
2754
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/output/source_map.mjs
2752
2755
  var VERSION = 3;
2753
2756
  var JS_B64_PREFIX = "# sourceMappingURL=data:application/json;base64,";
2754
2757
  var SourceMapGenerator = class {
@@ -2877,7 +2880,7 @@ function toBase64Digit(value) {
2877
2880
  return B64_DIGITS[value];
2878
2881
  }
2879
2882
 
2880
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/output/abstract_emitter.mjs
2883
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/output/abstract_emitter.mjs
2881
2884
  var _SINGLE_QUOTE_ESCAPE_STRING_RE = /'|\\|\n|\r|\$/g;
2882
2885
  var _LEGAL_IDENTIFIER_RE = /^[$A-Z_][0-9A-Z_$]*$/i;
2883
2886
  var _INDENT_WITH = " ";
@@ -3365,7 +3368,7 @@ function _createIndent(count) {
3365
3368
  return res;
3366
3369
  }
3367
3370
 
3368
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/render3/util.mjs
3371
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/render3/util.mjs
3369
3372
  function typeWithParameters(type, numParams) {
3370
3373
  if (numParams === 0) {
3371
3374
  return expressionType(type);
@@ -3420,7 +3423,7 @@ function generateForwardRef(expr) {
3420
3423
  return importExpr(Identifiers.forwardRef).callFn([arrowFn([], expr)]);
3421
3424
  }
3422
3425
 
3423
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/render3/r3_factory.mjs
3426
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/render3/r3_factory.mjs
3424
3427
  var R3FactoryDelegateType;
3425
3428
  (function(R3FactoryDelegateType2) {
3426
3429
  R3FactoryDelegateType2[R3FactoryDelegateType2["Class"] = 0] = "Class";
@@ -3565,7 +3568,7 @@ function getInjectFn(target) {
3565
3568
  }
3566
3569
  }
3567
3570
 
3568
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/expression_parser/ast.mjs
3571
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/expression_parser/ast.mjs
3569
3572
  var ParserError = class {
3570
3573
  constructor(message, input, errLocation, ctxLocation) {
3571
3574
  this.input = input;
@@ -4003,7 +4006,7 @@ var BoundElementProperty = class {
4003
4006
  }
4004
4007
  };
4005
4008
 
4006
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/ml_parser/tags.mjs
4009
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/ml_parser/tags.mjs
4007
4010
  var TagContentType;
4008
4011
  (function(TagContentType2) {
4009
4012
  TagContentType2[TagContentType2["RAW_TEXT"] = 0] = "RAW_TEXT";
@@ -4040,7 +4043,7 @@ function mergeNsAndName(prefix, localName) {
4040
4043
  return prefix ? `:${prefix}:${localName}` : localName;
4041
4044
  }
4042
4045
 
4043
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/render3/r3_ast.mjs
4046
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/render3/r3_ast.mjs
4044
4047
  var Comment = class {
4045
4048
  constructor(value, sourceSpan) {
4046
4049
  this.value = value;
@@ -4358,9 +4361,10 @@ var Template = class {
4358
4361
  }
4359
4362
  };
4360
4363
  var Content = class {
4361
- constructor(selector, attributes, sourceSpan, i18n2) {
4364
+ constructor(selector, attributes, children, sourceSpan, i18n2) {
4362
4365
  this.selector = selector;
4363
4366
  this.attributes = attributes;
4367
+ this.children = children;
4364
4368
  this.sourceSpan = sourceSpan;
4365
4369
  this.i18n = i18n2;
4366
4370
  this.name = "ng-content";
@@ -4439,7 +4443,7 @@ var RecursiveVisitor = class {
4439
4443
  visitAll(this, block.children);
4440
4444
  }
4441
4445
  visitForLoopBlock(block) {
4442
- const blockItems = [block.item, ...Object.values(block.contextVariables), ...block.children];
4446
+ const blockItems = [block.item, ...block.contextVariables, ...block.children];
4443
4447
  block.empty && blockItems.push(block.empty);
4444
4448
  visitAll(this, blockItems);
4445
4449
  }
@@ -4455,6 +4459,7 @@ var RecursiveVisitor = class {
4455
4459
  visitAll(this, blockItems);
4456
4460
  }
4457
4461
  visitContent(content) {
4462
+ visitAll(this, content.children);
4458
4463
  }
4459
4464
  visitVariable(variable2) {
4460
4465
  }
@@ -4494,7 +4499,7 @@ function visitAll(visitor, nodes) {
4494
4499
  return result;
4495
4500
  }
4496
4501
 
4497
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/i18n/i18n_ast.mjs
4502
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/i18n/i18n_ast.mjs
4498
4503
  var Message = class {
4499
4504
  constructor(nodes, placeholders, placeholderToMessage, meaning, description, customId) {
4500
4505
  this.nodes = nodes;
@@ -4632,7 +4637,7 @@ var LocalizeMessageStringVisitor = class {
4632
4637
  }
4633
4638
  };
4634
4639
 
4635
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/i18n/serializers/xml_helper.mjs
4640
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/i18n/serializers/xml_helper.mjs
4636
4641
  var _Visitor = class {
4637
4642
  visitTag(tag) {
4638
4643
  const strAttrs = this._serializeAttributes(tag.attrs);
@@ -4660,12 +4665,12 @@ ${doctype.dtd}
4660
4665
  };
4661
4666
  var _visitor = new _Visitor();
4662
4667
 
4663
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/i18n/serializers/xmb.mjs
4668
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/i18n/serializers/xmb.mjs
4664
4669
  function toPublicName(internalName) {
4665
4670
  return internalName.toUpperCase().replace(/[^A-Z0-9_]/g, "_");
4666
4671
  }
4667
4672
 
4668
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/render3/view/i18n/util.mjs
4673
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/render3/view/i18n/util.mjs
4669
4674
  var I18N_ATTR = "i18n";
4670
4675
  var I18N_ATTR_PREFIX = "i18n-";
4671
4676
  var I18N_ICU_VAR_PREFIX = "VAR_";
@@ -4705,7 +4710,7 @@ function formatI18nPlaceholderName(name, useCamelCase = true) {
4705
4710
  return postfix ? `${raw}_${postfix}` : raw;
4706
4711
  }
4707
4712
 
4708
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/render3/view/util.mjs
4713
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/render3/view/util.mjs
4709
4714
  var UNSAFE_OBJECT_KEY_NAME_REGEXP = /[-.]/;
4710
4715
  var TEMPORARY_NAME = "_t";
4711
4716
  var CONTEXT_NAME = "ctx";
@@ -4842,7 +4847,7 @@ function getAttrsForDirectiveMatching(elOrTpl) {
4842
4847
  return attributesMap;
4843
4848
  }
4844
4849
 
4845
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/injectable_compiler_2.mjs
4850
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/injectable_compiler_2.mjs
4846
4851
  function compileInjectable(meta, resolveForwardRefs) {
4847
4852
  let result = null;
4848
4853
  const factoryMeta = {
@@ -4927,7 +4932,7 @@ function createFactoryFunction(type) {
4927
4932
  return arrowFn([new FnParam("t", DYNAMIC_TYPE)], type.prop("\u0275fac").callFn([variable("t")]));
4928
4933
  }
4929
4934
 
4930
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/assertions.mjs
4935
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/assertions.mjs
4931
4936
  var UNUSABLE_INTERPOLATION_REGEXPS = [
4932
4937
  /^\s*$/,
4933
4938
  /[<>]/,
@@ -4949,7 +4954,7 @@ function assertInterpolationSymbols(identifier, value) {
4949
4954
  }
4950
4955
  }
4951
4956
 
4952
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/ml_parser/defaults.mjs
4957
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/ml_parser/defaults.mjs
4953
4958
  var InterpolationConfig = class {
4954
4959
  static fromArray(markers) {
4955
4960
  if (!markers) {
@@ -4966,7 +4971,7 @@ var InterpolationConfig = class {
4966
4971
  var DEFAULT_INTERPOLATION_CONFIG = new InterpolationConfig("{{", "}}");
4967
4972
  var DEFAULT_CONTAINER_BLOCKS = /* @__PURE__ */ new Set(["switch"]);
4968
4973
 
4969
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/chars.mjs
4974
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/chars.mjs
4970
4975
  var $EOF = 0;
4971
4976
  var $BSPACE = 8;
4972
4977
  var $TAB = 9;
@@ -5048,7 +5053,7 @@ function isQuote(code) {
5048
5053
  return code === $SQ || code === $DQ || code === $BT;
5049
5054
  }
5050
5055
 
5051
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/parse_util.mjs
5056
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/parse_util.mjs
5052
5057
  var ParseLocation = class {
5053
5058
  constructor(file, offset, line, col) {
5054
5059
  this.file = file;
@@ -5195,7 +5200,7 @@ function sanitizeIdentifier(name) {
5195
5200
  return name.replace(/\W/g, "_");
5196
5201
  }
5197
5202
 
5198
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/output/abstract_js_emitter.mjs
5203
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/output/abstract_js_emitter.mjs
5199
5204
  var makeTemplateObjectPolyfill = '(this&&this.__makeTemplateObject||function(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e})';
5200
5205
  var AbstractJsEmitterVisitor = class extends AbstractEmitterVisitor {
5201
5206
  constructor() {
@@ -5288,7 +5293,7 @@ var AbstractJsEmitterVisitor = class extends AbstractEmitterVisitor {
5288
5293
  }
5289
5294
  };
5290
5295
 
5291
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/output/output_jit_trusted_types.mjs
5296
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/output/output_jit_trusted_types.mjs
5292
5297
  var policy;
5293
5298
  function getPolicy() {
5294
5299
  if (policy === void 0) {
@@ -5326,7 +5331,7 @@ function newTrustedFunctionForJIT(...args) {
5326
5331
  return fn2.bind(_global);
5327
5332
  }
5328
5333
 
5329
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/output/output_jit.mjs
5334
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/output/output_jit.mjs
5330
5335
  var JitEvaluator = class {
5331
5336
  evaluateStatements(sourceUrl, statements, refResolver, createSourceMaps) {
5332
5337
  const converter = new JitEmitterVisitor(refResolver);
@@ -5417,7 +5422,7 @@ function isUseStrictStatement(statement) {
5417
5422
  return statement.isEquivalent(literal("use strict").toStmt());
5418
5423
  }
5419
5424
 
5420
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/render3/r3_injector_compiler.mjs
5425
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/render3/r3_injector_compiler.mjs
5421
5426
  function compileInjector(meta) {
5422
5427
  const definitionMap = new DefinitionMap();
5423
5428
  if (meta.providers !== null) {
@@ -5434,7 +5439,7 @@ function createInjectorType(meta) {
5434
5439
  return new ExpressionType(importExpr(Identifiers.InjectorDeclaration, [new ExpressionType(meta.type.type)]));
5435
5440
  }
5436
5441
 
5437
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/render3/r3_jit.mjs
5442
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/render3/r3_jit.mjs
5438
5443
  var R3JitReflector = class {
5439
5444
  constructor(context) {
5440
5445
  this.context = context;
@@ -5450,7 +5455,7 @@ var R3JitReflector = class {
5450
5455
  }
5451
5456
  };
5452
5457
 
5453
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/render3/r3_module_compiler.mjs
5458
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/render3/r3_module_compiler.mjs
5454
5459
  var R3SelectorScopeMode;
5455
5460
  (function(R3SelectorScopeMode2) {
5456
5461
  R3SelectorScopeMode2[R3SelectorScopeMode2["Inline"] = 0] = "Inline";
@@ -5591,7 +5596,7 @@ function tupleOfTypes(types) {
5591
5596
  return types.length > 0 ? expressionType(literalArr(typeofTypes)) : NONE_TYPE;
5592
5597
  }
5593
5598
 
5594
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/render3/r3_pipe_compiler.mjs
5599
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/render3/r3_pipe_compiler.mjs
5595
5600
  function compilePipeFromMetadata(metadata) {
5596
5601
  const definitionMapValues = [];
5597
5602
  definitionMapValues.push({ key: "name", value: literal(metadata.pipeName), quoted: false });
@@ -5612,7 +5617,7 @@ function createPipeType(metadata) {
5612
5617
  ]));
5613
5618
  }
5614
5619
 
5615
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/render3/view/api.mjs
5620
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/render3/view/api.mjs
5616
5621
  var R3TemplateDependencyKind;
5617
5622
  (function(R3TemplateDependencyKind2) {
5618
5623
  R3TemplateDependencyKind2[R3TemplateDependencyKind2["Directive"] = 0] = "Directive";
@@ -5620,7 +5625,7 @@ var R3TemplateDependencyKind;
5620
5625
  R3TemplateDependencyKind2[R3TemplateDependencyKind2["NgModule"] = 2] = "NgModule";
5621
5626
  })(R3TemplateDependencyKind || (R3TemplateDependencyKind = {}));
5622
5627
 
5623
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/shadow_css.mjs
5628
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/shadow_css.mjs
5624
5629
  var animationKeywords = /* @__PURE__ */ new Set([
5625
5630
  "inherit",
5626
5631
  "initial",
@@ -6092,7 +6097,7 @@ function repeatGroups(groups, multiples) {
6092
6097
  }
6093
6098
  }
6094
6099
 
6095
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/ir/src/enums.mjs
6100
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/ir/src/enums.mjs
6096
6101
  var OpKind;
6097
6102
  (function(OpKind2) {
6098
6103
  OpKind2[OpKind2["ListEnd"] = 0] = "ListEnd";
@@ -6246,7 +6251,7 @@ var TemplateKind;
6246
6251
  TemplateKind2[TemplateKind2["Block"] = 2] = "Block";
6247
6252
  })(TemplateKind || (TemplateKind = {}));
6248
6253
 
6249
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/ir/src/traits.mjs
6254
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/ir/src/traits.mjs
6250
6255
  var ConsumesSlot = Symbol("ConsumesSlot");
6251
6256
  var DependsOnSlotContext = Symbol("DependsOnSlotContext");
6252
6257
  var ConsumesVarsTrait = Symbol("ConsumesVars");
@@ -6274,7 +6279,7 @@ function hasUsesVarOffsetTrait(expr) {
6274
6279
  return expr[UsesVarOffset] === true;
6275
6280
  }
6276
6281
 
6277
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/ir/src/ops/shared.mjs
6282
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/ir/src/ops/shared.mjs
6278
6283
  function createStatementOp(statement) {
6279
6284
  return __spreadValues({
6280
6285
  kind: OpKind.Statement,
@@ -6296,7 +6301,7 @@ var NEW_OP = {
6296
6301
  next: null
6297
6302
  };
6298
6303
 
6299
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/ir/src/ops/update.mjs
6304
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/ir/src/ops/update.mjs
6300
6305
  function createInterpolateTextOp(xref, interpolation, sourceSpan) {
6301
6306
  return __spreadValues(__spreadValues(__spreadValues({
6302
6307
  kind: OpKind.InterpolateText,
@@ -6477,7 +6482,7 @@ function createI18nApplyOp(owner, handle, sourceSpan) {
6477
6482
  }, NEW_OP);
6478
6483
  }
6479
6484
 
6480
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/ir/src/expression.mjs
6485
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/ir/src/expression.mjs
6481
6486
  var _a;
6482
6487
  var _b;
6483
6488
  var _c;
@@ -7339,7 +7344,7 @@ function isStringLiteral(expr) {
7339
7344
  return expr instanceof LiteralExpr && typeof expr.value === "string";
7340
7345
  }
7341
7346
 
7342
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/ir/src/operations.mjs
7347
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/ir/src/operations.mjs
7343
7348
  var _OpList = class {
7344
7349
  constructor() {
7345
7350
  this.debugListId = _OpList.nextListId++;
@@ -7530,14 +7535,14 @@ var OpList = _OpList;
7530
7535
  _OpList.nextListId = 0;
7531
7536
  })();
7532
7537
 
7533
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/ir/src/handle.mjs
7538
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/ir/src/handle.mjs
7534
7539
  var SlotHandle = class {
7535
7540
  constructor() {
7536
7541
  this.slot = null;
7537
7542
  }
7538
7543
  };
7539
7544
 
7540
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/ir/src/ops/create.mjs
7545
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/ir/src/ops/create.mjs
7541
7546
  var elementContainerOpKinds = /* @__PURE__ */ new Set([
7542
7547
  OpKind.Element,
7543
7548
  OpKind.ElementStart,
@@ -7693,18 +7698,21 @@ function createProjectionDefOp(def) {
7693
7698
  def
7694
7699
  }, NEW_OP);
7695
7700
  }
7696
- function createProjectionOp(xref, selector, i18nPlaceholder, sourceSpan) {
7697
- return __spreadValues(__spreadValues({
7701
+ function createProjectionOp(xref, selector, i18nPlaceholder, fallbackView, sourceSpan) {
7702
+ return __spreadProps(__spreadValues(__spreadValues({
7698
7703
  kind: OpKind.Projection,
7699
7704
  xref,
7700
7705
  handle: new SlotHandle(),
7701
7706
  selector,
7702
7707
  i18nPlaceholder,
7708
+ fallbackView,
7703
7709
  projectionSlotIndex: 0,
7704
7710
  attributes: null,
7705
7711
  localRefs: [],
7706
7712
  sourceSpan
7707
- }, NEW_OP), TRAIT_CONSUMES_SLOT);
7713
+ }, NEW_OP), TRAIT_CONSUMES_SLOT), {
7714
+ numSlotsUsed: fallbackView === null ? 1 : 2
7715
+ });
7708
7716
  }
7709
7717
  function createExtractedAttributeOp(target, bindingKind, namespace, name, expression, i18nContext, i18nMessage, securityContext) {
7710
7718
  return __spreadValues({
@@ -7838,7 +7846,7 @@ function createI18nAttributesOp(xref, handle, target) {
7838
7846
  }, NEW_OP), TRAIT_CONSUMES_SLOT);
7839
7847
  }
7840
7848
 
7841
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/ir/src/ops/host.mjs
7849
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/ir/src/ops/host.mjs
7842
7850
  function createHostPropertyOp(name, expression, isAnimationTrigger, i18nContext, securityContext, sourceSpan) {
7843
7851
  return __spreadValues(__spreadValues({
7844
7852
  kind: OpKind.HostProperty,
@@ -7852,10 +7860,10 @@ function createHostPropertyOp(name, expression, isAnimationTrigger, i18nContext,
7852
7860
  }, TRAIT_CONSUMES_VARS), NEW_OP);
7853
7861
  }
7854
7862
 
7855
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/ir/src/variable.mjs
7863
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/ir/src/variable.mjs
7856
7864
  var CTX_REF = "CTX_REF_MARKER";
7857
7865
 
7858
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/compilation.mjs
7866
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/compilation.mjs
7859
7867
  var CompilationJobKind;
7860
7868
  (function(CompilationJobKind2) {
7861
7869
  CompilationJobKind2[CompilationJobKind2["Tmpl"] = 0] = "Tmpl";
@@ -7963,7 +7971,7 @@ var HostBindingCompilationUnit = class extends CompilationUnit {
7963
7971
  }
7964
7972
  };
7965
7973
 
7966
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/any_cast.mjs
7974
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/any_cast.mjs
7967
7975
  function deleteAnyCasts(job) {
7968
7976
  for (const unit of job.units) {
7969
7977
  for (const op of unit.ops()) {
@@ -7981,7 +7989,7 @@ function removeAnys(e) {
7981
7989
  return e;
7982
7990
  }
7983
7991
 
7984
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/apply_i18n_expressions.mjs
7992
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/apply_i18n_expressions.mjs
7985
7993
  function applyI18nExpressions(job) {
7986
7994
  const i18nContexts = /* @__PURE__ */ new Map();
7987
7995
  for (const unit of job.units) {
@@ -8024,7 +8032,7 @@ function needsApplication(i18nContexts, op) {
8024
8032
  return false;
8025
8033
  }
8026
8034
 
8027
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/assign_i18n_slot_dependencies.mjs
8035
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/assign_i18n_slot_dependencies.mjs
8028
8036
  function assignI18nSlotDependencies(job) {
8029
8037
  for (const unit of job.units) {
8030
8038
  let updateOp = unit.update.head;
@@ -8069,7 +8077,7 @@ function assignI18nSlotDependencies(job) {
8069
8077
  }
8070
8078
  }
8071
8079
 
8072
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/util/elements.mjs
8080
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/util/elements.mjs
8073
8081
  function createOpXrefMap(unit) {
8074
8082
  const map = /* @__PURE__ */ new Map();
8075
8083
  for (const op of unit.create) {
@@ -8084,7 +8092,7 @@ function createOpXrefMap(unit) {
8084
8092
  return map;
8085
8093
  }
8086
8094
 
8087
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/attribute_extraction.mjs
8095
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/attribute_extraction.mjs
8088
8096
  function extractAttributes(job) {
8089
8097
  for (const unit of job.units) {
8090
8098
  const elements = createOpXrefMap(unit);
@@ -8213,7 +8221,7 @@ function extractAttributeOp(unit, op, elements) {
8213
8221
  }
8214
8222
  }
8215
8223
 
8216
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/binding_specialization.mjs
8224
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/binding_specialization.mjs
8217
8225
  function lookupElement2(elements, xref) {
8218
8226
  const el = elements.get(xref);
8219
8227
  if (el === void 0) {
@@ -8270,7 +8278,7 @@ function specializeBindings(job) {
8270
8278
  }
8271
8279
  }
8272
8280
 
8273
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/chaining.mjs
8281
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/chaining.mjs
8274
8282
  var CHAINABLE = /* @__PURE__ */ new Set([
8275
8283
  Identifiers.attribute,
8276
8284
  Identifiers.classProp,
@@ -8338,7 +8346,7 @@ function chainOperationsInList(opList) {
8338
8346
  }
8339
8347
  }
8340
8348
 
8341
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/collapse_singleton_interpolations.mjs
8349
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/collapse_singleton_interpolations.mjs
8342
8350
  function collapseSingletonInterpolations(job) {
8343
8351
  for (const unit of job.units) {
8344
8352
  for (const op of unit.update) {
@@ -8350,7 +8358,7 @@ function collapseSingletonInterpolations(job) {
8350
8358
  }
8351
8359
  }
8352
8360
 
8353
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/conditionals.mjs
8361
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/conditionals.mjs
8354
8362
  function generateConditionalExpressions(job) {
8355
8363
  for (const unit of job.units) {
8356
8364
  for (const op of unit.ops()) {
@@ -8387,7 +8395,7 @@ function generateConditionalExpressions(job) {
8387
8395
  }
8388
8396
  }
8389
8397
 
8390
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/conversion.mjs
8398
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/conversion.mjs
8391
8399
  var BINARY_OPERATORS = /* @__PURE__ */ new Map([
8392
8400
  ["&&", BinaryOperator.And],
8393
8401
  [">", BinaryOperator.Bigger],
@@ -8438,7 +8446,7 @@ function literalOrArrayLiteral(value) {
8438
8446
  return literal(value);
8439
8447
  }
8440
8448
 
8441
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/const_collection.mjs
8449
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/const_collection.mjs
8442
8450
  function collectElementConsts(job) {
8443
8451
  const allElementAttributes = /* @__PURE__ */ new Map();
8444
8452
  for (const unit of job.units) {
@@ -8607,7 +8615,7 @@ function serializeAttributes({ attributes, bindings, classes, i18n: i18n2, proje
8607
8615
  return literalArr(attrArray);
8608
8616
  }
8609
8617
 
8610
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/convert_i18n_bindings.mjs
8618
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/convert_i18n_bindings.mjs
8611
8619
  function convertI18nBindings(job) {
8612
8620
  const i18nAttributesByElem = /* @__PURE__ */ new Map();
8613
8621
  for (const unit of job.units) {
@@ -8648,7 +8656,7 @@ function convertI18nBindings(job) {
8648
8656
  }
8649
8657
  }
8650
8658
 
8651
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/resolve_defer_deps_fns.mjs
8659
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/resolve_defer_deps_fns.mjs
8652
8660
  function resolveDeferDepsFns(job) {
8653
8661
  var _a2;
8654
8662
  for (const unit of job.units) {
@@ -8673,7 +8681,7 @@ function resolveDeferDepsFns(job) {
8673
8681
  }
8674
8682
  }
8675
8683
 
8676
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/create_i18n_contexts.mjs
8684
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/create_i18n_contexts.mjs
8677
8685
  function createI18nContexts(job) {
8678
8686
  const attrContextByMessage = /* @__PURE__ */ new Map();
8679
8687
  for (const unit of job.units) {
@@ -8751,7 +8759,7 @@ function createI18nContexts(job) {
8751
8759
  }
8752
8760
  }
8753
8761
 
8754
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/deduplicate_text_bindings.mjs
8762
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/deduplicate_text_bindings.mjs
8755
8763
  function deduplicateTextBindings(job) {
8756
8764
  const seen = /* @__PURE__ */ new Map();
8757
8765
  for (const unit of job.units) {
@@ -8773,7 +8781,7 @@ function deduplicateTextBindings(job) {
8773
8781
  }
8774
8782
  }
8775
8783
 
8776
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/defer_configs.mjs
8784
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/defer_configs.mjs
8777
8785
  function configureDeferInstructions(job) {
8778
8786
  for (const unit of job.units) {
8779
8787
  for (const op of unit.create) {
@@ -8790,7 +8798,7 @@ function configureDeferInstructions(job) {
8790
8798
  }
8791
8799
  }
8792
8800
 
8793
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/defer_resolve_targets.mjs
8801
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/defer_resolve_targets.mjs
8794
8802
  function resolveDeferTargetNames(job) {
8795
8803
  const scopes = /* @__PURE__ */ new Map();
8796
8804
  function getScopeForView2(view) {
@@ -8884,7 +8892,7 @@ var Scope = class {
8884
8892
  }
8885
8893
  };
8886
8894
 
8887
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/empty_elements.mjs
8895
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/empty_elements.mjs
8888
8896
  var REPLACEMENTS = /* @__PURE__ */ new Map([
8889
8897
  [OpKind.ElementEnd, [OpKind.ElementStart, OpKind.Element]],
8890
8898
  [OpKind.ContainerEnd, [OpKind.ContainerStart, OpKind.Container]],
@@ -8911,7 +8919,7 @@ function collapseEmptyInstructions(job) {
8911
8919
  }
8912
8920
  }
8913
8921
 
8914
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/expand_safe_reads.mjs
8922
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/expand_safe_reads.mjs
8915
8923
  function expandSafeReads(job) {
8916
8924
  for (const unit of job.units) {
8917
8925
  for (const op of unit.ops()) {
@@ -9047,7 +9055,7 @@ function ternaryTransform(e) {
9047
9055
  return new ConditionalExpr(new BinaryOperatorExpr(BinaryOperator.Equals, e.guard, NULL_EXPR), NULL_EXPR, e.expr);
9048
9056
  }
9049
9057
 
9050
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/extract_i18n_messages.mjs
9058
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/extract_i18n_messages.mjs
9051
9059
  var ESCAPE = "\uFFFD";
9052
9060
  var ELEMENT_MARKER = "#";
9053
9061
  var TEMPLATE_MARKER = "*";
@@ -9183,7 +9191,7 @@ function formatValue(value) {
9183
9191
  return `${ESCAPE}${closeMarker}${tagMarker}${value.value}${context}${ESCAPE}`;
9184
9192
  }
9185
9193
 
9186
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/generate_advance.mjs
9194
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/generate_advance.mjs
9187
9195
  function generateAdvance(job) {
9188
9196
  for (const unit of job.units) {
9189
9197
  const slotMap = /* @__PURE__ */ new Map();
@@ -9215,7 +9223,7 @@ function generateAdvance(job) {
9215
9223
  }
9216
9224
  }
9217
9225
 
9218
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/generate_projection_def.mjs
9226
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/generate_projection_def.mjs
9219
9227
  function generateProjectionDefs(job) {
9220
9228
  const share = job.compatibility === CompatibilityMode.TemplateDefinitionBuilder;
9221
9229
  const selectors = [];
@@ -9239,7 +9247,7 @@ function generateProjectionDefs(job) {
9239
9247
  }
9240
9248
  }
9241
9249
 
9242
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/generate_variables.mjs
9250
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/generate_variables.mjs
9243
9251
  function generateVariables(job) {
9244
9252
  recursivelyProcessView(job.root, null);
9245
9253
  }
@@ -9250,6 +9258,11 @@ function recursivelyProcessView(view, parentScope) {
9250
9258
  case OpKind.Template:
9251
9259
  recursivelyProcessView(view.job.views.get(op.xref), scope);
9252
9260
  break;
9261
+ case OpKind.Projection:
9262
+ if (op.fallbackView !== null) {
9263
+ recursivelyProcessView(view.job.views.get(op.fallbackView), scope);
9264
+ }
9265
+ break;
9253
9266
  case OpKind.RepeaterCreate:
9254
9267
  recursivelyProcessView(view.job.views.get(op.xref), scope);
9255
9268
  if (op.emptyView) {
@@ -9333,7 +9346,7 @@ function generateVariablesInScopeForView(view, scope) {
9333
9346
  return newOps;
9334
9347
  }
9335
9348
 
9336
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/has_const_expression_collection.mjs
9349
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/has_const_expression_collection.mjs
9337
9350
  function collectConstExpressions(job) {
9338
9351
  for (const unit of job.units) {
9339
9352
  for (const op of unit.ops()) {
@@ -9347,7 +9360,7 @@ function collectConstExpressions(job) {
9347
9360
  }
9348
9361
  }
9349
9362
 
9350
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/host_style_property_parsing.mjs
9363
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/host_style_property_parsing.mjs
9351
9364
  var STYLE_DOT = "style.";
9352
9365
  var CLASS_DOT = "class.";
9353
9366
  var STYLE_BANG = "style!";
@@ -9405,7 +9418,7 @@ function parseProperty(name) {
9405
9418
  return { property: property2, suffix };
9406
9419
  }
9407
9420
 
9408
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/output/map_util.mjs
9421
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/output/map_util.mjs
9409
9422
  function mapLiteral(obj, quoted = false) {
9410
9423
  return literalMap(Object.keys(obj).map((key) => ({
9411
9424
  key,
@@ -9414,7 +9427,7 @@ function mapLiteral(obj, quoted = false) {
9414
9427
  })));
9415
9428
  }
9416
9429
 
9417
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/render3/view/i18n/icu_serializer.mjs
9430
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/render3/view/i18n/icu_serializer.mjs
9418
9431
  var IcuSerializerVisitor = class {
9419
9432
  visitText(text2) {
9420
9433
  return text2.value;
@@ -9448,7 +9461,7 @@ function serializeIcuNode(icu) {
9448
9461
  return icu.visit(serializer);
9449
9462
  }
9450
9463
 
9451
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/expression_parser/lexer.mjs
9464
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/expression_parser/lexer.mjs
9452
9465
  var TokenType;
9453
9466
  (function(TokenType2) {
9454
9467
  TokenType2[TokenType2["Character"] = 0] = "Character";
@@ -9809,7 +9822,7 @@ function parseIntAutoRadix(text2) {
9809
9822
  return result;
9810
9823
  }
9811
9824
 
9812
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/expression_parser/parser.mjs
9825
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/expression_parser/parser.mjs
9813
9826
  var SplitInterpolation = class {
9814
9827
  constructor(strings, expressions, offsets) {
9815
9828
  this.strings = strings;
@@ -10691,7 +10704,7 @@ function getIndexMapForOriginalTemplate(interpolatedTokens) {
10691
10704
  return offsetMap;
10692
10705
  }
10693
10706
 
10694
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/ml_parser/ast.mjs
10707
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/ml_parser/ast.mjs
10695
10708
  var NodeWithI18n = class {
10696
10709
  constructor(sourceSpan, i18n2) {
10697
10710
  this.sourceSpan = sourceSpan;
@@ -10802,7 +10815,7 @@ function visitAll2(visitor, nodes, context = null) {
10802
10815
  return result;
10803
10816
  }
10804
10817
 
10805
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/schema/dom_security_schema.mjs
10818
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/schema/dom_security_schema.mjs
10806
10819
  var _SECURITY_SCHEMA;
10807
10820
  function SECURITY_SCHEMA() {
10808
10821
  if (!_SECURITY_SCHEMA) {
@@ -10860,11 +10873,11 @@ function isIframeSecuritySensitiveAttr(attrName) {
10860
10873
  return IFRAME_SECURITY_SENSITIVE_ATTRS.has(attrName.toLowerCase());
10861
10874
  }
10862
10875
 
10863
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/schema/element_schema_registry.mjs
10876
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/schema/element_schema_registry.mjs
10864
10877
  var ElementSchemaRegistry = class {
10865
10878
  };
10866
10879
 
10867
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/schema/dom_element_schema_registry.mjs
10880
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/schema/dom_element_schema_registry.mjs
10868
10881
  var BOOLEAN = "boolean";
10869
10882
  var NUMBER = "number";
10870
10883
  var STRING = "string";
@@ -11217,7 +11230,7 @@ function _isPixelDimensionStyle(prop) {
11217
11230
  }
11218
11231
  }
11219
11232
 
11220
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/ml_parser/html_tags.mjs
11233
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/ml_parser/html_tags.mjs
11221
11234
  var HtmlTagDefinition = class {
11222
11235
  constructor({ closedByChildren, implicitNamespacePrefix, contentType = TagContentType.PARSABLE_DATA, closedByParent = false, isVoid = false, ignoreFirstLf = false, preventNamespaceInheritance = false, canSelfClose = false } = {}) {
11223
11236
  this.closedByChildren = {};
@@ -11335,7 +11348,7 @@ function getHtmlTagDefinition(tagName) {
11335
11348
  return (_b2 = (_a2 = TAG_DEFINITIONS[tagName]) != null ? _a2 : TAG_DEFINITIONS[tagName.toLowerCase()]) != null ? _b2 : DEFAULT_TAG_DEFINITION;
11336
11349
  }
11337
11350
 
11338
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/i18n/serializers/placeholder.mjs
11351
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/i18n/serializers/placeholder.mjs
11339
11352
  var TAG_TO_PLACEHOLDER_NAMES = {
11340
11353
  "A": "LINK",
11341
11354
  "B": "BOLD_TEXT",
@@ -11457,7 +11470,7 @@ var PlaceholderRegistry = class {
11457
11470
  }
11458
11471
  };
11459
11472
 
11460
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/i18n/i18n_parser.mjs
11473
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/i18n/i18n_parser.mjs
11461
11474
  var _expParser = new Parser(new Lexer());
11462
11475
  function createI18nMessageFactory(interpolationConfig, containerBlocks) {
11463
11476
  const visitor = new _I18nVisitor(_expParser, interpolationConfig, containerBlocks);
@@ -11636,14 +11649,14 @@ function extractPlaceholderName(input) {
11636
11649
  return input.split(_CUSTOM_PH_EXP)[2];
11637
11650
  }
11638
11651
 
11639
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/i18n/parse_util.mjs
11652
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/i18n/parse_util.mjs
11640
11653
  var I18nError = class extends ParseError {
11641
11654
  constructor(span, msg) {
11642
11655
  super(span, msg);
11643
11656
  }
11644
11657
  };
11645
11658
 
11646
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/ml_parser/entities.mjs
11659
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/ml_parser/entities.mjs
11647
11660
  var NAMED_ENTITIES = {
11648
11661
  "AElig": "\xC6",
11649
11662
  "AMP": "&",
@@ -13774,7 +13787,7 @@ var NAMED_ENTITIES = {
13774
13787
  var NGSP_UNICODE = "\uE500";
13775
13788
  NAMED_ENTITIES["ngsp"] = NGSP_UNICODE;
13776
13789
 
13777
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/ml_parser/lexer.mjs
13790
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/ml_parser/lexer.mjs
13778
13791
  var TokenError = class extends ParseError {
13779
13792
  constructor(errorMsg, tokenType, span) {
13780
13793
  super(span, errorMsg);
@@ -14695,7 +14708,7 @@ var CursorError = class {
14695
14708
  }
14696
14709
  };
14697
14710
 
14698
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/ml_parser/parser.mjs
14711
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/ml_parser/parser.mjs
14699
14712
  var TreeError = class extends ParseError {
14700
14713
  static create(elementName, span, msg) {
14701
14714
  return new TreeError(elementName, span, msg);
@@ -15079,7 +15092,7 @@ function decodeEntity(match, entity) {
15079
15092
  return match;
15080
15093
  }
15081
15094
 
15082
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/schema/trusted_types_sinks.mjs
15095
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/schema/trusted_types_sinks.mjs
15083
15096
  var TRUSTED_TYPES_SINKS = /* @__PURE__ */ new Set([
15084
15097
  "iframe|srcdoc",
15085
15098
  "*|innerhtml",
@@ -15094,7 +15107,7 @@ function isTrustedTypesSink(tagName, propName) {
15094
15107
  return TRUSTED_TYPES_SINKS.has(tagName + "|" + propName) || TRUSTED_TYPES_SINKS.has("*|" + propName);
15095
15108
  }
15096
15109
 
15097
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/render3/view/i18n/meta.mjs
15110
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/render3/view/i18n/meta.mjs
15098
15111
  var setI18nRefs = (htmlNode, i18nNode) => {
15099
15112
  if (htmlNode instanceof NodeWithI18n) {
15100
15113
  if (i18nNode instanceof IcuPlaceholder && htmlNode.i18n instanceof Message) {
@@ -15251,7 +15264,7 @@ function i18nMetaToJSDoc(meta) {
15251
15264
  return jsDocComment(tags);
15252
15265
  }
15253
15266
 
15254
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/render3/view/i18n/get_msg_utils.mjs
15267
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/render3/view/i18n/get_msg_utils.mjs
15255
15268
  var GOOG_GET_MSG = "goog.getMsg";
15256
15269
  function createGoogleGetMsgStatements(variable2, message, closureVar, placeholderValues) {
15257
15270
  const messageString = serializeI18nMessageForGetMsg(message);
@@ -15302,7 +15315,7 @@ function serializeI18nMessageForGetMsg(message) {
15302
15315
  return message.nodes.map((node) => node.visit(serializerVisitor2, null)).join("");
15303
15316
  }
15304
15317
 
15305
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/render3/view/i18n/localize_utils.mjs
15318
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/render3/view/i18n/localize_utils.mjs
15306
15319
  function createLocalizeStatements(variable2, message, params) {
15307
15320
  const { messageParts, placeHolders } = serializeI18nMessageForLocalize(message);
15308
15321
  const sourceSpan = getSourceSpan(message);
@@ -15391,7 +15404,7 @@ function createEmptyMessagePart(location) {
15391
15404
  return new LiteralPiece("", new ParseSourceSpan(location, location));
15392
15405
  }
15393
15406
 
15394
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/i18n_const_collection.mjs
15407
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/i18n_const_collection.mjs
15395
15408
  var NG_I18N_CLOSURE_MODE = "ngI18nClosureMode";
15396
15409
  var TRANSLATION_VAR_PREFIX = "i18n_";
15397
15410
  var I18N_ICU_MAPPING_PREFIX = "I18N_EXP_";
@@ -15559,7 +15572,7 @@ function i18nGenerateClosureVar(pool, messageId, fileBasedI18nSuffix, useExterna
15559
15572
  return variable(name);
15560
15573
  }
15561
15574
 
15562
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/i18n_text_extraction.mjs
15575
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/i18n_text_extraction.mjs
15563
15576
  function convertI18nText(job) {
15564
15577
  var _a2, _b2, _c2;
15565
15578
  for (const unit of job.units) {
@@ -15629,7 +15642,7 @@ function convertI18nText(job) {
15629
15642
  }
15630
15643
  }
15631
15644
 
15632
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/local_refs.mjs
15645
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/local_refs.mjs
15633
15646
  function liftLocalRefs(job) {
15634
15647
  for (const unit of job.units) {
15635
15648
  for (const op of unit.create) {
@@ -15659,7 +15672,7 @@ function serializeLocalRefs(refs) {
15659
15672
  return literalArr(constRefs);
15660
15673
  }
15661
15674
 
15662
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/namespace.mjs
15675
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/namespace.mjs
15663
15676
  function emitNamespaceChanges(job) {
15664
15677
  for (const unit of job.units) {
15665
15678
  let activeNamespace = Namespace.HTML;
@@ -15675,7 +15688,7 @@ function emitNamespaceChanges(job) {
15675
15688
  }
15676
15689
  }
15677
15690
 
15678
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/parse_extracted_styles.mjs
15691
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/parse_extracted_styles.mjs
15679
15692
  function parse(value) {
15680
15693
  const styles = [];
15681
15694
  let i = 0;
@@ -15769,7 +15782,7 @@ function parseExtractedStyles(job) {
15769
15782
  }
15770
15783
  }
15771
15784
 
15772
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/naming.mjs
15785
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/naming.mjs
15773
15786
  function nameFunctionsAndVariables(job) {
15774
15787
  addNamesToView(job.root, job.componentName, { index: 0 }, job.compatibility === CompatibilityMode.TemplateDefinitionBuilder);
15775
15788
  }
@@ -15830,6 +15843,18 @@ function addNamesToView(unit, baseName, state, compatibility) {
15830
15843
  }
15831
15844
  addNamesToView(unit.job.views.get(op.xref), `${baseName}_${op.functionNameSuffix}_${op.handle.slot + 1}`, state, compatibility);
15832
15845
  break;
15846
+ case OpKind.Projection:
15847
+ if (!(unit instanceof ViewCompilationUnit)) {
15848
+ throw new Error(`AssertionError: must be compiling a component`);
15849
+ }
15850
+ if (op.handle.slot === null) {
15851
+ throw new Error(`Expected slot to be assigned`);
15852
+ }
15853
+ if (op.fallbackView !== null) {
15854
+ const fallbackView = unit.job.views.get(op.fallbackView);
15855
+ addNamesToView(fallbackView, `${baseName}_ProjectionFallback_${op.handle.slot}`, state, compatibility);
15856
+ }
15857
+ break;
15833
15858
  case OpKind.Template:
15834
15859
  if (!(unit instanceof ViewCompilationUnit)) {
15835
15860
  throw new Error(`AssertionError: must be compiling a component`);
@@ -15898,7 +15923,7 @@ function stripImportant(name) {
15898
15923
  return name;
15899
15924
  }
15900
15925
 
15901
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/next_context_merging.mjs
15926
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/next_context_merging.mjs
15902
15927
  function mergeNextContextExpressions(job) {
15903
15928
  for (const unit of job.units) {
15904
15929
  for (const op of unit.create) {
@@ -15944,7 +15969,7 @@ function mergeNextContextsInOps(ops) {
15944
15969
  }
15945
15970
  }
15946
15971
 
15947
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/ng_container.mjs
15972
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/ng_container.mjs
15948
15973
  var CONTAINER_TAG = "ng-container";
15949
15974
  function generateNgContainerOps(job) {
15950
15975
  for (const unit of job.units) {
@@ -15961,7 +15986,7 @@ function generateNgContainerOps(job) {
15961
15986
  }
15962
15987
  }
15963
15988
 
15964
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/nonbindable.mjs
15989
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/nonbindable.mjs
15965
15990
  function lookupElement3(elements, xref) {
15966
15991
  const el = elements.get(xref);
15967
15992
  if (el === void 0) {
@@ -15991,7 +16016,7 @@ function disableBindings(job) {
15991
16016
  }
15992
16017
  }
15993
16018
 
15994
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/nullish_coalescing.mjs
16019
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/nullish_coalescing.mjs
15995
16020
  function generateNullishCoalesceExpressions(job) {
15996
16021
  for (const unit of job.units) {
15997
16022
  for (const op of unit.ops()) {
@@ -16007,7 +16032,7 @@ function generateNullishCoalesceExpressions(job) {
16007
16032
  }
16008
16033
  }
16009
16034
 
16010
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/ordering.mjs
16035
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/ordering.mjs
16011
16036
  function kindTest(kind) {
16012
16037
  return (op) => op.kind === kind;
16013
16038
  }
@@ -16097,7 +16122,7 @@ function keepLast(ops) {
16097
16122
  return ops.slice(ops.length - 1);
16098
16123
  }
16099
16124
 
16100
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/phase_remove_content_selectors.mjs
16125
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/phase_remove_content_selectors.mjs
16101
16126
  function removeContentSelectors(job) {
16102
16127
  for (const unit of job.units) {
16103
16128
  const elements = createOpXrefMap(unit);
@@ -16124,7 +16149,7 @@ function lookupInXrefMap(map, xref) {
16124
16149
  return el;
16125
16150
  }
16126
16151
 
16127
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/pipe_creation.mjs
16152
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/pipe_creation.mjs
16128
16153
  function createPipes(job) {
16129
16154
  for (const unit of job.units) {
16130
16155
  processPipeBindingsInView(unit);
@@ -16172,7 +16197,7 @@ function addPipeToCreationBlock(unit, afterTargetXref, binding) {
16172
16197
  throw new Error(`AssertionError: unable to find insertion point for pipe ${binding.name}`);
16173
16198
  }
16174
16199
 
16175
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/pipe_variadic.mjs
16200
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/pipe_variadic.mjs
16176
16201
  function createVariadicPipes(job) {
16177
16202
  for (const unit of job.units) {
16178
16203
  for (const op of unit.update) {
@@ -16189,7 +16214,7 @@ function createVariadicPipes(job) {
16189
16214
  }
16190
16215
  }
16191
16216
 
16192
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/propagate_i18n_blocks.mjs
16217
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/propagate_i18n_blocks.mjs
16193
16218
  function propagateI18nBlocks(job) {
16194
16219
  propagateI18nBlocksToTemplates(job.root, 0);
16195
16220
  }
@@ -16243,7 +16268,7 @@ function wrapTemplateWithI18n(unit, parentI18n) {
16243
16268
  }
16244
16269
  }
16245
16270
 
16246
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/pure_function_extraction.mjs
16271
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/pure_function_extraction.mjs
16247
16272
  function extractPureFunctions(job) {
16248
16273
  for (const view of job.units) {
16249
16274
  for (const op of view.ops()) {
@@ -16285,7 +16310,7 @@ var PureFunctionConstant = class extends GenericKeyFn {
16285
16310
  }
16286
16311
  };
16287
16312
 
16288
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/pure_literal_structures.mjs
16313
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/pure_literal_structures.mjs
16289
16314
  function generatePureLiteralStructures(job) {
16290
16315
  for (const unit of job.units) {
16291
16316
  for (const op of unit.update) {
@@ -16332,7 +16357,7 @@ function transformLiteralMap(expr) {
16332
16357
  return new PureFunctionExpr(literalMap(derivedEntries), nonConstantArgs);
16333
16358
  }
16334
16359
 
16335
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/instruction.mjs
16360
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/instruction.mjs
16336
16361
  function element(slot, tag, constIndex, localRefIndex, sourceSpan) {
16337
16362
  return elementOrContainerBase(Identifiers.element, slot, tag, constIndex, localRefIndex, sourceSpan);
16338
16363
  }
@@ -16496,13 +16521,19 @@ function deferOn(trigger, args, prefetch, sourceSpan) {
16496
16521
  function projectionDef(def) {
16497
16522
  return call(Identifiers.projectionDef, def ? [def] : [], null);
16498
16523
  }
16499
- function projection(slot, projectionSlotIndex, attributes, sourceSpan) {
16524
+ function projection(slot, projectionSlotIndex, attributes, fallbackFnName, fallbackDecls, fallbackVars, sourceSpan) {
16500
16525
  const args = [literal(slot)];
16501
- if (projectionSlotIndex !== 0 || attributes !== null) {
16526
+ if (projectionSlotIndex !== 0 || attributes !== null || fallbackFnName !== null) {
16502
16527
  args.push(literal(projectionSlotIndex));
16503
16528
  if (attributes !== null) {
16504
16529
  args.push(attributes);
16505
16530
  }
16531
+ if (fallbackFnName !== null) {
16532
+ if (attributes === null) {
16533
+ args.push(literal(null));
16534
+ }
16535
+ args.push(variable(fallbackFnName), literal(fallbackDecls), literal(fallbackVars));
16536
+ }
16506
16537
  }
16507
16538
  return call(Identifiers.projection, args, sourceSpan);
16508
16539
  }
@@ -16867,7 +16898,7 @@ function callVariadicInstruction(config, baseArgs, interpolationArgs, extraArgs,
16867
16898
  return createStatementOp(callVariadicInstructionExpr(config, baseArgs, interpolationArgs, extraArgs, sourceSpan).toStmt());
16868
16899
  }
16869
16900
 
16870
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/reify.mjs
16901
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/reify.mjs
16871
16902
  var GLOBAL_TARGET_RESOLVERS = /* @__PURE__ */ new Map([
16872
16903
  ["window", Identifiers.resolveWindow],
16873
16904
  ["document", Identifiers.resolveDocument],
@@ -17005,7 +17036,25 @@ function reifyCreateOperations(unit, ops) {
17005
17036
  if (op.handle.slot === null) {
17006
17037
  throw new Error("No slot was assigned for project instruction");
17007
17038
  }
17008
- OpList.replace(op, projection(op.handle.slot, op.projectionSlotIndex, op.attributes, op.sourceSpan));
17039
+ let fallbackViewFnName = null;
17040
+ let fallbackDecls = null;
17041
+ let fallbackVars = null;
17042
+ if (op.fallbackView !== null) {
17043
+ if (!(unit instanceof ViewCompilationUnit)) {
17044
+ throw new Error(`AssertionError: must be compiling a component`);
17045
+ }
17046
+ const fallbackView = unit.job.views.get(op.fallbackView);
17047
+ if (fallbackView === void 0) {
17048
+ throw new Error("AssertionError: projection had fallback view xref, but fallback view was not found");
17049
+ }
17050
+ if (fallbackView.fnName === null || fallbackView.decls === null || fallbackView.vars === null) {
17051
+ throw new Error(`AssertionError: expected projection fallback view to have been named and counted`);
17052
+ }
17053
+ fallbackViewFnName = fallbackView.fnName;
17054
+ fallbackDecls = fallbackView.decls;
17055
+ fallbackVars = fallbackView.vars;
17056
+ }
17057
+ OpList.replace(op, projection(op.handle.slot, op.projectionSlotIndex, op.attributes, fallbackViewFnName, fallbackDecls, fallbackVars, op.sourceSpan));
17009
17058
  break;
17010
17059
  case OpKind.RepeaterCreate:
17011
17060
  if (op.handle.slot === null) {
@@ -17208,7 +17257,7 @@ function reifyListenerHandler(unit, name, handlerOps, consumesDollarEvent) {
17208
17257
  return fn(params, handlerStmts, void 0, void 0, name);
17209
17258
  }
17210
17259
 
17211
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/remove_empty_bindings.mjs
17260
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/remove_empty_bindings.mjs
17212
17261
  function removeEmptyBindings(job) {
17213
17262
  for (const unit of job.units) {
17214
17263
  for (const op of unit.update) {
@@ -17229,7 +17278,7 @@ function removeEmptyBindings(job) {
17229
17278
  }
17230
17279
  }
17231
17280
 
17232
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/remove_i18n_contexts.mjs
17281
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/remove_i18n_contexts.mjs
17233
17282
  function removeI18nContexts(job) {
17234
17283
  for (const unit of job.units) {
17235
17284
  for (const op of unit.create) {
@@ -17245,7 +17294,7 @@ function removeI18nContexts(job) {
17245
17294
  }
17246
17295
  }
17247
17296
 
17248
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/remove_unused_i18n_attrs.mjs
17297
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/remove_unused_i18n_attrs.mjs
17249
17298
  function removeUnusedI18nAttributesOps(job) {
17250
17299
  for (const unit of job.units) {
17251
17300
  const ownersWithI18nExpressions = /* @__PURE__ */ new Set();
@@ -17267,7 +17316,7 @@ function removeUnusedI18nAttributesOps(job) {
17267
17316
  }
17268
17317
  }
17269
17318
 
17270
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/resolve_contexts.mjs
17319
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/resolve_contexts.mjs
17271
17320
  function resolveContexts(job) {
17272
17321
  for (const unit of job.units) {
17273
17322
  processLexicalScope(unit, unit.create);
@@ -17309,7 +17358,7 @@ function processLexicalScope(view, ops) {
17309
17358
  }
17310
17359
  }
17311
17360
 
17312
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/resolve_dollar_event.mjs
17361
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/resolve_dollar_event.mjs
17313
17362
  function resolveDollarEvent(job) {
17314
17363
  for (const unit of job.units) {
17315
17364
  transformDollarEvent(unit.create);
@@ -17332,7 +17381,7 @@ function transformDollarEvent(ops) {
17332
17381
  }
17333
17382
  }
17334
17383
 
17335
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/resolve_i18n_element_placeholders.mjs
17384
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/resolve_i18n_element_placeholders.mjs
17336
17385
  function resolveI18nElementPlaceholders(job) {
17337
17386
  const i18nContexts = /* @__PURE__ */ new Map();
17338
17387
  const elements = /* @__PURE__ */ new Map();
@@ -17511,7 +17560,7 @@ function addParam(params, placeholder, value, subTemplateIndex, flags) {
17511
17560
  params.set(placeholder, values);
17512
17561
  }
17513
17562
 
17514
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/resolve_i18n_expression_placeholders.mjs
17563
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/resolve_i18n_expression_placeholders.mjs
17515
17564
  function resolveI18nExpressionPlaceholders(job) {
17516
17565
  var _a2;
17517
17566
  const subTemplateIndices = /* @__PURE__ */ new Map();
@@ -17564,7 +17613,7 @@ function updatePlaceholder(op, value, i18nContexts, icuPlaceholders) {
17564
17613
  }
17565
17614
  }
17566
17615
 
17567
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/resolve_names.mjs
17616
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/resolve_names.mjs
17568
17617
  function resolveNames(job) {
17569
17618
  for (const unit of job.units) {
17570
17619
  processLexicalScope2(unit, unit.create, null);
@@ -17629,7 +17678,7 @@ function processLexicalScope2(unit, ops, savedView) {
17629
17678
  }
17630
17679
  }
17631
17680
 
17632
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/resolve_sanitizers.mjs
17681
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/resolve_sanitizers.mjs
17633
17682
  var sanitizerFns = /* @__PURE__ */ new Map([
17634
17683
  [SecurityContext.HTML, Identifiers.sanitizeHtml],
17635
17684
  [SecurityContext.RESOURCE_URL, Identifiers.sanitizeResourceUrl],
@@ -17699,7 +17748,7 @@ function getOnlySecurityContext(securityContext) {
17699
17748
  return securityContext;
17700
17749
  }
17701
17750
 
17702
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/transform_two_way_binding_set.mjs
17751
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/transform_two_way_binding_set.mjs
17703
17752
  function transformTwoWayBindingSet(job) {
17704
17753
  for (const unit of job.units) {
17705
17754
  for (const op of unit.create) {
@@ -17749,7 +17798,7 @@ function wrapAction(target, value) {
17749
17798
  throw new Error(`Unsupported expression in two-way action binding.`);
17750
17799
  }
17751
17800
 
17752
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/save_restore_view.mjs
17801
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/save_restore_view.mjs
17753
17802
  function saveAndRestoreView(job) {
17754
17803
  for (const unit of job.units) {
17755
17804
  unit.create.prepend([
@@ -17794,7 +17843,7 @@ function addSaveRestoreViewOperationToListener(unit, op) {
17794
17843
  }
17795
17844
  }
17796
17845
 
17797
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/slot_allocation.mjs
17846
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/slot_allocation.mjs
17798
17847
  function allocateSlots(job) {
17799
17848
  const slotMap = /* @__PURE__ */ new Map();
17800
17849
  for (const unit of job.units) {
@@ -17819,7 +17868,7 @@ function allocateSlots(job) {
17819
17868
  }
17820
17869
  }
17821
17870
 
17822
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/style_binding_specialization.mjs
17871
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/style_binding_specialization.mjs
17823
17872
  function specializeStyleBindings(job) {
17824
17873
  for (const unit of job.units) {
17825
17874
  for (const op of unit.update) {
@@ -17849,7 +17898,7 @@ function specializeStyleBindings(job) {
17849
17898
  }
17850
17899
  }
17851
17900
 
17852
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/temporary_variables.mjs
17901
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/temporary_variables.mjs
17853
17902
  function generateTemporaryVariables(job) {
17854
17903
  for (const unit of job.units) {
17855
17904
  unit.create.prepend(generateTemporaries(unit.create));
@@ -17907,7 +17956,7 @@ function assignName(names, expr) {
17907
17956
  expr.name = name;
17908
17957
  }
17909
17958
 
17910
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/track_fn_generation.mjs
17959
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/track_fn_generation.mjs
17911
17960
  function generateTrackFns(job) {
17912
17961
  for (const unit of job.units) {
17913
17962
  for (const op of unit.create) {
@@ -17940,7 +17989,7 @@ function generateTrackFns(job) {
17940
17989
  }
17941
17990
  }
17942
17991
 
17943
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/track_fn_optimization.mjs
17992
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/track_fn_optimization.mjs
17944
17993
  function optimizeTrackFns(job) {
17945
17994
  for (const unit of job.units) {
17946
17995
  for (const op of unit.create) {
@@ -17952,6 +18001,7 @@ function optimizeTrackFns(job) {
17952
18001
  } else if (op.track instanceof ReadVarExpr && op.track.name === "$item") {
17953
18002
  op.trackByFn = importExpr(Identifiers.repeaterTrackByIdentity);
17954
18003
  } else if (isTrackByFunctionCall(job.root.xref, op.track)) {
18004
+ op.usesComponentInstance = true;
17955
18005
  if (op.track.receiver.receiver.view === unit.xref) {
17956
18006
  op.trackByFn = op.track.receiver;
17957
18007
  } else {
@@ -17987,7 +18037,7 @@ function isTrackByFunctionCall(rootView, expr) {
17987
18037
  return true;
17988
18038
  }
17989
18039
 
17990
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/track_variables.mjs
18040
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/track_variables.mjs
17991
18041
  function generateTrackVariables(job) {
17992
18042
  for (const unit of job.units) {
17993
18043
  for (const op of unit.create) {
@@ -17996,7 +18046,7 @@ function generateTrackVariables(job) {
17996
18046
  }
17997
18047
  op.track = transformExpressionsInExpression(op.track, (expr) => {
17998
18048
  if (expr instanceof LexicalReadExpr) {
17999
- if (expr.name === op.varNames.$index) {
18049
+ if (op.varNames.$index.has(expr.name)) {
18000
18050
  return variable("$index");
18001
18051
  } else if (expr.name === op.varNames.$implicit) {
18002
18052
  return variable("$item");
@@ -18008,7 +18058,7 @@ function generateTrackVariables(job) {
18008
18058
  }
18009
18059
  }
18010
18060
 
18011
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/var_counting.mjs
18061
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/var_counting.mjs
18012
18062
  function countVariables(job) {
18013
18063
  for (const unit of job.units) {
18014
18064
  let varCount = 0;
@@ -18118,7 +18168,7 @@ function isSingletonInterpolation(expr) {
18118
18168
  return true;
18119
18169
  }
18120
18170
 
18121
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/variable_optimization.mjs
18171
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/variable_optimization.mjs
18122
18172
  function optimizeVariables(job) {
18123
18173
  for (const unit of job.units) {
18124
18174
  inlineAlwaysInlineVariables(unit.create);
@@ -18367,7 +18417,7 @@ function allowConservativeInlining(decl, target) {
18367
18417
  }
18368
18418
  }
18369
18419
 
18370
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/wrap_icus.mjs
18420
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/wrap_icus.mjs
18371
18421
  function wrapI18nIcus(job) {
18372
18422
  for (const unit of job.units) {
18373
18423
  let currentI18nOp = null;
@@ -18397,7 +18447,7 @@ function wrapI18nIcus(job) {
18397
18447
  }
18398
18448
  }
18399
18449
 
18400
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/emit.mjs
18450
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/emit.mjs
18401
18451
  var phases = [
18402
18452
  { kind: CompilationJobKind.Tmpl, fn: removeContentSelectors },
18403
18453
  { kind: CompilationJobKind.Host, fn: parseHostStyleProperties },
@@ -18563,7 +18613,7 @@ function emitHostBindingFunction(job) {
18563
18613
  );
18564
18614
  }
18565
18615
 
18566
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/ingest.mjs
18616
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/ingest.mjs
18567
18617
  var compatibilityMode = CompatibilityMode.TemplateDefinitionBuilder;
18568
18618
  var domSchema = new DomElementSchemaRegistry();
18569
18619
  var NG_TEMPLATE_TAG_NAME = "ng-template";
@@ -18713,10 +18763,17 @@ function ingestTemplate(unit, tmpl) {
18713
18763
  }
18714
18764
  }
18715
18765
  function ingestContent(unit, content) {
18766
+ var _a2;
18716
18767
  if (content.i18n !== void 0 && !(content.i18n instanceof TagPlaceholder)) {
18717
18768
  throw Error(`Unhandled i18n metadata type for element: ${content.i18n.constructor.name}`);
18718
18769
  }
18719
- const op = createProjectionOp(unit.job.allocateXrefId(), content.selector, content.i18n, content.sourceSpan);
18770
+ const id = unit.job.allocateXrefId();
18771
+ let fallbackView = null;
18772
+ if (content.children.some((child) => !(child instanceof Comment) && (!(child instanceof Text) || child.value.trim().length > 0))) {
18773
+ fallbackView = unit.job.allocateView(unit.xref);
18774
+ ingestNodes(fallbackView, content.children);
18775
+ }
18776
+ const op = createProjectionOp(id, content.selector, content.i18n, (_a2 = fallbackView == null ? void 0 : fallbackView.xref) != null ? _a2 : null, content.sourceSpan);
18720
18777
  for (const attr of content.attributes) {
18721
18778
  const securityContext = domSchema.securityContext(content.name, attr.name, true);
18722
18779
  unit.update.push(createBindingOp(op.xref, BindingKind.Attribute, attr.name, literal(attr.value), null, securityContext, true, false, null, asMessage(attr.i18n), attr.sourceSpan));
@@ -18755,10 +18812,7 @@ function ingestIfBlock(unit, ifBlock) {
18755
18812
  for (let i = 0; i < ifBlock.branches.length; i++) {
18756
18813
  const ifCase = ifBlock.branches[i];
18757
18814
  const cView = unit.job.allocateView(unit.xref);
18758
- let tagName = null;
18759
- if (i === 0) {
18760
- tagName = ingestControlFlowInsertionPoint(unit, cView.xref, ifCase);
18761
- }
18815
+ const tagName = ingestControlFlowInsertionPoint(unit, cView.xref, ifCase);
18762
18816
  if (ifCase.expressionAlias !== null) {
18763
18817
  cView.contextVariables.set(ifCase.expressionAlias.name, CTX_REF);
18764
18818
  }
@@ -18793,6 +18847,7 @@ function ingestSwitchBlock(unit, switchBlock) {
18793
18847
  let conditions = [];
18794
18848
  for (const switchCase of switchBlock.cases) {
18795
18849
  const cView = unit.job.allocateView(unit.xref);
18850
+ const tagName = ingestControlFlowInsertionPoint(unit, cView.xref, switchCase);
18796
18851
  let switchCaseI18nMeta = void 0;
18797
18852
  if (switchCase.i18n !== void 0) {
18798
18853
  if (!(switchCase.i18n instanceof BlockPlaceholder)) {
@@ -18800,7 +18855,7 @@ function ingestSwitchBlock(unit, switchBlock) {
18800
18855
  }
18801
18856
  switchCaseI18nMeta = switchCase.i18n;
18802
18857
  }
18803
- const templateOp = createTemplateOp(cView.xref, TemplateKind.Block, null, "Case", Namespace.HTML, switchCaseI18nMeta, switchCase.startSourceSpan, switchCase.sourceSpan);
18858
+ const templateOp = createTemplateOp(cView.xref, TemplateKind.Block, tagName, "Case", Namespace.HTML, switchCaseI18nMeta, switchCase.startSourceSpan, switchCase.sourceSpan);
18804
18859
  unit.create.push(templateOp);
18805
18860
  if (firstXref === null) {
18806
18861
  firstXref = cView.xref;
@@ -18934,37 +18989,27 @@ function ingestIcu(unit, icu) {
18934
18989
  function ingestForBlock(unit, forBlock) {
18935
18990
  var _a2, _b2, _c2;
18936
18991
  const repeaterView = unit.job.allocateView(unit.xref);
18992
+ const indexName = `\u0275$index_${repeaterView.xref}`;
18993
+ const countName = `\u0275$count_${repeaterView.xref}`;
18994
+ const indexVarNames = /* @__PURE__ */ new Set();
18937
18995
  repeaterView.contextVariables.set(forBlock.item.name, forBlock.item.value);
18938
- repeaterView.contextVariables.set(forBlock.contextVariables.$index.name, forBlock.contextVariables.$index.value);
18939
- repeaterView.contextVariables.set(forBlock.contextVariables.$count.name, forBlock.contextVariables.$count.value);
18940
- const indexName = `\u0275${forBlock.contextVariables.$index.name}_${repeaterView.xref}`;
18941
- const countName = `\u0275${forBlock.contextVariables.$count.name}_${repeaterView.xref}`;
18942
- repeaterView.contextVariables.set(indexName, forBlock.contextVariables.$index.value);
18943
- repeaterView.contextVariables.set(countName, forBlock.contextVariables.$count.value);
18944
- repeaterView.aliases.add({
18945
- kind: SemanticVariableKind.Alias,
18946
- name: null,
18947
- identifier: forBlock.contextVariables.$first.name,
18948
- expression: new LexicalReadExpr(indexName).identical(literal(0))
18949
- });
18950
- repeaterView.aliases.add({
18951
- kind: SemanticVariableKind.Alias,
18952
- name: null,
18953
- identifier: forBlock.contextVariables.$last.name,
18954
- expression: new LexicalReadExpr(indexName).identical(new LexicalReadExpr(countName).minus(literal(1)))
18955
- });
18956
- repeaterView.aliases.add({
18957
- kind: SemanticVariableKind.Alias,
18958
- name: null,
18959
- identifier: forBlock.contextVariables.$even.name,
18960
- expression: new LexicalReadExpr(indexName).modulo(literal(2)).identical(literal(0))
18961
- });
18962
- repeaterView.aliases.add({
18963
- kind: SemanticVariableKind.Alias,
18964
- name: null,
18965
- identifier: forBlock.contextVariables.$odd.name,
18966
- expression: new LexicalReadExpr(indexName).modulo(literal(2)).notIdentical(literal(0))
18967
- });
18996
+ for (const variable2 of forBlock.contextVariables) {
18997
+ if (variable2.value === "$index") {
18998
+ indexVarNames.add(variable2.name);
18999
+ }
19000
+ if (variable2.name === "$index") {
19001
+ repeaterView.contextVariables.set("$index", variable2.value).set(indexName, variable2.value);
19002
+ } else if (variable2.name === "$count") {
19003
+ repeaterView.contextVariables.set("$count", variable2.value).set(countName, variable2.value);
19004
+ } else {
19005
+ repeaterView.aliases.add({
19006
+ kind: SemanticVariableKind.Alias,
19007
+ name: null,
19008
+ identifier: variable2.name,
19009
+ expression: getComputedForLoopVariableExpression(variable2, indexName, countName)
19010
+ });
19011
+ }
19012
+ }
18968
19013
  const sourceSpan = convertSourceSpan(forBlock.trackBy.span, forBlock.sourceSpan);
18969
19014
  const track = convertAst(forBlock.trackBy, unit.job, sourceSpan);
18970
19015
  ingestNodes(repeaterView, forBlock.children);
@@ -18976,12 +19021,7 @@ function ingestForBlock(unit, forBlock) {
18976
19021
  emptyTagName = ingestControlFlowInsertionPoint(unit, emptyView.xref, forBlock.empty);
18977
19022
  }
18978
19023
  const varNames = {
18979
- $index: forBlock.contextVariables.$index.name,
18980
- $count: forBlock.contextVariables.$count.name,
18981
- $first: forBlock.contextVariables.$first.name,
18982
- $last: forBlock.contextVariables.$last.name,
18983
- $even: forBlock.contextVariables.$even.name,
18984
- $odd: forBlock.contextVariables.$odd.name,
19024
+ $index: indexVarNames,
18985
19025
  $implicit: forBlock.item.name
18986
19026
  };
18987
19027
  if (forBlock.i18n !== void 0 && !(forBlock.i18n instanceof BlockPlaceholder)) {
@@ -18999,6 +19039,24 @@ function ingestForBlock(unit, forBlock) {
18999
19039
  const repeater2 = createRepeaterOp(repeaterCreate2.xref, repeaterCreate2.handle, expression, forBlock.sourceSpan);
19000
19040
  unit.update.push(repeater2);
19001
19041
  }
19042
+ function getComputedForLoopVariableExpression(variable2, indexName, countName) {
19043
+ switch (variable2.value) {
19044
+ case "$index":
19045
+ return new LexicalReadExpr(indexName);
19046
+ case "$count":
19047
+ return new LexicalReadExpr(countName);
19048
+ case "$first":
19049
+ return new LexicalReadExpr(indexName).identical(literal(0));
19050
+ case "$last":
19051
+ return new LexicalReadExpr(indexName).identical(new LexicalReadExpr(countName).minus(literal(1)));
19052
+ case "$even":
19053
+ return new LexicalReadExpr(indexName).modulo(literal(2)).identical(literal(0));
19054
+ case "$odd":
19055
+ return new LexicalReadExpr(indexName).modulo(literal(2)).notIdentical(literal(0));
19056
+ default:
19057
+ throw new Error(`AssertionError: unknown @for loop variable ${variable2.value}`);
19058
+ }
19059
+ }
19002
19060
  function convertAst(ast, job, baseSourceSpan) {
19003
19061
  if (ast instanceof ASTWithSource) {
19004
19062
  return convertAst(ast.ast, job, baseSourceSpan);
@@ -19300,7 +19358,7 @@ function ingestControlFlowInsertionPoint(unit, xref, node) {
19300
19358
  return null;
19301
19359
  }
19302
19360
 
19303
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/render3/view/query_generation.mjs
19361
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/render3/view/query_generation.mjs
19304
19362
  function renderFlagCheckIfStmt(flags, statements) {
19305
19363
  return ifStmt(variable(RENDER_FLAGS).bitwiseAnd(literal(flags), null, false), statements);
19306
19364
  }
@@ -19420,7 +19478,7 @@ function createContentQueriesFunction(queries, constantPool, name) {
19420
19478
  ], INFERRED_TYPE, null, contentQueriesFnName);
19421
19479
  }
19422
19480
 
19423
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/ml_parser/html_parser.mjs
19481
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/ml_parser/html_parser.mjs
19424
19482
  var HtmlParser = class extends Parser2 {
19425
19483
  constructor() {
19426
19484
  super(getHtmlTagDefinition);
@@ -19430,7 +19488,7 @@ var HtmlParser = class extends Parser2 {
19430
19488
  }
19431
19489
  };
19432
19490
 
19433
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/ml_parser/html_whitespaces.mjs
19491
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/ml_parser/html_whitespaces.mjs
19434
19492
  var PRESERVE_WS_ATTR_NAME = "ngPreserveWhitespaces";
19435
19493
  var SKIP_WS_TRIM_TAGS = /* @__PURE__ */ new Set(["pre", "template", "textarea", "script", "style"]);
19436
19494
  var WS_CHARS = " \f\n\r \v\u1680\u180E\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF";
@@ -19496,7 +19554,7 @@ function visitAllWithSiblings(visitor, nodes) {
19496
19554
  return result;
19497
19555
  }
19498
19556
 
19499
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template_parser/binding_parser.mjs
19557
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template_parser/binding_parser.mjs
19500
19558
  var PROPERTY_PARTS_SEPARATOR = ".";
19501
19559
  var ATTRIBUTE_PREFIX = "attr";
19502
19560
  var CLASS_PREFIX = "class";
@@ -19837,7 +19895,7 @@ function moveParseSourceSpan(sourceSpan, absoluteSpan) {
19837
19895
  return new ParseSourceSpan(sourceSpan.start.moveBy(startDiff), sourceSpan.end.moveBy(endDiff), sourceSpan.fullStart.moveBy(startDiff), sourceSpan.details);
19838
19896
  }
19839
19897
 
19840
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/style_url_resolver.mjs
19898
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/style_url_resolver.mjs
19841
19899
  function isStyleUrlResolvable(url) {
19842
19900
  if (url == null || url.length === 0 || url[0] == "/")
19843
19901
  return false;
@@ -19846,7 +19904,7 @@ function isStyleUrlResolvable(url) {
19846
19904
  }
19847
19905
  var URL_WITH_SCHEMA_REGEXP = /^([^:/?#]+):/;
19848
19906
 
19849
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template_parser/template_preparser.mjs
19907
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template_parser/template_preparser.mjs
19850
19908
  var NG_CONTENT_SELECT_ATTR = "select";
19851
19909
  var LINK_ELEMENT = "link";
19852
19910
  var LINK_STYLE_REL_ATTR = "rel";
@@ -19916,7 +19974,7 @@ function normalizeNgContentSelect(selectAttr) {
19916
19974
  return selectAttr;
19917
19975
  }
19918
19976
 
19919
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/render3/r3_control_flow.mjs
19977
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/render3/r3_control_flow.mjs
19920
19978
  var FOR_LOOP_EXPRESSION_PATTERN = /^\s*([0-9A-Za-z_$]*)\s+of\s+([\S\s]*)/;
19921
19979
  var FOR_LOOP_TRACK_PATTERN = /^track\s+([\S\s]*)/;
19922
19980
  var CONDITIONAL_ALIAS_PATTERN = /^(as\s)+(.*)/;
@@ -20034,19 +20092,25 @@ function parseForLoopParameters(block, errors, bindingParser) {
20034
20092
  return null;
20035
20093
  }
20036
20094
  const [, itemName, rawExpression] = match;
20095
+ if (ALLOWED_FOR_LOOP_LET_VARIABLES.has(itemName)) {
20096
+ errors.push(new ParseError(expressionParam.sourceSpan, `@for loop item name cannot be one of ${Array.from(ALLOWED_FOR_LOOP_LET_VARIABLES).join(", ")}.`));
20097
+ }
20037
20098
  const variableName = expressionParam.expression.split(" ")[0];
20038
20099
  const variableSpan = new ParseSourceSpan(expressionParam.sourceSpan.start, expressionParam.sourceSpan.start.moveBy(variableName.length));
20039
20100
  const result = {
20040
20101
  itemName: new Variable(itemName, "$implicit", variableSpan, variableSpan),
20041
20102
  trackBy: null,
20042
20103
  expression: parseBlockParameterToBinding(expressionParam, bindingParser, rawExpression),
20043
- context: {}
20104
+ context: Array.from(ALLOWED_FOR_LOOP_LET_VARIABLES, (variableName2) => {
20105
+ const emptySpanAfterForBlockStart = new ParseSourceSpan(block.startSourceSpan.end, block.startSourceSpan.end);
20106
+ return new Variable(variableName2, variableName2, emptySpanAfterForBlockStart, emptySpanAfterForBlockStart);
20107
+ })
20044
20108
  };
20045
20109
  for (const param of secondaryParams) {
20046
20110
  const letMatch = param.expression.match(FOR_LOOP_LET_PATTERN);
20047
20111
  if (letMatch !== null) {
20048
20112
  const variablesSpan = new ParseSourceSpan(param.sourceSpan.start.moveBy(letMatch[0].length - letMatch[1].length), param.sourceSpan.end);
20049
- parseLetParameter(param.sourceSpan, letMatch[1], variablesSpan, result.context, errors);
20113
+ parseLetParameter(param.sourceSpan, letMatch[1], variablesSpan, itemName, result.context, errors);
20050
20114
  continue;
20051
20115
  }
20052
20116
  const trackMatch = param.expression.match(FOR_LOOP_TRACK_PATTERN);
@@ -20065,15 +20129,9 @@ function parseForLoopParameters(block, errors, bindingParser) {
20065
20129
  }
20066
20130
  errors.push(new ParseError(param.sourceSpan, `Unrecognized @for loop paramater "${param.expression}"`));
20067
20131
  }
20068
- for (const variableName2 of ALLOWED_FOR_LOOP_LET_VARIABLES) {
20069
- if (!result.context.hasOwnProperty(variableName2)) {
20070
- const emptySpanAfterForBlockStart = new ParseSourceSpan(block.startSourceSpan.end, block.startSourceSpan.end);
20071
- result.context[variableName2] = new Variable(variableName2, variableName2, emptySpanAfterForBlockStart, emptySpanAfterForBlockStart);
20072
- }
20073
- }
20074
20132
  return result;
20075
20133
  }
20076
- function parseLetParameter(sourceSpan, expression, span, context, errors) {
20134
+ function parseLetParameter(sourceSpan, expression, span, loopItemName, context, errors) {
20077
20135
  var _a2, _b2, _c2;
20078
20136
  const parts = expression.split(",");
20079
20137
  let startSpan = span.start;
@@ -20085,7 +20143,9 @@ function parseLetParameter(sourceSpan, expression, span, context, errors) {
20085
20143
  errors.push(new ParseError(sourceSpan, `Invalid @for loop "let" parameter. Parameter should match the pattern "<name> = <variable name>"`));
20086
20144
  } else if (!ALLOWED_FOR_LOOP_LET_VARIABLES.has(variableName)) {
20087
20145
  errors.push(new ParseError(sourceSpan, `Unknown "let" parameter variable "${variableName}". The allowed variables are: ${Array.from(ALLOWED_FOR_LOOP_LET_VARIABLES).join(", ")}`));
20088
- } else if (context.hasOwnProperty(variableName)) {
20146
+ } else if (name === loopItemName) {
20147
+ errors.push(new ParseError(sourceSpan, `Invalid @for loop "let" parameter. Variable cannot be called "${loopItemName}"`));
20148
+ } else if (context.some((v) => v.name === name)) {
20089
20149
  errors.push(new ParseError(sourceSpan, `Duplicate "let" parameter variable "${variableName}"`));
20090
20150
  } else {
20091
20151
  const [, keyLeadingWhitespace, keyName] = (_a2 = expressionParts[0].match(CHARACTERS_IN_SURROUNDING_WHITESPACE_PATTERN)) != null ? _a2 : [];
@@ -20099,7 +20159,7 @@ function parseLetParameter(sourceSpan, expression, span, context, errors) {
20099
20159
  valueSpan = valueLeadingWhitespace !== void 0 ? new ParseSourceSpan(startSpan.moveBy(expressionParts[0].length + 1 + valueLeadingWhitespace.length), startSpan.moveBy(expressionParts[0].length + 1 + valueLeadingWhitespace.length + implicit.length)) : void 0;
20100
20160
  }
20101
20161
  const sourceSpan2 = new ParseSourceSpan(keySpan.start, (_c2 = valueSpan == null ? void 0 : valueSpan.end) != null ? _c2 : keySpan.end);
20102
- context[variableName] = new Variable(name, variableName, sourceSpan2, keySpan, valueSpan);
20162
+ context.push(new Variable(name, variableName, sourceSpan2, keySpan, valueSpan));
20103
20163
  }
20104
20164
  startSpan = startSpan.moveBy(part.length + 1);
20105
20165
  }
@@ -20230,7 +20290,7 @@ function stripOptionalParentheses(param, errors) {
20230
20290
  return expression.slice(start, end);
20231
20291
  }
20232
20292
 
20233
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/render3/r3_deferred_triggers.mjs
20293
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/render3/r3_deferred_triggers.mjs
20234
20294
  var TIME_PATTERN = /^\d+\.?\d*(ms|s)?$/;
20235
20295
  var SEPARATOR_PATTERN = /^\s$/;
20236
20296
  var COMMA_DELIMITED_SYNTAX = /* @__PURE__ */ new Map([
@@ -20494,7 +20554,7 @@ function parseDeferredTime(value) {
20494
20554
  return parseFloat(time) * (units === "s" ? 1e3 : 1);
20495
20555
  }
20496
20556
 
20497
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/render3/r3_deferred_blocks.mjs
20557
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/render3/r3_deferred_blocks.mjs
20498
20558
  var PREFETCH_WHEN_PATTERN = /^prefetch\s+when\s/;
20499
20559
  var PREFETCH_ON_PATTERN = /^prefetch\s+on\s/;
20500
20560
  var MINIMUM_PARAMETER_PATTERN = /^minimum\s/;
@@ -20629,7 +20689,7 @@ function parsePrimaryTriggers(params, bindingParser, errors, placeholder) {
20629
20689
  return { triggers, prefetchTriggers };
20630
20690
  }
20631
20691
 
20632
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/render3/r3_template_transform.mjs
20692
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/render3/r3_template_transform.mjs
20633
20693
  var BIND_NAME_REGEXP = /^(?:(bind-)|(let-)|(ref-|#)|(on-)|(bindon-)|(@))(.*)$/;
20634
20694
  var KW_BIND_IDX = 1;
20635
20695
  var KW_LET_IDX = 2;
@@ -20737,12 +20797,9 @@ var HtmlAstToIvyAst = class {
20737
20797
  }
20738
20798
  let parsedElement;
20739
20799
  if (preparsedElement.type === PreparsedElementType.NG_CONTENT) {
20740
- if (element2.children && !element2.children.every((node) => isEmptyTextNode(node) || isCommentNode(node))) {
20741
- this.reportError(`<ng-content> element cannot have content.`, element2.sourceSpan);
20742
- }
20743
20800
  const selector = preparsedElement.selectAttr;
20744
20801
  const attrs = element2.attrs.map((attr) => this.visitAttribute(attr));
20745
- parsedElement = new Content(selector, attrs, element2.sourceSpan, element2.i18n);
20802
+ parsedElement = new Content(selector, attrs, children, element2.sourceSpan, element2.i18n);
20746
20803
  this.ngContentSelectors.push(selector);
20747
20804
  } else if (isTemplateElement) {
20748
20805
  const attrs = this.extractAttributes(element2.name, parsedProperties, i18nAttrsMeta);
@@ -21046,12 +21103,6 @@ function normalizeAttributeName(attrName) {
21046
21103
  function addEvents(events, boundEvents) {
21047
21104
  boundEvents.push(...events.map((e) => BoundEvent.fromParsedEvent(e)));
21048
21105
  }
21049
- function isEmptyTextNode(node) {
21050
- return node instanceof Text4 && node.value.trim().length == 0;
21051
- }
21052
- function isCommentNode(node) {
21053
- return node instanceof Comment2;
21054
- }
21055
21106
  function textContents(node) {
21056
21107
  if (node.children.length !== 1 || !(node.children[0] instanceof Text4)) {
21057
21108
  return null;
@@ -21060,7 +21111,7 @@ function textContents(node) {
21060
21111
  }
21061
21112
  }
21062
21113
 
21063
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/render3/view/template.mjs
21114
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/render3/view/template.mjs
21064
21115
  var LEADING_TRIVIA_CHARS = [" ", "\n", "\r", " "];
21065
21116
  function parseTemplate(template2, templateUrl, options = {}) {
21066
21117
  var _a2;
@@ -21134,7 +21185,7 @@ function makeBindingParser(interpolationConfig = DEFAULT_INTERPOLATION_CONFIG) {
21134
21185
  return new BindingParser(new Parser(new Lexer()), interpolationConfig, elementRegistry, []);
21135
21186
  }
21136
21187
 
21137
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/render3/view/compiler.mjs
21188
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/render3/view/compiler.mjs
21138
21189
  var COMPONENT_VARIABLE = "%COMP%";
21139
21190
  var HOST_ATTR = `_nghost-${COMPONENT_VARIABLE}`;
21140
21191
  var CONTENT_ATTR = `_ngcontent-${COMPONENT_VARIABLE}`;
@@ -21228,7 +21279,7 @@ function compileComponentFromMetadata(meta, constantPool, bindingParser) {
21228
21279
  let allDeferrableDepsFn = null;
21229
21280
  if (meta.defer.mode === 1 && meta.defer.dependenciesFn !== null) {
21230
21281
  const fnName = `${templateTypeName}_DeferFn`;
21231
- constantPool.statements.push(meta.defer.dependenciesFn.toDeclStmt(fnName, StmtModifier.Final));
21282
+ constantPool.statements.push(new DeclareVarStmt(fnName, meta.defer.dependenciesFn, void 0, StmtModifier.Final));
21232
21283
  allDeferrableDepsFn = variable(fnName);
21233
21284
  }
21234
21285
  const tpl = ingestComponent(meta.name, meta.template.nodes, constantPool, meta.relativeContextFilePath, meta.i18nUseExternalIds, meta.defer, allDeferrableDepsFn);
@@ -21496,7 +21547,7 @@ function createHostDirectivesMappingArray(mapping) {
21496
21547
  return elements.length > 0 ? literalArr(elements) : null;
21497
21548
  }
21498
21549
 
21499
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/render3/view/t2_binder.mjs
21550
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/render3/view/t2_binder.mjs
21500
21551
  var R3TargetBinder = class {
21501
21552
  constructor(directiveMatcher) {
21502
21553
  this.directiveMatcher = directiveMatcher;
@@ -21540,9 +21591,9 @@ var Scope2 = class {
21540
21591
  nodeOrNodes.children.forEach((node) => node.visit(this));
21541
21592
  } else if (nodeOrNodes instanceof ForLoopBlock) {
21542
21593
  this.visitVariable(nodeOrNodes.item);
21543
- Object.values(nodeOrNodes.contextVariables).forEach((v) => this.visitVariable(v));
21594
+ nodeOrNodes.contextVariables.forEach((v) => this.visitVariable(v));
21544
21595
  nodeOrNodes.children.forEach((node) => node.visit(this));
21545
- } else if (nodeOrNodes instanceof SwitchBlockCase || nodeOrNodes instanceof ForLoopBlockEmpty || nodeOrNodes instanceof DeferredBlock || nodeOrNodes instanceof DeferredBlockError || nodeOrNodes instanceof DeferredBlockPlaceholder || nodeOrNodes instanceof DeferredBlockLoading) {
21596
+ } else if (nodeOrNodes instanceof SwitchBlockCase || nodeOrNodes instanceof ForLoopBlockEmpty || nodeOrNodes instanceof DeferredBlock || nodeOrNodes instanceof DeferredBlockError || nodeOrNodes instanceof DeferredBlockPlaceholder || nodeOrNodes instanceof DeferredBlockLoading || nodeOrNodes instanceof Content) {
21546
21597
  nodeOrNodes.children.forEach((node) => node.visit(this));
21547
21598
  } else {
21548
21599
  nodeOrNodes.forEach((node) => node.visit(this));
@@ -21600,6 +21651,7 @@ var Scope2 = class {
21600
21651
  this.ingestScopedNode(block);
21601
21652
  }
21602
21653
  visitContent(content) {
21654
+ this.ingestScopedNode(content);
21603
21655
  }
21604
21656
  visitBoundAttribute(attr) {
21605
21657
  }
@@ -21738,7 +21790,7 @@ var DirectiveBinder = class {
21738
21790
  visitForLoopBlock(block) {
21739
21791
  var _a2;
21740
21792
  block.item.visit(this);
21741
- Object.values(block.contextVariables).forEach((v) => v.visit(this));
21793
+ block.contextVariables.forEach((v) => v.visit(this));
21742
21794
  block.children.forEach((node) => node.visit(this));
21743
21795
  (_a2 = block.empty) == null ? void 0 : _a2.visit(this);
21744
21796
  }
@@ -21754,6 +21806,7 @@ var DirectiveBinder = class {
21754
21806
  block.children.forEach((node) => node.visit(this));
21755
21807
  }
21756
21808
  visitContent(content) {
21809
+ content.children.forEach((child) => child.visit(this));
21757
21810
  }
21758
21811
  visitVariable(variable2) {
21759
21812
  }
@@ -21806,7 +21859,7 @@ var TemplateBinder = class extends RecursiveAstVisitor {
21806
21859
  const usedPipes = /* @__PURE__ */ new Set();
21807
21860
  const eagerPipes = /* @__PURE__ */ new Set();
21808
21861
  const template2 = nodes instanceof Template ? nodes : null;
21809
- const deferBlocks = /* @__PURE__ */ new Map();
21862
+ const deferBlocks = [];
21810
21863
  const binder = new TemplateBinder(expressions, symbols, usedPipes, eagerPipes, deferBlocks, nestingLevel, scope, template2, 0);
21811
21864
  binder.ingest(nodes);
21812
21865
  return { expressions, symbols, nestingLevel, usedPipes, eagerPipes, deferBlocks };
@@ -21824,7 +21877,7 @@ var TemplateBinder = class extends RecursiveAstVisitor {
21824
21877
  this.nestingLevel.set(nodeOrNodes, this.level);
21825
21878
  } else if (nodeOrNodes instanceof ForLoopBlock) {
21826
21879
  this.visitNode(nodeOrNodes.item);
21827
- Object.values(nodeOrNodes.contextVariables).forEach((v) => this.visitNode(v));
21880
+ nodeOrNodes.contextVariables.forEach((v) => this.visitNode(v));
21828
21881
  nodeOrNodes.trackBy.visit(this);
21829
21882
  nodeOrNodes.children.forEach(this.visitNode);
21830
21883
  this.nestingLevel.set(nodeOrNodes, this.level);
@@ -21832,10 +21885,10 @@ var TemplateBinder = class extends RecursiveAstVisitor {
21832
21885
  if (this.scope.rootNode !== nodeOrNodes) {
21833
21886
  throw new Error(`Assertion error: resolved incorrect scope for deferred block ${nodeOrNodes}`);
21834
21887
  }
21835
- this.deferBlocks.set(nodeOrNodes, this.scope);
21888
+ this.deferBlocks.push([nodeOrNodes, this.scope]);
21836
21889
  nodeOrNodes.children.forEach((node) => node.visit(this));
21837
21890
  this.nestingLevel.set(nodeOrNodes, this.level);
21838
- } else if (nodeOrNodes instanceof SwitchBlockCase || nodeOrNodes instanceof ForLoopBlockEmpty || nodeOrNodes instanceof DeferredBlockError || nodeOrNodes instanceof DeferredBlockPlaceholder || nodeOrNodes instanceof DeferredBlockLoading) {
21891
+ } else if (nodeOrNodes instanceof SwitchBlockCase || nodeOrNodes instanceof ForLoopBlockEmpty || nodeOrNodes instanceof DeferredBlockError || nodeOrNodes instanceof DeferredBlockPlaceholder || nodeOrNodes instanceof DeferredBlockLoading || nodeOrNodes instanceof Content) {
21839
21892
  nodeOrNodes.children.forEach((node) => node.visit(this));
21840
21893
  this.nestingLevel.set(nodeOrNodes, this.level);
21841
21894
  } else {
@@ -21867,8 +21920,6 @@ var TemplateBinder = class extends RecursiveAstVisitor {
21867
21920
  }
21868
21921
  visitText(text2) {
21869
21922
  }
21870
- visitContent(content) {
21871
- }
21872
21923
  visitTextAttribute(attribute2) {
21873
21924
  }
21874
21925
  visitUnknownBlock(block) {
@@ -21929,6 +21980,9 @@ var TemplateBinder = class extends RecursiveAstVisitor {
21929
21980
  (_a2 = block.expression) == null ? void 0 : _a2.visit(this);
21930
21981
  this.ingestScopedNode(block);
21931
21982
  }
21983
+ visitContent(content) {
21984
+ this.ingestScopedNode(content);
21985
+ }
21932
21986
  visitBoundText(text2) {
21933
21987
  text2.value.visit(this);
21934
21988
  }
@@ -21967,7 +22021,7 @@ var TemplateBinder = class extends RecursiveAstVisitor {
21967
22021
  }
21968
22022
  };
21969
22023
  var R3BoundTarget = class {
21970
- constructor(target, directives, eagerDirectives, bindings, references, exprTargets, symbols, nestingLevel, scopedNodeEntities, usedPipes, eagerPipes, deferBlocks) {
22024
+ constructor(target, directives, eagerDirectives, bindings, references, exprTargets, symbols, nestingLevel, scopedNodeEntities, usedPipes, eagerPipes, rawDeferred) {
21971
22025
  this.target = target;
21972
22026
  this.directives = directives;
21973
22027
  this.eagerDirectives = eagerDirectives;
@@ -21979,7 +22033,8 @@ var R3BoundTarget = class {
21979
22033
  this.scopedNodeEntities = scopedNodeEntities;
21980
22034
  this.usedPipes = usedPipes;
21981
22035
  this.eagerPipes = eagerPipes;
21982
- this.deferBlocks = deferBlocks;
22036
+ this.deferredBlocks = rawDeferred.map((current) => current[0]);
22037
+ this.deferredScopes = new Map(rawDeferred);
21983
22038
  }
21984
22039
  getEntitiesInScope(node) {
21985
22040
  var _a2;
@@ -22019,7 +22074,7 @@ var R3BoundTarget = class {
22019
22074
  return Array.from(this.eagerPipes);
22020
22075
  }
22021
22076
  getDeferBlocks() {
22022
- return Array.from(this.deferBlocks.keys());
22077
+ return this.deferredBlocks;
22023
22078
  }
22024
22079
  getDeferredTriggerTarget(block, trigger) {
22025
22080
  if (!(trigger instanceof InteractionDeferredTrigger) && !(trigger instanceof ViewportDeferredTrigger) && !(trigger instanceof HoverDeferredTrigger)) {
@@ -22060,8 +22115,11 @@ var R3BoundTarget = class {
22060
22115
  return null;
22061
22116
  }
22062
22117
  isDeferred(element2) {
22063
- for (const deferredScope of this.deferBlocks.values()) {
22064
- const stack = [deferredScope];
22118
+ for (const block of this.deferredBlocks) {
22119
+ if (!this.deferredScopes.has(block)) {
22120
+ continue;
22121
+ }
22122
+ const stack = [this.deferredScopes.get(block)];
22065
22123
  while (stack.length > 0) {
22066
22124
  const current = stack.pop();
22067
22125
  if (current.elementsInScope.has(element2)) {
@@ -22074,9 +22132,9 @@ var R3BoundTarget = class {
22074
22132
  }
22075
22133
  findEntityInScope(rootNode, name) {
22076
22134
  const entities = this.getEntitiesInScope(rootNode);
22077
- for (const entitity of entities) {
22078
- if (entitity.name === name) {
22079
- return entitity;
22135
+ for (const entity of entities) {
22136
+ if (entity.name === name) {
22137
+ return entity;
22080
22138
  }
22081
22139
  }
22082
22140
  return null;
@@ -22122,11 +22180,11 @@ function extractScopedNodeEntities(rootScope) {
22122
22180
  return templateEntities;
22123
22181
  }
22124
22182
 
22125
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/resource_loader.mjs
22183
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/resource_loader.mjs
22126
22184
  var ResourceLoader = class {
22127
22185
  };
22128
22186
 
22129
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/jit_compiler_facade.mjs
22187
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/jit_compiler_facade.mjs
22130
22188
  var CompilerFacadeImpl = class {
22131
22189
  constructor(jitEvaluator = new JitEvaluator()) {
22132
22190
  this.jitEvaluator = jitEvaluator;
@@ -22242,7 +22300,7 @@ var CompilerFacadeImpl = class {
22242
22300
  }
22243
22301
  compileComponent(angularCoreEnv, sourceMapUrl, facade) {
22244
22302
  var _a2;
22245
- const { template: template2, interpolation, defer: defer2 } = parseJitTemplate(facade.template, facade.name, sourceMapUrl, facade.preserveWhitespaces, facade.interpolation);
22303
+ const { template: template2, interpolation, defer: defer2 } = parseJitTemplate(facade.template, facade.name, sourceMapUrl, facade.preserveWhitespaces, facade.interpolation, void 0);
22246
22304
  const meta = __spreadProps(__spreadValues(__spreadValues({}, facade), convertDirectiveFacadeToMetadata(facade)), {
22247
22305
  selector: facade.selector || this.elementSchemaRegistry.getDefaultComponentElementName(),
22248
22306
  template: template2,
@@ -22431,7 +22489,7 @@ function convertOpaqueValuesToExpressions(obj) {
22431
22489
  }
22432
22490
  function convertDeclareComponentFacadeToMetadata(decl, typeSourceSpan, sourceMapUrl) {
22433
22491
  var _a2, _b2, _c2, _d2;
22434
- const { template: template2, interpolation, defer: defer2 } = parseJitTemplate(decl.template, decl.type.name, sourceMapUrl, (_a2 = decl.preserveWhitespaces) != null ? _a2 : false, decl.interpolation);
22492
+ const { template: template2, interpolation, defer: defer2 } = parseJitTemplate(decl.template, decl.type.name, sourceMapUrl, (_a2 = decl.preserveWhitespaces) != null ? _a2 : false, decl.interpolation, decl.deferBlockDependencies);
22435
22493
  const declarations = [];
22436
22494
  if (decl.dependencies) {
22437
22495
  for (const innerDep of decl.dependencies) {
@@ -22501,7 +22559,7 @@ function convertPipeDeclarationToMetadata(pipe2) {
22501
22559
  type: new WrappedNodeExpr(pipe2.type)
22502
22560
  };
22503
22561
  }
22504
- function parseJitTemplate(template2, typeName, sourceMapUrl, preserveWhitespaces, interpolation) {
22562
+ function parseJitTemplate(template2, typeName, sourceMapUrl, preserveWhitespaces, interpolation, deferBlockDependencies) {
22505
22563
  const interpolationConfig = interpolation ? InterpolationConfig.fromArray(interpolation) : DEFAULT_INTERPOLATION_CONFIG;
22506
22564
  const parsed = parseTemplate(template2, sourceMapUrl, { preserveWhitespaces, interpolationConfig });
22507
22565
  if (parsed.errors !== null) {
@@ -22513,7 +22571,7 @@ function parseJitTemplate(template2, typeName, sourceMapUrl, preserveWhitespaces
22513
22571
  return {
22514
22572
  template: parsed,
22515
22573
  interpolation: interpolationConfig,
22516
- defer: createR3ComponentDeferMetadata(boundTarget)
22574
+ defer: createR3ComponentDeferMetadata(boundTarget, deferBlockDependencies)
22517
22575
  };
22518
22576
  }
22519
22577
  function convertToProviderExpression(obj, property2) {
@@ -22553,11 +22611,12 @@ function createR3DependencyMetadata(token, isAttributeDep, host, optional, self,
22553
22611
  const attributeNameType = isAttributeDep ? literal("unknown") : null;
22554
22612
  return { token, attributeNameType, host, optional, self, skipSelf };
22555
22613
  }
22556
- function createR3ComponentDeferMetadata(boundTarget) {
22614
+ function createR3ComponentDeferMetadata(boundTarget, deferBlockDependencies) {
22557
22615
  const deferredBlocks = boundTarget.getDeferBlocks();
22558
22616
  const blocks = /* @__PURE__ */ new Map();
22559
- for (const block of deferredBlocks) {
22560
- blocks.set(block, null);
22617
+ for (let i = 0; i < deferredBlocks.length; i++) {
22618
+ const dependencyFn = deferBlockDependencies == null ? void 0 : deferBlockDependencies[i];
22619
+ blocks.set(deferredBlocks[i], dependencyFn ? new WrappedNodeExpr(dependencyFn) : null);
22561
22620
  }
22562
22621
  return { mode: 0, blocks };
22563
22622
  }
@@ -22686,17 +22745,17 @@ function publishFacade(global) {
22686
22745
  ng.\u0275compilerFacade = new CompilerFacadeImpl();
22687
22746
  }
22688
22747
 
22689
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/version.mjs
22690
- var VERSION2 = new Version("18.0.0-next.1");
22748
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/version.mjs
22749
+ var VERSION2 = new Version("18.0.0-next.3");
22691
22750
 
22692
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/i18n/extractor_merger.mjs
22751
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/i18n/extractor_merger.mjs
22693
22752
  var _VisitorMode;
22694
22753
  (function(_VisitorMode2) {
22695
22754
  _VisitorMode2[_VisitorMode2["Extract"] = 0] = "Extract";
22696
22755
  _VisitorMode2[_VisitorMode2["Merge"] = 1] = "Merge";
22697
22756
  })(_VisitorMode || (_VisitorMode = {}));
22698
22757
 
22699
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/ml_parser/xml_tags.mjs
22758
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/ml_parser/xml_tags.mjs
22700
22759
  var XmlTagDefinition = class {
22701
22760
  constructor() {
22702
22761
  this.closedByParent = false;
@@ -22718,7 +22777,7 @@ var XmlTagDefinition = class {
22718
22777
  };
22719
22778
  var _TAG_DEFINITION = new XmlTagDefinition();
22720
22779
 
22721
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/render3/partial/api.mjs
22780
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/render3/partial/api.mjs
22722
22781
  var FactoryTarget2;
22723
22782
  (function(FactoryTarget3) {
22724
22783
  FactoryTarget3[FactoryTarget3["Directive"] = 0] = "Directive";
@@ -22728,10 +22787,10 @@ var FactoryTarget2;
22728
22787
  FactoryTarget3[FactoryTarget3["NgModule"] = 4] = "NgModule";
22729
22788
  })(FactoryTarget2 || (FactoryTarget2 = {}));
22730
22789
 
22731
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/compiler.mjs
22790
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/compiler.mjs
22732
22791
  publishFacade(_global);
22733
22792
 
22734
- // bazel-out/darwin_arm64-fastbuild/bin/packages/core/schematics/migrations/invalid-two-way-bindings/migration.mjs
22793
+ // bazel-out/k8-fastbuild/bin/packages/core/schematics/migrations/invalid-two-way-bindings/migration.mjs
22735
22794
  var import_typescript4 = __toESM(require("typescript"), 1);
22736
22795
  function migrateTemplate(template2) {
22737
22796
  if (!template2.includes(")]=")) {
@@ -22856,7 +22915,7 @@ var InvalidTwoWayBindingCollector = class extends RecursiveVisitor {
22856
22915
  }
22857
22916
  };
22858
22917
 
22859
- // bazel-out/darwin_arm64-fastbuild/bin/packages/core/schematics/migrations/invalid-two-way-bindings/index.mjs
22918
+ // bazel-out/k8-fastbuild/bin/packages/core/schematics/migrations/invalid-two-way-bindings/index.mjs
22860
22919
  function invalid_two_way_bindings_default() {
22861
22920
  return (tree) => __async(this, null, function* () {
22862
22921
  const { buildPaths, testPaths } = yield getProjectTsConfigPaths(tree);