@angular/core 20.0.0-rc.1 → 20.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 (75) hide show
  1. package/{api.d-BcbEQ58q.d.ts → api.d-B0vztftH.d.ts} +15 -15
  2. package/{chrome_dev_tools_performance.d-CARNn07P.d.ts → chrome_dev_tools_performance.d-DvzAxqBc.d.ts} +5 -1
  3. package/{discovery.d-MmZhhuxb.d.ts → discovery.d-DZNIp-Fw.d.ts} +59 -15
  4. package/event_dispatcher.d-BReQpZfC.d.ts +1 -1
  5. package/fesm2022/attribute-BWp59EjE.mjs +1 -1
  6. package/fesm2022/attribute-BWp59EjE.mjs.map +1 -1
  7. package/fesm2022/core.mjs +16 -10
  8. package/fesm2022/core.mjs.map +1 -1
  9. package/fesm2022/{debug_node-BTSSF0Vj.mjs → debug_node-Dn-GvQJo.mjs} +16003 -17587
  10. package/fesm2022/debug_node-Dn-GvQJo.mjs.map +1 -0
  11. package/fesm2022/primitives/di.mjs +1 -1
  12. package/fesm2022/primitives/di.mjs.map +1 -1
  13. package/fesm2022/primitives/event-dispatch.mjs +1 -1
  14. package/fesm2022/primitives/event-dispatch.mjs.map +1 -1
  15. package/fesm2022/primitives/signals.mjs +1 -1
  16. package/fesm2022/primitives/signals.mjs.map +1 -1
  17. package/fesm2022/{resource-DdxAP6ca.mjs → resource-BPCh38bN.mjs} +64 -14
  18. package/fesm2022/resource-BPCh38bN.mjs.map +1 -0
  19. package/fesm2022/{root_effect_scheduler-CX0Q-uCT.mjs → root_effect_scheduler-0BxwqIgm.mjs} +26 -33
  20. package/fesm2022/root_effect_scheduler-0BxwqIgm.mjs.map +1 -0
  21. package/fesm2022/rxjs-interop.mjs +27 -12
  22. package/fesm2022/rxjs-interop.mjs.map +1 -1
  23. package/fesm2022/signal-ePSl6jXn.mjs +1 -1
  24. package/fesm2022/signal-ePSl6jXn.mjs.map +1 -1
  25. package/fesm2022/testing.mjs +73 -30
  26. package/fesm2022/testing.mjs.map +1 -1
  27. package/fesm2022/untracked-2ouAFbCz.mjs +1 -1
  28. package/fesm2022/untracked-2ouAFbCz.mjs.map +1 -1
  29. package/fesm2022/weak_ref-BaIq-pgY.mjs +1 -1
  30. package/fesm2022/weak_ref-BaIq-pgY.mjs.map +1 -1
  31. package/graph.d-BcIOep_B.d.ts +1 -1
  32. package/index.d.ts +817 -2037
  33. package/package.json +6 -3
  34. package/primitives/di/index.d.ts +1 -1
  35. package/primitives/event-dispatch/index.d.ts +1 -1
  36. package/primitives/signals/index.d.ts +1 -1
  37. package/rxjs-interop/index.d.ts +3 -3
  38. package/schematics/bundles/{apply_import_manager-BdH8vaIZ.js → apply_import_manager-Bqnvtho4.cjs} +3 -3
  39. package/schematics/bundles/{change_tracker-C_neAOvN.js → change_tracker-DaCWdziV.cjs} +3 -3
  40. package/schematics/bundles/{checker-DqG0JVTu.js → checker-BHgMyU8j.cjs} +63 -53
  41. package/schematics/bundles/{cleanup-unused-imports.js → cleanup-unused-imports.cjs} +71 -62
  42. package/schematics/bundles/{compiler-CWuG67kz.js → compiler-Dl11rH6-.cjs} +121 -382
  43. package/schematics/bundles/{compiler_host-CAfDJO3W.js → compiler_host-CAfDJO3W.cjs} +1 -1
  44. package/schematics/bundles/{control-flow-migration.js → control-flow-migration.cjs} +4 -4
  45. package/schematics/bundles/{document-core.js → document-core.cjs} +8 -8
  46. package/schematics/bundles/{imports-CIX-JgAN.js → imports-CIX-JgAN.cjs} +1 -1
  47. package/schematics/bundles/{index-DWcLBEg_.js → index-CYxAVSJC.cjs} +29 -20
  48. package/schematics/bundles/{index-CGYcUmPq.js → index-DPvX-lSh.cjs} +81 -37
  49. package/schematics/bundles/{inject-flags.js → inject-flags.cjs} +8 -8
  50. package/schematics/bundles/{inject-migration.js → inject-migration.cjs} +9 -9
  51. package/schematics/bundles/{leading_space-D9nQ8UQC.js → leading_space-D9nQ8UQC.cjs} +1 -1
  52. package/schematics/bundles/{migrate_ts_type_references-DAudyiEk.js → migrate_ts_type_references-DWUePVh6.cjs} +7 -7
  53. package/schematics/bundles/{ng_decorators-DznZ5jMl.js → ng_decorators-B5HCqr20.cjs} +2 -2
  54. package/schematics/bundles/{nodes-B16H9JUd.js → nodes-B16H9JUd.cjs} +1 -1
  55. package/schematics/bundles/{output-migration.js → output-migration.cjs} +8 -8
  56. package/schematics/bundles/{project_paths-B3YG5aUz.js → project_paths-BPBAn_A2.cjs} +71 -42
  57. package/schematics/bundles/{project_tsconfig_paths-CDVxT6Ov.js → project_tsconfig_paths-CDVxT6Ov.cjs} +1 -1
  58. package/schematics/bundles/{property_name-BBwFuqMe.js → property_name-BBwFuqMe.cjs} +1 -1
  59. package/schematics/bundles/{route-lazy-loading.js → route-lazy-loading.cjs} +7 -7
  60. package/schematics/bundles/{self-closing-tags-migration.js → self-closing-tags-migration.cjs} +12 -26
  61. package/schematics/bundles/{signal-input-migration.js → signal-input-migration.cjs} +20 -16
  62. package/schematics/bundles/{signal-queries-migration.js → signal-queries-migration.cjs} +10 -10
  63. package/schematics/bundles/{signals.js → signals.cjs} +13 -13
  64. package/schematics/bundles/{standalone-migration.js → standalone-migration.cjs} +11 -11
  65. package/schematics/bundles/{symbol-VPWguRxr.js → symbol-VPWguRxr.cjs} +1 -1
  66. package/schematics/bundles/{test-bed-get.js → test-bed-get.cjs} +8 -8
  67. package/schematics/collection.json +9 -9
  68. package/schematics/migrations.json +4 -4
  69. package/signal.d-D6VJ67xi.d.ts +1 -1
  70. package/testing/index.d.ts +32 -5
  71. package/weak_ref.d-eGOEP9S1.d.ts +1 -1
  72. package/fesm2022/debug_node-BTSSF0Vj.mjs.map +0 -1
  73. package/fesm2022/resource-DdxAP6ca.mjs.map +0 -1
  74. package/fesm2022/root_effect_scheduler-CX0Q-uCT.mjs.map +0 -1
  75. package/schematics/package.json +0 -3
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
  /**
3
- * @license Angular v20.0.0-rc.1
3
+ * @license Angular v20.0.0-rc.3
4
4
  * (c) 2010-2025 Google LLC. https://angular.io/
5
5
  * License: MIT
6
6
  */
