@angular/core 17.0.0-next.7 → 17.0.0-next.8

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 (90) hide show
  1. package/esm2022/primitives/signals/index.mjs +15 -0
  2. package/esm2022/primitives/signals/src/computed.mjs +92 -0
  3. package/esm2022/primitives/signals/src/equality.mjs +14 -0
  4. package/esm2022/primitives/signals/src/errors.mjs +18 -0
  5. package/esm2022/primitives/signals/src/graph.mjs +291 -0
  6. package/esm2022/primitives/signals/src/signal.mjs +78 -0
  7. package/esm2022/primitives/signals/src/watch.mjs +82 -0
  8. package/esm2022/primitives/signals/src/weak_ref.mjs +11 -0
  9. package/esm2022/rxjs-interop/src/to_signal.mjs +45 -14
  10. package/esm2022/src/application_init.mjs +50 -2
  11. package/esm2022/src/application_ref.mjs +7 -2
  12. package/esm2022/src/application_tokens.mjs +16 -1
  13. package/esm2022/src/core_private_export.mjs +4 -4
  14. package/esm2022/src/core_reactivity_export_internal.mjs +6 -2
  15. package/esm2022/src/core_render3_private_export.mjs +2 -2
  16. package/esm2022/src/errors.mjs +1 -1
  17. package/esm2022/src/image_performance_warning.mjs +154 -0
  18. package/esm2022/src/linker/compiler.mjs +1 -1
  19. package/esm2022/src/metadata/directives.mjs +1 -1
  20. package/esm2022/src/render3/after_render_hooks.mjs +5 -1
  21. package/esm2022/src/render3/assert.mjs +16 -1
  22. package/esm2022/src/render3/component_ref.mjs +12 -3
  23. package/esm2022/src/render3/debug/framework_injector_profiler.mjs +33 -4
  24. package/esm2022/src/render3/debug/injector_profiler.mjs +1 -1
  25. package/esm2022/src/render3/debug/set_debug_info.mjs +20 -0
  26. package/esm2022/src/render3/definition.mjs +2 -1
  27. package/esm2022/src/render3/deps_tracker/api.mjs +1 -1
  28. package/esm2022/src/render3/deps_tracker/deps_tracker.mjs +13 -2
  29. package/esm2022/src/render3/features/host_directives_feature.mjs +3 -8
  30. package/esm2022/src/render3/hooks.mjs +5 -5
  31. package/esm2022/src/render3/index.mjs +3 -2
  32. package/esm2022/src/render3/instructions/change_detection.mjs +31 -14
  33. package/esm2022/src/render3/instructions/control_flow.mjs +21 -12
  34. package/esm2022/src/render3/instructions/defer.mjs +156 -22
  35. package/esm2022/src/render3/instructions/defer_events.mjs +13 -3
  36. package/esm2022/src/render3/instructions/shared.mjs +5 -4
  37. package/esm2022/src/render3/interfaces/container.mjs +5 -4
  38. package/esm2022/src/render3/interfaces/defer.mjs +13 -6
  39. package/esm2022/src/render3/interfaces/definition.mjs +1 -1
  40. package/esm2022/src/render3/interfaces/view.mjs +5 -4
  41. package/esm2022/src/render3/jit/environment.mjs +3 -1
  42. package/esm2022/src/render3/node_manipulation.mjs +4 -6
  43. package/esm2022/src/render3/reactive_lview_consumer.mjs +2 -2
  44. package/esm2022/src/render3/reactivity/api.mjs +15 -0
  45. package/esm2022/src/render3/reactivity/asserts.mjs +26 -0
  46. package/esm2022/src/render3/reactivity/computed.mjs +19 -0
  47. package/esm2022/src/render3/reactivity/effect.mjs +7 -6
  48. package/esm2022/src/render3/reactivity/signal.mjs +32 -0
  49. package/esm2022/src/render3/reactivity/untracked.mjs +24 -0
  50. package/esm2022/src/render3/util/injector_discovery_utils.mjs +43 -14
  51. package/esm2022/src/render3/util/stringify_utils.mjs +28 -1
  52. package/esm2022/src/render3/util/view_utils.mjs +41 -25
  53. package/esm2022/src/render3/view_ref.mjs +3 -2
  54. package/esm2022/src/util/stringify.mjs +16 -1
  55. package/esm2022/src/version.mjs +1 -1
  56. package/esm2022/testing/src/logger.mjs +3 -3
  57. package/fesm2022/core.mjs +1787 -1212
  58. package/fesm2022/core.mjs.map +1 -1
  59. package/fesm2022/primitives/signals.mjs +539 -0
  60. package/fesm2022/primitives/signals.mjs.map +1 -0
  61. package/fesm2022/rxjs-interop.mjs +45 -14
  62. package/fesm2022/rxjs-interop.mjs.map +1 -1
  63. package/fesm2022/testing.mjs +1 -1
  64. package/index.d.ts +162 -163
  65. package/package.json +7 -1
  66. package/primitives/signals/index.d.ts +281 -0
  67. package/rxjs-interop/index.d.ts +15 -101
  68. package/schematics/collection.json +12 -2
  69. package/schematics/migrations/block-template-entities/bundle.js +485 -297
  70. package/schematics/migrations/block-template-entities/bundle.js.map +4 -4
  71. package/schematics/migrations/compiler-options/bundle.js +582 -0
  72. package/schematics/migrations/compiler-options/bundle.js.map +7 -0
  73. package/schematics/migrations/transfer-state/bundle.js +592 -0
  74. package/schematics/migrations/transfer-state/bundle.js.map +7 -0
  75. package/schematics/migrations.json +10 -0
  76. package/schematics/ng-generate/control-flow-migration/bundle.js +24097 -0
  77. package/schematics/ng-generate/control-flow-migration/bundle.js.map +7 -0
  78. package/schematics/ng-generate/control-flow-migration/schema.json +7 -0
  79. package/schematics/ng-generate/standalone-migration/bundle.js +1677 -1278
  80. package/schematics/ng-generate/standalone-migration/bundle.js.map +4 -4
  81. package/testing/index.d.ts +1 -1
  82. package/esm2022/src/signals/index.mjs +0 -16
  83. package/esm2022/src/signals/src/api.mjs +0 -39
  84. package/esm2022/src/signals/src/computed.mjs +0 -95
  85. package/esm2022/src/signals/src/errors.mjs +0 -18
  86. package/esm2022/src/signals/src/graph.mjs +0 -280
  87. package/esm2022/src/signals/src/signal.mjs +0 -92
  88. package/esm2022/src/signals/src/untracked.mjs +0 -26
  89. package/esm2022/src/signals/src/watch.mjs +0 -81
  90. package/esm2022/src/signals/src/weak_ref.mjs +0 -11
@@ -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/block-template-entities/index.mjs
66
+ // bazel-out/k8-fastbuild/bin/packages/core/schematics/migrations/block-template-entities/index.mjs
67
67
  var block_template_entities_exports = {};
