@angular/core 17.3.2 → 17.3.4

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 (30) hide show
  1. package/esm2022/rxjs-interop/src/to_signal.mjs +2 -2
  2. package/esm2022/src/defer/instructions.mjs +2 -2
  3. package/esm2022/src/hydration/api.mjs +2 -3
  4. package/esm2022/src/render3/component_ref.mjs +1 -1
  5. package/esm2022/src/render3/util/injector_discovery_utils.mjs +12 -8
  6. package/esm2022/src/version.mjs +1 -1
  7. package/esm2022/testing/src/fake_async.mjs +6 -1
  8. package/esm2022/testing/src/logger.mjs +3 -3
  9. package/esm2022/testing/src/test_hooks.mjs +3 -3
  10. package/esm2022/testing/src/testing.mjs +2 -2
  11. package/fesm2022/core.mjs +11 -9
  12. package/fesm2022/core.mjs.map +1 -1
  13. package/fesm2022/primitives/signals.mjs +2 -2
  14. package/fesm2022/rxjs-interop.mjs +3 -3
  15. package/fesm2022/rxjs-interop.mjs.map +1 -1
  16. package/fesm2022/testing.mjs +8 -3
  17. package/fesm2022/testing.mjs.map +1 -1
  18. package/index.d.ts +2 -2
  19. package/package.json +1 -1
  20. package/primitives/signals/index.d.ts +2 -2
  21. package/rxjs-interop/index.d.ts +3 -3
  22. package/schematics/migrations/block-template-entities/bundle.js +1 -1
  23. package/schematics/migrations/block-template-entities/bundle.js.map +1 -1
  24. package/schematics/migrations/invalid-two-way-bindings/bundle.js +1 -1
  25. package/schematics/migrations/invalid-two-way-bindings/bundle.js.map +1 -1
  26. package/schematics/ng-generate/control-flow-migration/bundle.js +24 -12
  27. package/schematics/ng-generate/control-flow-migration/bundle.js.map +3 -3
  28. package/schematics/ng-generate/standalone-migration/bundle.js +9 -9
  29. package/schematics/ng-generate/standalone-migration/bundle.js.map +1 -1
  30. package/testing/index.d.ts +2 -2
@@ -25999,7 +25999,7 @@ function publishFacade(global) {
25999
25999
  }
26000
26000
 
26001
26001
  // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/version.mjs
26002
- var VERSION2 = new Version("17.3.2");
26002
+ var VERSION2 = new Version("17.3.4");
26003
26003
 
26004
26004
  // bazel-out/darwin_arm64-fastbuild/bin/packages/compiler/src/i18n/extractor_merger.mjs
26005
26005
  var _VisitorMode;