@@ -496,6 +496,28 @@ function parseSelectorToR3Selector(selector) {
496
496
  return selector ? CssSelector.parse(selector).map(parserSelectorToR3Selector) : [];
497
497
  }
498
498
 
499
+ exports.FactoryTarget = void 0;
500
+ (function (FactoryTarget) {
501
+ FactoryTarget[FactoryTarget["Directive"] = 0] = "Directive";
502
+ FactoryTarget[FactoryTarget["Component"] = 1] = "Component";
503
+ FactoryTarget[FactoryTarget["Injectable"] = 2] = "Injectable";
504
+ FactoryTarget[FactoryTarget["Pipe"] = 3] = "Pipe";
505
+ FactoryTarget[FactoryTarget["NgModule"] = 4] = "NgModule";
506
+ })(exports.FactoryTarget || (exports.FactoryTarget = {}));
507
+ var R3TemplateDependencyKind;
508
+ (function (R3TemplateDependencyKind) {
509
+ R3TemplateDependencyKind[R3TemplateDependencyKind["Directive"] = 0] = "Directive";
510
+ R3TemplateDependencyKind[R3TemplateDependencyKind["Pipe"] = 1] = "Pipe";
511
+ R3TemplateDependencyKind[R3TemplateDependencyKind["NgModule"] = 2] = "NgModule";
512
+ })(R3TemplateDependencyKind || (R3TemplateDependencyKind = {}));
513
+ var ViewEncapsulation;
514
+ (function (ViewEncapsulation) {
515
+ ViewEncapsulation[ViewEncapsulation["Emulated"] = 0] = "Emulated";
516
+ // Historically the 1 value was for `Native` encapsulation which has been removed as of v11.
517
+ ViewEncapsulation[ViewEncapsulation["None"] = 2] = "None";
518
+ ViewEncapsulation[ViewEncapsulation["ShadowDom"] = 3] = "ShadowDom";
519
+ })(ViewEncapsulation || (ViewEncapsulation = {}));
520
+
499
521
  /**
500
522
  * A lazily created TextEncoder instance for converting strings into UTF-8 bytes
501
523
  */
@@ -2532,42 +2554,6 @@ class Identifiers {
2532
2554
  moduleName: CORE,
2533
2555
  };
2534
2556
  static attribute = { name: 'ɵɵattribute', moduleName: CORE };
2535
- static attributeInterpolate1 = {
2536
- name: 'ɵɵattributeInterpolate1',
2537
- moduleName: CORE,
2538
- };
2539
- static attributeInterpolate2 = {
2540
- name: 'ɵɵattributeInterpolate2',
2541
- moduleName: CORE,
2542
- };
2543
- static attributeInterpolate3 = {
2544
- name: 'ɵɵattributeInterpolate3',
2545
- moduleName: CORE,
2546
- };
2547
- static attributeInterpolate4 = {
2548
- name: 'ɵɵattributeInterpolate4',
2549
- moduleName: CORE,
2550
- };
2551
- static attributeInterpolate5 = {
2552
- name: 'ɵɵattributeInterpolate5',
2553
- moduleName: CORE,
2554
- };
2555
- static attributeInterpolate6 = {
2556
- name: 'ɵɵattributeInterpolate6',
2557
- moduleName: CORE,
2558
- };
2559
- static attributeInterpolate7 = {
2560
- name: 'ɵɵattributeInterpolate7',
2561
- moduleName: CORE,
2562
- };
2563
- static attributeInterpolate8 = {
2564
- name: 'ɵɵattributeInterpolate8',
2565
- moduleName: CORE,
2566
- };
2567
- static attributeInterpolateV = {
2568
- name: 'ɵɵattributeInterpolateV',
2569
- moduleName: CORE,
2570
- };
2571
2557
  static classProp = { name: 'ɵɵclassProp', moduleName: CORE };