68
68
  __export(block_template_entities_exports, {
69
69
  default: () => block_template_entities_default
@@ -72,7 +72,7 @@ module.exports = __toCommonJS(block_template_entities_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/compiler/src/selector.mjs
209
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/selector.mjs
210
210
  var _SELECTOR_REGEXP = new RegExp(
211
211
  `(\\:not\\()|(([\\.\\#]?)[-\\w]+)|(?:\\[([-.\\w*\\\\$]+)(?:=(["']?)([^\\]"']*)\\5)?\\])|(\\))|(\\s*,\\s*)`,
212
212
  "g"
@@ -514,7 +514,7 @@ var SelectorContext = class {
514
514
  }
515
515
  };
516
516
 
517
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/core.mjs
517
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/core.mjs
518
518
  var ViewEncapsulation;
519
519
  (function(ViewEncapsulation2) {
520
520
  ViewEncapsulation2[ViewEncapsulation2["Emulated"] = 0] = "Emulated";
@@ -576,7 +576,7 @@ function parseSelectorToR3Selector(selector) {
576
576
  return selector ? CssSelector.parse(selector).map(parserSelectorToR3Selector) : [];
577
577
  }
578
578
 
579
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/i18n/digest.mjs
579
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/i18n/digest.mjs
580
580
  var textEncoder;
581
581
  function computeDigest(message) {
582
582
  return sha1(serializeNodes(message.nodes).join("") + `[${message.meaning}]`);
@@ -813,7 +813,7 @@ function wordAt(bytes, index, endian) {
813
813
  return word;
814
814
  }
815
815
 
816
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/output/output_ast.mjs
816
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/output/output_ast.mjs
817
817
  var TypeModifier;
818
818
  (function(TypeModifier2) {
819
819
  TypeModifier2[TypeModifier2["None"] = 0] = "None";
@@ -1768,7 +1768,7 @@ function serializeTags(tags) {
1768
1768
  return out;
1769
1769
  }
1770
1770
 
1771
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/constant_pool.mjs
1771
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/constant_pool.mjs
1772
1772
  var CONSTANT_PREFIX = "_c";
1773
1773
  var UNKNOWN_VALUE_KEY = variable("<unknown>");
1774
1774
  var KEY_CONTEXT = {};
@@ -1951,7 +1951,7 @@ function isLongStringLiteral(expr) {
1951
1951
  return expr instanceof LiteralExpr && typeof expr.value === "string" && expr.value.length >= POOL_INCLUSION_LENGTH_THRESHOLD_FOR_STRINGS;
1952
1952
  }
1953
1953
 
1954
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/render3/r3_identifiers.mjs
1954
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/render3/r3_identifiers.mjs
1955
1955
  var CORE = "@angular/core";
1956
1956
  var _Identifiers = class {
1957
1957
  };
@@ -2181,6 +2181,9 @@ var Identifiers = _Identifiers;
2181
2181
  (() => {
2182
2182
  _Identifiers.deferPrefetchOnViewport = { name: "\u0275\u0275deferPrefetchOnViewport", moduleName: CORE };
2183
2183
  })();
2184
+ (() => {
2185
+ _Identifiers.deferEnableTimerScheduling = { name: "\u0275\u0275deferEnableTimerScheduling", moduleName: CORE };
2186
+ })();
2184
2187
  (() => {
2185
2188
  _Identifiers.conditional = { name: "\u0275\u0275conditional", moduleName: CORE };
2186
2189
  })();
@@ -2508,6 +2511,9 @@ var Identifiers = _Identifiers;
2508
2511
  (() => {
2509
2512
  _Identifiers.setClassMetadataAsync = { name: "\u0275setClassMetadataAsync", moduleName: CORE };
2510
2513
  })();
2514
+ (() => {
2515
+ _Identifiers.setClassDebugInfo = { name: "\u0275setClassDebugInfo", moduleName: CORE };
2516
+ })();
2511
2517
  (() => {
2512
2518
  _Identifiers.queryRefresh = { name: "\u0275\u0275queryRefresh", moduleName: CORE };
2513
2519
  })();
@@ -2578,7 +2584,7 @@ var Identifiers = _Identifiers;
2578
2584
  _Identifiers.validateIframeAttribute = { name: "\u0275\u0275validateIframeAttribute", moduleName: CORE };
2579
2585
  })();
2580
2586
 
2581
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/util.mjs
2587
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/util.mjs
2582
2588
  var DASH_CASE_REGEXP = /-+([a-z0-9])/g;
2583
2589
  function dashCaseToCamelCase(input) {
2584
2590
  return input.replace(DASH_CASE_REGEXP, (...m) => m[1].toUpperCase());
@@ -2666,7 +2672,7 @@ function partitionArray(arr, conditionFn) {
2666
2672
  return [truthy, falsy];
2667
2673
  }
2668
2674
 
2669
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/output/source_map.mjs
2675
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/output/source_map.mjs
2670
2676
  var VERSION = 3;
2671
2677
  var JS_B64_PREFIX = "# sourceMappingURL=data:application/json;base64,";
2672
2678
  var SourceMapGenerator = class {
@@ -2795,7 +2801,7 @@ function toBase64Digit(value) {
2795
2801
  return B64_DIGITS[value];
2796
2802
  }
2797
2803
 
2798
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/output/abstract_emitter.mjs
2804
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/output/abstract_emitter.mjs
2799
2805
  var _SINGLE_QUOTE_ESCAPE_STRING_RE = /'|\\|\n|\r|\$/g;
2800
2806
  var _LEGAL_IDENTIFIER_RE = /^[$A-Z_][0-9A-Z_$]*$/i;
2801
2807
  var _INDENT_WITH = " ";
@@ -3280,7 +3286,7 @@ function _createIndent(count) {
3280
3286
  return res;
3281
3287
  }
3282
3288
 
3283
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/render3/util.mjs
3289
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/render3/util.mjs
3284
3290
  function typeWithParameters(type, numParams) {
3285
3291
  if (numParams === 0) {
3286
3292
  return expressionType(type);
@@ -3345,7 +3351,7 @@ function generateForwardRef(expr) {
3345
3351
  return importExpr(Identifiers.forwardRef).callFn([arrowFn([], expr)]);
3346
3352
  }
3347
3353
 
3348
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/render3/r3_factory.mjs
3354
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/render3/r3_factory.mjs
3349
3355
  var R3FactoryDelegateType;
3350
3356
  (function(R3FactoryDelegateType2) {
3351
3357
  R3FactoryDelegateType2[R3FactoryDelegateType2["Class"] = 0] = "Class";
@@ -3490,7 +3496,7 @@ function getInjectFn(target) {
3490
3496
  }
3491
3497
  }
3492
3498
 
3493
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/render3/r3_ast.mjs
3499
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/render3/r3_ast.mjs
3494
3500
  var Comment = class {
3495
3501
  constructor(value, sourceSpan) {
3496
3502
  this.value = value;
@@ -3673,12 +3679,13 @@ var DeferredBlockError = class {
3673
3679
  }
3674
3680
  };
3675
3681
  var DeferredBlock = class {
3676
- constructor(children, triggers, prefetchTriggers, placeholder, loading, error2, sourceSpan, startSourceSpan, endSourceSpan) {
3682
+ constructor(children, triggers, prefetchTriggers, placeholder, loading, error2, sourceSpan, mainBlockSpan, startSourceSpan, endSourceSpan) {
3677
3683
  this.children = children;
3678
3684
  this.placeholder = placeholder;
3679
3685
  this.loading = loading;
3680
3686
  this.error = error2;
3681
3687
  this.sourceSpan = sourceSpan;
3688
+ this.mainBlockSpan = mainBlockSpan;
3682
3689
  this.startSourceSpan = startSourceSpan;
3683
3690
  this.endSourceSpan = endSourceSpan;
3684
3691
  this.triggers = triggers;
@@ -3693,20 +3700,18 @@ var DeferredBlock = class {
3693
3700
  this.visitTriggers(this.definedTriggers, this.triggers, visitor);
3694
3701
  this.visitTriggers(this.definedPrefetchTriggers, this.prefetchTriggers, visitor);
3695
3702
  visitAll(visitor, this.children);
3696
- this.placeholder && visitor.visitDeferredBlockPlaceholder(this.placeholder);
3697
- this.loading && visitor.visitDeferredBlockLoading(this.loading);
3698
- this.error && visitor.visitDeferredBlockError(this.error);
3703
+ const remainingBlocks = [this.placeholder, this.loading, this.error].filter((x) => x !== null);
3704
+ visitAll(visitor, remainingBlocks);
3699
3705
  }
3700
3706
  visitTriggers(keys, triggers, visitor) {
3701
- for (const key of keys) {
3702
- visitor.visitDeferredTrigger(triggers[key]);
3703
- }
3707
+ visitAll(visitor, keys.map((k) => triggers[k]));
3704
3708
  }
3705
3709
  };
3706
3710
  var SwitchBlock = class {
3707
- constructor(expression, cases, sourceSpan, startSourceSpan, endSourceSpan) {
3711
+ constructor(expression, cases, unknownBlocks, sourceSpan, startSourceSpan, endSourceSpan) {
3708
3712
  this.expression = expression;
3709
3713
  this.cases = cases;
3714
+ this.unknownBlocks = unknownBlocks;
3710
3715
  this.sourceSpan = sourceSpan;
3711
3716
  this.startSourceSpan = startSourceSpan;
3712
3717
  this.endSourceSpan = endSourceSpan;
@@ -3716,18 +3721,19 @@ var SwitchBlock = class {
3716
3721
  }
3717
3722
  };
3718
3723
  var SwitchBlockCase = class {
3719
- constructor(expression, children, sourceSpan, startSourceSpan) {
3724
+ constructor(expression, children, sourceSpan, startSourceSpan, endSourceSpan) {
3720
3725
  this.expression = expression;
3721
3726
  this.children = children;
3722
3727
  this.sourceSpan = sourceSpan;
3723
3728
  this.startSourceSpan = startSourceSpan;
3729
+ this.endSourceSpan = endSourceSpan;
3724
3730
  }
3725
3731
  visit(visitor) {
3726
3732
  return visitor.visitSwitchBlockCase(this);
3727
3733
  }
3728
3734
  };
3729
3735
  var ForLoopBlock = class {
3730
- constructor(item, expression, trackBy, contextVariables, children, empty, sourceSpan, startSourceSpan, endSourceSpan) {
3736
+ constructor(item, expression, trackBy, contextVariables, children, empty, sourceSpan, mainBlockSpan, startSourceSpan, endSourceSpan) {
3731
3737
  this.item = item;
3732
3738
  this.expression = expression;
3733
3739
  this.trackBy = trackBy;
@@ -3735,6 +3741,7 @@ var ForLoopBlock = class {
3735
3741
  this.children = children;
3736
3742
  this.empty = empty;
3737
3743
  this.sourceSpan = sourceSpan;
3744
+ this.mainBlockSpan = mainBlockSpan;
3738
3745
  this.startSourceSpan = startSourceSpan;
3739
3746
  this.endSourceSpan = endSourceSpan;
3740
3747
  }
@@ -3743,10 +3750,11 @@ var ForLoopBlock = class {
3743
3750
  }
3744
3751
  };
3745
3752
  var ForLoopBlockEmpty = class {
3746
- constructor(children, sourceSpan, startSourceSpan) {
3753
+ constructor(children, sourceSpan, startSourceSpan, endSourceSpan) {
3747
3754
  this.children = children;
3748
3755
  this.sourceSpan = sourceSpan;
3749
3756
  this.startSourceSpan = startSourceSpan;
3757
+ this.endSourceSpan = endSourceSpan;
3750
3758
  }
3751
3759
  visit(visitor) {
3752
3760
  return visitor.visitForLoopBlockEmpty(this);
@@ -3764,17 +3772,27 @@ var IfBlock = class {
3764
3772
  }
3765
3773
  };
3766
3774
  var IfBlockBranch = class {
3767
- constructor(expression, children, expressionAlias, sourceSpan, startSourceSpan) {
3775
+ constructor(expression, children, expressionAlias, sourceSpan, startSourceSpan, endSourceSpan) {
3768
3776
  this.expression = expression;
3769
3777
  this.children = children;
3770
3778
  this.expressionAlias = expressionAlias;
3771
3779
  this.sourceSpan = sourceSpan;
3772
3780
  this.startSourceSpan = startSourceSpan;
3781
+ this.endSourceSpan = endSourceSpan;
3773
3782
  }
3774
3783
  visit(visitor) {
3775
3784
  return visitor.visitIfBlockBranch(this);
3776
3785
  }
3777
3786
  };
3787
+ var UnknownBlock = class {
3788
+ constructor(name, sourceSpan) {
3789
+ this.name = name;
3790
+ this.sourceSpan = sourceSpan;
3791
+ }
3792
+ visit(visitor) {
3793
+ return visitor.visitUnknownBlock(this);
3794
+ }
3795
+ };
3778
3796
  var Template = class {
3779
3797
  constructor(tagName, attributes, inputs, outputs, templateAttrs, children, references, variables, sourceSpan, startSourceSpan, endSourceSpan, i18n2) {
3780
3798
  this.tagName = tagName;
@@ -3858,7 +3876,7 @@ function visitAll(visitor, nodes) {
3858
3876
  return result;
3859
3877
  }
3860
3878
 
3861
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/i18n/i18n_ast.mjs
3879
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/i18n/i18n_ast.mjs
3862
3880
  var Message = class {
3863
3881
  constructor(nodes, placeholders, placeholderToMessage, meaning, description, customId) {
3864
3882
  this.nodes = nodes;
@@ -3977,7 +3995,7 @@ var LocalizeMessageStringVisitor = class {
3977
3995
  }
3978
3996
  };
3979
3997
 
3980
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/i18n/serializers/xml_helper.mjs
3998
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/i18n/serializers/xml_helper.mjs
3981
3999
  var _Visitor = class {
3982
4000
  visitTag(tag) {
3983
4001
  const strAttrs = this._serializeAttributes(tag.attrs);
@@ -4005,12 +4023,12 @@ ${doctype.dtd}
4005
4023
  };
4006
4024
  var _visitor = new _Visitor();
4007
4025
 
4008
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/i18n/serializers/xmb.mjs
4026
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/i18n/serializers/xmb.mjs
4009
4027
  function toPublicName(internalName) {
4010
4028
  return internalName.toUpperCase().replace(/[^A-Z0-9_]/g, "_");
4011
4029
  }
4012
4030
 
4013
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/render3/view/i18n/util.mjs
4031
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/render3/view/i18n/util.mjs
4014
4032
  var CLOSURE_TRANSLATION_VAR_PREFIX = "MSG_";
4015
4033
  var TRANSLATION_VAR_PREFIX = "i18n_";
4016
4034
  var I18N_ATTR = "i18n";
@@ -4112,7 +4130,7 @@ function declareI18nVariable(variable2) {
4112
4130
  return new DeclareVarStmt(variable2.name, void 0, INFERRED_TYPE, void 0, variable2.sourceSpan);
4113
4131
  }
4114
4132
 
4115
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/render3/view/util.mjs
4133
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/render3/view/util.mjs
4116
4134
  var UNSAFE_OBJECT_KEY_NAME_REGEXP = /[-.]/;
4117
4135
  var TEMPORARY_NAME = "_t";
4118
4136
  var CONTEXT_NAME = "ctx";
@@ -4335,7 +4353,7 @@ function getInstructionStatements(instructions) {
4335
4353
  return statements;
4336
4354
  }
4337
4355
 
4338
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/injectable_compiler_2.mjs
4356
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/injectable_compiler_2.mjs
4339
4357
  function compileInjectable(meta, resolveForwardRefs) {
4340
4358
  let result = null;
4341
4359
  const factoryMeta = {
@@ -4420,7 +4438,7 @@ function createFactoryFunction(type) {
4420
4438
  return arrowFn([new FnParam("t", DYNAMIC_TYPE)], type.prop("\u0275fac").callFn([variable("t")]));
4421
4439
  }
4422
4440
 
4423
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/assertions.mjs
4441
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/assertions.mjs
4424
4442
  var UNUSABLE_INTERPOLATION_REGEXPS = [
4425
4443
  /^\s*$/,
4426
4444
  /[<>]/,
@@ -4442,7 +4460,7 @@ function assertInterpolationSymbols(identifier, value) {
4442
4460
  }
4443
4461
  }
4444
4462
 
4445
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/ml_parser/interpolation_config.mjs
4463
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/ml_parser/interpolation_config.mjs
4446
4464
  var InterpolationConfig = class {
4447
4465
  static fromArray(markers) {
4448
4466
  if (!markers) {
@@ -4458,7 +4476,7 @@ var InterpolationConfig = class {
4458
4476
  };
4459
4477
  var DEFAULT_INTERPOLATION_CONFIG = new InterpolationConfig("{{", "}}");
4460
4478
 
4461
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/chars.mjs
4479
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/chars.mjs
4462
4480
  var $EOF = 0;
4463
4481
  var $BSPACE = 8;
4464
4482
  var $TAB = 9;
@@ -4540,7 +4558,7 @@ function isQuote(code) {
4540
4558
  return code === $SQ || code === $DQ || code === $BT;
4541
4559
  }
4542
4560
 
4543
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/parse_util.mjs
4561
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/parse_util.mjs
4544
4562
  var ParseLocation = class {
4545
4563
  constructor(file, offset, line, col) {
4546
4564
  this.file = file;
@@ -4687,7 +4705,7 @@ function sanitizeIdentifier(name) {
4687
4705
  return name.replace(/\W/g, "_");
4688
4706
  }
4689
4707
 
4690
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/output/abstract_js_emitter.mjs
4708
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/output/abstract_js_emitter.mjs
4691
4709
  var makeTemplateObjectPolyfill = '(this&&this.__makeTemplateObject||function(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e})';
4692
4710
  var AbstractJsEmitterVisitor = class extends AbstractEmitterVisitor {
4693
4711
  constructor() {
@@ -4780,7 +4798,7 @@ var AbstractJsEmitterVisitor = class extends AbstractEmitterVisitor {
4780
4798
  }
4781
4799
  };
4782
4800
 
4783
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/output/output_jit_trusted_types.mjs
4801
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/output/output_jit_trusted_types.mjs
4784
4802
  var policy;
4785
4803
  function getPolicy() {
4786
4804
  if (policy === void 0) {
@@ -4818,7 +4836,7 @@ function newTrustedFunctionForJIT(...args) {
4818
4836
  return fn2.bind(_global);
4819
4837
  }
4820
4838
 
4821
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/output/output_jit.mjs
4839
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/output/output_jit.mjs
4822
4840
  var JitEvaluator = class {
4823
4841
  evaluateStatements(sourceUrl, statements, refResolver, createSourceMaps) {
4824
4842
  const converter = new JitEmitterVisitor(refResolver);
@@ -4909,7 +4927,7 @@ function isUseStrictStatement(statement) {
4909
4927
  return statement.isEquivalent(literal("use strict").toStmt());
4910
4928
  }
4911
4929
 
4912
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/render3/r3_injector_compiler.mjs
4930
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/render3/r3_injector_compiler.mjs
4913
4931
  function compileInjector(meta) {
4914
4932
  const definitionMap = new DefinitionMap();
4915
4933
  if (meta.providers !== null) {
@@ -4926,7 +4944,7 @@ function createInjectorType(meta) {
4926
4944
  return new ExpressionType(importExpr(Identifiers.InjectorDeclaration, [new ExpressionType(meta.type.type)]));
4927
4945
  }
4928
4946
 
4929
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/render3/r3_jit.mjs
4947
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/render3/r3_jit.mjs
4930
4948
  var R3JitReflector = class {
4931
4949
  constructor(context) {
4932
4950
  this.context = context;
@@ -4942,7 +4960,7 @@ var R3JitReflector = class {
4942
4960
  }
4943
4961
  };
4944
4962
 
4945
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/render3/r3_module_compiler.mjs
4963
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/render3/r3_module_compiler.mjs
4946
4964
  var R3SelectorScopeMode;
4947
4965
  (function(R3SelectorScopeMode2) {
4948
4966
  R3SelectorScopeMode2[R3SelectorScopeMode2["Inline"] = 0] = "Inline";
@@ -5083,7 +5101,7 @@ function tupleOfTypes(types) {
5083
5101
  return types.length > 0 ? expressionType(literalArr(typeofTypes)) : NONE_TYPE;
5084
5102
  }
5085
5103
 
5086
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/render3/r3_pipe_compiler.mjs
5104
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/render3/r3_pipe_compiler.mjs
5087
5105
  function compilePipeFromMetadata(metadata) {
5088
5106
  const definitionMapValues = [];
5089
5107
  definitionMapValues.push({ key: "name", value: literal(metadata.pipeName), quoted: false });
@@ -5104,7 +5122,7 @@ function createPipeType(metadata) {
5104
5122
  ]));
5105
5123
  }
5106
5124
 
5107
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/render3/view/api.mjs
5125
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/render3/view/api.mjs
5108
5126
  var R3TemplateDependencyKind;
5109
5127
  (function(R3TemplateDependencyKind2) {
5110
5128
  R3TemplateDependencyKind2[R3TemplateDependencyKind2["Directive"] = 0] = "Directive";
@@ -5112,7 +5130,7 @@ var R3TemplateDependencyKind;
5112
5130
  R3TemplateDependencyKind2[R3TemplateDependencyKind2["NgModule"] = 2] = "NgModule";
5113
5131
  })(R3TemplateDependencyKind || (R3TemplateDependencyKind = {}));
5114
5132
 
5115
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/expression_parser/ast.mjs
5133
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/expression_parser/ast.mjs
5116
5134
  var ParserError = class {
5117
5135
  constructor(message, input, errLocation, ctxLocation) {
5118
5136
  this.input = input;
@@ -5778,7 +5796,7 @@ var BoundElementProperty = class {
5778
5796
  }
5779
5797
  };
5780
5798
 
5781
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/compiler_util/expression_converter.mjs
5799
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/compiler_util/expression_converter.mjs
5782
5800
  var _EventHandlerVars = class {
5783
5801
  };
5784
5802
  var EventHandlerVars = _EventHandlerVars;
@@ -6419,7 +6437,7 @@ var BuiltinFunctionCall = class extends Call {
6419
6437
  }
6420
6438
  };
6421
6439
 
6422
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/schema/dom_security_schema.mjs
6440
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/schema/dom_security_schema.mjs
6423
6441
  var _SECURITY_SCHEMA;
6424
6442
  function SECURITY_SCHEMA() {
6425
6443
  if (!_SECURITY_SCHEMA) {
@@ -6477,7 +6495,7 @@ function isIframeSecuritySensitiveAttr(attrName) {
6477
6495
  return IFRAME_SECURITY_SENSITIVE_ATTRS.has(attrName.toLowerCase());
6478
6496
  }
6479
6497
 
6480
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/shadow_css.mjs
6498
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/shadow_css.mjs
6481
6499
  var animationKeywords = /* @__PURE__ */ new Set([
6482
6500
  "inherit",
6483
6501
  "initial",
@@ -6944,7 +6962,7 @@ function repeatGroups(groups, multiples) {
6944
6962
  }
6945
6963
  }
6946
6964
 
6947
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/ir/src/enums.mjs
6965
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/ir/src/enums.mjs
6948
6966
  var OpKind;
6949
6967
  (function(OpKind2) {
6950
6968
  OpKind2[OpKind2["ListEnd"] = 0] = "ListEnd";
@@ -7049,7 +7067,7 @@ var BindingKind;
7049
7067
  BindingKind2[BindingKind2["Animation"] = 6] = "Animation";
7050
7068
  })(BindingKind || (BindingKind = {}));
7051
7069
 
7052
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/ir/src/traits.mjs
7070
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/ir/src/traits.mjs
7053
7071
  var ConsumesSlot = Symbol("ConsumesSlot");
7054
7072
  var DependsOnSlotContext = Symbol("DependsOnSlotContext");
7055
7073
  var UsesSlotIndex = Symbol("UsesSlotIndex");
@@ -7098,7 +7116,7 @@ function hasConstTrait(value) {
7098
7116
  return value[HasConst] === true;
7099
7117
  }
7100
7118
 
7101
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/ir/src/ops/shared.mjs
7119
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/ir/src/ops/shared.mjs
7102
7120
  function createStatementOp(statement) {
7103
7121
  return __spreadValues({
7104
7122
  kind: OpKind.Statement,
@@ -7119,7 +7137,7 @@ var NEW_OP = {
7119
7137
  next: null
7120
7138
  };
7121
7139
 
7122
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/ir/src/ops/update.mjs
7140
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/ir/src/ops/update.mjs
7123
7141
  function createInterpolateTextOp(xref, interpolation, i18nPlaceholders, sourceSpan) {
7124
7142
  return __spreadValues(__spreadValues(__spreadValues({
7125
7143
  kind: OpKind.InterpolateText,
@@ -7228,10 +7246,11 @@ function createConditionalOp(target, test, conditions, sourceSpan) {
7228
7246
  contextValue: null
7229
7247
  }, NEW_OP), TRAIT_USES_SLOT_INDEX), TRAIT_DEPENDS_ON_SLOT_CONTEXT), TRAIT_CONSUMES_VARS);
7230
7248
  }
7231
- function createI18nExpressionOp(target, expression, i18nPlaceholder, sourceSpan) {
7249
+ function createI18nExpressionOp(owner, expression, i18nPlaceholder, sourceSpan) {
7232
7250
  return __spreadValues(__spreadValues(__spreadValues({
7233
7251
  kind: OpKind.I18nExpression,
7234
- target,
7252
+ owner,
7253
+ target: owner,
7235
7254
  expression,
7236
7255
  i18nPlaceholder,
7237
7256
  sourceSpan
@@ -7245,7 +7264,7 @@ function createI18nApplyOp(target, sourceSpan) {
7245
7264
  }, NEW_OP), TRAIT_USES_SLOT_INDEX);
7246
7265
  }
7247
7266
 
7248
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/ir/src/expression.mjs
7267
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/ir/src/expression.mjs
7249
7268
  var _a;
7250
7269
  var _b;
7251
7270
  var _c;
@@ -8033,7 +8052,7 @@ function isStringLiteral(expr) {
8033
8052
  return expr instanceof LiteralExpr && typeof expr.value === "string";
8034
8053
  }
8035
8054
 
8036
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/ir/src/operations.mjs
8055
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/ir/src/operations.mjs
8037
8056
  var _OpList = class {
8038
8057
  constructor() {
8039
8058
  this.debugListId = _OpList.nextListId++;
@@ -8224,7 +8243,7 @@ var OpList = _OpList;
8224
8243
  _OpList.nextListId = 0;
8225
8244
  })();
8226
8245
 
8227
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/ir/src/ops/create.mjs
8246
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/ir/src/ops/create.mjs
8228
8247
  var elementContainerOpKinds = /* @__PURE__ */ new Set([
8229
8248
  OpKind.Element,
8230
8249
  OpKind.ElementStart,
@@ -8249,7 +8268,7 @@ function createElementStartOp(tag, xref, namespace, i18nPlaceholder, sourceSpan)
8249
8268
  sourceSpan
8250
8269
  }, TRAIT_CONSUMES_SLOT), NEW_OP);
8251
8270
  }
8252
- function createTemplateOp(xref, tag, namespace, generatedInBlock, i18n2, sourceSpan) {
8271
+ function createTemplateOp(xref, tag, namespace, generatedInBlock, i18nPlaceholder, sourceSpan) {
8253
8272
  return __spreadValues(__spreadValues({
8254
8273
  kind: OpKind.Template,
8255
8274
  xref,
@@ -8261,6 +8280,7 @@ function createTemplateOp(xref, tag, namespace, generatedInBlock, i18n2, sourceS
8261
8280
  localRefs: [],
8262
8281
  nonBindable: false,
8263
8282
  namespace,
8283
+ i18nPlaceholder,
8264
8284
  sourceSpan
8265
8285
  }, TRAIT_CONSUMES_SLOT), NEW_OP);
8266
8286
  }
@@ -8388,13 +8408,15 @@ function createExtractedMessageOp(owner, expression, statements) {
8388
8408
  statements
8389
8409
  }, NEW_OP);
8390
8410
  }
8391
- function createI18nStartOp(xref, message) {
8411
+ function createI18nStartOp(xref, message, root) {
8392
8412
  return __spreadValues(__spreadValues({
8393
8413
  kind: OpKind.I18nStart,
8394
8414
  xref,
8415
+ root: root != null ? root : xref,
8395
8416
  message,
8396
8417
  params: /* @__PURE__ */ new Map(),
8397
- messageIndex: null
8418
+ messageIndex: null,
8419
+ subTemplateIndex: null
8398
8420
  }, NEW_OP), TRAIT_CONSUMES_SLOT);
8399
8421
  }
8400
8422
  function createI18nEndOp(xref) {
@@ -8410,7 +8432,7 @@ function literalOrArrayLiteral(value) {
8410
8432
  return literal(value, INFERRED_TYPE);
8411
8433
  }
8412
8434
 
8413
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/ir/src/ops/host.mjs
8435
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/ir/src/ops/host.mjs
8414
8436
  function createHostPropertyOp(name, expression, isAnimationTrigger, sourceSpan) {
8415
8437
  return __spreadValues(__spreadValues({
8416
8438
  kind: OpKind.HostProperty,
@@ -8421,10 +8443,10 @@ function createHostPropertyOp(name, expression, isAnimationTrigger, sourceSpan)
8421
8443
  }, TRAIT_CONSUMES_VARS), NEW_OP);
8422
8444
  }
8423
8445
 
8424
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/ir/src/variable.mjs
8446
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/ir/src/variable.mjs
8425
8447
  var CTX_REF = "CTX_REF_MARKER";
8426
8448
 
8427
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/compilation.mjs
8449
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/compilation.mjs
8428
8450
  var CompilationJobKind;
8429
8451
  (function(CompilationJobKind2) {
8430
8452
  CompilationJobKind2[CompilationJobKind2["Tmpl"] = 0] = "Tmpl";
@@ -8529,7 +8551,7 @@ var HostBindingCompilationUnit = class extends CompilationUnit {
8529
8551
  }
8530
8552
  };
8531
8553
 
8532
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/var_counting.mjs
8554
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/var_counting.mjs
8533
8555
  function phaseVarCounting(job) {
8534
8556
  for (const unit of job.units) {
8535
8557
  let varCount = 0;
@@ -8607,7 +8629,7 @@ function varsUsedByIrExpression(expr) {
8607
8629
  }
8608
8630
  }
8609
8631
 
8610
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/align_pipe_variadic_var_offset.mjs
8632
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/align_pipe_variadic_var_offset.mjs
8611
8633
  function phaseAlignPipeVariadicVarOffset(job) {
8612
8634
  for (const unit of job.units) {
8613
8635
  for (const op of unit.update) {
@@ -8629,7 +8651,7 @@ function phaseAlignPipeVariadicVarOffset(job) {
8629
8651
  }
8630
8652
  }
8631
8653
 
8632
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/any_cast.mjs
8654
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/any_cast.mjs
8633
8655
  function phaseFindAnyCasts(job) {
8634
8656
  for (const unit of job.units) {
8635
8657
  for (const op of unit.ops()) {
@@ -8647,12 +8669,12 @@ function removeAnys(e) {
8647
8669
  return e;
8648
8670
  }
8649
8671
 
8650
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/apply_i18n_expressions.mjs
8672
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/apply_i18n_expressions.mjs
8651
8673
  function phaseApplyI18nExpressions(job) {
8652
8674
  for (const unit of job.units) {
8653
8675
  for (const op of unit.update) {
8654
8676
  if (op.kind === OpKind.I18nExpression && needsApplication(op)) {
8655
- OpList.insertAfter(createI18nApplyOp(op.target, null), op);
8677
+ OpList.insertAfter(createI18nApplyOp(op.owner, null), op);
8656
8678
  }
8657
8679
  }
8658
8680
  }
@@ -8662,13 +8684,34 @@ function needsApplication(op) {
8662
8684
  if (((_a2 = op.next) == null ? void 0 : _a2.kind) !== OpKind.I18nExpression) {
8663
8685
  return true;
8664
8686
  }
8665
- if (op.next.target !== op.target) {
8687
+ if (op.next.owner !== op.owner) {
8666
8688
  return true;
8667
8689
  }
8668
8690
  return false;
8669
8691
  }
8670
8692
 
8671
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/util/elements.mjs
8693
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/assign_i18n_slot_dependencies.mjs
8694
+ function phaseAssignI18nSlotDependencies(job) {
8695
+ const i18nLastSlotConsumers = /* @__PURE__ */ new Map();
8696
+ let lastSlotConsumer = null;
8697
+ for (const unit of job.units) {
8698
+ for (const op of unit.create) {
8699
+ if (op.kind === OpKind.I18nEnd) {
8700
+ i18nLastSlotConsumers.set(op.xref, lastSlotConsumer);
8701
+ }
8702
+ if (hasConsumesSlotTrait(op)) {
8703
+ lastSlotConsumer = op.xref;
8704
+ }
8705
+ }
8706
+ for (const op of unit.update) {
8707
+ if (op.kind === OpKind.I18nExpression) {
8708
+ op.target = i18nLastSlotConsumers.get(op.owner);
8709
+ }
8710
+ }
8711
+ }
8712
+ }
8713
+
8714
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/util/elements.mjs
8672
8715
  function getElementsByXrefId(unit) {
8673
8716
  const elements = /* @__PURE__ */ new Map();
8674
8717
  for (const op of unit.create) {
@@ -8680,7 +8723,7 @@ function getElementsByXrefId(unit) {
8680
8723
  return elements;
8681
8724
  }
8682
8725
 
8683
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/attribute_extraction.mjs
8726
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/attribute_extraction.mjs
8684
8727
  function phaseAttributeExtraction(job) {
8685
8728
  for (const unit of job.units) {
8686
8729
  const elements = getElementsByXrefId(unit);
@@ -8747,7 +8790,7 @@ function extractAttributeOp(unit, op, elements) {
8747
8790
  }
8748
8791
  }
8749
8792
 
8750
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/binding_specialization.mjs
8793
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/binding_specialization.mjs
8751
8794
  function lookupElement2(elements, xref) {
8752
8795
  const el = elements.get(xref);
8753
8796
  if (el === void 0) {
@@ -8797,7 +8840,7 @@ function phaseBindingSpecialization(job) {
8797
8840
  }
8798
8841
  }
8799
8842
 
8800
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/chaining.mjs
8843
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/chaining.mjs
8801
8844
  var CHAINABLE = /* @__PURE__ */ new Set([
8802
8845
  Identifiers.attribute,
8803
8846
  Identifiers.classProp,
@@ -8863,7 +8906,7 @@ function chainOperationsInList(opList) {
8863
8906
  }
8864
8907
  }
8865
8908
 
8866
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/conditionals.mjs
8909
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/conditionals.mjs
8867
8910
  function phaseConditionals(job) {
8868
8911
  for (const unit of job.units) {
8869
8912
  for (const op of unit.ops()) {
@@ -8899,7 +8942,7 @@ function phaseConditionals(job) {
8899
8942
  }
8900
8943
  }
8901
8944
 
8902
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/ml_parser/tags.mjs
8945
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/ml_parser/tags.mjs
8903
8946
  var TagContentType;
8904
8947
  (function(TagContentType2) {
8905
8948
  TagContentType2[TagContentType2["RAW_TEXT"] = 0] = "RAW_TEXT";
@@ -8932,7 +8975,7 @@ function mergeNsAndName(prefix, localName) {
8932
8975
  return prefix ? `:${prefix}:${localName}` : localName;
8933
8976
  }
8934
8977
 
8935
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/conversion.mjs
8978
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/conversion.mjs
8936
8979
  var BINARY_OPERATORS = /* @__PURE__ */ new Map([
8937
8980
  ["&&", BinaryOperator.And],
8938
8981
  [">", BinaryOperator.Bigger],
@@ -8982,7 +9025,7 @@ function literalOrArrayLiteral2(value) {
8982
9025
  return literal(value, INFERRED_TYPE);
8983
9026
  }
8984
9027
 
8985
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/const_collection.mjs
9028
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/const_collection.mjs
8986
9029
  function phaseConstCollection(job) {
8987
9030
  const allElementAttributes = /* @__PURE__ */ new Map();
8988
9031
  for (const unit of job.units) {
@@ -9116,7 +9159,7 @@ function serializeAttributes({ attributes, bindings, classes, i18n: i18n2, proje
9116
9159
  return literalArr(attrArray);
9117
9160
  }
9118
9161
 
9119
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/empty_elements.mjs
9162
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/empty_elements.mjs
9120
9163
  var REPLACEMENTS = /* @__PURE__ */ new Map([
9121
9164
  [OpKind.ElementEnd, [OpKind.ElementStart, OpKind.Element]],
9122
9165
  [OpKind.ContainerEnd, [OpKind.ContainerStart, OpKind.Container]],
@@ -9143,7 +9186,7 @@ function phaseEmptyElements(job) {
9143
9186
  }
9144
9187
  }
9145
9188
 
9146
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/expand_safe_reads.mjs
9189
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/expand_safe_reads.mjs
9147
9190
  function phaseExpandSafeReads(job) {
9148
9191
  for (const unit of job.units) {
9149
9192
  for (const op of unit.ops()) {
@@ -9279,28 +9322,16 @@ function ternaryTransform(e) {
9279
9322
  return new ConditionalExpr(new BinaryOperatorExpr(BinaryOperator.Equals, e.guard, NULL_EXPR), NULL_EXPR, e.expr);
9280
9323
  }
9281
9324
 
9282
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/generate_advance.mjs
9325
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/generate_advance.mjs
9283
9326
  function phaseGenerateAdvance(job) {
9284
9327
  for (const unit of job.units) {
9285
9328
  const slotMap = /* @__PURE__ */ new Map();
9286
- let lastSlotOp = null;
9287
9329
  for (const op of unit.create) {
9288
- if (op.kind === OpKind.I18nEnd) {
9289
- if (lastSlotOp === null) {
9290
- throw Error("Expected to have encountered an op prior to i18nEnd that consumes a slot");
9291
- }
9292
- let lastSlot = lastSlotOp.slot;
9293
- if (lastSlotOp.kind === OpKind.I18nStart && job.compatibility) {
9294
- lastSlot++;
9295
- }
9296
- slotMap.set(op.xref, lastSlot);
9297
- }
9298
9330
  if (!hasConsumesSlotTrait(op)) {
9299
9331
  continue;
9300
9332
  } else if (op.slot === null) {
9301
9333
  throw new Error(`AssertionError: expected slots to have been allocated before generating advance() calls`);
9302
9334
  }
9303
- lastSlotOp = op;
9304
9335
  slotMap.set(op.xref, op.slot);
9305
9336
  }
9306
9337
  let slotContext = 0;
@@ -9323,7 +9354,7 @@ function phaseGenerateAdvance(job) {
9323
9354
  }
9324
9355
  }
9325
9356
 
9326
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/generate_projection_def.mjs
9357
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/generate_projection_def.mjs
9327
9358
  function phaseGenerateProjectionDef(job) {
9328
9359
  const share = job.compatibility === CompatibilityMode.TemplateDefinitionBuilder;
9329
9360
  const selectors = [];
@@ -9347,7 +9378,7 @@ function phaseGenerateProjectionDef(job) {
9347
9378
  }
9348
9379
  }
9349
9380
 
9350
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/generate_variables.mjs
9381
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/generate_variables.mjs
9351
9382
  function phaseGenerateVariables(job) {
9352
9383
  recursivelyProcessView(job.root, null);
9353
9384
  }
@@ -9429,7 +9460,7 @@ function generateVariablesInScopeForView(view, scope) {
9429
9460
  return newOps;
9430
9461
  }
9431
9462
 
9432
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/has_const_trait_collection.mjs
9463
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/has_const_trait_collection.mjs
9433
9464
  function phaseConstTraitCollection(job) {
9434
9465
  const collectGlobalConsts = (e) => {
9435
9466
  if (e instanceof ExpressionBase && hasConstTrait(e)) {
@@ -9450,7 +9481,7 @@ function phaseConstTraitCollection(job) {
9450
9481
  }
9451
9482
  }
9452
9483
 
9453
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/host_style_property_parsing.mjs
9484
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/host_style_property_parsing.mjs
9454
9485
  var STYLE_DOT = "style.";
9455
9486
  var CLASS_DOT = "class.";
9456
9487
  var STYLE_BANG = "style!";
@@ -9508,7 +9539,7 @@ function parseProperty(name) {
9508
9539
  return { property: property2, suffix };
9509
9540
  }
9510
9541
 
9511
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/i18n_const_collection.mjs
9542
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/i18n_const_collection.mjs
9512
9543
  function phaseI18nConstCollection(job) {
9513
9544
  const messageConstIndices = {};
9514
9545
  for (const unit of job.units) {
@@ -9521,14 +9552,14 @@ function phaseI18nConstCollection(job) {
9521
9552
  }
9522
9553
  for (const unit of job.units) {
9523
9554
  for (const op of unit.create) {
9524
- if ((op.kind === OpKind.I18nStart || op.kind === OpKind.I18n) && messageConstIndices[op.xref] !== void 0) {
9525
- op.messageIndex = messageConstIndices[op.xref];
9555
+ if (op.kind === OpKind.I18nStart || op.kind === OpKind.I18n) {
9556
+ op.messageIndex = messageConstIndices[op.root];
9526
9557
  }
9527
9558
  }
9528
9559
  }
9529
9560
  }
9530
9561
 
9531
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/output/map_util.mjs
9562
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/output/map_util.mjs
9532
9563
  function mapLiteral(obj, quoted = false) {
9533
9564
  return literalMap(Object.keys(obj).map((key) => ({
9534
9565
  key,
@@ -9537,7 +9568,7 @@ function mapLiteral(obj, quoted = false) {
9537
9568
  })));
9538
9569
  }
9539
9570
 
9540
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/render3/view/i18n/icu_serializer.mjs
9571
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/render3/view/i18n/icu_serializer.mjs
9541
9572
  var IcuSerializerVisitor = class {
9542
9573
  visitText(text2) {
9543
9574
  return text2.value;
@@ -9568,7 +9599,7 @@ function serializeIcuNode(icu) {
9568
9599
  return icu.visit(serializer);
9569
9600
  }
9570
9601
 
9571
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/expression_parser/lexer.mjs
9602
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/expression_parser/lexer.mjs
9572
9603
  var TokenType;
9573
9604
  (function(TokenType2) {
9574
9605
  TokenType2[TokenType2["Character"] = 0] = "Character";
@@ -9929,7 +9960,7 @@ function parseIntAutoRadix(text2) {
9929
9960
  return result;
9930
9961
  }
9931
9962
 
9932
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/expression_parser/parser.mjs
9963
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/expression_parser/parser.mjs
9933
9964
  var SplitInterpolation = class {
9934
9965
  constructor(strings, expressions, offsets) {
9935
9966
  this.strings = strings;
@@ -10823,7 +10854,7 @@ function getIndexMapForOriginalTemplate(interpolatedTokens) {
10823
10854
  return offsetMap;
10824
10855
  }
10825
10856
 
10826
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/ml_parser/ast.mjs
10857
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/ml_parser/ast.mjs
10827
10858
  var NodeWithI18n = class {
10828
10859
  constructor(sourceSpan, i18n2) {
10829
10860
  this.sourceSpan = sourceSpan;
@@ -10974,11 +11005,11 @@ var RecursiveVisitor = class {
10974
11005
  }
10975
11006
  };
10976
11007
 
10977
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/schema/element_schema_registry.mjs
11008
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/schema/element_schema_registry.mjs
10978
11009
  var ElementSchemaRegistry = class {
10979
11010
  };
10980
11011
 
10981
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/schema/dom_element_schema_registry.mjs
11012
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/schema/dom_element_schema_registry.mjs
10982
11013
  var BOOLEAN = "boolean";
10983
11014
  var NUMBER = "number";
10984
11015
  var STRING = "string";
@@ -11331,7 +11362,7 @@ function _isPixelDimensionStyle(prop) {
11331
11362
  }
11332
11363
  }
11333
11364
 
11334
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/ml_parser/html_tags.mjs
11365
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/ml_parser/html_tags.mjs
11335
11366
  var HtmlTagDefinition = class {
11336
11367
  constructor({ closedByChildren, implicitNamespacePrefix, contentType = TagContentType.PARSABLE_DATA, closedByParent = false, isVoid = false, ignoreFirstLf = false, preventNamespaceInheritance = false, canSelfClose = false } = {}) {
11337
11368
  this.closedByChildren = {};
@@ -11449,7 +11480,7 @@ function getHtmlTagDefinition(tagName) {
11449
11480
  return (_b2 = (_a2 = TAG_DEFINITIONS[tagName]) != null ? _a2 : TAG_DEFINITIONS[tagName.toLowerCase()]) != null ? _b2 : DEFAULT_TAG_DEFINITION;
11450
11481
  }
11451
11482
 
11452
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/i18n/serializers/placeholder.mjs
11483
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/i18n/serializers/placeholder.mjs
11453
11484
  var TAG_TO_PLACEHOLDER_NAMES = {
11454
11485
  "A": "LINK",
11455
11486
  "B": "BOLD_TEXT",
@@ -11543,7 +11574,7 @@ var PlaceholderRegistry = class {
11543
11574
  }
11544
11575
  };
11545
11576
 
11546
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/i18n/i18n_parser.mjs
11577
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/i18n/i18n_parser.mjs
11547
11578
  var _expParser = new Parser(new Lexer());
11548
11579
  function createI18nMessageFactory(interpolationConfig) {
11549
11580
  const visitor = new _I18nVisitor(_expParser, interpolationConfig);
@@ -11705,14 +11736,14 @@ function extractPlaceholderName(input) {
11705
11736
  return input.split(_CUSTOM_PH_EXP)[2];
11706
11737
  }
11707
11738
 
11708
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/i18n/parse_util.mjs
11739
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/i18n/parse_util.mjs
11709
11740
  var I18nError = class extends ParseError {
11710
11741
  constructor(span, msg) {
11711
11742
  super(span, msg);
11712
11743
  }
11713
11744
  };
11714
11745
 
11715
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/ml_parser/entities.mjs
11746
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/ml_parser/entities.mjs
11716
11747
  var NAMED_ENTITIES = {
11717
11748
  "AElig": "\xC6",
11718
11749
  "AMP": "&",
@@ -13843,7 +13874,7 @@ var NAMED_ENTITIES = {
13843
13874
  var NGSP_UNICODE = "\uE500";
13844
13875
  NAMED_ENTITIES["ngsp"] = NGSP_UNICODE;
13845
13876
 
13846
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/ml_parser/lexer.mjs
13877
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/ml_parser/lexer.mjs
13847
13878
  var TokenError = class extends ParseError {
13848
13879
  constructor(errorMsg, tokenType, span) {
13849
13880
  super(span, errorMsg);
@@ -13943,7 +13974,7 @@ var _Tokenizer = class {
13943
13974
  this.handleError(e);
13944
13975
  }
13945
13976
  }
13946
- this._beginToken(28);
13977
+ this._beginToken(29);
13947
13978
  this._endToken([]);
13948
13979
  }
13949
13980
  _getBlockName() {
@@ -13963,17 +13994,24 @@ var _Tokenizer = class {
13963
13994
  }
13964
13995
  _consumeBlockStart(start) {
13965
13996
  this._beginToken(24, start);
13966
- this._endToken([this._getBlockName()]);
13997
+ const startToken = this._endToken([this._getBlockName()]);
13967
13998
  if (this._cursor.peek() === $LPAREN) {
13968
13999
  this._cursor.advance();
13969
14000
  this._consumeBlockParameters();
13970
14001
  this._attemptCharCodeUntilFn(isNotWhitespace);
13971
- this._requireCharCode($RPAREN);
13972
- this._attemptCharCodeUntilFn(isNotWhitespace);
14002
+ if (this._attemptCharCode($RPAREN)) {
14003
+ this._attemptCharCodeUntilFn(isNotWhitespace);
14004
+ } else {
14005
+ startToken.type = 28;
14006
+ return;
14007
+ }
14008
+ }
14009
+ if (this._attemptCharCode($LBRACE)) {
14010
+ this._beginToken(25);
14011
+ this._endToken([]);
14012
+ } else {
14013
+ startToken.type = 28;
13973
14014
  }
13974
- this._beginToken(25);
13975
- this._requireCharCode($LBRACE);
13976
- this._endToken([]);
13977
14015
  }
13978
14016
  _consumeBlockEnd(start) {
13979
14017
  this._beginToken(26, start);
@@ -14767,7 +14805,7 @@ var CursorError = class {
14767
14805
  }
14768
14806
  };
14769
14807
 
14770
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/ml_parser/parser.mjs
14808
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/ml_parser/parser.mjs
14771
14809
  var TreeError = class extends ParseError {
14772
14810
  static create(elementName, span, msg) {
14773
14811
  return new TreeError(elementName, span, msg);
@@ -14805,7 +14843,7 @@ var _TreeBuilder = class {
14805
14843
  this._advance();
14806
14844
  }
14807
14845
  build() {
14808
- while (this._peek.type !== 28) {
14846
+ while (this._peek.type !== 29) {
14809
14847
  if (this._peek.type === 0 || this._peek.type === 4) {
14810
14848
  this._consumeStartTag(this._advance());
14811
14849
  } else if (this._peek.type === 3) {
@@ -14827,6 +14865,9 @@ var _TreeBuilder = class {
14827
14865
  } else if (this._peek.type === 26) {
14828
14866
  this._closeVoidElement();
14829
14867
  this._consumeBlockClose(this._advance());
14868
+ } else if (this._peek.type === 28) {
14869
+ this._closeVoidElement();
14870
+ this._consumeIncompleteBlock(this._advance());
14830
14871
  } else {
14831
14872
  this._advance();
14832
14873
  }
@@ -14891,7 +14932,7 @@ var _TreeBuilder = class {
14891
14932
  if (!exp)
14892
14933
  return null;
14893
14934
  const end = this._advance();
14894
- exp.push({ type: 28, parts: [], sourceSpan: end.sourceSpan });
14935
+ exp.push({ type: 29, parts: [], sourceSpan: end.sourceSpan });
14895
14936
  const expansionCaseParser = new _TreeBuilder(exp, this.getTagDefinition);
14896
14937
  expansionCaseParser.build();
14897
14938
  if (expansionCaseParser.errors.length > 0) {
@@ -14927,7 +14968,7 @@ var _TreeBuilder = class {
14927
14968
  return null;
14928
14969
  }
14929
14970
  }
14930
- if (this._peek.type === 28) {
14971
+ if (this._peek.type === 29) {
14931
14972
  this.errors.push(TreeError.create(null, start.sourceSpan, `Invalid ICU message. Missing '}'.`));
14932
14973
  return null;
14933
14974
  }
@@ -15079,14 +15120,25 @@ var _TreeBuilder = class {
15079
15120
  const startSpan = new ParseSourceSpan(token.sourceSpan.start, end, token.sourceSpan.fullStart);
15080
15121
  const block = new Block(token.parts[0], parameters, [], span, startSpan);
15081
15122
  this._pushContainer(block, false);
15082
- return block;
15083
15123
  }
15084
15124
  _consumeBlockClose(token) {
15085
- const previousContainer = this._getContainer();
15086
15125
  if (!this._popContainer(null, Block, token.sourceSpan)) {
15087
- const context = previousContainer instanceof Element2 ? `There is an unclosed "${previousContainer.name}" HTML tag that may have to be closed first.` : `The block may have been closed earlier.`;
15088
- this.errors.push(TreeError.create(null, token.sourceSpan, `Unexpected closing block. ${context}`));
15126
+ this.errors.push(TreeError.create(null, token.sourceSpan, `Unexpected closing block. The block may have been closed earlier. If you meant to write the } character, you should use the "&#125;" HTML entity instead.`));
15127
+ }
15128
+ }
15129
+ _consumeIncompleteBlock(token) {
15130
+ const parameters = [];
15131
+ while (this._peek.type === 27) {
15132
+ const paramToken = this._advance();
15133
+ parameters.push(new BlockParameter(paramToken.parts[0], paramToken.sourceSpan));
15089
15134
  }
15135
+ const end = this._peek.sourceSpan.fullStart;
15136
+ const span = new ParseSourceSpan(token.sourceSpan.start, end, token.sourceSpan.fullStart);
15137
+ const startSpan = new ParseSourceSpan(token.sourceSpan.start, end, token.sourceSpan.fullStart);
15138
+ const block = new Block(token.parts[0], parameters, [], span, startSpan);
15139
+ this._pushContainer(block, false);
15140
+ this._popContainer(null, Block, null);
15141
+ this.errors.push(TreeError.create(token.parts[0], span, `Incomplete block "${token.parts[0]}". If you meant to write the @ character, you should use the "&#64;" HTML entity instead.`));
15090
15142
  }
15091
15143
  _getContainer() {
15092
15144
  return this._containerStack.length > 0 ? this._containerStack[this._containerStack.length - 1] : null;
@@ -15137,7 +15189,7 @@ function decodeEntity(match, entity) {
15137
15189
  return match;
15138
15190
  }
15139
15191
 
15140
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/schema/trusted_types_sinks.mjs
15192
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/schema/trusted_types_sinks.mjs
15141
15193
  var TRUSTED_TYPES_SINKS = /* @__PURE__ */ new Set([
15142
15194
  "iframe|srcdoc",
15143
15195
  "*|innerhtml",
@@ -15152,7 +15204,7 @@ function isTrustedTypesSink(tagName, propName) {
15152
15204
  return TRUSTED_TYPES_SINKS.has(tagName + "|" + propName) || TRUSTED_TYPES_SINKS.has("*|" + propName);
15153
15205
  }
15154
15206
 
15155
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/render3/view/i18n/meta.mjs
15207
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/render3/view/i18n/meta.mjs
15156
15208
  var setI18nRefs = (htmlNode, i18nNode) => {
15157
15209
  if (htmlNode instanceof NodeWithI18n) {
15158
15210
  if (i18nNode instanceof IcuPlaceholder && htmlNode.i18n instanceof Message) {
@@ -15308,7 +15360,7 @@ function i18nMetaToJSDoc(meta) {
15308
15360
  return jsDocComment(tags);
15309
15361
  }
15310
15362
 
15311
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/render3/view/i18n/get_msg_utils.mjs
15363
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/render3/view/i18n/get_msg_utils.mjs
15312
15364
  var GOOG_GET_MSG = "goog.getMsg";
15313
15365
  function createGoogleGetMsgStatements(variable2, message, closureVar, placeholderValues) {
15314
15366
  const messageString = serializeI18nMessageForGetMsg(message);
@@ -15356,7 +15408,7 @@ function serializeI18nMessageForGetMsg(message) {
15356
15408
  return message.nodes.map((node) => node.visit(serializerVisitor2, null)).join("");
15357
15409
  }
15358
15410
 
15359
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/render3/view/i18n/localize_utils.mjs
15411
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/render3/view/i18n/localize_utils.mjs
15360
15412
  function createLocalizeStatements(variable2, message, params) {
15361
15413
  const { messageParts, placeHolders } = serializeI18nMessageForLocalize(message);
15362
15414
  const sourceSpan = getSourceSpan(message);
@@ -15439,7 +15491,7 @@ function createEmptyMessagePart(location) {
15439
15491
  return new LiteralPiece("", new ParseSourceSpan(location, location));
15440
15492
  }
15441
15493
 
15442
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/i18n_message_extraction.mjs
15494
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/i18n_message_extraction.mjs
15443
15495
  var NG_I18N_CLOSURE_MODE = "ngI18nClosureMode";
15444
15496
  var TRANSLATION_VAR_PREFIX2 = "i18n_";
15445
15497
  function phaseI18nMessageExtraction(job) {
@@ -15447,11 +15499,13 @@ function phaseI18nMessageExtraction(job) {
15447
15499
  for (const unit of job.units) {
15448
15500
  for (const op of unit.create) {
15449
15501
  if (op.kind === OpKind.I18nStart || op.kind === OpKind.I18n) {
15450
- const params = new Map([...op.params.entries()].sort());
15451
- const mainVar = variable(job.pool.uniqueName(TRANSLATION_VAR_PREFIX2));
15452
- const closureVar = i18nGenerateClosureVar(job.pool, op.message.id, fileBasedI18nSuffix, job.i18nUseExternalIds);
15453
- const statements = getTranslationDeclStmts(op.message, mainVar, closureVar, params, void 0);
15454
- unit.create.push(createExtractedMessageOp(op.xref, mainVar, statements));
15502
+ if (op.xref === op.root) {
15503
+ const params = new Map([...op.params.entries()].sort());
15504
+ const mainVar = variable(job.pool.uniqueName(TRANSLATION_VAR_PREFIX2));
15505
+ const closureVar = i18nGenerateClosureVar(job.pool, op.message.id, fileBasedI18nSuffix, job.i18nUseExternalIds);
15506
+ const statements = getTranslationDeclStmts(op.message, mainVar, closureVar, params, void 0);
15507
+ unit.create.push(createExtractedMessageOp(op.xref, mainVar, statements));
15508
+ }
15455
15509
  }
15456
15510
  }
15457
15511
  }
@@ -15484,7 +15538,7 @@ function i18nGenerateClosureVar(pool, messageId, fileBasedI18nSuffix, useExterna
15484
15538
  return variable(name);
15485
15539
  }
15486
15540
 
15487
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/i18n_text_extraction.mjs
15541
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/i18n_text_extraction.mjs
15488
15542
  function phaseI18nTextExtraction(job) {
15489
15543
  var _a2;
15490
15544
  for (const unit of job.units) {
@@ -15528,7 +15582,7 @@ function phaseI18nTextExtraction(job) {
15528
15582
  }
15529
15583
  }
15530
15584
 
15531
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/local_refs.mjs
15585
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/local_refs.mjs
15532
15586
  function phaseLocalRefs(job) {
15533
15587
  for (const unit of job.units) {
15534
15588
  for (const op of unit.create) {
@@ -15559,7 +15613,7 @@ function serializeLocalRefs(refs) {
15559
15613
  return literalArr(constRefs);
15560
15614
  }
15561
15615
 
15562
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/namespace.mjs
15616
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/namespace.mjs
15563
15617
  function phaseNamespace(job) {
15564
15618
  for (const unit of job.units) {
15565
15619
  let activeNamespace = Namespace.HTML;
@@ -15575,7 +15629,7 @@ function phaseNamespace(job) {
15575
15629
  }
15576
15630
  }
15577
15631
 
15578
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/render3/view/style_parser.mjs
15632
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/render3/view/style_parser.mjs
15579
15633
  function parse(value) {
15580
15634
  const styles = [];
15581
15635
  let i = 0;
@@ -15636,7 +15690,7 @@ function hyphenate2(value) {
15636
15690
  }).toLowerCase();
15637
15691
  }
15638
15692
 
15639
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/naming.mjs
15693
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/naming.mjs
15640
15694
  function phaseNaming(cpl) {
15641
15695
  addNamesToView(cpl.root, cpl.componentName, { index: 0 }, cpl.compatibility === CompatibilityMode.TemplateDefinitionBuilder);
15642
15696
  }
@@ -15737,7 +15791,7 @@ function stripImportant(name) {
15737
15791
  return name;
15738
15792
  }
15739
15793
 
15740
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/next_context_merging.mjs
15794
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/next_context_merging.mjs
15741
15795
  function phaseMergeNextContext(job) {
15742
15796
  for (const unit of job.units) {
15743
15797
  for (const op of unit.create) {
@@ -15783,7 +15837,7 @@ function mergeNextContextsInOps(ops) {
15783
15837
  }
15784
15838
  }
15785
15839
 
15786
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/ng_container.mjs
15840
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/ng_container.mjs
15787
15841
  var CONTAINER_TAG = "ng-container";
15788
15842
  function phaseNgContainer(job) {
15789
15843
  for (const unit of job.units) {
@@ -15804,7 +15858,7 @@ function phaseNgContainer(job) {
15804
15858
  }
15805
15859
  }
15806
15860
 
15807
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/nonbindable.mjs
15861
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/nonbindable.mjs
15808
15862
  function lookupElement3(elements, xref) {
15809
15863
  const el = elements.get(xref);
15810
15864
  if (el === void 0) {
@@ -15834,7 +15888,7 @@ function phaseNonbindable(job) {
15834
15888
  }
15835
15889
  }
15836
15890
 
15837
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/nullish_coalescing.mjs
15891
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/nullish_coalescing.mjs
15838
15892
  function phaseNullishCoalescing(job) {
15839
15893
  for (const unit of job.units) {
15840
15894
  for (const op of unit.ops()) {
@@ -15850,7 +15904,7 @@ function phaseNullishCoalescing(job) {
15850
15904
  }
15851
15905
  }
15852
15906
 
15853
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/ordering.mjs
15907
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/ordering.mjs
15854
15908
  function kindTest(kind) {
15855
15909
  return (op) => op.kind === kind;
15856
15910
  }
@@ -15920,7 +15974,7 @@ function keepLast(ops) {
15920
15974
  return ops.slice(ops.length - 1);
15921
15975
  }
15922
15976
 
15923
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/parse_extracted_styles.mjs
15977
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/parse_extracted_styles.mjs
15924
15978
  function phaseParseExtractedStyles(cpl) {
15925
15979
  for (const unit of cpl.units) {
15926
15980
  for (const op of unit.create) {
@@ -15943,7 +15997,7 @@ function phaseParseExtractedStyles(cpl) {
15943
15997
  }
15944
15998
  }
15945
15999
 
15946
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/phase_remove_content_selectors.mjs
16000
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/phase_remove_content_selectors.mjs
15947
16001
  function phaseRemoveContentSelectors(job) {
15948
16002
  for (const unit of job.units) {
15949
16003
  const elements = getElementsByXrefId(unit);
@@ -15967,7 +16021,7 @@ function lookupElement4(elements, xref) {
15967
16021
  return el;
15968
16022
  }
15969
16023
 
15970
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/pipe_creation.mjs
16024
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/pipe_creation.mjs
15971
16025
  function phasePipeCreation(job) {
15972
16026
  for (const unit of job.units) {
15973
16027
  processPipeBindingsInView(unit);
@@ -16010,7 +16064,7 @@ function addPipeToCreationBlock(unit, afterTargetXref, binding) {
16010
16064
  throw new Error(`AssertionError: unable to find insertion point for pipe ${binding.name}`);
16011
16065
  }
16012
16066
 
16013
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/pipe_variadic.mjs
16067
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/pipe_variadic.mjs
16014
16068
  function phasePipeVariadic(job) {
16015
16069
  for (const unit of job.units) {
16016
16070
  for (const op of unit.update) {
@@ -16027,7 +16081,73 @@ function phasePipeVariadic(job) {
16027
16081
  }
16028
16082
  }
16029
16083
 
16030
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/pure_function_extraction.mjs
16084
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/propagate_i18n_blocks.mjs
16085
+ function phasePropagateI18nBlocks(job) {
16086
+ propagateI18nBlocksToTemplates(job.root, 0);
16087
+ }
16088
+ function propagateI18nBlocksToTemplates(unit, subTemplateIndex) {
16089
+ let i18nBlock = null;
16090
+ for (const op of unit.create) {
16091
+ switch (op.kind) {
16092
+ case OpKind.I18nStart:
16093
+ op.subTemplateIndex = subTemplateIndex === 0 ? null : subTemplateIndex;
16094
+ i18nBlock = op;
16095
+ break;
16096
+ case OpKind.I18nEnd:
16097
+ i18nBlock = null;
16098
+ break;
16099
+ case OpKind.Template:
16100
+ const templateView = unit.job.views.get(op.xref);
16101
+ if (op.i18nPlaceholder !== void 0) {
16102
+ if (i18nBlock === null) {
16103
+ throw Error("Expected template with i18n placeholder to be in an i18n block.");
16104
+ }
16105
+ subTemplateIndex++;
16106
+ wrapTemplateWithI18n(templateView, i18nBlock);
16107
+ }
16108
+ propagateI18nBlocksToTemplates(templateView, subTemplateIndex);
16109
+ }
16110
+ }
16111
+ }
16112
+ function wrapTemplateWithI18n(unit, parentI18n) {
16113
+ var _a2;
16114
+ if (((_a2 = unit.create.head.next) == null ? void 0 : _a2.kind) !== OpKind.I18nStart) {
16115
+ const id = unit.job.allocateXrefId();
16116
+ OpList.insertAfter(createI18nStartOp(id, parentI18n.message, parentI18n.root), unit.create.head);
16117
+ OpList.insertBefore(createI18nEndOp(id), unit.create.tail);
16118
+ }
16119
+ }
16120
+
16121
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/propagate_i18n_placeholders.mjs
16122
+ function phasePropagateI18nPlaceholders(job) {
16123
+ const i18nOps = /* @__PURE__ */ new Map();
16124
+ for (const unit of job.units) {
16125
+ for (const op of unit.create) {
16126
+ if (op.kind === OpKind.I18nStart) {
16127
+ i18nOps.set(op.xref, op);
16128
+ }
16129
+ }
16130
+ }
16131
+ for (const op of i18nOps.values()) {
16132
+ if (op.xref !== op.root) {
16133
+ const rootOp = i18nOps.get(op.root);
16134
+ for (const [placeholder, value] of op.params) {
16135
+ rootOp.params.set(placeholder, value);
16136
+ }
16137
+ }
16138
+ }
16139
+ for (const op of i18nOps.values()) {
16140
+ if (op.xref === op.root) {
16141
+ for (const placeholder in op.message.placeholders) {
16142
+ if (!op.params.has(placeholder)) {
16143
+ throw Error(`Failed to resolve i18n placeholder: ${placeholder}`);
16144
+ }
16145
+ }
16146
+ }
16147
+ }
16148
+ }
16149
+
16150
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/pure_function_extraction.mjs
16031
16151
  function phasePureFunctionExtraction(job) {
16032
16152
  for (const view of job.units) {
16033
16153
  for (const op of view.ops()) {
@@ -16069,7 +16189,7 @@ var PureFunctionConstant = class extends GenericKeyFn {
16069
16189
  }
16070
16190
  };
16071
16191
 
16072
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/pure_literal_structures.mjs
16192
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/pure_literal_structures.mjs
16073
16193
  function phasePureLiteralStructures(job) {
16074
16194
  for (const view of job.units) {
16075
16195
  for (const op of view.update) {
@@ -16116,7 +16236,7 @@ function transformLiteralMap(expr) {
16116
16236
  return new PureFunctionExpr(literalMap(derivedEntries), nonConstantArgs);
16117
16237
  }
16118
16238
 
16119
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/instruction.mjs
16239
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/instruction.mjs
16120
16240
  function element(slot, tag, constIndex, localRefIndex, sourceSpan) {
16121
16241
  return elementOrContainerBase(Identifiers.element, slot, tag, constIndex, localRefIndex, sourceSpan);
16122
16242
  }
@@ -16258,11 +16378,19 @@ function projection(slot, projectionSlotIndex, attributes) {
16258
16378
  }
16259
16379
  return call(Identifiers.projection, args, null);
16260
16380
  }
16261
- function i18nStart(slot, constIndex) {
16262
- return call(Identifiers.i18nStart, [literal(slot), literal(constIndex)], null);
16381
+ function i18nStart(slot, constIndex, subTemplateIndex) {
16382
+ const args = [literal(slot), literal(constIndex)];
16383
+ if (subTemplateIndex !== null) {
16384
+ args.push(literal(subTemplateIndex));
16385
+ }
16386
+ return call(Identifiers.i18nStart, args, null);
16263
16387
  }
16264
- function i18n(slot, constIndex) {
16265
- return call(Identifiers.i18n, [literal(slot), literal(constIndex)], null);
16388
+ function i18n(slot, constIndex, subTemplateIndex) {
16389
+ const args = [literal(slot), literal(constIndex)];
16390
+ if (subTemplateIndex) {
16391
+ args.push(literal(subTemplateIndex));
16392
+ }
16393
+ return call(Identifiers.i18n, args, null);
16266
16394
  }
16267
16395
  function i18nEnd() {
16268
16396
  return call(Identifiers.i18nEnd, [], null);
@@ -16563,7 +16691,7 @@ function callVariadicInstruction(config, baseArgs, interpolationArgs, extraArgs,
16563
16691
  return createStatementOp(callVariadicInstructionExpr(config, baseArgs, interpolationArgs, extraArgs, sourceSpan).toStmt());
16564
16692
  }
16565
16693
 
16566
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/reify.mjs
16694
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/reify.mjs
16567
16695
  var sanitizerIdentifierMap = /* @__PURE__ */ new Map([
16568
16696
  [SanitizerFn.Html, Identifiers.sanitizeHtml],
16569
16697
  [SanitizerFn.IframeAttribute, Identifiers.validateIframeAttribute],
@@ -16605,13 +16733,13 @@ function reifyCreateOperations(unit, ops) {
16605
16733
  OpList.replace(op, elementContainerEnd());
16606
16734
  break;
16607
16735
  case OpKind.I18nStart:
16608
- OpList.replace(op, i18nStart(op.slot, op.messageIndex));
16736
+ OpList.replace(op, i18nStart(op.slot, op.messageIndex, op.subTemplateIndex));
16609
16737
  break;
16610
16738
  case OpKind.I18nEnd:
16611
16739
  OpList.replace(op, i18nEnd());
16612
16740
  break;
16613
16741
  case OpKind.I18n:
16614
- OpList.replace(op, i18n(op.slot, op.messageIndex));
16742
+ OpList.replace(op, i18n(op.slot, op.messageIndex, op.subTemplateIndex));
16615
16743
  break;
16616
16744
  case OpKind.Template:
16617
16745
  if (!(unit instanceof ViewCompilationUnit)) {
@@ -16835,7 +16963,7 @@ function reifyListenerHandler(unit, name, handlerOps, consumesDollarEvent) {
16835
16963
  return fn(params, handlerStmts, void 0, void 0, name);
16836
16964
  }
16837
16965
 
16838
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/remove_empty_bindings.mjs
16966
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/remove_empty_bindings.mjs
16839
16967
  function phaseRemoveEmptyBindings(job) {
16840
16968
  for (const unit of job.units) {
16841
16969
  for (const op of unit.update) {
@@ -16856,7 +16984,7 @@ function phaseRemoveEmptyBindings(job) {
16856
16984
  }
16857
16985
  }
16858
16986
 
16859
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/resolve_contexts.mjs
16987
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/resolve_contexts.mjs
16860
16988
  function phaseResolveContexts(cpl) {
16861
16989
  for (const unit of cpl.units) {
16862
16990
  processLexicalScope(unit, unit.create);
@@ -16894,7 +17022,7 @@ function processLexicalScope(view, ops) {
16894
17022
  }
16895
17023
  }
16896
17024
 
16897
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/resolve_dollar_event.mjs
17025
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/resolve_dollar_event.mjs
16898
17026
  function phaseResolveDollarEvent(job) {
16899
17027
  for (const unit of job.units) {
16900
17028
  resolveDollarEvent(unit, unit.create);
@@ -16915,13 +17043,60 @@ function resolveDollarEvent(unit, ops) {
16915
17043
  }
16916
17044
  }
16917
17045
 
16918
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/resolve_i18n_placeholders.mjs
17046
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/resolve_i18n_placeholders.mjs
16919
17047
  var ESCAPE = "\uFFFD";
17048
+ var ELEMENT_MARKER = "#";
17049
+ var TEMPLATE_MARKER = "*";
17050
+ var TAG_CLOSE_MARKER = "/";
17051
+ var CONTEXT_MARKER = ":";
17052
+ var LIST_START_MARKER = "[";
17053
+ var LIST_END_MARKER = "]";
17054
+ var LIST_DELIMITER = "|";
17055
+ var I18nParamValueFlags;
17056
+ (function(I18nParamValueFlags2) {
17057
+ I18nParamValueFlags2[I18nParamValueFlags2["None"] = 0] = "None";
17058
+ I18nParamValueFlags2[I18nParamValueFlags2["ElementTag"] = 1] = "ElementTag";
17059
+ I18nParamValueFlags2[I18nParamValueFlags2["TemplateTag"] = 2] = "TemplateTag";
17060
+ I18nParamValueFlags2[I18nParamValueFlags2["CloseTag"] = 4] = "CloseTag";
17061
+ })(I18nParamValueFlags || (I18nParamValueFlags = {}));
17062
+ var I18nPlaceholderParams = class {
17063
+ constructor() {
17064
+ this.values = /* @__PURE__ */ new Map();
17065
+ }
17066
+ addValue(placeholder, value, subTemplateIndex, flags) {
17067
+ var _a2;
17068
+ const placeholderValues = (_a2 = this.values.get(placeholder)) != null ? _a2 : [];
17069
+ placeholderValues.push({ value, subTemplateIndex, flags });
17070
+ this.values.set(placeholder, placeholderValues);
17071
+ }
17072
+ saveToOp(op) {
17073
+ for (const [placeholder, placeholderValues] of this.values) {
17074
+ op.params.set(placeholder, literal(this.serializeValues(placeholderValues)));
17075
+ }
17076
+ }
17077
+ serializeValues(values) {
17078
+ const serializedValues = values.map((value) => this.serializeValue(value));
17079
+ return serializedValues.length === 1 ? serializedValues[0] : `${LIST_START_MARKER}${serializedValues.join(LIST_DELIMITER)}${LIST_END_MARKER}`;
17080
+ }
17081
+ serializeValue(value) {
17082
+ let tagMarker = "";
17083
+ let closeMarker = "";
17084
+ if (value.flags & I18nParamValueFlags.ElementTag) {
17085
+ tagMarker = ELEMENT_MARKER;
17086
+ } else if (value.flags & I18nParamValueFlags.TemplateTag) {
17087
+ tagMarker = TEMPLATE_MARKER;
17088
+ }
17089
+ if (tagMarker !== "") {
17090
+ closeMarker = value.flags & I18nParamValueFlags.CloseTag ? TAG_CLOSE_MARKER : "";
17091
+ }
17092
+ const context = value.subTemplateIndex === null ? "" : `${CONTEXT_MARKER}${value.subTemplateIndex}`;
17093
+ return `${ESCAPE}${closeMarker}${tagMarker}${value.value}${context}${ESCAPE}`;
17094
+ }
17095
+ };
16920
17096
  function phaseResolveI18nPlaceholders(job) {
16921
17097
  for (const unit of job.units) {
16922
17098
  const i18nOps = /* @__PURE__ */ new Map();
16923
- let startTagSlots = /* @__PURE__ */ new Map();
16924
- let closeTagSlots = /* @__PURE__ */ new Map();
17099
+ const params = /* @__PURE__ */ new Map();
16925
17100
  let currentI18nOp = null;
16926
17101
  for (const op of unit.create) {
16927
17102
  switch (op.kind) {
@@ -16929,33 +17104,22 @@ function phaseResolveI18nPlaceholders(job) {
16929
17104
  case OpKind.I18n:
16930
17105
  i18nOps.set(op.xref, op);
16931
17106
  currentI18nOp = op.kind === OpKind.I18nStart ? op : null;
16932
- startTagSlots = /* @__PURE__ */ new Map();
16933
- closeTagSlots = /* @__PURE__ */ new Map();
16934
17107
  break;
16935
17108
  case OpKind.I18nEnd:
16936
- if (currentI18nOp === null) {
16937
- throw Error("Missing corresponding i18n start op for i18n end op");
16938
- }
16939
- for (const [placeholder, slots] of startTagSlots) {
16940
- currentI18nOp.params.set(placeholder, serializeSlots(slots, true));
16941
- }
16942
- for (const [placeholder, slots] of closeTagSlots) {
16943
- currentI18nOp.params.set(placeholder, serializeSlots(slots, false));
16944
- }
16945
17109
  currentI18nOp = null;
16946
17110
  break;
16947
17111
  case OpKind.Element:
16948
17112
  case OpKind.ElementStart:
16949
- if (op.i18nPlaceholder != void 0) {
17113
+ case OpKind.Template:
17114
+ if (op.i18nPlaceholder !== void 0) {
16950
17115
  if (currentI18nOp === null) {
16951
17116
  throw Error("i18n tag placeholder should only occur inside an i18n block");
16952
17117
  }
16953
- if (!op.slot) {
16954
- throw Error("Slots should be allocated before i18n placeholder resolution");
16955
- }
16956
17118
  const { startName, closeName } = op.i18nPlaceholder;
16957
- addTagSlot(startTagSlots, startName, op.slot);
16958
- addTagSlot(closeTagSlots, closeName, op.slot);
17119
+ const subTemplateIndex = getSubTemplateIndexForTag(job, currentI18nOp, op);
17120
+ const flags = op.kind === OpKind.Template ? I18nParamValueFlags.TemplateTag : I18nParamValueFlags.ElementTag;
17121
+ addParam(params, currentI18nOp, startName, op.slot, subTemplateIndex, flags);
17122
+ addParam(params, currentI18nOp, closeName, op.slot, subTemplateIndex, flags | I18nParamValueFlags.CloseTag);
16959
17123
  }
16960
17124
  break;
16961
17125
  }
@@ -16963,38 +17127,38 @@ function phaseResolveI18nPlaceholders(job) {
16963
17127
  const i18nBlockPlaceholderIndices = /* @__PURE__ */ new Map();
16964
17128
  for (const op of unit.update) {
16965
17129
  if (op.kind === OpKind.I18nExpression) {
16966
- const i18nOp = i18nOps.get(op.target);
16967
- let index = i18nBlockPlaceholderIndices.get(op.target) || 0;
17130
+ const i18nOp = i18nOps.get(op.owner);
17131
+ let index = i18nBlockPlaceholderIndices.get(op.owner) || 0;
16968
17132
  if (!i18nOp) {
16969
17133
  throw Error("Cannot find corresponding i18nStart for i18nExpr");
16970
17134
  }
16971
- i18nOp.params.set(op.i18nPlaceholder.name, literal(`${ESCAPE}${index++}${ESCAPE}`));
16972
- i18nBlockPlaceholderIndices.set(op.target, index);
17135
+ addParam(params, i18nOp, op.i18nPlaceholder.name, index++, i18nOp.subTemplateIndex);
17136
+ i18nBlockPlaceholderIndices.set(op.owner, index);
16973
17137
  }
16974
17138
  }
16975
- for (const op of i18nOps.values()) {
16976
- for (const placeholder in op.message.placeholders) {
16977
- if (!op.params.has(placeholder)) {
16978
- throw Error(`Failed to resolve i18n placeholder: ${placeholder}`);
16979
- }
16980
- }
17139
+ for (const [xref, i18nOpParams] of params) {
17140
+ i18nOpParams.saveToOp(i18nOps.get(xref));
16981
17141
  }
16982
17142
  }
16983
17143
  }
16984
- function addTagSlot(tagSlots, placeholder, slot) {
16985
- const slots = tagSlots.get(placeholder) || [];
16986
- slots.push(slot);
16987
- tagSlots.set(placeholder, slots);
17144
+ function addParam(params, i18nOp, placeholder, value, subTemplateIndex, flags = I18nParamValueFlags.None) {
17145
+ var _a2;
17146
+ const i18nOpParams = (_a2 = params.get(i18nOp.xref)) != null ? _a2 : new I18nPlaceholderParams();
17147
+ i18nOpParams.addValue(placeholder, value, subTemplateIndex, flags);
17148
+ params.set(i18nOp.xref, i18nOpParams);
16988
17149
  }
16989
- function serializeSlots(slots, start) {
16990
- const slotStrings = slots.map((slot) => `${ESCAPE}${start ? "" : "/"}#${slot}${ESCAPE}`);
16991
- if (slotStrings.length === 1) {
16992
- return literal(slotStrings[0]);
17150
+ function getSubTemplateIndexForTag(job, i18nOp, op) {
17151
+ if (op.kind === OpKind.Template) {
17152
+ for (const childOp of job.views.get(op.xref).create) {
17153
+ if (childOp.kind === OpKind.I18nStart) {
17154
+ return childOp.subTemplateIndex;
17155
+ }
17156
+ }
16993
17157
  }
16994
- return literal(`[${slotStrings.join("|")}]`);
17158
+ return i18nOp.subTemplateIndex;
16995
17159
  }
16996
17160
 
16997
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/resolve_names.mjs
17161
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/resolve_names.mjs
16998
17162
  function phaseResolveNames(cpl) {
16999
17163
  for (const unit of cpl.units) {
17000
17164
  processLexicalScope2(unit, unit.create, null);
@@ -17057,7 +17221,7 @@ function processLexicalScope2(unit, ops, savedView) {
17057
17221
  }
17058
17222
  }
17059
17223
 
17060
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/resolve_sanitizers.mjs
17224
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/resolve_sanitizers.mjs
17061
17225
  var sanitizers = /* @__PURE__ */ new Map([
17062
17226
  [SecurityContext.HTML, SanitizerFn.Html],
17063
17227
  [SecurityContext.SCRIPT, SanitizerFn.Script],
@@ -17093,7 +17257,7 @@ function isIframeElement(op) {
17093
17257
  return (op.kind === OpKind.Element || op.kind === OpKind.ElementStart) && op.tag.toLowerCase() === "iframe";
17094
17258
  }
17095
17259
 
17096
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/save_restore_view.mjs
17260
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/save_restore_view.mjs
17097
17261
  function phaseSaveRestoreView(job) {
17098
17262
  for (const view of job.views.values()) {
17099
17263
  view.create.prepend([
@@ -17138,7 +17302,7 @@ function addSaveRestoreViewOperationToListener(unit, op) {
17138
17302
  }
17139
17303
  }
17140
17304
 
17141
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/slot_allocation.mjs
17305
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/slot_allocation.mjs
17142
17306
  function phaseSlotAllocation(job) {
17143
17307
  const slotMap = /* @__PURE__ */ new Map();
17144
17308
  for (const unit of job.units) {
@@ -17181,7 +17345,7 @@ function phaseSlotAllocation(job) {
17181
17345
  }
17182
17346
  }
17183
17347
 
17184
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/style_binding_specialization.mjs
17348
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/style_binding_specialization.mjs
17185
17349
  function phaseStyleBindingSpecialization(cpl) {
17186
17350
  for (const unit of cpl.units) {
17187
17351
  for (const op of unit.update) {
@@ -17211,7 +17375,7 @@ function phaseStyleBindingSpecialization(cpl) {
17211
17375
  }
17212
17376
  }
17213
17377
 
17214
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/temporary_variables.mjs
17378
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/temporary_variables.mjs
17215
17379
  function phaseTemporaryVariables(cpl) {
17216
17380
  for (const unit of cpl.units) {
17217
17381
  unit.create.prepend(generateTemporaries(unit.create));
@@ -17269,7 +17433,7 @@ function assignName(names, expr) {
17269
17433
  expr.name = name;
17270
17434
  }
17271
17435
 
17272
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/variable_optimization.mjs
17436
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/variable_optimization.mjs
17273
17437
  function phaseVariableOptimization(job) {
17274
17438
  for (const unit of job.units) {
17275
17439
  optimizeVariablesInOpList(unit.create, job.compatibility);
@@ -17482,13 +17646,14 @@ function allowConservativeInlining(decl, target) {
17482
17646
  }
17483
17647
  }
17484
17648
 
17485
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/emit.mjs
17649
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/emit.mjs
17486
17650
  var phases = [
17487
17651
  { kind: CompilationJobKind.Tmpl, fn: phaseRemoveContentSelectors },
17488
17652
  { kind: CompilationJobKind.Host, fn: phaseHostStylePropertyParsing },
17489
17653
  { kind: CompilationJobKind.Tmpl, fn: phaseNamespace },
17490
17654
  { kind: CompilationJobKind.Both, fn: phaseStyleBindingSpecialization },
17491
17655
  { kind: CompilationJobKind.Both, fn: phaseBindingSpecialization },
17656
+ { kind: CompilationJobKind.Tmpl, fn: phasePropagateI18nBlocks },
17492
17657
  { kind: CompilationJobKind.Both, fn: phaseAttributeExtraction },
17493
17658
  { kind: CompilationJobKind.Both, fn: phaseParseExtractedStyles },
17494
17659
  { kind: CompilationJobKind.Tmpl, fn: phaseRemoveEmptyBindings },
@@ -17512,10 +17677,12 @@ var phases = [
17512
17677
  { kind: CompilationJobKind.Both, fn: phaseTemporaryVariables },
17513
17678
  { kind: CompilationJobKind.Tmpl, fn: phaseSlotAllocation },
17514
17679
  { kind: CompilationJobKind.Tmpl, fn: phaseResolveI18nPlaceholders },
17680
+ { kind: CompilationJobKind.Tmpl, fn: phasePropagateI18nPlaceholders },
17515
17681
  { kind: CompilationJobKind.Tmpl, fn: phaseI18nMessageExtraction },
17516
17682
  { kind: CompilationJobKind.Tmpl, fn: phaseI18nConstCollection },
17517
17683
  { kind: CompilationJobKind.Tmpl, fn: phaseConstTraitCollection },
17518
17684
  { kind: CompilationJobKind.Both, fn: phaseConstCollection },
17685
+ { kind: CompilationJobKind.Tmpl, fn: phaseAssignI18nSlotDependencies },
17519
17686
  { kind: CompilationJobKind.Both, fn: phaseVarCounting },
17520
17687
  { kind: CompilationJobKind.Tmpl, fn: phaseGenerateAdvance },
17521
17688
  { kind: CompilationJobKind.Both, fn: phaseVariableOptimization },
@@ -17632,7 +17799,7 @@ function emitHostBindingFunction(job) {
17632
17799
  );
17633
17800
  }
17634
17801
 
17635
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/ingest.mjs
17802
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/ingest.mjs
17636
17803
  var compatibilityMode = CompatibilityMode.TemplateDefinitionBuilder;
17637
17804
  function ingestComponent(componentName, template2, constantPool, relativeContextFilePath, i18nUseExternalIds) {
17638
17805
  const cpl = new ComponentCompilationJob(componentName, constantPool, compatibilityMode, relativeContextFilePath, i18nUseExternalIds);
@@ -17737,7 +17904,7 @@ function ingestElement(unit, element2) {
17737
17904
  }
17738
17905
  }
17739
17906
  function ingestTemplate(unit, tmpl) {
17740
- if (tmpl.i18n !== void 0 && !(tmpl.i18n instanceof Message)) {
17907
+ if (tmpl.i18n !== void 0 && !(tmpl.i18n instanceof Message || tmpl.i18n instanceof TagPlaceholder)) {
17741
17908
  throw Error(`Unhandled i18n metadata type for template: ${tmpl.i18n.constructor.name}`);
17742
17909
  }
17743
17910
  const childView = unit.job.allocateView(unit.xref);
@@ -17746,7 +17913,8 @@ function ingestTemplate(unit, tmpl) {
17746
17913
  if (tmpl.tagName) {
17747
17914
  [namespacePrefix, tagNameWithoutNamespace] = splitNsName(tmpl.tagName);
17748
17915
  }
17749
- const tplOp = createTemplateOp(childView.xref, tagNameWithoutNamespace != null ? tagNameWithoutNamespace : "ng-template", namespaceForKey(namespacePrefix), false, void 0, tmpl.startSourceSpan);
17916
+ const i18nPlaceholder = tmpl.i18n instanceof TagPlaceholder ? tmpl.i18n : void 0;
17917
+ const tplOp = createTemplateOp(childView.xref, tagNameWithoutNamespace != null ? tagNameWithoutNamespace : "ng-template", namespaceForKey(namespacePrefix), false, i18nPlaceholder, tmpl.startSourceSpan);
17750
17918
  unit.create.push(tplOp);
17751
17919
  ingestBindings(unit, tplOp, tmpl);
17752
17920
  ingestReferences(tplOp, tmpl);
@@ -17771,6 +17939,7 @@ function ingestText(unit, text2) {
17771
17939
  unit.create.push(createTextOp(unit.job.allocateXrefId(), text2.value, text2.sourceSpan));
17772
17940
  }
17773
17941
  function ingestBoundText(unit, text2) {
17942
+ var _a2;
17774
17943
  let value = text2.value;
17775
17944
  if (value instanceof ASTWithSource) {
17776
17945
  value = value.ast;
@@ -17779,7 +17948,7 @@ function ingestBoundText(unit, text2) {
17779
17948
  throw new Error(`AssertionError: expected Interpolation for BoundText node, got ${value.constructor.name}`);
17780
17949
  }
17781
17950
  if (text2.i18n !== void 0 && !(text2.i18n instanceof Container)) {
17782
- throw Error(`Unhandled i18n metadata type for text interpolation: ${text2.i18n.constructor.name}`);
17951
+ throw Error(`Unhandled i18n metadata type for text interpolation: ${(_a2 = text2.i18n) == null ? void 0 : _a2.constructor.name}`);
17783
17952
  }
17784
17953
  const i18nPlaceholders = text2.i18n instanceof Container ? text2.i18n.children.filter((node) => node instanceof Placeholder) : [];
17785
17954
  const textXref = unit.job.allocateXrefId();
@@ -18042,10 +18211,10 @@ function convertSourceSpan(span, baseSourceSpan) {
18042
18211
  return new ParseSourceSpan(start, end, fullStart);
18043
18212
  }
18044
18213
 
18045
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/switch/index.mjs
18214
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/switch/index.mjs
18046
18215
  var USE_TEMPLATE_PIPELINE = false;
18047
18216
 
18048
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/render3/view/styling_builder.mjs
18217
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/render3/view/styling_builder.mjs
18049
18218
  var IMPORTANT_FLAG = "!important";
18050
18219
  var MIN_STYLING_BINDING_SLOTS_REQUIRED = 2;
18051
18220
  var StylingBuilder = class {
@@ -18378,7 +18547,7 @@ function isEmptyExpression(ast) {
18378
18547
  return ast instanceof EmptyExpr;
18379
18548
  }
18380
18549
 
18381
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/ml_parser/html_parser.mjs
18550
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/ml_parser/html_parser.mjs
18382
18551
  var HtmlParser = class extends Parser2 {
18383
18552
  constructor() {
18384
18553
  super(getHtmlTagDefinition);
@@ -18388,7 +18557,7 @@ var HtmlParser = class extends Parser2 {
18388
18557
  }
18389
18558
  };
18390
18559
 
18391
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/ml_parser/html_whitespaces.mjs
18560
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/ml_parser/html_whitespaces.mjs
18392
18561
  var PRESERVE_WS_ATTR_NAME = "ngPreserveWhitespaces";
18393
18562
  var SKIP_WS_TRIM_TAGS = /* @__PURE__ */ new Set(["pre", "template", "textarea", "script", "style"]);
18394
18563
  var WS_CHARS = " \f\n\r \v\u1680\u180E\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF";
@@ -18454,7 +18623,7 @@ function visitAllWithSiblings(visitor, nodes) {
18454
18623
  return result;
18455
18624
  }
18456
18625
 
18457
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template_parser/binding_parser.mjs
18626
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template_parser/binding_parser.mjs
18458
18627
  var PROPERTY_PARTS_SEPARATOR = ".";
18459
18628
  var ATTRIBUTE_PREFIX = "attr";
18460
18629
  var CLASS_PREFIX = "class";
@@ -18774,7 +18943,7 @@ function moveParseSourceSpan(sourceSpan, absoluteSpan) {
18774
18943
  return new ParseSourceSpan(sourceSpan.start.moveBy(startDiff), sourceSpan.end.moveBy(endDiff), sourceSpan.fullStart.moveBy(startDiff), sourceSpan.details);
18775
18944
  }
18776
18945
 
18777
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/style_url_resolver.mjs
18946
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/style_url_resolver.mjs
18778
18947
  function isStyleUrlResolvable(url) {
18779
18948
  if (url == null || url.length === 0 || url[0] == "/")
18780
18949
  return false;
@@ -18783,7 +18952,7 @@ function isStyleUrlResolvable(url) {
18783
18952
  }
18784
18953
  var URL_WITH_SCHEMA_REGEXP = /^([^:/?#]+):/;
18785
18954
 
18786
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template_parser/template_preparser.mjs
18955
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template_parser/template_preparser.mjs
18787
18956
  var NG_CONTENT_SELECT_ATTR = "select";
18788
18957
  var LINK_ELEMENT = "link";
18789
18958
  var LINK_STYLE_REL_ATTR = "rel";
@@ -18853,12 +19022,12 @@ function normalizeNgContentSelect(selectAttr) {
18853
19022
  return selectAttr;
18854
19023
  }
18855
19024
 
18856
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/render3/r3_control_flow.mjs
19025
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/render3/r3_control_flow.mjs
18857
19026
  var FOR_LOOP_EXPRESSION_PATTERN = /^\s*([0-9A-Za-z_$]*)\s+of\s+(.*)/;
18858
- var FOR_LOOP_TRACK_PATTERN = /^track\s+(.*)/;
19027
+ var FOR_LOOP_TRACK_PATTERN = /^track\s+([\S\s]*)/;
18859
19028
  var CONDITIONAL_ALIAS_PATTERN = /^as\s+(.*)/;
18860
19029
  var ELSE_IF_PATTERN = /^else[^\S\r\n]+if/;
18861
- var FOR_LOOP_LET_PATTERN = /^let\s+(.*)/;
19030
+ var FOR_LOOP_LET_PATTERN = /^let\s+([\S\s]*)/;
18862
19031
  var ALLOWED_FOR_LOOP_LET_VARIABLES = /* @__PURE__ */ new Set(["$index", "$first", "$last", "$even", "$odd", "$count"]);
18863
19032
  function isConnectedForLoopBlock(name) {
18864
19033
  return name === "empty";
@@ -18869,30 +19038,36 @@ function isConnectedIfLoopBlock(name) {
18869
19038
  function createIfBlock(ast, connectedBlocks, visitor, bindingParser) {
18870
19039
  const errors = validateIfConnectedBlocks(connectedBlocks);
18871
19040
  const branches = [];
18872
- if (errors.length > 0) {
18873
- return { node: null, errors };
18874
- }
18875
19041
  const mainBlockParams = parseConditionalBlockParameters(ast, errors, bindingParser);
18876
19042
  if (mainBlockParams !== null) {
18877
- branches.push(new IfBlockBranch(mainBlockParams.expression, visitAll2(visitor, ast.children, ast.children), mainBlockParams.expressionAlias, ast.sourceSpan, ast.startSourceSpan));
19043
+ branches.push(new IfBlockBranch(mainBlockParams.expression, visitAll2(visitor, ast.children, ast.children), mainBlockParams.expressionAlias, ast.sourceSpan, ast.startSourceSpan, ast.endSourceSpan));
18878
19044
  }
18879
19045
  for (const block of connectedBlocks) {
18880
- const children = visitAll2(visitor, block.children, block.children);
18881
19046
  if (ELSE_IF_PATTERN.test(block.name)) {
18882
19047
  const params = parseConditionalBlockParameters(block, errors, bindingParser);
18883
19048
  if (params !== null) {
18884
- branches.push(new IfBlockBranch(params.expression, children, params.expressionAlias, block.sourceSpan, block.startSourceSpan));
19049
+ const children = visitAll2(visitor, block.children, block.children);
19050
+ branches.push(new IfBlockBranch(params.expression, children, params.expressionAlias, block.sourceSpan, block.startSourceSpan, block.endSourceSpan));
18885
19051
  }
18886
19052
  } else if (block.name === "else") {
18887
- branches.push(new IfBlockBranch(null, children, null, block.sourceSpan, block.startSourceSpan));
19053
+ const children = visitAll2(visitor, block.children, block.children);
19054
+ branches.push(new IfBlockBranch(null, children, null, block.sourceSpan, block.startSourceSpan, block.endSourceSpan));
18888
19055
  }
18889
19056
  }
19057
+ const ifBlockStartSourceSpan = branches.length > 0 ? branches[0].startSourceSpan : ast.startSourceSpan;
19058
+ const ifBlockEndSourceSpan = branches.length > 0 ? branches[branches.length - 1].endSourceSpan : ast.endSourceSpan;
19059
+ let wholeSourceSpan = ast.sourceSpan;
19060
+ const lastBranch = branches[branches.length - 1];
19061
+ if (lastBranch !== void 0) {
19062
+ wholeSourceSpan = new ParseSourceSpan(ifBlockStartSourceSpan.start, lastBranch.sourceSpan.end);
19063
+ }
18890
19064
  return {
18891
- node: new IfBlock(branches, ast.sourceSpan, ast.startSourceSpan, ast.endSourceSpan),
19065
+ node: new IfBlock(branches, wholeSourceSpan, ast.startSourceSpan, ifBlockEndSourceSpan),
18892
19066
  errors
18893
19067
  };
18894
19068
  }
18895
19069
  function createForLoop(ast, connectedBlocks, visitor, bindingParser) {
19070
+ var _a2, _b2;
18896
19071
  const errors = [];
18897
19072
  const params = parseForLoopParameters(ast, errors, bindingParser);
18898
19073
  let node = null;
@@ -18904,7 +19079,7 @@ function createForLoop(ast, connectedBlocks, visitor, bindingParser) {
18904
19079
  } else if (block.parameters.length > 0) {
18905
19080
  errors.push(new ParseError(block.sourceSpan, "@empty block cannot have parameters"));
18906
19081
  } else {
18907
- empty = new ForLoopBlockEmpty(visitAll2(visitor, block.children, block.children), block.sourceSpan, block.startSourceSpan);
19082
+ empty = new ForLoopBlockEmpty(visitAll2(visitor, block.children, block.children), block.sourceSpan, block.startSourceSpan, block.endSourceSpan);
18908
19083
  }
18909
19084
  } else {
18910
19085
  errors.push(new ParseError(block.sourceSpan, `Unrecognized @for loop block "${block.name}"`));
@@ -18914,25 +19089,29 @@ function createForLoop(ast, connectedBlocks, visitor, bindingParser) {
18914
19089
  if (params.trackBy === null) {
18915
19090
  errors.push(new ParseError(ast.sourceSpan, '@for loop must have a "track" expression'));
18916
19091
  } else {
18917
- node = new ForLoopBlock(params.itemName, params.expression, params.trackBy, params.context, visitAll2(visitor, ast.children, ast.children), empty, ast.sourceSpan, ast.startSourceSpan, ast.endSourceSpan);
19092
+ const endSpan = (_a2 = empty == null ? void 0 : empty.endSourceSpan) != null ? _a2 : ast.endSourceSpan;
19093
+ const sourceSpan = new ParseSourceSpan(ast.sourceSpan.start, (_b2 = endSpan == null ? void 0 : endSpan.end) != null ? _b2 : ast.sourceSpan.end);
19094
+ node = new ForLoopBlock(params.itemName, params.expression, params.trackBy, params.context, visitAll2(visitor, ast.children, ast.children), empty, sourceSpan, ast.sourceSpan, ast.startSourceSpan, endSpan);
18918
19095
  }
18919
19096
  }
18920
19097
  return { node, errors };
18921
19098
  }
18922
19099
  function createSwitchBlock(ast, visitor, bindingParser) {
18923
19100
  const errors = validateSwitchBlock(ast);
18924
- if (errors.length > 0) {
18925
- return { node: null, errors };
18926
- }
18927
- const primaryExpression = parseBlockParameterToBinding(ast.parameters[0], bindingParser);
19101
+ const primaryExpression = ast.parameters.length > 0 ? parseBlockParameterToBinding(ast.parameters[0], bindingParser) : bindingParser.parseBinding("", false, ast.sourceSpan, 0);
18928
19102
  const cases = [];
19103
+ const unknownBlocks = [];
18929
19104
  let defaultCase = null;
18930
19105
  for (const node of ast.children) {
18931
19106
  if (!(node instanceof Block)) {
18932
19107
  continue;
18933
19108
  }
19109
+ if ((node.name !== "case" || node.parameters.length === 0) && node.name !== "default") {
19110
+ unknownBlocks.push(new UnknownBlock(node.name, node.sourceSpan));
19111
+ continue;
19112
+ }
18934
19113
  const expression = node.name === "case" ? parseBlockParameterToBinding(node.parameters[0], bindingParser) : null;
18935
- const ast2 = new SwitchBlockCase(expression, visitAll2(visitor, node.children, node.children), node.sourceSpan, node.startSourceSpan);
19114
+ const ast2 = new SwitchBlockCase(expression, visitAll2(visitor, node.children, node.children), node.sourceSpan, node.startSourceSpan, node.endSourceSpan);
18936
19115
  if (expression === null) {
18937
19116
  defaultCase = ast2;
18938
19117
  } else {
@@ -18943,7 +19122,7 @@ function createSwitchBlock(ast, visitor, bindingParser) {
18943
19122
  cases.push(defaultCase);
18944
19123
  }
18945
19124
  return {
18946
- node: new SwitchBlock(primaryExpression, cases, ast.sourceSpan, ast.startSourceSpan, ast.endSourceSpan),
19125
+ node: new SwitchBlock(primaryExpression, cases, unknownBlocks, ast.sourceSpan, ast.startSourceSpan, ast.endSourceSpan),
18947
19126
  errors
18948
19127
  };
18949
19128
  }
@@ -18985,7 +19164,8 @@ function parseForLoopParameters(block, errors, bindingParser) {
18985
19164
  }
18986
19165
  for (const variableName of ALLOWED_FOR_LOOP_LET_VARIABLES) {
18987
19166
  if (!result.context.hasOwnProperty(variableName)) {
18988
- result.context[variableName] = new Variable(variableName, variableName, block.startSourceSpan, block.startSourceSpan);
19167
+ const emptySpanAfterForBlockStart = new ParseSourceSpan(block.startSourceSpan.end, block.startSourceSpan.end);
19168
+ result.context[variableName] = new Variable(variableName, variableName, emptySpanAfterForBlockStart, emptySpanAfterForBlockStart);
18989
19169
  }
18990
19170
  }
18991
19171
  return result;
@@ -19131,7 +19311,7 @@ function stripOptionalParentheses(param, errors) {
19131
19311
  return expression.slice(start, end);
19132
19312
  }
19133
19313
 
19134
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/render3/r3_deferred_triggers.mjs
19314
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/render3/r3_deferred_triggers.mjs
19135
19315
  var TIME_PATTERN = /^\d+(ms|s)?$/;
19136
19316
  var SEPARATOR_PATTERN = /^\s$/;
19137
19317
  var COMMA_DELIMITED_SYNTAX = /* @__PURE__ */ new Map([
@@ -19379,7 +19559,7 @@ function parseDeferredTime(value) {
19379
19559
  return parseInt(time) * (units === "s" ? 1e3 : 1);
19380
19560
  }
19381
19561
 
19382
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/render3/r3_deferred_blocks.mjs
19562
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/render3/r3_deferred_blocks.mjs
19383
19563
  var PREFETCH_WHEN_PATTERN = /^prefetch\s+when\s/;
19384
19564
  var PREFETCH_ON_PATTERN = /^prefetch\s+on\s/;
19385
19565
  var MINIMUM_PARAMETER_PATTERN = /^minimum\s/;
@@ -19393,7 +19573,15 @@ function createDeferredBlock(ast, connectedBlocks, visitor, bindingParser) {
19393
19573
  const errors = [];
19394
19574
  const { placeholder, loading, error: error2 } = parseConnectedBlocks(connectedBlocks, errors, visitor);
19395
19575
  const { triggers, prefetchTriggers } = parsePrimaryTriggers(ast.parameters, bindingParser, errors, placeholder);
19396
- const node = new DeferredBlock(visitAll2(visitor, ast.children, ast.children), triggers, prefetchTriggers, placeholder, loading, error2, ast.sourceSpan, ast.startSourceSpan, ast.endSourceSpan);
19576
+ let lastEndSourceSpan = ast.endSourceSpan;
19577
+ let endOfLastSourceSpan = ast.sourceSpan.end;
19578
+ if (connectedBlocks.length > 0) {
19579
+ const lastConnectedBlock = connectedBlocks[connectedBlocks.length - 1];
19580
+ lastEndSourceSpan = lastConnectedBlock.endSourceSpan;
19581
+ endOfLastSourceSpan = lastConnectedBlock.sourceSpan.end;
19582
+ }
19583
+ const mainDeferredSourceSpan = new ParseSourceSpan(ast.sourceSpan.start, endOfLastSourceSpan);
19584
+ const node = new DeferredBlock(visitAll2(visitor, ast.children, ast.children), triggers, prefetchTriggers, placeholder, loading, error2, mainDeferredSourceSpan, ast.sourceSpan, ast.startSourceSpan, lastEndSourceSpan);
19397
19585
  return { node, errors };
19398
19586
  }
19399
19587
  function parseConnectedBlocks(connectedBlocks, errors, visitor) {
@@ -19506,7 +19694,7 @@ function parsePrimaryTriggers(params, bindingParser, errors, placeholder) {
19506
19694
  return { triggers, prefetchTriggers };
19507
19695
  }
19508
19696
 
19509
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/render3/r3_template_transform.mjs
19697
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/render3/r3_template_transform.mjs
19510
19698
  var BIND_NAME_REGEXP = /^(?:(bind-)|(let-)|(ref-|#)|(on-)|(bindon-)|(@))(.*)$/;
19511
19699
  var KW_BIND_IDX = 1;
19512
19700
  var KW_LET_IDX = 2;
@@ -19723,7 +19911,10 @@ var HtmlAstToIvyAst = class {
19723
19911
  } else {
19724
19912
  errorMessage = `Unrecognized block @${block.name}.`;
19725
19913
  }
19726
- result = { node: null, errors: [new ParseError(block.sourceSpan, errorMessage)] };
19914
+ result = {
19915
+ node: new UnknownBlock(block.name, block.sourceSpan),
19916
+ errors: [new ParseError(block.sourceSpan, errorMessage)]
19917
+ };
19727
19918
  break;
19728
19919
  }
19729
19920
  this.errors.push(...result.errors);
@@ -19934,10 +20125,7 @@ function textContents(node) {
19934
20125
  }
19935
20126
  }
19936
20127
 
19937
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/render3/view/block_syntax_switch.mjs
19938
- var BLOCK_SYNTAX_ENABLED_DEFAULT = true;
19939
-
19940
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/render3/view/i18n/context.mjs
20128
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/render3/view/i18n/context.mjs
19941
20129
  var TagType;
19942
20130
  (function(TagType2) {
19943
20131
  TagType2[TagType2["ELEMENT"] = 0] = "ELEMENT";
@@ -20072,7 +20260,7 @@ function serializePlaceholderValue(value) {
20072
20260
  }
20073
20261
  }
20074
20262
 
20075
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/render3/view/template.mjs
20263
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/render3/view/template.mjs
20076
20264
  var NG_CONTENT_SELECT_ATTR2 = "select";
20077
20265
  var NG_PROJECT_AS_ATTR_NAME = "ngProjectAs";
20078
20266
  var EVENT_BINDING_SCOPE_GLOBALS = /* @__PURE__ */ new Set(["$event"]);
@@ -20184,6 +20372,7 @@ var TemplateDefinitionBuilder = class {
20184
20372
  this.visitIfBlockBranch = invalid;
20185
20373
  this.visitSwitchBlockCase = invalid;
20186
20374
  this.visitForLoopBlockEmpty = invalid;
20375
+ this.visitUnknownBlock = invalid;
20187
20376
  this._bindingScope = parentBindingScope.nestedScope(level);
20188
20377
  this.fileBasedI18nSuffix = relativeContextFilePath.replace(/[^A-Za-z0-9]/g, "_") + "_";
20189
20378
  this._valueConverter = new ValueConverter(constantPool, () => this.allocateDataSlot(), (numSlots) => this.allocatePureFunctionSlots(numSlots), (name, localName, slot, value) => {
@@ -20724,13 +20913,10 @@ var TemplateDefinitionBuilder = class {
20724
20913
  visitIfBlock(block) {
20725
20914
  this.allocateBindingSlots(null);
20726
20915
  const branchData = block.branches.map(({ expression, expressionAlias, children, sourceSpan }) => {
20727
- const processedExpression = expression === null ? null : expression.visit(this._valueConverter);
20728
20916
  const variables = expressionAlias !== null ? [new Variable(expressionAlias.name, DIRECT_CONTEXT_REFERENCE, expressionAlias.sourceSpan, expressionAlias.keySpan)] : void 0;
20729
- return {
20730
- index: this.createEmbeddedTemplateFn(null, children, "_Conditional", sourceSpan, variables),
20731
- expression: processedExpression,
20732
- alias: expressionAlias
20733
- };
20917
+ const index = this.createEmbeddedTemplateFn(null, children, "_Conditional", sourceSpan, variables);
20918
+ const processedExpression = expression === null ? null : expression.visit(this._valueConverter);
20919
+ return { index, expression: processedExpression, alias: expressionAlias };
20734
20920
  });
20735
20921
  const containerIndex = branchData[0].index;
20736
20922
  const paramsCallback = () => {
@@ -20761,15 +20947,14 @@ var TemplateDefinitionBuilder = class {
20761
20947
  this.updateInstructionWithAdvance(containerIndex, block.branches[0].sourceSpan, Identifiers.conditional, paramsCallback);
20762
20948
  }
20763
20949
  visitSwitchBlock(block) {
20764
- const blockExpression = block.expression.visit(this._valueConverter);
20765
- this.allocateBindingSlots(null);
20766
20950
  const caseData = block.cases.map((currentCase) => {
20767
- return {
20768
- index: this.createEmbeddedTemplateFn(null, currentCase.children, "_Case", currentCase.sourceSpan),
20769
- expression: currentCase.expression === null ? null : currentCase.expression.visit(this._valueConverter)
20770
- };
20951
+ const index = this.createEmbeddedTemplateFn(null, currentCase.children, "_Case", currentCase.sourceSpan);
20952
+ const expression = currentCase.expression === null ? null : currentCase.expression.visit(this._valueConverter);
20953
+ return { index, expression };
20771
20954
  });
20772
20955
  const containerIndex = caseData[0].index;
20956
+ const blockExpression = block.expression.visit(this._valueConverter);
20957
+ this.allocateBindingSlots(null);
20773
20958
  this.updateInstructionWithAdvance(containerIndex, block.sourceSpan, Identifiers.conditional, () => {
20774
20959
  const generateCases = (caseIndex) => {
20775
20960
  if (caseIndex > caseData.length - 1) {
@@ -20807,11 +20992,12 @@ var TemplateDefinitionBuilder = class {
20807
20992
  literal(placeholderIndex),
20808
20993
  literal(errorIndex),
20809
20994
  (loadingConsts == null ? void 0 : loadingConsts.length) ? this.addToConsts(literalArr(loadingConsts)) : TYPED_NULL_EXPR,
20810
- placeholderConsts ? this.addToConsts(placeholderConsts) : TYPED_NULL_EXPR
20995
+ placeholderConsts ? this.addToConsts(placeholderConsts) : TYPED_NULL_EXPR,
20996
+ (loadingConsts == null ? void 0 : loadingConsts.length) || placeholderConsts ? importExpr(Identifiers.deferEnableTimerScheduling) : TYPED_NULL_EXPR
20811
20997
  ]));
20998
+ this.allocateDataSlot();
20812
20999
  this.createDeferTriggerInstructions(deferredIndex, triggers, metadata, false);
20813
21000
  this.createDeferTriggerInstructions(deferredIndex, prefetchTriggers, metadata, true);
20814
- this.allocateDataSlot();
20815
21001
  }
20816
21002
  createDeferredDepsFunction(name, metadata) {
20817
21003
  if (metadata.deps.length === 0) {
@@ -20881,10 +21067,12 @@ var TemplateDefinitionBuilder = class {
20881
21067
  visitForLoopBlock(block) {
20882
21068
  const blockIndex = this.allocateDataSlot();
20883
21069
  const primaryData = this.prepareEmbeddedTemplateFn(block.children, "_For", [block.item, block.contextVariables.$index, block.contextVariables.$count]);
20884
- const emptyData = block.empty === null ? null : this.prepareEmbeddedTemplateFn(block.empty.children, "_ForEmpty");
20885
21070
  const { expression: trackByExpression, usesComponentInstance: trackByUsesComponentInstance } = this.createTrackByFunction(block);
20886
- const value = block.expression.visit(this._valueConverter);
20887
- this.allocateBindingSlots(value);
21071
+ let emptyData = null;
21072
+ if (block.empty !== null) {
21073
+ emptyData = this.prepareEmbeddedTemplateFn(block.empty.children, "_ForEmpty");
21074
+ this.allocateBindingSlots(null);
21075
+ }
20888
21076
  this.registerComputedLoopVariables(block, primaryData.scope);
20889
21077
  this.creationInstruction(block.sourceSpan, Identifiers.repeaterCreate, () => {
20890
21078
  const params = [
@@ -20901,6 +21089,7 @@ var TemplateDefinitionBuilder = class {
20901
21089
  }
20902
21090
  return params;
20903
21091
  });
21092
+ const value = block.expression.visit(this._valueConverter);
20904
21093
  this.updateInstruction(block.sourceSpan, Identifiers.repeater, () => [literal(blockIndex), this.convertPropertyBinding(value)]);
20905
21094
  }
20906
21095
  registerComputedLoopVariables(block, bindingScope) {
@@ -21567,7 +21756,7 @@ function parseTemplate(template2, templateUrl, options = {}) {
21567
21756
  leadingTriviaChars: LEADING_TRIVIA_CHARS
21568
21757
  }, options), {
21569
21758
  tokenizeExpansionForms: true,
21570
- tokenizeBlocks: (_a2 = options.enableBlockSyntax) != null ? _a2 : BLOCK_SYNTAX_ENABLED_DEFAULT
21759
+ tokenizeBlocks: (_a2 = options.enableBlockSyntax) != null ? _a2 : true
21571
21760
  }));
21572
21761
  if (!options.alwaysAttemptHtmlToR3AstConversion && parseResult.errors && parseResult.errors.length > 0) {
21573
21762
  const parsedTemplate2 = {
@@ -21701,7 +21890,7 @@ function createClosureModeGuard2() {
21701
21890
  return typeofExpr(variable(NG_I18N_CLOSURE_MODE2)).notIdentical(literal("undefined", STRING_TYPE)).and(variable(NG_I18N_CLOSURE_MODE2));
21702
21891
  }
21703
21892
 
21704
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/render3/view/compiler.mjs
21893
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/render3/view/compiler.mjs
21705
21894
  var ATTR_REGEX = /attr\.([^\]]+)/;
21706
21895
  var COMPONENT_VARIABLE = "%COMP%";
21707
21896
  var HOST_ATTR = `_nghost-${COMPONENT_VARIABLE}`;
@@ -22303,7 +22492,7 @@ function createHostDirectivesMappingArray(mapping) {
22303
22492
  return elements.length > 0 ? literalArr(elements) : null;
22304
22493
  }
22305
22494
 
22306
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/render3/view/t2_binder.mjs
22495
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/render3/view/t2_binder.mjs
22307
22496
  var R3TargetBinder = class {
22308
22497
  constructor(directiveMatcher) {
22309
22498
  this.directiveMatcher = directiveMatcher;
@@ -22420,6 +22609,8 @@ var Scope = class {
22420
22609
  }
22421
22610
  visitDeferredTrigger(trigger) {
22422
22611
  }
22612
+ visitUnknownBlock(block) {
22613
+ }
22423
22614
  maybeDeclare(thing) {
22424
22615
  if (!this.namedEntities.has(thing.name)) {
22425
22616
  this.namedEntities.set(thing.name, thing);
@@ -22578,6 +22769,8 @@ var DirectiveBinder = class {
22578
22769
  }
22579
22770
  visitDeferredTrigger(trigger) {
22580
22771
  }
22772
+ visitUnknownBlock(block) {
22773
+ }
22581
22774
  };
22582
22775
  var TemplateBinder = class extends RecursiveAstVisitor {
22583
22776
  constructor(bindings, symbols, usedPipes, eagerPipes, deferBlocks, nestingLevel, scope, rootNode, level) {
@@ -22665,6 +22858,10 @@ var TemplateBinder = class extends RecursiveAstVisitor {
22665
22858
  }
22666
22859
  visitTextAttribute(attribute2) {
22667
22860
  }
22861
+ visitUnknownBlock(block) {
22862
+ }
22863
+ visitDeferredTrigger() {
22864
+ }
22668
22865
  visitIcu(icu) {
22669
22866
  Object.keys(icu.vars).forEach((key) => icu.vars[key].visit(this));
22670
22867
  Object.keys(icu.placeholders).forEach((key) => icu.placeholders[key].visit(this));
@@ -22676,17 +22873,15 @@ var TemplateBinder = class extends RecursiveAstVisitor {
22676
22873
  event.handler.visit(this);
22677
22874
  }
22678
22875
  visitDeferredBlock(deferred) {
22876
+ var _a2, _b2;
22679
22877
  this.deferBlocks.add(deferred);
22680
22878
  this.ingestScopedNode(deferred);
22879
+ (_a2 = deferred.triggers.when) == null ? void 0 : _a2.value.visit(this);
22880
+ (_b2 = deferred.prefetchTriggers.when) == null ? void 0 : _b2.value.visit(this);
22681
22881
  deferred.placeholder && this.visitNode(deferred.placeholder);
22682
22882
  deferred.loading && this.visitNode(deferred.loading);
22683
22883
  deferred.error && this.visitNode(deferred.error);
22684
22884
  }
22685
- visitDeferredTrigger(trigger) {
22686
- if (trigger instanceof BoundDeferredTrigger) {
22687
- trigger.value.visit(this);
22688
- }
22689
- }
22690
22885
  visitDeferredBlockPlaceholder(block) {
22691
22886
  this.ingestScopedNode(block);
22692
22887
  }
@@ -22889,11 +23084,11 @@ function extractScopedNodeEntities(rootScope) {
22889
23084
  return templateEntities;
22890
23085
  }
22891
23086
 
22892
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/resource_loader.mjs
23087
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/resource_loader.mjs
22893
23088
  var ResourceLoader = class {
22894
23089
  };
22895
23090
 
22896
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/jit_compiler_facade.mjs
23091
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/jit_compiler_facade.mjs
22897
23092
  var CompilerFacadeImpl = class {
22898
23093
  constructor(jitEvaluator = new JitEvaluator()) {
22899
23094
  this.jitEvaluator = jitEvaluator;
@@ -23445,17 +23640,17 @@ function publishFacade(global) {
23445
23640
  ng.\u0275compilerFacade = new CompilerFacadeImpl();
23446
23641
  }
23447
23642
 
23448
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/version.mjs
23449
- var VERSION2 = new Version("17.0.0-next.7");
23643
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/version.mjs
23644
+ var VERSION2 = new Version("17.0.0-next.8");
23450
23645
 
23451
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/i18n/extractor_merger.mjs
23646
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/i18n/extractor_merger.mjs
23452
23647
  var _VisitorMode;
23453
23648
  (function(_VisitorMode2) {
23454
23649
  _VisitorMode2[_VisitorMode2["Extract"] = 0] = "Extract";
23455
23650
  _VisitorMode2[_VisitorMode2["Merge"] = 1] = "Merge";
23456
23651
  })(_VisitorMode || (_VisitorMode = {}));
23457
23652
 
23458
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/ml_parser/xml_tags.mjs
23653
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/ml_parser/xml_tags.mjs
23459
23654
  var XmlTagDefinition = class {
23460
23655
  constructor() {
23461
23656
  this.closedByParent = false;
@@ -23477,7 +23672,7 @@ var XmlTagDefinition = class {
23477
23672
  };
23478
23673
  var _TAG_DEFINITION = new XmlTagDefinition();
23479
23674
 
23480
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/render3/partial/api.mjs
23675
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/render3/partial/api.mjs
23481
23676
  var FactoryTarget2;
23482
23677
  (function(FactoryTarget3) {
23483
23678
  FactoryTarget3[FactoryTarget3["Directive"] = 0] = "Directive";
@@ -23487,10 +23682,10 @@ var FactoryTarget2;
23487
23682
  FactoryTarget3[FactoryTarget3["NgModule"] = 4] = "NgModule";
23488
23683
  })(FactoryTarget2 || (FactoryTarget2 = {}));
23489
23684
 
23490
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/compiler.mjs
23685
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/compiler.mjs
23491
23686
  publishFacade(_global);
23492
23687
 
23493
- // bazel-out/darwin_arm64-fastbuild/bin/packages/core/schematics/migrations/block-template-entities/util.mjs
23688
+ // bazel-out/k8-fastbuild/bin/packages/core/schematics/migrations/block-template-entities/util.mjs
23494
23689
  var import_path2 = require("path");
23495
23690
  var import_typescript3 = __toESM(require("typescript"), 1);
23496
23691
  var REPLACEMENTS2 = {
@@ -23586,7 +23781,7 @@ var TextRangeCollector = class extends RecursiveVisitor {
23586
23781
  }
23587
23782
  };
23588
23783
 
23589
- // bazel-out/darwin_arm64-fastbuild/bin/packages/core/schematics/migrations/block-template-entities/index.mjs
23784
+ // bazel-out/k8-fastbuild/bin/packages/core/schematics/migrations/block-template-entities/index.mjs
23590
23785
  function block_template_entities_default() {
23591
23786
  return (tree) => __async(this, null, function* () {
23592
23787
  const { buildPaths, testPaths } = yield getProjectTsConfigPaths(tree);
@@ -23626,13 +23821,6 @@ function runBlockTemplateEntitiesMigration(tree, tsconfigPath, basePath) {
23626
23821
  }
23627
23822
  // Annotate the CommonJS export names for ESM import in node:
23628
23823
  0 && (module.exports = {});
23629
- /*!
23630
- * @license
23631
- * Copyright Google LLC All Rights Reserved.
23632
- *
23633
- * Use of this source code is governed by an MIT-style license that can be
23634
- * found in the LICENSE file at https://angular.io/license
23635
- */
23636
23824
  /**
23637
23825
  * @license
23638
23826
  * Copyright Google LLC All Rights Reserved.