@@ -26576,6 +26576,15 @@ function validateI18nStructure(parsed, fileName) {
26576
26576
  function isChildOf(parent, el) {
26577
26577
  return parent.sourceSpan.start.offset < el.sourceSpan.start.offset && parent.sourceSpan.end.offset > el.sourceSpan.end.offset;
26578
26578
  }
26579
+ var PlaceholderKind;
26580
+ (function(PlaceholderKind2) {
26581
+ PlaceholderKind2[PlaceholderKind2["Default"] = 0] = "Default";
26582
+ PlaceholderKind2[PlaceholderKind2["Alternate"] = 1] = "Alternate";
26583
+ })(PlaceholderKind || (PlaceholderKind = {}));
26584
+ function getPlaceholder(value, kind = PlaceholderKind.Default) {
26585
+ const name = `<<<\u0275\u0275ngControlFlowMigration_${kind}\u0275\u0275>>>`;
26586
+ return `___${name}${value}${name}___`;
26587
+ }
26579
26588
  function calculateNesting(visitor, hasLineBreaks2) {
26580
26589
  let nestedQueue = [];
26581
26590
  for (let i = 0; i < visitor.elements.length; i++) {
@@ -26644,8 +26653,8 @@ function processNgTemplates(template2) {
26644
26653
  try {
26645
26654
  const templates = getTemplates(template2);
26646
26655
  for (const [name, t] of templates) {
26647
- const replaceRegex = new RegExp(`\u03B8${name.slice(1)}\\\u03B4`, "g");
26648
- const forRegex = new RegExp(`\u03B8${name.slice(1)}\\\u03C6`, "g");
26656
+ const replaceRegex = new RegExp(getPlaceholder(name.slice(1)), "g");
26657
+ const forRegex = new RegExp(getPlaceholder(name.slice(1), PlaceholderKind.Alternate), "g");
26649
26658
  const forMatches = [...template2.matchAll(forRegex)];
26650
26659
  const matches = [...forMatches, ...template2.matchAll(replaceRegex)];
26651
26660
  let safeToRemove = true;
@@ -26678,11 +26687,14 @@ function processNgTemplates(template2) {
26678
26687
  }
26679
26688
  }
26680
26689
  function replaceRemainingPlaceholders(template2) {
26681
- const replaceRegex = new RegExp(`\u03B8.*\u03B4`, "g");
26690
+ const pattern = ".*";
26691
+ const placeholderPattern = getPlaceholder(pattern);
26692
+ const replaceRegex = new RegExp(placeholderPattern, "g");
26693
+ const [placeholderStart, placeholderEnd] = placeholderPattern.split(pattern);
26682
26694
  const placeholders = [...template2.matchAll(replaceRegex)];
26683
26695
  for (let ph of placeholders) {
26684
26696
  const placeholder = ph[0];
26685
- const name = placeholder.slice(1, placeholder.length - 1);
26697
+ const name = placeholder.slice(placeholderStart.length, placeholder.length - placeholderEnd.length);
26686
26698
  template2 = template2.replace(placeholder, `<ng-template [ngTemplateOutlet]="${name}"></ng-template>`);
26687
26699
  }
26688
26700
  return template2;
@@ -27045,7 +27057,7 @@ function migrateStandardNgFor(etm, tmpl, offset) {
27045
27057
  trackBy = `${trackByFn}($index, ${loopVar})`;
27046
27058
  }
27047
27059
  if (part.startsWith("template:")) {
27048
- tmplPlaceholder = `\u03B8${part.split(":")[1].trim()}\u03C6`;
27060
+ tmplPlaceholder = getPlaceholder(part.split(":")[1].trim(), PlaceholderKind.Alternate);
27049
27061
  }
27050
27062
  if (part.match(aliasWithEqualRegexp)) {
27051
27063
  const aliasParts = part.split("=");
@@ -27222,7 +27234,7 @@ function buildIfBlock(etm, tmpl, offset) {
27222
27234
  }
27223
27235
  function buildStandardIfElseBlock(etm, tmpl, elseString, offset) {
27224
27236
  const condition = etm.getCondition().replace(" as ", "; as ").replace(/;\s*let/g, "; as");
27225
- const elsePlaceholder = `\u03B8${etm.getTemplateName(elseString)}\u03B4`;
27237
+ const elsePlaceholder = getPlaceholder(etm.getTemplateName(elseString));
27226
27238
  return buildIfElseBlock(etm, tmpl, condition, elsePlaceholder, offset);
27227
27239
  }
27228
27240
  function buildBoundIfElseBlock(etm, tmpl, offset) {
@@ -27237,9 +27249,9 @@ function buildBoundIfElseBlock(etm, tmpl, offset) {
27237
27249
  } else if (aliases.length === 1) {
27238
27250
  condition += `; as ${aliases[0]}`;
27239
27251
  }
27240
- const elsePlaceholder = `\u03B8${etm.elseAttr.value.trim()}\u03B4`;
27252
+ const elsePlaceholder = getPlaceholder(etm.elseAttr.value.trim());
27241
27253
  if (etm.thenAttr !== void 0) {
27242
- const thenPlaceholder = `\u03B8${etm.thenAttr.value.trim()}\u03B4`;
27254
+ const thenPlaceholder = getPlaceholder(etm.thenAttr.value.trim());
27243
27255
  return buildIfThenElseBlock(etm, tmpl, condition, thenPlaceholder, elsePlaceholder, offset);
27244
27256
  }
27245
27257
  return buildIfElseBlock(etm, tmpl, condition, elsePlaceholder, offset);
@@ -27261,13 +27273,13 @@ function buildIfElseBlock(etm, tmpl, condition, elsePlaceholder, offset) {
27261
27273
  }
27262
27274
  function buildStandardIfThenElseBlock(etm, tmpl, thenString, elseString, offset) {
27263
27275
  const condition = etm.getCondition().replace(" as ", "; as ").replace(/;\s*let/g, "; as");
27264
- const thenPlaceholder = `\u03B8${etm.getTemplateName(thenString, elseString)}\u03B4`;
27265
- const elsePlaceholder = `\u03B8${etm.getTemplateName(elseString)}\u03B4`;
27276
+ const thenPlaceholder = getPlaceholder(etm.getTemplateName(thenString, elseString));
27277
+ const elsePlaceholder = getPlaceholder(etm.getTemplateName(elseString));
27266
27278
  return buildIfThenElseBlock(etm, tmpl, condition, thenPlaceholder, elsePlaceholder, offset);
27267
27279
  }
27268
27280
  function buildStandardIfThenBlock(etm, tmpl, thenString, offset) {
27269
27281
  const condition = etm.getCondition().replace(" as ", "; as ").replace(/;\s*let/g, "; as");
27270
- const thenPlaceholder = `\u03B8${etm.getTemplateName(thenString)}\u03B4`;
27282
+ const thenPlaceholder = getPlaceholder(etm.getTemplateName(thenString));
27271
27283
  return buildIfThenBlock(etm, tmpl, condition, thenPlaceholder, offset);
27272
27284
  }
27273
27285
  function buildIfThenElseBlock(etm, tmpl, condition, thenPlaceholder, elsePlaceholder, offset) {