@angular/compiler-cli 17.2.0-rc.1 → 17.2.1

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.
@@ -271,7 +271,7 @@ import { compileDirectiveFromMetadata, makeBindingParser, ParseLocation, ParseSo
271
271
 
272
272
  // bazel-out/k8-fastbuild/bin/packages/compiler-cli/linker/src/file_linker/partial_linkers/util.mjs
273
273
  import { createMayBeForwardRefExpression, outputAst as o2 } from "@angular/compiler";
274
- var PLACEHOLDER_VERSION = "17.2.0-rc.1";
274
+ var PLACEHOLDER_VERSION = "17.2.1";
275
275
  var SHOULD_USE_TEMPLATE_PIPELINE_FOR_LINKER = false;
276
276
  function wrapReference(wrapped) {
277
277
  return { value: wrapped, type: wrapped };
@@ -4539,7 +4539,7 @@ var TcbDirectiveInputsOp = class extends TcbOp {
4539
4539
  if (attr.attribute.keySpan !== void 0) {
4540
4540
  addParseSpanInfo(target, attr.attribute.keySpan);
4541
4541
  }
4542
- if (isTwoWayBinding) {
4542
+ if (isTwoWayBinding && this.tcb.env.config.allowSignalsInTwoWayBindings) {
4543
4543
  assignment = unwrapWritableSignal(assignment, this.tcb);
4544
4544
  }
4545
4545
  assignment = ts28.factory.createBinaryExpression(target, ts28.SyntaxKind.EqualsToken, assignment);
@@ -5500,7 +5500,7 @@ function tcbCallTypeCtor(dir, tcb, inputs) {
5500
5500
  const propertyName = ts28.factory.createStringLiteral(input.field);
5501
5501
  if (input.type === "binding") {
5502
5502
  let expr = widenBinding(input.expression, tcb);
5503
- if (input.isTwoWayBinding) {
5503
+ if (input.isTwoWayBinding && tcb.env.config.allowSignalsInTwoWayBindings) {
5504
5504
  expr = unwrapWritableSignal(expr, tcb);
5505
5505
  }
5506
5506
  const assignment = ts28.factory.createPropertyAssignment(propertyName, wrapForDiagnostics(expr));
@@ -7829,6 +7829,7 @@ var NgCompiler = class {
7829
7829
  this.delegatingPerfRecorder = new DelegatingPerfRecorder(this.perfRecorder);
7830
7830
  this.enableTemplateTypeChecker = enableTemplateTypeChecker || ((_a = options["_enableTemplateTypeChecker"]) != null ? _a : false);
7831
7831
  this.enableBlockSyntax = (_b = options["_enableBlockSyntax"]) != null ? _b : true;
7832
+ this.angularCoreVersion = options["_angularCoreVersion"] == null ? null : new Version(options["_angularCoreVersion"]);
7832
7833
  this.constructionDiagnostics.push(...this.adapter.constructionDiagnostics, ...verifyCompatibleTypeCheckOptions(this.options));
7833
7834
  this.currentProgram = inputProgram;
7834
7835
  this.closureCompilerEnabled = !!this.options.annotateForClosureCompiler;
@@ -8095,6 +8096,7 @@ var NgCompiler = class {
8095
8096
  var _a, _b, _c, _d;
8096
8097
  const strictTemplates = !!this.options.strictTemplates;
8097
8098
  const useInlineTypeConstructors = this.programDriver.supportsInlineOperations;
8099
+ const allowSignalsInTwoWayBindings = this.angularCoreVersion === null || this.angularCoreVersion.major > 17 || this.angularCoreVersion.major === 17 && this.angularCoreVersion.minor >= 2 || this.angularCoreVersion.major === 0 && this.angularCoreVersion.minor === 0 && this.angularCoreVersion.patch === 0;
8098
8100
  let typeCheckingConfig;
8099
8101
  if (this.fullTemplateTypeCheck) {
8100
8102
  typeCheckingConfig = {
@@ -8119,7 +8121,8 @@ var NgCompiler = class {
8119
8121
  enableTemplateTypeChecker: this.enableTemplateTypeChecker,
8120
8122
  useInlineTypeConstructors,
8121
8123
  suggestionsForSuboptimalTypeInference: this.enableTemplateTypeChecker && !strictTemplates,
8122
- controlFlowPreventingContentProjection: ((_a = this.options.extendedDiagnostics) == null ? void 0 : _a.defaultCategory) || DiagnosticCategoryLabel.Warning
8124
+ controlFlowPreventingContentProjection: ((_a = this.options.extendedDiagnostics) == null ? void 0 : _a.defaultCategory) || DiagnosticCategoryLabel.Warning,
8125
+ allowSignalsInTwoWayBindings
8123
8126
  };
8124
8127
  } else {
8125
8128
  typeCheckingConfig = {
@@ -8144,7 +8147,8 @@ var NgCompiler = class {
8144
8147
  enableTemplateTypeChecker: this.enableTemplateTypeChecker,
8145
8148
  useInlineTypeConstructors,
8146
8149
  suggestionsForSuboptimalTypeInference: false,
8147
- controlFlowPreventingContentProjection: ((_b = this.options.extendedDiagnostics) == null ? void 0 : _b.defaultCategory) || DiagnosticCategoryLabel.Warning
8150
+ controlFlowPreventingContentProjection: ((_b = this.options.extendedDiagnostics) == null ? void 0 : _b.defaultCategory) || DiagnosticCategoryLabel.Warning,
8151
+ allowSignalsInTwoWayBindings
8148
8152
  };
8149
8153
  }
8150
8154
  if (this.options.strictInputTypes !== void 0) {
@@ -8515,6 +8519,15 @@ function versionMapFromProgram(program, driver) {
8515
8519
  }
8516
8520
  return versions;
8517
8521
  }
8522
+ var Version = class {
8523
+ constructor(full) {
8524
+ this.full = full;
8525
+ [this.major, this.minor, this.patch] = full.split(".").map((part) => {
8526
+ const parsed = parseInt(part);
8527
+ return isNaN(parsed) ? -1 : parsed;
8528
+ });
8529
+ }
8530
+ };
8518
8531
 
8519
8532
  // bazel-out/k8-fastbuild/bin/packages/compiler-cli/src/ngtsc/core/src/host.mjs
8520
8533
  import ts36 from "typescript";
@@ -9117,4 +9130,4 @@ export {
9117
9130
  * Use of this source code is governed by an MIT-style license that can be
9118
9131
  * found in the LICENSE file at https://angular.io/license
9119
9132
  */
9120
- //# sourceMappingURL=chunk-JIFH6OZK.js.map
9133
+ //# sourceMappingURL=chunk-KMYUI7UU.js.map