@angular/compiler 20.0.0-next.2 → 20.0.0-next.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/compiler.mjs +274 -100
- package/fesm2022/compiler.mjs.map +1 -1
- package/index.d.ts +18 -138
- package/package.json +1 -9
package/fesm2022/compiler.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Angular v20.0.0-next.
|
|
2
|
+
* @license Angular v20.0.0-next.4
|
|
3
3
|
* (c) 2010-2025 Google LLC. https://angular.io/
|
|
4
4
|
* License: MIT
|
|
5
5
|
*/
|
|
@@ -2896,6 +2896,11 @@ class Identifiers {
|
|
|
2896
2896
|
name: 'ɵɵdeferEnableTimerScheduling',
|
|
2897
2897
|
moduleName: CORE,
|
|
2898
2898
|
};
|
|
2899
|
+
static conditionalCreate = { name: 'ɵɵconditionalCreate', moduleName: CORE };
|
|
2900
|
+
static conditionalBranchCreate = {
|
|
2901
|
+
name: 'ɵɵconditionalBranchCreate',
|
|
2902
|
+
moduleName: CORE,
|
|
2903
|
+
};
|
|
2899
2904
|
static conditional = { name: 'ɵɵconditional', moduleName: CORE };
|
|
2900
2905
|
static repeater = { name: 'ɵɵrepeater', moduleName: CORE };
|
|
2901
2906
|
static repeaterCreate = { name: 'ɵɵrepeaterCreate', moduleName: CORE };
|
|
@@ -5476,6 +5481,28 @@ let Icu$1 = class Icu {
|
|
|
5476
5481
|
return visitor.visitIcu(this);
|
|
5477
5482
|
}
|
|
5478
5483
|
};
|
|
5484
|
+
/**
|
|
5485
|
+
* AST node that represents the host element of a directive.
|
|
5486
|
+
* This node is used only for type checking purposes and cannot be produced from a user's template.
|
|
5487
|
+
*/
|
|
5488
|
+
class HostElement {
|
|
5489
|
+
tagNames;
|
|
5490
|
+
bindings;
|
|
5491
|
+
listeners;
|
|
5492
|
+
sourceSpan;
|
|
5493
|
+
constructor(tagNames, bindings, listeners, sourceSpan) {
|
|
5494
|
+
this.tagNames = tagNames;
|
|
5495
|
+
this.bindings = bindings;
|
|
5496
|
+
this.listeners = listeners;
|
|
5497
|
+
this.sourceSpan = sourceSpan;
|
|
5498
|
+
if (tagNames.length === 0) {
|
|
5499
|
+
throw new Error('HostElement must have at least one tag name.');
|
|
5500
|
+
}
|
|
5501
|
+
}
|
|
5502
|
+
visit() {
|
|
5503
|
+
throw new Error(`HostElement cannot be visited`);
|
|
5504
|
+
}
|
|
5505
|
+
}
|
|
5479
5506
|
let RecursiveVisitor$1 = class RecursiveVisitor {
|
|
5480
5507
|
visitElement(element) {
|
|
5481
5508
|
visitAll$1(this, element.attributes);
|
|
@@ -8707,167 +8734,175 @@ var OpKind;
|
|
|
8707
8734
|
* node.
|
|
8708
8735
|
*/
|
|
8709
8736
|
OpKind[OpKind["DisableBindings"] = 10] = "DisableBindings";
|
|
8737
|
+
/**
|
|
8738
|
+
* Create a conditional creation instruction op.
|
|
8739
|
+
*/
|
|
8740
|
+
OpKind[OpKind["ConditionalCreate"] = 11] = "ConditionalCreate";
|
|
8741
|
+
/**
|
|
8742
|
+
* Create a conditional branch creation instruction op.
|
|
8743
|
+
*/
|
|
8744
|
+
OpKind[OpKind["ConditionalBranchCreate"] = 12] = "ConditionalBranchCreate";
|
|
8710
8745
|
/**
|
|
8711
8746
|
* An op to conditionally render a template.
|
|
8712
8747
|
*/
|
|
8713
|
-
OpKind[OpKind["Conditional"] =
|
|
8748
|
+
OpKind[OpKind["Conditional"] = 13] = "Conditional";
|
|
8714
8749
|
/**
|
|
8715
8750
|
* An operation to re-enable binding, after it was previously disabled.
|
|
8716
8751
|
*/
|
|
8717
|
-
OpKind[OpKind["EnableBindings"] =
|
|
8752
|
+
OpKind[OpKind["EnableBindings"] = 14] = "EnableBindings";
|
|
8718
8753
|
/**
|
|
8719
8754
|
* An operation to render a text node.
|
|
8720
8755
|
*/
|
|
8721
|
-
OpKind[OpKind["Text"] =
|
|
8756
|
+
OpKind[OpKind["Text"] = 15] = "Text";
|
|
8722
8757
|
/**
|
|
8723
8758
|
* An operation declaring an event listener for an element.
|
|
8724
8759
|
*/
|
|
8725
|
-
OpKind[OpKind["Listener"] =
|
|
8760
|
+
OpKind[OpKind["Listener"] = 16] = "Listener";
|
|
8726
8761
|
/**
|
|
8727
8762
|
* An operation to interpolate text into a text node.
|
|
8728
8763
|
*/
|
|
8729
|
-
OpKind[OpKind["InterpolateText"] =
|
|
8764
|
+
OpKind[OpKind["InterpolateText"] = 17] = "InterpolateText";
|
|
8730
8765
|
/**
|
|
8731
8766
|
* An intermediate binding op, that has not yet been processed into an individual property,
|
|
8732
8767
|
* attribute, style, etc.
|
|
8733
8768
|
*/
|
|
8734
|
-
OpKind[OpKind["Binding"] =
|
|
8769
|
+
OpKind[OpKind["Binding"] = 18] = "Binding";
|
|
8735
8770
|
/**
|
|
8736
8771
|
* An operation to bind an expression to a property of an element.
|
|
8737
8772
|
*/
|
|
8738
|
-
OpKind[OpKind["Property"] =
|
|
8773
|
+
OpKind[OpKind["Property"] = 19] = "Property";
|
|
8739
8774
|
/**
|
|
8740
8775
|
* An operation to bind an expression to a style property of an element.
|
|
8741
8776
|
*/
|
|
8742
|
-
OpKind[OpKind["StyleProp"] =
|
|
8777
|
+
OpKind[OpKind["StyleProp"] = 20] = "StyleProp";
|
|
8743
8778
|
/**
|
|
8744
8779
|
* An operation to bind an expression to a class property of an element.
|
|
8745
8780
|
*/
|
|
8746
|
-
OpKind[OpKind["ClassProp"] =
|
|
8781
|
+
OpKind[OpKind["ClassProp"] = 21] = "ClassProp";
|
|
8747
8782
|
/**
|
|
8748
8783
|
* An operation to bind an expression to the styles of an element.
|
|
8749
8784
|
*/
|
|
8750
|
-
OpKind[OpKind["StyleMap"] =
|
|
8785
|
+
OpKind[OpKind["StyleMap"] = 22] = "StyleMap";
|
|
8751
8786
|
/**
|
|
8752
8787
|
* An operation to bind an expression to the classes of an element.
|
|
8753
8788
|
*/
|
|
8754
|
-
OpKind[OpKind["ClassMap"] =
|
|
8789
|
+
OpKind[OpKind["ClassMap"] = 23] = "ClassMap";
|
|
8755
8790
|
/**
|
|
8756
8791
|
* An operation to advance the runtime's implicit slot context during the update phase of a view.
|
|
8757
8792
|
*/
|
|
8758
|
-
OpKind[OpKind["Advance"] =
|
|
8793
|
+
OpKind[OpKind["Advance"] = 24] = "Advance";
|
|
8759
8794
|
/**
|
|
8760
8795
|
* An operation to instantiate a pipe.
|
|
8761
8796
|
*/
|
|
8762
|
-
OpKind[OpKind["Pipe"] =
|
|
8797
|
+
OpKind[OpKind["Pipe"] = 25] = "Pipe";
|
|
8763
8798
|
/**
|
|
8764
8799
|
* An operation to associate an attribute with an element.
|
|
8765
8800
|
*/
|
|
8766
|
-
OpKind[OpKind["Attribute"] =
|
|
8801
|
+
OpKind[OpKind["Attribute"] = 26] = "Attribute";
|
|
8767
8802
|
/**
|
|
8768
8803
|
* An attribute that has been extracted for inclusion in the consts array.
|
|
8769
8804
|
*/
|
|
8770
|
-
OpKind[OpKind["ExtractedAttribute"] =
|
|
8805
|
+
OpKind[OpKind["ExtractedAttribute"] = 27] = "ExtractedAttribute";
|
|
8771
8806
|
/**
|
|
8772
8807
|
* An operation that configures a `@defer` block.
|
|
8773
8808
|
*/
|
|
8774
|
-
OpKind[OpKind["Defer"] =
|
|
8809
|
+
OpKind[OpKind["Defer"] = 28] = "Defer";
|
|
8775
8810
|
/**
|
|
8776
8811
|
* An operation that controls when a `@defer` loads.
|
|
8777
8812
|
*/
|
|
8778
|
-
OpKind[OpKind["DeferOn"] =
|
|
8813
|
+
OpKind[OpKind["DeferOn"] = 29] = "DeferOn";
|
|
8779
8814
|
/**
|
|
8780
8815
|
* An operation that controls when a `@defer` loads, using a custom expression as the condition.
|
|
8781
8816
|
*/
|
|
8782
|
-
OpKind[OpKind["DeferWhen"] =
|
|
8817
|
+
OpKind[OpKind["DeferWhen"] = 30] = "DeferWhen";
|
|
8783
8818
|
/**
|
|
8784
8819
|
* An i18n message that has been extracted for inclusion in the consts array.
|
|
8785
8820
|
*/
|
|
8786
|
-
OpKind[OpKind["I18nMessage"] =
|
|
8821
|
+
OpKind[OpKind["I18nMessage"] = 31] = "I18nMessage";
|
|
8787
8822
|
/**
|
|
8788
8823
|
* A host binding property.
|
|
8789
8824
|
*/
|
|
8790
|
-
OpKind[OpKind["HostProperty"] =
|
|
8825
|
+
OpKind[OpKind["HostProperty"] = 32] = "HostProperty";
|
|
8791
8826
|
/**
|
|
8792
8827
|
* A namespace change, which causes the subsequent elements to be processed as either HTML or SVG.
|
|
8793
8828
|
*/
|
|
8794
|
-
OpKind[OpKind["Namespace"] =
|
|
8829
|
+
OpKind[OpKind["Namespace"] = 33] = "Namespace";
|
|
8795
8830
|
/**
|
|
8796
8831
|
* Configure a content projeciton definition for the view.
|
|
8797
8832
|
*/
|
|
8798
|
-
OpKind[OpKind["ProjectionDef"] =
|
|
8833
|
+
OpKind[OpKind["ProjectionDef"] = 34] = "ProjectionDef";
|
|
8799
8834
|
/**
|
|
8800
8835
|
* Create a content projection slot.
|
|
8801
8836
|
*/
|
|
8802
|
-
OpKind[OpKind["Projection"] =
|
|
8837
|
+
OpKind[OpKind["Projection"] = 35] = "Projection";
|
|
8803
8838
|
/**
|
|
8804
8839
|
* Create a repeater creation instruction op.
|
|
8805
8840
|
*/
|
|
8806
|
-
OpKind[OpKind["RepeaterCreate"] =
|
|
8841
|
+
OpKind[OpKind["RepeaterCreate"] = 36] = "RepeaterCreate";
|
|
8807
8842
|
/**
|
|
8808
8843
|
* An update up for a repeater.
|
|
8809
8844
|
*/
|
|
8810
|
-
OpKind[OpKind["Repeater"] =
|
|
8845
|
+
OpKind[OpKind["Repeater"] = 37] = "Repeater";
|
|
8811
8846
|
/**
|
|
8812
8847
|
* An operation to bind an expression to the property side of a two-way binding.
|
|
8813
8848
|
*/
|
|
8814
|
-
OpKind[OpKind["TwoWayProperty"] =
|
|
8849
|
+
OpKind[OpKind["TwoWayProperty"] = 38] = "TwoWayProperty";
|
|
8815
8850
|
/**
|
|
8816
8851
|
* An operation declaring the event side of a two-way binding.
|
|
8817
8852
|
*/
|
|
8818
|
-
OpKind[OpKind["TwoWayListener"] =
|
|
8853
|
+
OpKind[OpKind["TwoWayListener"] = 39] = "TwoWayListener";
|
|
8819
8854
|
/**
|
|
8820
8855
|
* A creation-time operation that initializes the slot for a `@let` declaration.
|
|
8821
8856
|
*/
|
|
8822
|
-
OpKind[OpKind["DeclareLet"] =
|
|
8857
|
+
OpKind[OpKind["DeclareLet"] = 40] = "DeclareLet";
|
|
8823
8858
|
/**
|
|
8824
8859
|
* An update-time operation that stores the current value of a `@let` declaration.
|
|
8825
8860
|
*/
|
|
8826
|
-
OpKind[OpKind["StoreLet"] =
|
|
8861
|
+
OpKind[OpKind["StoreLet"] = 41] = "StoreLet";
|
|
8827
8862
|
/**
|
|
8828
8863
|
* The start of an i18n block.
|
|
8829
8864
|
*/
|
|
8830
|
-
OpKind[OpKind["I18nStart"] =
|
|
8865
|
+
OpKind[OpKind["I18nStart"] = 42] = "I18nStart";
|
|
8831
8866
|
/**
|
|
8832
8867
|
* A self-closing i18n on a single element.
|
|
8833
8868
|
*/
|
|
8834
|
-
OpKind[OpKind["I18n"] =
|
|
8869
|
+
OpKind[OpKind["I18n"] = 43] = "I18n";
|
|
8835
8870
|
/**
|
|
8836
8871
|
* The end of an i18n block.
|
|
8837
8872
|
*/
|
|
8838
|
-
OpKind[OpKind["I18nEnd"] =
|
|
8873
|
+
OpKind[OpKind["I18nEnd"] = 44] = "I18nEnd";
|
|
8839
8874
|
/**
|
|
8840
8875
|
* An expression in an i18n message.
|
|
8841
8876
|
*/
|
|
8842
|
-
OpKind[OpKind["I18nExpression"] =
|
|
8877
|
+
OpKind[OpKind["I18nExpression"] = 45] = "I18nExpression";
|
|
8843
8878
|
/**
|
|
8844
8879
|
* An instruction that applies a set of i18n expressions.
|
|
8845
8880
|
*/
|
|
8846
|
-
OpKind[OpKind["I18nApply"] =
|
|
8881
|
+
OpKind[OpKind["I18nApply"] = 46] = "I18nApply";
|
|
8847
8882
|
/**
|
|
8848
8883
|
* An instruction to create an ICU expression.
|
|
8849
8884
|
*/
|
|
8850
|
-
OpKind[OpKind["IcuStart"] =
|
|
8885
|
+
OpKind[OpKind["IcuStart"] = 47] = "IcuStart";
|
|
8851
8886
|
/**
|
|
8852
8887
|
* An instruction to update an ICU expression.
|
|
8853
8888
|
*/
|
|
8854
|
-
OpKind[OpKind["IcuEnd"] =
|
|
8889
|
+
OpKind[OpKind["IcuEnd"] = 48] = "IcuEnd";
|
|
8855
8890
|
/**
|
|
8856
8891
|
* An instruction representing a placeholder in an ICU expression.
|
|
8857
8892
|
*/
|
|
8858
|
-
OpKind[OpKind["IcuPlaceholder"] =
|
|
8893
|
+
OpKind[OpKind["IcuPlaceholder"] = 49] = "IcuPlaceholder";
|
|
8859
8894
|
/**
|
|
8860
8895
|
* An i18n context containing information needed to generate an i18n message.
|
|
8861
8896
|
*/
|
|
8862
|
-
OpKind[OpKind["I18nContext"] =
|
|
8897
|
+
OpKind[OpKind["I18nContext"] = 50] = "I18nContext";
|
|
8863
8898
|
/**
|
|
8864
8899
|
* A creation op that corresponds to i18n attributes on an element.
|
|
8865
8900
|
*/
|
|
8866
|
-
OpKind[OpKind["I18nAttributes"] =
|
|
8901
|
+
OpKind[OpKind["I18nAttributes"] = 51] = "I18nAttributes";
|
|
8867
8902
|
/**
|
|
8868
8903
|
* Creation op that attaches the location at which an element was defined in a template to it.
|
|
8869
8904
|
*/
|
|
8870
|
-
OpKind[OpKind["SourceLocation"] =
|
|
8905
|
+
OpKind[OpKind["SourceLocation"] = 52] = "SourceLocation";
|
|
8871
8906
|
})(OpKind || (OpKind = {}));
|
|
8872
8907
|
/**
|
|
8873
8908
|
* Distinguishes different kinds of IR expressions.
|
|
@@ -10417,6 +10452,8 @@ function transformExpressionsInOp(op, transform, flags) {
|
|
|
10417
10452
|
case OpKind.IcuPlaceholder:
|
|
10418
10453
|
case OpKind.DeclareLet:
|
|
10419
10454
|
case OpKind.SourceLocation:
|
|
10455
|
+
case OpKind.ConditionalCreate:
|
|
10456
|
+
case OpKind.ConditionalBranchCreate:
|
|
10420
10457
|
// These operations contain no expressions.
|
|
10421
10458
|
break;
|
|
10422
10459
|
default:
|
|
@@ -10832,6 +10869,8 @@ const elementContainerOpKinds = new Set([
|
|
|
10832
10869
|
OpKind.ContainerStart,
|
|
10833
10870
|
OpKind.Template,
|
|
10834
10871
|
OpKind.RepeaterCreate,
|
|
10872
|
+
OpKind.ConditionalCreate,
|
|
10873
|
+
OpKind.ConditionalBranchCreate,
|
|
10835
10874
|
]);
|
|
10836
10875
|
/**
|
|
10837
10876
|
* Checks whether the given operation represents the creation of an element or container.
|
|
@@ -10883,6 +10922,48 @@ function createTemplateOp(xref, templateKind, tag, functionNameSuffix, namespace
|
|
|
10883
10922
|
...NEW_OP,
|
|
10884
10923
|
};
|
|
10885
10924
|
}
|
|
10925
|
+
function createConditionalCreateOp(xref, templateKind, tag, functionNameSuffix, namespace, i18nPlaceholder, startSourceSpan, wholeSourceSpan) {
|
|
10926
|
+
return {
|
|
10927
|
+
kind: OpKind.ConditionalCreate,
|
|
10928
|
+
xref,
|
|
10929
|
+
templateKind,
|
|
10930
|
+
attributes: null,
|
|
10931
|
+
tag,
|
|
10932
|
+
handle: new SlotHandle(),
|
|
10933
|
+
functionNameSuffix,
|
|
10934
|
+
decls: null,
|
|
10935
|
+
vars: null,
|
|
10936
|
+
localRefs: [],
|
|
10937
|
+
nonBindable: false,
|
|
10938
|
+
namespace,
|
|
10939
|
+
i18nPlaceholder,
|
|
10940
|
+
startSourceSpan,
|
|
10941
|
+
wholeSourceSpan,
|
|
10942
|
+
...TRAIT_CONSUMES_SLOT,
|
|
10943
|
+
...NEW_OP,
|
|
10944
|
+
};
|
|
10945
|
+
}
|
|
10946
|
+
function createConditionalBranchCreateOp(xref, templateKind, tag, functionNameSuffix, namespace, i18nPlaceholder, startSourceSpan, wholeSourceSpan) {
|
|
10947
|
+
return {
|
|
10948
|
+
kind: OpKind.ConditionalBranchCreate,
|
|
10949
|
+
xref,
|
|
10950
|
+
templateKind,
|
|
10951
|
+
attributes: null,
|
|
10952
|
+
tag,
|
|
10953
|
+
handle: new SlotHandle(),
|
|
10954
|
+
functionNameSuffix,
|
|
10955
|
+
decls: null,
|
|
10956
|
+
vars: null,
|
|
10957
|
+
localRefs: [],
|
|
10958
|
+
nonBindable: false,
|
|
10959
|
+
namespace,
|
|
10960
|
+
i18nPlaceholder,
|
|
10961
|
+
startSourceSpan,
|
|
10962
|
+
wholeSourceSpan,
|
|
10963
|
+
...TRAIT_CONSUMES_SLOT,
|
|
10964
|
+
...NEW_OP,
|
|
10965
|
+
};
|
|
10966
|
+
}
|
|
10886
10967
|
function createRepeaterCreateOp(primaryView, emptyView, tag, track, varNames, emptyTag, i18nPlaceholder, emptyI18nPlaceholder, startSourceSpan, wholeSourceSpan) {
|
|
10887
10968
|
return {
|
|
10888
10969
|
kind: OpKind.RepeaterCreate,
|
|
@@ -11830,36 +11911,38 @@ function specializeBindings(job) {
|
|
|
11830
11911
|
}
|
|
11831
11912
|
}
|
|
11832
11913
|
|
|
11833
|
-
const
|
|
11834
|
-
Identifiers.attribute,
|
|
11835
|
-
Identifiers.classProp,
|
|
11836
|
-
Identifiers.element,
|
|
11837
|
-
Identifiers.elementContainer,
|
|
11838
|
-
Identifiers.elementContainerEnd,
|
|
11839
|
-
Identifiers.elementContainerStart,
|
|
11840
|
-
Identifiers.elementEnd,
|
|
11841
|
-
Identifiers.elementStart,
|
|
11842
|
-
Identifiers.hostProperty,
|
|
11843
|
-
Identifiers.i18nExp,
|
|
11844
|
-
Identifiers.listener,
|
|
11845
|
-
Identifiers.listener,
|
|
11846
|
-
Identifiers.property,
|
|
11847
|
-
Identifiers.styleProp,
|
|
11848
|
-
Identifiers.stylePropInterpolate1,
|
|
11849
|
-
Identifiers.stylePropInterpolate2,
|
|
11850
|
-
Identifiers.stylePropInterpolate3,
|
|
11851
|
-
Identifiers.stylePropInterpolate4,
|
|
11852
|
-
Identifiers.stylePropInterpolate5,
|
|
11853
|
-
Identifiers.stylePropInterpolate6,
|
|
11854
|
-
Identifiers.stylePropInterpolate7,
|
|
11855
|
-
Identifiers.stylePropInterpolate8,
|
|
11856
|
-
Identifiers.stylePropInterpolateV,
|
|
11857
|
-
Identifiers.syntheticHostListener,
|
|
11858
|
-
Identifiers.syntheticHostProperty,
|
|
11859
|
-
Identifiers.templateCreate,
|
|
11860
|
-
Identifiers.twoWayProperty,
|
|
11861
|
-
Identifiers.twoWayListener,
|
|
11862
|
-
Identifiers.declareLet,
|
|
11914
|
+
const CHAIN_COMPATIBILITY = new Map([
|
|
11915
|
+
[Identifiers.attribute, Identifiers.attribute],
|
|
11916
|
+
[Identifiers.classProp, Identifiers.classProp],
|
|
11917
|
+
[Identifiers.element, Identifiers.element],
|
|
11918
|
+
[Identifiers.elementContainer, Identifiers.elementContainer],
|
|
11919
|
+
[Identifiers.elementContainerEnd, Identifiers.elementContainerEnd],
|
|
11920
|
+
[Identifiers.elementContainerStart, Identifiers.elementContainerStart],
|
|
11921
|
+
[Identifiers.elementEnd, Identifiers.elementEnd],
|
|
11922
|
+
[Identifiers.elementStart, Identifiers.elementStart],
|
|
11923
|
+
[Identifiers.hostProperty, Identifiers.hostProperty],
|
|
11924
|
+
[Identifiers.i18nExp, Identifiers.i18nExp],
|
|
11925
|
+
[Identifiers.listener, Identifiers.listener],
|
|
11926
|
+
[Identifiers.listener, Identifiers.listener],
|
|
11927
|
+
[Identifiers.property, Identifiers.property],
|
|
11928
|
+
[Identifiers.styleProp, Identifiers.styleProp],
|
|
11929
|
+
[Identifiers.stylePropInterpolate1, Identifiers.stylePropInterpolate1],
|
|
11930
|
+
[Identifiers.stylePropInterpolate2, Identifiers.stylePropInterpolate2],
|
|
11931
|
+
[Identifiers.stylePropInterpolate3, Identifiers.stylePropInterpolate3],
|
|
11932
|
+
[Identifiers.stylePropInterpolate4, Identifiers.stylePropInterpolate4],
|
|
11933
|
+
[Identifiers.stylePropInterpolate5, Identifiers.stylePropInterpolate5],
|
|
11934
|
+
[Identifiers.stylePropInterpolate6, Identifiers.stylePropInterpolate6],
|
|
11935
|
+
[Identifiers.stylePropInterpolate7, Identifiers.stylePropInterpolate7],
|
|
11936
|
+
[Identifiers.stylePropInterpolate8, Identifiers.stylePropInterpolate8],
|
|
11937
|
+
[Identifiers.stylePropInterpolateV, Identifiers.stylePropInterpolateV],
|
|
11938
|
+
[Identifiers.syntheticHostListener, Identifiers.syntheticHostListener],
|
|
11939
|
+
[Identifiers.syntheticHostProperty, Identifiers.syntheticHostProperty],
|
|
11940
|
+
[Identifiers.templateCreate, Identifiers.templateCreate],
|
|
11941
|
+
[Identifiers.twoWayProperty, Identifiers.twoWayProperty],
|
|
11942
|
+
[Identifiers.twoWayListener, Identifiers.twoWayListener],
|
|
11943
|
+
[Identifiers.declareLet, Identifiers.declareLet],
|
|
11944
|
+
[Identifiers.conditionalCreate, Identifiers.conditionalBranchCreate],
|
|
11945
|
+
[Identifiers.conditionalBranchCreate, Identifiers.conditionalBranchCreate],
|
|
11863
11946
|
]);
|
|
11864
11947
|
/**
|
|
11865
11948
|
* Chaining results in repeated call expressions, causing a deep AST of receiver expressions. To prevent running out of
|
|
@@ -11905,14 +11988,16 @@ function chainOperationsInList(opList) {
|
|
|
11905
11988
|
continue;
|
|
11906
11989
|
}
|
|
11907
11990
|
const instruction = op.statement.expr.fn.value;
|
|
11908
|
-
if (!
|
|
11991
|
+
if (!CHAIN_COMPATIBILITY.has(instruction)) {
|
|
11909
11992
|
// This instruction isn't chainable.
|
|
11910
11993
|
chain = null;
|
|
11911
11994
|
continue;
|
|
11912
11995
|
}
|
|
11913
11996
|
// This instruction can be chained. It can either be added on to the previous chain (if
|
|
11914
11997
|
// compatible) or it can be the start of a new chain.
|
|
11915
|
-
if (chain !== null &&
|
|
11998
|
+
if (chain !== null &&
|
|
11999
|
+
CHAIN_COMPATIBILITY.get(chain.instruction) === instruction &&
|
|
12000
|
+
chain.length < MAX_CHAIN_LENGTH) {
|
|
11916
12001
|
// This instruction can be added onto the previous chain.
|
|
11917
12002
|
const expression = chain.expression.callFn(op.statement.expr.args, op.statement.expr.sourceSpan, op.statement.expr.pure);
|
|
11918
12003
|
chain.expression = expression;
|
|
@@ -13131,6 +13216,8 @@ function recursivelyProcessView(view, parentScope) {
|
|
|
13131
13216
|
const scope = getScopeForView(view, parentScope);
|
|
13132
13217
|
for (const op of view.create) {
|
|
13133
13218
|
switch (op.kind) {
|
|
13219
|
+
case OpKind.ConditionalCreate:
|
|
13220
|
+
case OpKind.ConditionalBranchCreate:
|
|
13134
13221
|
case OpKind.Template:
|
|
13135
13222
|
// Descend into child embedded views.
|
|
13136
13223
|
recursivelyProcessView(view.job.views.get(op.xref), scope);
|
|
@@ -13188,6 +13275,8 @@ function getScopeForView(view, parent) {
|
|
|
13188
13275
|
for (const op of view.create) {
|
|
13189
13276
|
switch (op.kind) {
|
|
13190
13277
|
case OpKind.ElementStart:
|
|
13278
|
+
case OpKind.ConditionalCreate:
|
|
13279
|
+
case OpKind.ConditionalBranchCreate:
|
|
13191
13280
|
case OpKind.Template:
|
|
13192
13281
|
if (!Array.isArray(op.localRefs)) {
|
|
13193
13282
|
throw new Error(`AssertionError: expected localRefs to be an array`);
|
|
@@ -21718,6 +21807,8 @@ function liftLocalRefs(job) {
|
|
|
21718
21807
|
for (const op of unit.create) {
|
|
21719
21808
|
switch (op.kind) {
|
|
21720
21809
|
case OpKind.ElementStart:
|
|
21810
|
+
case OpKind.ConditionalCreate:
|
|
21811
|
+
case OpKind.ConditionalBranchCreate:
|
|
21721
21812
|
case OpKind.Template:
|
|
21722
21813
|
if (!Array.isArray(op.localRefs)) {
|
|
21723
21814
|
throw new Error(`AssertionError: expected localRefs to be an array still`);
|
|
@@ -21860,7 +21951,9 @@ function parseExtractedStyles(job) {
|
|
|
21860
21951
|
isStringLiteral(op.expression)) {
|
|
21861
21952
|
const target = elements.get(op.target);
|
|
21862
21953
|
if (target !== undefined &&
|
|
21863
|
-
target.kind === OpKind.Template
|
|
21954
|
+
(target.kind === OpKind.Template ||
|
|
21955
|
+
target.kind === OpKind.ConditionalCreate ||
|
|
21956
|
+
target.kind === OpKind.ConditionalBranchCreate) &&
|
|
21864
21957
|
target.templateKind === TemplateKind.Structural) {
|
|
21865
21958
|
// TemplateDefinitionBuilder will not apply class and style bindings to structural
|
|
21866
21959
|
// directives; instead, it will leave them as attributes.
|
|
@@ -21975,6 +22068,8 @@ function addNamesToView(unit, baseName, state, compatibility) {
|
|
|
21975
22068
|
addNamesToView(fallbackView, `${baseName}_ProjectionFallback_${op.handle.slot}`, state, compatibility);
|
|
21976
22069
|
}
|
|
21977
22070
|
break;
|
|
22071
|
+
case OpKind.ConditionalCreate:
|
|
22072
|
+
case OpKind.ConditionalBranchCreate:
|
|
21978
22073
|
case OpKind.Template:
|
|
21979
22074
|
if (!(unit instanceof ViewCompilationUnit)) {
|
|
21980
22075
|
throw new Error(`AssertionError: must be compiling a component`);
|
|
@@ -22460,6 +22555,8 @@ function propagateI18nBlocksToTemplates(unit, subTemplateIndex) {
|
|
|
22460
22555
|
}
|
|
22461
22556
|
i18nBlock = null;
|
|
22462
22557
|
break;
|
|
22558
|
+
case OpKind.ConditionalCreate:
|
|
22559
|
+
case OpKind.ConditionalBranchCreate:
|
|
22463
22560
|
case OpKind.Template:
|
|
22464
22561
|
subTemplateIndex = propagateI18nBlocksForView(unit.job.views.get(op.xref), i18nBlock, op.i18nPlaceholder, subTemplateIndex);
|
|
22465
22562
|
break;
|
|
@@ -22665,7 +22762,6 @@ function enableBindings() {
|
|
|
22665
22762
|
function listener(name, handlerFn, eventTargetResolver, syntheticHost, sourceSpan) {
|
|
22666
22763
|
const args = [literal(name), handlerFn];
|
|
22667
22764
|
if (eventTargetResolver !== null) {
|
|
22668
|
-
args.push(literal(false)); // `useCapture` flag, defaults to `false`
|
|
22669
22765
|
args.push(importExpr(eventTargetResolver));
|
|
22670
22766
|
}
|
|
22671
22767
|
return call(syntheticHost ? Identifiers.syntheticHostListener : Identifiers.listener, args, sourceSpan);
|
|
@@ -22825,6 +22921,42 @@ function i18nStart(slot, constIndex, subTemplateIndex, sourceSpan) {
|
|
|
22825
22921
|
}
|
|
22826
22922
|
return call(Identifiers.i18nStart, args, sourceSpan);
|
|
22827
22923
|
}
|
|
22924
|
+
function conditionalCreate(slot, templateFnRef, decls, vars, tag, constIndex, localRefs, sourceSpan) {
|
|
22925
|
+
const args = [
|
|
22926
|
+
literal(slot),
|
|
22927
|
+
templateFnRef,
|
|
22928
|
+
literal(decls),
|
|
22929
|
+
literal(vars),
|
|
22930
|
+
literal(tag),
|
|
22931
|
+
literal(constIndex),
|
|
22932
|
+
];
|
|
22933
|
+
if (localRefs !== null) {
|
|
22934
|
+
args.push(literal(localRefs));
|
|
22935
|
+
args.push(importExpr(Identifiers.templateRefExtractor));
|
|
22936
|
+
}
|
|
22937
|
+
while (args[args.length - 1].isEquivalent(NULL_EXPR)) {
|
|
22938
|
+
args.pop();
|
|
22939
|
+
}
|
|
22940
|
+
return call(Identifiers.conditionalCreate, args, sourceSpan);
|
|
22941
|
+
}
|
|
22942
|
+
function conditionalBranchCreate(slot, templateFnRef, decls, vars, tag, constIndex, localRefs, sourceSpan) {
|
|
22943
|
+
const args = [
|
|
22944
|
+
literal(slot),
|
|
22945
|
+
templateFnRef,
|
|
22946
|
+
literal(decls),
|
|
22947
|
+
literal(vars),
|
|
22948
|
+
literal(tag),
|
|
22949
|
+
literal(constIndex),
|
|
22950
|
+
];
|
|
22951
|
+
if (localRefs !== null) {
|
|
22952
|
+
args.push(literal(localRefs));
|
|
22953
|
+
args.push(importExpr(Identifiers.templateRefExtractor));
|
|
22954
|
+
}
|
|
22955
|
+
while (args[args.length - 1].isEquivalent(NULL_EXPR)) {
|
|
22956
|
+
args.pop();
|
|
22957
|
+
}
|
|
22958
|
+
return call(Identifiers.conditionalBranchCreate, args, sourceSpan);
|
|
22959
|
+
}
|
|
22828
22960
|
function repeaterCreate(slot, viewFnName, decls, vars, tag, constIndex, trackByFn, trackByUsesComponentInstance, emptyViewFnName, emptyDecls, emptyVars, emptyTag, emptyConstIndex, sourceSpan) {
|
|
22829
22961
|
const args = [
|
|
22830
22962
|
literal(slot),
|
|
@@ -23394,6 +23526,26 @@ function reifyCreateOperations(unit, ops) {
|
|
|
23394
23526
|
}
|
|
23395
23527
|
OpList.replace(op, projection(op.handle.slot, op.projectionSlotIndex, op.attributes, fallbackViewFnName, fallbackDecls, fallbackVars, op.sourceSpan));
|
|
23396
23528
|
break;
|
|
23529
|
+
case OpKind.ConditionalCreate:
|
|
23530
|
+
if (!(unit instanceof ViewCompilationUnit)) {
|
|
23531
|
+
throw new Error(`AssertionError: must be compiling a component`);
|
|
23532
|
+
}
|
|
23533
|
+
if (Array.isArray(op.localRefs)) {
|
|
23534
|
+
throw new Error(`AssertionError: local refs array should have been extracted into a constant`);
|
|
23535
|
+
}
|
|
23536
|
+
const conditionalCreateChildView = unit.job.views.get(op.xref);
|
|
23537
|
+
OpList.replace(op, conditionalCreate(op.handle.slot, variable(conditionalCreateChildView.fnName), conditionalCreateChildView.decls, conditionalCreateChildView.vars, op.tag, op.attributes, op.localRefs, op.startSourceSpan));
|
|
23538
|
+
break;
|
|
23539
|
+
case OpKind.ConditionalBranchCreate:
|
|
23540
|
+
if (!(unit instanceof ViewCompilationUnit)) {
|
|
23541
|
+
throw new Error(`AssertionError: must be compiling a component`);
|
|
23542
|
+
}
|
|
23543
|
+
if (Array.isArray(op.localRefs)) {
|
|
23544
|
+
throw new Error(`AssertionError: local refs array should have been extracted into a constant`);
|
|
23545
|
+
}
|
|
23546
|
+
const conditionalBranchCreateChildView = unit.job.views.get(op.xref);
|
|
23547
|
+
OpList.replace(op, conditionalBranchCreate(op.handle.slot, variable(conditionalBranchCreateChildView.fnName), conditionalBranchCreateChildView.decls, conditionalBranchCreateChildView.vars, op.tag, op.attributes, op.localRefs, op.startSourceSpan));
|
|
23548
|
+
break;
|
|
23397
23549
|
case OpKind.RepeaterCreate:
|
|
23398
23550
|
if (op.handle.slot === null) {
|
|
23399
23551
|
throw new Error('No slot was assigned for repeater instruction');
|
|
@@ -23951,6 +24103,8 @@ function resolvePlaceholdersForView(job, unit, i18nContexts, elements, pendingSt
|
|
|
23951
24103
|
pendingStructuralDirective = undefined;
|
|
23952
24104
|
}
|
|
23953
24105
|
break;
|
|
24106
|
+
case OpKind.ConditionalCreate:
|
|
24107
|
+
case OpKind.ConditionalBranchCreate:
|
|
23954
24108
|
case OpKind.Template:
|
|
23955
24109
|
const view = job.views.get(op.xref);
|
|
23956
24110
|
if (op.i18nPlaceholder === undefined) {
|
|
@@ -24514,7 +24668,10 @@ function allocateSlots(job) {
|
|
|
24514
24668
|
// propagate the number of slots used for each view into the operation which declares it.
|
|
24515
24669
|
for (const unit of job.units) {
|
|
24516
24670
|
for (const op of unit.ops()) {
|
|
24517
|
-
if (op.kind === OpKind.Template ||
|
|
24671
|
+
if (op.kind === OpKind.Template ||
|
|
24672
|
+
op.kind === OpKind.ConditionalCreate ||
|
|
24673
|
+
op.kind === OpKind.ConditionalBranchCreate ||
|
|
24674
|
+
op.kind === OpKind.RepeaterCreate) {
|
|
24518
24675
|
// Record the number of slots used by the view this `ir.TemplateOp` declares in the
|
|
24519
24676
|
// operation itself, so it can be emitted later.
|
|
24520
24677
|
const childView = job.views.get(op.xref);
|
|
@@ -24575,6 +24732,8 @@ function optimizeStoreLet(job) {
|
|
|
24575
24732
|
* typescript AST, the parentheses node is removed, and then the remaining AST is printed, it
|
|
24576
24733
|
* incorrectly prints `a ? b : c ?? d`. This is different from how it handles the same situation
|
|
24577
24734
|
* with `||` and `&&` where it prints the parentheses even if they are not present in the AST.
|
|
24735
|
+
* Note: We may be able to remove this case if Typescript resolves the following issue:
|
|
24736
|
+
* https://github.com/microsoft/TypeScript/issues/61369
|
|
24578
24737
|
*/
|
|
24579
24738
|
function stripNonrequiredParentheses(job) {
|
|
24580
24739
|
// Check which parentheses are required.
|
|
@@ -24949,7 +25108,10 @@ function countVariables(job) {
|
|
|
24949
25108
|
// an embedded view).
|
|
24950
25109
|
for (const unit of job.units) {
|
|
24951
25110
|
for (const op of unit.create) {
|
|
24952
|
-
if (op.kind !== OpKind.Template &&
|
|
25111
|
+
if (op.kind !== OpKind.Template &&
|
|
25112
|
+
op.kind !== OpKind.RepeaterCreate &&
|
|
25113
|
+
op.kind !== OpKind.ConditionalCreate &&
|
|
25114
|
+
op.kind !== OpKind.ConditionalBranchCreate) {
|
|
24953
25115
|
continue;
|
|
24954
25116
|
}
|
|
24955
25117
|
const childView = job.views.get(op.xref);
|
|
@@ -25933,13 +26095,14 @@ function ingestIfBlock(unit, ifBlock) {
|
|
|
25933
26095
|
}
|
|
25934
26096
|
ifCaseI18nMeta = ifCase.i18n;
|
|
25935
26097
|
}
|
|
25936
|
-
const
|
|
25937
|
-
|
|
26098
|
+
const createOp = i === 0 ? createConditionalCreateOp : createConditionalBranchCreateOp;
|
|
26099
|
+
const conditionalCreateOp = createOp(cView.xref, TemplateKind.Block, tagName, 'Conditional', Namespace.HTML, ifCaseI18nMeta, ifCase.startSourceSpan, ifCase.sourceSpan);
|
|
26100
|
+
unit.create.push(conditionalCreateOp);
|
|
25938
26101
|
if (firstXref === null) {
|
|
25939
26102
|
firstXref = cView.xref;
|
|
25940
26103
|
}
|
|
25941
26104
|
const caseExpr = ifCase.expression ? convertAst(ifCase.expression, unit.job, null) : null;
|
|
25942
|
-
const conditionalCaseExpr = new ConditionalCaseExpr(caseExpr,
|
|
26105
|
+
const conditionalCaseExpr = new ConditionalCaseExpr(caseExpr, conditionalCreateOp.xref, conditionalCreateOp.handle, ifCase.expressionAlias);
|
|
25943
26106
|
conditions.push(conditionalCaseExpr);
|
|
25944
26107
|
ingestNodes(cView, ifCase.children);
|
|
25945
26108
|
}
|
|
@@ -25955,7 +26118,8 @@ function ingestSwitchBlock(unit, switchBlock) {
|
|
|
25955
26118
|
}
|
|
25956
26119
|
let firstXref = null;
|
|
25957
26120
|
let conditions = [];
|
|
25958
|
-
for (
|
|
26121
|
+
for (let i = 0; i < switchBlock.cases.length; i++) {
|
|
26122
|
+
const switchCase = switchBlock.cases[i];
|
|
25959
26123
|
const cView = unit.job.allocateView(unit.xref);
|
|
25960
26124
|
const tagName = ingestControlFlowInsertionPoint(unit, cView.xref, switchCase);
|
|
25961
26125
|
let switchCaseI18nMeta = undefined;
|
|
@@ -25965,15 +26129,16 @@ function ingestSwitchBlock(unit, switchBlock) {
|
|
|
25965
26129
|
}
|
|
25966
26130
|
switchCaseI18nMeta = switchCase.i18n;
|
|
25967
26131
|
}
|
|
25968
|
-
const
|
|
25969
|
-
|
|
26132
|
+
const createOp = i === 0 ? createConditionalCreateOp : createConditionalBranchCreateOp;
|
|
26133
|
+
const conditionalCreateOp = createOp(cView.xref, TemplateKind.Block, tagName, 'Case', Namespace.HTML, switchCaseI18nMeta, switchCase.startSourceSpan, switchCase.sourceSpan);
|
|
26134
|
+
unit.create.push(conditionalCreateOp);
|
|
25970
26135
|
if (firstXref === null) {
|
|
25971
26136
|
firstXref = cView.xref;
|
|
25972
26137
|
}
|
|
25973
26138
|
const caseExpr = switchCase.expression
|
|
25974
26139
|
? convertAst(switchCase.expression, unit.job, switchBlock.startSourceSpan)
|
|
25975
26140
|
: null;
|
|
25976
|
-
const conditionalCaseExpr = new ConditionalCaseExpr(caseExpr,
|
|
26141
|
+
const conditionalCaseExpr = new ConditionalCaseExpr(caseExpr, conditionalCreateOp.xref, conditionalCreateOp.handle);
|
|
25977
26142
|
conditions.push(conditionalCaseExpr);
|
|
25978
26143
|
ingestNodes(cView, switchCase.children);
|
|
25979
26144
|
}
|
|
@@ -29661,7 +29826,7 @@ class R3TargetBinder {
|
|
|
29661
29826
|
* metadata about the types referenced in the template.
|
|
29662
29827
|
*/
|
|
29663
29828
|
bind(target) {
|
|
29664
|
-
if (!target.template) {
|
|
29829
|
+
if (!target.template && !target.host) {
|
|
29665
29830
|
throw new Error('Empty bound targets are not supported');
|
|
29666
29831
|
}
|
|
29667
29832
|
const directives = new Map();
|
|
@@ -29691,6 +29856,11 @@ class R3TargetBinder {
|
|
|
29691
29856
|
// template. This extracts all the metadata that doesn't depend on directive matching.
|
|
29692
29857
|
TemplateBinder.applyWithScope(target.template, scope, expressions, symbols, nestingLevel, usedPipes, eagerPipes, deferBlocks);
|
|
29693
29858
|
}
|
|
29859
|
+
// Bind the host element in a separate scope. Note that it only uses the
|
|
29860
|
+
// `TemplateBinder` since directives don't apply inside a host context.
|
|
29861
|
+
if (target.host) {
|
|
29862
|
+
TemplateBinder.applyWithScope(target.host, Scope.apply(target.host), expressions, symbols, nestingLevel, usedPipes, eagerPipes, deferBlocks);
|
|
29863
|
+
}
|
|
29694
29864
|
return new R3BoundTarget(target, directives, eagerDirectives, bindings, references, expressions, symbols, nestingLevel, scopedNodeEntities, usedPipes, eagerPipes, deferBlocks);
|
|
29695
29865
|
}
|
|
29696
29866
|
}
|
|
@@ -29766,7 +29936,7 @@ class Scope {
|
|
|
29766
29936
|
nodeOrNodes instanceof Content) {
|
|
29767
29937
|
nodeOrNodes.children.forEach((node) => node.visit(this));
|
|
29768
29938
|
}
|
|
29769
|
-
else {
|
|
29939
|
+
else if (!(nodeOrNodes instanceof HostElement)) {
|
|
29770
29940
|
// No overarching `Template` instance, so process the nodes directly.
|
|
29771
29941
|
nodeOrNodes.forEach((node) => node.visit(this));
|
|
29772
29942
|
}
|
|
@@ -30095,7 +30265,7 @@ class TemplateBinder extends RecursiveAstVisitor {
|
|
|
30095
30265
|
/**
|
|
30096
30266
|
* Process a template and extract metadata about expressions and symbols within.
|
|
30097
30267
|
*
|
|
30098
|
-
* @param
|
|
30268
|
+
* @param nodeOrNodes the nodes of the template to process
|
|
30099
30269
|
* @param scope the `Scope` of the template being processed.
|
|
30100
30270
|
* @returns three maps which contain metadata about the template: `expressions` which interprets
|
|
30101
30271
|
* special `AST` nodes in expressions as pointing to references or variables declared within the
|
|
@@ -30104,11 +30274,11 @@ class TemplateBinder extends RecursiveAstVisitor {
|
|
|
30104
30274
|
* nesting level (how many levels deep within the template structure the `Template` is), starting
|
|
30105
30275
|
* at 1.
|
|
30106
30276
|
*/
|
|
30107
|
-
static applyWithScope(
|
|
30108
|
-
const template =
|
|
30277
|
+
static applyWithScope(nodeOrNodes, scope, expressions, symbols, nestingLevel, usedPipes, eagerPipes, deferBlocks) {
|
|
30278
|
+
const template = nodeOrNodes instanceof Template ? nodeOrNodes : null;
|
|
30109
30279
|
// The top-level template has nesting level 0.
|
|
30110
30280
|
const binder = new TemplateBinder(expressions, symbols, usedPipes, eagerPipes, deferBlocks, nestingLevel, scope, template, 0);
|
|
30111
|
-
binder.ingest(
|
|
30281
|
+
binder.ingest(nodeOrNodes);
|
|
30112
30282
|
}
|
|
30113
30283
|
ingest(nodeOrNodes) {
|
|
30114
30284
|
if (nodeOrNodes instanceof Template) {
|
|
@@ -30150,6 +30320,10 @@ class TemplateBinder extends RecursiveAstVisitor {
|
|
|
30150
30320
|
nodeOrNodes.children.forEach((node) => node.visit(this));
|
|
30151
30321
|
this.nestingLevel.set(nodeOrNodes, this.level);
|
|
30152
30322
|
}
|
|
30323
|
+
else if (nodeOrNodes instanceof HostElement) {
|
|
30324
|
+
// Host elements are always at the top level.
|
|
30325
|
+
this.nestingLevel.set(nodeOrNodes, 0);
|
|
30326
|
+
}
|
|
30153
30327
|
else {
|
|
30154
30328
|
// Visit each node from the top-level template.
|
|
30155
30329
|
nodeOrNodes.forEach(this.visitNode);
|
|
@@ -32881,7 +33055,7 @@ const MINIMUM_PARTIAL_LINKER_DEFER_SUPPORT_VERSION = '18.0.0';
|
|
|
32881
33055
|
function compileDeclareClassMetadata(metadata) {
|
|
32882
33056
|
const definitionMap = new DefinitionMap();
|
|
32883
33057
|
definitionMap.set('minVersion', literal(MINIMUM_PARTIAL_LINKER_VERSION$5));
|
|
32884
|
-
definitionMap.set('version', literal('20.0.0-next.
|
|
33058
|
+
definitionMap.set('version', literal('20.0.0-next.4'));
|
|
32885
33059
|
definitionMap.set('ngImport', importExpr(Identifiers.core));
|
|
32886
33060
|
definitionMap.set('type', metadata.type);
|
|
32887
33061
|
definitionMap.set('decorators', metadata.decorators);
|
|
@@ -32899,7 +33073,7 @@ function compileComponentDeclareClassMetadata(metadata, dependencies) {
|
|
|
32899
33073
|
callbackReturnDefinitionMap.set('ctorParameters', metadata.ctorParameters ?? literal(null));
|
|
32900
33074
|
callbackReturnDefinitionMap.set('propDecorators', metadata.propDecorators ?? literal(null));
|
|
32901
33075
|
definitionMap.set('minVersion', literal(MINIMUM_PARTIAL_LINKER_DEFER_SUPPORT_VERSION));
|
|
32902
|
-
definitionMap.set('version', literal('20.0.0-next.
|
|
33076
|
+
definitionMap.set('version', literal('20.0.0-next.4'));
|
|
32903
33077
|
definitionMap.set('ngImport', importExpr(Identifiers.core));
|
|
32904
33078
|
definitionMap.set('type', metadata.type);
|
|
32905
33079
|
definitionMap.set('resolveDeferredDeps', compileComponentMetadataAsyncResolver(dependencies));
|
|
@@ -32994,7 +33168,7 @@ function createDirectiveDefinitionMap(meta) {
|
|
|
32994
33168
|
const definitionMap = new DefinitionMap();
|
|
32995
33169
|
const minVersion = getMinimumVersionForPartialOutput(meta);
|
|
32996
33170
|
definitionMap.set('minVersion', literal(minVersion));
|
|
32997
|
-
definitionMap.set('version', literal('20.0.0-next.
|
|
33171
|
+
definitionMap.set('version', literal('20.0.0-next.4'));
|
|
32998
33172
|
// e.g. `type: MyDirective`
|
|
32999
33173
|
definitionMap.set('type', meta.type.value);
|
|
33000
33174
|
if (meta.isStandalone !== undefined) {
|
|
@@ -33410,7 +33584,7 @@ const MINIMUM_PARTIAL_LINKER_VERSION$4 = '12.0.0';
|
|
|
33410
33584
|
function compileDeclareFactoryFunction(meta) {
|
|
33411
33585
|
const definitionMap = new DefinitionMap();
|
|
33412
33586
|
definitionMap.set('minVersion', literal(MINIMUM_PARTIAL_LINKER_VERSION$4));
|
|
33413
|
-
definitionMap.set('version', literal('20.0.0-next.
|
|
33587
|
+
definitionMap.set('version', literal('20.0.0-next.4'));
|
|
33414
33588
|
definitionMap.set('ngImport', importExpr(Identifiers.core));
|
|
33415
33589
|
definitionMap.set('type', meta.type.value);
|
|
33416
33590
|
definitionMap.set('deps', compileDependencies(meta.deps));
|
|
@@ -33445,7 +33619,7 @@ function compileDeclareInjectableFromMetadata(meta) {
|
|
|
33445
33619
|
function createInjectableDefinitionMap(meta) {
|
|
33446
33620
|
const definitionMap = new DefinitionMap();
|
|
33447
33621
|
definitionMap.set('minVersion', literal(MINIMUM_PARTIAL_LINKER_VERSION$3));
|
|
33448
|
-
definitionMap.set('version', literal('20.0.0-next.
|
|
33622
|
+
definitionMap.set('version', literal('20.0.0-next.4'));
|
|
33449
33623
|
definitionMap.set('ngImport', importExpr(Identifiers.core));
|
|
33450
33624
|
definitionMap.set('type', meta.type.value);
|
|
33451
33625
|
// Only generate providedIn property if it has a non-null value
|
|
@@ -33496,7 +33670,7 @@ function compileDeclareInjectorFromMetadata(meta) {
|
|
|
33496
33670
|
function createInjectorDefinitionMap(meta) {
|
|
33497
33671
|
const definitionMap = new DefinitionMap();
|
|
33498
33672
|
definitionMap.set('minVersion', literal(MINIMUM_PARTIAL_LINKER_VERSION$2));
|
|
33499
|
-
definitionMap.set('version', literal('20.0.0-next.
|
|
33673
|
+
definitionMap.set('version', literal('20.0.0-next.4'));
|
|
33500
33674
|
definitionMap.set('ngImport', importExpr(Identifiers.core));
|
|
33501
33675
|
definitionMap.set('type', meta.type.value);
|
|
33502
33676
|
definitionMap.set('providers', meta.providers);
|
|
@@ -33529,7 +33703,7 @@ function createNgModuleDefinitionMap(meta) {
|
|
|
33529
33703
|
throw new Error('Invalid path! Local compilation mode should not get into the partial compilation path');
|
|
33530
33704
|
}
|
|
33531
33705
|
definitionMap.set('minVersion', literal(MINIMUM_PARTIAL_LINKER_VERSION$1));
|
|
33532
|
-
definitionMap.set('version', literal('20.0.0-next.
|
|
33706
|
+
definitionMap.set('version', literal('20.0.0-next.4'));
|
|
33533
33707
|
definitionMap.set('ngImport', importExpr(Identifiers.core));
|
|
33534
33708
|
definitionMap.set('type', meta.type.value);
|
|
33535
33709
|
// We only generate the keys in the metadata if the arrays contain values.
|
|
@@ -33580,7 +33754,7 @@ function compileDeclarePipeFromMetadata(meta) {
|
|
|
33580
33754
|
function createPipeDefinitionMap(meta) {
|
|
33581
33755
|
const definitionMap = new DefinitionMap();
|
|
33582
33756
|
definitionMap.set('minVersion', literal(MINIMUM_PARTIAL_LINKER_VERSION));
|
|
33583
|
-
definitionMap.set('version', literal('20.0.0-next.
|
|
33757
|
+
definitionMap.set('version', literal('20.0.0-next.4'));
|
|
33584
33758
|
definitionMap.set('ngImport', importExpr(Identifiers.core));
|
|
33585
33759
|
// e.g. `type: MyPipe`
|
|
33586
33760
|
definitionMap.set('type', meta.type.value);
|
|
@@ -33738,7 +33912,7 @@ function compileHmrUpdateCallback(definitions, constantStatements, meta) {
|
|
|
33738
33912
|
* @description
|
|
33739
33913
|
* Entry point for all public APIs of the compiler package.
|
|
33740
33914
|
*/
|
|
33741
|
-
const VERSION = new Version('20.0.0-next.
|
|
33915
|
+
const VERSION = new Version('20.0.0-next.4');
|
|
33742
33916
|
|
|
33743
33917
|
//////////////////////////////////////
|
|
33744
33918
|
// THIS FILE HAS GLOBAL SIDE EFFECT //
|
|
@@ -33764,5 +33938,5 @@ const VERSION = new Version('20.0.0-next.2');
|
|
|
33764
33938
|
// the late binding of the Compiler to the @angular/core for jit compilation.
|
|
33765
33939
|
publishFacade(_global);
|
|
33766
33940
|
|
|
33767
|
-
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, Conditional, ConditionalExpr, ConstantPool, CssSelector, DEFAULT_INTERPOLATION_CONFIG, DYNAMIC_TYPE, DeclareFunctionStmt, DeclareVarStmt, 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,
|
|
33941
|
+
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, Conditional, ConditionalExpr, ConstantPool, CssSelector, DEFAULT_INTERPOLATION_CONFIG, DYNAMIC_TYPE, DeclareFunctionStmt, DeclareVarStmt, 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, 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, Content as TmplAstContent, DeferredBlock as TmplAstDeferredBlock, DeferredBlockError as TmplAstDeferredBlockError, DeferredBlockLoading as TmplAstDeferredBlockLoading, DeferredBlockPlaceholder as TmplAstDeferredBlockPlaceholder, DeferredTrigger as TmplAstDeferredTrigger, 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 };
|
|
33768
33942
|
//# sourceMappingURL=compiler.mjs.map
|