2572
2558
  static elementContainerStart = {
2573
2559
  name: 'ɵɵelementContainerStart',
@@ -2579,114 +2565,46 @@ class Identifiers {
2579
2565
  };
2580
2566
  static elementContainer = { name: 'ɵɵelementContainer', moduleName: CORE };
2581
2567
  static styleMap = { name: 'ɵɵstyleMap', moduleName: CORE };
2582
- static styleMapInterpolate1 = {
2583
- name: 'ɵɵstyleMapInterpolate1',
2584
- moduleName: CORE,
2585
- };
2586
- static styleMapInterpolate2 = {
2587
- name: 'ɵɵstyleMapInterpolate2',
2588
- moduleName: CORE,
2589
- };
2590
- static styleMapInterpolate3 = {
2591
- name: 'ɵɵstyleMapInterpolate3',
2592
- moduleName: CORE,
2593
- };
2594
- static styleMapInterpolate4 = {
2595
- name: 'ɵɵstyleMapInterpolate4',
2596
- moduleName: CORE,
2597
- };
2598
- static styleMapInterpolate5 = {
2599
- name: 'ɵɵstyleMapInterpolate5',
2600
- moduleName: CORE,
2601
- };
2602
- static styleMapInterpolate6 = {
2603
- name: 'ɵɵstyleMapInterpolate6',
2604
- moduleName: CORE,
2605
- };
2606
- static styleMapInterpolate7 = {
2607
- name: 'ɵɵstyleMapInterpolate7',
2608
- moduleName: CORE,
2609
- };
2610
- static styleMapInterpolate8 = {
2611
- name: 'ɵɵstyleMapInterpolate8',
2612
- moduleName: CORE,
2613
- };
2614
- static styleMapInterpolateV = {
2615
- name: 'ɵɵstyleMapInterpolateV',
2616
- moduleName: CORE,
2617
- };
2618
2568
  static classMap = { name: 'ɵɵclassMap', moduleName: CORE };
2619
- static classMapInterpolate1 = {
2620
- name: 'ɵɵclassMapInterpolate1',
2621
- moduleName: CORE,
2622
- };
2623
- static classMapInterpolate2 = {
2624
- name: 'ɵɵclassMapInterpolate2',
2625
- moduleName: CORE,
2626
- };
2627
- static classMapInterpolate3 = {
2628
- name: 'ɵɵclassMapInterpolate3',
2629
- moduleName: CORE,
2630
- };
2631
- static classMapInterpolate4 = {
2632
- name: 'ɵɵclassMapInterpolate4',
2633
- moduleName: CORE,
2634
- };
2635
- static classMapInterpolate5 = {
2636
- name: 'ɵɵclassMapInterpolate5',
2637
- moduleName: CORE,
2638
- };
2639
- static classMapInterpolate6 = {
2640
- name: 'ɵɵclassMapInterpolate6',
2641
- moduleName: CORE,
2642
- };
2643
- static classMapInterpolate7 = {
2644
- name: 'ɵɵclassMapInterpolate7',
2645
- moduleName: CORE,
2646
- };
2647
- static classMapInterpolate8 = {
2648
- name: 'ɵɵclassMapInterpolate8',
2649
- moduleName: CORE,
2650
- };
2651
- static classMapInterpolateV = {
2652
- name: 'ɵɵclassMapInterpolateV',
2569
+ static styleProp = { name: 'ɵɵstyleProp', moduleName: CORE };
2570
+ static interpolate = {
2571
+ name: 'ɵɵinterpolate',
2653
2572
  moduleName: CORE,
2654
2573
  };
2655
- static styleProp = { name: 'ɵɵstyleProp', moduleName: CORE };
2656
- static stylePropInterpolate1 = {
2657
- name: 'ɵɵstylePropInterpolate1',
2574
+ static interpolate1 = {
2575
+ name: 'ɵɵinterpolate1',
2658
2576
  moduleName: CORE,
2659
2577
  };
2660
- static stylePropInterpolate2 = {
2661
- name: 'ɵɵstylePropInterpolate2',
2578
+ static interpolate2 = {
2579
+ name: 'ɵɵinterpolate2',
2662
2580
  moduleName: CORE,
2663
2581
  };
2664
- static stylePropInterpolate3 = {
2665
- name: 'ɵɵstylePropInterpolate3',
2582
+ static interpolate3 = {
2583
+ name: 'ɵɵinterpolate3',
2666
2584
  moduleName: CORE,
2667
2585
  };
2668
- static stylePropInterpolate4 = {
2669
- name: 'ɵɵstylePropInterpolate4',
2586
+ static interpolate4 = {
2587
+ name: 'ɵɵinterpolate4',
2670
2588
  moduleName: CORE,
2671
2589
  };
2672
- static stylePropInterpolate5 = {
2673
- name: 'ɵɵstylePropInterpolate5',
2590
+ static interpolate5 = {
2591
+ name: 'ɵɵinterpolate5',
2674
2592
  moduleName: CORE,
2675
2593
  };
2676
- static stylePropInterpolate6 = {
2677
- name: 'ɵɵstylePropInterpolate6',
2594
+ static interpolate6 = {
2595
+ name: 'ɵɵinterpolate6',
2678
2596
  moduleName: CORE,
2679
2597
  };
2680
- static stylePropInterpolate7 = {
2681
- name: 'ɵɵstylePropInterpolate7',
2598
+ static interpolate7 = {
2599
+ name: 'ɵɵinterpolate7',
2682
2600
  moduleName: CORE,
2683
2601
  };
2684
- static stylePropInterpolate8 = {
2685
- name: 'ɵɵstylePropInterpolate8',
2602
+ static interpolate8 = {
2603
+ name: 'ɵɵinterpolate8',
2686
2604
  moduleName: CORE,
2687
2605
  };
2688
- static stylePropInterpolateV = {
2689
- name: 'ɵɵstylePropInterpolateV',
2606
+ static interpolateV = {
2607
+ name: 'ɵɵinterpolateV',
2690
2608
  moduleName: CORE,
2691
2609
  };
2692
2610
  static nextContext = { name: 'ɵɵnextContext', moduleName: CORE };
@@ -2804,46 +2722,6 @@ class Identifiers {
2804
2722
  static pipeBindV = { name: 'ɵɵpipeBindV', moduleName: CORE };
2805
2723
  static domProperty = { name: 'ɵɵdomProperty', moduleName: CORE };
2806
2724
  static property = { name: 'ɵɵproperty', moduleName: CORE };
2807
- static propertyInterpolate = {
2808
- name: 'ɵɵpropertyInterpolate',
2809
- moduleName: CORE,
2810
- };
2811
- static propertyInterpolate1 = {
2812
- name: 'ɵɵpropertyInterpolate1',
2813
- moduleName: CORE,
2814
- };
2815
- static propertyInterpolate2 = {
2816
- name: 'ɵɵpropertyInterpolate2',
2817
- moduleName: CORE,
2818
- };
2819
- static propertyInterpolate3 = {
2820
- name: 'ɵɵpropertyInterpolate3',
2821
- moduleName: CORE,
2822
- };
2823
- static propertyInterpolate4 = {
2824
- name: 'ɵɵpropertyInterpolate4',
2825
- moduleName: CORE,
2826
- };
2827
- static propertyInterpolate5 = {
2828
- name: 'ɵɵpropertyInterpolate5',
2829
- moduleName: CORE,
2830
- };
2831
- static propertyInterpolate6 = {
2832
- name: 'ɵɵpropertyInterpolate6',
2833
- moduleName: CORE,
2834
- };
2835
- static propertyInterpolate7 = {
2836
- name: 'ɵɵpropertyInterpolate7',
2837
- moduleName: CORE,
2838
- };
2839
- static propertyInterpolate8 = {
2840
- name: 'ɵɵpropertyInterpolate8',
2841
- moduleName: CORE,
2842
- };
2843
- static propertyInterpolateV = {
2844
- name: 'ɵɵpropertyInterpolateV',
2845
- moduleName: CORE,
2846
- };
2847
2725
  static i18n = { name: 'ɵɵi18n', moduleName: CORE };
2848
2726
  static i18nAttributes = { name: 'ɵɵi18nAttributes', moduleName: CORE };
2849
2727
  static i18nExp = { name: 'ɵɵi18nExp', moduleName: CORE };
@@ -2867,6 +2745,10 @@ class Identifiers {
2867
2745
  static forwardRef = { name: 'forwardRef', moduleName: CORE };
2868
2746
  static resolveForwardRef = { name: 'resolveForwardRef', moduleName: CORE };
2869
2747
  static replaceMetadata = { name: 'ɵɵreplaceMetadata', moduleName: CORE };
2748
+ static getReplaceMetadataURL = {
2749
+ name: 'ɵɵgetReplaceMetadataURL',
2750
+ moduleName: CORE,
2751
+ };
2870
2752
  static ɵɵdefineInjectable = { name: 'ɵɵdefineInjectable', moduleName: CORE };
2871
2753
  static declareInjectable = { name: 'ɵɵngDeclareInjectable', moduleName: CORE };
2872
2754
  static InjectableDeclaration = {
@@ -3882,14 +3764,6 @@ var R3FactoryDelegateType;
3882
3764
  R3FactoryDelegateType[R3FactoryDelegateType["Class"] = 0] = "Class";
3883
3765
  R3FactoryDelegateType[R3FactoryDelegateType["Function"] = 1] = "Function";
3884
3766
  })(R3FactoryDelegateType || (R3FactoryDelegateType = {}));
3885
- exports.FactoryTarget = void 0;
3886
- (function (FactoryTarget) {
3887
- FactoryTarget[FactoryTarget["Directive"] = 0] = "Directive";
3888
- FactoryTarget[FactoryTarget["Component"] = 1] = "Component";
3889
- FactoryTarget[FactoryTarget["Injectable"] = 2] = "Injectable";
3890
- FactoryTarget[FactoryTarget["Pipe"] = 3] = "Pipe";
3891
- FactoryTarget[FactoryTarget["NgModule"] = 4] = "NgModule";
3892
- })(exports.FactoryTarget || (exports.FactoryTarget = {}));
3893
3767
  /**
3894
3768
  * Construct a factory function expression for the given `R3FactoryMetadata`.
3895
3769
  */
@@ -11881,15 +11755,6 @@ const CHAIN_COMPATIBILITY = new Map([
11881
11755
  [Identifiers.listener, Identifiers.listener],
11882
11756
  [Identifiers.property, Identifiers.property],
11883
11757
  [Identifiers.styleProp, Identifiers.styleProp],
11884
- [Identifiers.stylePropInterpolate1, Identifiers.stylePropInterpolate1],
11885
- [Identifiers.stylePropInterpolate2, Identifiers.stylePropInterpolate2],
11886
- [Identifiers.stylePropInterpolate3, Identifiers.stylePropInterpolate3],
11887
- [Identifiers.stylePropInterpolate4, Identifiers.stylePropInterpolate4],
11888
- [Identifiers.stylePropInterpolate5, Identifiers.stylePropInterpolate5],
11889
- [Identifiers.stylePropInterpolate6, Identifiers.stylePropInterpolate6],
11890
- [Identifiers.stylePropInterpolate7, Identifiers.stylePropInterpolate7],
11891
- [Identifiers.stylePropInterpolate8, Identifiers.stylePropInterpolate8],
11892
- [Identifiers.stylePropInterpolateV, Identifiers.stylePropInterpolateV],
11893
11758
  [Identifiers.syntheticHostListener, Identifiers.syntheticHostListener],
11894
11759
  [Identifiers.syntheticHostProperty, Identifiers.syntheticHostProperty],
11895
11760
  [Identifiers.templateCreate, Identifiers.templateCreate],
@@ -11973,11 +11838,11 @@ function chainOperationsInList(opList) {
11973
11838
  }
11974
11839
 
11975
11840
  /**
11976
- * Attribute interpolations of the form `[attr.foo]="{{foo}}""` should be "collapsed" into a plain
11977
- * 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.
11978
11843
  *
11979
- * (We cannot do this for singleton property interpolations, because `propertyInterpolate`
11980
- * stringifies its expression.)
11844
+ * (We cannot do this for singleton property interpolations,
11845
+ * because they need to stringify their expressions)
11981
11846
  *
11982
11847
  * The reification step is also capable of performing this transformation, but doing it early in the
11983
11848
  * pipeline allows other phases to accurately know what instruction will be emitted.
@@ -11985,7 +11850,10 @@ function chainOperationsInList(opList) {
11985
11850
  function collapseSingletonInterpolations(job) {
11986
11851
  for (const unit of job.units) {
11987
11852
  for (const op of unit.update) {
11988
- 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;
11989
11857
  if (eligibleOpKind &&
11990
11858
  op.expression instanceof Interpolation &&
11991
11859
  op.expression.strings.length === 2 &&
@@ -18271,8 +18139,7 @@ class _Scanner {
18271
18139
  length;
18272
18140
  peek = 0;
18273
18141
  index = -1;
18274
- literalInterpolationDepth = 0;
18275
- braceDepth = 0;
18142
+ braceStack = [];
18276
18143
  constructor(input) {
18277
18144
  this.input = input;
18278
18145
  this.length = input.length;
@@ -18380,18 +18247,17 @@ class _Scanner {
18380
18247
  return newOperatorToken(start, this.index, str);
18381
18248
  }
18382
18249
  scanOpenBrace(start, code) {
18383
- this.braceDepth++;
18250
+ this.braceStack.push('expression');
18384
18251
  this.advance();
18385
18252
  return newCharacterToken(start, this.index, code);
18386
18253
  }
18387
18254
  scanCloseBrace(start, code) {
18388
18255
  this.advance();
18389
- if (this.braceDepth === 0 && this.literalInterpolationDepth > 0) {
18390
- this.literalInterpolationDepth--;
18256
+ const currentBrace = this.braceStack.pop();
18257
+ if (currentBrace === 'interpolation') {
18391
18258
  this.tokens.push(newOperatorToken(start, this.index, '}'));
18392
18259
  return this.scanTemplateLiteralPart(this.index);
18393
18260
  }
18394
- this.braceDepth--;
18395
18261
  return newCharacterToken(start, this.index, code);
18396
18262
  }
18397
18263
  /**
@@ -18534,7 +18400,7 @@ class _Scanner {
18534
18400
  this.advance();
18535
18401
  // @ts-expect-error
18536
18402
  if (this.peek === $LBRACE) {
18537
- this.literalInterpolationDepth++;
18403
+ this.braceStack.push('interpolation');
18538
18404
  this.tokens.push(new StringToken(start, dollar, buffer + this.input.substring(marker, dollar), StringTokenKind.TemplateLiteralPart));
18539
18405
  this.advance();
18540
18406
  return newOperatorToken(dollar, this.index, this.input.substring(dollar, this.index));
@@ -23395,7 +23261,13 @@ function i18nAttributes(slot, i18nAttributesConfig) {
23395
23261
  return call(Identifiers.i18nAttributes, args, null);
23396
23262
  }
23397
23263
  function property(name, expression, sanitizer, sourceSpan) {
23398
- 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
+ }
23399
23271
  if (sanitizer !== null) {
23400
23272
  args.push(sanitizer);
23401
23273
  }
@@ -23408,8 +23280,14 @@ function twoWayProperty(name, expression, sanitizer, sourceSpan) {
23408
23280
  }
23409
23281
  return call(Identifiers.twoWayProperty, args, sourceSpan);
23410
23282
  }
23411
- function attribute(name, expression, sanitizer, namespace) {
23412
- 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
+ }
23413
23291
  if (sanitizer !== null || namespace !== null) {
23414
23292
  args.push(sanitizer ?? literal(null));
23415
23293
  }
@@ -23419,7 +23297,13 @@ function attribute(name, expression, sanitizer, namespace) {
23419
23297
  return call(Identifiers.attribute, args, null);
23420
23298
  }
23421
23299
  function styleProp(name, expression, unit, sourceSpan) {
23422
- 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
+ }
23423
23307
  if (unit !== null) {
23424
23308
  args.push(literal(unit));
23425
23309
  }
@@ -23429,10 +23313,16 @@ function classProp(name, expression, sourceSpan) {
23429
23313
  return call(Identifiers.classProp, [literal(name), expression], sourceSpan);
23430
23314
  }
23431
23315
  function styleMap(expression, sourceSpan) {
23432
- 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);
23433
23320
  }
23434
23321
  function classMap(expression, sourceSpan) {
23435
- 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);
23436
23326
  }
23437
23327
  const PIPE_BINDINGS = [
23438
23328
  Identifiers.pipeBind1,
@@ -23460,38 +23350,6 @@ function i18nExp(expr, sourceSpan) {
23460
23350
  function i18nApply(slot, sourceSpan) {
23461
23351
  return call(Identifiers.i18nApply, [literal(slot)], sourceSpan);
23462
23352
  }
23463
- function propertyInterpolate(name, strings, expressions, sanitizer, sourceSpan) {
23464
- const interpolationArgs = collateInterpolationArgs(strings, expressions);
23465
- const extraArgs = [];
23466
- if (sanitizer !== null) {
23467
- extraArgs.push(sanitizer);
23468
- }
23469
- return callVariadicInstruction(PROPERTY_INTERPOLATE_CONFIG, [literal(name)], interpolationArgs, extraArgs, sourceSpan);
23470
- }
23471
- function attributeInterpolate(name, strings, expressions, sanitizer, sourceSpan) {
23472
- const interpolationArgs = collateInterpolationArgs(strings, expressions);
23473
- const extraArgs = [];
23474
- if (sanitizer !== null) {
23475
- extraArgs.push(sanitizer);
23476
- }
23477
- return callVariadicInstruction(ATTRIBUTE_INTERPOLATE_CONFIG, [literal(name)], interpolationArgs, extraArgs, sourceSpan);
23478
- }
23479
- function stylePropInterpolate(name, strings, expressions, unit, sourceSpan) {
23480
- const interpolationArgs = collateInterpolationArgs(strings, expressions);
23481
- const extraArgs = [];
23482
- if (unit !== null) {
23483
- extraArgs.push(literal(unit));
23484
- }
23485
- return callVariadicInstruction(STYLE_PROP_INTERPOLATE_CONFIG, [literal(name)], interpolationArgs, extraArgs, sourceSpan);
23486
- }
23487
- function styleMapInterpolate(strings, expressions, sourceSpan) {
23488
- const interpolationArgs = collateInterpolationArgs(strings, expressions);
23489
- return callVariadicInstruction(STYLE_MAP_INTERPOLATE_CONFIG, [], interpolationArgs, [], sourceSpan);
23490
- }
23491
- function classMapInterpolate(strings, expressions, sourceSpan) {
23492
- const interpolationArgs = collateInterpolationArgs(strings, expressions);
23493
- return callVariadicInstruction(CLASS_MAP_INTERPOLATE_CONFIG, [], interpolationArgs, [], sourceSpan);
23494
- }
23495
23353
  function domProperty(name, expression, sanitizer, sourceSpan) {
23496
23354
  const args = [literal(name), expression];
23497
23355
  if (sanitizer !== null) {
@@ -23529,6 +23387,10 @@ function collateInterpolationArgs(strings, expressions) {
23529
23387
  }
23530
23388
  return interpolationArgs;
23531
23389
  }
23390
+ function interpolationToExpression(interpolation, sourceSpan) {
23391
+ const interpolationArgs = collateInterpolationArgs(interpolation.strings, interpolation.expressions);
23392
+ return callVariadicInstructionExpr(VALUE_INTERPOLATE_CONFIG, [], interpolationArgs, [], sourceSpan);
23393
+ }
23532
23394
  function call(instruction, args, sourceSpan) {
23533
23395
  const expr = importExpr(instruction).callFn(args, sourceSpan);
23534
23396
  return createStatementOp(new ExpressionStatement(expr, sourceSpan));
@@ -23563,114 +23425,19 @@ const TEXT_INTERPOLATE_CONFIG = {
23563
23425
  return (n - 1) / 2;
23564
23426
  },
23565
23427
  };
23566
- /**
23567
- * `InterpolationConfig` for the `propertyInterpolate` instruction.
23568
- */
23569
- const PROPERTY_INTERPOLATE_CONFIG = {
23570
- constant: [
23571
- Identifiers.propertyInterpolate,
23572
- Identifiers.propertyInterpolate1,
23573
- Identifiers.propertyInterpolate2,
23574
- Identifiers.propertyInterpolate3,
23575
- Identifiers.propertyInterpolate4,
23576
- Identifiers.propertyInterpolate5,
23577
- Identifiers.propertyInterpolate6,
23578
- Identifiers.propertyInterpolate7,
23579
- Identifiers.propertyInterpolate8,
23580
- ],
23581
- variable: Identifiers.propertyInterpolateV,
23582
- mapping: (n) => {
23583
- if (n % 2 === 0) {
23584
- throw new Error(`Expected odd number of arguments`);
23585
- }
23586
- return (n - 1) / 2;
23587
- },
23588
- };
23589
- /**
23590
- * `InterpolationConfig` for the `stylePropInterpolate` instruction.
23591
- */
23592
- const STYLE_PROP_INTERPOLATE_CONFIG = {
23593
- constant: [
23594
- Identifiers.styleProp,
23595
- Identifiers.stylePropInterpolate1,
23596
- Identifiers.stylePropInterpolate2,
23597
- Identifiers.stylePropInterpolate3,
23598
- Identifiers.stylePropInterpolate4,
23599
- Identifiers.stylePropInterpolate5,
23600
- Identifiers.stylePropInterpolate6,
23601
- Identifiers.stylePropInterpolate7,
23602
- Identifiers.stylePropInterpolate8,
23603
- ],
23604
- variable: Identifiers.stylePropInterpolateV,
23605
- mapping: (n) => {
23606
- if (n % 2 === 0) {
23607
- throw new Error(`Expected odd number of arguments`);
23608
- }
23609
- return (n - 1) / 2;
23610
- },
23611
- };
23612
- /**
23613
- * `InterpolationConfig` for the `attributeInterpolate` instruction.
23614
- */
23615
- const ATTRIBUTE_INTERPOLATE_CONFIG = {
23616
- constant: [
23617
- Identifiers.attribute,
23618
- Identifiers.attributeInterpolate1,
23619
- Identifiers.attributeInterpolate2,
23620
- Identifiers.attributeInterpolate3,
23621
- Identifiers.attributeInterpolate4,
23622
- Identifiers.attributeInterpolate5,
23623
- Identifiers.attributeInterpolate6,
23624
- Identifiers.attributeInterpolate7,
23625
- Identifiers.attributeInterpolate8,
23626
- ],
23627
- variable: Identifiers.attributeInterpolateV,
23628
- mapping: (n) => {
23629
- if (n % 2 === 0) {
23630
- throw new Error(`Expected odd number of arguments`);
23631
- }
23632
- return (n - 1) / 2;
23633
- },
23634
- };
23635
- /**
23636
- * `InterpolationConfig` for the `styleMapInterpolate` instruction.
23637
- */
23638
- const STYLE_MAP_INTERPOLATE_CONFIG = {
23428
+ const VALUE_INTERPOLATE_CONFIG = {
23639
23429
  constant: [
23640
- Identifiers.styleMap,
23641
- Identifiers.styleMapInterpolate1,
23642
- Identifiers.styleMapInterpolate2,
23643
- Identifiers.styleMapInterpolate3,
23644
- Identifiers.styleMapInterpolate4,
23645
- Identifiers.styleMapInterpolate5,
23646
- Identifiers.styleMapInterpolate6,
23647
- Identifiers.styleMapInterpolate7,
23648
- Identifiers.styleMapInterpolate8,
23430
+ Identifiers.interpolate,
23431
+ Identifiers.interpolate1,
23432
+ Identifiers.interpolate2,
23433
+ Identifiers.interpolate3,
23434
+ Identifiers.interpolate4,
23435
+ Identifiers.interpolate5,
23436
+ Identifiers.interpolate6,
23437
+ Identifiers.interpolate7,
23438
+ Identifiers.interpolate8,
23649
23439
  ],
23650
- variable: Identifiers.styleMapInterpolateV,
23651
- mapping: (n) => {
23652
- if (n % 2 === 0) {
23653
- throw new Error(`Expected odd number of arguments`);
23654
- }
23655
- return (n - 1) / 2;
23656
- },
23657
- };
23658
- /**
23659
- * `InterpolationConfig` for the `classMapInterpolate` instruction.
23660
- */
23661
- const CLASS_MAP_INTERPOLATE_CONFIG = {
23662
- constant: [
23663
- Identifiers.classMap,
23664
- Identifiers.classMapInterpolate1,
23665
- Identifiers.classMapInterpolate2,
23666
- Identifiers.classMapInterpolate3,
23667
- Identifiers.classMapInterpolate4,
23668
- Identifiers.classMapInterpolate5,
23669
- Identifiers.classMapInterpolate6,
23670
- Identifiers.classMapInterpolate7,
23671
- Identifiers.classMapInterpolate8,
23672
- ],
23673
- variable: Identifiers.classMapInterpolateV,
23440
+ variable: Identifiers.interpolateV,
23674
23441
  mapping: (n) => {
23675
23442
  if (n % 2 === 0) {
23676
23443
  throw new Error(`Expected odd number of arguments`);
@@ -23982,42 +23749,22 @@ function reifyUpdateOperations(_unit, ops) {
23982
23749
  OpList.replace(op, advance(op.delta, op.sourceSpan));
23983
23750
  break;
23984
23751
  case OpKind.Property:
23985
- if (op.expression instanceof Interpolation) {
23986
- OpList.replace(op, propertyInterpolate(op.name, op.expression.strings, op.expression.expressions, op.sanitizer, op.sourceSpan));
23987
- }
23988
- else {
23989
- OpList.replace(op, property(op.name, op.expression, op.sanitizer, op.sourceSpan));
23990
- }
23752
+ OpList.replace(op, property(op.name, op.expression, op.sanitizer, op.sourceSpan));
23991
23753
  break;
23992
23754
  case OpKind.TwoWayProperty:
23993
23755
  OpList.replace(op, twoWayProperty(op.name, op.expression, op.sanitizer, op.sourceSpan));
23994
23756
  break;
23995
23757
  case OpKind.StyleProp:
23996
- if (op.expression instanceof Interpolation) {
23997
- OpList.replace(op, stylePropInterpolate(op.name, op.expression.strings, op.expression.expressions, op.unit, op.sourceSpan));
23998
- }
23999
- else {
24000
- OpList.replace(op, styleProp(op.name, op.expression, op.unit, op.sourceSpan));
24001
- }
23758
+ OpList.replace(op, styleProp(op.name, op.expression, op.unit, op.sourceSpan));
24002
23759
  break;
24003
23760
  case OpKind.ClassProp:
24004
23761
  OpList.replace(op, classProp(op.name, op.expression, op.sourceSpan));
24005
23762
  break;
24006
23763
  case OpKind.StyleMap:
24007
- if (op.expression instanceof Interpolation) {
24008
- OpList.replace(op, styleMapInterpolate(op.expression.strings, op.expression.expressions, op.sourceSpan));
24009
- }
24010
- else {
24011
- OpList.replace(op, styleMap(op.expression, op.sourceSpan));
24012
- }
23764
+ OpList.replace(op, styleMap(op.expression, op.sourceSpan));
24013
23765
  break;
24014
23766
  case OpKind.ClassMap:
24015
- if (op.expression instanceof Interpolation) {
24016
- OpList.replace(op, classMapInterpolate(op.expression.strings, op.expression.expressions, op.sourceSpan));
24017
- }
24018
- else {
24019
- OpList.replace(op, classMap(op.expression, op.sourceSpan));
24020
- }
23767
+ OpList.replace(op, classMap(op.expression, op.sourceSpan));
24021
23768
  break;
24022
23769
  case OpKind.I18nExpression:
24023
23770
  OpList.replace(op, i18nExp(op.expression, op.sourceSpan));
@@ -24029,12 +23776,7 @@ function reifyUpdateOperations(_unit, ops) {
24029
23776
  OpList.replace(op, textInterpolate(op.interpolation.strings, op.interpolation.expressions, op.sourceSpan));
24030
23777
  break;
24031
23778
  case OpKind.Attribute:
24032
- if (op.expression instanceof Interpolation) {
24033
- OpList.replace(op, attributeInterpolate(op.name, op.expression.strings, op.expression.expressions, op.sanitizer, op.sourceSpan));
24034
- }
24035
- else {
24036
- OpList.replace(op, attribute(op.name, op.expression, op.sanitizer, op.namespace));
24037
- }
23779
+ OpList.replace(op, attribute(op.name, op.expression, op.sanitizer, op.namespace, op.sourceSpan));
24038
23780
  break;
24039
23781
  case OpKind.DomProperty:
24040
23782
  if (op.expression instanceof Interpolation) {
@@ -25532,8 +25274,6 @@ function countVariables(job) {
25532
25274
  function varsUsedByOp(op) {
25533
25275
  let slots;
25534
25276
  switch (op.kind) {
25535
- case OpKind.Property:
25536
- case OpKind.DomProperty:
25537
25277
  case OpKind.Attribute:
25538
25278
  // All of these bindings use 1 variable slot, plus 1 slot for every interpolated expression,
25539
25279
  // if any.
@@ -25542,6 +25282,15 @@ function varsUsedByOp(op) {
25542
25282
  slots += op.expression.expressions.length;
25543
25283
  }
25544
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;
25545
25294
  case OpKind.TwoWayProperty:
25546
25295
  // Two-way properties can only have expressions so they only need one variable slot.
25547
25296
  return 1;
@@ -32391,21 +32140,12 @@ function isAttrNode(ast) {
32391
32140
  return ast.length === 1 && ast[0] instanceof Attribute;
32392
32141
  }
32393
32142
 
32394
- var FactoryTarget;
32395
- (function (FactoryTarget) {
32396
- FactoryTarget[FactoryTarget["Directive"] = 0] = "Directive";
32397
- FactoryTarget[FactoryTarget["Component"] = 1] = "Component";
32398
- FactoryTarget[FactoryTarget["Injectable"] = 2] = "Injectable";
32399
- FactoryTarget[FactoryTarget["Pipe"] = 3] = "Pipe";
32400
- FactoryTarget[FactoryTarget["NgModule"] = 4] = "NgModule";
32401
- })(FactoryTarget || (FactoryTarget = {}));
32402
-
32403
32143
  /**
32404
32144
  * @module
32405
32145
  * @description
32406
32146
  * Entry point for all public APIs of the compiler package.
32407
32147
  */
32408
- new Version('20.0.0-rc.1');
32148
+ new Version('20.0.0-rc.3');
32409
32149
 
32410
32150
  //////////////////////////////////////
32411
32151
  // THIS FILE HAS GLOBAL SIDE EFFECT //
@@ -32483,7 +32223,6 @@ exports.Identifiers = Identifiers;
32483
32223
  exports.IfBlock = IfBlock;
32484
32224
  exports.IfBlockBranch = IfBlockBranch;
32485
32225
  exports.ImplicitReceiver = ImplicitReceiver;
32486
- exports.InstantiateExpr = InstantiateExpr;
32487
32226
  exports.Interpolation = Interpolation$1;
32488
32227
  exports.InterpolationConfig = InterpolationConfig;
32489
32228
  exports.InvokeFunctionExpr = InvokeFunctionExpr;