@angular/compiler 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.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Angular v20.0.0-rc.1
2
+ * @license Angular v20.0.0-rc.3
3
3
  * (c) 2010-2025 Google LLC. https://angular.io/
4
4
  * License: MIT
5
5
  */
@@ -415,13 +415,13 @@ class SelectorlessMatcher {
415
415
  // Stores the default value of `emitDistinctChangesOnly` when the `emitDistinctChangesOnly` is not
416
416
  // explicitly set.
417
417
  const emitDistinctChangesOnlyDefaultValue = true;
418
- var ViewEncapsulation;
418
+ var ViewEncapsulation$1;
419
419
  (function (ViewEncapsulation) {
420
420
  ViewEncapsulation[ViewEncapsulation["Emulated"] = 0] = "Emulated";
421
421
  // Historically the 1 value was for `Native` encapsulation which has been removed as of v11.
422
422
  ViewEncapsulation[ViewEncapsulation["None"] = 2] = "None";
423
423
  ViewEncapsulation[ViewEncapsulation["ShadowDom"] = 3] = "ShadowDom";
424
- })(ViewEncapsulation || (ViewEncapsulation = {}));
424
+ })(ViewEncapsulation$1 || (ViewEncapsulation$1 = {}));
425
425
  var ChangeDetectionStrategy;
