@angular/core 20.0.0-rc.2 → 20.0.0

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 (62) hide show
  1. package/api.d-B0vztftH.d.ts +1 -1
  2. package/chrome_dev_tools_performance.d-DvzAxqBc.d.ts +1 -1
  3. package/{discovery.d-Cf_r2Ojk.d.ts → discovery.d-DZNIp-Fw.d.ts} +55 -4
  4. package/event_dispatcher.d-BReQpZfC.d.ts +1 -1
  5. package/fesm2022/attribute-BWp59EjE.mjs +1 -1
  6. package/fesm2022/core.mjs +9 -9
  7. package/fesm2022/core.mjs.map +1 -1
  8. package/fesm2022/{debug_node-Nc-zr65s.mjs → debug_node-Dn-GvQJo.mjs} +1470 -2924
  9. package/fesm2022/debug_node-Dn-GvQJo.mjs.map +1 -0
  10. package/fesm2022/primitives/di.mjs +1 -1
  11. package/fesm2022/primitives/event-dispatch.mjs +1 -1
  12. package/fesm2022/primitives/signals.mjs +1 -1
  13. package/fesm2022/{resource-DOwetGLU.mjs → resource-BPCh38bN.mjs} +3 -3
  14. package/fesm2022/{resource-DOwetGLU.mjs.map → resource-BPCh38bN.mjs.map} +1 -1
  15. package/fesm2022/{root_effect_scheduler-BgGHQ80j.mjs → root_effect_scheduler-0BxwqIgm.mjs} +2 -19
  16. package/fesm2022/{root_effect_scheduler-BgGHQ80j.mjs.map → root_effect_scheduler-0BxwqIgm.mjs.map} +1 -1
  17. package/fesm2022/rxjs-interop.mjs +3 -3
  18. package/fesm2022/signal-ePSl6jXn.mjs +1 -1
  19. package/fesm2022/testing.mjs +33 -7
  20. package/fesm2022/testing.mjs.map +1 -1
  21. package/fesm2022/untracked-2ouAFbCz.mjs +1 -1
  22. package/fesm2022/weak_ref-BaIq-pgY.mjs +1 -1
  23. package/graph.d-BcIOep_B.d.ts +1 -1
  24. package/index.d.ts +619 -1730
  25. package/package.json +5 -2
  26. package/primitives/di/index.d.ts +1 -1
  27. package/primitives/event-dispatch/index.d.ts +1 -1
  28. package/primitives/signals/index.d.ts +1 -1
  29. package/rxjs-interop/index.d.ts +1 -1
  30. package/schematics/bundles/{apply_import_manager-BqwxKJiu.cjs → apply_import_manager-Bqnvtho4.cjs} +3 -3
  31. package/schematics/bundles/{change_tracker-B1qegJFu.cjs → change_tracker-DaCWdziV.cjs} +3 -3
  32. package/schematics/bundles/{checker-DmucNdBi.cjs → checker-BHgMyU8j.cjs} +11 -11
  33. package/schematics/bundles/cleanup-unused-imports.cjs +51 -13
  34. package/schematics/bundles/{compiler-DPq1iS19.cjs → compiler-Dl11rH6-.cjs} +63 -330
  35. package/schematics/bundles/compiler_host-CAfDJO3W.cjs +1 -1
  36. package/schematics/bundles/control-flow-migration.cjs +2 -2
  37. package/schematics/bundles/document-core.cjs +6 -6
  38. package/schematics/bundles/imports-CIX-JgAN.cjs +1 -1
  39. package/schematics/bundles/{index-CFmTQ_wx.cjs → index-CYxAVSJC.cjs} +5 -5
  40. package/schematics/bundles/{index-1H-qYSW6.cjs → index-DPvX-lSh.cjs} +14 -16
  41. package/schematics/bundles/inject-flags.cjs +6 -6
  42. package/schematics/bundles/inject-migration.cjs +4 -4
  43. package/schematics/bundles/leading_space-D9nQ8UQC.cjs +1 -1
  44. package/schematics/bundles/{migrate_ts_type_references-B2aJNuIK.cjs → migrate_ts_type_references-DWUePVh6.cjs} +6 -6
  45. package/schematics/bundles/ng_decorators-B5HCqr20.cjs +1 -1
  46. package/schematics/bundles/nodes-B16H9JUd.cjs +1 -1
  47. package/schematics/bundles/output-migration.cjs +7 -7
  48. package/schematics/bundles/{project_paths-DmvzlTQL.cjs → project_paths-BPBAn_A2.cjs} +4 -4
  49. package/schematics/bundles/project_tsconfig_paths-CDVxT6Ov.cjs +1 -1
  50. package/schematics/bundles/property_name-BBwFuqMe.cjs +1 -1
  51. package/schematics/bundles/route-lazy-loading.cjs +4 -4
  52. package/schematics/bundles/self-closing-tags-migration.cjs +5 -5
  53. package/schematics/bundles/signal-input-migration.cjs +8 -8
  54. package/schematics/bundles/signal-queries-migration.cjs +8 -8
  55. package/schematics/bundles/signals.cjs +8 -8
  56. package/schematics/bundles/standalone-migration.cjs +5 -5
  57. package/schematics/bundles/symbol-VPWguRxr.cjs +1 -1
  58. package/schematics/bundles/test-bed-get.cjs +5 -5
  59. package/signal.d-D6VJ67xi.d.ts +1 -1
  60. package/testing/index.d.ts +16 -3
  61. package/weak_ref.d-eGOEP9S1.d.ts +1 -1
  62. package/fesm2022/debug_node-Nc-zr65s.mjs.map +0 -1
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
  /**
3
- * @license Angular v20.0.0-rc.2
3
+ * @license Angular v20.0.0
4
4
  * (c) 2010-2025 Google LLC. https://angular.io/
5
5
  * License: MIT
6
6
  */
