@angular/core 17.0.0-rc.2 → 17.0.0-rc.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/esm2022/primitives/signals/src/signal.mjs +8 -4
  2. package/esm2022/src/core_private_export.mjs +2 -1
  3. package/esm2022/src/core_reactivity_export_internal.mjs +1 -1
  4. package/esm2022/src/defer/instructions.mjs +3 -2
  5. package/esm2022/src/hydration/api.mjs +3 -2
  6. package/esm2022/src/render3/after_render_hooks.mjs +4 -3
  7. package/esm2022/src/render3/debug/framework_injector_profiler.mjs +13 -4
  8. package/esm2022/src/render3/features/standalone_feature.mjs +3 -2
  9. package/esm2022/src/render3/instructions/change_detection.mjs +2 -5
  10. package/esm2022/src/render3/instructions/control_flow.mjs +4 -3
  11. package/esm2022/src/render3/node_manipulation.mjs +2 -2
  12. package/esm2022/src/render3/reactivity/effect.mjs +3 -1
  13. package/esm2022/src/render3/util/injector_discovery_utils.mjs +2 -2
  14. package/esm2022/src/util/performance.mjs +19 -0
  15. package/esm2022/src/version.mjs +1 -1
  16. package/esm2022/testing/src/logger.mjs +3 -3
  17. package/fesm2022/core.mjs +46 -26
  18. package/fesm2022/core.mjs.map +1 -1
  19. package/fesm2022/primitives/signals.mjs +8 -4
  20. package/fesm2022/primitives/signals.mjs.map +1 -1
  21. package/fesm2022/rxjs-interop.mjs +1 -1
  22. package/fesm2022/testing.mjs +1 -1
  23. package/index.d.ts +22 -2
  24. package/package.json +1 -1
  25. package/primitives/signals/index.d.ts +1 -1
  26. package/rxjs-interop/index.d.ts +1 -1
  27. package/schematics/migrations/block-template-entities/bundle.js +617 -404
  28. package/schematics/migrations/block-template-entities/bundle.js.map +4 -4
  29. package/schematics/migrations/compiler-options/bundle.js +13 -13
  30. package/schematics/migrations/transfer-state/bundle.js +13 -13
  31. package/schematics/ng-generate/control-flow-migration/bundle.js +667 -414
  32. package/schematics/ng-generate/control-flow-migration/bundle.js.map +4 -4
  33. package/schematics/ng-generate/standalone-migration/bundle.js +873 -660
  34. package/schematics/ng-generate/standalone-migration/bundle.js.map +4 -4
  35. package/testing/index.d.ts +1 -1
  36. package/esm2022/src/render3/instructions/change_detection_flags.mjs +0 -12
@@ -63,7 +63,7 @@ var __async = (__this, __arguments, generator) => {
63
63
  });
64
64
  };
65
65
 
66
- // bazel-out/darwin_arm64-fastbuild/bin/packages/core/schematics/migrations/block-template-entities/index.mjs
66
+ // bazel-out/k8-fastbuild/bin/packages/core/schematics/migrations/block-template-entities/index.mjs
67
67
  var block_template_entities_exports = {};