426
426
  (function (ChangeDetectionStrategy) {
427
427
  ChangeDetectionStrategy[ChangeDetectionStrategy["OnPush"] = 0] = "OnPush";
@@ -504,11 +504,33 @@ var core = /*#__PURE__*/Object.freeze({
504
504
  NO_ERRORS_SCHEMA: NO_ERRORS_SCHEMA,
505
505
  get SecurityContext () { return SecurityContext; },
506
506
  Type: Type$1,
507
- get ViewEncapsulation () { return ViewEncapsulation; },
507
+ get ViewEncapsulation () { return ViewEncapsulation$1; },
508
508
  emitDistinctChangesOnlyDefaultValue: emitDistinctChangesOnlyDefaultValue,
509
509
  parseSelectorToR3Selector: parseSelectorToR3Selector
510
510
  });
511
511
 
512
+ var FactoryTarget;
513
+ (function (FactoryTarget) {
514
+ FactoryTarget[FactoryTarget["Directive"] = 0] = "Directive";
515
+ FactoryTarget[FactoryTarget["Component"] = 1] = "Component";
516
+ FactoryTarget[FactoryTarget["Injectable"] = 2] = "Injectable";
517
+ FactoryTarget[FactoryTarget["Pipe"] = 3] = "Pipe";
518
+ FactoryTarget[FactoryTarget["NgModule"] = 4] = "NgModule";
519
+ })(FactoryTarget || (FactoryTarget = {}));
520
+ var R3TemplateDependencyKind$1;
521
+ (function (R3TemplateDependencyKind) {
522
+ R3TemplateDependencyKind[R3TemplateDependencyKind["Directive"] = 0] = "Directive";
523
+ R3TemplateDependencyKind[R3TemplateDependencyKind["Pipe"] = 1] = "Pipe";
524
+ R3TemplateDependencyKind[R3TemplateDependencyKind["NgModule"] = 2] = "NgModule";
525
+ })(R3TemplateDependencyKind$1 || (R3TemplateDependencyKind$1 = {}));
526
+ var ViewEncapsulation;
527
+ (function (ViewEncapsulation) {
528
+ ViewEncapsulation[ViewEncapsulation["Emulated"] = 0] = "Emulated";
529
+ // Historically the 1 value was for `Native` encapsulation which has been removed as of v11.
530
+ ViewEncapsulation[ViewEncapsulation["None"] = 2] = "None";
531
+ ViewEncapsulation[ViewEncapsulation["ShadowDom"] = 3] = "ShadowDom";
532
+ })(ViewEncapsulation || (ViewEncapsulation = {}));
533
+
512
534
  /**
513
535
  * A lazily created TextEncoder instance for converting strings into UTF-8 bytes
514
536
  */
@@ -2682,42 +2704,6 @@ class Identifiers {
2682
2704
  moduleName: CORE,
2683
2705
  };
2684
2706
  static attribute = { name: 'ɵɵattribute', moduleName: CORE };
2685
- static attributeInterpolate1 = {
2686
- name: 'ɵɵattributeInterpolate1',
2687
- moduleName: CORE,
2688
- };
2689
- static attributeInterpolate2 = {
2690
- name: 'ɵɵattributeInterpolate2',
2691
- moduleName: CORE,
2692
- };
2693
- static attributeInterpolate3 = {
2694
- name: 'ɵɵattributeInterpolate3',
2695
- moduleName: CORE,
2696
- };
2697
- static attributeInterpolate4 = {
2698
- name: 'ɵɵattributeInterpolate4',
2699
- moduleName: CORE,
2700
- };
2701
- static attributeInterpolate5 = {
2702
- name: 'ɵɵattributeInterpolate5',
2703
- moduleName: CORE,
2704
- };
2705
- static attributeInterpolate6 = {
2706
- name: 'ɵɵattributeInterpolate6',
2707
- moduleName: CORE,
2708
- };
2709
- static attributeInterpolate7 = {
2710
- name: 'ɵɵattributeInterpolate7',
2711
- moduleName: CORE,
2712
- };
2713
- static attributeInterpolate8 = {
2714
- name: 'ɵɵattributeInterpolate8',
2715
- moduleName: CORE,
2716
- };
2717
- static attributeInterpolateV = {
2718
- name: 'ɵɵattributeInterpolateV',
2719
- moduleName: CORE,
2720
- };
2721
2707
  static classProp = { name: 'ɵɵclassProp', moduleName: CORE };
2722
2708
  static elementContainerStart = {
2723
2709
  name: 'ɵɵelementContainerStart',
@@ -2729,114 +2715,46 @@ class Identifiers {
2729
2715
  };
2730
2716
  static elementContainer = { name: 'ɵɵelementContainer', moduleName: CORE };
2731
2717
  static styleMap = { name: 'ɵɵstyleMap', moduleName: CORE };
2732
- static styleMapInterpolate1 = {
2733
- name: 'ɵɵstyleMapInterpolate1',
2734
- moduleName: CORE,
2735
- };
2736
- static styleMapInterpolate2 = {
2737
- name: 'ɵɵstyleMapInterpolate2',
2738
- moduleName: CORE,
2739
- };
2740
- static styleMapInterpolate3 = {
2741
- name: 'ɵɵstyleMapInterpolate3',
2742
- moduleName: CORE,
2743
- };
2744
- static styleMapInterpolate4 = {
2745
- name: 'ɵɵstyleMapInterpolate4',
2746
- moduleName: CORE,
2747
- };
2748
- static styleMapInterpolate5 = {
2749
- name: 'ɵɵstyleMapInterpolate5',
2750
- moduleName: CORE,
2751
- };
2752
- static styleMapInterpolate6 = {
2753
- name: 'ɵɵstyleMapInterpolate6',
2754
- moduleName: CORE,
2755
- };
2756
- static styleMapInterpolate7 = {
2757
- name: 'ɵɵstyleMapInterpolate7',
2758
- moduleName: CORE,
2759
- };
2760
- static styleMapInterpolate8 = {
2761
- name: 'ɵɵstyleMapInterpolate8',
2762
- moduleName: CORE,
2763
- };
2764
- static styleMapInterpolateV = {
2765
- name: 'ɵɵstyleMapInterpolateV',
2766
- moduleName: CORE,
2767
- };
2768
2718
  static classMap = { name: 'ɵɵclassMap', moduleName: CORE };
2769
- static classMapInterpolate1 = {
2770
- name: 'ɵɵclassMapInterpolate1',
2771
- moduleName: CORE,
2772
- };
2773
- static classMapInterpolate2 = {
2774
- name: 'ɵɵclassMapInterpolate2',
2775
- moduleName: CORE,
2776
- };
2777
- static classMapInterpolate3 = {
2778
- name: 'ɵɵclassMapInterpolate3',
2779
- moduleName: CORE,
2780
- };
2781
- static classMapInterpolate4 = {
2782
- name: 'ɵɵclassMapInterpolate4',
2783
- moduleName: CORE,
2784
- };
2785
- static classMapInterpolate5 = {
2786
- name: 'ɵɵclassMapInterpolate5',
2787
- moduleName: CORE,
2788
- };
2789
- static classMapInterpolate6 = {
2790
- name: 'ɵɵclassMapInterpolate6',
2791
- moduleName: CORE,
2792
- };
2793
- static classMapInterpolate7 = {
2794
- name: 'ɵɵclassMapInterpolate7',
2795
- moduleName: CORE,
2796
- };
2797
- static classMapInterpolate8 = {
2798
- name: 'ɵɵclassMapInterpolate8',
2799
- moduleName: CORE,
2800
- };
2801
- static classMapInterpolateV = {
2802
- name: 'ɵɵclassMapInterpolateV',
2719
+ static styleProp = { name: 'ɵɵstyleProp', moduleName: CORE };
2720
+ static interpolate = {
2721
+ name: 'ɵɵinterpolate',
2803
2722
  moduleName: CORE,
2804
2723
  };
2805
- static styleProp = { name: 'ɵɵstyleProp', moduleName: CORE };
2806
- static stylePropInterpolate1 = {
2807
- name: 'ɵɵstylePropInterpolate1',
2724
+ static interpolate1 = {
2725
+ name: 'ɵɵinterpolate1',
2808
2726
  moduleName: CORE,
2809
2727
  };
2810
- static stylePropInterpolate2 = {
2811
- name: 'ɵɵstylePropInterpolate2',
2728
+ static interpolate2 = {
2729
+ name: 'ɵɵinterpolate2',
2812
2730
  moduleName: CORE,
2813
2731
  };
2814
- static stylePropInterpolate3 = {
2815
- name: 'ɵɵstylePropInterpolate3',
2732
+ static interpolate3 = {
2733
+ name: 'ɵɵinterpolate3',
2816
2734
  moduleName: CORE,
2817
2735
  };
2818
- static stylePropInterpolate4 = {
2819
- name: 'ɵɵstylePropInterpolate4',
2736
+ static interpolate4 = {
2737
+ name: 'ɵɵinterpolate4',
2820
2738
  moduleName: CORE,
2821
2739
  };
2822
- static stylePropInterpolate5 = {
2823
- name: 'ɵɵstylePropInterpolate5',
2740
+ static interpolate5 = {
2741
+ name: 'ɵɵinterpolate5',
2824
2742
  moduleName: CORE,
2825
2743
  };
2826
- static stylePropInterpolate6 = {
2827
- name: 'ɵɵstylePropInterpolate6',
2744
+ static interpolate6 = {
2745
+ name: 'ɵɵinterpolate6',
2828
2746
  moduleName: CORE,
2829
2747
  };
2830
- static stylePropInterpolate7 = {
2831
- name: 'ɵɵstylePropInterpolate7',
2748
+ static interpolate7 = {
2749
+ name: 'ɵɵinterpolate7',
2832
2750
  moduleName: CORE,
2833
2751
  };
2834
- static stylePropInterpolate8 = {
2835
- name: 'ɵɵstylePropInterpolate8',
2752
+ static interpolate8 = {
2753
+ name: 'ɵɵinterpolate8',
2836
2754
  moduleName: CORE,
2837
2755
  };
2838
- static stylePropInterpolateV = {
2839
- name: 'ɵɵstylePropInterpolateV',
2756
+ static interpolateV = {
2757
+ name: 'ɵɵinterpolateV',
2840
2758
  moduleName: CORE,
2841
2759
  };
2842
2760
  static nextContext = { name: 'ɵɵnextContext', moduleName: CORE };
@@ -2954,46 +2872,6 @@ class Identifiers {
2954
2872
  static pipeBindV = { name: 'ɵɵpipeBindV', moduleName: CORE };
2955
2873
  static domProperty = { name: 'ɵɵdomProperty', moduleName: CORE };
2956
2874
  static property = { name: 'ɵɵproperty', moduleName: CORE };
2957
- static propertyInterpolate = {
2958
- name: 'ɵɵpropertyInterpolate',
2959
- moduleName: CORE,
2960
- };
2961
- static propertyInterpolate1 = {
2962
- name: 'ɵɵpropertyInterpolate1',
2963
- moduleName: CORE,
2964
- };
2965
- static propertyInterpolate2 = {
2966
- name: 'ɵɵpropertyInterpolate2',
2967
- moduleName: CORE,
2968
- };
2969
- static propertyInterpolate3 = {
2970
- name: 'ɵɵpropertyInterpolate3',
2971
- moduleName: CORE,
2972
- };
2973
- static propertyInterpolate4 = {
2974
- name: 'ɵɵpropertyInterpolate4',
2975
- moduleName: CORE,
2976
- };
2977
- static propertyInterpolate5 = {
2978
- name: 'ɵɵpropertyInterpolate5',
2979
- moduleName: CORE,
2980
- };
2981
- static propertyInterpolate6 = {
2982
- name: 'ɵɵpropertyInterpolate6',
2983
- moduleName: CORE,
2984
- };
2985
- static propertyInterpolate7 = {
2986
- name: 'ɵɵpropertyInterpolate7',
2987
- moduleName: CORE,
2988
- };
2989
- static propertyInterpolate8 = {
2990
- name: 'ɵɵpropertyInterpolate8',
2991
- moduleName: CORE,
2992
- };
2993
- static propertyInterpolateV = {
2994
- name: 'ɵɵpropertyInterpolateV',
2995
- moduleName: CORE,
2996
- };
2997
2875
  static i18n = { name: 'ɵɵi18n', moduleName: CORE };
2998
2876
  static i18nAttributes = { name: 'ɵɵi18nAttributes', moduleName: CORE };
2999
2877
  static i18nExp = { name: 'ɵɵi18nExp', moduleName: CORE };
@@ -3017,6 +2895,10 @@ class Identifiers {
3017
2895
  static forwardRef = { name: 'forwardRef', moduleName: CORE };
3018
2896
  static resolveForwardRef = { name: 'resolveForwardRef', moduleName: CORE };
3019
2897
  static replaceMetadata = { name: 'ɵɵreplaceMetadata', moduleName: CORE };
2898
+ static getReplaceMetadataURL = {
2899
+ name: 'ɵɵgetReplaceMetadataURL',
2900
+ moduleName: CORE,
2901
+ };
3020
2902
  static ɵɵdefineInjectable = { name: 'ɵɵdefineInjectable', moduleName: CORE };
3021
2903
  static declareInjectable = { name: 'ɵɵngDeclareInjectable', moduleName: CORE };
3022
2904
  static InjectableDeclaration = {
@@ -3185,6 +3067,10 @@ function _splitAt(input, character, defaultValues) {
3185
3067
  function noUndefined(val) {
3186
3068
  return val === undefined ? null : val;
3187
3069
  }
3070
+ // Escape characters that have a special meaning in Regular Expressions
3071
+ function escapeRegExp(s) {
3072
+ return s.replace(/([.*+?^=!:${}()|[\]\/\\])/g, '\\$1');
3073
+ }
3188
3074
  function utf8Encode(str) {
3189
3075
  let encoded = [];
3190
3076
  for (let index = 0; index < str.length; index++) {
@@ -4035,14 +3921,6 @@ var R3FactoryDelegateType;
4035
3921
  R3FactoryDelegateType[R3FactoryDelegateType["Class"] = 0] = "Class";
4036
3922
  R3FactoryDelegateType[R3FactoryDelegateType["Function"] = 1] = "Function";
4037
3923
  })(R3FactoryDelegateType || (R3FactoryDelegateType = {}));
4038
- var FactoryTarget$1;
4039
- (function (FactoryTarget) {
4040
- FactoryTarget[FactoryTarget["Directive"] = 0] = "Directive";
4041
- FactoryTarget[FactoryTarget["Component"] = 1] = "Component";
4042
- FactoryTarget[FactoryTarget["Injectable"] = 2] = "Injectable";
4043
- FactoryTarget[FactoryTarget["Pipe"] = 3] = "Pipe";
4044
- FactoryTarget[FactoryTarget["NgModule"] = 4] = "NgModule";
4045
- })(FactoryTarget$1 || (FactoryTarget$1 = {}));
4046
3924
  /**
4047
3925
  * Construct a factory function expression for the given `R3FactoryMetadata`.
4048
3926
  */
@@ -4145,7 +4023,7 @@ function compileInjectDependency(dep, target, index) {
4145
4023
  (dep.skipSelf ? 4 /* InjectFlags.SkipSelf */ : 0) |
4146
4024
  (dep.host ? 1 /* InjectFlags.Host */ : 0) |
4147
4025
  (dep.optional ? 8 /* InjectFlags.Optional */ : 0) |
4148
- (target === FactoryTarget$1.Pipe ? 16 /* InjectFlags.ForPipe */ : 0);
4026
+ (target === FactoryTarget.Pipe ? 16 /* InjectFlags.ForPipe */ : 0);
4149
4027
  // If this dependency is optional or otherwise has non-default flags, then additional
4150
4028
  // parameters describing how to inject the dependency must be passed to the inject function
4151
4029
  // that's being used.
@@ -4215,12 +4093,12 @@ function isExpressionFactoryMetadata(meta) {
4215
4093
  }
4216
4094
  function getInjectFn(target) {
4217
4095
  switch (target) {
4218
- case FactoryTarget$1.Component:
4219
- case FactoryTarget$1.Directive:
4220
- case FactoryTarget$1.Pipe:
4096
+ case FactoryTarget.Component:
4097
+ case FactoryTarget.Directive:
4098
+ case FactoryTarget.Pipe:
4221
4099
  return Identifiers.directiveInject;
4222
- case FactoryTarget$1.NgModule:
4223
- case FactoryTarget$1.Injectable:
4100
+ case FactoryTarget.NgModule:
4101
+ case FactoryTarget.Injectable:
4224
4102
  default:
4225
4103
  return Identifiers.inject;
4226
4104
  }
@@ -6507,7 +6385,7 @@ function compileInjectable(meta, resolveForwardRefs) {
6507
6385
  type: meta.type,
6508
6386
  typeArgumentCount: meta.typeArgumentCount,
6509
6387
  deps: [],
6510
- target: FactoryTarget$1.Injectable,
6388
+ target: FactoryTarget.Injectable,
6511
6389
  };
6512
6390
  if (meta.useClass !== undefined) {
6513
6391
  // meta.useClass has two modes of operation. Either deps are specified, in which case `new` is
@@ -12034,15 +11912,6 @@ const CHAIN_COMPATIBILITY = new Map([
12034
11912
  [Identifiers.listener, Identifiers.listener],
12035
11913
  [Identifiers.property, Identifiers.property],
12036
11914
  [Identifiers.styleProp, Identifiers.styleProp],
12037
- [Identifiers.stylePropInterpolate1, Identifiers.stylePropInterpolate1],
12038
- [Identifiers.stylePropInterpolate2, Identifiers.stylePropInterpolate2],
12039
- [Identifiers.stylePropInterpolate3, Identifiers.stylePropInterpolate3],
12040
- [Identifiers.stylePropInterpolate4, Identifiers.stylePropInterpolate4],
12041
- [Identifiers.stylePropInterpolate5, Identifiers.stylePropInterpolate5],
12042
- [Identifiers.stylePropInterpolate6, Identifiers.stylePropInterpolate6],
12043
- [Identifiers.stylePropInterpolate7, Identifiers.stylePropInterpolate7],
12044
- [Identifiers.stylePropInterpolate8, Identifiers.stylePropInterpolate8],
12045
- [Identifiers.stylePropInterpolateV, Identifiers.stylePropInterpolateV],
12046
11915
  [Identifiers.syntheticHostListener, Identifiers.syntheticHostListener],
12047
11916
  [Identifiers.syntheticHostProperty, Identifiers.syntheticHostProperty],
12048
11917
  [Identifiers.templateCreate, Identifiers.templateCreate],
@@ -12126,11 +11995,11 @@ function chainOperationsInList(opList) {
12126
11995
  }
12127
11996
 
12128
11997
  /**
12129
- * Attribute interpolations of the form `[attr.foo]="{{foo}}""` should be "collapsed" into a plain
12130
- * attribute instruction, instead of an `attributeInterpolate` instruction.
11998
+ * Attribute or style interpolations of the form `[attr.foo]="{{foo}}""` should be "collapsed"
11999
+ * into a plain instruction, instead of an interpolated one.
12131
12000
  *
12132
- * (We cannot do this for singleton property interpolations, because `propertyInterpolate`
12133
- * stringifies its expression.)
12001
+ * (We cannot do this for singleton property interpolations,
12002
+ * because they need to stringify their expressions)
12134
12003
  *
12135
12004
  * The reification step is also capable of performing this transformation, but doing it early in the
12136
12005
  * pipeline allows other phases to accurately know what instruction will be emitted.
@@ -12138,7 +12007,10 @@ function chainOperationsInList(opList) {
12138
12007
  function collapseSingletonInterpolations(job) {
12139
12008
  for (const unit of job.units) {
12140
12009
  for (const op of unit.update) {
12141
- const eligibleOpKind = op.kind === OpKind.Attribute;
12010
+ const eligibleOpKind = op.kind === OpKind.Attribute ||
12011
+ op.kind === OpKind.StyleProp ||
12012
+ op.kind == OpKind.StyleMap ||
12013
+ op.kind === OpKind.ClassMap;
12142
12014
  if (eligibleOpKind &&
12143
12015
  op.expression instanceof Interpolation &&
12144
12016
  op.expression.strings.length === 2 &&
@@ -18415,8 +18287,7 @@ class _Scanner {
18415
18287
  length;
18416
18288
  peek = 0;
18417
18289
  index = -1;
18418
- literalInterpolationDepth = 0;
18419
- braceDepth = 0;
18290
+ braceStack = [];
18420
18291
  constructor(input) {
18421
18292
  this.input = input;
18422
18293
  this.length = input.length;
@@ -18524,18 +18395,17 @@ class _Scanner {
18524
18395
  return newOperatorToken(start, this.index, str);
18525
18396
  }
18526
18397
  scanOpenBrace(start, code) {
18527
- this.braceDepth++;
18398
+ this.braceStack.push('expression');
18528
18399
  this.advance();
18529
18400
  return newCharacterToken(start, this.index, code);
18530
18401
  }
18531
18402
  scanCloseBrace(start, code) {
18532
18403
  this.advance();
18533
- if (this.braceDepth === 0 && this.literalInterpolationDepth > 0) {
18534
- this.literalInterpolationDepth--;
18404
+ const currentBrace = this.braceStack.pop();
18405
+ if (currentBrace === 'interpolation') {
18535
18406
  this.tokens.push(newOperatorToken(start, this.index, '}'));
18536
18407
  return this.scanTemplateLiteralPart(this.index);
18537
18408
  }
18538
- this.braceDepth--;
18539
18409
  return newCharacterToken(start, this.index, code);
18540
18410
  }
18541
18411
  /**
@@ -18678,7 +18548,7 @@ class _Scanner {
18678
18548
  this.advance();
18679
18549
  // @ts-expect-error
18680
18550
  if (this.peek === $LBRACE) {
18681
- this.literalInterpolationDepth++;
18551
+ this.braceStack.push('interpolation');
18682
18552
  this.tokens.push(new StringToken(start, dollar, buffer + this.input.substring(marker, dollar), StringTokenKind.TemplateLiteralPart));
18683
18553
  this.advance();
18684
18554
  return newOperatorToken(dollar, this.index, this.input.substring(dollar, this.index));
@@ -23539,7 +23409,13 @@ function i18nAttributes(slot, i18nAttributesConfig) {
23539
23409
  return call(Identifiers.i18nAttributes, args, null);
23540
23410
  }
23541
23411
  function property(name, expression, sanitizer, sourceSpan) {
23542
- const args = [literal(name), expression];
23412
+ const args = [literal(name)];
23413
+ if (expression instanceof Interpolation) {
23414
+ args.push(interpolationToExpression(expression, sourceSpan));
23415
+ }
23416
+ else {
23417
+ args.push(expression);
23418
+ }
23543
23419
  if (sanitizer !== null) {
23544
23420
  args.push(sanitizer);
23545
23421
  }
@@ -23552,8 +23428,14 @@ function twoWayProperty(name, expression, sanitizer, sourceSpan) {
23552
23428
  }
23553
23429
  return call(Identifiers.twoWayProperty, args, sourceSpan);
23554
23430
  }
23555
- function attribute(name, expression, sanitizer, namespace) {
23556
- const args = [literal(name), expression];
23431
+ function attribute(name, expression, sanitizer, namespace, sourceSpan) {
23432
+ const args = [literal(name)];
23433
+ if (expression instanceof Interpolation) {
23434
+ args.push(interpolationToExpression(expression, sourceSpan));
23435
+ }
23436
+ else {
23437
+ args.push(expression);
23438
+ }
23557
23439
  if (sanitizer !== null || namespace !== null) {
23558
23440
  args.push(sanitizer ?? literal(null));
23559
23441
  }
@@ -23563,7 +23445,13 @@ function attribute(name, expression, sanitizer, namespace) {
23563
23445
  return call(Identifiers.attribute, args, null);
23564
23446
  }
23565
23447
  function styleProp(name, expression, unit, sourceSpan) {
23566
- const args = [literal(name), expression];
23448
+ const args = [literal(name)];
23449
+ if (expression instanceof Interpolation) {
23450
+ args.push(interpolationToExpression(expression, sourceSpan));
23451
+ }
23452
+ else {
23453
+ args.push(expression);
23454
+ }
23567
23455
  if (unit !== null) {
23568
23456
  args.push(literal(unit));
23569
23457
  }
@@ -23573,10 +23461,16 @@ function classProp(name, expression, sourceSpan) {
23573
23461
  return call(Identifiers.classProp, [literal(name), expression], sourceSpan);
23574
23462
  }
23575
23463
  function styleMap(expression, sourceSpan) {
23576
- return call(Identifiers.styleMap, [expression], sourceSpan);
23464
+ const value = expression instanceof Interpolation
23465
+ ? interpolationToExpression(expression, sourceSpan)
23466
+ : expression;
23467
+ return call(Identifiers.styleMap, [value], sourceSpan);
23577
23468
  }
23578
23469
  function classMap(expression, sourceSpan) {
23579
- return call(Identifiers.classMap, [expression], sourceSpan);
23470
+ const value = expression instanceof Interpolation
23471
+ ? interpolationToExpression(expression, sourceSpan)
23472
+ : expression;
23473
+ return call(Identifiers.classMap, [value], sourceSpan);
23580
23474
  }
23581
23475
  const PIPE_BINDINGS = [
23582
23476
  Identifiers.pipeBind1,
@@ -23604,38 +23498,6 @@ function i18nExp(expr, sourceSpan) {
23604
23498
  function i18nApply(slot, sourceSpan) {
23605
23499
  return call(Identifiers.i18nApply, [literal(slot)], sourceSpan);
23606
23500
  }
23607
- function propertyInterpolate(name, strings, expressions, sanitizer, sourceSpan) {
23608
- const interpolationArgs = collateInterpolationArgs(strings, expressions);
23609
- const extraArgs = [];
23610
- if (sanitizer !== null) {
23611
- extraArgs.push(sanitizer);
23612
- }
23613
- return callVariadicInstruction(PROPERTY_INTERPOLATE_CONFIG, [literal(name)], interpolationArgs, extraArgs, sourceSpan);
23614
- }
23615
- function attributeInterpolate(name, strings, expressions, sanitizer, sourceSpan) {
23616
- const interpolationArgs = collateInterpolationArgs(strings, expressions);
23617
- const extraArgs = [];
23618
- if (sanitizer !== null) {
23619
- extraArgs.push(sanitizer);
23620
- }
23621
- return callVariadicInstruction(ATTRIBUTE_INTERPOLATE_CONFIG, [literal(name)], interpolationArgs, extraArgs, sourceSpan);
23622
- }
23623
- function stylePropInterpolate(name, strings, expressions, unit, sourceSpan) {
23624
- const interpolationArgs = collateInterpolationArgs(strings, expressions);
23625
- const extraArgs = [];
23626
- if (unit !== null) {
23627
- extraArgs.push(literal(unit));
23628
- }
23629
- return callVariadicInstruction(STYLE_PROP_INTERPOLATE_CONFIG, [literal(name)], interpolationArgs, extraArgs, sourceSpan);
23630
- }
23631
- function styleMapInterpolate(strings, expressions, sourceSpan) {
23632
- const interpolationArgs = collateInterpolationArgs(strings, expressions);
23633
- return callVariadicInstruction(STYLE_MAP_INTERPOLATE_CONFIG, [], interpolationArgs, [], sourceSpan);
23634
- }
23635
- function classMapInterpolate(strings, expressions, sourceSpan) {
23636
- const interpolationArgs = collateInterpolationArgs(strings, expressions);
23637
- return callVariadicInstruction(CLASS_MAP_INTERPOLATE_CONFIG, [], interpolationArgs, [], sourceSpan);
23638
- }
23639
23501
  function domProperty(name, expression, sanitizer, sourceSpan) {
23640
23502
  const args = [literal(name), expression];
23641
23503
  if (sanitizer !== null) {
@@ -23673,6 +23535,10 @@ function collateInterpolationArgs(strings, expressions) {
23673
23535
  }
23674
23536
  return interpolationArgs;
23675
23537
  }
23538
+ function interpolationToExpression(interpolation, sourceSpan) {
23539
+ const interpolationArgs = collateInterpolationArgs(interpolation.strings, interpolation.expressions);
23540
+ return callVariadicInstructionExpr(VALUE_INTERPOLATE_CONFIG, [], interpolationArgs, [], sourceSpan);
23541
+ }
23676
23542
  function call(instruction, args, sourceSpan) {
23677
23543
  const expr = importExpr(instruction).callFn(args, sourceSpan);
23678
23544
  return createStatementOp(new ExpressionStatement(expr, sourceSpan));
@@ -23707,114 +23573,19 @@ const TEXT_INTERPOLATE_CONFIG = {
23707
23573
  return (n - 1) / 2;
23708
23574
  },
23709
23575
  };
23710
- /**
23711
- * `InterpolationConfig` for the `propertyInterpolate` instruction.
23712
- */
23713
- const PROPERTY_INTERPOLATE_CONFIG = {
23714
- constant: [
23715
- Identifiers.propertyInterpolate,
23716
- Identifiers.propertyInterpolate1,
23717
- Identifiers.propertyInterpolate2,
23718
- Identifiers.propertyInterpolate3,
23719
- Identifiers.propertyInterpolate4,
23720
- Identifiers.propertyInterpolate5,
23721
- Identifiers.propertyInterpolate6,
23722
- Identifiers.propertyInterpolate7,
23723
- Identifiers.propertyInterpolate8,
23724
- ],
23725
- variable: Identifiers.propertyInterpolateV,
23726
- mapping: (n) => {
23727
- if (n % 2 === 0) {
23728
- throw new Error(`Expected odd number of arguments`);
23729
- }
23730
- return (n - 1) / 2;
23731
- },
23732
- };
23733
- /**
23734
- * `InterpolationConfig` for the `stylePropInterpolate` instruction.
23735
- */
23736
- const STYLE_PROP_INTERPOLATE_CONFIG = {
23737
- constant: [
23738
- Identifiers.styleProp,
23739
- Identifiers.stylePropInterpolate1,
23740
- Identifiers.stylePropInterpolate2,
23741
- Identifiers.stylePropInterpolate3,
23742
- Identifiers.stylePropInterpolate4,
23743
- Identifiers.stylePropInterpolate5,
23744
- Identifiers.stylePropInterpolate6,
23745
- Identifiers.stylePropInterpolate7,
23746
- Identifiers.stylePropInterpolate8,
23747
- ],
23748
- variable: Identifiers.stylePropInterpolateV,
23749
- mapping: (n) => {
23750
- if (n % 2 === 0) {
23751
- throw new Error(`Expected odd number of arguments`);
23752
- }
23753
- return (n - 1) / 2;
23754
- },
23755
- };
23756
- /**
23757
- * `InterpolationConfig` for the `attributeInterpolate` instruction.
23758
- */
23759
- const ATTRIBUTE_INTERPOLATE_CONFIG = {
23760
- constant: [
23761
- Identifiers.attribute,
23762
- Identifiers.attributeInterpolate1,
23763
- Identifiers.attributeInterpolate2,
23764
- Identifiers.attributeInterpolate3,
23765
- Identifiers.attributeInterpolate4,
23766
- Identifiers.attributeInterpolate5,
23767
- Identifiers.attributeInterpolate6,
23768
- Identifiers.attributeInterpolate7,
23769
- Identifiers.attributeInterpolate8,
23770
- ],
23771
- variable: Identifiers.attributeInterpolateV,
23772
- mapping: (n) => {
23773
- if (n % 2 === 0) {
23774
- throw new Error(`Expected odd number of arguments`);
23775
- }
23776
- return (n - 1) / 2;
23777
- },
23778
- };
23779
- /**
23780
- * `InterpolationConfig` for the `styleMapInterpolate` instruction.
23781
- */
23782
- const STYLE_MAP_INTERPOLATE_CONFIG = {
23783
- constant: [
23784
- Identifiers.styleMap,
23785
- Identifiers.styleMapInterpolate1,
23786
- Identifiers.styleMapInterpolate2,
23787
- Identifiers.styleMapInterpolate3,
23788
- Identifiers.styleMapInterpolate4,
23789
- Identifiers.styleMapInterpolate5,
23790
- Identifiers.styleMapInterpolate6,
23791
- Identifiers.styleMapInterpolate7,
23792
- Identifiers.styleMapInterpolate8,
23793
- ],
23794
- variable: Identifiers.styleMapInterpolateV,
23795
- mapping: (n) => {
23796
- if (n % 2 === 0) {
23797
- throw new Error(`Expected odd number of arguments`);
23798
- }
23799
- return (n - 1) / 2;
23800
- },
23801
- };
23802
- /**
23803
- * `InterpolationConfig` for the `classMapInterpolate` instruction.
23804
- */
23805
- const CLASS_MAP_INTERPOLATE_CONFIG = {
23576
+ const VALUE_INTERPOLATE_CONFIG = {
23806
23577
  constant: [
23807
- Identifiers.classMap,
23808
- Identifiers.classMapInterpolate1,
23809
- Identifiers.classMapInterpolate2,
23810
- Identifiers.classMapInterpolate3,
23811
- Identifiers.classMapInterpolate4,
23812
- Identifiers.classMapInterpolate5,
23813
- Identifiers.classMapInterpolate6,
23814
- Identifiers.classMapInterpolate7,
23815
- Identifiers.classMapInterpolate8,
23578
+ Identifiers.interpolate,
23579
+ Identifiers.interpolate1,
23580
+ Identifiers.interpolate2,
23581
+ Identifiers.interpolate3,
23582
+ Identifiers.interpolate4,
23583
+ Identifiers.interpolate5,
23584
+ Identifiers.interpolate6,
23585
+ Identifiers.interpolate7,
23586
+ Identifiers.interpolate8,
23816
23587
  ],
23817
- variable: Identifiers.classMapInterpolateV,
23588
+ variable: Identifiers.interpolateV,
23818
23589
  mapping: (n) => {
23819
23590
  if (n % 2 === 0) {
23820
23591
  throw new Error(`Expected odd number of arguments`);
@@ -24126,42 +23897,22 @@ function reifyUpdateOperations(_unit, ops) {
24126
23897
  OpList.replace(op, advance(op.delta, op.sourceSpan));
24127
23898
  break;
24128
23899
  case OpKind.Property:
24129
- if (op.expression instanceof Interpolation) {
24130
- OpList.replace(op, propertyInterpolate(op.name, op.expression.strings, op.expression.expressions, op.sanitizer, op.sourceSpan));
24131
- }
24132
- else {
24133
- OpList.replace(op, property(op.name, op.expression, op.sanitizer, op.sourceSpan));
24134
- }
23900
+ OpList.replace(op, property(op.name, op.expression, op.sanitizer, op.sourceSpan));
24135
23901
  break;
24136
23902
  case OpKind.TwoWayProperty:
24137
23903
  OpList.replace(op, twoWayProperty(op.name, op.expression, op.sanitizer, op.sourceSpan));
24138
23904
  break;
24139
23905
  case OpKind.StyleProp:
24140
- if (op.expression instanceof Interpolation) {
24141
- OpList.replace(op, stylePropInterpolate(op.name, op.expression.strings, op.expression.expressions, op.unit, op.sourceSpan));
24142
- }
24143
- else {
24144
- OpList.replace(op, styleProp(op.name, op.expression, op.unit, op.sourceSpan));
24145
- }
23906
+ OpList.replace(op, styleProp(op.name, op.expression, op.unit, op.sourceSpan));
24146
23907
  break;
24147
23908
  case OpKind.ClassProp:
24148
23909
  OpList.replace(op, classProp(op.name, op.expression, op.sourceSpan));
24149
23910
  break;
24150
23911
  case OpKind.StyleMap:
24151
- if (op.expression instanceof Interpolation) {
24152
- OpList.replace(op, styleMapInterpolate(op.expression.strings, op.expression.expressions, op.sourceSpan));
24153
- }
24154
- else {
24155
- OpList.replace(op, styleMap(op.expression, op.sourceSpan));
24156
- }
23912
+ OpList.replace(op, styleMap(op.expression, op.sourceSpan));
24157
23913
  break;
24158
23914
  case OpKind.ClassMap:
24159
- if (op.expression instanceof Interpolation) {
24160
- OpList.replace(op, classMapInterpolate(op.expression.strings, op.expression.expressions, op.sourceSpan));
24161
- }
24162
- else {
24163
- OpList.replace(op, classMap(op.expression, op.sourceSpan));
24164
- }
23915
+ OpList.replace(op, classMap(op.expression, op.sourceSpan));
24165
23916
  break;
24166
23917
  case OpKind.I18nExpression:
24167
23918
  OpList.replace(op, i18nExp(op.expression, op.sourceSpan));
@@ -24173,12 +23924,7 @@ function reifyUpdateOperations(_unit, ops) {
24173
23924
  OpList.replace(op, textInterpolate(op.interpolation.strings, op.interpolation.expressions, op.sourceSpan));
24174
23925
  break;
24175
23926
  case OpKind.Attribute:
24176
- if (op.expression instanceof Interpolation) {
24177
- OpList.replace(op, attributeInterpolate(op.name, op.expression.strings, op.expression.expressions, op.sanitizer, op.sourceSpan));
24178
- }
24179
- else {
24180
- OpList.replace(op, attribute(op.name, op.expression, op.sanitizer, op.namespace));
24181
- }
23927
+ OpList.replace(op, attribute(op.name, op.expression, op.sanitizer, op.namespace, op.sourceSpan));
24182
23928
  break;
24183
23929
  case OpKind.DomProperty:
24184
23930
  if (op.expression instanceof Interpolation) {
@@ -25676,8 +25422,6 @@ function countVariables(job) {
25676
25422
  function varsUsedByOp(op) {
25677
25423
  let slots;
25678
25424
  switch (op.kind) {
25679
- case OpKind.Property:
25680
- case OpKind.DomProperty:
25681
25425
  case OpKind.Attribute:
25682
25426
  // All of these bindings use 1 variable slot, plus 1 slot for every interpolated expression,
25683
25427
  // if any.
@@ -25686,6 +25430,15 @@ function varsUsedByOp(op) {
25686
25430
  slots += op.expression.expressions.length;
25687
25431
  }
25688
25432
  return slots;
25433
+ case OpKind.Property:
25434
+ case OpKind.DomProperty:
25435
+ slots = 1;
25436
+ // We need to assign a slot even for singleton interpolations, because the
25437
+ // runtime needs to store both the raw value and the stringified one.
25438
+ if (op.expression instanceof Interpolation) {
25439
+ slots += op.expression.expressions.length;
25440
+ }
25441
+ return slots;
25689
25442
  case OpKind.TwoWayProperty:
25690
25443
  // Two-way properties can only have expressions so they only need one variable slot.
25691
25444
  return 1;
@@ -30084,12 +29837,12 @@ function compileComponentFromMetadata(meta, constantPool, bindingParser) {
30084
29837
  definitionMap.set('dependencies', importExpr(Identifiers.getComponentDepsFactory).callFn(args));
30085
29838
  }
30086
29839
  if (meta.encapsulation === null) {
30087
- meta.encapsulation = ViewEncapsulation.Emulated;
29840
+ meta.encapsulation = ViewEncapsulation$1.Emulated;
30088
29841
  }
30089
29842
  let hasStyles = !!meta.externalStyles?.length;
30090
29843
  // e.g. `styles: [str1, str2]`
30091
29844
  if (meta.styles && meta.styles.length) {
30092
- const styleValues = meta.encapsulation == ViewEncapsulation.Emulated
29845
+ const styleValues = meta.encapsulation == ViewEncapsulation$1.Emulated
30093
29846
  ? compileStyles(meta.styles, CONTENT_ATTR, HOST_ATTR)
30094
29847
  : meta.styles;
30095
29848
  const styleNodes = styleValues.reduce((result, style) => {
@@ -30103,12 +29856,12 @@ function compileComponentFromMetadata(meta, constantPool, bindingParser) {
30103
29856
  definitionMap.set('styles', literalArr(styleNodes));
30104
29857
  }
30105
29858
  }
30106
- if (!hasStyles && meta.encapsulation === ViewEncapsulation.Emulated) {
29859
+ if (!hasStyles && meta.encapsulation === ViewEncapsulation$1.Emulated) {
30107
29860
  // If there is no style, don't generate css selectors on elements
30108
- meta.encapsulation = ViewEncapsulation.None;
29861
+ meta.encapsulation = ViewEncapsulation$1.None;
30109
29862
  }
30110
29863
  // Only set view encapsulation if it's not the default value
30111
- if (meta.encapsulation !== ViewEncapsulation.Emulated) {
29864
+ if (meta.encapsulation !== ViewEncapsulation$1.Emulated) {
30112
29865
  definitionMap.set('encapsulation', literal(meta.encapsulation));
30113
29866
  }
30114
29867
  // e.g. `animation: [trigger('123', [])]`
@@ -31477,7 +31230,7 @@ class ResourceLoader {
31477
31230
 
31478
31231
  class CompilerFacadeImpl {
31479
31232
  jitEvaluator;
31480
- FactoryTarget = FactoryTarget$1;
31233
+ FactoryTarget = FactoryTarget;
31481
31234
  ResourceLoader = ResourceLoader;
31482
31235
  elementSchemaRegistry = new DomElementSchemaRegistry();
31483
31236
  constructor(jitEvaluator = new JitEvaluator()) {
@@ -31853,7 +31606,7 @@ function convertDeclareComponentFacadeToMetadata(decl, typeSourceSpan, sourceMap
31853
31606
  animations: decl.animations !== undefined ? new WrappedNodeExpr(decl.animations) : null,
31854
31607
  defer,
31855
31608
  changeDetection: decl.changeDetection ?? ChangeDetectionStrategy.Default,
31856
- encapsulation: decl.encapsulation ?? ViewEncapsulation.Emulated,
31609
+ encapsulation: decl.encapsulation ?? ViewEncapsulation$1.Emulated,
31857
31610
  interpolation,
31858
31611
  declarationListEmitMode: 2 /* DeclarationListEmitMode.ClosureResolved */,
31859
31612
  relativeContextFilePath: '',
@@ -32133,7 +31886,7 @@ class CompilerConfig {
32133
31886
  defaultEncapsulation;
32134
31887
  preserveWhitespaces;
32135
31888
  strictInjectionParameters;
32136
- constructor({ defaultEncapsulation = ViewEncapsulation.Emulated, preserveWhitespaces, strictInjectionParameters, } = {}) {
31889
+ constructor({ defaultEncapsulation = ViewEncapsulation$1.Emulated, preserveWhitespaces, strictInjectionParameters, } = {}) {
32137
31890
  this.defaultEncapsulation = defaultEncapsulation;
32138
31891
  this.preserveWhitespaces = preserveWhitespacesDefault(noUndefined(preserveWhitespaces));
32139
31892
  this.strictInjectionParameters = strictInjectionParameters === true;
@@ -33805,15 +33558,6 @@ class MapPlaceholderNames extends CloneVisitor {
33805
33558
  }
33806
33559
  }
33807
33560
 
33808
- var FactoryTarget;
33809
- (function (FactoryTarget) {
33810
- FactoryTarget[FactoryTarget["Directive"] = 0] = "Directive";
33811
- FactoryTarget[FactoryTarget["Component"] = 1] = "Component";
33812
- FactoryTarget[FactoryTarget["Injectable"] = 2] = "Injectable";
33813
- FactoryTarget[FactoryTarget["Pipe"] = 3] = "Pipe";
33814
- FactoryTarget[FactoryTarget["NgModule"] = 4] = "NgModule";
33815
- })(FactoryTarget || (FactoryTarget = {}));
33816
-
33817
33561
  function compileClassMetadata(metadata) {
33818
33562
  const fnCall = internalCompileClassMetadata(metadata);
33819
33563
  return arrowFn([], [devOnlyGuardedExpression(fnCall).toStmt()]).callFn([]);
@@ -33909,7 +33653,7 @@ const MINIMUM_PARTIAL_LINKER_DEFER_SUPPORT_VERSION = '18.0.0';
33909
33653
  function compileDeclareClassMetadata(metadata) {
33910
33654
  const definitionMap = new DefinitionMap();
33911
33655
  definitionMap.set('minVersion', literal(MINIMUM_PARTIAL_LINKER_VERSION$5));
33912
- definitionMap.set('version', literal('20.0.0-rc.1'));
33656
+ definitionMap.set('version', literal('20.0.0-rc.3'));
33913
33657
  definitionMap.set('ngImport', importExpr(Identifiers.core));
33914
33658
  definitionMap.set('type', metadata.type);
33915
33659
  definitionMap.set('decorators', metadata.decorators);
@@ -33927,7 +33671,7 @@ function compileComponentDeclareClassMetadata(metadata, dependencies) {
33927
33671
  callbackReturnDefinitionMap.set('ctorParameters', metadata.ctorParameters ?? literal(null));
33928
33672
  callbackReturnDefinitionMap.set('propDecorators', metadata.propDecorators ?? literal(null));
33929
33673
  definitionMap.set('minVersion', literal(MINIMUM_PARTIAL_LINKER_DEFER_SUPPORT_VERSION));
33930
- definitionMap.set('version', literal('20.0.0-rc.1'));
33674
+ definitionMap.set('version', literal('20.0.0-rc.3'));
33931
33675
  definitionMap.set('ngImport', importExpr(Identifiers.core));
33932
33676
  definitionMap.set('type', metadata.type);
33933
33677
  definitionMap.set('resolveDeferredDeps', compileComponentMetadataAsyncResolver(dependencies));
@@ -34022,7 +33766,7 @@ function createDirectiveDefinitionMap(meta) {
34022
33766
  const definitionMap = new DefinitionMap();
34023
33767
  const minVersion = getMinimumVersionForPartialOutput(meta);
34024
33768
  definitionMap.set('minVersion', literal(minVersion));
34025
- definitionMap.set('version', literal('20.0.0-rc.1'));
33769
+ definitionMap.set('version', literal('20.0.0-rc.3'));
34026
33770
  // e.g. `type: MyDirective`
34027
33771
  definitionMap.set('type', meta.type.value);
34028
33772
  if (meta.isStandalone !== undefined) {
@@ -34289,8 +34033,8 @@ function createComponentDefinitionMap(meta, template, templateInfo) {
34289
34033
  definitionMap.set('changeDetection', importExpr(Identifiers.ChangeDetectionStrategy)
34290
34034
  .prop(ChangeDetectionStrategy[meta.changeDetection]));
34291
34035
  }
34292
- if (meta.encapsulation !== ViewEncapsulation.Emulated) {
34293
- definitionMap.set('encapsulation', importExpr(Identifiers.ViewEncapsulation).prop(ViewEncapsulation[meta.encapsulation]));
34036
+ if (meta.encapsulation !== ViewEncapsulation$1.Emulated) {
34037
+ definitionMap.set('encapsulation', importExpr(Identifiers.ViewEncapsulation).prop(ViewEncapsulation$1[meta.encapsulation]));
34294
34038
  }
34295
34039
  if (meta.interpolation !== DEFAULT_INTERPOLATION_CONFIG) {
34296
34040
  definitionMap.set('interpolation', literalArr([literal(meta.interpolation.start), literal(meta.interpolation.end)]));
@@ -34438,11 +34182,11 @@ const MINIMUM_PARTIAL_LINKER_VERSION$4 = '12.0.0';
34438
34182
  function compileDeclareFactoryFunction(meta) {
34439
34183
  const definitionMap = new DefinitionMap();
34440
34184
  definitionMap.set('minVersion', literal(MINIMUM_PARTIAL_LINKER_VERSION$4));
34441
- definitionMap.set('version', literal('20.0.0-rc.1'));
34185
+ definitionMap.set('version', literal('20.0.0-rc.3'));
34442
34186
  definitionMap.set('ngImport', importExpr(Identifiers.core));
34443
34187
  definitionMap.set('type', meta.type.value);
34444
34188
  definitionMap.set('deps', compileDependencies(meta.deps));
34445
- definitionMap.set('target', importExpr(Identifiers.FactoryTarget).prop(FactoryTarget$1[meta.target]));
34189
+ definitionMap.set('target', importExpr(Identifiers.FactoryTarget).prop(FactoryTarget[meta.target]));
34446
34190
  return {
34447
34191
  expression: importExpr(Identifiers.declareFactory).callFn([definitionMap.toLiteralMap()]),
34448
34192
  statements: [],
@@ -34473,7 +34217,7 @@ function compileDeclareInjectableFromMetadata(meta) {
34473
34217
  function createInjectableDefinitionMap(meta) {
34474
34218
  const definitionMap = new DefinitionMap();
34475
34219
  definitionMap.set('minVersion', literal(MINIMUM_PARTIAL_LINKER_VERSION$3));
34476
- definitionMap.set('version', literal('20.0.0-rc.1'));
34220
+ definitionMap.set('version', literal('20.0.0-rc.3'));
34477
34221
  definitionMap.set('ngImport', importExpr(Identifiers.core));
34478
34222
  definitionMap.set('type', meta.type.value);
34479
34223
  // Only generate providedIn property if it has a non-null value
@@ -34524,7 +34268,7 @@ function compileDeclareInjectorFromMetadata(meta) {
34524
34268
  function createInjectorDefinitionMap(meta) {
34525
34269
  const definitionMap = new DefinitionMap();
34526
34270
  definitionMap.set('minVersion', literal(MINIMUM_PARTIAL_LINKER_VERSION$2));
34527
- definitionMap.set('version', literal('20.0.0-rc.1'));
34271
+ definitionMap.set('version', literal('20.0.0-rc.3'));
34528
34272
  definitionMap.set('ngImport', importExpr(Identifiers.core));
34529
34273
  definitionMap.set('type', meta.type.value);
34530
34274
  definitionMap.set('providers', meta.providers);
@@ -34557,7 +34301,7 @@ function createNgModuleDefinitionMap(meta) {
34557
34301
  throw new Error('Invalid path! Local compilation mode should not get into the partial compilation path');
34558
34302
  }
34559
34303
  definitionMap.set('minVersion', literal(MINIMUM_PARTIAL_LINKER_VERSION$1));
34560
- definitionMap.set('version', literal('20.0.0-rc.1'));
34304
+ definitionMap.set('version', literal('20.0.0-rc.3'));
34561
34305
  definitionMap.set('ngImport', importExpr(Identifiers.core));
34562
34306
  definitionMap.set('type', meta.type.value);
34563
34307
  // We only generate the keys in the metadata if the arrays contain values.
@@ -34608,7 +34352,7 @@ function compileDeclarePipeFromMetadata(meta) {
34608
34352
  function createPipeDefinitionMap(meta) {
34609
34353
  const definitionMap = new DefinitionMap();
34610
34354
  definitionMap.set('minVersion', literal(MINIMUM_PARTIAL_LINKER_VERSION));
34611
- definitionMap.set('version', literal('20.0.0-rc.1'));
34355
+ definitionMap.set('version', literal('20.0.0-rc.3'));
34612
34356
  definitionMap.set('ngImport', importExpr(Identifiers.core));
34613
34357
  // e.g. `type: MyPipe`
34614
34358
  definitionMap.set('type', meta.type.value);
@@ -34681,23 +34425,21 @@ function compileHmrInitializer(meta) {
34681
34425
  ]);
34682
34426
  // (m) => m.default && ɵɵreplaceMetadata(...)
34683
34427
  const replaceCallback = arrowFn([new FnParam(moduleName)], defaultRead.and(replaceCall));
34684
- // '<url>?c=' + id + '&t=' + encodeURIComponent(t)
34685
- const urlValue = literal(`./@ng/component?c=`)
34686
- .plus(variable(idName))
34687
- .plus(literal('&t='))
34688
- .plus(variable('encodeURIComponent').callFn([variable(timestampName)]));
34689
- // import.meta.url
34690
- const urlBase = variable('import').prop('meta').prop('url');
34691
- // new URL(urlValue, urlBase).href
34692
- const urlHref = new InstantiateExpr(variable('URL'), [urlValue, urlBase]).prop('href');
34428
+ // getReplaceMetadataURL(id, timestamp, import.meta.url)
34429
+ const url = importExpr(Identifiers.getReplaceMetadataURL)
34430
+ .callFn([
34431
+ variable(idName),
34432
+ variable(timestampName),
34433
+ variable('import').prop('meta').prop('url'),
34434
+ ]);
34693
34435
  // function Cmp_HmrLoad(t) {
34694
- // import(/* @vite-ignore */ urlHref).then((m) => m.default && replaceMetadata(...));
34436
+ // import(/* @vite-ignore */ url).then((m) => m.default && replaceMetadata(...));
34695
34437
  // }
34696
34438
  const importCallback = new DeclareFunctionStmt(importCallbackName, [new FnParam(timestampName)], [
34697
34439
  // The vite-ignore special comment is required to prevent Vite from generating a superfluous
34698
34440
  // warning for each usage within the development code. If Vite provides a method to
34699
34441
  // programmatically avoid this warning in the future, this added comment can be removed here.
34700
- new DynamicImportExpr(urlHref, null, '@vite-ignore')
34442
+ new DynamicImportExpr(url, null, '@vite-ignore')
34701
34443
  .prop('then')
34702
34444
  .callFn([replaceCallback])
34703
34445
  .toStmt(),
@@ -34766,7 +34508,7 @@ function compileHmrUpdateCallback(definitions, constantStatements, meta) {
34766
34508
  * @description
34767
34509
  * Entry point for all public APIs of the compiler package.
34768
34510
  */
34769
- const VERSION = new Version('20.0.0-rc.1');
34511
+ const VERSION = new Version('20.0.0-rc.3');
34770
34512
 
34771
34513
  //////////////////////////////////////
34772
34514
  // THIS FILE HAS GLOBAL SIDE EFFECT //
@@ -34792,5 +34534,5 @@ const VERSION = new Version('20.0.0-rc.1');
34792
34534
  // the late binding of the Compiler to the @angular/core for jit compilation.
34793
34535
  publishFacade(_global);
34794
34536
 
34795
- export { AST, ASTWithName, ASTWithSource, AbsoluteSourceSpan, ArrayType, ArrowFunctionExpr, Attribute, Binary, BinaryOperator, BinaryOperatorExpr, BindingPipe, BindingType, Block, BlockParameter, BoundElementProperty, BuiltinType, BuiltinTypeName, CUSTOM_ELEMENTS_SCHEMA, Call, Chain, ChangeDetectionStrategy, CommaExpr, Comment, CompilerConfig, Component, Conditional, ConditionalExpr, ConstantPool, CssSelector, DEFAULT_INTERPOLATION_CONFIG, DYNAMIC_TYPE, DeclareFunctionStmt, DeclareVarStmt, Directive, DomElementSchemaRegistry, DynamicImportExpr, EOF, Element, ElementSchemaRegistry, EmitterVisitorContext, EmptyExpr$1 as EmptyExpr, Expansion, ExpansionCase, Expression, ExpressionBinding, ExpressionStatement, ExpressionType, ExternalExpr, ExternalReference, FactoryTarget$1 as FactoryTarget, FunctionExpr, HtmlParser, HtmlTagDefinition, I18NHtmlParser, IfStmt, ImplicitReceiver, InstantiateExpr, Interpolation$1 as Interpolation, InterpolationConfig, InvokeFunctionExpr, JSDocComment, JitEvaluator, KeyedRead, KeyedWrite, LeadingComment, LetDeclaration, Lexer, LiteralArray, LiteralArrayExpr, LiteralExpr, LiteralMap, LiteralMapExpr, LiteralPrimitive, LocalizedString, MapType, MessageBundle, NONE_TYPE, NO_ERRORS_SCHEMA, NodeWithI18n, NonNullAssert, NotExpr, ParenthesizedExpr, ParenthesizedExpression, ParseError, ParseErrorLevel, ParseLocation, ParseSourceFile, ParseSourceSpan, ParseSpan, ParseTreeResult, ParsedEvent, ParsedEventType, ParsedProperty, ParsedPropertyType, ParsedVariable, Parser, ParserError, PrefixNot, PropertyRead, PropertyWrite, Identifiers as R3Identifiers, R3NgModuleMetadataKind, R3SelectorScopeMode, R3TargetBinder, R3TemplateDependencyKind, ReadKeyExpr, ReadPropExpr, ReadVarExpr, RecursiveAstVisitor, RecursiveVisitor, ResourceLoader, ReturnStatement, STRING_TYPE, SafeCall, SafeKeyedRead, SafePropertyRead, SelectorContext, SelectorListContext, SelectorMatcher, SelectorlessMatcher, Serializer, SplitInterpolation, Statement, StmtModifier, StringToken, StringTokenKind, TagContentType, TaggedTemplateLiteral, TaggedTemplateLiteralExpr, TemplateBindingParseResult, TemplateLiteral, TemplateLiteralElement, TemplateLiteralElementExpr, TemplateLiteralExpr, Text, ThisReceiver, BlockNode as TmplAstBlockNode, BoundAttribute as TmplAstBoundAttribute, BoundDeferredTrigger as TmplAstBoundDeferredTrigger, BoundEvent as TmplAstBoundEvent, BoundText as TmplAstBoundText, Component$1 as TmplAstComponent, Content as TmplAstContent, DeferredBlock as TmplAstDeferredBlock, DeferredBlockError as TmplAstDeferredBlockError, DeferredBlockLoading as TmplAstDeferredBlockLoading, DeferredBlockPlaceholder as TmplAstDeferredBlockPlaceholder, DeferredTrigger as TmplAstDeferredTrigger, Directive$1 as TmplAstDirective, Element$1 as TmplAstElement, ForLoopBlock as TmplAstForLoopBlock, ForLoopBlockEmpty as TmplAstForLoopBlockEmpty, HostElement as TmplAstHostElement, HoverDeferredTrigger as TmplAstHoverDeferredTrigger, Icu$1 as TmplAstIcu, IdleDeferredTrigger as TmplAstIdleDeferredTrigger, IfBlock as TmplAstIfBlock, IfBlockBranch as TmplAstIfBlockBranch, ImmediateDeferredTrigger as TmplAstImmediateDeferredTrigger, InteractionDeferredTrigger as TmplAstInteractionDeferredTrigger, LetDeclaration$1 as TmplAstLetDeclaration, NeverDeferredTrigger as TmplAstNeverDeferredTrigger, RecursiveVisitor$1 as TmplAstRecursiveVisitor, Reference as TmplAstReference, SwitchBlock as TmplAstSwitchBlock, SwitchBlockCase as TmplAstSwitchBlockCase, Template as TmplAstTemplate, Text$3 as TmplAstText, TextAttribute as TmplAstTextAttribute, TimerDeferredTrigger as TmplAstTimerDeferredTrigger, UnknownBlock as TmplAstUnknownBlock, Variable as TmplAstVariable, ViewportDeferredTrigger as TmplAstViewportDeferredTrigger, Token, TokenType, TransplantedType, TreeError, Type, TypeModifier, TypeofExpr, TypeofExpression, Unary, UnaryOperator, UnaryOperatorExpr, VERSION, VariableBinding, Version, ViewEncapsulation, VoidExpr, VoidExpression, WrappedNodeExpr, WriteKeyExpr, WritePropExpr, WriteVarExpr, Xliff, Xliff2, Xmb, XmlParser, Xtb, compileClassDebugInfo, compileClassMetadata, compileComponentClassMetadata, compileComponentDeclareClassMetadata, compileComponentFromMetadata, compileDeclareClassMetadata, compileDeclareComponentFromMetadata, compileDeclareDirectiveFromMetadata, compileDeclareFactoryFunction, compileDeclareInjectableFromMetadata, compileDeclareInjectorFromMetadata, compileDeclareNgModuleFromMetadata, compileDeclarePipeFromMetadata, compileDeferResolverFunction, compileDirectiveFromMetadata, compileFactoryFunction, compileHmrInitializer, compileHmrUpdateCallback, compileInjectable, compileInjector, compileNgModule, compileOpaqueAsyncClassMetadata, compilePipeFromMetadata, computeMsgId, core, createCssSelectorFromNode, createInjectableType, createMayBeForwardRefExpression, devOnlyGuardedExpression, emitDistinctChangesOnlyDefaultValue, encapsulateStyle, findMatchingDirectivesAndPipes, getHtmlTagDefinition, getNsPrefix, getSafePropertyAccessString, identifierName, isNgContainer, isNgContent, isNgTemplate, jsDocComment, leadingComment, literal, literalMap, makeBindingParser, mergeNsAndName, output_ast as outputAst, parseHostBindings, parseTemplate, preserveWhitespacesDefault, publishFacade, r3JitTypeSourceSpan, sanitizeIdentifier, splitNsName, visitAll$1 as tmplAstVisitAll, verifyHostBindings, visitAll };
34537
+ export { AST, ASTWithName, ASTWithSource, AbsoluteSourceSpan, ArrayType, ArrowFunctionExpr, Attribute, Binary, BinaryOperator, BinaryOperatorExpr, BindingPipe, BindingType, Block, BlockParameter, BoundElementProperty, BuiltinType, BuiltinTypeName, CUSTOM_ELEMENTS_SCHEMA, Call, Chain, ChangeDetectionStrategy, CommaExpr, Comment, CompilerConfig, CompilerFacadeImpl, Component, Conditional, ConditionalExpr, ConstantPool, CssSelector, DEFAULT_INTERPOLATION_CONFIG, DYNAMIC_TYPE, DeclareFunctionStmt, DeclareVarStmt, Directive, DomElementSchemaRegistry, DynamicImportExpr, EOF, Element, ElementSchemaRegistry, EmitterVisitorContext, EmptyExpr$1 as EmptyExpr, Expansion, ExpansionCase, Expression, ExpressionBinding, ExpressionStatement, ExpressionType, ExternalExpr, ExternalReference, FactoryTarget, FunctionExpr, HtmlParser, HtmlTagDefinition, I18NHtmlParser, IfStmt, ImplicitReceiver, InstantiateExpr, Interpolation$1 as Interpolation, InterpolationConfig, InvokeFunctionExpr, JSDocComment, JitEvaluator, KeyedRead, KeyedWrite, LeadingComment, LetDeclaration, Lexer, LiteralArray, LiteralArrayExpr, LiteralExpr, LiteralMap, LiteralMapExpr, LiteralPrimitive, LocalizedString, MapType, MessageBundle, NONE_TYPE, NO_ERRORS_SCHEMA, NodeWithI18n, NonNullAssert, NotExpr, ParenthesizedExpr, ParenthesizedExpression, ParseError, ParseErrorLevel, ParseLocation, ParseSourceFile, ParseSourceSpan, ParseSpan, ParseTreeResult, ParsedEvent, ParsedEventType, ParsedProperty, ParsedPropertyType, ParsedVariable, Parser, ParserError, PrefixNot, PropertyRead, PropertyWrite, Identifiers as R3Identifiers, R3NgModuleMetadataKind, R3SelectorScopeMode, R3TargetBinder, R3TemplateDependencyKind, ReadKeyExpr, ReadPropExpr, ReadVarExpr, RecursiveAstVisitor, RecursiveVisitor, ResourceLoader, ReturnStatement, SECURITY_SCHEMA, STRING_TYPE, SafeCall, SafeKeyedRead, SafePropertyRead, SelectorContext, SelectorListContext, SelectorMatcher, SelectorlessMatcher, Serializer, SplitInterpolation, Statement, StmtModifier, StringToken, StringTokenKind, TagContentType, TaggedTemplateLiteral, TaggedTemplateLiteralExpr, TemplateBindingParseResult, TemplateLiteral, TemplateLiteralElement, TemplateLiteralElementExpr, TemplateLiteralExpr, Text, ThisReceiver, BlockNode as TmplAstBlockNode, BoundAttribute as TmplAstBoundAttribute, BoundDeferredTrigger as TmplAstBoundDeferredTrigger, BoundEvent as TmplAstBoundEvent, BoundText as TmplAstBoundText, Component$1 as TmplAstComponent, Content as TmplAstContent, DeferredBlock as TmplAstDeferredBlock, DeferredBlockError as TmplAstDeferredBlockError, DeferredBlockLoading as TmplAstDeferredBlockLoading, DeferredBlockPlaceholder as TmplAstDeferredBlockPlaceholder, DeferredTrigger as TmplAstDeferredTrigger, Directive$1 as TmplAstDirective, Element$1 as TmplAstElement, ForLoopBlock as TmplAstForLoopBlock, ForLoopBlockEmpty as TmplAstForLoopBlockEmpty, HostElement as TmplAstHostElement, HoverDeferredTrigger as TmplAstHoverDeferredTrigger, Icu$1 as TmplAstIcu, IdleDeferredTrigger as TmplAstIdleDeferredTrigger, IfBlock as TmplAstIfBlock, IfBlockBranch as TmplAstIfBlockBranch, ImmediateDeferredTrigger as TmplAstImmediateDeferredTrigger, InteractionDeferredTrigger as TmplAstInteractionDeferredTrigger, LetDeclaration$1 as TmplAstLetDeclaration, NeverDeferredTrigger as TmplAstNeverDeferredTrigger, RecursiveVisitor$1 as TmplAstRecursiveVisitor, Reference as TmplAstReference, SwitchBlock as TmplAstSwitchBlock, SwitchBlockCase as TmplAstSwitchBlockCase, Template as TmplAstTemplate, Text$3 as TmplAstText, TextAttribute as TmplAstTextAttribute, TimerDeferredTrigger as TmplAstTimerDeferredTrigger, UnknownBlock as TmplAstUnknownBlock, Variable as TmplAstVariable, ViewportDeferredTrigger as TmplAstViewportDeferredTrigger, Token, TokenType, TransplantedType, TreeError, Type, TypeModifier, TypeofExpr, TypeofExpression, Unary, UnaryOperator, UnaryOperatorExpr, VERSION, VariableBinding, Version, ViewEncapsulation$1 as ViewEncapsulation, VoidExpr, VoidExpression, WrappedNodeExpr, WriteKeyExpr, WritePropExpr, WriteVarExpr, Xliff, Xliff2, Xmb, XmlParser, Xtb, compileClassDebugInfo, compileClassMetadata, compileComponentClassMetadata, compileComponentDeclareClassMetadata, compileComponentFromMetadata, compileDeclareClassMetadata, compileDeclareComponentFromMetadata, compileDeclareDirectiveFromMetadata, compileDeclareFactoryFunction, compileDeclareInjectableFromMetadata, compileDeclareInjectorFromMetadata, compileDeclareNgModuleFromMetadata, compileDeclarePipeFromMetadata, compileDeferResolverFunction, compileDirectiveFromMetadata, compileFactoryFunction, compileHmrInitializer, compileHmrUpdateCallback, compileInjectable, compileInjector, compileNgModule, compileOpaqueAsyncClassMetadata, compilePipeFromMetadata, computeMsgId, core, createCssSelectorFromNode, createInjectableType, createMayBeForwardRefExpression, devOnlyGuardedExpression, emitDistinctChangesOnlyDefaultValue, encapsulateStyle, escapeRegExp, findMatchingDirectivesAndPipes, getHtmlTagDefinition, getNsPrefix, getSafePropertyAccessString, identifierName, isNgContainer, isNgContent, isNgTemplate, jsDocComment, leadingComment, literal, literalMap, makeBindingParser, mergeNsAndName, output_ast as outputAst, parseHostBindings, parseTemplate, preserveWhitespacesDefault, publishFacade, r3JitTypeSourceSpan, sanitizeIdentifier, splitNsName, visitAll$1 as tmplAstVisitAll, verifyHostBindings, visitAll };
34796
34538
  //# sourceMappingURL=compiler.mjs.map