@@ -2565,116 +2565,8 @@ class Identifiers {
2565
2565
  };
2566
2566
  static elementContainer = { name: 'ɵɵelementContainer', moduleName: CORE };
2567
2567
  static styleMap = { name: 'ɵɵstyleMap', moduleName: CORE };
2568
- static styleMapInterpolate1 = {
2569
- name: 'ɵɵstyleMapInterpolate1',
2570
- moduleName: CORE,
2571
- };
2572
- static styleMapInterpolate2 = {
2573
- name: 'ɵɵstyleMapInterpolate2',
2574
- moduleName: CORE,
2575
- };
2576
- static styleMapInterpolate3 = {
2577
- name: 'ɵɵstyleMapInterpolate3',
2578
- moduleName: CORE,
2579
- };
2580
- static styleMapInterpolate4 = {
2581
- name: 'ɵɵstyleMapInterpolate4',
2582
- moduleName: CORE,
2583
- };
2584
- static styleMapInterpolate5 = {
2585
- name: 'ɵɵstyleMapInterpolate5',
2586
- moduleName: CORE,
2587
- };
2588
- static styleMapInterpolate6 = {
2589
- name: 'ɵɵstyleMapInterpolate6',
2590
- moduleName: CORE,
2591
- };
2592
- static styleMapInterpolate7 = {
2593
- name: 'ɵɵstyleMapInterpolate7',
2594
- moduleName: CORE,
2595
- };
2596
- static styleMapInterpolate8 = {
2597
- name: 'ɵɵstyleMapInterpolate8',
2598
- moduleName: CORE,
2599
- };
2600
- static styleMapInterpolateV = {
2601
- name: 'ɵɵstyleMapInterpolateV',
2602
- moduleName: CORE,
2603
- };
2604
2568
  static classMap = { name: 'ɵɵclassMap', moduleName: CORE };
2605
- static classMapInterpolate1 = {
2606
- name: 'ɵɵclassMapInterpolate1',
2607
- moduleName: CORE,
2608
- };
2609
- static classMapInterpolate2 = {
2610
- name: 'ɵɵclassMapInterpolate2',
2611
- moduleName: CORE,
2612
- };
2613
- static classMapInterpolate3 = {
2614
- name: 'ɵɵclassMapInterpolate3',
2615
- moduleName: CORE,
2616
- };
2617
- static classMapInterpolate4 = {
2618
- name: 'ɵɵclassMapInterpolate4',
2619
- moduleName: CORE,
2620
- };
2621
- static classMapInterpolate5 = {
2622
- name: 'ɵɵclassMapInterpolate5',
2623
- moduleName: CORE,
2624
- };
2625
- static classMapInterpolate6 = {
2626
- name: 'ɵɵclassMapInterpolate6',
2627
- moduleName: CORE,
2628
- };
2629
- static classMapInterpolate7 = {
2630
- name: 'ɵɵclassMapInterpolate7',
2631
- moduleName: CORE,
2632
- };
2633
- static classMapInterpolate8 = {
2634
- name: 'ɵɵclassMapInterpolate8',
2635
- moduleName: CORE,
2636
- };
2637
- static classMapInterpolateV = {
2638
- name: 'ɵɵclassMapInterpolateV',
2639
- moduleName: CORE,
2640
- };
2641
2569
  static styleProp = { name: 'ɵɵstyleProp', moduleName: CORE };
