@angular/core 17.0.3 → 17.0.5

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 (32) hide show
  1. package/esm2022/src/application_init.mjs +2 -2
  2. package/esm2022/src/defer/instructions.mjs +3 -2
  3. package/esm2022/src/defer/utils.mjs +2 -2
  4. package/esm2022/src/image_performance_warning.mjs +14 -3
  5. package/esm2022/src/render3/features/host_directives_feature.mjs +20 -13
  6. package/esm2022/src/render3/instructions/change_detection.mjs +4 -5
  7. package/esm2022/src/render3/instructions/control_flow.mjs +9 -11
  8. package/esm2022/src/render3/util/view_utils.mjs +11 -12
  9. package/esm2022/src/version.mjs +1 -1
  10. package/esm2022/testing/src/logger.mjs +3 -3
  11. package/esm2022/testing/src/test_bed.mjs +3 -3
  12. package/esm2022/testing/src/test_bed_compiler.mjs +19 -10
  13. package/fesm2022/core.mjs +56 -41
  14. package/fesm2022/core.mjs.map +1 -1
  15. package/fesm2022/primitives/signals.mjs +1 -1
  16. package/fesm2022/rxjs-interop.mjs +1 -1
  17. package/fesm2022/testing.mjs +21 -12
  18. package/fesm2022/testing.mjs.map +1 -1
  19. package/index.d.ts +4 -7
  20. package/package.json +1 -1
  21. package/primitives/signals/index.d.ts +1 -1
  22. package/rxjs-interop/index.d.ts +1 -1
  23. package/schematics/migrations/block-template-entities/bundle.js +506 -364
  24. package/schematics/migrations/block-template-entities/bundle.js.map +4 -4
  25. package/schematics/migrations/compiler-options/bundle.js +13 -13
  26. package/schematics/migrations/transfer-state/bundle.js +13 -13
  27. package/schematics/ng-generate/control-flow-migration/bundle.js +855 -517
  28. package/schematics/ng-generate/control-flow-migration/bundle.js.map +4 -4
  29. package/schematics/ng-generate/control-flow-migration/schema.json +6 -0
  30. package/schematics/ng-generate/standalone-migration/bundle.js +818 -623
  31. package/schematics/ng-generate/standalone-migration/bundle.js.map +4 -4
  32. package/testing/index.d.ts +1 -1
@@ -63,7 +63,7 @@ var __async = (__this, __arguments, generator) => {
63
63
  });
64
64
  };
65
65
 
66
- // bazel-out/k8-fastbuild/bin/packages/core/schematics/migrations/block-template-entities/index.mjs
66
+ // bazel-out/darwin_arm64-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/k8-fastbuild/bin/packages/core/schematics/utils/project_tsconfig_paths.mjs
75
+ // bazel-out/darwin_arm64-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/k8-fastbuild/bin/packages/core/schematics/utils/typescript/compiler_host.mjs
155
+ // bazel-out/darwin_arm64-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/k8-fastbuild/bin/packages/core/schematics/utils/typescript/parse_tsconfig.mjs
159
+ // bazel-out/darwin_arm64-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/k8-fastbuild/bin/packages/core/schematics/utils/typescript/compiler_host.mjs
176
+ // bazel-out/darwin_arm64-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/k8-fastbuild/bin/packages/compiler/src/selector.mjs
209
+ // bazel-out/darwin_arm64-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/k8-fastbuild/bin/packages/compiler/src/core.mjs
517
+ // bazel-out/darwin_arm64-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/k8-fastbuild/bin/packages/compiler/src/i18n/digest.mjs
579
+ // bazel-out/darwin_arm64-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}]`);
@@ -609,6 +609,9 @@ var _SerializerVisitor = class {
609
609
  visitIcuPlaceholder(ph, context) {
610
610
  return `<ph icu name="${ph.name}">${ph.value.visit(this)}</ph>`;
611
611
  }
612
+ visitBlockPlaceholder(ph, context) {
613
+ return `<ph block name="${ph.startName}">${ph.children.map((child) => child.visit(this)).join(", ")}</ph name="${ph.closeName}">`;
614
+ }
612
615
  };
613
616
  var serializerVisitor = new _SerializerVisitor();