68
68
  __export(block_template_entities_exports, {
69
69
  default: () => block_template_entities_default
@@ -72,7 +72,7 @@ module.exports = __toCommonJS(block_template_entities_exports);
72
72
  var import_schematics = require("@angular-devkit/schematics");
73
73
  var import_path3 = require("path");
74
74
 
75
- // bazel-out/darwin_arm64-fastbuild/bin/packages/core/schematics/utils/project_tsconfig_paths.mjs
75
+ // bazel-out/k8-fastbuild/bin/packages/core/schematics/utils/project_tsconfig_paths.mjs
76
76
  var import_core = require("@angular-devkit/core");
77
77
  function getProjectTsConfigPaths(tree) {
78
78
  return __async(this, null, function* () {
@@ -152,11 +152,11 @@ function getWorkspace(tree) {
152
152
  });
153
153
  }
154
154
 
155
- // bazel-out/darwin_arm64-fastbuild/bin/packages/core/schematics/utils/typescript/compiler_host.mjs
155
+ // bazel-out/k8-fastbuild/bin/packages/core/schematics/utils/typescript/compiler_host.mjs
156
156
  var import_path = require("path");
157
157
  var import_typescript2 = __toESM(require("typescript"), 1);
158
158
 
159
- // bazel-out/darwin_arm64-fastbuild/bin/packages/core/schematics/utils/typescript/parse_tsconfig.mjs
159
+ // bazel-out/k8-fastbuild/bin/packages/core/schematics/utils/typescript/parse_tsconfig.mjs
160
160
  var path = __toESM(require("path"), 1);
161
161
  var import_typescript = __toESM(require("typescript"), 1);
162
162
  function parseTsconfigFile(tsconfigPath, basePath) {
@@ -173,7 +173,7 @@ function parseTsconfigFile(tsconfigPath, basePath) {
173
173
  return import_typescript.default.parseJsonConfigFileContent(config, parseConfigHost, basePath, {});
174
174
  }
175
175
 
176
- // bazel-out/darwin_arm64-fastbuild/bin/packages/core/schematics/utils/typescript/compiler_host.mjs
176
+ // bazel-out/k8-fastbuild/bin/packages/core/schematics/utils/typescript/compiler_host.mjs
177
177
  function createMigrationProgram(tree, tsconfigPath, basePath, fakeFileRead, additionalFiles) {
178
178
  const { rootNames, options, host } = createProgramOptions(tree, tsconfigPath, basePath, fakeFileRead, additionalFiles);
179
179
  return import_typescript2.default.createProgram(rootNames, options, host);
@@ -206,7 +206,7 @@ function canMigrateFile(basePath, sourceFile, program) {
206
206
  return !(0, import_path.relative)(basePath, sourceFile.fileName).startsWith("..");
207
207
  }
208
208
 
209
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/selector.mjs
209
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/selector.mjs
210
210
  var _SELECTOR_REGEXP = new RegExp(
211
211
  `(\\:not\\()|(([\\.\\#]?)[-\\w]+)|(?:\\[([-.\\w*\\\\$]+)(?:=(["']?)([^\\]"']*)\\5)?\\])|(\\))|(\\s*,\\s*)`,
212
212
  "g"
@@ -514,7 +514,7 @@ var SelectorContext = class {
514
514
  }
515
515
  };
516
516
 
517
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/core.mjs
517
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/core.mjs
518
518
  var ViewEncapsulation;
519
519
  (function(ViewEncapsulation2) {
520
520
  ViewEncapsulation2[ViewEncapsulation2["Emulated"] = 0] = "Emulated";
@@ -576,7 +576,7 @@ function parseSelectorToR3Selector(selector) {
576
576
  return selector ? CssSelector.parse(selector).map(parserSelectorToR3Selector) : [];
577
577
  }
578
578
 
579
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/i18n/digest.mjs
579
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/i18n/digest.mjs
580
580
  var textEncoder;
581
581
  function computeDigest(message) {
582
582
  return sha1(serializeNodes(message.nodes).join("") + `[${message.meaning}]`);
@@ -813,7 +813,7 @@ function wordAt(bytes, index, endian) {
813
813
  return word;
814
814
  }
815
815
 
816
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/output/output_ast.mjs
816
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/output/output_ast.mjs
817
817
  var TypeModifier;
818
818
  (function(TypeModifier2) {
819
819
  TypeModifier2[TypeModifier2["None"] = 0] = "None";
@@ -1768,7 +1768,7 @@ function serializeTags(tags) {
1768
1768
  return out;
1769
1769
  }
1770
1770
 
1771
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/constant_pool.mjs
1771
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/constant_pool.mjs
1772
1772
  var CONSTANT_PREFIX = "_c";
1773
1773
  var UNKNOWN_VALUE_KEY = variable("<unknown>");
1774
1774
  var KEY_CONTEXT = {};
@@ -1951,7 +1951,7 @@ function isLongStringLiteral(expr) {
1951
1951
  return expr instanceof LiteralExpr && typeof expr.value === "string" && expr.value.length >= POOL_INCLUSION_LENGTH_THRESHOLD_FOR_STRINGS;
1952
1952
  }
1953
1953
 
1954
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/render3/r3_identifiers.mjs
1954
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/render3/r3_identifiers.mjs
1955
1955
  var CORE = "@angular/core";
1956
1956
  var _Identifiers = class {
1957
1957
  };
@@ -2584,7 +2584,7 @@ var Identifiers = _Identifiers;
2584
2584
  _Identifiers.validateIframeAttribute = { name: "\u0275\u0275validateIframeAttribute", moduleName: CORE };
2585
2585
  })();
2586
2586
 
2587
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/util.mjs
2587
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/util.mjs
2588
2588
  var DASH_CASE_REGEXP = /-+([a-z0-9])/g;
2589
2589
  function dashCaseToCamelCase(input) {
2590
2590
  return input.replace(DASH_CASE_REGEXP, (...m) => m[1].toUpperCase());
@@ -2672,7 +2672,7 @@ function partitionArray(arr, conditionFn) {
2672
2672
  return [truthy, falsy];
2673
2673
  }
2674
2674
 
2675
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/output/source_map.mjs
2675
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/output/source_map.mjs
2676
2676
  var VERSION = 3;
2677
2677
  var JS_B64_PREFIX = "# sourceMappingURL=data:application/json;base64,";
2678
2678
  var SourceMapGenerator = class {
@@ -2801,7 +2801,7 @@ function toBase64Digit(value) {
2801
2801
  return B64_DIGITS[value];
2802
2802
  }
2803
2803
 
2804
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/output/abstract_emitter.mjs
2804
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/output/abstract_emitter.mjs
2805
2805
  var _SINGLE_QUOTE_ESCAPE_STRING_RE = /'|\\|\n|\r|\$/g;
2806
2806
  var _LEGAL_IDENTIFIER_RE = /^[$A-Z_][0-9A-Z_$]*$/i;
2807
2807
  var _INDENT_WITH = " ";
@@ -3286,7 +3286,7 @@ function _createIndent(count) {
3286
3286
  return res;
3287
3287
  }
3288
3288
 
3289
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/render3/util.mjs
3289
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/render3/util.mjs
3290
3290
  function typeWithParameters(type, numParams) {
3291
3291
  if (numParams === 0) {
3292
3292
  return expressionType(type);
@@ -3351,7 +3351,7 @@ function generateForwardRef(expr) {
3351
3351
  return importExpr(Identifiers.forwardRef).callFn([arrowFn([], expr)]);
3352
3352
  }
3353
3353
 
3354
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/render3/r3_factory.mjs
3354
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/render3/r3_factory.mjs
3355
3355
  var R3FactoryDelegateType;
3356
3356
  (function(R3FactoryDelegateType2) {
3357
3357
  R3FactoryDelegateType2[R3FactoryDelegateType2["Class"] = 0] = "Class";
@@ -3496,7 +3496,7 @@ function getInjectFn(target) {
3496
3496
  }
3497
3497
  }
3498
3498
 
3499
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/render3/r3_ast.mjs
3499
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/render3/r3_ast.mjs
3500
3500
  var Comment = class {
3501
3501
  constructor(value, sourceSpan) {
3502
3502
  this.value = value;
@@ -3869,7 +3869,7 @@ function visitAll(visitor, nodes) {
3869
3869
  return result;
3870
3870
  }
3871
3871
 
3872
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/i18n/i18n_ast.mjs
3872
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/i18n/i18n_ast.mjs
3873
3873
  var Message = class {
3874
3874
  constructor(nodes, placeholders, placeholderToMessage, meaning, description, customId) {
3875
3875
  this.nodes = nodes;
@@ -3988,7 +3988,7 @@ var LocalizeMessageStringVisitor = class {
3988
3988
  }
3989
3989
  };
3990
3990
 
3991
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/i18n/serializers/xml_helper.mjs
3991
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/i18n/serializers/xml_helper.mjs
3992
3992
  var _Visitor = class {
3993
3993
  visitTag(tag) {
3994
3994
  const strAttrs = this._serializeAttributes(tag.attrs);
@@ -4016,12 +4016,12 @@ ${doctype.dtd}
4016
4016
  };
4017
4017
  var _visitor = new _Visitor();
4018
4018
 
4019
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/i18n/serializers/xmb.mjs
4019
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/i18n/serializers/xmb.mjs
4020
4020
  function toPublicName(internalName) {
4021
4021
  return internalName.toUpperCase().replace(/[^A-Z0-9_]/g, "_");
4022
4022
  }
4023
4023
 
4024
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/render3/view/i18n/util.mjs
4024
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/render3/view/i18n/util.mjs
4025
4025
  var CLOSURE_TRANSLATION_VAR_PREFIX = "MSG_";
4026
4026
  var TRANSLATION_VAR_PREFIX = "i18n_";
4027
4027
  var I18N_ATTR = "i18n";
@@ -4123,7 +4123,7 @@ function declareI18nVariable(variable2) {
4123
4123
  return new DeclareVarStmt(variable2.name, void 0, INFERRED_TYPE, void 0, variable2.sourceSpan);
4124
4124
  }
4125
4125
 
4126
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/render3/view/util.mjs
4126
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/render3/view/util.mjs
4127
4127
  var UNSAFE_OBJECT_KEY_NAME_REGEXP = /[-.]/;
4128
4128
  var TEMPORARY_NAME = "_t";
4129
4129
  var CONTEXT_NAME = "ctx";
@@ -4346,7 +4346,7 @@ function getInstructionStatements(instructions) {
4346
4346
  return statements;
4347
4347
  }
4348
4348
 
4349
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/injectable_compiler_2.mjs
4349
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/injectable_compiler_2.mjs
4350
4350
  function compileInjectable(meta, resolveForwardRefs) {
4351
4351
  let result = null;
4352
4352
  const factoryMeta = {
@@ -4431,7 +4431,7 @@ function createFactoryFunction(type) {
4431
4431
  return arrowFn([new FnParam("t", DYNAMIC_TYPE)], type.prop("\u0275fac").callFn([variable("t")]));
4432
4432
  }
4433
4433
 
4434
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/assertions.mjs
4434
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/assertions.mjs
4435
4435
  var UNUSABLE_INTERPOLATION_REGEXPS = [
4436
4436
  /^\s*$/,
4437
4437
  /[<>]/,
@@ -4453,7 +4453,7 @@ function assertInterpolationSymbols(identifier, value) {
4453
4453
  }
4454
4454
  }
4455
4455
 
4456
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/ml_parser/interpolation_config.mjs
4456
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/ml_parser/interpolation_config.mjs
4457
4457
  var InterpolationConfig = class {
4458
4458
  static fromArray(markers) {
4459
4459
  if (!markers) {
@@ -4469,7 +4469,7 @@ var InterpolationConfig = class {
4469
4469
  };
4470
4470
  var DEFAULT_INTERPOLATION_CONFIG = new InterpolationConfig("{{", "}}");
4471
4471
 
4472
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/chars.mjs
4472
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/chars.mjs
4473
4473
  var $EOF = 0;
4474
4474
  var $BSPACE = 8;
4475
4475
  var $TAB = 9;
@@ -4551,7 +4551,7 @@ function isQuote(code) {
4551
4551
  return code === $SQ || code === $DQ || code === $BT;
4552
4552
  }
4553
4553
 
4554
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/parse_util.mjs
4554
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/parse_util.mjs
4555
4555
  var ParseLocation = class {
4556
4556
  constructor(file, offset, line, col) {
4557
4557
  this.file = file;
@@ -4698,7 +4698,7 @@ function sanitizeIdentifier(name) {
4698
4698
  return name.replace(/\W/g, "_");
4699
4699
  }
4700
4700
 
4701
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/output/abstract_js_emitter.mjs
4701
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/output/abstract_js_emitter.mjs
4702
4702
  var makeTemplateObjectPolyfill = '(this&&this.__makeTemplateObject||function(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e})';
4703
4703
  var AbstractJsEmitterVisitor = class extends AbstractEmitterVisitor {
4704
4704
  constructor() {
@@ -4791,7 +4791,7 @@ var AbstractJsEmitterVisitor = class extends AbstractEmitterVisitor {
4791
4791
  }
4792
4792
  };
4793
4793
 
4794
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/output/output_jit_trusted_types.mjs
4794
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/output/output_jit_trusted_types.mjs
4795
4795
  var policy;
4796
4796
  function getPolicy() {
4797
4797
  if (policy === void 0) {
@@ -4829,7 +4829,7 @@ function newTrustedFunctionForJIT(...args) {
4829
4829
  return fn2.bind(_global);
4830
4830
  }
4831
4831
 
4832
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/output/output_jit.mjs
4832
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/output/output_jit.mjs
4833
4833
  var JitEvaluator = class {
4834
4834
  evaluateStatements(sourceUrl, statements, refResolver, createSourceMaps) {
4835
4835
  const converter = new JitEmitterVisitor(refResolver);
@@ -4920,7 +4920,7 @@ function isUseStrictStatement(statement) {
4920
4920
  return statement.isEquivalent(literal("use strict").toStmt());
4921
4921
  }
4922
4922
 
4923
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/render3/r3_injector_compiler.mjs
4923
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/render3/r3_injector_compiler.mjs
4924
4924
  function compileInjector(meta) {
4925
4925
  const definitionMap = new DefinitionMap();
4926
4926
  if (meta.providers !== null) {
@@ -4937,7 +4937,7 @@ function createInjectorType(meta) {
4937
4937
  return new ExpressionType(importExpr(Identifiers.InjectorDeclaration, [new ExpressionType(meta.type.type)]));
4938
4938
  }
4939
4939
 
4940
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/render3/r3_jit.mjs
4940
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/render3/r3_jit.mjs
4941
4941
  var R3JitReflector = class {
4942
4942
  constructor(context) {
4943
4943
  this.context = context;
@@ -4953,7 +4953,7 @@ var R3JitReflector = class {
4953
4953
  }
4954
4954
  };
4955
4955
 
4956
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/render3/r3_module_compiler.mjs
4956
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/render3/r3_module_compiler.mjs
4957
4957
  var R3SelectorScopeMode;
4958
4958
  (function(R3SelectorScopeMode2) {
4959
4959
  R3SelectorScopeMode2[R3SelectorScopeMode2["Inline"] = 0] = "Inline";
@@ -5094,7 +5094,7 @@ function tupleOfTypes(types) {
5094
5094
  return types.length > 0 ? expressionType(literalArr(typeofTypes)) : NONE_TYPE;
5095
5095
  }
5096
5096
 
5097
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/render3/r3_pipe_compiler.mjs
5097
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/render3/r3_pipe_compiler.mjs
5098
5098
  function compilePipeFromMetadata(metadata) {
5099
5099
  const definitionMapValues = [];
5100
5100
  definitionMapValues.push({ key: "name", value: literal(metadata.pipeName), quoted: false });
@@ -5115,7 +5115,7 @@ function createPipeType(metadata) {
5115
5115
  ]));
5116
5116
  }
5117
5117
 
5118
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/render3/view/api.mjs
5118
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/render3/view/api.mjs
5119
5119
  var R3TemplateDependencyKind;
5120
5120
  (function(R3TemplateDependencyKind2) {
5121
5121
  R3TemplateDependencyKind2[R3TemplateDependencyKind2["Directive"] = 0] = "Directive";
@@ -5123,7 +5123,7 @@ var R3TemplateDependencyKind;
5123
5123
  R3TemplateDependencyKind2[R3TemplateDependencyKind2["NgModule"] = 2] = "NgModule";
5124
5124
  })(R3TemplateDependencyKind || (R3TemplateDependencyKind = {}));
5125
5125
 
5126
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/expression_parser/ast.mjs
5126
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/expression_parser/ast.mjs
5127
5127
  var ParserError = class {
5128
5128
  constructor(message, input, errLocation, ctxLocation) {
5129
5129
  this.input = input;
@@ -5789,7 +5789,7 @@ var BoundElementProperty = class {
5789
5789
  }
5790
5790
  };
5791
5791
 
5792
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/compiler_util/expression_converter.mjs
5792
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/compiler_util/expression_converter.mjs
5793
5793
  var _EventHandlerVars = class {
5794
5794
  };
5795
5795
  var EventHandlerVars = _EventHandlerVars;
@@ -6430,7 +6430,7 @@ var BuiltinFunctionCall = class extends Call {
6430
6430
  }
6431
6431
  };
6432
6432
 
6433
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/schema/dom_security_schema.mjs
6433
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/schema/dom_security_schema.mjs
6434
6434
  var _SECURITY_SCHEMA;
6435
6435
  function SECURITY_SCHEMA() {
6436
6436
  if (!_SECURITY_SCHEMA) {
@@ -6488,7 +6488,7 @@ function isIframeSecuritySensitiveAttr(attrName) {
6488
6488
  return IFRAME_SECURITY_SENSITIVE_ATTRS.has(attrName.toLowerCase());
6489
6489
  }
6490
6490
 
6491
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/shadow_css.mjs
6491
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/shadow_css.mjs
6492
6492
  var animationKeywords = /* @__PURE__ */ new Set([
6493
6493
  "inherit",
6494
6494
  "initial",
@@ -6959,7 +6959,7 @@ function repeatGroups(groups, multiples) {
6959
6959
  }
6960
6960
  }
6961
6961
 
6962
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/ir/src/enums.mjs
6962
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/ir/src/enums.mjs
6963
6963
  var OpKind;
6964
6964
  (function(OpKind2) {
6965
6965
  OpKind2[OpKind2["ListEnd"] = 0] = "ListEnd";
@@ -6990,20 +6990,22 @@ var OpKind;
6990
6990
  OpKind2[OpKind2["ExtractedAttribute"] = 25] = "ExtractedAttribute";
6991
6991
  OpKind2[OpKind2["Defer"] = 26] = "Defer";
6992
6992
  OpKind2[OpKind2["DeferOn"] = 27] = "DeferOn";
6993
- OpKind2[OpKind2["ExtractedMessage"] = 28] = "ExtractedMessage";
6994
- OpKind2[OpKind2["HostProperty"] = 29] = "HostProperty";
6995
- OpKind2[OpKind2["Namespace"] = 30] = "Namespace";
6996
- OpKind2[OpKind2["ProjectionDef"] = 31] = "ProjectionDef";
6997
- OpKind2[OpKind2["Projection"] = 32] = "Projection";
6998
- OpKind2[OpKind2["RepeaterCreate"] = 33] = "RepeaterCreate";
6999
- OpKind2[OpKind2["Repeater"] = 34] = "Repeater";
7000
- OpKind2[OpKind2["I18nStart"] = 35] = "I18nStart";
7001
- OpKind2[OpKind2["I18n"] = 36] = "I18n";
7002
- OpKind2[OpKind2["I18nEnd"] = 37] = "I18nEnd";
7003
- OpKind2[OpKind2["I18nExpression"] = 38] = "I18nExpression";
7004
- OpKind2[OpKind2["I18nApply"] = 39] = "I18nApply";
7005
- OpKind2[OpKind2["Icu"] = 40] = "Icu";
7006
- OpKind2[OpKind2["IcuUpdate"] = 41] = "IcuUpdate";
6993
+ OpKind2[OpKind2["DeferWhen"] = 28] = "DeferWhen";
6994
+ OpKind2[OpKind2["I18nMessage"] = 29] = "I18nMessage";
6995
+ OpKind2[OpKind2["HostProperty"] = 30] = "HostProperty";
6996
+ OpKind2[OpKind2["Namespace"] = 31] = "Namespace";
6997
+ OpKind2[OpKind2["ProjectionDef"] = 32] = "ProjectionDef";
6998
+ OpKind2[OpKind2["Projection"] = 33] = "Projection";
6999
+ OpKind2[OpKind2["RepeaterCreate"] = 34] = "RepeaterCreate";
7000
+ OpKind2[OpKind2["Repeater"] = 35] = "Repeater";
7001
+ OpKind2[OpKind2["I18nStart"] = 36] = "I18nStart";
7002
+ OpKind2[OpKind2["I18n"] = 37] = "I18n";
7003
+ OpKind2[OpKind2["I18nEnd"] = 38] = "I18nEnd";
7004
+ OpKind2[OpKind2["I18nExpression"] = 39] = "I18nExpression";
7005
+ OpKind2[OpKind2["I18nApply"] = 40] = "I18nApply";
7006
+ OpKind2[OpKind2["Icu"] = 41] = "Icu";
7007
+ OpKind2[OpKind2["IcuUpdate"] = 42] = "IcuUpdate";
7008
+ OpKind2[OpKind2["I18nContext"] = 43] = "I18nContext";
7007
7009
  })(OpKind || (OpKind = {}));
7008
7010
  var ExpressionKind;
7009
7011
  (function(ExpressionKind2) {
@@ -7111,7 +7113,7 @@ var DerivedRepeaterVarIdentity;
7111
7113
  DerivedRepeaterVarIdentity2[DerivedRepeaterVarIdentity2["Odd"] = 3] = "Odd";
7112
7114
  })(DerivedRepeaterVarIdentity || (DerivedRepeaterVarIdentity = {}));
7113
7115
 
7114
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/ir/src/traits.mjs
7116
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/ir/src/traits.mjs
7115
7117
  var ConsumesSlot = Symbol("ConsumesSlot");
7116
7118
  var DependsOnSlotContext = Symbol("DependsOnSlotContext");
7117
7119
  var ConsumesVarsTrait = Symbol("ConsumesVars");
@@ -7143,7 +7145,7 @@ function hasUsesVarOffsetTrait(expr) {
7143
7145
  return expr[UsesVarOffset] === true;
7144
7146
  }
7145
7147
 
7146
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/ir/src/ops/shared.mjs
7148
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/ir/src/ops/shared.mjs
7147
7149
  function createStatementOp(statement) {
7148
7150
  return __spreadValues({
7149
7151
  kind: OpKind.Statement,
@@ -7165,7 +7167,7 @@ var NEW_OP = {
7165
7167
  next: null
7166
7168
  };
7167
7169
 
7168
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/ir/src/ops/update.mjs
7170
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/ir/src/ops/update.mjs
7169
7171
  function createInterpolateTextOp(xref, interpolation, i18nPlaceholders, sourceSpan) {
7170
7172
  return __spreadValues(__spreadValues(__spreadValues({
7171
7173
  kind: OpKind.InterpolateText,
@@ -7284,23 +7286,32 @@ function createRepeaterOp(repeaterCreate2, targetSlot, collection, sourceSpan) {
7284
7286
  sourceSpan
7285
7287
  }, NEW_OP);
7286
7288
  }
7287
- function createI18nExpressionOp(owner, ownerSlot, expression, i18nPlaceholder, resolutionTime, sourceSpan) {
7289
+ function createDeferWhenOp(target, expr, prefetch, sourceSpan) {
7290
+ return __spreadValues(__spreadValues({
7291
+ kind: OpKind.DeferWhen,
7292
+ target,
7293
+ expr,
7294
+ prefetch,
7295
+ sourceSpan
7296
+ }, NEW_OP), TRAIT_DEPENDS_ON_SLOT_CONTEXT);
7297
+ }
7298
+ function createI18nExpressionOp(context, target, handle, expression, i18nPlaceholder, resolutionTime, sourceSpan) {
7288
7299
  return __spreadValues(__spreadValues(__spreadValues({
7289
7300
  kind: OpKind.I18nExpression,
7290
- owner,
7291
- ownerSlot,
7292
- target: owner,
7301
+ context,
7302
+ target,
7303
+ handle,
7293
7304
  expression,
7294
7305
  i18nPlaceholder,
7295
7306
  resolutionTime,
7296
7307
  sourceSpan
7297
7308
  }, NEW_OP), TRAIT_CONSUMES_VARS), TRAIT_DEPENDS_ON_SLOT_CONTEXT);
7298
7309
  }
7299
- function createI18nApplyOp(target, targetSlot, sourceSpan) {
7310
+ function createI18nApplyOp(target, handle, sourceSpan) {
7300
7311
  return __spreadValues({
7301
7312
  kind: OpKind.I18nApply,
7302
7313
  target,
7303
- targetSlot,
7314
+ handle,
7304
7315
  sourceSpan
7305
7316
  }, NEW_OP);
7306
7317
  }
@@ -7312,7 +7323,7 @@ function createIcuUpdateOp(xref, sourceSpan) {
7312
7323
  }, NEW_OP);
7313
7324
  }
7314
7325
 
7315
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/ir/src/expression.mjs
7326
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/ir/src/expression.mjs
7316
7327
  var _a;
7317
7328
  var _b;
7318
7329
  var _c;
@@ -8048,6 +8059,17 @@ function transformExpressionsInOp(op, transform2, flags) {
8048
8059
  op.placeholderConfig = transformExpressionsInExpression(op.placeholderConfig, transform2, flags);
8049
8060
  }
8050
8061
  break;
8062
+ case OpKind.I18nMessage:
8063
+ for (const [placeholder, expr] of op.params) {
8064
+ op.params.set(placeholder, transformExpressionsInExpression(expr, transform2, flags));
8065
+ }
8066
+ for (const [placeholder, expr] of op.postprocessingParams) {
8067
+ op.postprocessingParams.set(placeholder, transformExpressionsInExpression(expr, transform2, flags));
8068
+ }
8069
+ break;
8070
+ case OpKind.DeferWhen:
8071
+ op.expr = transformExpressionsInExpression(op.expr, transform2, flags);
8072
+ break;
8051
8073
  case OpKind.Advance:
8052
8074
  case OpKind.Container:
8053
8075
  case OpKind.ContainerEnd:
@@ -8058,9 +8080,9 @@ function transformExpressionsInOp(op, transform2, flags) {
8058
8080
  case OpKind.ElementEnd:
8059
8081
  case OpKind.ElementStart:
8060
8082
  case OpKind.EnableBindings:
8061
- case OpKind.ExtractedMessage:
8062
8083
  case OpKind.I18n:
8063
8084
  case OpKind.I18nApply:
8085
+ case OpKind.I18nContext:
8064
8086
  case OpKind.I18nEnd:
8065
8087
  case OpKind.I18nStart:
8066
8088
  case OpKind.Icu:
@@ -8152,7 +8174,7 @@ function isStringLiteral(expr) {
8152
8174
  return expr instanceof LiteralExpr && typeof expr.value === "string";
8153
8175
  }
8154
8176
 
8155
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/ir/src/operations.mjs
8177
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/ir/src/operations.mjs
8156
8178
  var _OpList = class {
8157
8179
  constructor() {
8158
8180
  this.debugListId = _OpList.nextListId++;
@@ -8343,14 +8365,14 @@ var OpList = _OpList;
8343
8365
  _OpList.nextListId = 0;
8344
8366
  })();
8345
8367
 
8346
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/ir/src/handle.mjs
8368
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/ir/src/handle.mjs
8347
8369
  var SlotHandle = class {
8348
8370
  constructor() {
8349
8371
  this.slot = null;
8350
8372
  }
8351
8373
  };
8352
8374
 
8353
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/ir/src/ops/create.mjs
8375
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/ir/src/ops/create.mjs
8354
8376
  var elementContainerOpKinds = /* @__PURE__ */ new Set([
8355
8377
  OpKind.Element,
8356
8378
  OpKind.ElementStart,
@@ -8501,7 +8523,7 @@ function createExtractedAttributeOp(target, bindingKind, name, expression) {
8501
8523
  expression
8502
8524
  }, NEW_OP);
8503
8525
  }
8504
- function createDeferOp(xref, main, mainSlot, sourceSpan) {
8526
+ function createDeferOp(xref, main, mainSlot, metadata, sourceSpan) {
8505
8527
  return __spreadProps(__spreadValues(__spreadValues({
8506
8528
  kind: OpKind.Defer,
8507
8529
  xref,
@@ -8519,6 +8541,8 @@ function createDeferOp(xref, main, mainSlot, sourceSpan) {
8519
8541
  placeholderMinimumTime: null,
8520
8542
  errorView: null,
8521
8543
  errorSlot: null,
8544
+ metadata,
8545
+ resolverFn: null,
8522
8546
  sourceSpan
8523
8547
  }, NEW_OP), TRAIT_CONSUMES_SLOT), {
8524
8548
  numSlotsUsed: 2
@@ -8533,17 +8557,17 @@ function createDeferOnOp(defer2, trigger, prefetch, sourceSpan) {
8533
8557
  sourceSpan
8534
8558
  }, NEW_OP);
8535
8559
  }
8536
- function createExtractedMessageOp(owner, message, isRoot) {
8560
+ function createI18nMessageOp(xref, i18nBlock, message, messagePlaceholder, params, postprocessingParams, needsPostprocessing) {
8537
8561
  return __spreadValues({
8538
- kind: OpKind.ExtractedMessage,
8539
- owner,
8562
+ kind: OpKind.I18nMessage,
8563
+ xref,
8564
+ i18nBlock,
8540
8565
  message,
8541
- isRoot,
8542
- params: /* @__PURE__ */ new Map(),
8543
- postprocessingParams: /* @__PURE__ */ new Map(),
8544
- needsPostprocessing: false,
8545
- formattedParams: null,
8546
- formattedPostprocessingParams: null
8566
+ messagePlaceholder,
8567
+ params,
8568
+ postprocessingParams,
8569
+ needsPostprocessing,
8570
+ subMessages: []
8547
8571
  }, NEW_OP);
8548
8572
  }
8549
8573
  function createI18nStartOp(xref, message, root) {
@@ -8554,7 +8578,8 @@ function createI18nStartOp(xref, message, root) {
8554
8578
  root: root != null ? root : xref,
8555
8579
  message,
8556
8580
  messageIndex: null,
8557
- subTemplateIndex: null
8581
+ subTemplateIndex: null,
8582
+ context: null
8558
8583
  }, NEW_OP), TRAIT_CONSUMES_SLOT);
8559
8584
  }
8560
8585
  function createI18nEndOp(xref) {
@@ -8563,16 +8588,30 @@ function createI18nEndOp(xref) {
8563
8588
  xref
8564
8589
  }, NEW_OP);
8565
8590
  }
8566
- function createIcuOp(xref, message, sourceSpan) {
8591
+ function createIcuOp(xref, message, icu, messagePlaceholder, sourceSpan) {
8567
8592
  return __spreadValues({
8568
8593
  kind: OpKind.Icu,
8569
8594
  xref,
8570
8595
  message,
8596
+ icu,
8597
+ messagePlaceholder,
8598
+ context: null,
8571
8599
  sourceSpan
8572
8600
  }, NEW_OP);
8573
8601
  }
8602
+ function createI18nContextOp(xref, i18nBlock, message, sourceSpan) {
8603
+ return __spreadValues({
8604
+ kind: OpKind.I18nContext,
8605
+ xref,
8606
+ i18nBlock,
8607
+ message,
8608
+ sourceSpan,
8609
+ params: /* @__PURE__ */ new Map(),
8610
+ postprocessingParams: /* @__PURE__ */ new Map()
8611
+ }, NEW_OP);
8612
+ }
8574
8613
 
8575
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/ir/src/ops/host.mjs
8614
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/ir/src/ops/host.mjs
8576
8615
  function createHostPropertyOp(name, expression, isAnimationTrigger, sourceSpan) {
8577
8616
  return __spreadValues(__spreadValues({
8578
8617
  kind: OpKind.HostProperty,
@@ -8583,10 +8622,10 @@ function createHostPropertyOp(name, expression, isAnimationTrigger, sourceSpan)
8583
8622
  }, TRAIT_CONSUMES_VARS), NEW_OP);
8584
8623
  }
8585
8624
 
8586
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/ir/src/variable.mjs
8625
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/ir/src/variable.mjs
8587
8626
  var CTX_REF = "CTX_REF_MARKER";
8588
8627
 
8589
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/compilation.mjs
8628
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/compilation.mjs
8590
8629
  var CompilationJobKind;
8591
8630
  (function(CompilationJobKind2) {
8592
8631
  CompilationJobKind2[CompilationJobKind2["Tmpl"] = 0] = "Tmpl";
@@ -8606,10 +8645,11 @@ var CompilationJob = class {
8606
8645
  }
8607
8646
  };
8608
8647
  var ComponentCompilationJob = class extends CompilationJob {
8609
- constructor(componentName, pool, compatibility, relativeContextFilePath, i18nUseExternalIds) {
8648
+ constructor(componentName, pool, compatibility, relativeContextFilePath, i18nUseExternalIds, deferBlocksMeta) {
8610
8649
  super(componentName, pool, compatibility);
8611
8650
  this.relativeContextFilePath = relativeContextFilePath;
8612
8651
  this.i18nUseExternalIds = i18nUseExternalIds;
8652
+ this.deferBlocksMeta = deferBlocksMeta;
8613
8653
  this.kind = CompilationJobKind.Tmpl;
8614
8654
  this.fnSuffix = "Template";
8615
8655
  this.views = /* @__PURE__ */ new Map();
@@ -8692,7 +8732,7 @@ var HostBindingCompilationUnit = class extends CompilationUnit {
8692
8732
  }
8693
8733
  };
8694
8734
 
8695
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/any_cast.mjs
8735
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/any_cast.mjs
8696
8736
  function deleteAnyCasts(job) {
8697
8737
  for (const unit of job.units) {
8698
8738
  for (const op of unit.ops()) {
@@ -8710,12 +8750,12 @@ function removeAnys(e) {
8710
8750
  return e;
8711
8751
  }
8712
8752
 
8713
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/apply_i18n_expressions.mjs
8753
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/apply_i18n_expressions.mjs
8714
8754
  function applyI18nExpressions(job) {
8715
8755
  for (const unit of job.units) {
8716
8756
  for (const op of unit.update) {
8717
8757
  if (op.kind === OpKind.I18nExpression && needsApplication(op)) {
8718
- OpList.insertAfter(createI18nApplyOp(op.owner, op.ownerSlot, null), op);
8758
+ OpList.insertAfter(createI18nApplyOp(op.target, op.handle, null), op);
8719
8759
  }
8720
8760
  }
8721
8761
  }
@@ -8725,34 +8765,46 @@ function needsApplication(op) {
8725
8765
  if (((_a2 = op.next) == null ? void 0 : _a2.kind) !== OpKind.I18nExpression) {
8726
8766
  return true;
8727
8767
  }
8728
- if (op.next.owner !== op.owner) {
8768
+ if (op.next.context !== op.context) {
8729
8769
  return true;
8730
8770
  }
8731
8771
  return false;
8732
8772
  }
8733
8773
 
8734
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/assign_i18n_slot_dependencies.mjs
8774
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/assign_i18n_slot_dependencies.mjs
8735
8775
  function assignI18nSlotDependencies(job) {
8736
8776
  const i18nLastSlotConsumers = /* @__PURE__ */ new Map();
8777
+ const i18nContexts = /* @__PURE__ */ new Map();
8737
8778
  let lastSlotConsumer = null;
8779
+ let currentI18nOp = null;
8738
8780
  for (const unit of job.units) {
8739
8781
  for (const op of unit.create) {
8740
- if (op.kind === OpKind.I18nEnd) {
8741
- i18nLastSlotConsumers.set(op.xref, lastSlotConsumer);
8742
- }
8743
8782
  if (hasConsumesSlotTrait(op)) {
8744
8783
  lastSlotConsumer = op.xref;
8745
8784
  }
8785
+ switch (op.kind) {
8786
+ case OpKind.I18nStart:
8787
+ currentI18nOp = op;
8788
+ break;
8789
+ case OpKind.I18nEnd:
8790
+ i18nLastSlotConsumers.set(currentI18nOp.xref, lastSlotConsumer);
8791
+ currentI18nOp = null;
8792
+ break;
8793
+ case OpKind.I18nContext:
8794
+ i18nContexts.set(op.xref, op);
8795
+ break;
8796
+ }
8746
8797
  }
8747
8798
  for (const op of unit.update) {
8748
8799
  if (op.kind === OpKind.I18nExpression) {
8749
- op.target = i18nLastSlotConsumers.get(op.owner);
8800
+ const i18nContext = i18nContexts.get(op.context);
8801
+ op.target = i18nLastSlotConsumers.get(i18nContext.i18nBlock);
8750
8802
  }
8751
8803
  }
8752
8804
  }
8753
8805
  }
8754
8806
 
8755
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/util/elements.mjs
8807
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/util/elements.mjs
8756
8808
  function createOpXrefMap(unit) {
8757
8809
  const map = /* @__PURE__ */ new Map();
8758
8810
  for (const op of unit.create) {
@@ -8764,7 +8816,7 @@ function createOpXrefMap(unit) {
8764
8816
  return map;
8765
8817
  }
8766
8818
 
8767
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/attribute_extraction.mjs
8819
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/attribute_extraction.mjs
8768
8820
  function extractAttributes(job) {
8769
8821
  for (const unit of job.units) {
8770
8822
  const elements = createOpXrefMap(unit);
@@ -8831,7 +8883,7 @@ function extractAttributeOp(unit, op, elements) {
8831
8883
  }
8832
8884
  }
8833
8885
 
8834
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/binding_specialization.mjs
8886
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/binding_specialization.mjs
8835
8887
  function lookupElement2(elements, xref) {
8836
8888
  const el = elements.get(xref);
8837
8889
  if (el === void 0) {
@@ -8881,7 +8933,7 @@ function specializeBindings(job) {
8881
8933
  }
8882
8934
  }
8883
8935
 
8884
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/chaining.mjs
8936
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/chaining.mjs
8885
8937
  var CHAINABLE = /* @__PURE__ */ new Set([
8886
8938
  Identifiers.attribute,
8887
8939
  Identifiers.classProp,
@@ -8947,7 +8999,7 @@ function chainOperationsInList(opList) {
8947
8999
  }
8948
9000
  }
8949
9001
 
8950
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/collapse_singleton_interpolations.mjs
9002
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/collapse_singleton_interpolations.mjs
8951
9003
  function collapseSingletonInterpolations(job) {
8952
9004
  for (const unit of job.units) {
8953
9005
  for (const op of unit.update) {
@@ -8959,7 +9011,7 @@ function collapseSingletonInterpolations(job) {
8959
9011
  }
8960
9012
  }
8961
9013
 
8962
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/conditionals.mjs
9014
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/conditionals.mjs
8963
9015
  function generateConditionalExpressions(job) {
8964
9016
  for (const unit of job.units) {
8965
9017
  for (const op of unit.ops()) {
@@ -8996,7 +9048,7 @@ function generateConditionalExpressions(job) {
8996
9048
  }
8997
9049
  }
8998
9050
 
8999
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/ml_parser/tags.mjs
9051
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/ml_parser/tags.mjs
9000
9052
  var TagContentType;
9001
9053
  (function(TagContentType2) {
9002
9054
  TagContentType2[TagContentType2["RAW_TEXT"] = 0] = "RAW_TEXT";
@@ -9029,7 +9081,7 @@ function mergeNsAndName(prefix, localName) {
9029
9081
  return prefix ? `:${prefix}:${localName}` : localName;
9030
9082
  }
9031
9083
 
9032
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/conversion.mjs
9084
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/conversion.mjs
9033
9085
  var BINARY_OPERATORS = /* @__PURE__ */ new Map([
9034
9086
  ["&&", BinaryOperator.And],
9035
9087
  [">", BinaryOperator.Bigger],
@@ -9079,7 +9131,7 @@ function literalOrArrayLiteral(value) {
9079
9131
  return literal(value);
9080
9132
  }
9081
9133
 
9082
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/const_collection.mjs
9134
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/const_collection.mjs
9083
9135
  function collectElementConsts(job) {
9084
9136
  const allElementAttributes = /* @__PURE__ */ new Map();
9085
9137
  for (const unit of job.units) {
@@ -9213,7 +9265,114 @@ function serializeAttributes({ attributes, bindings, classes, i18n: i18n2, proje
9213
9265
  return literalArr(attrArray);
9214
9266
  }
9215
9267
 
9216
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/defer_configs.mjs
9268
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/create_defer_deps_fns.mjs
9269
+ function createDeferDepsFns(job) {
9270
+ for (const unit of job.units) {
9271
+ for (const op of unit.create) {
9272
+ if (op.kind === OpKind.Defer) {
9273
+ if (op.metadata.deps.length === 0) {
9274
+ continue;
9275
+ }
9276
+ const dependencies = [];
9277
+ for (const dep of op.metadata.deps) {
9278
+ if (dep.isDeferrable) {
9279
+ const innerFn = arrowFn([new FnParam("m", DYNAMIC_TYPE)], variable("m").prop(dep.symbolName));
9280
+ const importExpr2 = new DynamicImportExpr(dep.importPath).prop("then").callFn([innerFn]);
9281
+ dependencies.push(importExpr2);
9282
+ } else {
9283
+ dependencies.push(dep.type);
9284
+ }
9285
+ }
9286
+ const depsFnExpr = arrowFn([], literalArr(dependencies));
9287
+ if (op.handle.slot === null) {
9288
+ throw new Error("AssertionError: slot must be assigned bfore extracting defer deps functions");
9289
+ }
9290
+ op.resolverFn = job.pool.getSharedFunctionReference(depsFnExpr, `${job.componentName}_Defer_${op.handle.slot}_DepsFn`);
9291
+ }
9292
+ }
9293
+ }
9294
+ }
9295
+
9296
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/create_i18n_contexts.mjs
9297
+ function createI18nContexts(job) {
9298
+ let currentI18nOp = null;
9299
+ let xref;
9300
+ for (const unit of job.units) {
9301
+ for (const op of unit.create) {
9302
+ switch (op.kind) {
9303
+ case OpKind.I18nStart:
9304
+ xref = job.allocateXrefId();
9305
+ unit.create.push(createI18nContextOp(xref, op.xref, op.message, null));
9306
+ op.context = xref;
9307
+ currentI18nOp = op;
9308
+ break;
9309
+ case OpKind.I18nEnd:
9310
+ currentI18nOp = null;
9311
+ break;
9312
+ case OpKind.Icu:
9313
+ if (currentI18nOp === null) {
9314
+ throw Error("Unexpected ICU outside of an i18n block.");
9315
+ }
9316
+ if (op.message.id !== currentI18nOp.message.id) {
9317
+ xref = job.allocateXrefId();
9318
+ unit.create.push(createI18nContextOp(xref, currentI18nOp.xref, op.message, null));
9319
+ op.context = xref;
9320
+ } else {
9321
+ op.context = currentI18nOp.context;
9322
+ }
9323
+ break;
9324
+ }
9325
+ }
9326
+ }
9327
+ }
9328
+
9329
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/create_i18n_icu_expressions.mjs
9330
+ function createI18nIcuExpressions(job) {
9331
+ const icus = /* @__PURE__ */ new Map();
9332
+ const i18nContexts = /* @__PURE__ */ new Map();
9333
+ const i18nBlocks = /* @__PURE__ */ new Map();
9334
+ for (const unit of job.units) {
9335
+ for (const op of unit.create) {
9336
+ switch (op.kind) {
9337
+ case OpKind.Icu:
9338
+ icus.set(op.xref, op);
9339
+ break;
9340
+ case OpKind.I18nContext:
9341
+ i18nContexts.set(op.xref, op);
9342
+ break;
9343
+ case OpKind.I18nStart:
9344
+ i18nBlocks.set(op.xref, op);
9345
+ break;
9346
+ }
9347
+ }
9348
+ for (const op of unit.update) {
9349
+ switch (op.kind) {
9350
+ case OpKind.IcuUpdate:
9351
+ const icuOp = icus.get(op.xref);
9352
+ if ((icuOp == null ? void 0 : icuOp.icu.expressionPlaceholder) === void 0) {
9353
+ throw Error("ICU should have an i18n placeholder");
9354
+ }
9355
+ if (icuOp.context === null) {
9356
+ throw Error("ICU should have its i18n context set");
9357
+ }
9358
+ const i18nContext = i18nContexts.get(icuOp.context);
9359
+ const i18nBlock = i18nBlocks.get(i18nContext.i18nBlock);
9360
+ OpList.replace(op, createI18nExpressionOp(
9361
+ i18nContext.xref,
9362
+ i18nBlock.xref,
9363
+ i18nBlock.handle,
9364
+ new LexicalReadExpr(icuOp.icu.expression),
9365
+ icuOp.icu.expressionPlaceholder,
9366
+ I18nParamResolutionTime.Postproccessing,
9367
+ null
9368
+ ));
9369
+ break;
9370
+ }
9371
+ }
9372
+ }
9373
+ }
9374
+
9375
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/defer_configs.mjs
9217
9376
  function configureDeferInstructions(job) {
9218
9377
  for (const unit of job.units) {
9219
9378
  for (const op of unit.create) {
@@ -9230,7 +9389,7 @@ function configureDeferInstructions(job) {
9230
9389
  }
9231
9390
  }
9232
9391
 
9233
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/defer_resolve_targets.mjs
9392
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/defer_resolve_targets.mjs
9234
9393
  function resolveDeferTargetNames(job) {
9235
9394
  const scopes = /* @__PURE__ */ new Map();
9236
9395
  function getScopeForView2(view) {
@@ -9265,6 +9424,22 @@ function resolveDeferTargetNames(job) {
9265
9424
  case DeferTriggerKind.Interaction:
9266
9425
  case DeferTriggerKind.Viewport:
9267
9426
  if (op.trigger.targetName === null) {
9427
+ if (placeholderView === null) {
9428
+ throw new Error("defer on trigger with no target name must have a placeholder block");
9429
+ }
9430
+ const placeholder = job.views.get(placeholderView);
9431
+ if (placeholder == void 0) {
9432
+ throw new Error("AssertionError: could not find placeholder view for defer on trigger");
9433
+ }
9434
+ for (const placeholderOp of placeholder.create) {
9435
+ if (hasConsumesSlotTrait(placeholderOp) && (isElementOrContainerOp(placeholderOp) || placeholderOp.kind === OpKind.Projection)) {
9436
+ op.trigger.targetXref = placeholderOp.xref;
9437
+ op.trigger.targetView = placeholderView;
9438
+ op.trigger.targetSlotViewSteps = -1;
9439
+ op.trigger.targetSlot = placeholderOp.handle;
9440
+ return;
9441
+ }
9442
+ }
9268
9443
  return;
9269
9444
  }
9270
9445
  let view = placeholderView !== null ? job.views.get(placeholderView) : deferOwnerView;
@@ -9308,7 +9483,7 @@ var Scope = class {
9308
9483
  }
9309
9484
  };
9310
9485
 
9311
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/empty_elements.mjs
9486
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/empty_elements.mjs
9312
9487
  var REPLACEMENTS = /* @__PURE__ */ new Map([
9313
9488
  [OpKind.ElementEnd, [OpKind.ElementStart, OpKind.Element]],
9314
9489
  [OpKind.ContainerEnd, [OpKind.ContainerStart, OpKind.Container]],
@@ -9335,7 +9510,7 @@ function collapseEmptyInstructions(job) {
9335
9510
  }
9336
9511
  }
9337
9512
 
9338
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/expand_safe_reads.mjs
9513
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/expand_safe_reads.mjs
9339
9514
  function expandSafeReads(job) {
9340
9515
  for (const unit of job.units) {
9341
9516
  for (const op of unit.ops()) {
@@ -9471,7 +9646,7 @@ function ternaryTransform(e) {
9471
9646
  return new ConditionalExpr(new BinaryOperatorExpr(BinaryOperator.Equals, e.guard, NULL_EXPR), NULL_EXPR, e.expr);
9472
9647
  }
9473
9648
 
9474
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/format_i18n_params.mjs
9649
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/extract_i18n_messages.mjs
9475
9650
  var ESCAPE = "\uFFFD";
9476
9651
  var ELEMENT_MARKER = "#";
9477
9652
  var TEMPLATE_MARKER = "*";
@@ -9480,24 +9655,61 @@ var CONTEXT_MARKER = ":";
9480
9655
  var LIST_START_MARKER = "[";
9481
9656
  var LIST_END_MARKER = "]";
9482
9657
  var LIST_DELIMITER = "|";
9483
- function formatI18nParams(job) {
9658
+ function extractI18nMessages(job) {
9659
+ const i18nContexts = /* @__PURE__ */ new Map();
9660
+ const i18nBlockContexts = /* @__PURE__ */ new Set();
9484
9661
  for (const unit of job.units) {
9485
9662
  for (const op of unit.create) {
9486
- if (op.kind === OpKind.ExtractedMessage) {
9487
- if (op.isRoot) {
9488
- op.formattedParams = formatParams(op.params);
9489
- op.formattedPostprocessingParams = formatParams(op.postprocessingParams);
9490
- op.needsPostprocessing = op.postprocessingParams.size > 0;
9491
- for (const [param, values] of op.params) {
9492
- if (values.length > 1) {
9493
- op.needsPostprocessing = true;
9494
- }
9495
- }
9663
+ switch (op.kind) {
9664
+ case OpKind.I18nContext:
9665
+ i18nContexts.set(op.xref, op);
9666
+ break;
9667
+ case OpKind.I18nStart:
9668
+ i18nBlockContexts.add(op.context);
9669
+ break;
9670
+ }
9671
+ }
9672
+ }
9673
+ const i18nBlockMessages = /* @__PURE__ */ new Map();
9674
+ for (const unit of job.units) {
9675
+ for (const op of unit.create) {
9676
+ if (op.kind === OpKind.I18nStart && op.xref === op.root) {
9677
+ if (!op.context) {
9678
+ throw Error("I18n start op should have its context set.");
9496
9679
  }
9680
+ const i18nMessageOp = createI18nMessage(job, i18nContexts.get(op.context));
9681
+ i18nBlockMessages.set(op.xref, i18nMessageOp);
9682
+ unit.create.push(i18nMessageOp);
9683
+ }
9684
+ }
9685
+ }
9686
+ for (const unit of job.units) {
9687
+ for (const op of unit.create) {
9688
+ if (op.kind === OpKind.Icu) {
9689
+ if (!op.context) {
9690
+ throw Error("ICU op should have its context set.");
9691
+ }
9692
+ if (!i18nBlockContexts.has(op.context)) {
9693
+ const i18nContext = i18nContexts.get(op.context);
9694
+ const subMessage = createI18nMessage(job, i18nContext, op.messagePlaceholder);
9695
+ unit.create.push(subMessage);
9696
+ const parentMessage = i18nBlockMessages.get(i18nContext.i18nBlock);
9697
+ parentMessage == null ? void 0 : parentMessage.subMessages.push(subMessage.xref);
9698
+ }
9699
+ OpList.remove(op);
9497
9700
  }
9498
9701
  }
9499
9702
  }
9500
9703
  }
9704
+ function createI18nMessage(job, context, messagePlaceholder) {
9705
+ let needsPostprocessing = context.postprocessingParams.size > 0;
9706
+ for (const values of context.params.values()) {
9707
+ if (values.length > 1) {
9708
+ needsPostprocessing = true;
9709
+ }
9710
+ }
9711
+ return createI18nMessageOp(job.allocateXrefId(), context.i18nBlock, context.message, messagePlaceholder != null ? messagePlaceholder : null, formatParams(context.params), formatParams(context.postprocessingParams), needsPostprocessing);
9712
+ }
9501
9713
  function formatParams(params) {
9502
9714
  const result = /* @__PURE__ */ new Map();
9503
9715
  for (const [placeholder, placeholderValues] of [...params].sort()) {
@@ -9533,7 +9745,7 @@ function formatValue(value) {
9533
9745
  return `${ESCAPE}${closeMarker}${tagMarker}${value.value}${context}${ESCAPE}`;
9534
9746
  }
9535
9747
 
9536
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/generate_advance.mjs
9748
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/generate_advance.mjs
9537
9749
  function generateAdvance(job) {
9538
9750
  for (const unit of job.units) {
9539
9751
  const slotMap = /* @__PURE__ */ new Map();
@@ -9565,7 +9777,7 @@ function generateAdvance(job) {
9565
9777
  }
9566
9778
  }
9567
9779
 
9568
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/generate_projection_def.mjs
9780
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/generate_projection_def.mjs
9569
9781
  function generateProjectionDefs(job) {
9570
9782
  const share = job.compatibility === CompatibilityMode.TemplateDefinitionBuilder;
9571
9783
  const selectors = [];
@@ -9589,7 +9801,7 @@ function generateProjectionDefs(job) {
9589
9801
  }
9590
9802
  }
9591
9803
 
9592
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/generate_variables.mjs
9804
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/generate_variables.mjs
9593
9805
  function generateVariables(job) {
9594
9806
  recursivelyProcessView(job.root, null);
9595
9807
  }
@@ -9677,7 +9889,7 @@ function generateVariablesInScopeForView(view, scope) {
9677
9889
  return newOps;
9678
9890
  }
9679
9891
 
9680
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/has_const_expression_collection.mjs
9892
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/has_const_expression_collection.mjs
9681
9893
  function collectConstExpressions(job) {
9682
9894
  for (const unit of job.units) {
9683
9895
  for (const op of unit.ops()) {
@@ -9691,7 +9903,7 @@ function collectConstExpressions(job) {
9691
9903
  }
9692
9904
  }
9693
9905
 
9694
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/host_style_property_parsing.mjs
9906
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/host_style_property_parsing.mjs
9695
9907
  var STYLE_DOT = "style.";
9696
9908
  var CLASS_DOT = "class.";
9697
9909
  var STYLE_BANG = "style!";
@@ -9749,7 +9961,7 @@ function parseProperty(name) {
9749
9961
  return { property: property2, suffix };
9750
9962
  }
9751
9963
 
9752
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/output/map_util.mjs
9964
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/output/map_util.mjs
9753
9965
  function mapLiteral(obj, quoted = false) {
9754
9966
  return literalMap(Object.keys(obj).map((key) => ({
9755
9967
  key,
@@ -9758,7 +9970,7 @@ function mapLiteral(obj, quoted = false) {
9758
9970
  })));
9759
9971
  }
9760
9972
 
9761
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/render3/view/i18n/icu_serializer.mjs
9973
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/render3/view/i18n/icu_serializer.mjs
9762
9974
  var IcuSerializerVisitor = class {
9763
9975
  visitText(text2) {
9764
9976
  return text2.value;
@@ -9789,7 +10001,7 @@ function serializeIcuNode(icu) {
9789
10001
  return icu.visit(serializer);
9790
10002
  }
9791
10003
 
9792
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/expression_parser/lexer.mjs
10004
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/expression_parser/lexer.mjs
9793
10005
  var TokenType;
9794
10006
  (function(TokenType2) {
9795
10007
  TokenType2[TokenType2["Character"] = 0] = "Character";
@@ -10150,7 +10362,7 @@ function parseIntAutoRadix(text2) {
10150
10362
  return result;
10151
10363
  }
10152
10364
 
10153
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/expression_parser/parser.mjs
10365
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/expression_parser/parser.mjs
10154
10366
  var SplitInterpolation = class {
10155
10367
  constructor(strings, expressions, offsets) {
10156
10368
  this.strings = strings;
@@ -11044,7 +11256,7 @@ function getIndexMapForOriginalTemplate(interpolatedTokens) {
11044
11256
  return offsetMap;
11045
11257
  }
11046
11258
 
11047
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/ml_parser/ast.mjs
11259
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/ml_parser/ast.mjs
11048
11260
  var NodeWithI18n = class {
11049
11261
  constructor(sourceSpan, i18n2) {
11050
11262
  this.sourceSpan = sourceSpan;
@@ -11196,11 +11408,11 @@ var RecursiveVisitor = class {
11196
11408
  }
11197
11409
  };
11198
11410
 
11199
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/schema/element_schema_registry.mjs
11411
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/schema/element_schema_registry.mjs
11200
11412
  var ElementSchemaRegistry = class {
11201
11413
  };
11202
11414
 
11203
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/schema/dom_element_schema_registry.mjs
11415
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/schema/dom_element_schema_registry.mjs
11204
11416
  var BOOLEAN = "boolean";
11205
11417
  var NUMBER = "number";
11206
11418
  var STRING = "string";
@@ -11553,7 +11765,7 @@ function _isPixelDimensionStyle(prop) {
11553
11765
  }
11554
11766
  }
11555
11767
 
11556
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/ml_parser/html_tags.mjs
11768
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/ml_parser/html_tags.mjs
11557
11769
  var HtmlTagDefinition = class {
11558
11770
  constructor({ closedByChildren, implicitNamespacePrefix, contentType = TagContentType.PARSABLE_DATA, closedByParent = false, isVoid = false, ignoreFirstLf = false, preventNamespaceInheritance = false, canSelfClose = false } = {}) {
11559
11771
  this.closedByChildren = {};
@@ -11671,7 +11883,7 @@ function getHtmlTagDefinition(tagName) {
11671
11883
  return (_b2 = (_a2 = TAG_DEFINITIONS[tagName]) != null ? _a2 : TAG_DEFINITIONS[tagName.toLowerCase()]) != null ? _b2 : DEFAULT_TAG_DEFINITION;
11672
11884
  }
11673
11885
 
11674
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/i18n/serializers/placeholder.mjs
11886
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/i18n/serializers/placeholder.mjs
11675
11887
  var TAG_TO_PLACEHOLDER_NAMES = {
11676
11888
  "A": "LINK",
11677
11889
  "B": "BOLD_TEXT",
@@ -11765,7 +11977,7 @@ var PlaceholderRegistry = class {
11765
11977
  }
11766
11978
  };
11767
11979
 
11768
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/i18n/i18n_parser.mjs
11980
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/i18n/i18n_parser.mjs
11769
11981
  var _expParser = new Parser(new Lexer());
11770
11982
  function createI18nMessageFactory(interpolationConfig) {
11771
11983
  const visitor = new _I18nVisitor(_expParser, interpolationConfig);
@@ -11927,14 +12139,14 @@ function extractPlaceholderName(input) {
11927
12139
  return input.split(_CUSTOM_PH_EXP)[2];
11928
12140
  }
11929
12141
 
11930
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/i18n/parse_util.mjs
12142
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/i18n/parse_util.mjs
11931
12143
  var I18nError = class extends ParseError {
11932
12144
  constructor(span, msg) {
11933
12145
  super(span, msg);
11934
12146
  }
11935
12147
  };
11936
12148
 
11937
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/ml_parser/entities.mjs
12149
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/ml_parser/entities.mjs
11938
12150
  var NAMED_ENTITIES = {
11939
12151
  "AElig": "\xC6",
11940
12152
  "AMP": "&",
@@ -14065,7 +14277,7 @@ var NAMED_ENTITIES = {
14065
14277
  var NGSP_UNICODE = "\uE500";
14066
14278
  NAMED_ENTITIES["ngsp"] = NGSP_UNICODE;
14067
14279
 
14068
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/ml_parser/lexer.mjs
14280
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/ml_parser/lexer.mjs
14069
14281
  var TokenError = class extends ParseError {
14070
14282
  constructor(errorMsg, tokenType, span) {
14071
14283
  super(span, errorMsg);
@@ -14986,7 +15198,7 @@ var CursorError = class {
14986
15198
  }
14987
15199
  };
14988
15200
 
14989
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/ml_parser/parser.mjs
15201
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/ml_parser/parser.mjs
14990
15202
  var TreeError = class extends ParseError {
14991
15203
  static create(elementName, span, msg) {
14992
15204
  return new TreeError(elementName, span, msg);
@@ -15370,7 +15582,7 @@ function decodeEntity(match, entity) {
15370
15582
  return match;
15371
15583
  }
15372
15584
 
15373
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/schema/trusted_types_sinks.mjs
15585
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/schema/trusted_types_sinks.mjs
15374
15586
  var TRUSTED_TYPES_SINKS = /* @__PURE__ */ new Set([
15375
15587
  "iframe|srcdoc",
15376
15588
  "*|innerhtml",
@@ -15385,7 +15597,7 @@ function isTrustedTypesSink(tagName, propName) {
15385
15597
  return TRUSTED_TYPES_SINKS.has(tagName + "|" + propName) || TRUSTED_TYPES_SINKS.has("*|" + propName);
15386
15598
  }
15387
15599
 
15388
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/render3/view/i18n/meta.mjs
15600
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/render3/view/i18n/meta.mjs
15389
15601
  var setI18nRefs = (htmlNode, i18nNode) => {
15390
15602
  if (htmlNode instanceof NodeWithI18n) {
15391
15603
  if (i18nNode instanceof IcuPlaceholder && htmlNode.i18n instanceof Message) {
@@ -15405,8 +15617,8 @@ var I18nMetaVisitor = class {
15405
15617
  }
15406
15618
  _generateI18nMessage(nodes, meta = "", visitNodeFn) {
15407
15619
  const { meaning, description, customId } = this._parseMetadata(meta);
15408
- const createI18nMessage = createI18nMessageFactory(this.interpolationConfig);
15409
- const message = createI18nMessage(nodes, meaning, description, customId, visitNodeFn);
15620
+ const createI18nMessage2 = createI18nMessageFactory(this.interpolationConfig);
15621
+ const message = createI18nMessage2(nodes, meaning, description, customId, visitNodeFn);
15410
15622
  this._setMessageId(message, meta);
15411
15623
  this._setLegacyIds(message, meta);
15412
15624
  return message;
@@ -15541,7 +15753,7 @@ function i18nMetaToJSDoc(meta) {
15541
15753
  return jsDocComment(tags);
15542
15754
  }
15543
15755
 
15544
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/render3/view/i18n/get_msg_utils.mjs
15756
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/render3/view/i18n/get_msg_utils.mjs
15545
15757
  var GOOG_GET_MSG = "goog.getMsg";
15546
15758
  function createGoogleGetMsgStatements(variable2, message, closureVar, placeholderValues) {
15547
15759
  const messageString = serializeI18nMessageForGetMsg(message);
@@ -15589,7 +15801,7 @@ function serializeI18nMessageForGetMsg(message) {
15589
15801
  return message.nodes.map((node) => node.visit(serializerVisitor2, null)).join("");
15590
15802
  }
15591
15803
 
15592
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/render3/view/i18n/localize_utils.mjs
15804
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/render3/view/i18n/localize_utils.mjs
15593
15805
  function createLocalizeStatements(variable2, message, params) {
15594
15806
  const { messageParts, placeHolders } = serializeI18nMessageForLocalize(message);
15595
15807
  const sourceSpan = getSourceSpan(message);
@@ -15672,34 +15884,27 @@ function createEmptyMessagePart(location) {
15672
15884
  return new LiteralPiece("", new ParseSourceSpan(location, location));
15673
15885
  }
15674
15886
 
15675
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/i18n_const_collection.mjs
15887
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/i18n_const_collection.mjs
15676
15888
  var NG_I18N_CLOSURE_MODE = "ngI18nClosureMode";
15677
15889
  var TRANSLATION_VAR_PREFIX2 = "i18n_";
15678
15890
  function collectI18nConsts(job) {
15679
15891
  const fileBasedI18nSuffix = job.relativeContextFilePath.replace(/[^A-Za-z0-9]/g, "_").toUpperCase() + "_";
15680
15892
  const messageConstIndices = /* @__PURE__ */ new Map();
15893
+ const messages = /* @__PURE__ */ new Map();
15681
15894
  for (const unit of job.units) {
15682
15895
  for (const op of unit.create) {
15683
- if (op.kind === OpKind.ExtractedMessage) {
15684
- if (op.isRoot) {
15685
- assertAllParamsResolved(op);
15686
- const mainVar = variable(job.pool.uniqueName(TRANSLATION_VAR_PREFIX2));
15687
- const closureVar = i18nGenerateClosureVar(job.pool, op.message.id, fileBasedI18nSuffix, job.i18nUseExternalIds);
15688
- let transformFn = void 0;
15689
- if (op.needsPostprocessing) {
15690
- const extraTransformFnParams = [];
15691
- if (op.formattedPostprocessingParams.size > 0) {
15692
- extraTransformFnParams.push(literalMap([...op.formattedPostprocessingParams].map(([key, value]) => ({ key, value, quoted: true }))));
15693
- }
15694
- transformFn = (expr) => importExpr(Identifiers.i18nPostprocess).callFn([expr, ...extraTransformFnParams]);
15695
- }
15696
- const statements = getTranslationDeclStmts(op.message, mainVar, closureVar, op.formattedParams, transformFn);
15697
- messageConstIndices.set(op.owner, job.addConst(mainVar, statements));
15698
- }
15896
+ if (op.kind === OpKind.I18nMessage) {
15897
+ messages.set(op.xref, op);
15699
15898
  OpList.remove(op);
15700
15899
  }
15701
15900
  }
15702
15901
  }
15902
+ for (const op of messages.values()) {
15903
+ if (op.kind === OpKind.I18nMessage && op.messagePlaceholder === null) {
15904
+ const { mainVar, statements } = collectMessage(job, fileBasedI18nSuffix, messages, op);
15905
+ messageConstIndices.set(op.i18nBlock, job.addConst(mainVar, statements));
15906
+ }
15907
+ }
15703
15908
  for (const unit of job.units) {
15704
15909
  for (const op of unit.create) {
15705
15910
  if (op.kind === OpKind.I18nStart) {
@@ -15708,6 +15913,28 @@ function collectI18nConsts(job) {
15708
15913
  }
15709
15914
  }
15710
15915
  }
15916
+ function collectMessage(job, fileBasedI18nSuffix, messages, messageOp) {
15917
+ const statements = [];
15918
+ for (const subMessageId of messageOp.subMessages) {
15919
+ const subMessage = messages.get(subMessageId);
15920
+ const { mainVar: subMessageVar, statements: subMessageStatements } = collectMessage(job, fileBasedI18nSuffix, messages, subMessage);
15921
+ statements.push(...subMessageStatements);
15922
+ messageOp.params.set(subMessage.messagePlaceholder, subMessageVar);
15923
+ }
15924
+ assertAllParamsResolved(messageOp);
15925
+ const mainVar = variable(job.pool.uniqueName(TRANSLATION_VAR_PREFIX2));
15926
+ const closureVar = i18nGenerateClosureVar(job.pool, messageOp.message.id, fileBasedI18nSuffix, job.i18nUseExternalIds);
15927
+ let transformFn = void 0;
15928
+ if (messageOp.needsPostprocessing) {
15929
+ const extraTransformFnParams = [];
15930
+ if (messageOp.postprocessingParams.size > 0) {
15931
+ extraTransformFnParams.push(literalMap([...messageOp.postprocessingParams].map(([key, value]) => ({ key, value, quoted: true }))));
15932
+ }
15933
+ transformFn = (expr) => importExpr(Identifiers.i18nPostprocess).callFn([expr, ...extraTransformFnParams]);
15934
+ }
15935
+ statements.push(...getTranslationDeclStmts(messageOp.message, mainVar, closureVar, messageOp.params, transformFn));
15936
+ return { mainVar, statements };
15937
+ }
15711
15938
  function getTranslationDeclStmts(message, variable2, closureVar, params, transformFn) {
15712
15939
  const paramsObject = Object.fromEntries(params);
15713
15940
  const statements = [
@@ -15736,52 +15963,38 @@ function i18nGenerateClosureVar(pool, messageId, fileBasedI18nSuffix, useExterna
15736
15963
  return variable(name);
15737
15964
  }
15738
15965
  function assertAllParamsResolved(op) {
15739
- if (op.formattedParams === null || op.formattedPostprocessingParams === null) {
15740
- throw Error("Params should have been formatted.");
15741
- }
15742
15966
  for (const placeholder in op.message.placeholders) {
15743
- if (!op.formattedParams.has(placeholder) && !op.formattedPostprocessingParams.has(placeholder)) {
15967
+ if (!op.params.has(placeholder) && !op.postprocessingParams.has(placeholder)) {
15744
15968
  throw Error(`Failed to resolve i18n placeholder: ${placeholder}`);
15745
15969
  }
15746
15970
  }
15747
15971
  for (const placeholder in op.message.placeholderToMessage) {
15748
- if (!op.formattedParams.has(placeholder) && !op.formattedPostprocessingParams.has(placeholder)) {
15972
+ if (!op.params.has(placeholder) && !op.postprocessingParams.has(placeholder)) {
15749
15973
  throw Error(`Failed to resolve i18n message placeholder: ${placeholder}`);
15750
15974
  }
15751
15975
  }
15752
15976
  }
15753
15977
 
15754
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/i18n_message_extraction.mjs
15755
- function extractI18nMessages(job) {
15756
- for (const unit of job.units) {
15757
- for (const op of unit.create) {
15758
- if (op.kind === OpKind.I18nStart) {
15759
- unit.create.push(createExtractedMessageOp(op.xref, op.message, op.xref === op.root));
15760
- }
15761
- }
15762
- }
15763
- }
15764
-
15765
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/i18n_text_extraction.mjs
15978
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/i18n_text_extraction.mjs
15766
15979
  function extractI18nText(job) {
15767
15980
  var _a2;
15768
15981
  for (const unit of job.units) {
15769
- let currentI18nId = null;
15770
- let currentI18nSlot = null;
15771
- const textNodes = /* @__PURE__ */ new Map();
15982
+ let currentI18n = null;
15983
+ const textNodeI18nBlocks = /* @__PURE__ */ new Map();
15772
15984
  for (const op of unit.create) {
15773
15985
  switch (op.kind) {
15774
15986
  case OpKind.I18nStart:
15775
- currentI18nId = op.xref;
15776
- currentI18nSlot = op.handle;
15987
+ if (op.context === null) {
15988
+ throw Error("I18n op should have its context set.");
15989
+ }
15990
+ currentI18n = op;
15777
15991
  break;
15778
15992
  case OpKind.I18nEnd:
15779
- currentI18nId = null;
15780
- currentI18nSlot = null;
15993
+ currentI18n = null;
15781
15994
  break;
15782
15995
  case OpKind.Text:
15783
- if (currentI18nId !== null && currentI18nSlot !== null) {
15784
- textNodes.set(op.xref, { xref: currentI18nId, slot: currentI18nSlot });
15996
+ if (currentI18n !== null) {
15997
+ textNodeI18nBlocks.set(op.xref, currentI18n);
15785
15998
  OpList.remove(op);
15786
15999
  }
15787
16000
  break;
@@ -15790,17 +16003,15 @@ function extractI18nText(job) {
15790
16003
  for (const op of unit.update) {
15791
16004
  switch (op.kind) {
15792
16005
  case OpKind.InterpolateText:
15793
- if (!textNodes.has(op.target)) {
16006
+ if (!textNodeI18nBlocks.has(op.target)) {
15794
16007
  continue;
15795
16008
  }
15796
- const i18nBlock = textNodes.get(op.target);
16009
+ const i18nOp = textNodeI18nBlocks.get(op.target);
15797
16010
  const ops = [];
15798
16011
  for (let i = 0; i < op.interpolation.expressions.length; i++) {
15799
16012
  const expr = op.interpolation.expressions[i];
15800
16013
  const placeholder = op.i18nPlaceholders[i];
15801
- ops.push(createI18nExpressionOp(i18nBlock.xref, i18nBlock.slot, expr, placeholder.name, I18nParamResolutionTime.Creation, (_a2 = expr.sourceSpan) != null ? _a2 : op.sourceSpan));
15802
- }
15803
- if (ops.length > 0) {
16014
+ ops.push(createI18nExpressionOp(i18nOp.context, i18nOp.xref, i18nOp.handle, expr, placeholder.name, I18nParamResolutionTime.Creation, (_a2 = expr.sourceSpan) != null ? _a2 : op.sourceSpan));
15804
16015
  }
15805
16016
  OpList.replaceWithMany(op, ops);
15806
16017
  break;
@@ -15809,50 +16020,7 @@ function extractI18nText(job) {
15809
16020
  }
15810
16021
  }
15811
16022
 
15812
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/icu_extraction.mjs
15813
- function extractI18nICUs(job) {
15814
- for (const unit of job.units) {
15815
- const icus = /* @__PURE__ */ new Map();
15816
- let currentI18nId = null;
15817
- let currentI18nSlot = null;
15818
- for (const op of unit.create) {
15819
- switch (op.kind) {
15820
- case OpKind.I18nStart:
15821
- currentI18nId = op.xref;
15822
- currentI18nSlot = op.handle;
15823
- break;
15824
- case OpKind.I18nEnd:
15825
- currentI18nId = null;
15826
- currentI18nSlot = null;
15827
- break;
15828
- case OpKind.Icu:
15829
- if (currentI18nId === null) {
15830
- throw Error("Unexpected ICU outside of an i18n block.");
15831
- }
15832
- icus.set(op.xref, { message: op.message, i18nBlockId: currentI18nId, i18nBlockSlot: currentI18nSlot });
15833
- OpList.remove(op);
15834
- break;
15835
- }
15836
- }
15837
- for (const op of unit.update) {
15838
- switch (op.kind) {
15839
- case OpKind.IcuUpdate:
15840
- const { message, i18nBlockId, i18nBlockSlot } = icus.get(op.xref);
15841
- const icuNode = message.nodes.find((n) => n instanceof Icu2);
15842
- if (icuNode === void 0) {
15843
- throw Error("Could not find ICU in i18n AST");
15844
- }
15845
- if (icuNode.expressionPlaceholder === void 0) {
15846
- throw Error("ICU is missing an i18n placeholder");
15847
- }
15848
- OpList.replace(op, createI18nExpressionOp(i18nBlockId, i18nBlockSlot, new LexicalReadExpr(icuNode.expression), icuNode.expressionPlaceholder, I18nParamResolutionTime.Postproccessing, null));
15849
- break;
15850
- }
15851
- }
15852
- }
15853
- }
15854
-
15855
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/local_refs.mjs
16023
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/local_refs.mjs
15856
16024
  function liftLocalRefs(job) {
15857
16025
  for (const unit of job.units) {
15858
16026
  for (const op of unit.create) {
@@ -15882,7 +16050,48 @@ function serializeLocalRefs(refs) {
15882
16050
  return literalArr(constRefs);
15883
16051
  }
15884
16052
 
15885
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/namespace.mjs
16053
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/merge_i18n_contexts.mjs
16054
+ function mergeI18nContexts(job) {
16055
+ const i18nOps = /* @__PURE__ */ new Map();
16056
+ const i18nContexts = /* @__PURE__ */ new Map();
16057
+ for (const unit of job.units) {
16058
+ for (const op of unit.create) {
16059
+ switch (op.kind) {
16060
+ case OpKind.I18nStart:
16061
+ if (!op.context) {
16062
+ throw Error("I18n op should have its context set.");
16063
+ }
16064
+ i18nOps.set(op.xref, op);
16065
+ break;
16066
+ case OpKind.I18nContext:
16067
+ i18nContexts.set(op.xref, op);
16068
+ break;
16069
+ }
16070
+ }
16071
+ }
16072
+ for (const childI18nOp of i18nOps.values()) {
16073
+ if (childI18nOp.xref !== childI18nOp.root) {
16074
+ const childContext = i18nContexts.get(childI18nOp.context);
16075
+ const rootI18nOp = i18nOps.get(childI18nOp.root);
16076
+ const rootContext = i18nContexts.get(rootI18nOp.context);
16077
+ mergeParams(rootContext.params, childContext.params);
16078
+ mergeParams(rootContext.postprocessingParams, childContext.postprocessingParams);
16079
+ }
16080
+ }
16081
+ }
16082
+ function mergeParams(to, from) {
16083
+ for (const [placeholder, fromValues] of from) {
16084
+ const toValues = to.get(placeholder) || [];
16085
+ const flags = fromValues[0].flags;
16086
+ if (flags & I18nParamValueFlags.CloseTag && !(flags & I18nParamValueFlags.OpenTag)) {
16087
+ to.set(placeholder, [...fromValues, ...toValues]);
16088
+ } else {
16089
+ to.set(placeholder, [...toValues, ...fromValues]);
16090
+ }
16091
+ }
16092
+ }
16093
+
16094
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/namespace.mjs
15886
16095
  function emitNamespaceChanges(job) {
15887
16096
  for (const unit of job.units) {
15888
16097
  let activeNamespace = Namespace.HTML;
@@ -15898,7 +16107,7 @@ function emitNamespaceChanges(job) {
15898
16107
  }
15899
16108
  }
15900
16109
 
15901
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/render3/view/style_parser.mjs
16110
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/render3/view/style_parser.mjs
15902
16111
  function parse(value) {
15903
16112
  const styles = [];
15904
16113
  let i = 0;
@@ -15959,7 +16168,7 @@ function hyphenate2(value) {
15959
16168
  }).toLowerCase();
15960
16169
  }
15961
16170
 
15962
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/naming.mjs
16171
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/naming.mjs
15963
16172
  function nameFunctionsAndVariables(job) {
15964
16173
  addNamesToView(job.root, job.componentName, { index: 0 }, job.compatibility === CompatibilityMode.TemplateDefinitionBuilder);
15965
16174
  }
@@ -16074,7 +16283,7 @@ function stripImportant(name) {
16074
16283
  return name;
16075
16284
  }
16076
16285
 
16077
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/next_context_merging.mjs
16286
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/next_context_merging.mjs
16078
16287
  function mergeNextContextExpressions(job) {
16079
16288
  for (const unit of job.units) {
16080
16289
  for (const op of unit.create) {
@@ -16120,7 +16329,7 @@ function mergeNextContextsInOps(ops) {
16120
16329
  }
16121
16330
  }
16122
16331
 
16123
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/ng_container.mjs
16332
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/ng_container.mjs
16124
16333
  var CONTAINER_TAG = "ng-container";
16125
16334
  function generateNgContainerOps(job) {
16126
16335
  for (const unit of job.units) {
@@ -16137,7 +16346,7 @@ function generateNgContainerOps(job) {
16137
16346
  }
16138
16347
  }
16139
16348
 
16140
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/nonbindable.mjs
16349
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/nonbindable.mjs
16141
16350
  function lookupElement3(elements, xref) {
16142
16351
  const el = elements.get(xref);
16143
16352
  if (el === void 0) {
@@ -16167,7 +16376,7 @@ function disableBindings(job) {
16167
16376
  }
16168
16377
  }
16169
16378
 
16170
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/nullish_coalescing.mjs
16379
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/nullish_coalescing.mjs
16171
16380
  function generateNullishCoalesceExpressions(job) {
16172
16381
  for (const unit of job.units) {
16173
16382
  for (const op of unit.ops()) {
@@ -16183,7 +16392,7 @@ function generateNullishCoalesceExpressions(job) {
16183
16392
  }
16184
16393
  }
16185
16394
 
16186
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/ordering.mjs
16395
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/ordering.mjs
16187
16396
  function kindTest(kind) {
16188
16397
  return (op) => op.kind === kind;
16189
16398
  }
@@ -16257,7 +16466,7 @@ function keepLast(ops) {
16257
16466
  return ops.slice(ops.length - 1);
16258
16467
  }
16259
16468
 
16260
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/parse_extracted_styles.mjs
16469
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/parse_extracted_styles.mjs
16261
16470
  function parseExtractedStyles(job) {
16262
16471
  for (const unit of job.units) {
16263
16472
  for (const op of unit.create) {
@@ -16280,7 +16489,7 @@ function parseExtractedStyles(job) {
16280
16489
  }
16281
16490
  }
16282
16491
 
16283
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/phase_remove_content_selectors.mjs
16492
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/phase_remove_content_selectors.mjs
16284
16493
  function removeContentSelectors(job) {
16285
16494
  for (const unit of job.units) {
16286
16495
  const elements = createOpXrefMap(unit);
@@ -16304,7 +16513,7 @@ function lookupInXrefMap(map, xref) {
16304
16513
  return el;
16305
16514
  }
16306
16515
 
16307
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/pipe_creation.mjs
16516
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/pipe_creation.mjs
16308
16517
  function createPipes(job) {
16309
16518
  for (const unit of job.units) {
16310
16519
  processPipeBindingsInView(unit);
@@ -16352,7 +16561,7 @@ function addPipeToCreationBlock(unit, afterTargetXref, binding) {
16352
16561
  throw new Error(`AssertionError: unable to find insertion point for pipe ${binding.name}`);
16353
16562
  }
16354
16563
 
16355
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/pipe_variadic.mjs
16564
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/pipe_variadic.mjs
16356
16565
  function createVariadicPipes(job) {
16357
16566
  for (const unit of job.units) {
16358
16567
  for (const op of unit.update) {
@@ -16369,7 +16578,7 @@ function createVariadicPipes(job) {
16369
16578
  }
16370
16579
  }
16371
16580
 
16372
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/propagate_i18n_blocks.mjs
16581
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/propagate_i18n_blocks.mjs
16373
16582
  function propagateI18nBlocks(job) {
16374
16583
  propagateI18nBlocksToTemplates(job.root, 0);
16375
16584
  }
@@ -16406,50 +16615,7 @@ function wrapTemplateWithI18n(unit, parentI18n) {
16406
16615
  }
16407
16616
  }
16408
16617
 
16409
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/propagate_i18n_placeholders.mjs
16410
- function propogateI18nPlaceholders(job) {
16411
- const i18nOps = /* @__PURE__ */ new Map();
16412
- const extractedMessageOps = /* @__PURE__ */ new Map();
16413
- for (const unit of job.units) {
16414
- for (const op of unit.create) {
16415
- switch (op.kind) {
16416
- case OpKind.I18nStart:
16417
- i18nOps.set(op.xref, op);
16418
- break;
16419
- case OpKind.ExtractedMessage:
16420
- extractedMessageOps.set(op.owner, op);
16421
- break;
16422
- }
16423
- }
16424
- }
16425
- for (const [xref, childExtractedMessageOp] of extractedMessageOps) {
16426
- if (!childExtractedMessageOp.isRoot) {
16427
- const i18nOp = i18nOps.get(xref);
16428
- if (i18nOp === void 0) {
16429
- throw Error("Could not find owner i18n block for extracted message.");
16430
- }
16431
- const rootExtractedMessageOp = extractedMessageOps.get(i18nOp.root);
16432
- if (rootExtractedMessageOp === void 0) {
16433
- throw Error("Could not find extracted message op for root i18n block.");
16434
- }
16435
- mergeParams(rootExtractedMessageOp.params, childExtractedMessageOp.params);
16436
- mergeParams(rootExtractedMessageOp.postprocessingParams, childExtractedMessageOp.postprocessingParams);
16437
- }
16438
- }
16439
- }
16440
- function mergeParams(to, from) {
16441
- for (const [placeholder, fromValues] of from) {
16442
- const toValues = to.get(placeholder) || [];
16443
- const flags = fromValues[0].flags;
16444
- if (flags & I18nParamValueFlags.CloseTag && !(flags & I18nParamValueFlags.OpenTag)) {
16445
- to.set(placeholder, [...fromValues, ...toValues]);
16446
- } else {
16447
- to.set(placeholder, [...toValues, ...fromValues]);
16448
- }
16449
- }
16450
- }
16451
-
16452
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/pure_function_extraction.mjs
16618
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/pure_function_extraction.mjs
16453
16619
  function extractPureFunctions(job) {
16454
16620
  for (const view of job.units) {
16455
16621
  for (const op of view.ops()) {
@@ -16491,7 +16657,7 @@ var PureFunctionConstant = class extends GenericKeyFn {
16491
16657
  }
16492
16658
  };
16493
16659
 
16494
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/pure_literal_structures.mjs
16660
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/pure_literal_structures.mjs
16495
16661
  function generatePureLiteralStructures(job) {
16496
16662
  for (const unit of job.units) {
16497
16663
  for (const op of unit.update) {
@@ -16538,7 +16704,7 @@ function transformLiteralMap(expr) {
16538
16704
  return new PureFunctionExpr(literalMap(derivedEntries), nonConstantArgs);
16539
16705
  }
16540
16706
 
16541
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/instruction.mjs
16707
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/instruction.mjs
16542
16708
  function element(slot, tag, constIndex, localRefIndex, sourceSpan) {
16543
16709
  return elementOrContainerBase(Identifiers.element, slot, tag, constIndex, localRefIndex, sourceSpan);
16544
16710
  }
@@ -16572,13 +16738,21 @@ function elementContainer(slot, constIndex, localRefIndex, sourceSpan) {
16572
16738
  function elementContainerEnd() {
16573
16739
  return call(Identifiers.elementContainerEnd, [], null);
16574
16740
  }
16575
- function template(slot, templateFnRef, decls, vars, tag, constIndex, sourceSpan) {
16576
- const args = [literal(slot), templateFnRef, literal(decls), literal(vars)];
16577
- if (tag !== null || constIndex !== null) {
16578
- args.push(literal(tag));
16579
- if (constIndex !== null) {
16580
- args.push(literal(constIndex));
16581
- }
16741
+ function template(slot, templateFnRef, decls, vars, tag, constIndex, localRefs, sourceSpan) {
16742
+ const args = [
16743
+ literal(slot),
16744
+ templateFnRef,
16745
+ literal(decls),
16746
+ literal(vars),
16747
+ literal(tag),
16748
+ literal(constIndex)
16749
+ ];
16750
+ if (localRefs !== null) {
16751
+ args.push(literal(localRefs));
16752
+ args.push(importExpr(Identifiers.templateRefExtractor));
16753
+ }
16754
+ while (args[args.length - 1].isEquivalent(NULL_EXPR)) {
16755
+ args.pop();
16582
16756
  }
16583
16757
  return call(Identifiers.templateCreate, args, sourceSpan);
16584
16758
  }
@@ -16652,7 +16826,7 @@ function defer(selfSlot, primarySlot, dependencyResolverFn, loadingSlot, placeho
16652
16826
  const args = [
16653
16827
  literal(selfSlot),
16654
16828
  literal(primarySlot),
16655
- literal(dependencyResolverFn),
16829
+ dependencyResolverFn != null ? dependencyResolverFn : literal(null),
16656
16830
  literal(loadingSlot),
16657
16831
  literal(placeholderSlot),
16658
16832
  literal(errorSlot),
@@ -16732,6 +16906,9 @@ function repeaterCreate(slot, viewFnName, decls, vars, tag, constIndex, trackByF
16732
16906
  function repeater(metadataSlot, collection, sourceSpan) {
16733
16907
  return call(Identifiers.repeater, [literal(metadataSlot), collection], sourceSpan);
16734
16908
  }
16909
+ function deferWhen(prefetch, expr, sourceSpan) {
16910
+ return call(prefetch ? Identifiers.deferPrefetchWhen : Identifiers.deferWhen, [expr], sourceSpan);
16911
+ }
16735
16912
  function i18n(slot, constIndex, subTemplateIndex) {
16736
16913
  const args = [literal(slot), literal(constIndex)];
16737
16914
  if (subTemplateIndex) {
@@ -17038,7 +17215,7 @@ function callVariadicInstruction(config, baseArgs, interpolationArgs, extraArgs,
17038
17215
  return createStatementOp(callVariadicInstructionExpr(config, baseArgs, interpolationArgs, extraArgs, sourceSpan).toStmt());
17039
17216
  }
17040
17217
 
17041
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/reify.mjs
17218
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/reify.mjs
17042
17219
  var sanitizerIdentifierMap = /* @__PURE__ */ new Map([
17043
17220
  [SanitizerFn.Html, Identifiers.sanitizeHtml],
17044
17221
  [SanitizerFn.IframeAttribute, Identifiers.validateIframeAttribute],
@@ -17092,8 +17269,11 @@ function reifyCreateOperations(unit, ops) {
17092
17269
  if (!(unit instanceof ViewCompilationUnit)) {
17093
17270
  throw new Error(`AssertionError: must be compiling a component`);
17094
17271
  }
17272
+ if (Array.isArray(op.localRefs)) {
17273
+ throw new Error(`AssertionError: local refs array should have been extracted into a constant`);
17274
+ }
17095
17275
  const childView = unit.job.views.get(op.xref);
17096
- OpList.replace(op, template(op.handle.slot, variable(childView.fnName), childView.decls, childView.vars, op.tag, op.attributes, op.sourceSpan));
17276
+ OpList.replace(op, template(op.handle.slot, variable(childView.fnName), childView.decls, childView.vars, op.tag, op.attributes, op.localRefs, op.sourceSpan));
17097
17277
  break;
17098
17278
  case OpKind.DisableBindings:
17099
17279
  OpList.replace(op, disableBindings2());
@@ -17130,7 +17310,7 @@ function reifyCreateOperations(unit, ops) {
17130
17310
  break;
17131
17311
  case OpKind.Defer:
17132
17312
  const timerScheduling = !!op.loadingMinimumTime || !!op.loadingAfterTime || !!op.placeholderMinimumTime;
17133
- OpList.replace(op, defer(op.handle.slot, op.mainSlot.slot, null, (_b2 = (_a2 = op.loadingSlot) == null ? void 0 : _a2.slot) != null ? _b2 : null, (_d2 = (_c2 = op.placeholderSlot) == null ? void 0 : _c2.slot) != null ? _d2 : null, (_f2 = (_e2 = op.errorSlot) == null ? void 0 : _e2.slot) != null ? _f2 : null, op.loadingConfig, op.placeholderConfig, timerScheduling, op.sourceSpan));
17313
+ OpList.replace(op, defer(op.handle.slot, op.mainSlot.slot, op.resolverFn, (_b2 = (_a2 = op.loadingSlot) == null ? void 0 : _a2.slot) != null ? _b2 : null, (_d2 = (_c2 = op.placeholderSlot) == null ? void 0 : _c2.slot) != null ? _d2 : null, (_f2 = (_e2 = op.errorSlot) == null ? void 0 : _e2.slot) != null ? _f2 : null, op.loadingConfig, op.placeholderConfig, timerScheduling, op.sourceSpan));
17134
17314
  break;
17135
17315
  case OpKind.DeferOn:
17136
17316
  let args = [];
@@ -17243,7 +17423,7 @@ function reifyUpdateOperations(_unit, ops) {
17243
17423
  OpList.replace(op, i18nExp(op.expression, op.sourceSpan));
17244
17424
  break;
17245
17425
  case OpKind.I18nApply:
17246
- OpList.replace(op, i18nApply(op.targetSlot.slot, op.sourceSpan));
17426
+ OpList.replace(op, i18nApply(op.handle.slot, op.sourceSpan));
17247
17427
  break;
17248
17428
  case OpKind.InterpolateText:
17249
17429
  OpList.replace(op, textInterpolate(op.interpolation.strings, op.interpolation.expressions, op.sourceSpan));
@@ -17284,6 +17464,9 @@ function reifyUpdateOperations(_unit, ops) {
17284
17464
  case OpKind.Repeater:
17285
17465
  OpList.replace(op, repeater(op.targetSlot.slot, op.collection, op.sourceSpan));
17286
17466
  break;
17467
+ case OpKind.DeferWhen:
17468
+ OpList.replace(op, deferWhen(op.prefetch, op.expr, op.sourceSpan));
17469
+ break;
17287
17470
  case OpKind.Statement:
17288
17471
  break;
17289
17472
  default:
@@ -17361,7 +17544,7 @@ function reifyListenerHandler(unit, name, handlerOps, consumesDollarEvent) {
17361
17544
  return fn(params, handlerStmts, void 0, void 0, name);
17362
17545
  }
17363
17546
 
17364
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/remove_empty_bindings.mjs
17547
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/remove_empty_bindings.mjs
17365
17548
  function removeEmptyBindings(job) {
17366
17549
  for (const unit of job.units) {
17367
17550
  for (const op of unit.update) {
@@ -17382,7 +17565,23 @@ function removeEmptyBindings(job) {
17382
17565
  }
17383
17566
  }
17384
17567
 
17385
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/repeater_derived_vars.mjs
17568
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/remove_i18n_contexts.mjs
17569
+ function removeI18nContexts(job) {
17570
+ for (const unit of job.units) {
17571
+ for (const op of unit.create) {
17572
+ switch (op.kind) {
17573
+ case OpKind.I18nContext:
17574
+ OpList.remove(op);
17575
+ break;
17576
+ case OpKind.I18nStart:
17577
+ op.context = null;
17578
+ break;
17579
+ }
17580
+ }
17581
+ }
17582
+ }
17583
+
17584
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/repeater_derived_vars.mjs
17386
17585
  function generateRepeaterDerivedVars(job) {
17387
17586
  const repeaters = /* @__PURE__ */ new Map();
17388
17587
  for (const unit of job.units) {
@@ -17414,7 +17613,7 @@ function generateRepeaterDerivedVars(job) {
17414
17613
  }
17415
17614
  }
17416
17615
 
17417
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/resolve_contexts.mjs
17616
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/resolve_contexts.mjs
17418
17617
  function resolveContexts(job) {
17419
17618
  for (const unit of job.units) {
17420
17619
  processLexicalScope(unit, unit.create);
@@ -17455,7 +17654,7 @@ function processLexicalScope(view, ops) {
17455
17654
  }
17456
17655
  }
17457
17656
 
17458
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/resolve_dollar_event.mjs
17657
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/resolve_dollar_event.mjs
17459
17658
  function resolveDollarEvent(job) {
17460
17659
  for (const unit of job.units) {
17461
17660
  transformDollarEvent(unit, unit.create);
@@ -17476,15 +17675,15 @@ function transformDollarEvent(unit, ops) {
17476
17675
  }
17477
17676
  }
17478
17677
 
17479
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/resolve_i18n_element_placeholders.mjs
17678
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/resolve_i18n_element_placeholders.mjs
17480
17679
  function resolveI18nElementPlaceholders(job) {
17481
- const extractedMessageOps = /* @__PURE__ */ new Map();
17680
+ const i18nContexts = /* @__PURE__ */ new Map();
17482
17681
  const elements = /* @__PURE__ */ new Map();
17483
17682
  for (const unit of job.units) {
17484
17683
  for (const op of unit.create) {
17485
17684
  switch (op.kind) {
17486
- case OpKind.ExtractedMessage:
17487
- extractedMessageOps.set(op.owner, op);
17685
+ case OpKind.I18nContext:
17686
+ i18nContexts.set(op.xref, op);
17488
17687
  break;
17489
17688
  case OpKind.ElementStart:
17490
17689
  elements.set(op.xref, op);
@@ -17497,10 +17696,10 @@ function resolveI18nElementPlaceholders(job) {
17497
17696
  for (const op of unit.create) {
17498
17697
  switch (op.kind) {
17499
17698
  case OpKind.I18nStart:
17500
- if (!extractedMessageOps.has(op.xref)) {
17501
- throw Error("Could not find extracted message for i18n op");
17699
+ if (!op.context) {
17700
+ throw Error("Could not find i18n context for i18n op");
17502
17701
  }
17503
- currentOps = { i18n: op, extractedMessage: extractedMessageOps.get(op.xref) };
17702
+ currentOps = { i18nBlock: op, i18nContext: i18nContexts.get(op.context) };
17504
17703
  break;
17505
17704
  case OpKind.I18nEnd:
17506
17705
  currentOps = null;
@@ -17515,7 +17714,7 @@ function resolveI18nElementPlaceholders(job) {
17515
17714
  if (closeName === "") {
17516
17715
  flags |= I18nParamValueFlags.CloseTag;
17517
17716
  }
17518
- addParam(currentOps.extractedMessage.params, startName, op.handle.slot, currentOps.i18n.subTemplateIndex, flags);
17717
+ addParam(currentOps.i18nContext.params, startName, op.handle.slot, currentOps.i18nBlock.subTemplateIndex, flags);
17519
17718
  }
17520
17719
  break;
17521
17720
  case OpKind.ElementEnd:
@@ -17526,7 +17725,7 @@ function resolveI18nElementPlaceholders(job) {
17526
17725
  }
17527
17726
  const { closeName } = startOp.i18nPlaceholder;
17528
17727
  if (closeName !== "") {
17529
- addParam(currentOps.extractedMessage.params, closeName, startOp.handle.slot, currentOps.i18n.subTemplateIndex, I18nParamValueFlags.ElementTag | I18nParamValueFlags.CloseTag);
17728
+ addParam(currentOps.i18nContext.params, closeName, startOp.handle.slot, currentOps.i18nBlock.subTemplateIndex, I18nParamValueFlags.ElementTag | I18nParamValueFlags.CloseTag);
17530
17729
  }
17531
17730
  }
17532
17731
  break;
@@ -17535,9 +17734,9 @@ function resolveI18nElementPlaceholders(job) {
17535
17734
  if (currentOps === null) {
17536
17735
  throw Error("i18n tag placeholder should only occur inside an i18n block");
17537
17736
  }
17538
- const subTemplateIndex = getSubTemplateIndexForTemplateTag(job, currentOps.i18n, op);
17539
- addParam(currentOps.extractedMessage.params, op.i18nPlaceholder.startName, op.handle.slot, subTemplateIndex, I18nParamValueFlags.TemplateTag);
17540
- addParam(currentOps.extractedMessage.params, op.i18nPlaceholder.closeName, op.handle.slot, subTemplateIndex, I18nParamValueFlags.TemplateTag | I18nParamValueFlags.CloseTag);
17737
+ const subTemplateIndex = getSubTemplateIndexForTemplateTag(job, currentOps.i18nBlock, op);
17738
+ addParam(currentOps.i18nContext.params, op.i18nPlaceholder.startName, op.handle.slot, subTemplateIndex, I18nParamValueFlags.TemplateTag);
17739
+ addParam(currentOps.i18nContext.params, op.i18nPlaceholder.closeName, op.handle.slot, subTemplateIndex, I18nParamValueFlags.TemplateTag | I18nParamValueFlags.CloseTag);
17541
17740
  }
17542
17741
  break;
17543
17742
  }
@@ -17559,18 +17758,18 @@ function addParam(params, placeholder, value, subTemplateIndex, flags = I18nPara
17559
17758
  params.set(placeholder, values);
17560
17759
  }
17561
17760
 
17562
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/resolve_i18n_expression_placeholders.mjs
17761
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/resolve_i18n_expression_placeholders.mjs
17563
17762
  function resolveI18nExpressionPlaceholders(job) {
17564
- const i18nOps = /* @__PURE__ */ new Map();
17565
- const extractedMessageOps = /* @__PURE__ */ new Map();
17763
+ const subTemplateIndicies = /* @__PURE__ */ new Map();
17764
+ const i18nContexts = /* @__PURE__ */ new Map();
17566
17765
  for (const unit of job.units) {
17567
17766
  for (const op of unit.create) {
17568
17767
  switch (op.kind) {
17569
17768
  case OpKind.I18nStart:
17570
- i18nOps.set(op.xref, op);
17769
+ subTemplateIndicies.set(op.xref, op.subTemplateIndex);
17571
17770
  break;
17572
- case OpKind.ExtractedMessage:
17573
- extractedMessageOps.set(op.owner, op);
17771
+ case OpKind.I18nContext:
17772
+ i18nContexts.set(op.xref, op);
17574
17773
  break;
17575
17774
  }
17576
17775
  }
@@ -17579,30 +17778,20 @@ function resolveI18nExpressionPlaceholders(job) {
17579
17778
  for (const unit of job.units) {
17580
17779
  for (const op of unit.update) {
17581
17780
  if (op.kind === OpKind.I18nExpression) {
17582
- const i18nOp = i18nOps.get(op.owner);
17583
- let index = expressionIndices.get(op.owner) || 0;
17584
- if (!i18nOp) {
17585
- throw Error("Cannot find corresponding i18n block for i18nExpr");
17586
- }
17587
- const extractedMessageOp = extractedMessageOps.get(i18nOp.xref);
17588
- if (!extractedMessageOp) {
17589
- throw Error("Cannot find extracted message for i18n block");
17590
- }
17591
- const params = op.resolutionTime === I18nParamResolutionTime.Creation ? extractedMessageOp.params : extractedMessageOp.postprocessingParams;
17781
+ const index = expressionIndices.get(op.context) || 0;
17782
+ const i18nContext = i18nContexts.get(op.context);
17783
+ const subTemplateIndex = subTemplateIndicies.get(i18nContext.i18nBlock);
17784
+ const params = op.resolutionTime === I18nParamResolutionTime.Creation ? i18nContext.params : i18nContext.postprocessingParams;
17592
17785
  const values = params.get(op.i18nPlaceholder) || [];
17593
- values.push({
17594
- value: index,
17595
- subTemplateIndex: i18nOp.subTemplateIndex,
17596
- flags: I18nParamValueFlags.None
17597
- });
17786
+ values.push({ value: index, subTemplateIndex, flags: I18nParamValueFlags.None });
17598
17787
  params.set(op.i18nPlaceholder, values);
17599
- expressionIndices.set(op.owner, index + 1);
17788
+ expressionIndices.set(op.context, index + 1);
17600
17789
  }
17601
17790
  }
17602
17791
  }
17603
17792
  }
17604
17793
 
17605
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/resolve_names.mjs
17794
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/resolve_names.mjs
17606
17795
  function resolveNames(job) {
17607
17796
  for (const unit of job.units) {
17608
17797
  processLexicalScope2(unit, unit.create, null);
@@ -17666,7 +17855,7 @@ function processLexicalScope2(unit, ops, savedView) {
17666
17855
  }
17667
17856
  }
17668
17857
 
17669
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/resolve_sanitizers.mjs
17858
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/resolve_sanitizers.mjs
17670
17859
  var sanitizers = /* @__PURE__ */ new Map([
17671
17860
  [SecurityContext.HTML, SanitizerFn.Html],
17672
17861
  [SecurityContext.SCRIPT, SanitizerFn.Script],
@@ -17703,7 +17892,7 @@ function isIframeElement(op) {
17703
17892
  return op.kind === OpKind.ElementStart && ((_a2 = op.tag) == null ? void 0 : _a2.toLowerCase()) === "iframe";
17704
17893
  }
17705
17894
 
17706
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/save_restore_view.mjs
17895
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/save_restore_view.mjs
17707
17896
  function saveAndRestoreView(job) {
17708
17897
  for (const unit of job.units) {
17709
17898
  unit.create.prepend([
@@ -17748,7 +17937,7 @@ function addSaveRestoreViewOperationToListener(unit, op) {
17748
17937
  }
17749
17938
  }
17750
17939
 
17751
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/slot_allocation.mjs
17940
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/slot_allocation.mjs
17752
17941
  function allocateSlots(job) {
17753
17942
  const slotMap = /* @__PURE__ */ new Map();
17754
17943
  for (const unit of job.units) {
@@ -17773,7 +17962,7 @@ function allocateSlots(job) {
17773
17962
  }
17774
17963
  }
17775
17964
 
17776
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/style_binding_specialization.mjs
17965
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/style_binding_specialization.mjs
17777
17966
  function specializeStyleBindings(job) {
17778
17967
  for (const unit of job.units) {
17779
17968
  for (const op of unit.update) {
@@ -17803,7 +17992,7 @@ function specializeStyleBindings(job) {
17803
17992
  }
17804
17993
  }
17805
17994
 
17806
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/temporary_variables.mjs
17995
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/temporary_variables.mjs
17807
17996
  function generateTemporaryVariables(job) {
17808
17997
  for (const unit of job.units) {
17809
17998
  unit.create.prepend(generateTemporaries(unit.create));
@@ -17861,7 +18050,7 @@ function assignName(names, expr) {
17861
18050
  expr.name = name;
17862
18051
  }
17863
18052
 
17864
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/track_fn_generation.mjs
18053
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/track_fn_generation.mjs
17865
18054
  function generateTrackFns(job) {
17866
18055
  for (const unit of job.units) {
17867
18056
  for (const op of unit.create) {
@@ -17891,7 +18080,7 @@ function generateTrackFns(job) {
17891
18080
  }
17892
18081
  }
17893
18082
 
17894
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/track_fn_optimization.mjs
18083
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/track_fn_optimization.mjs
17895
18084
  function optimizeTrackFns(job) {
17896
18085
  for (const unit of job.units) {
17897
18086
  for (const op of unit.create) {
@@ -17938,7 +18127,7 @@ function isTrackByFunctionCall(rootView, expr) {
17938
18127
  return true;
17939
18128
  }
17940
18129
 
17941
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/track_variables.mjs
18130
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/track_variables.mjs
17942
18131
  function generateTrackVariables(job) {
17943
18132
  for (const unit of job.units) {
17944
18133
  for (const op of unit.create) {
@@ -17959,7 +18148,7 @@ function generateTrackVariables(job) {
17959
18148
  }
17960
18149
  }
17961
18150
 
17962
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/var_counting.mjs
18151
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/var_counting.mjs
17963
18152
  function countVariables(job) {
17964
18153
  for (const unit of job.units) {
17965
18154
  let varCount = 0;
@@ -18064,7 +18253,7 @@ function isSingletonInterpolation(expr) {
18064
18253
  return true;
18065
18254
  }
18066
18255
 
18067
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/variable_optimization.mjs
18256
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/variable_optimization.mjs
18068
18257
  function optimizeVariables(job) {
18069
18258
  for (const unit of job.units) {
18070
18259
  inlineAlwaysInlineVariables(unit.create);
@@ -18314,7 +18503,7 @@ function allowConservativeInlining(decl, target) {
18314
18503
  }
18315
18504
  }
18316
18505
 
18317
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/wrap_icus.mjs
18506
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/phases/wrap_icus.mjs
18318
18507
  function wrapI18nIcus(job) {
18319
18508
  for (const unit of job.units) {
18320
18509
  let currentI18nOp = null;
@@ -18338,7 +18527,7 @@ function wrapI18nIcus(job) {
18338
18527
  }
18339
18528
  }
18340
18529
 
18341
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/emit.mjs
18530
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/emit.mjs
18342
18531
  var phases = [
18343
18532
  { kind: CompilationJobKind.Tmpl, fn: removeContentSelectors },
18344
18533
  { kind: CompilationJobKind.Host, fn: parseHostStyleProperties },
@@ -18347,6 +18536,7 @@ var phases = [
18347
18536
  { kind: CompilationJobKind.Both, fn: specializeBindings },
18348
18537
  { kind: CompilationJobKind.Tmpl, fn: propagateI18nBlocks },
18349
18538
  { kind: CompilationJobKind.Tmpl, fn: wrapI18nIcus },
18539
+ { kind: CompilationJobKind.Tmpl, fn: createI18nContexts },
18350
18540
  { kind: CompilationJobKind.Both, fn: extractAttributes },
18351
18541
  { kind: CompilationJobKind.Both, fn: parseExtractedStyles },
18352
18542
  { kind: CompilationJobKind.Tmpl, fn: removeEmptyBindings },
@@ -18356,7 +18546,7 @@ var phases = [
18356
18546
  { kind: CompilationJobKind.Tmpl, fn: createPipes },
18357
18547
  { kind: CompilationJobKind.Tmpl, fn: configureDeferInstructions },
18358
18548
  { kind: CompilationJobKind.Tmpl, fn: extractI18nText },
18359
- { kind: CompilationJobKind.Tmpl, fn: extractI18nICUs },
18549
+ { kind: CompilationJobKind.Tmpl, fn: createI18nIcuExpressions },
18360
18550
  { kind: CompilationJobKind.Tmpl, fn: applyI18nExpressions },
18361
18551
  { kind: CompilationJobKind.Tmpl, fn: createVariadicPipes },
18362
18552
  { kind: CompilationJobKind.Both, fn: generatePureLiteralStructures },
@@ -18377,16 +18567,17 @@ var phases = [
18377
18567
  { kind: CompilationJobKind.Both, fn: expandSafeReads },
18378
18568
  { kind: CompilationJobKind.Both, fn: generateTemporaryVariables },
18379
18569
  { kind: CompilationJobKind.Tmpl, fn: allocateSlots },
18380
- { kind: CompilationJobKind.Tmpl, fn: extractI18nMessages },
18570
+ { kind: CompilationJobKind.Tmpl, fn: createDeferDepsFns },
18381
18571
  { kind: CompilationJobKind.Tmpl, fn: resolveI18nElementPlaceholders },
18382
18572
  { kind: CompilationJobKind.Tmpl, fn: resolveI18nExpressionPlaceholders },
18383
- { kind: CompilationJobKind.Tmpl, fn: propogateI18nPlaceholders },
18384
- { kind: CompilationJobKind.Tmpl, fn: formatI18nParams },
18573
+ { kind: CompilationJobKind.Tmpl, fn: mergeI18nContexts },
18574
+ { kind: CompilationJobKind.Tmpl, fn: extractI18nMessages },
18385
18575
  { kind: CompilationJobKind.Tmpl, fn: generateTrackFns },
18386
18576
  { kind: CompilationJobKind.Tmpl, fn: collectI18nConsts },
18387
18577
  { kind: CompilationJobKind.Tmpl, fn: collectConstExpressions },
18388
18578
  { kind: CompilationJobKind.Both, fn: collectElementConsts },
18389
18579
  { kind: CompilationJobKind.Tmpl, fn: assignI18nSlotDependencies },
18580
+ { kind: CompilationJobKind.Tmpl, fn: removeI18nContexts },
18390
18581
  { kind: CompilationJobKind.Both, fn: countVariables },
18391
18582
  { kind: CompilationJobKind.Tmpl, fn: generateAdvance },
18392
18583
  { kind: CompilationJobKind.Both, fn: optimizeVariables },
@@ -18501,10 +18692,10 @@ function emitHostBindingFunction(job) {
18501
18692
  );
18502
18693
  }
18503
18694
 
18504
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/src/ingest.mjs
18695
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/src/ingest.mjs
18505
18696
  var compatibilityMode = CompatibilityMode.TemplateDefinitionBuilder;
18506
- function ingestComponent(componentName, template2, constantPool, relativeContextFilePath, i18nUseExternalIds) {
18507
- const job = new ComponentCompilationJob(componentName, constantPool, compatibilityMode, relativeContextFilePath, i18nUseExternalIds);
18697
+ function ingestComponent(componentName, template2, constantPool, relativeContextFilePath, i18nUseExternalIds, deferBlocksMeta) {
18698
+ const job = new ComponentCompilationJob(componentName, constantPool, compatibilityMode, relativeContextFilePath, i18nUseExternalIds, deferBlocksMeta);
18508
18699
  ingestNodes(job.root, template2);
18509
18700
  return job;
18510
18701
  }
@@ -18587,6 +18778,7 @@ function ingestNodes(unit, template2) {
18587
18778
  }
18588
18779
  }
18589
18780
  function ingestElement(unit, element2) {
18781
+ var _a2;
18590
18782
  if (element2.i18n !== void 0 && !(element2.i18n instanceof Message || element2.i18n instanceof TagPlaceholder)) {
18591
18783
  throw Error(`Unhandled i18n metadata type for element: ${element2.i18n.constructor.name}`);
18592
18784
  }
@@ -18597,7 +18789,7 @@ function ingestElement(unit, element2) {
18597
18789
  ingestBindings(unit, startOp, element2);
18598
18790
  ingestReferences(startOp, element2);
18599
18791
  ingestNodes(unit, element2.children);
18600
- const endOp = createElementEndOp(id, element2.endSourceSpan);
18792
+ const endOp = createElementEndOp(id, (_a2 = element2.endSourceSpan) != null ? _a2 : element2.startSourceSpan);
18601
18793
  unit.create.push(endOp);
18602
18794
  if (element2.i18n instanceof Message) {
18603
18795
  const i18nBlockId = unit.job.allocateXrefId();
@@ -18720,12 +18912,16 @@ function ingestDeferView(unit, suffix, children, sourceSpan) {
18720
18912
  }
18721
18913
  function ingestDeferBlock(unit, deferBlock) {
18722
18914
  var _a2, _b2, _c2, _d2, _e2, _f2, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p;
18915
+ const blockMeta = unit.job.deferBlocksMeta.get(deferBlock);
18916
+ if (blockMeta === void 0) {
18917
+ throw new Error(`AssertionError: unable to find metadata for deferred block`);
18918
+ }
18723
18919
  const main = ingestDeferView(unit, "", deferBlock.children, deferBlock.sourceSpan);
18724
18920
  const loading = ingestDeferView(unit, "Loading", (_a2 = deferBlock.loading) == null ? void 0 : _a2.children, (_b2 = deferBlock.loading) == null ? void 0 : _b2.sourceSpan);
18725
18921
  const placeholder = ingestDeferView(unit, "Placeholder", (_c2 = deferBlock.placeholder) == null ? void 0 : _c2.children, (_d2 = deferBlock.placeholder) == null ? void 0 : _d2.sourceSpan);
18726
18922
  const error2 = ingestDeferView(unit, "Error", (_e2 = deferBlock.error) == null ? void 0 : _e2.children, (_f2 = deferBlock.error) == null ? void 0 : _f2.sourceSpan);
18727
18923
  const deferXref = unit.job.allocateXrefId();
18728
- const deferOp = createDeferOp(deferXref, main.xref, main.handle, deferBlock.sourceSpan);
18924
+ const deferOp = createDeferOp(deferXref, main.xref, main.handle, blockMeta, deferBlock.sourceSpan);
18729
18925
  deferOp.placeholderView = (_g = placeholder == null ? void 0 : placeholder.xref) != null ? _g : null;
18730
18926
  deferOp.placeholderSlot = (_h = placeholder == null ? void 0 : placeholder.handle) != null ? _h : null;
18731
18927
  deferOp.loadingSlot = (_i = loading == null ? void 0 : loading.handle) != null ? _i : null;
@@ -18736,17 +18932,18 @@ function ingestDeferBlock(unit, deferBlock) {
18736
18932
  unit.create.push(deferOp);
18737
18933
  let prefetch = false;
18738
18934
  let deferOnOps = [];
18935
+ let deferWhenOps = [];
18739
18936
  for (const triggers of [deferBlock.triggers, deferBlock.prefetchTriggers]) {
18740
18937
  if (triggers.idle !== void 0) {
18741
- const deferOnOp = createDeferOnOp(deferXref, { kind: DeferTriggerKind.Idle }, prefetch, null);
18938
+ const deferOnOp = createDeferOnOp(deferXref, { kind: DeferTriggerKind.Idle }, prefetch, triggers.idle.sourceSpan);
18742
18939
  deferOnOps.push(deferOnOp);
18743
18940
  }
18744
18941
  if (triggers.immediate !== void 0) {
18745
- const deferOnOp = createDeferOnOp(deferXref, { kind: DeferTriggerKind.Immediate }, prefetch, null);
18942
+ const deferOnOp = createDeferOnOp(deferXref, { kind: DeferTriggerKind.Immediate }, prefetch, triggers.immediate.sourceSpan);
18746
18943
  deferOnOps.push(deferOnOp);
18747
18944
  }
18748
18945
  if (triggers.timer !== void 0) {
18749
- const deferOnOp = createDeferOnOp(deferXref, { kind: DeferTriggerKind.Timer, delay: triggers.timer.delay }, prefetch, null);
18946
+ const deferOnOp = createDeferOnOp(deferXref, { kind: DeferTriggerKind.Timer, delay: triggers.timer.delay }, prefetch, triggers.timer.sourceSpan);
18750
18947
  deferOnOps.push(deferOnOp);
18751
18948
  }
18752
18949
  if (triggers.hover !== void 0) {
@@ -18757,7 +18954,7 @@ function ingestDeferBlock(unit, deferBlock) {
18757
18954
  targetSlot: null,
18758
18955
  targetView: null,
18759
18956
  targetSlotViewSteps: null
18760
- }, prefetch, null);
18957
+ }, prefetch, triggers.hover.sourceSpan);
18761
18958
  deferOnOps.push(deferOnOp);
18762
18959
  }
18763
18960
  if (triggers.interaction !== void 0) {
@@ -18768,7 +18965,7 @@ function ingestDeferBlock(unit, deferBlock) {
18768
18965
  targetSlot: null,
18769
18966
  targetView: null,
18770
18967
  targetSlotViewSteps: null
18771
- }, prefetch, null);
18968
+ }, prefetch, triggers.interaction.sourceSpan);
18772
18969
  deferOnOps.push(deferOnOp);
18773
18970
  }
18774
18971
  if (triggers.viewport !== void 0) {
@@ -18779,21 +18976,26 @@ function ingestDeferBlock(unit, deferBlock) {
18779
18976
  targetSlot: null,
18780
18977
  targetView: null,
18781
18978
  targetSlotViewSteps: null
18782
- }, prefetch, null);
18979
+ }, prefetch, triggers.viewport.sourceSpan);
18783
18980
  deferOnOps.push(deferOnOp);
18784
18981
  }
18785
- if (deferOnOps.length === 0) {
18982
+ if (triggers.when !== void 0) {
18983
+ const deferOnOp = createDeferWhenOp(deferXref, convertAst(triggers.when.value, unit.job, triggers.when.sourceSpan), prefetch, triggers.when.sourceSpan);
18984
+ deferWhenOps.push(deferOnOp);
18985
+ }
18986
+ if (deferOnOps.length === 0 && deferWhenOps.length === 0) {
18786
18987
  deferOnOps.push(createDeferOnOp(deferXref, { kind: DeferTriggerKind.Idle }, false, null));
18787
18988
  }
18788
18989
  prefetch = true;
18789
18990
  }
18790
18991
  unit.create.push(deferOnOps);
18992
+ unit.update.push(deferWhenOps);
18791
18993
  }
18792
18994
  function ingestIcu(unit, icu) {
18793
18995
  var _a2;
18794
- if (icu.i18n instanceof Message) {
18996
+ if (icu.i18n instanceof Message && isSingleI18nIcu(icu.i18n)) {
18795
18997
  const xref = unit.job.allocateXrefId();
18796
- unit.create.push(createIcuOp(xref, icu.i18n, null));
18998
+ unit.create.push(createIcuOp(xref, icu.i18n, icu.i18n.nodes[0], icuFromI18nMessage(icu.i18n).name, null));
18797
18999
  unit.update.push(createIcuUpdateOp(xref, null));
18798
19000
  } else {
18799
19001
  throw Error(`Unhandled i18n metadata type for ICU: ${(_a2 = icu.i18n) == null ? void 0 : _a2.constructor.name}`);
@@ -18851,6 +19053,15 @@ function convertAst(ast, job, baseSourceSpan) {
18851
19053
  return new ReadPropExpr(convertAst(ast.receiver, job, baseSourceSpan), ast.name, null, convertSourceSpan(ast.span, baseSourceSpan));
18852
19054
  }
18853
19055
  } else if (ast instanceof PropertyWrite) {
19056
+ if (ast.receiver instanceof ImplicitReceiver) {
19057
+ return new WritePropExpr(
19058
+ new ContextExpr(job.root.xref),
19059
+ ast.name,
19060
+ convertAst(ast.value, job, baseSourceSpan),
19061
+ null,
19062
+ convertSourceSpan(ast.span, baseSourceSpan)
19063
+ );
19064
+ }
18854
19065
  return new WritePropExpr(convertAst(ast.receiver, job, baseSourceSpan), ast.name, convertAst(ast.value, job, baseSourceSpan), void 0, convertSourceSpan(ast.span, baseSourceSpan));
18855
19066
  } else if (ast instanceof KeyedWrite) {
18856
19067
  return new WriteKeyExpr(convertAst(ast.receiver, job, baseSourceSpan), convertAst(ast.key, job, baseSourceSpan), convertAst(ast.value, job, baseSourceSpan), void 0, convertSourceSpan(ast.span, baseSourceSpan));
@@ -18900,7 +19111,7 @@ function convertAst(ast, job, baseSourceSpan) {
18900
19111
  } else if (ast instanceof EmptyExpr) {
18901
19112
  return new EmptyExpr2(convertSourceSpan(ast.span, baseSourceSpan));
18902
19113
  } else {
18903
- throw new Error(`Unhandled expression type: ${ast.constructor.name}`);
19114
+ throw new Error(`Unhandled expression type "${ast.constructor.name}" in file "${baseSourceSpan == null ? void 0 : baseSourceSpan.start.file.url}"`);
18904
19115
  }
18905
19116
  }
18906
19117
  function isPlainTemplate(tmpl) {
@@ -19038,15 +19249,16 @@ function ingestControlFlowInsertionPoint(unit, xref, node) {
19038
19249
  for (const attr of root.attributes) {
19039
19250
  ingestBinding(unit, xref, attr.name, literal(attr.value), 1, null, SecurityContext.NONE, attr.sourceSpan, BindingFlags.TextValue);
19040
19251
  }
19041
- return root instanceof Element ? root.name : root.tagName;
19252
+ const tagName = root instanceof Element ? root.name : root.tagName;
19253
+ return tagName === "ng-template" ? null : tagName;
19042
19254
  }
19043
19255
  return null;
19044
19256
  }
19045
19257
 
19046
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template/pipeline/switch/index.mjs
19258
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template/pipeline/switch/index.mjs
19047
19259
  var USE_TEMPLATE_PIPELINE = false;
19048
19260
 
19049
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/render3/view/styling_builder.mjs
19261
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/render3/view/styling_builder.mjs
19050
19262
  var IMPORTANT_FLAG = "!important";
19051
19263
  var MIN_STYLING_BINDING_SLOTS_REQUIRED = 2;
19052
19264
  var StylingBuilder = class {
@@ -19379,7 +19591,7 @@ function isEmptyExpression(ast) {
19379
19591
  return ast instanceof EmptyExpr;
19380
19592
  }
19381
19593
 
19382
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/ml_parser/html_parser.mjs
19594
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/ml_parser/html_parser.mjs
19383
19595
  var HtmlParser = class extends Parser2 {
19384
19596
  constructor() {
19385
19597
  super(getHtmlTagDefinition);
@@ -19389,7 +19601,7 @@ var HtmlParser = class extends Parser2 {
19389
19601
  }
19390
19602
  };
19391
19603
 
19392
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/ml_parser/html_whitespaces.mjs
19604
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/ml_parser/html_whitespaces.mjs
19393
19605
  var PRESERVE_WS_ATTR_NAME = "ngPreserveWhitespaces";
19394
19606
  var SKIP_WS_TRIM_TAGS = /* @__PURE__ */ new Set(["pre", "template", "textarea", "script", "style"]);
19395
19607
  var WS_CHARS = " \f\n\r \v\u1680\u180E\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF";
@@ -19455,7 +19667,7 @@ function visitAllWithSiblings(visitor, nodes) {
19455
19667
  return result;
19456
19668
  }
19457
19669
 
19458
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template_parser/binding_parser.mjs
19670
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template_parser/binding_parser.mjs
19459
19671
  var PROPERTY_PARTS_SEPARATOR = ".";
19460
19672
  var ATTRIBUTE_PREFIX = "attr";
19461
19673
  var CLASS_PREFIX = "class";
@@ -19775,7 +19987,7 @@ function moveParseSourceSpan(sourceSpan, absoluteSpan) {
19775
19987
  return new ParseSourceSpan(sourceSpan.start.moveBy(startDiff), sourceSpan.end.moveBy(endDiff), sourceSpan.fullStart.moveBy(startDiff), sourceSpan.details);
19776
19988
  }
19777
19989
 
19778
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/style_url_resolver.mjs
19990
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/style_url_resolver.mjs
19779
19991
  function isStyleUrlResolvable(url) {
19780
19992
  if (url == null || url.length === 0 || url[0] == "/")
19781
19993
  return false;
@@ -19784,7 +19996,7 @@ function isStyleUrlResolvable(url) {
19784
19996
  }
19785
19997
  var URL_WITH_SCHEMA_REGEXP = /^([^:/?#]+):/;
19786
19998
 
19787
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/template_parser/template_preparser.mjs
19999
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/template_parser/template_preparser.mjs
19788
20000
  var NG_CONTENT_SELECT_ATTR = "select";
19789
20001
  var LINK_ELEMENT = "link";
19790
20002
  var LINK_STYLE_REL_ATTR = "rel";
@@ -19854,7 +20066,7 @@ function normalizeNgContentSelect(selectAttr) {
19854
20066
  return selectAttr;
19855
20067
  }
19856
20068
 
19857
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/render3/r3_control_flow.mjs
20069
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/render3/r3_control_flow.mjs
19858
20070
  var FOR_LOOP_EXPRESSION_PATTERN = /^\s*([0-9A-Za-z_$]*)\s+of\s+([\S\s]*)/;
19859
20071
  var FOR_LOOP_TRACK_PATTERN = /^track\s+([\S\s]*)/;
19860
20072
  var CONDITIONAL_ALIAS_PATTERN = /^as\s+(.*)/;
@@ -20145,7 +20357,7 @@ function stripOptionalParentheses(param, errors) {
20145
20357
  return expression.slice(start, end);
20146
20358
  }
20147
20359
 
20148
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/render3/r3_deferred_triggers.mjs
20360
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/render3/r3_deferred_triggers.mjs
20149
20361
  var TIME_PATTERN = /^\d+\.?\d*(ms|s)?$/;
20150
20362
  var SEPARATOR_PATTERN = /^\s$/;
20151
20363
  var COMMA_DELIMITED_SYNTAX = /* @__PURE__ */ new Map([
@@ -20409,7 +20621,7 @@ function parseDeferredTime(value) {
20409
20621
  return parseFloat(time) * (units === "s" ? 1e3 : 1);
20410
20622
  }
20411
20623
 
20412
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/render3/r3_deferred_blocks.mjs
20624
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/render3/r3_deferred_blocks.mjs
20413
20625
  var PREFETCH_WHEN_PATTERN = /^prefetch\s+when\s/;
20414
20626
  var PREFETCH_ON_PATTERN = /^prefetch\s+on\s/;
20415
20627
  var MINIMUM_PARAMETER_PATTERN = /^minimum\s/;
@@ -20544,7 +20756,7 @@ function parsePrimaryTriggers(params, bindingParser, errors, placeholder) {
20544
20756
  return { triggers, prefetchTriggers };
20545
20757
  }
20546
20758
 
20547
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/render3/r3_template_transform.mjs
20759
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/render3/r3_template_transform.mjs
20548
20760
  var BIND_NAME_REGEXP = /^(?:(bind-)|(let-)|(ref-|#)|(on-)|(bindon-)|(@))(.*)$/;
20549
20761
  var KW_BIND_IDX = 1;
20550
20762
  var KW_LET_IDX = 2;
@@ -20975,7 +21187,7 @@ function textContents(node) {
20975
21187
  }
20976
21188
  }
20977
21189
 
20978
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/render3/view/i18n/context.mjs
21190
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/render3/view/i18n/context.mjs
20979
21191
  var TagType;
20980
21192
  (function(TagType2) {
20981
21193
  TagType2[TagType2["ELEMENT"] = 0] = "ELEMENT";
@@ -21110,7 +21322,7 @@ function serializePlaceholderValue(value) {
21110
21322
  }
21111
21323
  }
21112
21324
 
21113
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/render3/view/template.mjs
21325
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/render3/view/template.mjs
21114
21326
  var NG_CONTENT_SELECT_ATTR2 = "select";
21115
21327
  var NG_PROJECT_AS_ATTR_NAME = "ngProjectAs";
21116
21328
  var EVENT_BINDING_SCOPE_GLOBALS = /* @__PURE__ */ new Set(["$event"]);
@@ -21936,7 +22148,8 @@ var TemplateDefinitionBuilder = class {
21936
22148
  }
21937
22149
  }
21938
22150
  if (root !== null) {
21939
- tagName = root instanceof Element ? root.name : root.tagName;
22151
+ const name = root instanceof Element ? root.name : root.tagName;
22152
+ tagName = name === NG_TEMPLATE_TAG_NAME ? null : name;
21940
22153
  attrsExprs = this.getAttributeExpressions(NG_TEMPLATE_TAG_NAME, root.attributes, root.inputs, []);
21941
22154
  }
21942
22155
  return { tagName, attrsExprs };
@@ -22773,7 +22986,7 @@ function createClosureModeGuard2() {
22773
22986
  return typeofExpr(variable(NG_I18N_CLOSURE_MODE2)).notIdentical(literal("undefined", STRING_TYPE)).and(variable(NG_I18N_CLOSURE_MODE2));
22774
22987
  }
22775
22988
 
22776
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/render3/view/compiler.mjs
22989
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/render3/view/compiler.mjs
22777
22990
  var ATTR_REGEX = /attr\.([^\]]+)/;
22778
22991
  var COMPONENT_VARIABLE = "%COMP%";
22779
22992
  var HOST_ATTR = `_nghost-${COMPONENT_VARIABLE}`;
@@ -22886,7 +23099,7 @@ function compileComponentFromMetadata(meta, constantPool, bindingParser) {
22886
23099
  }
22887
23100
  definitionMap.set("template", templateFunctionExpression);
22888
23101
  } else {
22889
- const tpl = ingestComponent(meta.name, meta.template.nodes, constantPool, meta.relativeContextFilePath, meta.i18nUseExternalIds);
23102
+ const tpl = ingestComponent(meta.name, meta.template.nodes, constantPool, meta.relativeContextFilePath, meta.i18nUseExternalIds, meta.deferBlocks);
22890
23103
  transform(tpl, CompilationJobKind.Tmpl);
22891
23104
  const templateFn = emitTemplateFn(tpl, constantPool);
22892
23105
  if (tpl.contentSelectors !== null) {
@@ -23375,7 +23588,7 @@ function createHostDirectivesMappingArray(mapping) {
23375
23588
  return elements.length > 0 ? literalArr(elements) : null;
23376
23589
  }
23377
23590
 
23378
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/render3/view/t2_binder.mjs
23591
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/render3/view/t2_binder.mjs
23379
23592
  var R3TargetBinder = class {
23380
23593
  constructor(directiveMatcher) {
23381
23594
  this.directiveMatcher = directiveMatcher;
@@ -23980,11 +24193,11 @@ function extractScopedNodeEntities(rootScope) {
23980
24193
  return templateEntities;
23981
24194
  }
23982
24195
 
23983
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/resource_loader.mjs
24196
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/resource_loader.mjs
23984
24197
  var ResourceLoader = class {
23985
24198
  };
23986
24199
 
23987
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/jit_compiler_facade.mjs
24200
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/jit_compiler_facade.mjs
23988
24201
  var CompilerFacadeImpl = class {
23989
24202
  constructor(jitEvaluator = new JitEvaluator()) {
23990
24203
  this.jitEvaluator = jitEvaluator;
@@ -24536,17 +24749,17 @@ function publishFacade(global) {
24536
24749
  ng.\u0275compilerFacade = new CompilerFacadeImpl();
24537
24750
  }
24538
24751
 
24539
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/version.mjs
24540
- var VERSION2 = new Version("17.0.0-rc.2");
24752
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/version.mjs
24753
+ var VERSION2 = new Version("17.0.0-rc.3");
24541
24754
 
24542
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/i18n/extractor_merger.mjs
24755
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/i18n/extractor_merger.mjs
24543
24756
  var _VisitorMode;
24544
24757
  (function(_VisitorMode2) {
24545
24758
  _VisitorMode2[_VisitorMode2["Extract"] = 0] = "Extract";
24546
24759
  _VisitorMode2[_VisitorMode2["Merge"] = 1] = "Merge";
24547
24760
  })(_VisitorMode || (_VisitorMode = {}));
24548
24761
 
24549
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/ml_parser/xml_tags.mjs
24762
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/ml_parser/xml_tags.mjs
24550
24763
  var XmlTagDefinition = class {
24551
24764
  constructor() {
24552
24765
  this.closedByParent = false;
@@ -24568,7 +24781,7 @@ var XmlTagDefinition = class {
24568
24781
  };
24569
24782
  var _TAG_DEFINITION = new XmlTagDefinition();
24570
24783
 
24571
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/render3/partial/api.mjs
24784
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/render3/partial/api.mjs
24572
24785
  var FactoryTarget2;
24573
24786
  (function(FactoryTarget3) {
24574
24787
  FactoryTarget3[FactoryTarget3["Directive"] = 0] = "Directive";
@@ -24578,10 +24791,10 @@ var FactoryTarget2;
24578
24791
  FactoryTarget3[FactoryTarget3["NgModule"] = 4] = "NgModule";
24579
24792
  })(FactoryTarget2 || (FactoryTarget2 = {}));
24580
24793
 
24581
- // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/compiler.mjs
24794
+ // bazel-out/k8-fastbuild/bin/packages/compiler/src/compiler.mjs
24582
24795
  publishFacade(_global);
24583
24796
 
24584
- // bazel-out/darwin_arm64-fastbuild/bin/packages/core/schematics/migrations/block-template-entities/util.mjs
24797
+ // bazel-out/k8-fastbuild/bin/packages/core/schematics/migrations/block-template-entities/util.mjs
24585
24798
  var import_path2 = require("path");
24586
24799
  var import_typescript3 = __toESM(require("typescript"), 1);
24587
24800
  var REPLACEMENTS2 = {
@@ -24689,7 +24902,7 @@ function forEachClass(sourceFile, callback) {
24689
24902
  });
24690
24903
  }
24691
24904
 
24692
- // bazel-out/darwin_arm64-fastbuild/bin/packages/core/schematics/migrations/block-template-entities/index.mjs
24905
+ // bazel-out/k8-fastbuild/bin/packages/core/schematics/migrations/block-template-entities/index.mjs
24693
24906
  function block_template_entities_default() {
24694
24907
  return (tree) => __async(this, null, function* () {
24695
24908
  const { buildPaths, testPaths } = yield getProjectTsConfigPaths(tree);