2642
- static stylePropInterpolate1 = {
2643
- name: 'ɵɵstylePropInterpolate1',
2644
- moduleName: CORE,
2645
- };
2646
- static stylePropInterpolate2 = {
2647
- name: 'ɵɵstylePropInterpolate2',
2648
- moduleName: CORE,
2649
- };
2650
- static stylePropInterpolate3 = {
2651
- name: 'ɵɵstylePropInterpolate3',
2652
- moduleName: CORE,
2653
- };
2654
- static stylePropInterpolate4 = {
2655
- name: 'ɵɵstylePropInterpolate4',
2656
- moduleName: CORE,
2657
- };
2658
- static stylePropInterpolate5 = {
2659
- name: 'ɵɵstylePropInterpolate5',
2660
- moduleName: CORE,
2661
- };
2662
- static stylePropInterpolate6 = {
2663
- name: 'ɵɵstylePropInterpolate6',
2664
- moduleName: CORE,
2665
- };
2666
- static stylePropInterpolate7 = {
2667
- name: 'ɵɵstylePropInterpolate7',
2668
- moduleName: CORE,
2669
- };
2670
- static stylePropInterpolate8 = {
2671
- name: 'ɵɵstylePropInterpolate8',
2672
- moduleName: CORE,
2673
- };
2674
- static stylePropInterpolateV = {
2675
- name: 'ɵɵstylePropInterpolateV',
2676
- moduleName: CORE,
2677
- };
2678
2570
  static interpolate = {
2679
2571
  name: 'ɵɵinterpolate',
2680
2572
  moduleName: CORE,
@@ -2830,46 +2722,6 @@ class Identifiers {
2830
2722
  static pipeBindV = { name: 'ɵɵpipeBindV', moduleName: CORE };
2831
2723
  static domProperty = { name: 'ɵɵdomProperty', moduleName: CORE };
2832
2724
  static property = { name: 'ɵɵproperty', moduleName: CORE };
2833
- static propertyInterpolate = {
2834
- name: 'ɵɵpropertyInterpolate',
2835
- moduleName: CORE,
2836
- };
2837
- static propertyInterpolate1 = {
2838
- name: 'ɵɵpropertyInterpolate1',
2839
- moduleName: CORE,
2840
- };
2841
- static propertyInterpolate2 = {
2842
- name: 'ɵɵpropertyInterpolate2',
2843
- moduleName: CORE,
2844
- };
2845
- static propertyInterpolate3 = {
2846
- name: 'ɵɵpropertyInterpolate3',
2847
- moduleName: CORE,
2848
- };
2849
- static propertyInterpolate4 = {
2850
- name: 'ɵɵpropertyInterpolate4',
2851
- moduleName: CORE,
2852
- };
2853
- static propertyInterpolate5 = {
2854
- name: 'ɵɵpropertyInterpolate5',
2855
- moduleName: CORE,
2856
- };
2857
- static propertyInterpolate6 = {
2858
- name: 'ɵɵpropertyInterpolate6',
2859
- moduleName: CORE,
2860
- };
2861
- static propertyInterpolate7 = {
2862
- name: 'ɵɵpropertyInterpolate7',
2863
- moduleName: CORE,
2864
- };
2865
- static propertyInterpolate8 = {
2866
- name: 'ɵɵpropertyInterpolate8',
2867
- moduleName: CORE,
2868
- };
2869
- static propertyInterpolateV = {
2870
- name: 'ɵɵpropertyInterpolateV',
2871
- moduleName: CORE,
2872
- };
2873
2725
  static i18n = { name: 'ɵɵi18n', moduleName: CORE };
2874
2726
  static i18nAttributes = { name: 'ɵɵi18nAttributes', moduleName: CORE };
2875
2727
  static i18nExp = { name: 'ɵɵi18nExp', moduleName: CORE };
@@ -11903,15 +11755,6 @@ const CHAIN_COMPATIBILITY = new Map([
11903
11755
  [Identifiers.listener, Identifiers.listener],
11904
11756
  [Identifiers.property, Identifiers.property],
11905
11757
  [Identifiers.styleProp, Identifiers.styleProp],
11906
- [Identifiers.stylePropInterpolate1, Identifiers.stylePropInterpolate1],
11907
- [Identifiers.stylePropInterpolate2, Identifiers.stylePropInterpolate2],
11908
- [Identifiers.stylePropInterpolate3, Identifiers.stylePropInterpolate3],
11909
- [Identifiers.stylePropInterpolate4, Identifiers.stylePropInterpolate4],
11910
- [Identifiers.stylePropInterpolate5, Identifiers.stylePropInterpolate5],
11911
- [Identifiers.stylePropInterpolate6, Identifiers.stylePropInterpolate6],
11912
- [Identifiers.stylePropInterpolate7, Identifiers.stylePropInterpolate7],
11913
- [Identifiers.stylePropInterpolate8, Identifiers.stylePropInterpolate8],
11914
- [Identifiers.stylePropInterpolateV, Identifiers.stylePropInterpolateV],
11915
11758
  [Identifiers.syntheticHostListener, Identifiers.syntheticHostListener],
11916
11759
  [Identifiers.syntheticHostProperty, Identifiers.syntheticHostProperty],
11917
11760
  [Identifiers.templateCreate, Identifiers.templateCreate],
@@ -11995,11 +11838,11 @@ function chainOperationsInList(opList) {
11995
11838
  }
11996
11839
 
11997
11840
  /**
11998
- * Attribute interpolations of the form `[attr.foo]="{{foo}}""` should be "collapsed" into a plain
11999
- * attribute instruction, instead of an `attributeInterpolate` instruction.
11841
+ * Attribute or style interpolations of the form `[attr.foo]="{{foo}}""` should be "collapsed"
11842
+ * into a plain instruction, instead of an interpolated one.
12000
11843
  *
12001
- * (We cannot do this for singleton property interpolations, because `propertyInterpolate`
12002
- * stringifies its expression.)
11844
+ * (We cannot do this for singleton property interpolations,
11845
+ * because they need to stringify their expressions)
12003
11846
  *
12004
11847
  * The reification step is also capable of performing this transformation, but doing it early in the
12005
11848
  * pipeline allows other phases to accurately know what instruction will be emitted.
@@ -12007,7 +11850,10 @@ function chainOperationsInList(opList) {
12007
11850
  function collapseSingletonInterpolations(job) {
12008
11851
  for (const unit of job.units) {
12009
11852
  for (const op of unit.update) {
12010
- const eligibleOpKind = op.kind === OpKind.Attribute;
11853
+ const eligibleOpKind = op.kind === OpKind.Attribute ||
11854
+ op.kind === OpKind.StyleProp ||
11855
+ op.kind == OpKind.StyleMap ||
11856
+ op.kind === OpKind.ClassMap;
12011
11857
  if (eligibleOpKind &&
12012
11858
  op.expression instanceof Interpolation &&
12013
11859
  op.expression.strings.length === 2 &&
@@ -18293,8 +18139,7 @@ class _Scanner {
18293
18139
  length;
18294
18140
  peek = 0;
18295
18141
  index = -1;
18296
- literalInterpolationDepth = 0;
18297
- braceDepth = 0;
18142
+ braceStack = [];
18298
18143
  constructor(input) {
18299
18144
  this.input = input;
18300
18145
  this.length = input.length;
@@ -18402,18 +18247,17 @@ class _Scanner {
18402
18247
  return newOperatorToken(start, this.index, str);
18403
18248
  }
18404
18249
  scanOpenBrace(start, code) {
18405
- this.braceDepth++;
18250
+ this.braceStack.push('expression');
18406
18251
  this.advance();
18407
18252
  return newCharacterToken(start, this.index, code);
18408
18253
  }
18409
18254
  scanCloseBrace(start, code) {
18410
18255
  this.advance();
18411
- if (this.braceDepth === 0 && this.literalInterpolationDepth > 0) {
18412
- this.literalInterpolationDepth--;
18256
+ const currentBrace = this.braceStack.pop();
18257
+ if (currentBrace === 'interpolation') {
18413
18258
  this.tokens.push(newOperatorToken(start, this.index, '}'));
18414
18259
  return this.scanTemplateLiteralPart(this.index);
18415
18260
  }
18416
- this.braceDepth--;
18417
18261
  return newCharacterToken(start, this.index, code);
18418
18262
  }
18419
18263
  /**
@@ -18556,7 +18400,7 @@ class _Scanner {
18556
18400
  this.advance();
18557
18401
  // @ts-expect-error
18558
18402
  if (this.peek === $LBRACE) {
18559
- this.literalInterpolationDepth++;
18403
+ this.braceStack.push('interpolation');
18560
18404
  this.tokens.push(new StringToken(start, dollar, buffer + this.input.substring(marker, dollar), StringTokenKind.TemplateLiteralPart));
18561
18405
  this.advance();
18562
18406
  return newOperatorToken(dollar, this.index, this.input.substring(dollar, this.index));
@@ -23417,7 +23261,13 @@ function i18nAttributes(slot, i18nAttributesConfig) {
23417
23261
  return call(Identifiers.i18nAttributes, args, null);
23418
23262
  }
23419
23263
  function property(name, expression, sanitizer, sourceSpan) {
23420
- const args = [literal(name), expression];
23264
+ const args = [literal(name)];
23265
+ if (expression instanceof Interpolation) {
23266
+ args.push(interpolationToExpression(expression, sourceSpan));
23267
+ }
23268
+ else {
23269
+ args.push(expression);
23270
+ }
23421
23271
  if (sanitizer !== null) {
23422
23272
  args.push(sanitizer);
23423
23273
  }
@@ -23430,8 +23280,14 @@ function twoWayProperty(name, expression, sanitizer, sourceSpan) {
23430
23280
  }
23431
23281
  return call(Identifiers.twoWayProperty, args, sourceSpan);
23432
23282
  }
23433
- function attribute(name, expression, sanitizer, namespace) {
23434
- const args = [literal(name), expression];
23283
+ function attribute(name, expression, sanitizer, namespace, sourceSpan) {
23284
+ const args = [literal(name)];
23285
+ if (expression instanceof Interpolation) {
23286
+ args.push(interpolationToExpression(expression, sourceSpan));
23287
+ }
23288
+ else {
23289
+ args.push(expression);
23290
+ }
23435
23291
  if (sanitizer !== null || namespace !== null) {
23436
23292
  args.push(sanitizer ?? literal(null));
23437
23293
  }
@@ -23441,7 +23297,13 @@ function attribute(name, expression, sanitizer, namespace) {
23441
23297
  return call(Identifiers.attribute, args, null);
23442
23298
  }
23443
23299
  function styleProp(name, expression, unit, sourceSpan) {
23444
- const args = [literal(name), expression];
23300
+ const args = [literal(name)];
23301
+ if (expression instanceof Interpolation) {
23302
+ args.push(interpolationToExpression(expression, sourceSpan));
23303
+ }
23304
+ else {
23305
+ args.push(expression);
23306
+ }
23445
23307
  if (unit !== null) {
23446
23308
  args.push(literal(unit));
23447
23309
  }
@@ -23451,10 +23313,16 @@ function classProp(name, expression, sourceSpan) {
23451
23313
  return call(Identifiers.classProp, [literal(name), expression], sourceSpan);
23452
23314
  }
23453
23315
  function styleMap(expression, sourceSpan) {
23454
- return call(Identifiers.styleMap, [expression], sourceSpan);
23316
+ const value = expression instanceof Interpolation
23317
+ ? interpolationToExpression(expression, sourceSpan)
23318
+ : expression;
23319
+ return call(Identifiers.styleMap, [value], sourceSpan);
23455
23320
  }
23456
23321
  function classMap(expression, sourceSpan) {
23457
- return call(Identifiers.classMap, [expression], sourceSpan);
23322
+ const value = expression instanceof Interpolation
23323
+ ? interpolationToExpression(expression, sourceSpan)
23324
+ : expression;
23325
+ return call(Identifiers.classMap, [value], sourceSpan);
23458
23326
  }
23459
23327
  const PIPE_BINDINGS = [
23460
23328
  Identifiers.pipeBind1,
@@ -23482,35 +23350,6 @@ function i18nExp(expr, sourceSpan) {
23482
23350
  function i18nApply(slot, sourceSpan) {
23483
23351
  return call(Identifiers.i18nApply, [literal(slot)], sourceSpan);
23484
23352
  }
23485
- function propertyInterpolate(name, strings, expressions, sanitizer, sourceSpan) {
23486
- const interpolationArgs = collateInterpolationArgs(strings, expressions);
23487
- const extraArgs = [];
23488
- if (sanitizer !== null) {
23489
- extraArgs.push(sanitizer);
23490
- }
23491
- return callVariadicInstruction(PROPERTY_INTERPOLATE_CONFIG, [literal(name)], interpolationArgs, extraArgs, sourceSpan);
23492
- }
23493
- function attributeInterpolate(name, strings, expressions, sanitizer, namespace, sourceSpan) {
23494
- const interpolationArgs = collateInterpolationArgs(strings, expressions);
23495
- const value = callVariadicInstructionExpr(VALUE_INTERPOLATE_CONFIG, [], interpolationArgs, [], sourceSpan);
23496
- return attribute(name, value, sanitizer, namespace);
23497
- }
23498
- function stylePropInterpolate(name, strings, expressions, unit, sourceSpan) {
23499
- const interpolationArgs = collateInterpolationArgs(strings, expressions);
23500
- const extraArgs = [];
23501
- if (unit !== null) {
23502
- extraArgs.push(literal(unit));
23503
- }
23504
- return callVariadicInstruction(STYLE_PROP_INTERPOLATE_CONFIG, [literal(name)], interpolationArgs, extraArgs, sourceSpan);
23505
- }
23506
- function styleMapInterpolate(strings, expressions, sourceSpan) {
23507
- const interpolationArgs = collateInterpolationArgs(strings, expressions);
23508
- return callVariadicInstruction(STYLE_MAP_INTERPOLATE_CONFIG, [], interpolationArgs, [], sourceSpan);
23509
- }
23510
- function classMapInterpolate(strings, expressions, sourceSpan) {
23511
- const interpolationArgs = collateInterpolationArgs(strings, expressions);
23512
- return callVariadicInstruction(CLASS_MAP_INTERPOLATE_CONFIG, [], interpolationArgs, [], sourceSpan);
23513
- }
23514
23353
  function domProperty(name, expression, sanitizer, sourceSpan) {
23515
23354
  const args = [literal(name), expression];
23516
23355
  if (sanitizer !== null) {
@@ -23548,6 +23387,10 @@ function collateInterpolationArgs(strings, expressions) {
23548
23387
  }
23549
23388
  return interpolationArgs;
23550
23389
  }
23390
+ function interpolationToExpression(interpolation, sourceSpan) {
23391
+ const interpolationArgs = collateInterpolationArgs(interpolation.strings, interpolation.expressions);
23392
+ return callVariadicInstructionExpr(VALUE_INTERPOLATE_CONFIG, [], interpolationArgs, [], sourceSpan);
23393
+ }
23551
23394
  function call(instruction, args, sourceSpan) {
23552
23395
  const expr = importExpr(instruction).callFn(args, sourceSpan);
23553
23396
  return createStatementOp(new ExpressionStatement(expr, sourceSpan));
@@ -23582,29 +23425,6 @@ const TEXT_INTERPOLATE_CONFIG = {
23582
23425
  return (n - 1) / 2;
23583
23426
  },
23584
23427
  };
23585
- /**
23586
- * `InterpolationConfig` for the `propertyInterpolate` instruction.
23587
- */
23588
- const PROPERTY_INTERPOLATE_CONFIG = {
23589
- constant: [
23590
- Identifiers.propertyInterpolate,
23591
- Identifiers.propertyInterpolate1,
23592
- Identifiers.propertyInterpolate2,
23593
- Identifiers.propertyInterpolate3,
23594
- Identifiers.propertyInterpolate4,
23595
- Identifiers.propertyInterpolate5,
23596
- Identifiers.propertyInterpolate6,
23597
- Identifiers.propertyInterpolate7,
23598
- Identifiers.propertyInterpolate8,
23599
- ],
23600
- variable: Identifiers.propertyInterpolateV,
23601
- mapping: (n) => {
23602
- if (n % 2 === 0) {
23603
- throw new Error(`Expected odd number of arguments`);
23604
- }
23605
- return (n - 1) / 2;
23606
- },
23607
- };
23608
23428
  const VALUE_INTERPOLATE_CONFIG = {
23609
23429
  constant: [
23610
23430
  Identifiers.interpolate,
@@ -23625,75 +23445,6 @@ const VALUE_INTERPOLATE_CONFIG = {
23625
23445
  return (n - 1) / 2;
23626
23446
  },
23627
23447
  };
23628
- /**
23629
- * `InterpolationConfig` for the `stylePropInterpolate` instruction.
23630
- */
23631
- const STYLE_PROP_INTERPOLATE_CONFIG = {
23632
- constant: [
23633
- Identifiers.styleProp,
23634
- Identifiers.stylePropInterpolate1,
23635
- Identifiers.stylePropInterpolate2,
23636
- Identifiers.stylePropInterpolate3,
23637
- Identifiers.stylePropInterpolate4,
23638
- Identifiers.stylePropInterpolate5,
23639
- Identifiers.stylePropInterpolate6,
23640
- Identifiers.stylePropInterpolate7,
23641
- Identifiers.stylePropInterpolate8,
23642
- ],
23643
- variable: Identifiers.stylePropInterpolateV,
23644
- mapping: (n) => {
23645
- if (n % 2 === 0) {
23646
- throw new Error(`Expected odd number of arguments`);
23647
- }
23648
- return (n - 1) / 2;
23649
- },
23650
- };
23651
- /**
23652
- * `InterpolationConfig` for the `styleMapInterpolate` instruction.
23653
- */
23654
- const STYLE_MAP_INTERPOLATE_CONFIG = {
23655
- constant: [
23656
- Identifiers.styleMap,
23657
- Identifiers.styleMapInterpolate1,
23658
- Identifiers.styleMapInterpolate2,
23659
- Identifiers.styleMapInterpolate3,
23660
- Identifiers.styleMapInterpolate4,
23661
- Identifiers.styleMapInterpolate5,
23662
- Identifiers.styleMapInterpolate6,
23663
- Identifiers.styleMapInterpolate7,
23664
- Identifiers.styleMapInterpolate8,
23665
- ],
23666
- variable: Identifiers.styleMapInterpolateV,
23667
- mapping: (n) => {
23668
- if (n % 2 === 0) {
23669
- throw new Error(`Expected odd number of arguments`);
23670
- }
23671
- return (n - 1) / 2;
23672
- },
23673
- };
23674
- /**
23675
- * `InterpolationConfig` for the `classMapInterpolate` instruction.
23676
- */
23677
- const CLASS_MAP_INTERPOLATE_CONFIG = {
23678
- constant: [
23679
- Identifiers.classMap,
23680
- Identifiers.classMapInterpolate1,
23681
- Identifiers.classMapInterpolate2,
23682
- Identifiers.classMapInterpolate3,
23683
- Identifiers.classMapInterpolate4,
23684
- Identifiers.classMapInterpolate5,
23685
- Identifiers.classMapInterpolate6,
23686
- Identifiers.classMapInterpolate7,
23687
- Identifiers.classMapInterpolate8,
23688
- ],
23689
- variable: Identifiers.classMapInterpolateV,
23690
- mapping: (n) => {
23691
- if (n % 2 === 0) {
23692
- throw new Error(`Expected odd number of arguments`);
23693
- }
23694
- return (n - 1) / 2;
23695
- },
23696
- };
23697
23448
  const PURE_FUNCTION_CONFIG = {
23698
23449
  constant: [
23699
23450
  Identifiers.pureFunction0,
@@ -23998,42 +23749,22 @@ function reifyUpdateOperations(_unit, ops) {
23998
23749
  OpList.replace(op, advance(op.delta, op.sourceSpan));
23999
23750
  break;
24000
23751
  case OpKind.Property:
24001
- if (op.expression instanceof Interpolation) {
24002
- OpList.replace(op, propertyInterpolate(op.name, op.expression.strings, op.expression.expressions, op.sanitizer, op.sourceSpan));
24003
- }
24004
- else {
24005
- OpList.replace(op, property(op.name, op.expression, op.sanitizer, op.sourceSpan));
24006
- }
23752
+ OpList.replace(op, property(op.name, op.expression, op.sanitizer, op.sourceSpan));
24007
23753
  break;
24008
23754
  case OpKind.TwoWayProperty:
24009
23755
  OpList.replace(op, twoWayProperty(op.name, op.expression, op.sanitizer, op.sourceSpan));
24010
23756
  break;
24011
23757
  case OpKind.StyleProp:
24012
- if (op.expression instanceof Interpolation) {
24013
- OpList.replace(op, stylePropInterpolate(op.name, op.expression.strings, op.expression.expressions, op.unit, op.sourceSpan));
24014
- }
24015
- else {
24016
- OpList.replace(op, styleProp(op.name, op.expression, op.unit, op.sourceSpan));
24017
- }
23758
+ OpList.replace(op, styleProp(op.name, op.expression, op.unit, op.sourceSpan));
24018
23759
  break;
24019
23760
  case OpKind.ClassProp:
24020
23761
  OpList.replace(op, classProp(op.name, op.expression, op.sourceSpan));
24021
23762
  break;
24022
23763
  case OpKind.StyleMap:
24023
- if (op.expression instanceof Interpolation) {
24024
- OpList.replace(op, styleMapInterpolate(op.expression.strings, op.expression.expressions, op.sourceSpan));
24025
- }
24026
- else {
24027
- OpList.replace(op, styleMap(op.expression, op.sourceSpan));
24028
- }
23764
+ OpList.replace(op, styleMap(op.expression, op.sourceSpan));
24029
23765
  break;
24030
23766
  case OpKind.ClassMap:
24031
- if (op.expression instanceof Interpolation) {
24032
- OpList.replace(op, classMapInterpolate(op.expression.strings, op.expression.expressions, op.sourceSpan));
24033
- }
24034
- else {
24035
- OpList.replace(op, classMap(op.expression, op.sourceSpan));
24036
- }
23767
+ OpList.replace(op, classMap(op.expression, op.sourceSpan));
24037
23768
  break;
24038
23769
  case OpKind.I18nExpression:
24039
23770
  OpList.replace(op, i18nExp(op.expression, op.sourceSpan));
@@ -24045,12 +23776,7 @@ function reifyUpdateOperations(_unit, ops) {
24045
23776
  OpList.replace(op, textInterpolate(op.interpolation.strings, op.interpolation.expressions, op.sourceSpan));
24046
23777
  break;
24047
23778
  case OpKind.Attribute:
24048
- if (op.expression instanceof Interpolation) {
24049
- OpList.replace(op, attributeInterpolate(op.name, op.expression.strings, op.expression.expressions, op.sanitizer, op.namespace, op.sourceSpan));
24050
- }
24051
- else {
24052
- OpList.replace(op, attribute(op.name, op.expression, op.sanitizer, op.namespace));
24053
- }
23779
+ OpList.replace(op, attribute(op.name, op.expression, op.sanitizer, op.namespace, op.sourceSpan));
24054
23780
  break;
24055
23781
  case OpKind.DomProperty:
24056
23782
  if (op.expression instanceof Interpolation) {
@@ -25548,8 +25274,6 @@ function countVariables(job) {
25548
25274
  function varsUsedByOp(op) {
25549
25275
  let slots;
25550
25276
  switch (op.kind) {
25551
- case OpKind.Property:
25552
- case OpKind.DomProperty:
25553
25277
  case OpKind.Attribute:
25554
25278
  // All of these bindings use 1 variable slot, plus 1 slot for every interpolated expression,
25555
25279
  // if any.
@@ -25558,6 +25282,15 @@ function varsUsedByOp(op) {
25558
25282
  slots += op.expression.expressions.length;
25559
25283
  }
25560
25284
  return slots;
25285
+ case OpKind.Property:
25286
+ case OpKind.DomProperty:
25287
+ slots = 1;
25288
+ // We need to assign a slot even for singleton interpolations, because the
25289
+ // runtime needs to store both the raw value and the stringified one.
25290
+ if (op.expression instanceof Interpolation) {
25291
+ slots += op.expression.expressions.length;
25292
+ }
25293
+ return slots;
25561
25294
  case OpKind.TwoWayProperty:
25562
25295
  // Two-way properties can only have expressions so they only need one variable slot.
25563
25296
  return 1;
@@ -32412,7 +32145,7 @@ function isAttrNode(ast) {
32412
32145
  * @description
32413
32146
  * Entry point for all public APIs of the compiler package.
32414
32147
  */
32415
- new Version('20.0.0-rc.2');
32148
+ new Version('20.0.0');
32416
32149
 
32417
32150
  //////////////////////////////////////
32418
32151
  // THIS FILE HAS GLOBAL SIDE EFFECT //
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
  /**
3
- * @license Angular v20.0.0-rc.2
3
+ * @license Angular v20.0.0
4
4
  * (c) 2010-2025 Google LLC. https://angular.io/
5
5
  * License: MIT
6
6
  */
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
  /**
3
- * @license Angular v20.0.0-rc.2
3
+ * @license Angular v20.0.0
4
4
  * (c) 2010-2025 Google LLC. https://angular.io/
5
5
  * License: MIT
6
6
  */
@@ -9,7 +9,7 @@
9
9
  var schematics = require('@angular-devkit/schematics');
10
10
  var p = require('path');
11
11
  var compiler_host = require('./compiler_host-CAfDJO3W.cjs');
12
- var compiler = require('./compiler-DPq1iS19.cjs');
12
+ var compiler = require('./compiler-Dl11rH6-.cjs');
13
13
  var ts = require('typescript');
14
14
  var project_tsconfig_paths = require('./project_tsconfig_paths-CDVxT6Ov.cjs');
15
15
  require('@angular-devkit/core');
@@ -1,19 +1,19 @@
1
1
  'use strict';
2
2
  /**
3
- * @license Angular v20.0.0-rc.2
3
+ * @license Angular v20.0.0
4
4
  * (c) 2010-2025 Google LLC. https://angular.io/
5
5
  * License: MIT
6
6
  */
7
7
  'use strict';
8
8
 
9
- require('./compiler-DPq1iS19.cjs');
9
+ require('./compiler-Dl11rH6-.cjs');
10
10
  require('typescript');
11
- var checker = require('./checker-DmucNdBi.cjs');
11
+ var checker = require('./checker-BHgMyU8j.cjs');
12
12
  require('os');
13
- var apply_import_manager = require('./apply_import_manager-BqwxKJiu.cjs');
14
- require('./index-1H-qYSW6.cjs');
13
+ var apply_import_manager = require('./apply_import_manager-Bqnvtho4.cjs');
14
+ require('./index-DPvX-lSh.cjs');
15
15
  require('path');
16
- var project_paths = require('./project_paths-DmvzlTQL.cjs');
16
+ var project_paths = require('./project_paths-BPBAn_A2.cjs');
17
17
  var imports = require('./imports-CIX-JgAN.cjs');
18
18
  require('@angular-devkit/core');
19
19
  require('node:path/posix');
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
  /**
3
- * @license Angular v20.0.0-rc.2
3
+ * @license Angular v20.0.0
4
4
  * (c) 2010-2025 Google LLC. https://angular.io/
5
5
  * License: MIT
6
6
  */
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
  /**
3
- * @license Angular v20.0.0-rc.2
3
+ * @license Angular v20.0.0
4
4
  * (c) 2010-2025 Google LLC. https://angular.io/
5
5
  * License: MIT
6
6
  */
@@ -8,11 +8,11 @@
8
8
 
9
9
  var ts = require('typescript');
10
10
  require('os');
11
- var checker = require('./checker-DmucNdBi.cjs');
12
- var compiler = require('./compiler-DPq1iS19.cjs');
13
- var index = require('./index-1H-qYSW6.cjs');
11
+ var checker = require('./checker-BHgMyU8j.cjs');
12
+ var compiler = require('./compiler-Dl11rH6-.cjs');
13
+ var index = require('./index-DPvX-lSh.cjs');
14
14
  require('path');
15
- var project_paths = require('./project_paths-DmvzlTQL.cjs');
15
+ var project_paths = require('./project_paths-BPBAn_A2.cjs');
16
16
 
17
17
  function getMemberName(member) {
18
18
  if (member.name === undefined) {