614
617
  function serializeNodes(nodes) {
@@ -813,7 +816,7 @@ function wordAt(bytes, index, endian) {
813
816
  return word;
814
817
  }
815
818
 
816
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/output/output_ast.mjs
819
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/output/output_ast.mjs
817
820
  var TypeModifier;
818
821
  (function(TypeModifier2) {
819
822
  TypeModifier2[TypeModifier2["None"] = 0] = "None";
@@ -1768,7 +1771,7 @@ function serializeTags(tags) {
1768
1771
  return out;
1769
1772
  }
1770
1773
 
1771
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/constant_pool.mjs
1774
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/constant_pool.mjs
1772
1775
  var CONSTANT_PREFIX = "_c";
1773
1776
  var UNKNOWN_VALUE_KEY = variable("<unknown>");
1774
1777
  var KEY_CONTEXT = {};
@@ -1951,7 +1954,7 @@ function isLongStringLiteral(expr) {
1951
1954
  return expr instanceof LiteralExpr && typeof expr.value === "string" && expr.value.length >= POOL_INCLUSION_LENGTH_THRESHOLD_FOR_STRINGS;
1952
1955
  }
1953
1956
 
1954
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/render3/r3_identifiers.mjs
1957
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/render3/r3_identifiers.mjs
1955
1958
  var CORE = "@angular/core";
1956
1959
  var _Identifiers = class {
1957
1960
  };
@@ -2584,7 +2587,7 @@ var Identifiers = _Identifiers;
2584
2587
  _Identifiers.validateIframeAttribute = { name: "\u0275\u0275validateIframeAttribute", moduleName: CORE };
2585
2588
  })();
2586
2589
 
2587
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/util.mjs
2590
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/util.mjs
2588
2591
  var DASH_CASE_REGEXP = /-+([a-z0-9])/g;
2589
2592
  function dashCaseToCamelCase(input) {
2590
2593
  return input.replace(DASH_CASE_REGEXP, (...m) => m[1].toUpperCase());
@@ -2672,7 +2675,7 @@ function partitionArray(arr, conditionFn) {
2672
2675
  return [truthy, falsy];
2673
2676
  }
2674
2677
 
2675
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/output/source_map.mjs
2678
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/output/source_map.mjs
2676
2679
  var VERSION = 3;
2677
2680
  var JS_B64_PREFIX = "# sourceMappingURL=data:application/json;base64,";
2678
2681
  var SourceMapGenerator = class {
@@ -2801,7 +2804,7 @@ function toBase64Digit(value) {
2801
2804
  return B64_DIGITS[value];
2802
2805
  }
2803
2806
 
2804
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/output/abstract_emitter.mjs
2807
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/output/abstract_emitter.mjs
2805
2808
  var _SINGLE_QUOTE_ESCAPE_STRING_RE = /'|\\|\n|\r|\$/g;
2806
2809
  var _LEGAL_IDENTIFIER_RE = /^[$A-Z_][0-9A-Z_$]*$/i;
2807
2810
  var _INDENT_WITH = " ";
@@ -3286,7 +3289,7 @@ function _createIndent(count) {
3286
3289
  return res;
3287
3290
  }
3288
3291
 
3289
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/render3/util.mjs
3292
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/render3/util.mjs
3290
3293
  function typeWithParameters(type, numParams) {
3291
3294
  if (numParams === 0) {
3292
3295
  return expressionType(type);
@@ -3351,7 +3354,7 @@ function generateForwardRef(expr) {
3351
3354
  return importExpr(Identifiers.forwardRef).callFn([arrowFn([], expr)]);
3352
3355
  }
3353
3356
 
3354
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/render3/r3_factory.mjs
3357
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/render3/r3_factory.mjs
3355
3358
  var R3FactoryDelegateType;
3356
3359
  (function(R3FactoryDelegateType2) {
3357
3360
  R3FactoryDelegateType2[R3FactoryDelegateType2["Class"] = 0] = "Class";
@@ -3496,7 +3499,7 @@ function getInjectFn(target) {
3496
3499
  }
3497
3500
  }
3498
3501
 
3499
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/render3/r3_ast.mjs
3502
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/render3/r3_ast.mjs
3500
3503
  var Comment = class {
3501
3504
  constructor(value, sourceSpan) {
3502
3505
  this.value = value;
@@ -3654,43 +3657,47 @@ var BlockNode = class {
3654
3657
  }
3655
3658
  };
3656
3659
  var DeferredBlockPlaceholder = class extends BlockNode {
3657
- constructor(children, minimumTime, nameSpan, sourceSpan, startSourceSpan, endSourceSpan) {
3660
+ constructor(children, minimumTime, nameSpan, sourceSpan, startSourceSpan, endSourceSpan, i18n2) {
3658
3661
  super(nameSpan, sourceSpan, startSourceSpan, endSourceSpan);
3659
3662
  this.children = children;
3660
3663
  this.minimumTime = minimumTime;
3664
+ this.i18n = i18n2;
3661
3665
  }
3662
3666
  visit(visitor) {
3663
3667
  return visitor.visitDeferredBlockPlaceholder(this);
3664
3668
  }
3665
3669
  };
3666
3670
  var DeferredBlockLoading = class extends BlockNode {
3667
- constructor(children, afterTime, minimumTime, nameSpan, sourceSpan, startSourceSpan, endSourceSpan) {
3671
+ constructor(children, afterTime, minimumTime, nameSpan, sourceSpan, startSourceSpan, endSourceSpan, i18n2) {
3668
3672
  super(nameSpan, sourceSpan, startSourceSpan, endSourceSpan);
3669
3673
  this.children = children;
3670
3674
  this.afterTime = afterTime;
3671
3675
  this.minimumTime = minimumTime;
3676
+ this.i18n = i18n2;
3672
3677
  }
3673
3678
  visit(visitor) {
3674
3679
  return visitor.visitDeferredBlockLoading(this);
3675
3680
  }
3676
3681
  };
3677
3682
  var DeferredBlockError = class extends BlockNode {
3678
- constructor(children, nameSpan, sourceSpan, startSourceSpan, endSourceSpan) {
3683
+ constructor(children, nameSpan, sourceSpan, startSourceSpan, endSourceSpan, i18n2) {
3679
3684
  super(nameSpan, sourceSpan, startSourceSpan, endSourceSpan);
3680
3685
  this.children = children;
3686
+ this.i18n = i18n2;
3681
3687
  }
3682
3688
  visit(visitor) {
3683
3689
  return visitor.visitDeferredBlockError(this);
3684
3690
  }
3685
3691
  };
3686
3692
  var DeferredBlock = class extends BlockNode {
3687
- constructor(children, triggers, prefetchTriggers, placeholder, loading, error2, nameSpan, sourceSpan, mainBlockSpan, startSourceSpan, endSourceSpan) {
3693
+ constructor(children, triggers, prefetchTriggers, placeholder, loading, error2, nameSpan, sourceSpan, mainBlockSpan, startSourceSpan, endSourceSpan, i18n2) {
3688
3694
  super(nameSpan, sourceSpan, startSourceSpan, endSourceSpan);
3689
3695
  this.children = children;
3690
3696
  this.placeholder = placeholder;
3691
3697
  this.loading = loading;
3692
3698
  this.error = error2;
3693
3699
  this.mainBlockSpan = mainBlockSpan;
3700
+ this.i18n = i18n2;
3694
3701
  this.triggers = triggers;
3695
3702
  this.prefetchTriggers = prefetchTriggers;
3696
3703
  this.definedTriggers = Object.keys(triggers);
@@ -3722,17 +3729,18 @@ var SwitchBlock = class extends BlockNode {
3722
3729
  }
3723
3730
  };
3724
3731
  var SwitchBlockCase = class extends BlockNode {
3725
- constructor(expression, children, sourceSpan, startSourceSpan, endSourceSpan, nameSpan) {
3732
+ constructor(expression, children, sourceSpan, startSourceSpan, endSourceSpan, nameSpan, i18n2) {
3726
3733
  super(nameSpan, sourceSpan, startSourceSpan, endSourceSpan);
3727
3734
  this.expression = expression;
3728
3735
  this.children = children;
3736
+ this.i18n = i18n2;
3729
3737
  }
3730
3738
  visit(visitor) {
3731
3739
  return visitor.visitSwitchBlockCase(this);
3732
3740
  }
3733
3741
  };
3734
3742
  var ForLoopBlock = class extends BlockNode {
3735
- constructor(item, expression, trackBy, trackKeywordSpan, contextVariables, children, empty, sourceSpan, mainBlockSpan, startSourceSpan, endSourceSpan, nameSpan) {
3743
+ constructor(item, expression, trackBy, trackKeywordSpan, contextVariables, children, empty, sourceSpan, mainBlockSpan, startSourceSpan, endSourceSpan, nameSpan, i18n2) {
3736
3744
  super(nameSpan, sourceSpan, startSourceSpan, endSourceSpan);
3737
3745
  this.item = item;
3738
3746
  this.expression = expression;
@@ -3742,15 +3750,17 @@ var ForLoopBlock = class extends BlockNode {
3742
3750
  this.children = children;
3743
3751
  this.empty = empty;
3744
3752
  this.mainBlockSpan = mainBlockSpan;
3753
+ this.i18n = i18n2;
3745
3754
  }
3746
3755
  visit(visitor) {
3747
3756
  return visitor.visitForLoopBlock(this);
3748
3757
  }
3749
3758
  };
3750
3759
  var ForLoopBlockEmpty = class extends BlockNode {
3751
- constructor(children, sourceSpan, startSourceSpan, endSourceSpan, nameSpan) {
3760
+ constructor(children, sourceSpan, startSourceSpan, endSourceSpan, nameSpan, i18n2) {
3752
3761
  super(nameSpan, sourceSpan, startSourceSpan, endSourceSpan);
3753
3762
  this.children = children;
3763
+ this.i18n = i18n2;
3754
3764
  }
3755
3765
  visit(visitor) {
3756
3766
  return visitor.visitForLoopBlockEmpty(this);
@@ -3766,11 +3776,12 @@ var IfBlock = class extends BlockNode {
3766
3776
  }
3767
3777
  };
3768
3778
  var IfBlockBranch = class extends BlockNode {
3769
- constructor(expression, children, expressionAlias, sourceSpan, startSourceSpan, endSourceSpan, nameSpan) {
3779
+ constructor(expression, children, expressionAlias, sourceSpan, startSourceSpan, endSourceSpan, nameSpan, i18n2) {
3770
3780
  super(nameSpan, sourceSpan, startSourceSpan, endSourceSpan);
3771
3781
  this.expression = expression;
3772
3782
  this.children = children;
3773
3783
  this.expressionAlias = expressionAlias;
3784
+ this.i18n = i18n2;
3774
3785
  }
3775
3786
  visit(visitor) {
3776
3787
  return visitor.visitIfBlockBranch(this);
@@ -3869,7 +3880,7 @@ function visitAll(visitor, nodes) {
3869
3880
  return result;
3870
3881
  }
3871
3882
 
3872
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/i18n/i18n_ast.mjs
3883
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/i18n/i18n_ast.mjs
3873
3884
  var Message = class {
3874
3885
  constructor(nodes, placeholders, placeholderToMessage, meaning, description, customId) {
3875
3886
  this.nodes = nodes;
@@ -3960,6 +3971,21 @@ var IcuPlaceholder = class {
3960
3971
  return visitor.visitIcuPlaceholder(this, context);
3961
3972
  }
3962
3973
  };
3974
+ var BlockPlaceholder = class {
3975
+ constructor(name, parameters, startName, closeName, children, sourceSpan, startSourceSpan, endSourceSpan) {
3976
+ this.name = name;
3977
+ this.parameters = parameters;
3978
+ this.startName = startName;
3979
+ this.closeName = closeName;
3980
+ this.children = children;
3981
+ this.sourceSpan = sourceSpan;
3982
+ this.startSourceSpan = startSourceSpan;
3983
+ this.endSourceSpan = endSourceSpan;
3984
+ }
3985
+ visit(visitor, context) {
3986
+ return visitor.visitBlockPlaceholder(this, context);
3987
+ }
3988
+ };
3963
3989
  var RecurseVisitor = class {
3964
3990
  visitText(text2, context) {
3965
3991
  }
@@ -3978,6 +4004,9 @@ var RecurseVisitor = class {
3978
4004
  }
3979
4005
  visitIcuPlaceholder(ph, context) {
3980
4006
  }
4007
+ visitBlockPlaceholder(ph, context) {
4008
+ ph.children.forEach((child) => child.visit(this));
4009
+ }
3981
4010
  };
3982
4011
  function serializeMessage(messageNodes) {
3983
4012
  const visitor = new LocalizeMessageStringVisitor();
@@ -4005,9 +4034,13 @@ var LocalizeMessageStringVisitor = class {
4005
4034
  visitIcuPlaceholder(ph) {
4006
4035
  return `{$${ph.name}}`;
4007
4036
  }
4037
+ visitBlockPlaceholder(ph) {
4038
+ const children = ph.children.map((child) => child.visit(this)).join("");
4039
+ return `{$${ph.startName}}${children}{$${ph.closeName}}`;
4040
+ }
4008
4041
  };
4009
4042
 
4010
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/i18n/serializers/xml_helper.mjs
4043
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/i18n/serializers/xml_helper.mjs
4011
4044
  var _Visitor = class {
4012
4045
  visitTag(tag) {
4013
4046
  const strAttrs = this._serializeAttributes(tag.attrs);
@@ -4035,12 +4068,12 @@ ${doctype.dtd}
4035
4068
  };
4036
4069
  var _visitor = new _Visitor();
4037
4070
 
4038
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/i18n/serializers/xmb.mjs
4071
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/i18n/serializers/xmb.mjs
4039
4072
  function toPublicName(internalName) {
4040
4073
  return internalName.toUpperCase().replace(/[^A-Z0-9_]/g, "_");
4041
4074
  }
4042
4075
 
4043
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/render3/view/i18n/util.mjs
4076
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/render3/view/i18n/util.mjs
4044
4077
  var CLOSURE_TRANSLATION_VAR_PREFIX = "MSG_";
4045
4078
  var TRANSLATION_VAR_PREFIX = "i18n_";
4046
4079
  var I18N_ATTR = "i18n";
@@ -4142,7 +4175,7 @@ function declareI18nVariable(variable2) {
4142
4175
  return new DeclareVarStmt(variable2.name, void 0, INFERRED_TYPE, void 0, variable2.sourceSpan);
4143
4176
  }
4144
4177
 
4145
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/render3/view/util.mjs
4178
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/render3/view/util.mjs
4146
4179
  var UNSAFE_OBJECT_KEY_NAME_REGEXP = /[-.]/;
4147
4180
  var TEMPORARY_NAME = "_t";
4148
4181
  var CONTEXT_NAME = "ctx";
@@ -4365,7 +4398,7 @@ function getInstructionStatements(instructions) {
4365
4398
  return statements;
4366
4399
  }
4367
4400
 
4368
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/injectable_compiler_2.mjs
4401
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/injectable_compiler_2.mjs
4369
4402
  function compileInjectable(meta, resolveForwardRefs) {
4370
4403
  let result = null;
4371
4404
  const factoryMeta = {
@@ -4450,7 +4483,7 @@ function createFactoryFunction(type) {
4450
4483
  return arrowFn([new FnParam("t", DYNAMIC_TYPE)], type.prop("\u0275fac").callFn([variable("t")]));
4451
4484
  }
4452
4485
 
4453
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/assertions.mjs
4486
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/assertions.mjs
4454
4487
  var UNUSABLE_INTERPOLATION_REGEXPS = [
4455
4488
  /^\s*$/,
4456
4489
  /[<>]/,
@@ -4472,7 +4505,7 @@ function assertInterpolationSymbols(identifier, value) {
4472
4505
  }
4473
4506
  }
4474
4507
 
4475
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/ml_parser/interpolation_config.mjs
4508
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/ml_parser/defaults.mjs
4476
4509
  var InterpolationConfig = class {
4477
4510
  static fromArray(markers) {
4478
4511
  if (!markers) {
@@ -4487,8 +4520,9 @@ var InterpolationConfig = class {
4487
4520
  }
4488
4521
  };
4489
4522
  var DEFAULT_INTERPOLATION_CONFIG = new InterpolationConfig("{{", "}}");
4523
+ var DEFAULT_CONTAINER_BLOCKS = /* @__PURE__ */ new Set(["switch"]);
4490
4524
 
4491
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/chars.mjs
4525
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/chars.mjs
4492
4526
  var $EOF = 0;
4493
4527
  var $BSPACE = 8;
4494
4528
  var $TAB = 9;
@@ -4570,7 +4604,7 @@ function isQuote(code) {
4570
4604
  return code === $SQ || code === $DQ || code === $BT;
4571
4605
  }
4572
4606
 
4573
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/parse_util.mjs
4607
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/parse_util.mjs
4574
4608
  var ParseLocation = class {
4575
4609
  constructor(file, offset, line, col) {
4576
4610
  this.file = file;
@@ -4717,7 +4751,7 @@ function sanitizeIdentifier(name) {
4717
4751
  return name.replace(/\W/g, "_");
4718
4752
  }
4719
4753
 
4720
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/output/abstract_js_emitter.mjs
4754
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/output/abstract_js_emitter.mjs
4721
4755
  var makeTemplateObjectPolyfill = '(this&&this.__makeTemplateObject||function(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e})';
4722
4756
  var AbstractJsEmitterVisitor = class extends AbstractEmitterVisitor {
4723
4757
  constructor() {
@@ -4810,7 +4844,7 @@ var AbstractJsEmitterVisitor = class extends AbstractEmitterVisitor {
4810
4844
  }
4811
4845
  };
4812
4846
 
4813
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/output/output_jit_trusted_types.mjs
4847
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/output/output_jit_trusted_types.mjs
4814
4848
  var policy;
4815
4849
  function getPolicy() {
4816
4850
  if (policy === void 0) {
@@ -4848,7 +4882,7 @@ function newTrustedFunctionForJIT(...args) {
4848
4882
  return fn2.bind(_global);
4849
4883
  }
4850
4884
 
4851
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/output/output_jit.mjs
4885
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/output/output_jit.mjs
4852
4886
  var JitEvaluator = class {
4853
4887
  evaluateStatements(sourceUrl, statements, refResolver, createSourceMaps) {
4854
4888
  const converter = new JitEmitterVisitor(refResolver);
@@ -4939,7 +4973,7 @@ function isUseStrictStatement(statement) {
4939
4973
  return statement.isEquivalent(literal("use strict").toStmt());
4940
4974
  }
4941
4975
 
4942
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/render3/r3_injector_compiler.mjs
4976
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/render3/r3_injector_compiler.mjs
4943
4977
  function compileInjector(meta) {
4944
4978
  const definitionMap = new DefinitionMap();
4945
4979
  if (meta.providers !== null) {
@@ -4956,7 +4990,7 @@ function createInjectorType(meta) {
4956
4990
  return new ExpressionType(importExpr(Identifiers.InjectorDeclaration, [new ExpressionType(meta.type.type)]));
4957
4991
  }
4958
4992
 
4959
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/render3/r3_jit.mjs
4993
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/render3/r3_jit.mjs
4960
4994
  var R3JitReflector = class {
4961
4995
  constructor(context) {
4962
4996
  this.context = context;
@@ -4972,7 +5006,7 @@ var R3JitReflector = class {
4972
5006
  }
4973
5007
  };
4974
5008
 
4975
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/render3/r3_module_compiler.mjs
5009
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/render3/r3_module_compiler.mjs
4976
5010
  var R3SelectorScopeMode;
4977
5011
  (function(R3SelectorScopeMode2) {
4978
5012
  R3SelectorScopeMode2[R3SelectorScopeMode2["Inline"] = 0] = "Inline";
@@ -5113,7 +5147,7 @@ function tupleOfTypes(types) {
5113
5147
  return types.length > 0 ? expressionType(literalArr(typeofTypes)) : NONE_TYPE;
5114
5148
  }
5115
5149
 
5116
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/render3/r3_pipe_compiler.mjs
5150
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/render3/r3_pipe_compiler.mjs
5117
5151
  function compilePipeFromMetadata(metadata) {
5118
5152
  const definitionMapValues = [];
5119
5153
  definitionMapValues.push({ key: "name", value: literal(metadata.pipeName), quoted: false });
@@ -5134,7 +5168,7 @@ function createPipeType(metadata) {
5134
5168
  ]));
5135
5169
  }
5136
5170
 
5137
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/render3/view/api.mjs
5171
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/render3/view/api.mjs
5138
5172
  var R3TemplateDependencyKind;
5139
5173
  (function(R3TemplateDependencyKind2) {
5140
5174
  R3TemplateDependencyKind2[R3TemplateDependencyKind2["Directive"] = 0] = "Directive";
@@ -5142,7 +5176,7 @@ var R3TemplateDependencyKind;
5142
5176
  R3TemplateDependencyKind2[R3TemplateDependencyKind2["NgModule"] = 2] = "NgModule";
5143
5177
  })(R3TemplateDependencyKind || (R3TemplateDependencyKind = {}));
5144
5178
 
5145
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/expression_parser/ast.mjs
5179
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/expression_parser/ast.mjs
5146
5180
  var ParserError = class {
5147
5181
  constructor(message, input, errLocation, ctxLocation) {
5148
5182
  this.input = input;
@@ -5808,7 +5842,7 @@ var BoundElementProperty = class {
5808
5842
  }
5809
5843
  };
5810
5844
 
5811
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/compiler_util/expression_converter.mjs
5845
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/compiler_util/expression_converter.mjs
5812
5846
  var _EventHandlerVars = class {
5813
5847
  };
5814
5848
  var EventHandlerVars = _EventHandlerVars;
@@ -6449,7 +6483,7 @@ var BuiltinFunctionCall = class extends Call {
6449
6483
  }
6450
6484
  };
6451
6485
 
6452
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/schema/dom_security_schema.mjs
6486
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/schema/dom_security_schema.mjs
6453
6487
  var _SECURITY_SCHEMA;
6454
6488
  function SECURITY_SCHEMA() {
6455
6489
  if (!_SECURITY_SCHEMA) {
@@ -6507,7 +6541,7 @@ function isIframeSecuritySensitiveAttr(attrName) {
6507
6541
  return IFRAME_SECURITY_SENSITIVE_ATTRS.has(attrName.toLowerCase());
6508
6542
  }
6509
6543
 
6510
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/shadow_css.mjs
6544
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/shadow_css.mjs
6511
6545
  var animationKeywords = /* @__PURE__ */ new Set([
6512
6546
  "inherit",
6513
6547
  "initial",
@@ -6978,7 +7012,7 @@ function repeatGroups(groups, multiples) {
6978
7012
  }
6979
7013
  }
6980
7014
 
6981
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/ir/src/enums.mjs
7015
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/ir/src/enums.mjs
6982
7016
  var OpKind;
6983
7017
  (function(OpKind2) {
6984
7018
  OpKind2[OpKind2["ListEnd"] = 0] = "ListEnd";
@@ -7132,8 +7166,13 @@ var DerivedRepeaterVarIdentity;
7132
7166
  DerivedRepeaterVarIdentity2[DerivedRepeaterVarIdentity2["Even"] = 2] = "Even";
7133
7167
  DerivedRepeaterVarIdentity2[DerivedRepeaterVarIdentity2["Odd"] = 3] = "Odd";
7134
7168
  })(DerivedRepeaterVarIdentity || (DerivedRepeaterVarIdentity = {}));
7169
+ var I18nContextKind;
7170
+ (function(I18nContextKind2) {
7171
+ I18nContextKind2[I18nContextKind2["RootI18n"] = 0] = "RootI18n";
7172
+ I18nContextKind2[I18nContextKind2["Icu"] = 1] = "Icu";
7173
+ })(I18nContextKind || (I18nContextKind = {}));
7135
7174
 
7136
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/ir/src/traits.mjs
7175
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/ir/src/traits.mjs
7137
7176
  var ConsumesSlot = Symbol("ConsumesSlot");
7138
7177
  var DependsOnSlotContext = Symbol("DependsOnSlotContext");
7139
7178
  var ConsumesVarsTrait = Symbol("ConsumesVars");
@@ -7165,7 +7204,7 @@ function hasUsesVarOffsetTrait(expr) {
7165
7204
  return expr[UsesVarOffset] === true;
7166
7205
  }
7167
7206
 
7168
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/ir/src/ops/shared.mjs
7207
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/ir/src/ops/shared.mjs
7169
7208
  function createStatementOp(statement) {
7170
7209
  return __spreadValues({
7171
7210
  kind: OpKind.Statement,
@@ -7187,7 +7226,7 @@ var NEW_OP = {
7187
7226
  next: null
7188
7227
  };
7189
7228
 
7190
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/ir/src/ops/update.mjs
7229
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/ir/src/ops/update.mjs
7191
7230
  function createInterpolateTextOp(xref, interpolation, i18nPlaceholders, sourceSpan) {
7192
7231
  return __spreadValues(__spreadValues(__spreadValues({
7193
7232
  kind: OpKind.InterpolateText,
@@ -7298,13 +7337,13 @@ function createConditionalOp(target, targetSlot, test, conditions, sourceSpan) {
7298
7337
  }, NEW_OP), TRAIT_DEPENDS_ON_SLOT_CONTEXT), TRAIT_CONSUMES_VARS);
7299
7338
  }
7300
7339
  function createRepeaterOp(repeaterCreate2, targetSlot, collection, sourceSpan) {
7301
- return __spreadValues({
7340
+ return __spreadValues(__spreadValues({
7302
7341
  kind: OpKind.Repeater,
7303
7342
  target: repeaterCreate2,
7304
7343
  targetSlot,
7305
7344
  collection,
7306
7345
  sourceSpan
7307
- }, NEW_OP);
7346
+ }, NEW_OP), TRAIT_DEPENDS_ON_SLOT_CONTEXT);
7308
7347
  }
7309
7348
  function createDeferWhenOp(target, expr, prefetch, sourceSpan) {
7310
7349
  return __spreadValues(__spreadValues({
@@ -7336,7 +7375,7 @@ function createI18nApplyOp(target, handle, sourceSpan) {
7336
7375
  }, NEW_OP);
7337
7376
  }
7338
7377
 
7339
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/ir/src/expression.mjs
7378
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/ir/src/expression.mjs
7340
7379
  var _a;
7341
7380
  var _b;
7342
7381
  var _c;
@@ -8187,7 +8226,7 @@ function isStringLiteral(expr) {
8187
8226
  return expr instanceof LiteralExpr && typeof expr.value === "string";
8188
8227
  }
8189
8228
 
8190
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/ir/src/operations.mjs
8229
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/ir/src/operations.mjs
8191
8230
  var _OpList = class {
8192
8231
  constructor() {
8193
8232
  this.debugListId = _OpList.nextListId++;
@@ -8378,14 +8417,14 @@ var OpList = _OpList;
8378
8417
  _OpList.nextListId = 0;
8379
8418
  })();
8380
8419
 
8381
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/ir/src/handle.mjs
8420
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/ir/src/handle.mjs
8382
8421
  var SlotHandle = class {
8383
8422
  constructor() {
8384
8423
  this.slot = null;
8385
8424
  }
8386
8425
  };
8387
8426
 
8388
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/ir/src/ops/create.mjs
8427
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/ir/src/ops/create.mjs
8389
8428
  var elementContainerOpKinds = /* @__PURE__ */ new Set([
8390
8429
  OpKind.Element,
8391
8430
  OpKind.ElementStart,
@@ -8617,9 +8656,10 @@ function createIcuEndOp(xref) {
8617
8656
  xref
8618
8657
  }, NEW_OP);
8619
8658
  }
8620
- function createI18nContextOp(xref, i18nBlock, message, sourceSpan) {
8659
+ function createI18nContextOp(contextKind, xref, i18nBlock, message, sourceSpan) {
8621
8660
  return __spreadValues({
8622
8661
  kind: OpKind.I18nContext,
8662
+ contextKind,
8623
8663
  xref,
8624
8664
  i18nBlock,
8625
8665
  message,
@@ -8629,7 +8669,7 @@ function createI18nContextOp(xref, i18nBlock, message, sourceSpan) {
8629
8669
  }, NEW_OP);
8630
8670
  }
8631
8671
 
8632
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/ir/src/ops/host.mjs
8672
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/ir/src/ops/host.mjs
8633
8673
  function createHostPropertyOp(name, expression, isAnimationTrigger, sourceSpan) {
8634
8674
  return __spreadValues(__spreadValues({
8635
8675
  kind: OpKind.HostProperty,
@@ -8640,10 +8680,10 @@ function createHostPropertyOp(name, expression, isAnimationTrigger, sourceSpan)
8640
8680
  }, TRAIT_CONSUMES_VARS), NEW_OP);
8641
8681
  }
8642
8682
 
8643
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/ir/src/variable.mjs
8683
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/ir/src/variable.mjs
8644
8684
  var CTX_REF = "CTX_REF_MARKER";
8645
8685
 
8646
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/compilation.mjs
8686
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/compilation.mjs
8647
8687
  var CompilationJobKind;
8648
8688
  (function(CompilationJobKind2) {
8649
8689
  CompilationJobKind2[CompilationJobKind2["Tmpl"] = 0] = "Tmpl";
@@ -8750,7 +8790,7 @@ var HostBindingCompilationUnit = class extends CompilationUnit {
8750
8790
  }
8751
8791
  };
8752
8792
 
8753
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/any_cast.mjs
8793
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/any_cast.mjs
8754
8794
  function deleteAnyCasts(job) {
8755
8795
  for (const unit of job.units) {
8756
8796
  for (const op of unit.ops()) {
@@ -8768,7 +8808,7 @@ function removeAnys(e) {
8768
8808
  return e;
8769
8809
  }
8770
8810
 
8771
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/apply_i18n_expressions.mjs
8811
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/apply_i18n_expressions.mjs
8772
8812
  function applyI18nExpressions(job) {
8773
8813
  const i18nContexts = /* @__PURE__ */ new Map();
8774
8814
  for (const unit of job.units) {
@@ -8799,10 +8839,9 @@ function needsApplication(i18nContexts, op) {
8799
8839
  return false;
8800
8840
  }
8801
8841
 
8802
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/assign_i18n_slot_dependencies.mjs
8842
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/assign_i18n_slot_dependencies.mjs
8803
8843
  function assignI18nSlotDependencies(job) {
8804
8844
  const i18nLastSlotConsumers = /* @__PURE__ */ new Map();
8805
- const i18nContexts = /* @__PURE__ */ new Map();
8806
8845
  let lastSlotConsumer = null;
8807
8846
  let currentI18nOp = null;
8808
8847
  for (const unit of job.units) {
@@ -8818,21 +8857,17 @@ function assignI18nSlotDependencies(job) {
8818
8857
  i18nLastSlotConsumers.set(currentI18nOp.xref, lastSlotConsumer);
8819
8858
  currentI18nOp = null;
8820
8859
  break;
8821
- case OpKind.I18nContext:
8822
- i18nContexts.set(op.xref, op);
8823
- break;
8824
8860
  }
8825
8861
  }
8826
8862
  for (const op of unit.update) {
8827
8863
  if (op.kind === OpKind.I18nExpression) {
8828
- const i18nContext = i18nContexts.get(op.context);
8829
- op.target = i18nLastSlotConsumers.get(i18nContext.i18nBlock);
8864
+ op.target = i18nLastSlotConsumers.get(op.target);
8830
8865
  }
8831
8866
  }
8832
8867
  }
8833
8868
  }
8834
8869
 
8835
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/util/elements.mjs
8870
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/util/elements.mjs
8836
8871
  function createOpXrefMap(unit) {
8837
8872
  const map = /* @__PURE__ */ new Map();
8838
8873
  for (const op of unit.create) {
@@ -8844,7 +8879,7 @@ function createOpXrefMap(unit) {
8844
8879
  return map;
8845
8880
  }
8846
8881
 
8847
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/attribute_extraction.mjs
8882
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/attribute_extraction.mjs
8848
8883
  function extractAttributes(job) {
8849
8884
  for (const unit of job.units) {
8850
8885
  const elements = createOpXrefMap(unit);
@@ -8911,7 +8946,7 @@ function extractAttributeOp(unit, op, elements) {
8911
8946
  }
8912
8947
  }
8913
8948
 
8914
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/binding_specialization.mjs
8949
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/binding_specialization.mjs
8915
8950
  function lookupElement2(elements, xref) {
8916
8951
  const el = elements.get(xref);
8917
8952
  if (el === void 0) {
@@ -8961,7 +8996,7 @@ function specializeBindings(job) {
8961
8996
  }
8962
8997
  }
8963
8998
 
8964
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/chaining.mjs
8999
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/chaining.mjs
8965
9000
  var CHAINABLE = /* @__PURE__ */ new Set([
8966
9001
  Identifiers.attribute,
8967
9002
  Identifiers.classProp,
@@ -9027,7 +9062,7 @@ function chainOperationsInList(opList) {
9027
9062
  }
9028
9063
  }
9029
9064
 
9030
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/collapse_singleton_interpolations.mjs
9065
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/collapse_singleton_interpolations.mjs
9031
9066
  function collapseSingletonInterpolations(job) {
9032
9067
  for (const unit of job.units) {
9033
9068
  for (const op of unit.update) {
@@ -9039,7 +9074,7 @@ function collapseSingletonInterpolations(job) {
9039
9074
  }
9040
9075
  }
9041
9076
 
9042
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/conditionals.mjs
9077
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/conditionals.mjs
9043
9078
  function generateConditionalExpressions(job) {
9044
9079
  for (const unit of job.units) {
9045
9080
  for (const op of unit.ops()) {
@@ -9076,7 +9111,7 @@ function generateConditionalExpressions(job) {
9076
9111
  }
9077
9112
  }
9078
9113
 
9079
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/ml_parser/tags.mjs
9114
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/ml_parser/tags.mjs
9080
9115
  var TagContentType;
9081
9116
  (function(TagContentType2) {
9082
9117
  TagContentType2[TagContentType2["RAW_TEXT"] = 0] = "RAW_TEXT";
@@ -9109,7 +9144,7 @@ function mergeNsAndName(prefix, localName) {
9109
9144
  return prefix ? `:${prefix}:${localName}` : localName;
9110
9145
  }
9111
9146
 
9112
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/conversion.mjs
9147
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/conversion.mjs
9113
9148
  var BINARY_OPERATORS = /* @__PURE__ */ new Map([
9114
9149
  ["&&", BinaryOperator.And],
9115
9150
  [">", BinaryOperator.Bigger],
@@ -9159,7 +9194,7 @@ function literalOrArrayLiteral(value) {
9159
9194
  return literal(value);
9160
9195
  }
9161
9196
 
9162
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/const_collection.mjs
9197
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/const_collection.mjs
9163
9198
  function collectElementConsts(job) {
9164
9199
  const allElementAttributes = /* @__PURE__ */ new Map();
9165
9200
  for (const unit of job.units) {
@@ -9293,7 +9328,7 @@ function serializeAttributes({ attributes, bindings, classes, i18n: i18n2, proje
9293
9328
  return literalArr(attrArray);
9294
9329
  }
9295
9330
 
9296
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/create_defer_deps_fns.mjs
9331
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/create_defer_deps_fns.mjs
9297
9332
  function createDeferDepsFns(job) {
9298
9333
  for (const unit of job.units) {
9299
9334
  for (const op of unit.create) {
@@ -9321,18 +9356,22 @@ function createDeferDepsFns(job) {
9321
9356
  }
9322
9357
  }
9323
9358
 
9324
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/create_i18n_contexts.mjs
9359
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/create_i18n_contexts.mjs
9325
9360
  function createI18nContexts(job) {
9361
+ const rootContexts = /* @__PURE__ */ new Map();
9326
9362
  let currentI18nOp = null;
9327
9363
  let xref;
9328
9364
  for (const unit of job.units) {
9329
9365
  for (const op of unit.create) {
9330
9366
  switch (op.kind) {
9331
9367
  case OpKind.I18nStart:
9332
- xref = job.allocateXrefId();
9333
- unit.create.push(createI18nContextOp(xref, op.xref, op.message, null));
9334
- op.context = xref;
9335
9368
  currentI18nOp = op;
9369
+ if (op.xref === op.root) {
9370
+ xref = job.allocateXrefId();
9371
+ unit.create.push(createI18nContextOp(I18nContextKind.RootI18n, xref, op.xref, op.message, null));
9372
+ op.context = xref;
9373
+ rootContexts.set(op.xref, xref);
9374
+ }
9336
9375
  break;
9337
9376
  case OpKind.I18nEnd:
9338
9377
  currentI18nOp = null;
@@ -9343,7 +9382,7 @@ function createI18nContexts(job) {
9343
9382
  }
9344
9383
  if (op.message.id !== currentI18nOp.message.id) {
9345
9384
  xref = job.allocateXrefId();
9346
- unit.create.push(createI18nContextOp(xref, currentI18nOp.xref, op.message, null));
9385
+ unit.create.push(createI18nContextOp(I18nContextKind.Icu, xref, currentI18nOp.xref, op.message, null));
9347
9386
  op.context = xref;
9348
9387
  } else {
9349
9388
  op.context = currentI18nOp.context;
@@ -9352,9 +9391,16 @@ function createI18nContexts(job) {
9352
9391
  }
9353
9392
  }
9354
9393
  }
9394
+ for (const unit of job.units) {
9395
+ for (const op of unit.create) {
9396
+ if (op.kind === OpKind.I18nStart && op.xref !== op.root) {
9397
+ op.context = rootContexts.get(op.root);
9398
+ }
9399
+ }
9400
+ }
9355
9401
  }
9356
9402
 
9357
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/defer_configs.mjs
9403
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/defer_configs.mjs
9358
9404
  function configureDeferInstructions(job) {
9359
9405
  for (const unit of job.units) {
9360
9406
  for (const op of unit.create) {
@@ -9371,7 +9417,7 @@ function configureDeferInstructions(job) {
9371
9417
  }
9372
9418
  }
9373
9419
 
9374
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/defer_resolve_targets.mjs
9420
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/defer_resolve_targets.mjs
9375
9421
  function resolveDeferTargetNames(job) {
9376
9422
  const scopes = /* @__PURE__ */ new Map();
9377
9423
  function getScopeForView2(view) {
@@ -9465,7 +9511,7 @@ var Scope = class {
9465
9511
  }
9466
9512
  };
9467
9513
 
9468
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/empty_elements.mjs
9514
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/empty_elements.mjs
9469
9515
  var REPLACEMENTS = /* @__PURE__ */ new Map([
9470
9516
  [OpKind.ElementEnd, [OpKind.ElementStart, OpKind.Element]],
9471
9517
  [OpKind.ContainerEnd, [OpKind.ContainerStart, OpKind.Container]],
@@ -9492,7 +9538,7 @@ function collapseEmptyInstructions(job) {
9492
9538
  }
9493
9539
  }
9494
9540
 
9495
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/expand_safe_reads.mjs
9541
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/expand_safe_reads.mjs
9496
9542
  function expandSafeReads(job) {
9497
9543
  for (const unit of job.units) {
9498
9544
  for (const op of unit.ops()) {
@@ -9628,7 +9674,7 @@ function ternaryTransform(e) {
9628
9674
  return new ConditionalExpr(new BinaryOperatorExpr(BinaryOperator.Equals, e.guard, NULL_EXPR), NULL_EXPR, e.expr);
9629
9675
  }
9630
9676
 
9631
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/extract_i18n_messages.mjs
9677
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/extract_i18n_messages.mjs
9632
9678
  var ESCAPE = "\uFFFD";
9633
9679
  var ELEMENT_MARKER = "#";
9634
9680
  var TEMPLATE_MARKER = "*";
@@ -9639,7 +9685,7 @@ var LIST_END_MARKER = "]";
9639
9685
  var LIST_DELIMITER = "|";
9640
9686
  function extractI18nMessages(job) {
9641
9687
  const i18nContexts = /* @__PURE__ */ new Map();
9642
- const i18nBlockContexts = /* @__PURE__ */ new Set();
9688
+ const i18nBlocks = /* @__PURE__ */ new Map();
9643
9689
  for (const unit of job.units) {
9644
9690
  for (const op of unit.create) {
9645
9691
  switch (op.kind) {
@@ -9647,7 +9693,7 @@ function extractI18nMessages(job) {
9647
9693
  i18nContexts.set(op.xref, op);
9648
9694
  break;
9649
9695
  case OpKind.I18nStart:
9650
- i18nBlockContexts.add(op.context);
9696
+ i18nBlocks.set(op.xref, op);
9651
9697
  break;
9652
9698
  }
9653
9699
  }
@@ -9672,11 +9718,12 @@ function extractI18nMessages(job) {
9672
9718
  if (!op.context) {
9673
9719
  throw Error("ICU op should have its context set.");
9674
9720
  }
9675
- if (!i18nBlockContexts.has(op.context)) {
9676
- const i18nContext = i18nContexts.get(op.context);
9721
+ const i18nContext = i18nContexts.get(op.context);
9722
+ if (i18nContext.contextKind === I18nContextKind.Icu) {
9677
9723
  const subMessage = createI18nMessage(job, i18nContext, op.messagePlaceholder);
9678
9724
  unit.create.push(subMessage);
9679
- const parentMessage = i18nBlockMessages.get(i18nContext.i18nBlock);
9725
+ const rootI18nId = i18nBlocks.get(i18nContext.i18nBlock).root;
9726
+ const parentMessage = i18nBlockMessages.get(rootI18nId);
9680
9727
  parentMessage == null ? void 0 : parentMessage.subMessages.push(subMessage.xref);
9681
9728
  }
9682
9729
  OpList.remove(op);
@@ -9689,30 +9736,67 @@ function extractI18nMessages(job) {
9689
9736
  }
9690
9737
  }
9691
9738
  function createI18nMessage(job, context, messagePlaceholder) {
9692
- let needsPostprocessing = context.postprocessingParams.size > 0;
9693
- for (const values of context.params.values()) {
9694
- if (values.length > 1) {
9695
- needsPostprocessing = true;
9696
- }
9697
- }
9698
- return createI18nMessageOp(job.allocateXrefId(), context.i18nBlock, context.message, messagePlaceholder != null ? messagePlaceholder : null, formatParams(context.params), formatParams(context.postprocessingParams), needsPostprocessing);
9739
+ let [formattedParams, needsPostprocessing] = formatParams(context.params);
9740
+ const [formattedPostprocessingParams] = formatParams(context.postprocessingParams);
9741
+ needsPostprocessing || (needsPostprocessing = formattedPostprocessingParams.size > 0);
9742
+ return createI18nMessageOp(job.allocateXrefId(), context.i18nBlock, context.message, messagePlaceholder != null ? messagePlaceholder : null, formattedParams, formattedPostprocessingParams, needsPostprocessing);
9699
9743
  }
9700
9744
  function formatParams(params) {
9701
- const result = /* @__PURE__ */ new Map();
9745
+ const formattedParams = /* @__PURE__ */ new Map();
9746
+ let needsPostprocessing = false;
9702
9747
  for (const [placeholder, placeholderValues] of params) {
9703
- const serializedValues = formatParamValues(placeholderValues);
9748
+ const [serializedValues, paramNeedsPostprocessing] = formatParamValues(placeholderValues);
9749
+ needsPostprocessing || (needsPostprocessing = paramNeedsPostprocessing);
9704
9750
  if (serializedValues !== null) {
9705
- result.set(placeholder, literal(formatParamValues(placeholderValues)));
9751
+ formattedParams.set(placeholder, literal(serializedValues));
9706
9752
  }
9707
9753
  }
9708
- return result;
9754
+ return [formattedParams, needsPostprocessing];
9709
9755
  }
9710
9756
  function formatParamValues(values) {
9711
9757
  if (values.length === 0) {
9712
- return null;
9758
+ return [null, false];
9713
9759
  }
9760
+ collapseElementTemplatePairs(values);
9714
9761
  const serializedValues = values.map((value) => formatValue(value));
9715
- return serializedValues.length === 1 ? serializedValues[0] : `${LIST_START_MARKER}${serializedValues.join(LIST_DELIMITER)}${LIST_END_MARKER}`;
9762
+ return serializedValues.length === 1 ? [serializedValues[0], false] : [`${LIST_START_MARKER}${serializedValues.join(LIST_DELIMITER)}${LIST_END_MARKER}`, true];
9763
+ }
9764
+ function collapseElementTemplatePairs(values) {
9765
+ var _a2;
9766
+ const valueIndiciesBySubTemplateIndex = /* @__PURE__ */ new Map();
9767
+ for (let i = 0; i < values.length; i++) {
9768
+ const value = values[i];
9769
+ if (value.subTemplateIndex !== null && value.flags & (I18nParamValueFlags.ElementTag | I18nParamValueFlags.TemplateTag)) {
9770
+ const valueIndicies = (_a2 = valueIndiciesBySubTemplateIndex.get(value.subTemplateIndex)) != null ? _a2 : [];
9771
+ valueIndicies.push(i);
9772
+ valueIndiciesBySubTemplateIndex.set(value.subTemplateIndex, valueIndicies);
9773
+ }
9774
+ }
9775
+ for (const [subTemplateIndex, valueIndicies] of valueIndiciesBySubTemplateIndex) {
9776
+ if (valueIndicies.length > 1) {
9777
+ const elementIndex = valueIndicies.find((index) => values[index].flags & I18nParamValueFlags.ElementTag);
9778
+ const templateIndex = valueIndicies.find((index) => values[index].flags & I18nParamValueFlags.TemplateTag);
9779
+ if (elementIndex !== void 0 && templateIndex !== void 0) {
9780
+ const elementValue = values[elementIndex];
9781
+ const templateValue = values[templateIndex];
9782
+ let compundValue;
9783
+ if (elementValue.flags & I18nParamValueFlags.OpenTag && elementValue.flags & I18nParamValueFlags.CloseTag) {
9784
+ compundValue = `${formatValue(templateValue)}${formatValue(elementValue)}${formatValue(templateValue)}`;
9785
+ } else if (elementValue.flags & I18nParamValueFlags.OpenTag) {
9786
+ compundValue = `${formatValue(templateValue)}${formatValue(elementValue)}`;
9787
+ } else {
9788
+ compundValue = `${formatValue(elementValue)}${formatValue(templateValue)}`;
9789
+ }
9790
+ values.splice(elementIndex, 1, { value: compundValue, subTemplateIndex, flags: I18nParamValueFlags.None });
9791
+ values.splice(templateIndex, 1, null);
9792
+ }
9793
+ }
9794
+ }
9795
+ for (let i = values.length - 1; i >= 0; i--) {
9796
+ if (values[i] === null) {
9797
+ values.splice(i, 1);
9798
+ }
9799
+ }
9716
9800
  }
9717
9801
  function formatValue(value) {
9718
9802
  if (value.flags === I18nParamValueFlags.None) {
@@ -9735,7 +9819,7 @@ function formatValue(value) {
9735
9819
  return `${ESCAPE}${closeMarker}${tagMarker}${value.value}${context}${ESCAPE}`;
9736
9820
  }
9737
9821
 
9738
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/generate_advance.mjs
9822
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/generate_advance.mjs
9739
9823
  function generateAdvance(job) {
9740
9824
  for (const unit of job.units) {
9741
9825
  const slotMap = /* @__PURE__ */ new Map();
@@ -9767,7 +9851,7 @@ function generateAdvance(job) {
9767
9851
  }
9768
9852
  }
9769
9853
 
9770
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/generate_projection_def.mjs
9854
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/generate_projection_def.mjs
9771
9855
  function generateProjectionDefs(job) {
9772
9856
  const share = job.compatibility === CompatibilityMode.TemplateDefinitionBuilder;
9773
9857
  const selectors = [];
@@ -9791,7 +9875,7 @@ function generateProjectionDefs(job) {
9791
9875
  }
9792
9876
  }
9793
9877
 
9794
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/generate_variables.mjs
9878
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/generate_variables.mjs
9795
9879
  function generateVariables(job) {
9796
9880
  recursivelyProcessView(job.root, null);
9797
9881
  }
@@ -9879,7 +9963,7 @@ function generateVariablesInScopeForView(view, scope) {
9879
9963
  return newOps;
9880
9964
  }
9881
9965
 
9882
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/has_const_expression_collection.mjs
9966
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/has_const_expression_collection.mjs
9883
9967
  function collectConstExpressions(job) {
9884
9968
  for (const unit of job.units) {
9885
9969
  for (const op of unit.ops()) {
@@ -9893,7 +9977,7 @@ function collectConstExpressions(job) {
9893
9977
  }
9894
9978
  }
9895
9979
 
9896
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/host_style_property_parsing.mjs
9980
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/host_style_property_parsing.mjs
9897
9981
  var STYLE_DOT = "style.";
9898
9982
  var CLASS_DOT = "class.";
9899
9983
  var STYLE_BANG = "style!";
@@ -9951,7 +10035,7 @@ function parseProperty(name) {
9951
10035
  return { property: property2, suffix };
9952
10036
  }
9953
10037
 
9954
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/output/map_util.mjs
10038
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/output/map_util.mjs
9955
10039
  function mapLiteral(obj, quoted = false) {
9956
10040
  return literalMap(Object.keys(obj).map((key) => ({
9957
10041
  key,
@@ -9960,7 +10044,7 @@ function mapLiteral(obj, quoted = false) {
9960
10044
  })));
9961
10045
  }
9962
10046
 
9963
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/render3/view/i18n/icu_serializer.mjs
10047
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/render3/view/i18n/icu_serializer.mjs
9964
10048
  var IcuSerializerVisitor = class {
9965
10049
  visitText(text2) {
9966
10050
  return text2.value;
@@ -9979,6 +10063,9 @@ var IcuSerializerVisitor = class {
9979
10063
  visitPlaceholder(ph) {
9980
10064
  return this.formatPh(ph.name);
9981
10065
  }
10066
+ visitBlockPlaceholder(ph) {
10067
+ return `${this.formatPh(ph.startName)}${ph.children.map((child) => child.visit(this)).join("")}${this.formatPh(ph.closeName)}`;
10068
+ }
9982
10069
  visitIcuPlaceholder(ph, context) {
9983
10070
  return this.formatPh(ph.name);
9984
10071
  }
@@ -9991,7 +10078,7 @@ function serializeIcuNode(icu) {
9991
10078
  return icu.visit(serializer);
9992
10079
  }
9993
10080
 
9994
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/expression_parser/lexer.mjs
10081
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/expression_parser/lexer.mjs
9995
10082
  var TokenType;
9996
10083
  (function(TokenType2) {
9997
10084
  TokenType2[TokenType2["Character"] = 0] = "Character";
@@ -10352,7 +10439,7 @@ function parseIntAutoRadix(text2) {
10352
10439
  return result;
10353
10440
  }
10354
10441
 
10355
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/expression_parser/parser.mjs
10442
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/expression_parser/parser.mjs
10356
10443
  var SplitInterpolation = class {
10357
10444
  constructor(strings, expressions, offsets) {
10358
10445
  this.strings = strings;
@@ -11246,7 +11333,7 @@ function getIndexMapForOriginalTemplate(interpolatedTokens) {
11246
11333
  return offsetMap;
11247
11334
  }
11248
11335
 
11249
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/ml_parser/ast.mjs
11336
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/ml_parser/ast.mjs
11250
11337
  var NodeWithI18n = class {
11251
11338
  constructor(sourceSpan, i18n2) {
11252
11339
  this.sourceSpan = sourceSpan;
@@ -11322,12 +11409,12 @@ var Comment2 = class {
11322
11409
  return visitor.visitComment(this, context);
11323
11410
  }
11324
11411
  };
11325
- var Block = class {
11326
- constructor(name, parameters, children, sourceSpan, nameSpan, startSourceSpan, endSourceSpan = null) {
11412
+ var Block = class extends NodeWithI18n {
11413
+ constructor(name, parameters, children, sourceSpan, nameSpan, startSourceSpan, endSourceSpan = null, i18n2) {
11414
+ super(sourceSpan, i18n2);
11327
11415
  this.name = name;
11328
11416
  this.parameters = parameters;
11329
11417
  this.children = children;
11330
- this.sourceSpan = sourceSpan;
11331
11418
  this.nameSpan = nameSpan;
11332
11419
  this.startSourceSpan = startSourceSpan;
11333
11420
  this.endSourceSpan = endSourceSpan;
@@ -11398,11 +11485,11 @@ var RecursiveVisitor = class {
11398
11485
  }
11399
11486
  };
11400
11487
 
11401
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/schema/element_schema_registry.mjs
11488
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/schema/element_schema_registry.mjs
11402
11489
  var ElementSchemaRegistry = class {
11403
11490
  };
11404
11491
 
11405
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/schema/dom_element_schema_registry.mjs
11492
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/schema/dom_element_schema_registry.mjs
11406
11493
  var BOOLEAN = "boolean";
11407
11494
  var NUMBER = "number";
11408
11495
  var STRING = "string";
@@ -11755,7 +11842,7 @@ function _isPixelDimensionStyle(prop) {
11755
11842
  }
11756
11843
  }
11757
11844
 
11758
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/ml_parser/html_tags.mjs
11845
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/ml_parser/html_tags.mjs
11759
11846
  var HtmlTagDefinition = class {
11760
11847
  constructor({ closedByChildren, implicitNamespacePrefix, contentType = TagContentType.PARSABLE_DATA, closedByParent = false, isVoid = false, ignoreFirstLf = false, preventNamespaceInheritance = false, canSelfClose = false } = {}) {
11761
11848
  this.closedByChildren = {};
@@ -11873,7 +11960,7 @@ function getHtmlTagDefinition(tagName) {
11873
11960
  return (_b2 = (_a2 = TAG_DEFINITIONS[tagName]) != null ? _a2 : TAG_DEFINITIONS[tagName.toLowerCase()]) != null ? _b2 : DEFAULT_TAG_DEFINITION;
11874
11961
  }
11875
11962
 
11876
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/i18n/serializers/placeholder.mjs
11963
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/i18n/serializers/placeholder.mjs
11877
11964
  var TAG_TO_PLACEHOLDER_NAMES = {
11878
11965
  "A": "LINK",
11879
11966
  "B": "BOLD_TEXT",
@@ -11946,6 +12033,24 @@ var PlaceholderRegistry = class {
11946
12033
  getUniquePlaceholder(name) {
11947
12034
  return this._generateUniqueName(name.toUpperCase());
11948
12035
  }
12036
+ getStartBlockPlaceholderName(name, parameters) {
12037
+ const signature = this._hashBlock(name, parameters);
12038
+ if (this._signatureToName[signature]) {
12039
+ return this._signatureToName[signature];
12040
+ }
12041
+ const placeholder = this._generateUniqueName(`START_BLOCK_${this._toSnakeCase(name)}`);
12042
+ this._signatureToName[signature] = placeholder;
12043
+ return placeholder;
12044
+ }
12045
+ getCloseBlockPlaceholderName(name) {
12046
+ const signature = this._hashClosingBlock(name);
12047
+ if (this._signatureToName[signature]) {
12048
+ return this._signatureToName[signature];
12049
+ }
12050
+ const placeholder = this._generateUniqueName(`CLOSE_BLOCK_${this._toSnakeCase(name)}`);
12051
+ this._signatureToName[signature] = placeholder;
12052
+ return placeholder;
12053
+ }
11949
12054
  _hashTag(tag, attrs, isVoid) {
11950
12055
  const start = `<${tag}`;
11951
12056
  const strAttrs = Object.keys(attrs).sort().map((name) => ` ${name}=${attrs[name]}`).join("");
@@ -11955,6 +12060,16 @@ var PlaceholderRegistry = class {
11955
12060
  _hashClosingTag(tag) {
11956
12061
  return this._hashTag(`/${tag}`, {}, false);
11957
12062
  }
12063
+ _hashBlock(name, parameters) {
12064
+ const params = parameters.length === 0 ? "" : ` (${parameters.sort().join("; ")})`;
12065
+ return `@${name}${params} {}`;
12066
+ }
12067
+ _hashClosingBlock(name) {
12068
+ return this._hashBlock(`close_${name}`, []);
12069
+ }
12070
+ _toSnakeCase(name) {
12071
+ return name.toUpperCase().replace(/[^A-Z0-9]/g, "_");
12072
+ }
11958
12073
  _generateUniqueName(base) {
11959
12074
  const seen = this._placeHolderNameCounts.hasOwnProperty(base);
11960
12075
  if (!seen) {
@@ -11967,19 +12082,20 @@ var PlaceholderRegistry = class {
11967
12082
  }
11968
12083
  };
11969
12084
 
11970
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/i18n/i18n_parser.mjs
12085
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/i18n/i18n_parser.mjs
11971
12086
  var _expParser = new Parser(new Lexer());
11972
- function createI18nMessageFactory(interpolationConfig) {
11973
- const visitor = new _I18nVisitor(_expParser, interpolationConfig);
12087
+ function createI18nMessageFactory(interpolationConfig, containerBlocks) {
12088
+ const visitor = new _I18nVisitor(_expParser, interpolationConfig, containerBlocks);
11974
12089
  return (nodes, meaning, description, customId, visitNodeFn) => visitor.toI18nMessage(nodes, meaning, description, customId, visitNodeFn);
11975
12090
  }
11976
12091
  function noopVisitNodeFn(_html, i18n2) {
11977
12092
  return i18n2;
11978
12093
  }
11979
12094
  var _I18nVisitor = class {
11980
- constructor(_expressionParser, _interpolationConfig) {
12095
+ constructor(_expressionParser, _interpolationConfig, _containerBlocks) {
11981
12096
  this._expressionParser = _expressionParser;
11982
12097
  this._interpolationConfig = _interpolationConfig;
12098
+ this._containerBlocks = _containerBlocks;
11983
12099
  }
11984
12100
  toI18nMessage(nodes, meaning = "", description = "", customId = "", visitNodeFn) {
11985
12101
  const context = {
@@ -12054,11 +12170,27 @@ var _I18nVisitor = class {
12054
12170
  throw new Error("Unreachable code");
12055
12171
  }
12056
12172
  visitBlock(block, context) {
12173
+ var _a2;
12057
12174
  const children = visitAll2(this, block.children, context);
12058
- const node = new Container(children, block.sourceSpan);
12175
+ if (this._containerBlocks.has(block.name)) {
12176
+ return new Container(children, block.sourceSpan);
12177
+ }
12178
+ const parameters = block.parameters.map((param) => param.expression);
12179
+ const startPhName = context.placeholderRegistry.getStartBlockPlaceholderName(block.name, parameters);
12180
+ const closePhName = context.placeholderRegistry.getCloseBlockPlaceholderName(block.name);
12181
+ context.placeholderToContent[startPhName] = {
12182
+ text: block.startSourceSpan.toString(),
12183
+ sourceSpan: block.startSourceSpan
12184
+ };
12185
+ context.placeholderToContent[closePhName] = {
12186
+ text: block.endSourceSpan ? block.endSourceSpan.toString() : "}",
12187
+ sourceSpan: (_a2 = block.endSourceSpan) != null ? _a2 : block.sourceSpan
12188
+ };
12189
+ const node = new BlockPlaceholder(block.name, parameters, startPhName, closePhName, children, block.sourceSpan, block.startSourceSpan, block.endSourceSpan);
12059
12190
  return context.visitNodeFn(block, node);
12060
12191
  }
12061
12192
  visitBlockParameter(_parameter, _context) {
12193
+ throw new Error("Unreachable code");
12062
12194
  }
12063
12195
  _visitTextWithInterpolation(tokens, sourceSpan, context, previousI18n) {
12064
12196
  const nodes = [];
@@ -12129,14 +12261,14 @@ function extractPlaceholderName(input) {
12129
12261
  return input.split(_CUSTOM_PH_EXP)[2];
12130
12262
  }
12131
12263
 
12132
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/i18n/parse_util.mjs
12264
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/i18n/parse_util.mjs
12133
12265
  var I18nError = class extends ParseError {
12134
12266
  constructor(span, msg) {
12135
12267
  super(span, msg);
12136
12268
  }
12137
12269
  };
12138
12270
 
12139
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/ml_parser/entities.mjs
12271
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/ml_parser/entities.mjs
12140
12272
  var NAMED_ENTITIES = {
12141
12273
  "AElig": "\xC6",
12142
12274
  "AMP": "&",
@@ -14267,7 +14399,7 @@ var NAMED_ENTITIES = {
14267
14399
  var NGSP_UNICODE = "\uE500";
14268
14400
  NAMED_ENTITIES["ngsp"] = NGSP_UNICODE;
14269
14401
 
14270
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/ml_parser/lexer.mjs
14402
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/ml_parser/lexer.mjs
14271
14403
  var TokenError = class extends ParseError {
14272
14404
  constructor(errorMsg, tokenType, span) {
14273
14405
  super(span, errorMsg);
@@ -15188,7 +15320,7 @@ var CursorError = class {
15188
15320
  }
15189
15321
  };
15190
15322
 
15191
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/ml_parser/parser.mjs
15323
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/ml_parser/parser.mjs
15192
15324
  var TreeError = class extends ParseError {
15193
15325
  static create(elementName, span, msg) {
15194
15326
  return new TreeError(elementName, span, msg);
@@ -15572,7 +15704,7 @@ function decodeEntity(match, entity) {
15572
15704
  return match;
15573
15705
  }
15574
15706
 
15575
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/schema/trusted_types_sinks.mjs
15707
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/schema/trusted_types_sinks.mjs
15576
15708
  var TRUSTED_TYPES_SINKS = /* @__PURE__ */ new Set([
15577
15709
  "iframe|srcdoc",
15578
15710
  "*|innerhtml",
@@ -15587,7 +15719,7 @@ function isTrustedTypesSink(tagName, propName) {
15587
15719
  return TRUSTED_TYPES_SINKS.has(tagName + "|" + propName) || TRUSTED_TYPES_SINKS.has("*|" + propName);
15588
15720
  }
15589
15721
 
15590
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/render3/view/i18n/meta.mjs
15722
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/render3/view/i18n/meta.mjs
15591
15723
  var setI18nRefs = (htmlNode, i18nNode) => {
15592
15724
  if (htmlNode instanceof NodeWithI18n) {
15593
15725
  if (i18nNode instanceof IcuPlaceholder && htmlNode.i18n instanceof Message) {
@@ -15598,16 +15730,17 @@ var setI18nRefs = (htmlNode, i18nNode) => {
15598
15730
  return i18nNode;
15599
15731
  };
15600
15732
  var I18nMetaVisitor = class {
15601
- constructor(interpolationConfig = DEFAULT_INTERPOLATION_CONFIG, keepI18nAttrs = false, enableI18nLegacyMessageIdFormat = false) {
15733
+ constructor(interpolationConfig = DEFAULT_INTERPOLATION_CONFIG, keepI18nAttrs = false, enableI18nLegacyMessageIdFormat = false, containerBlocks = DEFAULT_CONTAINER_BLOCKS) {
15602
15734
  this.interpolationConfig = interpolationConfig;
15603
15735
  this.keepI18nAttrs = keepI18nAttrs;
15604
15736
  this.enableI18nLegacyMessageIdFormat = enableI18nLegacyMessageIdFormat;
15737
+ this.containerBlocks = containerBlocks;
15605
15738
  this.hasI18nMeta = false;
15606
15739
  this._errors = [];
15607
15740
  }
15608
15741
  _generateI18nMessage(nodes, meta = "", visitNodeFn) {
15609
15742
  const { meaning, description, customId } = this._parseMetadata(meta);
15610
- const createI18nMessage2 = createI18nMessageFactory(this.interpolationConfig);
15743
+ const createI18nMessage2 = createI18nMessageFactory(this.interpolationConfig, this.containerBlocks);
15611
15744
  const message = createI18nMessage2(nodes, meaning, description, customId, visitNodeFn);
15612
15745
  this._setMessageId(message, meta);
15613
15746
  this._setLegacyIds(message, meta);
@@ -15743,7 +15876,7 @@ function i18nMetaToJSDoc(meta) {
15743
15876
  return jsDocComment(tags);
15744
15877
  }
15745
15878
 
15746
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/render3/view/i18n/get_msg_utils.mjs
15879
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/render3/view/i18n/get_msg_utils.mjs
15747
15880
  var GOOG_GET_MSG = "goog.getMsg";
15748
15881
  function createGoogleGetMsgStatements(variable2, message, closureVar, placeholderValues) {
15749
15882
  const messageString = serializeI18nMessageForGetMsg(message);
@@ -15782,6 +15915,9 @@ var GetMsgSerializerVisitor = class {
15782
15915
  visitPlaceholder(ph) {
15783
15916
  return this.formatPh(ph.name);
15784
15917
  }
15918
+ visitBlockPlaceholder(ph) {
15919
+ return `${this.formatPh(ph.startName)}${ph.children.map((child) => child.visit(this)).join("")}${this.formatPh(ph.closeName)}`;
15920
+ }
15785
15921
  visitIcuPlaceholder(ph, context) {
15786
15922
  return this.formatPh(ph.name);
15787
15923
  }
@@ -15791,7 +15927,7 @@ function serializeI18nMessageForGetMsg(message) {
15791
15927
  return message.nodes.map((node) => node.visit(serializerVisitor2, null)).join("");
15792
15928
  }
15793
15929
 
15794
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/render3/view/i18n/localize_utils.mjs
15930
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/render3/view/i18n/localize_utils.mjs
15795
15931
  function createLocalizeStatements(variable2, message, params) {
15796
15932
  const { messageParts, placeHolders } = serializeI18nMessageForLocalize(message);
15797
15933
  const sourceSpan = getSourceSpan(message);
@@ -15830,6 +15966,12 @@ var LocalizeSerializerVisitor = class {
15830
15966
  visitPlaceholder(ph) {
15831
15967
  this.pieces.push(this.createPlaceholderPiece(ph.name, ph.sourceSpan));
15832
15968
  }
15969
+ visitBlockPlaceholder(ph) {
15970
+ var _a2, _b2;
15971
+ this.pieces.push(this.createPlaceholderPiece(ph.startName, (_a2 = ph.startSourceSpan) != null ? _a2 : ph.sourceSpan));
15972
+ ph.children.forEach((child) => child.visit(this));
15973
+ this.pieces.push(this.createPlaceholderPiece(ph.closeName, (_b2 = ph.endSourceSpan) != null ? _b2 : ph.sourceSpan));
15974
+ }
15833
15975
  visitIcuPlaceholder(ph) {
15834
15976
  this.pieces.push(this.createPlaceholderPiece(ph.name, ph.sourceSpan, this.placeholderToMessage[ph.name]));
15835
15977
  }
@@ -15874,7 +16016,7 @@ function createEmptyMessagePart(location) {
15874
16016
  return new LiteralPiece("", new ParseSourceSpan(location, location));
15875
16017
  }
15876
16018
 
15877
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/i18n_const_collection.mjs
16019
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/i18n_const_collection.mjs
15878
16020
  var NG_I18N_CLOSURE_MODE = "ngI18nClosureMode";
15879
16021
  var TRANSLATION_VAR_PREFIX2 = "i18n_";
15880
16022
  function collectI18nConsts(job) {
@@ -15969,7 +16111,7 @@ function assertAllParamsResolved(op) {
15969
16111
  }
15970
16112
  }
15971
16113
 
15972
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/i18n_text_extraction.mjs
16114
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/i18n_text_extraction.mjs
15973
16115
  function extractI18nText(job) {
15974
16116
  var _a2;
15975
16117
  for (const unit of job.units) {
@@ -16028,7 +16170,7 @@ function extractI18nText(job) {
16028
16170
  }
16029
16171
  }
16030
16172
 
16031
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/local_refs.mjs
16173
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/local_refs.mjs
16032
16174
  function liftLocalRefs(job) {
16033
16175
  for (const unit of job.units) {
16034
16176
  for (const op of unit.create) {
@@ -16058,48 +16200,7 @@ function serializeLocalRefs(refs) {
16058
16200
  return literalArr(constRefs);
16059
16201
  }
16060
16202
 
16061
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/merge_i18n_contexts.mjs
16062
- function mergeI18nContexts(job) {
16063
- const i18nOps = /* @__PURE__ */ new Map();
16064
- const i18nContexts = /* @__PURE__ */ new Map();
16065
- for (const unit of job.units) {
16066
- for (const op of unit.create) {
16067
- switch (op.kind) {
16068
- case OpKind.I18nStart:
16069
- if (!op.context) {
16070
- throw Error("I18n op should have its context set.");
16071
- }
16072
- i18nOps.set(op.xref, op);
16073
- break;
16074
- case OpKind.I18nContext:
16075
- i18nContexts.set(op.xref, op);
16076
- break;
16077
- }
16078
- }
16079
- }
16080
- for (const childI18nOp of i18nOps.values()) {
16081
- if (childI18nOp.xref !== childI18nOp.root) {
16082
- const childContext = i18nContexts.get(childI18nOp.context);
16083
- const rootI18nOp = i18nOps.get(childI18nOp.root);
16084
- const rootContext = i18nContexts.get(rootI18nOp.context);
16085
- mergeParams(rootContext.params, childContext.params);
16086
- mergeParams(rootContext.postprocessingParams, childContext.postprocessingParams);
16087
- }
16088
- }
16089
- }
16090
- function mergeParams(to, from) {
16091
- for (const [placeholder, fromValues] of from) {
16092
- const toValues = to.get(placeholder) || [];
16093
- const flags = fromValues[0].flags;
16094
- if (flags & I18nParamValueFlags.CloseTag && !(flags & I18nParamValueFlags.OpenTag)) {
16095
- to.set(placeholder, [...fromValues, ...toValues]);
16096
- } else {
16097
- to.set(placeholder, [...toValues, ...fromValues]);
16098
- }
16099
- }
16100
- }
16101
-
16102
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/namespace.mjs
16203
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/namespace.mjs
16103
16204
  function emitNamespaceChanges(job) {
16104
16205
  for (const unit of job.units) {
16105
16206
  let activeNamespace = Namespace.HTML;
@@ -16115,7 +16216,7 @@ function emitNamespaceChanges(job) {
16115
16216
  }
16116
16217
  }
16117
16218
 
16118
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/render3/view/style_parser.mjs
16219
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/render3/view/style_parser.mjs
16119
16220
  function parse(value) {
16120
16221
  const styles = [];
16121
16222
  let i = 0;
@@ -16176,7 +16277,7 @@ function hyphenate2(value) {
16176
16277
  }).toLowerCase();
16177
16278
  }
16178
16279
 
16179
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/naming.mjs
16280
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/naming.mjs
16180
16281
  function nameFunctionsAndVariables(job) {
16181
16282
  addNamesToView(job.root, job.componentName, { index: 0 }, job.compatibility === CompatibilityMode.TemplateDefinitionBuilder);
16182
16283
  }
@@ -16291,7 +16392,7 @@ function stripImportant(name) {
16291
16392
  return name;
16292
16393
  }
16293
16394
 
16294
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/next_context_merging.mjs
16395
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/next_context_merging.mjs
16295
16396
  function mergeNextContextExpressions(job) {
16296
16397
  for (const unit of job.units) {
16297
16398
  for (const op of unit.create) {
@@ -16337,7 +16438,7 @@ function mergeNextContextsInOps(ops) {
16337
16438
  }
16338
16439
  }
16339
16440
 
16340
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/ng_container.mjs
16441
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/ng_container.mjs
16341
16442
  var CONTAINER_TAG = "ng-container";
16342
16443
  function generateNgContainerOps(job) {
16343
16444
  for (const unit of job.units) {
@@ -16354,7 +16455,7 @@ function generateNgContainerOps(job) {
16354
16455
  }
16355
16456
  }
16356
16457
 
16357
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/nonbindable.mjs
16458
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/nonbindable.mjs
16358
16459
  function lookupElement3(elements, xref) {
16359
16460
  const el = elements.get(xref);
16360
16461
  if (el === void 0) {
@@ -16384,7 +16485,7 @@ function disableBindings(job) {
16384
16485
  }
16385
16486
  }
16386
16487
 
16387
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/nullish_coalescing.mjs
16488
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/nullish_coalescing.mjs
16388
16489
  function generateNullishCoalesceExpressions(job) {
16389
16490
  for (const unit of job.units) {
16390
16491
  for (const op of unit.ops()) {
@@ -16400,7 +16501,7 @@ function generateNullishCoalesceExpressions(job) {
16400
16501
  }
16401
16502
  }
16402
16503
 
16403
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/ordering.mjs
16504
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/ordering.mjs
16404
16505
  function kindTest(kind) {
16405
16506
  return (op) => op.kind === kind;
16406
16507
  }
@@ -16474,7 +16575,7 @@ function keepLast(ops) {
16474
16575
  return ops.slice(ops.length - 1);
16475
16576
  }
16476
16577
 
16477
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/parse_extracted_styles.mjs
16578
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/parse_extracted_styles.mjs
16478
16579
  function parseExtractedStyles(job) {
16479
16580
  for (const unit of job.units) {
16480
16581
  for (const op of unit.create) {
@@ -16497,7 +16598,7 @@ function parseExtractedStyles(job) {
16497
16598
  }
16498
16599
  }
16499
16600
 
16500
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/phase_remove_content_selectors.mjs
16601
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/phase_remove_content_selectors.mjs
16501
16602
  function removeContentSelectors(job) {
16502
16603
  for (const unit of job.units) {
16503
16604
  const elements = createOpXrefMap(unit);
@@ -16521,7 +16622,7 @@ function lookupInXrefMap(map, xref) {
16521
16622
  return el;
16522
16623
  }
16523
16624
 
16524
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/pipe_creation.mjs
16625
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/pipe_creation.mjs
16525
16626
  function createPipes(job) {
16526
16627
  for (const unit of job.units) {
16527
16628
  processPipeBindingsInView(unit);
@@ -16569,7 +16670,7 @@ function addPipeToCreationBlock(unit, afterTargetXref, binding) {
16569
16670
  throw new Error(`AssertionError: unable to find insertion point for pipe ${binding.name}`);
16570
16671
  }
16571
16672
 
16572
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/pipe_variadic.mjs
16673
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/pipe_variadic.mjs
16573
16674
  function createVariadicPipes(job) {
16574
16675
  for (const unit of job.units) {
16575
16676
  for (const op of unit.update) {
@@ -16586,7 +16687,7 @@ function createVariadicPipes(job) {
16586
16687
  }
16587
16688
  }
16588
16689
 
16589
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/propagate_i18n_blocks.mjs
16690
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/propagate_i18n_blocks.mjs
16590
16691
  function propagateI18nBlocks(job) {
16591
16692
  propagateI18nBlocksToTemplates(job.root, 0);
16592
16693
  }
@@ -16610,9 +16711,10 @@ function propagateI18nBlocksToTemplates(unit, subTemplateIndex) {
16610
16711
  subTemplateIndex++;
16611
16712
  wrapTemplateWithI18n(templateView, i18nBlock);
16612
16713
  }
16613
- propagateI18nBlocksToTemplates(templateView, subTemplateIndex);
16714
+ subTemplateIndex = propagateI18nBlocksToTemplates(templateView, subTemplateIndex);
16614
16715
  }
16615
16716
  }
16717
+ return subTemplateIndex;
16616
16718
  }
16617
16719
  function wrapTemplateWithI18n(unit, parentI18n) {
16618
16720
  var _a2;
@@ -16623,7 +16725,7 @@ function wrapTemplateWithI18n(unit, parentI18n) {
16623
16725
  }
16624
16726
  }
16625
16727
 
16626
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/pure_function_extraction.mjs
16728
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/pure_function_extraction.mjs
16627
16729
  function extractPureFunctions(job) {
16628
16730
  for (const view of job.units) {
16629
16731
  for (const op of view.ops()) {
@@ -16665,7 +16767,7 @@ var PureFunctionConstant = class extends GenericKeyFn {
16665
16767
  }
16666
16768
  };
16667
16769
 
16668
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/pure_literal_structures.mjs
16770
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/pure_literal_structures.mjs
16669
16771
  function generatePureLiteralStructures(job) {
16670
16772
  for (const unit of job.units) {
16671
16773
  for (const op of unit.update) {
@@ -16712,7 +16814,7 @@ function transformLiteralMap(expr) {
16712
16814
  return new PureFunctionExpr(literalMap(derivedEntries), nonConstantArgs);
16713
16815
  }
16714
16816
 
16715
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/instruction.mjs
16817
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/instruction.mjs
16716
16818
  function element(slot, tag, constIndex, localRefIndex, sourceSpan) {
16717
16819
  return elementOrContainerBase(Identifiers.element, slot, tag, constIndex, localRefIndex, sourceSpan);
16718
16820
  }
@@ -16911,8 +17013,8 @@ function repeaterCreate(slot, viewFnName, decls, vars, tag, constIndex, trackByF
16911
17013
  }
16912
17014
  return call(Identifiers.repeaterCreate, args, sourceSpan);
16913
17015
  }
16914
- function repeater(metadataSlot, collection, sourceSpan) {
16915
- return call(Identifiers.repeater, [literal(metadataSlot), collection], sourceSpan);
17016
+ function repeater(collection, sourceSpan) {
17017
+ return call(Identifiers.repeater, [collection], sourceSpan);
16916
17018
  }
16917
17019
  function deferWhen(prefetch, expr, sourceSpan) {
16918
17020
  return call(prefetch ? Identifiers.deferPrefetchWhen : Identifiers.deferWhen, [expr], sourceSpan);
@@ -17223,7 +17325,7 @@ function callVariadicInstruction(config, baseArgs, interpolationArgs, extraArgs,
17223
17325
  return createStatementOp(callVariadicInstructionExpr(config, baseArgs, interpolationArgs, extraArgs, sourceSpan).toStmt());
17224
17326
  }
17225
17327
 
17226
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/reify.mjs
17328
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/reify.mjs
17227
17329
  var sanitizerIdentifierMap = /* @__PURE__ */ new Map([
17228
17330
  [SanitizerFn.Html, Identifiers.sanitizeHtml],
17229
17331
  [SanitizerFn.IframeAttribute, Identifiers.validateIframeAttribute],
@@ -17470,7 +17572,7 @@ function reifyUpdateOperations(_unit, ops) {
17470
17572
  OpList.replace(op, conditional(op.targetSlot.slot, op.processed, op.contextValue, op.sourceSpan));
17471
17573
  break;
17472
17574
  case OpKind.Repeater:
17473
- OpList.replace(op, repeater(op.targetSlot.slot, op.collection, op.sourceSpan));
17575
+ OpList.replace(op, repeater(op.collection, op.sourceSpan));
17474
17576
  break;
17475
17577
  case OpKind.DeferWhen:
17476
17578
  OpList.replace(op, deferWhen(op.prefetch, op.expr, op.sourceSpan));
@@ -17552,7 +17654,7 @@ function reifyListenerHandler(unit, name, handlerOps, consumesDollarEvent) {
17552
17654
  return fn(params, handlerStmts, void 0, void 0, name);
17553
17655
  }
17554
17656
 
17555
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/remove_empty_bindings.mjs
17657
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/remove_empty_bindings.mjs
17556
17658
  function removeEmptyBindings(job) {
17557
17659
  for (const unit of job.units) {
17558
17660
  for (const op of unit.update) {
@@ -17573,7 +17675,7 @@ function removeEmptyBindings(job) {
17573
17675
  }
17574
17676
  }
17575
17677
 
17576
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/remove_i18n_contexts.mjs
17678
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/remove_i18n_contexts.mjs
17577
17679
  function removeI18nContexts(job) {
17578
17680
  for (const unit of job.units) {
17579
17681
  for (const op of unit.create) {
@@ -17589,7 +17691,7 @@ function removeI18nContexts(job) {
17589
17691
  }
17590
17692
  }
17591
17693
 
17592
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/repeater_derived_vars.mjs
17694
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/repeater_derived_vars.mjs
17593
17695
  function generateRepeaterDerivedVars(job) {
17594
17696
  const repeaters = /* @__PURE__ */ new Map();
17595
17697
  for (const unit of job.units) {
@@ -17621,7 +17723,7 @@ function generateRepeaterDerivedVars(job) {
17621
17723
  }
17622
17724
  }
17623
17725
 
17624
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/resolve_contexts.mjs
17726
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/resolve_contexts.mjs
17625
17727
  function resolveContexts(job) {
17626
17728
  for (const unit of job.units) {
17627
17729
  processLexicalScope(unit, unit.create);
@@ -17662,7 +17764,7 @@ function processLexicalScope(view, ops) {
17662
17764
  }
17663
17765
  }
17664
17766
 
17665
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/resolve_dollar_event.mjs
17767
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/resolve_dollar_event.mjs
17666
17768
  function resolveDollarEvent(job) {
17667
17769
  for (const unit of job.units) {
17668
17770
  transformDollarEvent(unit, unit.create);
@@ -17683,7 +17785,7 @@ function transformDollarEvent(unit, ops) {
17683
17785
  }
17684
17786
  }
17685
17787
 
17686
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/resolve_i18n_element_placeholders.mjs
17788
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/resolve_i18n_element_placeholders.mjs
17687
17789
  function resolveI18nElementPlaceholders(job) {
17688
17790
  const i18nContexts = /* @__PURE__ */ new Map();
17689
17791
  const elements = /* @__PURE__ */ new Map();
@@ -17699,55 +17801,67 @@ function resolveI18nElementPlaceholders(job) {
17699
17801
  }
17700
17802
  }
17701
17803
  }
17702
- for (const unit of job.units) {
17703
- let currentOps = null;
17704
- for (const op of unit.create) {
17705
- switch (op.kind) {
17706
- case OpKind.I18nStart:
17707
- if (!op.context) {
17708
- throw Error("Could not find i18n context for i18n op");
17804
+ resolvePlaceholdersForView(job, job.root, i18nContexts, elements);
17805
+ }
17806
+ function resolvePlaceholdersForView(job, unit, i18nContexts, elements) {
17807
+ let currentOps = null;
17808
+ for (const op of unit.create) {
17809
+ switch (op.kind) {
17810
+ case OpKind.I18nStart:
17811
+ if (!op.context) {
17812
+ throw Error("Could not find i18n context for i18n op");
17813
+ }
17814
+ currentOps = { i18nBlock: op, i18nContext: i18nContexts.get(op.context) };
17815
+ break;
17816
+ case OpKind.I18nEnd:
17817
+ currentOps = null;
17818
+ break;
17819
+ case OpKind.ElementStart:
17820
+ if (op.i18nPlaceholder !== void 0) {
17821
+ if (currentOps === null) {
17822
+ throw Error("i18n tag placeholder should only occur inside an i18n block");
17709
17823
  }
17710
- currentOps = { i18nBlock: op, i18nContext: i18nContexts.get(op.context) };
17711
- break;
17712
- case OpKind.I18nEnd:
17713
- currentOps = null;
17714
- break;
17715
- case OpKind.ElementStart:
17716
- if (op.i18nPlaceholder !== void 0) {
17717
- if (currentOps === null) {
17718
- throw Error("i18n tag placeholder should only occur inside an i18n block");
17719
- }
17720
- const { startName, closeName } = op.i18nPlaceholder;
17721
- let flags = I18nParamValueFlags.ElementTag | I18nParamValueFlags.OpenTag;
17722
- if (closeName === "") {
17723
- flags |= I18nParamValueFlags.CloseTag;
17724
- }
17725
- addParam(currentOps.i18nContext.params, startName, op.handle.slot, currentOps.i18nBlock.subTemplateIndex, flags);
17824
+ const { startName, closeName } = op.i18nPlaceholder;
17825
+ let flags = I18nParamValueFlags.ElementTag | I18nParamValueFlags.OpenTag;
17826
+ if (closeName === "") {
17827
+ flags |= I18nParamValueFlags.CloseTag;
17726
17828
  }
17727
- break;
17728
- case OpKind.ElementEnd:
17729
- const startOp = elements.get(op.xref);
17730
- if (startOp && startOp.i18nPlaceholder !== void 0) {
17731
- if (currentOps === null) {
17732
- throw Error("i18n tag placeholder should only occur inside an i18n block");
17733
- }
17734
- const { closeName } = startOp.i18nPlaceholder;
17735
- if (closeName !== "") {
17736
- addParam(currentOps.i18nContext.params, closeName, startOp.handle.slot, currentOps.i18nBlock.subTemplateIndex, I18nParamValueFlags.ElementTag | I18nParamValueFlags.CloseTag);
17737
- }
17829
+ addParam(currentOps.i18nContext.params, startName, op.handle.slot, currentOps.i18nBlock.subTemplateIndex, flags);
17830
+ }
17831
+ break;
17832
+ case OpKind.ElementEnd:
17833
+ const startOp = elements.get(op.xref);
17834
+ if (startOp && startOp.i18nPlaceholder !== void 0) {
17835
+ if (currentOps === null) {
17836
+ throw Error("i18n tag placeholder should only occur inside an i18n block");
17738
17837
  }
17739
- break;
17740
- case OpKind.Template:
17741
- if (op.i18nPlaceholder !== void 0) {
17742
- if (currentOps === null) {
17743
- throw Error("i18n tag placeholder should only occur inside an i18n block");
17744
- }
17745
- const subTemplateIndex = getSubTemplateIndexForTemplateTag(job, currentOps.i18nBlock, op);
17746
- addParam(currentOps.i18nContext.params, op.i18nPlaceholder.startName, op.handle.slot, subTemplateIndex, I18nParamValueFlags.TemplateTag);
17747
- addParam(currentOps.i18nContext.params, op.i18nPlaceholder.closeName, op.handle.slot, subTemplateIndex, I18nParamValueFlags.TemplateTag | I18nParamValueFlags.CloseTag);
17838
+ const { closeName } = startOp.i18nPlaceholder;
17839
+ if (closeName !== "") {
17840
+ addParam(currentOps.i18nContext.params, closeName, startOp.handle.slot, currentOps.i18nBlock.subTemplateIndex, I18nParamValueFlags.ElementTag | I18nParamValueFlags.CloseTag);
17748
17841
  }
17749
- break;
17750
- }
17842
+ }
17843
+ break;
17844
+ case OpKind.Template:
17845
+ if (op.i18nPlaceholder !== void 0) {
17846
+ if (currentOps === null) {
17847
+ throw Error("i18n tag placeholder should only occur inside an i18n block");
17848
+ }
17849
+ let startFlags = I18nParamValueFlags.TemplateTag | I18nParamValueFlags.OpenTag;
17850
+ const subTemplateIndex = getSubTemplateIndexForTemplateTag(job, currentOps.i18nBlock, op);
17851
+ const { startName, closeName } = op.i18nPlaceholder;
17852
+ const isSelfClosing = closeName === "";
17853
+ if (isSelfClosing) {
17854
+ startFlags |= I18nParamValueFlags.CloseTag;
17855
+ }
17856
+ addParam(currentOps.i18nContext.params, startName, op.handle.slot, subTemplateIndex, startFlags);
17857
+ resolvePlaceholdersForView(job, job.views.get(op.xref), i18nContexts, elements);
17858
+ if (!isSelfClosing) {
17859
+ addParam(currentOps.i18nContext.params, closeName, op.handle.slot, subTemplateIndex, I18nParamValueFlags.TemplateTag | I18nParamValueFlags.CloseTag);
17860
+ }
17861
+ } else {
17862
+ resolvePlaceholdersForView(job, job.views.get(op.xref), i18nContexts, elements);
17863
+ }
17864
+ break;
17751
17865
  }
17752
17866
  }
17753
17867
  }
@@ -17766,7 +17880,7 @@ function addParam(params, placeholder, value, subTemplateIndex, flags) {
17766
17880
  params.set(placeholder, values);
17767
17881
  }
17768
17882
 
17769
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/resolve_i18n_expression_placeholders.mjs
17883
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/resolve_i18n_expression_placeholders.mjs
17770
17884
  function resolveI18nExpressionPlaceholders(job) {
17771
17885
  const subTemplateIndicies = /* @__PURE__ */ new Map();
17772
17886
  const i18nContexts = /* @__PURE__ */ new Map();
@@ -17787,8 +17901,8 @@ function resolveI18nExpressionPlaceholders(job) {
17787
17901
  for (const op of unit.update) {
17788
17902
  if (op.kind === OpKind.I18nExpression) {
17789
17903
  const i18nContext = i18nContexts.get(op.context);
17790
- const index = expressionIndices.get(i18nContext.i18nBlock) || 0;
17791
- const subTemplateIndex = subTemplateIndicies.get(i18nContext.i18nBlock);
17904
+ const index = expressionIndices.get(op.target) || 0;
17905
+ const subTemplateIndex = subTemplateIndicies.get(op.target);
17792
17906
  const params = op.resolutionTime === I18nParamResolutionTime.Creation ? i18nContext.params : i18nContext.postprocessingParams;
17793
17907
  const values = params.get(op.i18nPlaceholder) || [];
17794
17908
  values.push({
@@ -17797,36 +17911,20 @@ function resolveI18nExpressionPlaceholders(job) {
17797
17911
  flags: I18nParamValueFlags.ExpressionIndex
17798
17912
  });
17799
17913
  params.set(op.i18nPlaceholder, values);
17800
- expressionIndices.set(i18nContext.i18nBlock, index + 1);
17914
+ expressionIndices.set(op.target, index + 1);
17801
17915
  }
17802
17916
  }
17803
17917
  }
17804
17918
  }
17805
17919
 
17806
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/resolve_i18n_icu_placeholders.mjs
17920
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/resolve_i18n_icu_placeholders.mjs
17807
17921
  function resolveI18nIcuPlaceholders(job) {
17808
- const contextOps = /* @__PURE__ */ new Map();
17809
- for (const unit of job.units) {
17810
- for (const op of unit.create) {
17811
- switch (op.kind) {
17812
- case OpKind.I18nContext:
17813
- contextOps.set(op.xref, op);
17814
- break;
17815
- }
17816
- }
17817
- }
17818
17922
  for (const unit of job.units) {
17819
17923
  for (const op of unit.create) {
17820
- switch (op.kind) {
17821
- case OpKind.IcuStart:
17822
- if (op.context === null) {
17823
- throw Error("Icu should have its i18n context set.");
17824
- }
17825
- const i18nContext = contextOps.get(op.context);
17826
- for (const node of op.message.nodes) {
17827
- node.visit(new ResolveIcuPlaceholdersVisitor(i18nContext.postprocessingParams));
17828
- }
17829
- break;
17924
+ if (op.kind === OpKind.I18nContext && op.contextKind === I18nContextKind.Icu) {
17925
+ for (const node of op.message.nodes) {
17926
+ node.visit(new ResolveIcuPlaceholdersVisitor(op.postprocessingParams));
17927
+ }
17830
17928
  }
17831
17929
  }
17832
17930
  }
@@ -17836,9 +17934,8 @@ var ResolveIcuPlaceholdersVisitor = class extends RecurseVisitor {
17836
17934
  super();
17837
17935
  this.params = params;
17838
17936
  }
17839
- visitTagPlaceholder(placeholder) {
17937
+ visitContainerPlaceholder(placeholder) {
17840
17938
  var _a2, _b2;
17841
- super.visitTagPlaceholder(placeholder);
17842
17939
  if (placeholder.startName && placeholder.startSourceSpan && !this.params.has(placeholder.startName)) {
17843
17940
  this.params.set(placeholder.startName, [{
17844
17941
  value: (_a2 = placeholder.startSourceSpan) == null ? void 0 : _a2.toString(),
@@ -17854,9 +17951,17 @@ var ResolveIcuPlaceholdersVisitor = class extends RecurseVisitor {
17854
17951
  }]);
17855
17952
  }
17856
17953
  }
17954
+ visitTagPlaceholder(placeholder) {
17955
+ super.visitTagPlaceholder(placeholder);
17956
+ this.visitContainerPlaceholder(placeholder);
17957
+ }
17958
+ visitBlockPlaceholder(placeholder) {
17959
+ super.visitBlockPlaceholder(placeholder);
17960
+ this.visitContainerPlaceholder(placeholder);
17961
+ }
17857
17962
  };
17858
17963
 
17859
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/resolve_names.mjs
17964
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/resolve_names.mjs
17860
17965
  function resolveNames(job) {
17861
17966
  for (const unit of job.units) {
17862
17967
  processLexicalScope2(unit, unit.create, null);
@@ -17920,7 +18025,7 @@ function processLexicalScope2(unit, ops, savedView) {
17920
18025
  }
17921
18026
  }
17922
18027
 
17923
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/resolve_sanitizers.mjs
18028
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/resolve_sanitizers.mjs
17924
18029
  var sanitizers = /* @__PURE__ */ new Map([
17925
18030
  [SecurityContext.HTML, SanitizerFn.Html],
17926
18031
  [SecurityContext.SCRIPT, SanitizerFn.Script],
@@ -17957,7 +18062,7 @@ function isIframeElement(op) {
17957
18062
  return op.kind === OpKind.ElementStart && ((_a2 = op.tag) == null ? void 0 : _a2.toLowerCase()) === "iframe";
17958
18063
  }
17959
18064
 
17960
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/save_restore_view.mjs
18065
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/save_restore_view.mjs
17961
18066
  function saveAndRestoreView(job) {
17962
18067
  for (const unit of job.units) {
17963
18068
  unit.create.prepend([
@@ -18002,7 +18107,7 @@ function addSaveRestoreViewOperationToListener(unit, op) {
18002
18107
  }
18003
18108
  }
18004
18109
 
18005
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/slot_allocation.mjs
18110
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/slot_allocation.mjs
18006
18111
  function allocateSlots(job) {
18007
18112
  const slotMap = /* @__PURE__ */ new Map();
18008
18113
  for (const unit of job.units) {
@@ -18027,7 +18132,7 @@ function allocateSlots(job) {
18027
18132
  }
18028
18133
  }
18029
18134
 
18030
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/style_binding_specialization.mjs
18135
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/style_binding_specialization.mjs
18031
18136
  function specializeStyleBindings(job) {
18032
18137
  for (const unit of job.units) {
18033
18138
  for (const op of unit.update) {
@@ -18057,7 +18162,7 @@ function specializeStyleBindings(job) {
18057
18162
  }
18058
18163
  }
18059
18164
 
18060
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/temporary_variables.mjs
18165
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/temporary_variables.mjs
18061
18166
  function generateTemporaryVariables(job) {
18062
18167
  for (const unit of job.units) {
18063
18168
  unit.create.prepend(generateTemporaries(unit.create));
@@ -18115,7 +18220,7 @@ function assignName(names, expr) {
18115
18220
  expr.name = name;
18116
18221
  }
18117
18222
 
18118
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/track_fn_generation.mjs
18223
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/track_fn_generation.mjs
18119
18224
  function generateTrackFns(job) {
18120
18225
  for (const unit of job.units) {
18121
18226
  for (const op of unit.create) {
@@ -18145,7 +18250,7 @@ function generateTrackFns(job) {
18145
18250
  }
18146
18251
  }
18147
18252
 
18148
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/track_fn_optimization.mjs
18253
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/track_fn_optimization.mjs
18149
18254
  function optimizeTrackFns(job) {
18150
18255
  for (const unit of job.units) {
18151
18256
  for (const op of unit.create) {
@@ -18192,7 +18297,7 @@ function isTrackByFunctionCall(rootView, expr) {
18192
18297
  return true;
18193
18298
  }
18194
18299
 
18195
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/track_variables.mjs
18300
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/track_variables.mjs
18196
18301
  function generateTrackVariables(job) {
18197
18302
  for (const unit of job.units) {
18198
18303
  for (const op of unit.create) {
@@ -18213,7 +18318,7 @@ function generateTrackVariables(job) {
18213
18318
  }
18214
18319
  }
18215
18320
 
18216
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/var_counting.mjs
18321
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/var_counting.mjs
18217
18322
  function countVariables(job) {
18218
18323
  for (const unit of job.units) {
18219
18324
  let varCount = 0;
@@ -18318,7 +18423,7 @@ function isSingletonInterpolation(expr) {
18318
18423
  return true;
18319
18424
  }
18320
18425
 
18321
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/variable_optimization.mjs
18426
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/variable_optimization.mjs
18322
18427
  function optimizeVariables(job) {
18323
18428
  for (const unit of job.units) {
18324
18429
  inlineAlwaysInlineVariables(unit.create);
@@ -18568,7 +18673,7 @@ function allowConservativeInlining(decl, target) {
18568
18673
  }
18569
18674
  }
18570
18675
 
18571
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/wrap_icus.mjs
18676
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/wrap_icus.mjs
18572
18677
  function wrapI18nIcus(job) {
18573
18678
  for (const unit of job.units) {
18574
18679
  let currentI18nOp = null;
@@ -18598,7 +18703,7 @@ function wrapI18nIcus(job) {
18598
18703
  }
18599
18704
  }
18600
18705
 
18601
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/emit.mjs
18706
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/emit.mjs
18602
18707
  var phases = [
18603
18708
  { kind: CompilationJobKind.Tmpl, fn: removeContentSelectors },
18604
18709
  { kind: CompilationJobKind.Host, fn: parseHostStyleProperties },
@@ -18641,7 +18746,6 @@ var phases = [
18641
18746
  { kind: CompilationJobKind.Tmpl, fn: resolveI18nElementPlaceholders },
18642
18747
  { kind: CompilationJobKind.Tmpl, fn: resolveI18nExpressionPlaceholders },
18643
18748
  { kind: CompilationJobKind.Tmpl, fn: resolveI18nIcuPlaceholders },
18644
- { kind: CompilationJobKind.Tmpl, fn: mergeI18nContexts },
18645
18749
  { kind: CompilationJobKind.Tmpl, fn: extractI18nMessages },
18646
18750
  { kind: CompilationJobKind.Tmpl, fn: generateTrackFns },
18647
18751
  { kind: CompilationJobKind.Tmpl, fn: collectI18nConsts },
@@ -18763,7 +18867,7 @@ function emitHostBindingFunction(job) {
18763
18867
  );
18764
18868
  }
18765
18869
 
18766
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/ingest.mjs
18870
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/ingest.mjs
18767
18871
  var compatibilityMode = CompatibilityMode.TemplateDefinitionBuilder;
18768
18872
  function ingestComponent(componentName, template2, constantPool, relativeContextFilePath, i18nUseExternalIds, deferBlocksMeta) {
18769
18873
  const job = new ComponentCompilationJob(componentName, constantPool, compatibilityMode, relativeContextFilePath, i18nUseExternalIds, deferBlocksMeta);
@@ -19344,10 +19448,10 @@ function ingestControlFlowInsertionPoint(unit, xref, node) {
19344
19448
  return null;
19345
19449
  }
19346
19450
 
19347
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/switch/index.mjs
19451
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/switch/index.mjs
19348
19452
  var USE_TEMPLATE_PIPELINE = false;
19349
19453
 
19350
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/render3/view/styling_builder.mjs
19454
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/render3/view/styling_builder.mjs
19351
19455
  var IMPORTANT_FLAG = "!important";
19352
19456
  var MIN_STYLING_BINDING_SLOTS_REQUIRED = 2;
19353
19457
  var StylingBuilder = class {
@@ -19680,7 +19784,7 @@ function isEmptyExpression(ast) {
19680
19784
  return ast instanceof EmptyExpr;
19681
19785
  }
19682
19786
 
19683
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/ml_parser/html_parser.mjs
19787
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/ml_parser/html_parser.mjs
19684
19788
  var HtmlParser = class extends Parser2 {
19685
19789
  constructor() {
19686
19790
  super(getHtmlTagDefinition);
@@ -19690,7 +19794,7 @@ var HtmlParser = class extends Parser2 {
19690
19794
  }
19691
19795
  };
19692
19796
 
19693
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/ml_parser/html_whitespaces.mjs
19797
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/ml_parser/html_whitespaces.mjs
19694
19798
  var PRESERVE_WS_ATTR_NAME = "ngPreserveWhitespaces";
19695
19799
  var SKIP_WS_TRIM_TAGS = /* @__PURE__ */ new Set(["pre", "template", "textarea", "script", "style"]);
19696
19800
  var WS_CHARS = " \f\n\r \v\u1680\u180E\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF";
@@ -19756,7 +19860,7 @@ function visitAllWithSiblings(visitor, nodes) {
19756
19860
  return result;
19757
19861
  }
19758
19862
 
19759
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/template_parser/binding_parser.mjs
19863
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template_parser/binding_parser.mjs
19760
19864
  var PROPERTY_PARTS_SEPARATOR = ".";
19761
19865
  var ATTRIBUTE_PREFIX = "attr";
19762
19866
  var CLASS_PREFIX = "class";
@@ -20076,7 +20180,7 @@ function moveParseSourceSpan(sourceSpan, absoluteSpan) {
20076
20180
  return new ParseSourceSpan(sourceSpan.start.moveBy(startDiff), sourceSpan.end.moveBy(endDiff), sourceSpan.fullStart.moveBy(startDiff), sourceSpan.details);
20077
20181
  }
20078
20182
 
20079
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/style_url_resolver.mjs
20183
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/style_url_resolver.mjs
20080
20184
  function isStyleUrlResolvable(url) {
20081
20185
  if (url == null || url.length === 0 || url[0] == "/")
20082
20186
  return false;
@@ -20085,7 +20189,7 @@ function isStyleUrlResolvable(url) {
20085
20189
  }
20086
20190
  var URL_WITH_SCHEMA_REGEXP = /^([^:/?#]+):/;
20087
20191
 
20088
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/template_parser/template_preparser.mjs
20192
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template_parser/template_preparser.mjs
20089
20193
  var NG_CONTENT_SELECT_ATTR = "select";
20090
20194
  var LINK_ELEMENT = "link";
20091
20195
  var LINK_STYLE_REL_ATTR = "rel";
@@ -20155,7 +20259,7 @@ function normalizeNgContentSelect(selectAttr) {
20155
20259
  return selectAttr;
20156
20260
  }
20157
20261
 
20158
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/render3/r3_control_flow.mjs
20262
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/render3/r3_control_flow.mjs
20159
20263
  var FOR_LOOP_EXPRESSION_PATTERN = /^\s*([0-9A-Za-z_$]*)\s+of\s+([\S\s]*)/;
20160
20264
  var FOR_LOOP_TRACK_PATTERN = /^track\s+([\S\s]*)/;
20161
20265
  var CONDITIONAL_ALIAS_PATTERN = /^as\s+(.*)/;
@@ -20173,18 +20277,18 @@ function createIfBlock(ast, connectedBlocks, visitor, bindingParser) {
20173
20277
  const branches = [];
20174
20278
  const mainBlockParams = parseConditionalBlockParameters(ast, errors, bindingParser);
20175
20279
  if (mainBlockParams !== null) {
20176
- branches.push(new IfBlockBranch(mainBlockParams.expression, visitAll2(visitor, ast.children, ast.children), mainBlockParams.expressionAlias, ast.sourceSpan, ast.startSourceSpan, ast.endSourceSpan, ast.nameSpan));
20280
+ branches.push(new IfBlockBranch(mainBlockParams.expression, visitAll2(visitor, ast.children, ast.children), mainBlockParams.expressionAlias, ast.sourceSpan, ast.startSourceSpan, ast.endSourceSpan, ast.nameSpan, ast.i18n));
20177
20281
  }
20178
20282
  for (const block of connectedBlocks) {
20179
20283
  if (ELSE_IF_PATTERN.test(block.name)) {
20180
20284
  const params = parseConditionalBlockParameters(block, errors, bindingParser);
20181
20285
  if (params !== null) {
20182
20286
  const children = visitAll2(visitor, block.children, block.children);
20183
- branches.push(new IfBlockBranch(params.expression, children, params.expressionAlias, block.sourceSpan, block.startSourceSpan, block.endSourceSpan, block.nameSpan));
20287
+ branches.push(new IfBlockBranch(params.expression, children, params.expressionAlias, block.sourceSpan, block.startSourceSpan, block.endSourceSpan, block.nameSpan, block.i18n));
20184
20288
  }
20185
20289
  } else if (block.name === "else") {
20186
20290
  const children = visitAll2(visitor, block.children, block.children);
20187
- branches.push(new IfBlockBranch(null, children, null, block.sourceSpan, block.startSourceSpan, block.endSourceSpan, block.nameSpan));
20291
+ branches.push(new IfBlockBranch(null, children, null, block.sourceSpan, block.startSourceSpan, block.endSourceSpan, block.nameSpan, block.i18n));
20188
20292
  }
20189
20293
  }
20190
20294
  const ifBlockStartSourceSpan = branches.length > 0 ? branches[0].startSourceSpan : ast.startSourceSpan;
@@ -20212,7 +20316,7 @@ function createForLoop(ast, connectedBlocks, visitor, bindingParser) {
20212
20316
  } else if (block.parameters.length > 0) {
20213
20317
  errors.push(new ParseError(block.sourceSpan, "@empty block cannot have parameters"));
20214
20318
  } else {
20215
- empty = new ForLoopBlockEmpty(visitAll2(visitor, block.children, block.children), block.sourceSpan, block.startSourceSpan, block.endSourceSpan, block.nameSpan);
20319
+ empty = new ForLoopBlockEmpty(visitAll2(visitor, block.children, block.children), block.sourceSpan, block.startSourceSpan, block.endSourceSpan, block.nameSpan, block.i18n);
20216
20320
  }
20217
20321
  } else {
20218
20322
  errors.push(new ParseError(block.sourceSpan, `Unrecognized @for loop block "${block.name}"`));
@@ -20224,7 +20328,7 @@ function createForLoop(ast, connectedBlocks, visitor, bindingParser) {
20224
20328
  } else {
20225
20329
  const endSpan = (_a2 = empty == null ? void 0 : empty.endSourceSpan) != null ? _a2 : ast.endSourceSpan;
20226
20330
  const sourceSpan = new ParseSourceSpan(ast.sourceSpan.start, (_b2 = endSpan == null ? void 0 : endSpan.end) != null ? _b2 : ast.sourceSpan.end);
20227
- node = new ForLoopBlock(params.itemName, params.expression, params.trackBy.expression, params.trackBy.keywordSpan, params.context, visitAll2(visitor, ast.children, ast.children), empty, sourceSpan, ast.sourceSpan, ast.startSourceSpan, endSpan, ast.nameSpan);
20331
+ node = new ForLoopBlock(params.itemName, params.expression, params.trackBy.expression, params.trackBy.keywordSpan, params.context, visitAll2(visitor, ast.children, ast.children), empty, sourceSpan, ast.sourceSpan, ast.startSourceSpan, endSpan, ast.nameSpan, ast.i18n);
20228
20332
  }
20229
20333
  }
20230
20334
  return { node, errors };
@@ -20244,7 +20348,7 @@ function createSwitchBlock(ast, visitor, bindingParser) {
20244
20348
  continue;
20245
20349
  }
20246
20350
  const expression = node.name === "case" ? parseBlockParameterToBinding(node.parameters[0], bindingParser) : null;
20247
- const ast2 = new SwitchBlockCase(expression, visitAll2(visitor, node.children, node.children), node.sourceSpan, node.startSourceSpan, node.endSourceSpan, node.nameSpan);
20351
+ const ast2 = new SwitchBlockCase(expression, visitAll2(visitor, node.children, node.children), node.sourceSpan, node.startSourceSpan, node.endSourceSpan, node.nameSpan, node.i18n);
20248
20352
  if (expression === null) {
20249
20353
  defaultCase = ast2;
20250
20354
  } else {
@@ -20446,7 +20550,7 @@ function stripOptionalParentheses(param, errors) {
20446
20550
  return expression.slice(start, end);
20447
20551
  }
20448
20552
 
20449
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/render3/r3_deferred_triggers.mjs
20553
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/render3/r3_deferred_triggers.mjs
20450
20554
  var TIME_PATTERN = /^\d+\.?\d*(ms|s)?$/;
20451
20555
  var SEPARATOR_PATTERN = /^\s$/;
20452
20556
  var COMMA_DELIMITED_SYNTAX = /* @__PURE__ */ new Map([
@@ -20710,7 +20814,7 @@ function parseDeferredTime(value) {
20710
20814
  return parseFloat(time) * (units === "s" ? 1e3 : 1);
20711
20815
  }
20712
20816
 
20713
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/render3/r3_deferred_blocks.mjs
20817
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/render3/r3_deferred_blocks.mjs
20714
20818
  var PREFETCH_WHEN_PATTERN = /^prefetch\s+when\s/;
20715
20819
  var PREFETCH_ON_PATTERN = /^prefetch\s+on\s/;
20716
20820
  var MINIMUM_PARAMETER_PATTERN = /^minimum\s/;
@@ -20732,7 +20836,7 @@ function createDeferredBlock(ast, connectedBlocks, visitor, bindingParser) {
20732
20836
  endOfLastSourceSpan = lastConnectedBlock.sourceSpan.end;
20733
20837
  }
20734
20838
  const sourceSpanWithConnectedBlocks = new ParseSourceSpan(ast.sourceSpan.start, endOfLastSourceSpan);
20735
- const node = new DeferredBlock(visitAll2(visitor, ast.children, ast.children), triggers, prefetchTriggers, placeholder, loading, error2, ast.nameSpan, sourceSpanWithConnectedBlocks, ast.sourceSpan, ast.startSourceSpan, lastEndSourceSpan);
20839
+ const node = new DeferredBlock(visitAll2(visitor, ast.children, ast.children), triggers, prefetchTriggers, placeholder, loading, error2, ast.nameSpan, sourceSpanWithConnectedBlocks, ast.sourceSpan, ast.startSourceSpan, lastEndSourceSpan, ast.i18n);
20736
20840
  return { node, errors };
20737
20841
  }
20738
20842
  function parseConnectedBlocks(connectedBlocks, errors, visitor) {
@@ -20790,7 +20894,7 @@ function parsePlaceholderBlock(ast, visitor) {
20790
20894
  throw new Error(`Unrecognized parameter in @placeholder block: "${param.expression}"`);
20791
20895
  }
20792
20896
  }
20793
- return new DeferredBlockPlaceholder(visitAll2(visitor, ast.children, ast.children), minimumTime, ast.nameSpan, ast.sourceSpan, ast.startSourceSpan, ast.endSourceSpan);
20897
+ return new DeferredBlockPlaceholder(visitAll2(visitor, ast.children, ast.children), minimumTime, ast.nameSpan, ast.sourceSpan, ast.startSourceSpan, ast.endSourceSpan, ast.i18n);
20794
20898
  }
20795
20899
  function parseLoadingBlock(ast, visitor) {
20796
20900
  let afterTime = null;
@@ -20818,13 +20922,13 @@ function parseLoadingBlock(ast, visitor) {
20818
20922
  throw new Error(`Unrecognized parameter in @loading block: "${param.expression}"`);
20819
20923
  }
20820
20924
  }
20821
- return new DeferredBlockLoading(visitAll2(visitor, ast.children, ast.children), afterTime, minimumTime, ast.nameSpan, ast.sourceSpan, ast.startSourceSpan, ast.endSourceSpan);
20925
+ return new DeferredBlockLoading(visitAll2(visitor, ast.children, ast.children), afterTime, minimumTime, ast.nameSpan, ast.sourceSpan, ast.startSourceSpan, ast.endSourceSpan, ast.i18n);
20822
20926
  }
20823
20927
  function parseErrorBlock(ast, visitor) {
20824
20928
  if (ast.parameters.length > 0) {
20825
20929
  throw new Error(`@error block cannot have parameters`);
20826
20930
  }
20827
- return new DeferredBlockError(visitAll2(visitor, ast.children, ast.children), ast.nameSpan, ast.sourceSpan, ast.startSourceSpan, ast.endSourceSpan);
20931
+ return new DeferredBlockError(visitAll2(visitor, ast.children, ast.children), ast.nameSpan, ast.sourceSpan, ast.startSourceSpan, ast.endSourceSpan, ast.i18n);
20828
20932
  }
20829
20933
  function parsePrimaryTriggers(params, bindingParser, errors, placeholder) {
20830
20934
  const triggers = {};
@@ -20845,7 +20949,7 @@ function parsePrimaryTriggers(params, bindingParser, errors, placeholder) {
20845
20949
  return { triggers, prefetchTriggers };
20846
20950
  }
20847
20951
 
20848
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/render3/r3_template_transform.mjs
20952
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/render3/r3_template_transform.mjs
20849
20953
  var BIND_NAME_REGEXP = /^(?:(bind-)|(let-)|(ref-|#)|(on-)|(bindon-)|(@))(.*)$/;
20850
20954
  var KW_BIND_IDX = 1;
20851
20955
  var KW_LET_IDX = 2;
@@ -21276,7 +21380,7 @@ function textContents(node) {
21276
21380
  }
21277
21381
  }
21278
21382
 
21279
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/render3/view/i18n/context.mjs
21383
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/render3/view/i18n/context.mjs
21280
21384
  var TagType;
21281
21385
  (function(TagType2) {
21282
21386
  TagType2[TagType2["ELEMENT"] = 0] = "ELEMENT";
@@ -21308,6 +21412,11 @@ var I18nContext = class {
21308
21412
  const content = { type, index, ctx: this.id, isVoid: node.isVoid, closed };
21309
21413
  updatePlaceholderMap(this.placeholders, ph, content);
21310
21414
  }
21415
+ appendBlockPart(node, index, closed) {
21416
+ const ph = closed ? node.closeName : node.startName;
21417
+ const content = { type: TagType.TEMPLATE, index, ctx: this.id, closed };
21418
+ updatePlaceholderMap(this.placeholders, ph, content);
21419
+ }
21311
21420
  get icus() {
21312
21421
  return this._registry.icus;
21313
21422
  }
@@ -21337,6 +21446,11 @@ var I18nContext = class {
21337
21446
  this.appendTag(TagType.TEMPLATE, node, index, true);
21338
21447
  this._unresolvedCtxCount++;
21339
21448
  }
21449
+ appendBlock(node, index) {
21450
+ this.appendBlockPart(node, index, false);
21451
+ this.appendBlockPart(node, index, true);
21452
+ this._unresolvedCtxCount++;
21453
+ }
21340
21454
  appendElement(node, index, closed) {
21341
21455
  this.appendTag(TagType.ELEMENT, node, index, closed);
21342
21456
  }
@@ -21411,7 +21525,7 @@ function serializePlaceholderValue(value) {
21411
21525
  }
21412
21526
  }
21413
21527
 
21414
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/render3/view/template.mjs
21528
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/render3/view/template.mjs
21415
21529
  var NG_CONTENT_SELECT_ATTR2 = "select";
21416
21530
  var NG_PROJECT_AS_ATTR_NAME = "ngProjectAs";
21417
21531
  var EVENT_BINDING_SCOPE_GLOBALS = /* @__PURE__ */ new Set(["$event"]);
@@ -21532,12 +21646,18 @@ var TemplateDefinitionBuilder = class {
21532
21646
  this.creationInstruction(null, Identifiers.pipe, [literal(slot), literal(name)]);
21533
21647
  });
21534
21648
  }
21535
- buildTemplateFunction(nodes, variables, ngContentSelectorsOffset = 0, i18n2) {
21649
+ buildTemplateFunction(nodes, variables, ngContentSelectorsOffset = 0, i18n2, variableAliases) {
21536
21650
  this._ngContentSelectorsOffset = ngContentSelectorsOffset;
21537
21651
  if (this._namespace !== Identifiers.namespaceHTML) {
21538
21652
  this.creationInstruction(null, this._namespace);
21539
21653
  }
21540
- variables.forEach((v) => this.registerContextVariables(v));
21654
+ variables.forEach((v) => {
21655
+ const alias = variableAliases == null ? void 0 : variableAliases[v.name];
21656
+ this.registerContextVariables(v.name, v.value);
21657
+ if (alias) {
21658
+ this.registerContextVariables(alias, v.value);
21659
+ }
21660
+ });
21541
21661
  const initI18nContext = this.i18nContext || isI18nRootNode(i18n2) && !isSingleI18nIcu(i18n2) && !(isSingleElementTemplate(nodes) && nodes[0].i18n === i18n2);
21542
21662
  const selfClosingI18nInstruction = hasTextChildrenOnly(nodes);
21543
21663
  if (initI18nContext) {
@@ -21592,12 +21712,12 @@ var TemplateDefinitionBuilder = class {
21592
21712
  this._constants.prepareStatements.push(...statements);
21593
21713
  return _ref;
21594
21714
  }
21595
- registerContextVariables(variable2) {
21715
+ registerContextVariables(name, value) {
21596
21716
  const scopedName = this._bindingScope.freshReferenceName();
21597
21717
  const retrievalLevel = this.level;
21598
- const isDirect = variable2.value === DIRECT_CONTEXT_REFERENCE;
21599
- const lhs = variable(variable2.name + scopedName);
21600
- this._bindingScope.set(retrievalLevel, variable2.name, (scope) => {
21718
+ const isDirect = value === DIRECT_CONTEXT_REFERENCE;
21719
+ const lhs = variable(name + scopedName);
21720
+ this._bindingScope.set(retrievalLevel, name, (scope) => {
21601
21721
  return isDirect && scope.bindingLevel === retrievalLevel && !scope.isListenerScope() ? variable(CONTEXT_NAME) : lhs;
21602
21722
  }, 1, (scope, relativeLevel) => {
21603
21723
  let rhs;
@@ -21615,7 +21735,7 @@ var TemplateDefinitionBuilder = class {
21615
21735
  rhs = sharedCtxVar ? sharedCtxVar : generateNextContextExpr(relativeLevel);
21616
21736
  }
21617
21737
  return [
21618
- lhs.set(isDirect ? rhs : rhs.prop(variable2.value || IMPLICIT_REFERENCE)).toConstDecl()
21738
+ lhs.set(isDirect ? rhs : rhs.prop(value || IMPLICIT_REFERENCE)).toConstDecl()
21619
21739
  ];
21620
21740
  });
21621
21741
  }
@@ -21954,16 +22074,20 @@ var TemplateDefinitionBuilder = class {
21954
22074
  this.creationInstruction(span, isNgContainer2 ? Identifiers.elementContainerEnd : Identifiers.elementEnd);
21955
22075
  }
21956
22076
  }
21957
- prepareEmbeddedTemplateFn(children, contextNameSuffix, variables = [], i18n2) {
22077
+ prepareEmbeddedTemplateFn(children, contextNameSuffix, variables = [], i18nMeta, variableAliases) {
21958
22078
  const index = this.allocateDataSlot();
21959
- if (this.i18n && i18n2) {
21960
- this.i18n.appendTemplate(i18n2, index);
22079
+ if (this.i18n && i18nMeta) {
22080
+ if (i18nMeta instanceof BlockPlaceholder) {
22081
+ this.i18n.appendBlock(i18nMeta, index);
22082
+ } else {
22083
+ this.i18n.appendTemplate(i18nMeta, index);
22084
+ }
21961
22085
  }
21962
22086
  const contextName = `${this.contextName}${contextNameSuffix}_${index}`;
21963
22087
  const name = `${contextName}_Template`;
21964
22088
  const visitor = new TemplateDefinitionBuilder(this.constantPool, this._bindingScope, this.level + 1, contextName, this.i18n, index, name, this._namespace, this.fileBasedI18nSuffix, this.i18nUseExternalIds, this.deferBlocks, this.elementLocations, this._constants);
21965
22089
  this._nestedTemplateFns.push(() => {
21966
- const templateFunctionExpr = visitor.buildTemplateFunction(children, variables, this._ngContentReservedSlots.length + this._ngContentSelectorsOffset, i18n2);
22090
+ const templateFunctionExpr = visitor.buildTemplateFunction(children, variables, this._ngContentReservedSlots.length + this._ngContentSelectorsOffset, i18nMeta, variableAliases);
21967
22091
  this.constantPool.statements.push(templateFunctionExpr.toDeclStmt(name));
21968
22092
  if (visitor._ngContentReservedSlots.length) {
21969
22093
  this._ngContentReservedSlots.push(...visitor._ngContentReservedSlots);
@@ -22073,7 +22197,7 @@ var TemplateDefinitionBuilder = class {
22073
22197
  tagName = inferredData.tagName;
22074
22198
  attrsExprs = inferredData.attrsExprs;
22075
22199
  }
22076
- const templateIndex = this.createEmbeddedTemplateFn(tagName, children, "_Conditional", sourceSpan, variables, attrsExprs);
22200
+ const templateIndex = this.createEmbeddedTemplateFn(tagName, children, "_Conditional", sourceSpan, variables, attrsExprs, void 0, branch.i18n);
22077
22201
  const processedExpression = expression === null ? null : expression.visit(this._valueConverter);
22078
22202
  return { index: templateIndex, expression: processedExpression, alias: expressionAlias };
22079
22203
  });
@@ -22107,7 +22231,7 @@ var TemplateDefinitionBuilder = class {
22107
22231
  }
22108
22232
  visitSwitchBlock(block) {
22109
22233
  const caseData = block.cases.map((currentCase) => {
22110
- const index = this.createEmbeddedTemplateFn(null, currentCase.children, "_Case", currentCase.sourceSpan);
22234
+ const index = this.createEmbeddedTemplateFn(null, currentCase.children, "_Case", currentCase.sourceSpan, void 0, void 0, void 0, currentCase.i18n);
22111
22235
  const expression = currentCase.expression === null ? null : currentCase.expression.visit(this._valueConverter);
22112
22236
  return { index, expression };
22113
22237
  });
@@ -22135,12 +22259,12 @@ var TemplateDefinitionBuilder = class {
22135
22259
  if (!metadata) {
22136
22260
  throw new Error("Could not resolve `defer` block metadata. Block may need to be analyzed.");
22137
22261
  }
22138
- const primaryTemplateIndex = this.createEmbeddedTemplateFn(null, deferred.children, "_Defer", deferred.sourceSpan);
22139
- const loadingIndex = loading ? this.createEmbeddedTemplateFn(null, loading.children, "_DeferLoading", loading.sourceSpan) : null;
22262
+ const primaryTemplateIndex = this.createEmbeddedTemplateFn(null, deferred.children, "_Defer", deferred.sourceSpan, void 0, void 0, void 0, deferred.i18n);
22263
+ const loadingIndex = loading ? this.createEmbeddedTemplateFn(null, loading.children, "_DeferLoading", loading.sourceSpan, void 0, void 0, void 0, loading.i18n) : null;
22140
22264
  const loadingConsts = loading ? trimTrailingNulls([literal(loading.minimumTime), literal(loading.afterTime)]) : null;
22141
- const placeholderIndex = placeholder ? this.createEmbeddedTemplateFn(null, placeholder.children, "_DeferPlaceholder", placeholder.sourceSpan) : null;
22265
+ const placeholderIndex = placeholder ? this.createEmbeddedTemplateFn(null, placeholder.children, "_DeferPlaceholder", placeholder.sourceSpan, void 0, void 0, void 0, placeholder.i18n) : null;
22142
22266
  const placeholderConsts = placeholder && placeholder.minimumTime !== null ? literalArr([literal(placeholder.minimumTime)]) : null;
22143
- const errorIndex = error2 ? this.createEmbeddedTemplateFn(null, error2.children, "_DeferError", error2.sourceSpan) : null;
22267
+ const errorIndex = error2 ? this.createEmbeddedTemplateFn(null, error2.children, "_DeferError", error2.sourceSpan, void 0, void 0, void 0, error2.i18n) : null;
22144
22268
  const deferredIndex = this.allocateDataSlot();
22145
22269
  const depsFnName = `${this.contextName}_Defer_${deferredIndex}_DepsFn`;
22146
22270
  this.creationInstruction(deferred.sourceSpan, Identifiers.defer, trimTrailingNulls([
@@ -22249,11 +22373,14 @@ var TemplateDefinitionBuilder = class {
22249
22373
  visitForLoopBlock(block) {
22250
22374
  const blockIndex = this.allocateDataSlot();
22251
22375
  const { tagName, attrsExprs } = this.inferProjectionDataFromInsertionPoint(block);
22252
- const primaryData = this.prepareEmbeddedTemplateFn(block.children, "_For", [block.item, block.contextVariables.$index, block.contextVariables.$count]);
22376
+ const primaryData = this.prepareEmbeddedTemplateFn(block.children, "_For", [block.item, block.contextVariables.$index, block.contextVariables.$count], block.i18n, {
22377
+ [block.contextVariables.$index.name]: this.getLevelSpecificVariableName("$index", this.level + 1),
22378
+ [block.contextVariables.$count.name]: this.getLevelSpecificVariableName("$count", this.level + 1)
22379
+ });
22253
22380
  const { expression: trackByExpression, usesComponentInstance: trackByUsesComponentInstance } = this.createTrackByFunction(block);
22254
22381
  let emptyData = null;
22255
22382
  if (block.empty !== null) {
22256
- emptyData = this.prepareEmbeddedTemplateFn(block.empty.children, "_ForEmpty");
22383
+ emptyData = this.prepareEmbeddedTemplateFn(block.empty.children, "_ForEmpty", void 0, block.empty.i18n);
22257
22384
  this.allocateBindingSlots(null);
22258
22385
  }
22259
22386
  this.registerComputedLoopVariables(block, primaryData.scope);
@@ -22275,16 +22402,31 @@ var TemplateDefinitionBuilder = class {
22275
22402
  return params;
22276
22403
  });
22277
22404
  const value = block.expression.visit(this._valueConverter);
22278
- this.updateInstruction(block.sourceSpan, Identifiers.repeater, () => [literal(blockIndex), this.convertPropertyBinding(value)]);
22405
+ this.updateInstructionWithAdvance(blockIndex, block.sourceSpan, Identifiers.repeater, () => [this.convertPropertyBinding(value)]);
22279
22406
  }
22280
22407
  registerComputedLoopVariables(block, bindingScope) {
22281
- const indexLocalName = block.contextVariables.$index.name;
22282
- const countLocalName = block.contextVariables.$count.name;
22283
22408
  const level = bindingScope.bindingLevel;
22284
- bindingScope.set(level, block.contextVariables.$odd.name, (scope) => scope.get(indexLocalName).modulo(literal(2)).notIdentical(literal(0)));
22285
- bindingScope.set(level, block.contextVariables.$even.name, (scope) => scope.get(indexLocalName).modulo(literal(2)).identical(literal(0)));
22286
- bindingScope.set(level, block.contextVariables.$first.name, (scope) => scope.get(indexLocalName).identical(literal(0)));
22287
- bindingScope.set(level, block.contextVariables.$last.name, (scope) => scope.get(indexLocalName).identical(scope.get(countLocalName).minus(literal(1))));
22409
+ bindingScope.set(level, block.contextVariables.$odd.name, (scope, retrievalLevel) => {
22410
+ return this.getLevelSpecificForLoopVariable(block, scope, retrievalLevel, "$index").modulo(literal(2)).notIdentical(literal(0));
22411
+ });
22412
+ bindingScope.set(level, block.contextVariables.$even.name, (scope, retrievalLevel) => {
22413
+ return this.getLevelSpecificForLoopVariable(block, scope, retrievalLevel, "$index").modulo(literal(2)).identical(literal(0));
22414
+ });
22415
+ bindingScope.set(level, block.contextVariables.$first.name, (scope, retrievalLevel) => {
22416
+ return this.getLevelSpecificForLoopVariable(block, scope, retrievalLevel, "$index").identical(literal(0));
22417
+ });
22418
+ bindingScope.set(level, block.contextVariables.$last.name, (scope, retrievalLevel) => {
22419
+ const index = this.getLevelSpecificForLoopVariable(block, scope, retrievalLevel, "$index");
22420
+ const count = this.getLevelSpecificForLoopVariable(block, scope, retrievalLevel, "$count");
22421
+ return index.identical(count.minus(literal(1)));
22422
+ });
22423
+ }
22424
+ getLevelSpecificVariableName(name, level) {
22425
+ return `\u0275${name}_${level}`;
22426
+ }
22427
+ getLevelSpecificForLoopVariable(block, scope, retrievalLevel, name) {
22428
+ const scopeName = scope.bindingLevel === retrievalLevel ? block.contextVariables[name].name : this.getLevelSpecificVariableName(name, retrievalLevel);
22429
+ return scope.get(scopeName);
22288
22430
  }
22289
22431
  optimizeTrackByFunction(block) {
22290
22432
  const indexLocalName = block.contextVariables.$index.name;
@@ -22694,7 +22836,7 @@ var BindingScope = class {
22694
22836
  if (value.declareLocalCallback && !value.declare) {
22695
22837
  value.declare = true;
22696
22838
  }
22697
- return typeof value.lhs === "function" ? value.lhs(this) : value.lhs;
22839
+ return typeof value.lhs === "function" ? value.lhs(this, value.retrievalLevel) : value.lhs;
22698
22840
  }
22699
22841
  current = current.parent;
22700
22842
  }
@@ -22770,7 +22912,7 @@ var BindingScope = class {
22770
22912
  const componentValue = this.map.get(SHARED_CONTEXT_KEY + 0);
22771
22913
  componentValue.declare = true;
22772
22914
  this.maybeRestoreView();
22773
- const lhs = typeof componentValue.lhs === "function" ? componentValue.lhs(this) : componentValue.lhs;
22915
+ const lhs = typeof componentValue.lhs === "function" ? componentValue.lhs(this, componentValue.retrievalLevel) : componentValue.lhs;
22774
22916
  return name === DIRECT_CONTEXT_REFERENCE ? lhs : lhs.prop(name);
22775
22917
  }
22776
22918
  maybeRestoreView() {
@@ -23075,7 +23217,7 @@ function createClosureModeGuard2() {
23075
23217
  return typeofExpr(variable(NG_I18N_CLOSURE_MODE2)).notIdentical(literal("undefined", STRING_TYPE)).and(variable(NG_I18N_CLOSURE_MODE2));
23076
23218
  }
23077
23219
 
23078
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/render3/view/compiler.mjs
23220
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/render3/view/compiler.mjs
23079
23221
  var ATTR_REGEX = /attr\.([^\]]+)/;
23080
23222
  var COMPONENT_VARIABLE = "%COMP%";
23081
23223
  var HOST_ATTR = `_nghost-${COMPONENT_VARIABLE}`;
@@ -23126,6 +23268,9 @@ function addFeatures(definitionMap, meta) {
23126
23268
  break;
23127
23269
  }
23128
23270
  }
23271
+ if ((_a2 = meta.hostDirectives) == null ? void 0 : _a2.length) {
23272
+ features.push(importExpr(Identifiers.HostDirectivesFeature).callFn([createHostDirectivesFeatureArg(meta.hostDirectives)]));
23273
+ }
23129
23274
  if (meta.usesInheritance) {
23130
23275
  features.push(importExpr(Identifiers.InheritDefinitionFeature));
23131
23276
  }
@@ -23138,9 +23283,6 @@ function addFeatures(definitionMap, meta) {
23138
23283
  if (meta.hasOwnProperty("template") && meta.isStandalone) {
23139
23284
  features.push(importExpr(Identifiers.StandaloneFeature));
23140
23285
  }
23141
- if ((_a2 = meta.hostDirectives) == null ? void 0 : _a2.length) {
23142
- features.push(importExpr(Identifiers.HostDirectivesFeature).callFn([createHostDirectivesFeatureArg(meta.hostDirectives)]));
23143
- }
23144
23286
  if (features.length) {
23145
23287
  definitionMap.set("features", literalArr(features));
23146
23288
  }
@@ -23677,7 +23819,7 @@ function createHostDirectivesMappingArray(mapping) {
23677
23819
  return elements.length > 0 ? literalArr(elements) : null;
23678
23820
  }
23679
23821
 
23680
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/render3/view/t2_binder.mjs
23822
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/render3/view/t2_binder.mjs
23681
23823
  var R3TargetBinder = class {
23682
23824
  constructor(directiveMatcher) {
23683
23825
  this.directiveMatcher = directiveMatcher;
@@ -24282,11 +24424,11 @@ function extractScopedNodeEntities(rootScope) {
24282
24424
  return templateEntities;
24283
24425
  }
24284
24426
 
24285
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/resource_loader.mjs
24427
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/resource_loader.mjs
24286
24428
  var ResourceLoader = class {
24287
24429
  };
24288
24430
 
24289
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/jit_compiler_facade.mjs
24431
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/jit_compiler_facade.mjs
24290
24432
  var CompilerFacadeImpl = class {
24291
24433
  constructor(jitEvaluator = new JitEvaluator()) {
24292
24434
  this.jitEvaluator = jitEvaluator;
@@ -24838,17 +24980,17 @@ function publishFacade(global) {
24838
24980
  ng.\u0275compilerFacade = new CompilerFacadeImpl();
24839
24981
  }
24840
24982
 
24841
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/version.mjs
24842
- var VERSION2 = new Version("17.0.3");
24983
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/version.mjs
24984
+ var VERSION2 = new Version("17.0.5");
24843
24985
 
24844
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/i18n/extractor_merger.mjs
24986
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/i18n/extractor_merger.mjs
24845
24987
  var _VisitorMode;
24846
24988
  (function(_VisitorMode2) {
24847
24989
  _VisitorMode2[_VisitorMode2["Extract"] = 0] = "Extract";
24848
24990
  _VisitorMode2[_VisitorMode2["Merge"] = 1] = "Merge";
24849
24991
  })(_VisitorMode || (_VisitorMode = {}));
24850
24992
 
24851
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/ml_parser/xml_tags.mjs
24993
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/ml_parser/xml_tags.mjs
24852
24994
  var XmlTagDefinition = class {
24853
24995
  constructor() {
24854
24996
  this.closedByParent = false;
@@ -24870,7 +25012,7 @@ var XmlTagDefinition = class {
24870
25012
  };
24871
25013
  var _TAG_DEFINITION = new XmlTagDefinition();
24872
25014
 
24873
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/render3/partial/api.mjs
25015
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/render3/partial/api.mjs
24874
25016
  var FactoryTarget2;
24875
25017
  (function(FactoryTarget3) {
24876
25018
  FactoryTarget3[FactoryTarget3["Directive"] = 0] = "Directive";
@@ -24880,10 +25022,10 @@ var FactoryTarget2;
24880
25022
  FactoryTarget3[FactoryTarget3["NgModule"] = 4] = "NgModule";
24881
25023
  })(FactoryTarget2 || (FactoryTarget2 = {}));
24882
25024
 
24883
- // bazel-out/k8-fastbuild/bin/packages/compiler/src/compiler.mjs
25025
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/compiler.mjs
24884
25026
  publishFacade(_global);
24885
25027
 
24886
- // bazel-out/k8-fastbuild/bin/packages/core/schematics/migrations/block-template-entities/util.mjs
25028
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/core/schematics/migrations/block-template-entities/util.mjs
24887
25029
  var import_path2 = require("path");
24888
25030
  var import_typescript3 = __toESM(require("typescript"), 1);
24889
25031
  var REPLACEMENTS2 = {
@@ -24991,7 +25133,7 @@ function forEachClass(sourceFile, callback) {
24991
25133
  });
24992
25134
  }
24993
25135
 
24994
- // bazel-out/k8-fastbuild/bin/packages/core/schematics/migrations/block-template-entities/index.mjs
25136
+ // bazel-out/darwin_arm64-fastbuild/bin/packages/core/schematics/migrations/block-template-entities/index.mjs
24995
25137
  function block_template_entities_default() {
24996
25138
  return (tree) => __async(this, null, function* () {
24997
25139
  const { buildPaths, testPaths } = yield getProjectTsConfigPaths(tree);