@angular/compiler 13.2.0 → 14.0.0-next.2
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/esm2020/src/compiler.mjs +1 -2
- package/esm2020/src/compiler_facade_interface.mjs +1 -1
- package/esm2020/src/compiler_util/expression_converter.mjs +38 -44
- package/esm2020/src/expression_parser/ast.mjs +1 -35
- package/esm2020/src/expression_parser/parser.mjs +36 -36
- package/esm2020/src/jit_compiler_facade.mjs +4 -1
- package/esm2020/src/output/output_ast.mjs +1 -1
- package/esm2020/src/render3/partial/api.mjs +1 -1
- package/esm2020/src/render3/partial/class_metadata.mjs +1 -1
- package/esm2020/src/render3/partial/directive.mjs +1 -1
- package/esm2020/src/render3/partial/factory.mjs +1 -1
- package/esm2020/src/render3/partial/injectable.mjs +1 -1
- package/esm2020/src/render3/partial/injector.mjs +1 -1
- package/esm2020/src/render3/partial/ng_module.mjs +1 -1
- package/esm2020/src/render3/partial/pipe.mjs +1 -1
- package/esm2020/src/render3/r3_pipe_compiler.mjs +1 -1
- package/esm2020/src/render3/r3_template_transform.mjs +4 -4
- package/esm2020/src/render3/view/api.mjs +1 -1
- package/esm2020/src/render3/view/compiler.mjs +2 -2
- package/esm2020/src/render3/view/i18n/get_msg_utils.mjs +2 -5
- package/esm2020/src/render3/view/i18n/meta.mjs +11 -6
- package/esm2020/src/render3/view/template.mjs +3 -3
- package/esm2020/src/template_parser/binding_parser.mjs +11 -11
- package/esm2020/src/version.mjs +1 -1
- package/fesm2015/compiler.mjs +472 -598
- package/fesm2015/compiler.mjs.map +1 -1
- package/fesm2015/testing.mjs +1 -1
- package/fesm2020/compiler.mjs +470 -596
- package/fesm2020/compiler.mjs.map +1 -1
- package/fesm2020/testing.mjs +1 -1
- package/package.json +1 -1
- package/src/compiler.d.ts +0 -1
- package/src/compiler_facade_interface.d.ts +4 -0
- package/src/compiler_util/expression_converter.d.ts +3 -4
- package/src/expression_parser/ast.d.ts +0 -25
- package/src/expression_parser/parser.d.ts +19 -4
- package/src/output/output_ast.d.ts +2 -1
- package/src/render3/partial/api.d.ts +10 -0
- package/src/render3/r3_pipe_compiler.d.ts +4 -0
- package/src/render3/view/api.d.ts +4 -0
- package/src/render3/view/i18n/meta.d.ts +1 -1
- package/src/template_parser/binding_parser.d.ts +1 -1
- package/esm2020/src/identifiers.mjs +0 -92
- package/src/identifiers.d.ts +0 -44
package/fesm2020/compiler.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Angular
|
|
2
|
+
* @license Angular v14.0.0-next.2
|
|
3
3
|
* (c) 2010-2022 Google LLC. https://angular.io/
|
|
4
4
|
* License: MIT
|
|
5
5
|
*/
|
|
@@ -2733,206 +2733,206 @@ function isLongStringLiteral(expr) {
|
|
|
2733
2733
|
* Use of this source code is governed by an MIT-style license that can be
|
|
2734
2734
|
* found in the LICENSE file at https://angular.io/license
|
|
2735
2735
|
*/
|
|
2736
|
-
const CORE
|
|
2737
|
-
class Identifiers
|
|
2736
|
+
const CORE = '@angular/core';
|
|
2737
|
+
class Identifiers {
|
|
2738
2738
|
}
|
|
2739
2739
|
/* Methods */
|
|
2740
|
-
Identifiers
|
|
2741
|
-
Identifiers
|
|
2742
|
-
Identifiers
|
|
2743
|
-
Identifiers
|
|
2740
|
+
Identifiers.NEW_METHOD = 'factory';
|
|
2741
|
+
Identifiers.TRANSFORM_METHOD = 'transform';
|
|
2742
|
+
Identifiers.PATCH_DEPS = 'patchedDeps';
|
|
2743
|
+
Identifiers.core = { name: null, moduleName: CORE };
|
|
2744
2744
|
/* Instructions */
|
|
2745
|
-
Identifiers
|
|
2746
|
-
Identifiers
|
|
2747
|
-
Identifiers
|
|
2748
|
-
Identifiers
|
|
2749
|
-
Identifiers
|
|
2750
|
-
Identifiers
|
|
2751
|
-
Identifiers
|
|
2752
|
-
Identifiers
|
|
2753
|
-
Identifiers
|
|
2754
|
-
Identifiers
|
|
2755
|
-
Identifiers
|
|
2756
|
-
Identifiers
|
|
2757
|
-
Identifiers
|
|
2758
|
-
Identifiers
|
|
2759
|
-
Identifiers
|
|
2760
|
-
Identifiers
|
|
2761
|
-
Identifiers
|
|
2762
|
-
Identifiers
|
|
2763
|
-
Identifiers
|
|
2764
|
-
Identifiers
|
|
2765
|
-
Identifiers
|
|
2766
|
-
Identifiers
|
|
2767
|
-
Identifiers
|
|
2768
|
-
Identifiers
|
|
2769
|
-
Identifiers
|
|
2770
|
-
Identifiers
|
|
2771
|
-
Identifiers
|
|
2772
|
-
Identifiers
|
|
2773
|
-
Identifiers
|
|
2774
|
-
Identifiers
|
|
2775
|
-
Identifiers
|
|
2776
|
-
Identifiers
|
|
2777
|
-
Identifiers
|
|
2778
|
-
Identifiers
|
|
2779
|
-
Identifiers
|
|
2780
|
-
Identifiers
|
|
2781
|
-
Identifiers
|
|
2782
|
-
Identifiers
|
|
2783
|
-
Identifiers
|
|
2784
|
-
Identifiers
|
|
2785
|
-
Identifiers
|
|
2786
|
-
Identifiers
|
|
2787
|
-
Identifiers
|
|
2788
|
-
Identifiers
|
|
2789
|
-
Identifiers
|
|
2790
|
-
Identifiers
|
|
2791
|
-
Identifiers
|
|
2792
|
-
Identifiers
|
|
2793
|
-
Identifiers
|
|
2794
|
-
Identifiers
|
|
2795
|
-
Identifiers
|
|
2796
|
-
Identifiers
|
|
2797
|
-
Identifiers
|
|
2798
|
-
Identifiers
|
|
2799
|
-
Identifiers
|
|
2800
|
-
Identifiers
|
|
2801
|
-
Identifiers
|
|
2802
|
-
Identifiers
|
|
2803
|
-
Identifiers
|
|
2804
|
-
Identifiers
|
|
2805
|
-
Identifiers
|
|
2806
|
-
Identifiers
|
|
2807
|
-
Identifiers
|
|
2808
|
-
Identifiers
|
|
2809
|
-
Identifiers
|
|
2810
|
-
Identifiers
|
|
2811
|
-
Identifiers
|
|
2812
|
-
Identifiers
|
|
2813
|
-
Identifiers
|
|
2814
|
-
Identifiers
|
|
2815
|
-
Identifiers
|
|
2816
|
-
Identifiers
|
|
2817
|
-
Identifiers
|
|
2818
|
-
Identifiers
|
|
2819
|
-
Identifiers
|
|
2820
|
-
Identifiers
|
|
2821
|
-
Identifiers
|
|
2822
|
-
Identifiers
|
|
2823
|
-
Identifiers
|
|
2824
|
-
Identifiers
|
|
2825
|
-
Identifiers
|
|
2826
|
-
Identifiers
|
|
2827
|
-
Identifiers
|
|
2828
|
-
Identifiers
|
|
2829
|
-
Identifiers
|
|
2830
|
-
Identifiers
|
|
2831
|
-
Identifiers
|
|
2832
|
-
Identifiers
|
|
2833
|
-
Identifiers
|
|
2834
|
-
Identifiers
|
|
2835
|
-
Identifiers
|
|
2836
|
-
Identifiers
|
|
2837
|
-
Identifiers
|
|
2838
|
-
Identifiers
|
|
2839
|
-
Identifiers
|
|
2840
|
-
Identifiers
|
|
2841
|
-
Identifiers
|
|
2842
|
-
Identifiers
|
|
2843
|
-
Identifiers
|
|
2844
|
-
Identifiers
|
|
2845
|
-
Identifiers
|
|
2846
|
-
Identifiers
|
|
2847
|
-
Identifiers
|
|
2848
|
-
Identifiers
|
|
2849
|
-
Identifiers
|
|
2850
|
-
Identifiers
|
|
2851
|
-
Identifiers
|
|
2852
|
-
Identifiers
|
|
2853
|
-
Identifiers
|
|
2854
|
-
Identifiers
|
|
2855
|
-
Identifiers
|
|
2856
|
-
Identifiers
|
|
2857
|
-
Identifiers
|
|
2858
|
-
Identifiers
|
|
2859
|
-
Identifiers
|
|
2860
|
-
Identifiers
|
|
2861
|
-
Identifiers
|
|
2862
|
-
Identifiers
|
|
2863
|
-
Identifiers
|
|
2864
|
-
Identifiers
|
|
2865
|
-
Identifiers
|
|
2866
|
-
Identifiers
|
|
2867
|
-
Identifiers
|
|
2868
|
-
Identifiers
|
|
2869
|
-
Identifiers
|
|
2870
|
-
Identifiers
|
|
2745
|
+
Identifiers.namespaceHTML = { name: 'ɵɵnamespaceHTML', moduleName: CORE };
|
|
2746
|
+
Identifiers.namespaceMathML = { name: 'ɵɵnamespaceMathML', moduleName: CORE };
|
|
2747
|
+
Identifiers.namespaceSVG = { name: 'ɵɵnamespaceSVG', moduleName: CORE };
|
|
2748
|
+
Identifiers.element = { name: 'ɵɵelement', moduleName: CORE };
|
|
2749
|
+
Identifiers.elementStart = { name: 'ɵɵelementStart', moduleName: CORE };
|
|
2750
|
+
Identifiers.elementEnd = { name: 'ɵɵelementEnd', moduleName: CORE };
|
|
2751
|
+
Identifiers.advance = { name: 'ɵɵadvance', moduleName: CORE };
|
|
2752
|
+
Identifiers.syntheticHostProperty = { name: 'ɵɵsyntheticHostProperty', moduleName: CORE };
|
|
2753
|
+
Identifiers.syntheticHostListener = { name: 'ɵɵsyntheticHostListener', moduleName: CORE };
|
|
2754
|
+
Identifiers.attribute = { name: 'ɵɵattribute', moduleName: CORE };
|
|
2755
|
+
Identifiers.attributeInterpolate1 = { name: 'ɵɵattributeInterpolate1', moduleName: CORE };
|
|
2756
|
+
Identifiers.attributeInterpolate2 = { name: 'ɵɵattributeInterpolate2', moduleName: CORE };
|
|
2757
|
+
Identifiers.attributeInterpolate3 = { name: 'ɵɵattributeInterpolate3', moduleName: CORE };
|
|
2758
|
+
Identifiers.attributeInterpolate4 = { name: 'ɵɵattributeInterpolate4', moduleName: CORE };
|
|
2759
|
+
Identifiers.attributeInterpolate5 = { name: 'ɵɵattributeInterpolate5', moduleName: CORE };
|
|
2760
|
+
Identifiers.attributeInterpolate6 = { name: 'ɵɵattributeInterpolate6', moduleName: CORE };
|
|
2761
|
+
Identifiers.attributeInterpolate7 = { name: 'ɵɵattributeInterpolate7', moduleName: CORE };
|
|
2762
|
+
Identifiers.attributeInterpolate8 = { name: 'ɵɵattributeInterpolate8', moduleName: CORE };
|
|
2763
|
+
Identifiers.attributeInterpolateV = { name: 'ɵɵattributeInterpolateV', moduleName: CORE };
|
|
2764
|
+
Identifiers.classProp = { name: 'ɵɵclassProp', moduleName: CORE };
|
|
2765
|
+
Identifiers.elementContainerStart = { name: 'ɵɵelementContainerStart', moduleName: CORE };
|
|
2766
|
+
Identifiers.elementContainerEnd = { name: 'ɵɵelementContainerEnd', moduleName: CORE };
|
|
2767
|
+
Identifiers.elementContainer = { name: 'ɵɵelementContainer', moduleName: CORE };
|
|
2768
|
+
Identifiers.styleMap = { name: 'ɵɵstyleMap', moduleName: CORE };
|
|
2769
|
+
Identifiers.styleMapInterpolate1 = { name: 'ɵɵstyleMapInterpolate1', moduleName: CORE };
|
|
2770
|
+
Identifiers.styleMapInterpolate2 = { name: 'ɵɵstyleMapInterpolate2', moduleName: CORE };
|
|
2771
|
+
Identifiers.styleMapInterpolate3 = { name: 'ɵɵstyleMapInterpolate3', moduleName: CORE };
|
|
2772
|
+
Identifiers.styleMapInterpolate4 = { name: 'ɵɵstyleMapInterpolate4', moduleName: CORE };
|
|
2773
|
+
Identifiers.styleMapInterpolate5 = { name: 'ɵɵstyleMapInterpolate5', moduleName: CORE };
|
|
2774
|
+
Identifiers.styleMapInterpolate6 = { name: 'ɵɵstyleMapInterpolate6', moduleName: CORE };
|
|
2775
|
+
Identifiers.styleMapInterpolate7 = { name: 'ɵɵstyleMapInterpolate7', moduleName: CORE };
|
|
2776
|
+
Identifiers.styleMapInterpolate8 = { name: 'ɵɵstyleMapInterpolate8', moduleName: CORE };
|
|
2777
|
+
Identifiers.styleMapInterpolateV = { name: 'ɵɵstyleMapInterpolateV', moduleName: CORE };
|
|
2778
|
+
Identifiers.classMap = { name: 'ɵɵclassMap', moduleName: CORE };
|
|
2779
|
+
Identifiers.classMapInterpolate1 = { name: 'ɵɵclassMapInterpolate1', moduleName: CORE };
|
|
2780
|
+
Identifiers.classMapInterpolate2 = { name: 'ɵɵclassMapInterpolate2', moduleName: CORE };
|
|
2781
|
+
Identifiers.classMapInterpolate3 = { name: 'ɵɵclassMapInterpolate3', moduleName: CORE };
|
|
2782
|
+
Identifiers.classMapInterpolate4 = { name: 'ɵɵclassMapInterpolate4', moduleName: CORE };
|
|
2783
|
+
Identifiers.classMapInterpolate5 = { name: 'ɵɵclassMapInterpolate5', moduleName: CORE };
|
|
2784
|
+
Identifiers.classMapInterpolate6 = { name: 'ɵɵclassMapInterpolate6', moduleName: CORE };
|
|
2785
|
+
Identifiers.classMapInterpolate7 = { name: 'ɵɵclassMapInterpolate7', moduleName: CORE };
|
|
2786
|
+
Identifiers.classMapInterpolate8 = { name: 'ɵɵclassMapInterpolate8', moduleName: CORE };
|
|
2787
|
+
Identifiers.classMapInterpolateV = { name: 'ɵɵclassMapInterpolateV', moduleName: CORE };
|
|
2788
|
+
Identifiers.styleProp = { name: 'ɵɵstyleProp', moduleName: CORE };
|
|
2789
|
+
Identifiers.stylePropInterpolate1 = { name: 'ɵɵstylePropInterpolate1', moduleName: CORE };
|
|
2790
|
+
Identifiers.stylePropInterpolate2 = { name: 'ɵɵstylePropInterpolate2', moduleName: CORE };
|
|
2791
|
+
Identifiers.stylePropInterpolate3 = { name: 'ɵɵstylePropInterpolate3', moduleName: CORE };
|
|
2792
|
+
Identifiers.stylePropInterpolate4 = { name: 'ɵɵstylePropInterpolate4', moduleName: CORE };
|
|
2793
|
+
Identifiers.stylePropInterpolate5 = { name: 'ɵɵstylePropInterpolate5', moduleName: CORE };
|
|
2794
|
+
Identifiers.stylePropInterpolate6 = { name: 'ɵɵstylePropInterpolate6', moduleName: CORE };
|
|
2795
|
+
Identifiers.stylePropInterpolate7 = { name: 'ɵɵstylePropInterpolate7', moduleName: CORE };
|
|
2796
|
+
Identifiers.stylePropInterpolate8 = { name: 'ɵɵstylePropInterpolate8', moduleName: CORE };
|
|
2797
|
+
Identifiers.stylePropInterpolateV = { name: 'ɵɵstylePropInterpolateV', moduleName: CORE };
|
|
2798
|
+
Identifiers.nextContext = { name: 'ɵɵnextContext', moduleName: CORE };
|
|
2799
|
+
Identifiers.templateCreate = { name: 'ɵɵtemplate', moduleName: CORE };
|
|
2800
|
+
Identifiers.text = { name: 'ɵɵtext', moduleName: CORE };
|
|
2801
|
+
Identifiers.enableBindings = { name: 'ɵɵenableBindings', moduleName: CORE };
|
|
2802
|
+
Identifiers.disableBindings = { name: 'ɵɵdisableBindings', moduleName: CORE };
|
|
2803
|
+
Identifiers.getCurrentView = { name: 'ɵɵgetCurrentView', moduleName: CORE };
|
|
2804
|
+
Identifiers.textInterpolate = { name: 'ɵɵtextInterpolate', moduleName: CORE };
|
|
2805
|
+
Identifiers.textInterpolate1 = { name: 'ɵɵtextInterpolate1', moduleName: CORE };
|
|
2806
|
+
Identifiers.textInterpolate2 = { name: 'ɵɵtextInterpolate2', moduleName: CORE };
|
|
2807
|
+
Identifiers.textInterpolate3 = { name: 'ɵɵtextInterpolate3', moduleName: CORE };
|
|
2808
|
+
Identifiers.textInterpolate4 = { name: 'ɵɵtextInterpolate4', moduleName: CORE };
|
|
2809
|
+
Identifiers.textInterpolate5 = { name: 'ɵɵtextInterpolate5', moduleName: CORE };
|
|
2810
|
+
Identifiers.textInterpolate6 = { name: 'ɵɵtextInterpolate6', moduleName: CORE };
|
|
2811
|
+
Identifiers.textInterpolate7 = { name: 'ɵɵtextInterpolate7', moduleName: CORE };
|
|
2812
|
+
Identifiers.textInterpolate8 = { name: 'ɵɵtextInterpolate8', moduleName: CORE };
|
|
2813
|
+
Identifiers.textInterpolateV = { name: 'ɵɵtextInterpolateV', moduleName: CORE };
|
|
2814
|
+
Identifiers.restoreView = { name: 'ɵɵrestoreView', moduleName: CORE };
|
|
2815
|
+
Identifiers.pureFunction0 = { name: 'ɵɵpureFunction0', moduleName: CORE };
|
|
2816
|
+
Identifiers.pureFunction1 = { name: 'ɵɵpureFunction1', moduleName: CORE };
|
|
2817
|
+
Identifiers.pureFunction2 = { name: 'ɵɵpureFunction2', moduleName: CORE };
|
|
2818
|
+
Identifiers.pureFunction3 = { name: 'ɵɵpureFunction3', moduleName: CORE };
|
|
2819
|
+
Identifiers.pureFunction4 = { name: 'ɵɵpureFunction4', moduleName: CORE };
|
|
2820
|
+
Identifiers.pureFunction5 = { name: 'ɵɵpureFunction5', moduleName: CORE };
|
|
2821
|
+
Identifiers.pureFunction6 = { name: 'ɵɵpureFunction6', moduleName: CORE };
|
|
2822
|
+
Identifiers.pureFunction7 = { name: 'ɵɵpureFunction7', moduleName: CORE };
|
|
2823
|
+
Identifiers.pureFunction8 = { name: 'ɵɵpureFunction8', moduleName: CORE };
|
|
2824
|
+
Identifiers.pureFunctionV = { name: 'ɵɵpureFunctionV', moduleName: CORE };
|
|
2825
|
+
Identifiers.pipeBind1 = { name: 'ɵɵpipeBind1', moduleName: CORE };
|
|
2826
|
+
Identifiers.pipeBind2 = { name: 'ɵɵpipeBind2', moduleName: CORE };
|
|
2827
|
+
Identifiers.pipeBind3 = { name: 'ɵɵpipeBind3', moduleName: CORE };
|
|
2828
|
+
Identifiers.pipeBind4 = { name: 'ɵɵpipeBind4', moduleName: CORE };
|
|
2829
|
+
Identifiers.pipeBindV = { name: 'ɵɵpipeBindV', moduleName: CORE };
|
|
2830
|
+
Identifiers.hostProperty = { name: 'ɵɵhostProperty', moduleName: CORE };
|
|
2831
|
+
Identifiers.property = { name: 'ɵɵproperty', moduleName: CORE };
|
|
2832
|
+
Identifiers.propertyInterpolate = { name: 'ɵɵpropertyInterpolate', moduleName: CORE };
|
|
2833
|
+
Identifiers.propertyInterpolate1 = { name: 'ɵɵpropertyInterpolate1', moduleName: CORE };
|
|
2834
|
+
Identifiers.propertyInterpolate2 = { name: 'ɵɵpropertyInterpolate2', moduleName: CORE };
|
|
2835
|
+
Identifiers.propertyInterpolate3 = { name: 'ɵɵpropertyInterpolate3', moduleName: CORE };
|
|
2836
|
+
Identifiers.propertyInterpolate4 = { name: 'ɵɵpropertyInterpolate4', moduleName: CORE };
|
|
2837
|
+
Identifiers.propertyInterpolate5 = { name: 'ɵɵpropertyInterpolate5', moduleName: CORE };
|
|
2838
|
+
Identifiers.propertyInterpolate6 = { name: 'ɵɵpropertyInterpolate6', moduleName: CORE };
|
|
2839
|
+
Identifiers.propertyInterpolate7 = { name: 'ɵɵpropertyInterpolate7', moduleName: CORE };
|
|
2840
|
+
Identifiers.propertyInterpolate8 = { name: 'ɵɵpropertyInterpolate8', moduleName: CORE };
|
|
2841
|
+
Identifiers.propertyInterpolateV = { name: 'ɵɵpropertyInterpolateV', moduleName: CORE };
|
|
2842
|
+
Identifiers.i18n = { name: 'ɵɵi18n', moduleName: CORE };
|
|
2843
|
+
Identifiers.i18nAttributes = { name: 'ɵɵi18nAttributes', moduleName: CORE };
|
|
2844
|
+
Identifiers.i18nExp = { name: 'ɵɵi18nExp', moduleName: CORE };
|
|
2845
|
+
Identifiers.i18nStart = { name: 'ɵɵi18nStart', moduleName: CORE };
|
|
2846
|
+
Identifiers.i18nEnd = { name: 'ɵɵi18nEnd', moduleName: CORE };
|
|
2847
|
+
Identifiers.i18nApply = { name: 'ɵɵi18nApply', moduleName: CORE };
|
|
2848
|
+
Identifiers.i18nPostprocess = { name: 'ɵɵi18nPostprocess', moduleName: CORE };
|
|
2849
|
+
Identifiers.pipe = { name: 'ɵɵpipe', moduleName: CORE };
|
|
2850
|
+
Identifiers.projection = { name: 'ɵɵprojection', moduleName: CORE };
|
|
2851
|
+
Identifiers.projectionDef = { name: 'ɵɵprojectionDef', moduleName: CORE };
|
|
2852
|
+
Identifiers.reference = { name: 'ɵɵreference', moduleName: CORE };
|
|
2853
|
+
Identifiers.inject = { name: 'ɵɵinject', moduleName: CORE };
|
|
2854
|
+
Identifiers.injectAttribute = { name: 'ɵɵinjectAttribute', moduleName: CORE };
|
|
2855
|
+
Identifiers.directiveInject = { name: 'ɵɵdirectiveInject', moduleName: CORE };
|
|
2856
|
+
Identifiers.invalidFactory = { name: 'ɵɵinvalidFactory', moduleName: CORE };
|
|
2857
|
+
Identifiers.invalidFactoryDep = { name: 'ɵɵinvalidFactoryDep', moduleName: CORE };
|
|
2858
|
+
Identifiers.templateRefExtractor = { name: 'ɵɵtemplateRefExtractor', moduleName: CORE };
|
|
2859
|
+
Identifiers.forwardRef = { name: 'forwardRef', moduleName: CORE };
|
|
2860
|
+
Identifiers.resolveForwardRef = { name: 'resolveForwardRef', moduleName: CORE };
|
|
2861
|
+
Identifiers.ɵɵdefineInjectable = { name: 'ɵɵdefineInjectable', moduleName: CORE };
|
|
2862
|
+
Identifiers.declareInjectable = { name: 'ɵɵngDeclareInjectable', moduleName: CORE };
|
|
2863
|
+
Identifiers.InjectableDeclaration = { name: 'ɵɵInjectableDeclaration', moduleName: CORE };
|
|
2864
|
+
Identifiers.resolveWindow = { name: 'ɵɵresolveWindow', moduleName: CORE };
|
|
2865
|
+
Identifiers.resolveDocument = { name: 'ɵɵresolveDocument', moduleName: CORE };
|
|
2866
|
+
Identifiers.resolveBody = { name: 'ɵɵresolveBody', moduleName: CORE };
|
|
2867
|
+
Identifiers.defineComponent = { name: 'ɵɵdefineComponent', moduleName: CORE };
|
|
2868
|
+
Identifiers.declareComponent = { name: 'ɵɵngDeclareComponent', moduleName: CORE };
|
|
2869
|
+
Identifiers.setComponentScope = { name: 'ɵɵsetComponentScope', moduleName: CORE };
|
|
2870
|
+
Identifiers.ChangeDetectionStrategy = {
|
|
2871
2871
|
name: 'ChangeDetectionStrategy',
|
|
2872
|
-
moduleName: CORE
|
|
2872
|
+
moduleName: CORE,
|
|
2873
2873
|
};
|
|
2874
|
-
Identifiers
|
|
2874
|
+
Identifiers.ViewEncapsulation = {
|
|
2875
2875
|
name: 'ViewEncapsulation',
|
|
2876
|
-
moduleName: CORE
|
|
2876
|
+
moduleName: CORE,
|
|
2877
2877
|
};
|
|
2878
|
-
Identifiers
|
|
2878
|
+
Identifiers.ComponentDeclaration = {
|
|
2879
2879
|
name: 'ɵɵComponentDeclaration',
|
|
2880
|
-
moduleName: CORE
|
|
2880
|
+
moduleName: CORE,
|
|
2881
2881
|
};
|
|
2882
|
-
Identifiers
|
|
2882
|
+
Identifiers.FactoryDeclaration = {
|
|
2883
2883
|
name: 'ɵɵFactoryDeclaration',
|
|
2884
|
-
moduleName: CORE
|
|
2884
|
+
moduleName: CORE,
|
|
2885
2885
|
};
|
|
2886
|
-
Identifiers
|
|
2887
|
-
Identifiers
|
|
2888
|
-
Identifiers
|
|
2889
|
-
Identifiers
|
|
2890
|
-
Identifiers
|
|
2886
|
+
Identifiers.declareFactory = { name: 'ɵɵngDeclareFactory', moduleName: CORE };
|
|
2887
|
+
Identifiers.FactoryTarget = { name: 'ɵɵFactoryTarget', moduleName: CORE };
|
|
2888
|
+
Identifiers.defineDirective = { name: 'ɵɵdefineDirective', moduleName: CORE };
|
|
2889
|
+
Identifiers.declareDirective = { name: 'ɵɵngDeclareDirective', moduleName: CORE };
|
|
2890
|
+
Identifiers.DirectiveDeclaration = {
|
|
2891
2891
|
name: 'ɵɵDirectiveDeclaration',
|
|
2892
|
-
moduleName: CORE
|
|
2892
|
+
moduleName: CORE,
|
|
2893
2893
|
};
|
|
2894
|
-
Identifiers
|
|
2895
|
-
Identifiers
|
|
2896
|
-
Identifiers
|
|
2897
|
-
Identifiers
|
|
2898
|
-
Identifiers
|
|
2894
|
+
Identifiers.InjectorDef = { name: 'ɵɵInjectorDef', moduleName: CORE };
|
|
2895
|
+
Identifiers.InjectorDeclaration = { name: 'ɵɵInjectorDeclaration', moduleName: CORE };
|
|
2896
|
+
Identifiers.defineInjector = { name: 'ɵɵdefineInjector', moduleName: CORE };
|
|
2897
|
+
Identifiers.declareInjector = { name: 'ɵɵngDeclareInjector', moduleName: CORE };
|
|
2898
|
+
Identifiers.NgModuleDeclaration = {
|
|
2899
2899
|
name: 'ɵɵNgModuleDeclaration',
|
|
2900
|
-
moduleName: CORE
|
|
2900
|
+
moduleName: CORE,
|
|
2901
2901
|
};
|
|
2902
|
-
Identifiers
|
|
2902
|
+
Identifiers.ModuleWithProviders = {
|
|
2903
2903
|
name: 'ModuleWithProviders',
|
|
2904
|
-
moduleName: CORE
|
|
2904
|
+
moduleName: CORE,
|
|
2905
2905
|
};
|
|
2906
|
-
Identifiers
|
|
2907
|
-
Identifiers
|
|
2908
|
-
Identifiers
|
|
2909
|
-
Identifiers
|
|
2910
|
-
Identifiers
|
|
2911
|
-
Identifiers
|
|
2912
|
-
Identifiers
|
|
2913
|
-
Identifiers
|
|
2914
|
-
Identifiers
|
|
2915
|
-
Identifiers
|
|
2916
|
-
Identifiers
|
|
2917
|
-
Identifiers
|
|
2918
|
-
Identifiers
|
|
2919
|
-
Identifiers
|
|
2920
|
-
Identifiers
|
|
2921
|
-
Identifiers
|
|
2922
|
-
Identifiers
|
|
2923
|
-
Identifiers
|
|
2906
|
+
Identifiers.defineNgModule = { name: 'ɵɵdefineNgModule', moduleName: CORE };
|
|
2907
|
+
Identifiers.declareNgModule = { name: 'ɵɵngDeclareNgModule', moduleName: CORE };
|
|
2908
|
+
Identifiers.setNgModuleScope = { name: 'ɵɵsetNgModuleScope', moduleName: CORE };
|
|
2909
|
+
Identifiers.PipeDeclaration = { name: 'ɵɵPipeDeclaration', moduleName: CORE };
|
|
2910
|
+
Identifiers.definePipe = { name: 'ɵɵdefinePipe', moduleName: CORE };
|
|
2911
|
+
Identifiers.declarePipe = { name: 'ɵɵngDeclarePipe', moduleName: CORE };
|
|
2912
|
+
Identifiers.declareClassMetadata = { name: 'ɵɵngDeclareClassMetadata', moduleName: CORE };
|
|
2913
|
+
Identifiers.setClassMetadata = { name: 'ɵsetClassMetadata', moduleName: CORE };
|
|
2914
|
+
Identifiers.queryRefresh = { name: 'ɵɵqueryRefresh', moduleName: CORE };
|
|
2915
|
+
Identifiers.viewQuery = { name: 'ɵɵviewQuery', moduleName: CORE };
|
|
2916
|
+
Identifiers.loadQuery = { name: 'ɵɵloadQuery', moduleName: CORE };
|
|
2917
|
+
Identifiers.contentQuery = { name: 'ɵɵcontentQuery', moduleName: CORE };
|
|
2918
|
+
Identifiers.NgOnChangesFeature = { name: 'ɵɵNgOnChangesFeature', moduleName: CORE };
|
|
2919
|
+
Identifiers.InheritDefinitionFeature = { name: 'ɵɵInheritDefinitionFeature', moduleName: CORE };
|
|
2920
|
+
Identifiers.CopyDefinitionFeature = { name: 'ɵɵCopyDefinitionFeature', moduleName: CORE };
|
|
2921
|
+
Identifiers.ProvidersFeature = { name: 'ɵɵProvidersFeature', moduleName: CORE };
|
|
2922
|
+
Identifiers.listener = { name: 'ɵɵlistener', moduleName: CORE };
|
|
2923
|
+
Identifiers.getInheritedFactory = {
|
|
2924
2924
|
name: 'ɵɵgetInheritedFactory',
|
|
2925
|
-
moduleName: CORE
|
|
2925
|
+
moduleName: CORE,
|
|
2926
2926
|
};
|
|
2927
2927
|
// sanitization-related functions
|
|
2928
|
-
Identifiers
|
|
2929
|
-
Identifiers
|
|
2930
|
-
Identifiers
|
|
2931
|
-
Identifiers
|
|
2932
|
-
Identifiers
|
|
2933
|
-
Identifiers
|
|
2934
|
-
Identifiers
|
|
2935
|
-
Identifiers
|
|
2928
|
+
Identifiers.sanitizeHtml = { name: 'ɵɵsanitizeHtml', moduleName: CORE };
|
|
2929
|
+
Identifiers.sanitizeStyle = { name: 'ɵɵsanitizeStyle', moduleName: CORE };
|
|
2930
|
+
Identifiers.sanitizeResourceUrl = { name: 'ɵɵsanitizeResourceUrl', moduleName: CORE };
|
|
2931
|
+
Identifiers.sanitizeScript = { name: 'ɵɵsanitizeScript', moduleName: CORE };
|
|
2932
|
+
Identifiers.sanitizeUrl = { name: 'ɵɵsanitizeUrl', moduleName: CORE };
|
|
2933
|
+
Identifiers.sanitizeUrlOrResourceUrl = { name: 'ɵɵsanitizeUrlOrResourceUrl', moduleName: CORE };
|
|
2934
|
+
Identifiers.trustConstantHtml = { name: 'ɵɵtrustConstantHtml', moduleName: CORE };
|
|
2935
|
+
Identifiers.trustConstantResourceUrl = { name: 'ɵɵtrustConstantResourceUrl', moduleName: CORE };
|
|
2936
2936
|
|
|
2937
2937
|
/**
|
|
2938
2938
|
* @license
|
|
@@ -3674,7 +3674,7 @@ function convertFromMaybeForwardRefExpression({ expression, forwardRef }) {
|
|
|
3674
3674
|
* ```
|
|
3675
3675
|
*/
|
|
3676
3676
|
function generateForwardRef(expr) {
|
|
3677
|
-
return importExpr(Identifiers
|
|
3677
|
+
return importExpr(Identifiers.forwardRef).callFn([fn([], [new ReturnStatement(expr)])]);
|
|
3678
3678
|
}
|
|
3679
3679
|
|
|
3680
3680
|
var R3FactoryDelegateType;
|
|
@@ -3722,7 +3722,7 @@ function compileFactoryFunction(meta) {
|
|
|
3722
3722
|
const r = variable('r');
|
|
3723
3723
|
body.push(r.set(NULL_EXPR).toDeclStmt());
|
|
3724
3724
|
const ctorStmt = ctorExpr !== null ? r.set(ctorExpr).toStmt() :
|
|
3725
|
-
importExpr(Identifiers
|
|
3725
|
+
importExpr(Identifiers.invalidFactory).callFn([]).toStmt();
|
|
3726
3726
|
body.push(ifStmt(t, [ctorStmt], [r.set(nonCtorExpr).toStmt()]));
|
|
3727
3727
|
return r;
|
|
3728
3728
|
}
|
|
@@ -3745,11 +3745,11 @@ function compileFactoryFunction(meta) {
|
|
|
3745
3745
|
}
|
|
3746
3746
|
if (retExpr === null) {
|
|
3747
3747
|
// The expression cannot be formed so render an `ɵɵinvalidFactory()` call.
|
|
3748
|
-
body.push(importExpr(Identifiers
|
|
3748
|
+
body.push(importExpr(Identifiers.invalidFactory).callFn([]).toStmt());
|
|
3749
3749
|
}
|
|
3750
3750
|
else if (baseFactoryVar !== null) {
|
|
3751
3751
|
// This factory uses a base factory, so call `ɵɵgetInheritedFactory()` to compute it.
|
|
3752
|
-
const getInheritedFactoryCall = importExpr(Identifiers
|
|
3752
|
+
const getInheritedFactoryCall = importExpr(Identifiers.getInheritedFactory).callFn([meta.internalType]);
|
|
3753
3753
|
// Memoize the base factoryFn: `baseFactory || (baseFactory = ɵɵgetInheritedFactory(...))`
|
|
3754
3754
|
const baseFactory = new BinaryOperatorExpr(BinaryOperator.Or, baseFactoryVar, baseFactoryVar.set(getInheritedFactoryCall));
|
|
3755
3755
|
body.push(new ReturnStatement(baseFactory.callFn([typeForCtor])));
|
|
@@ -3774,7 +3774,7 @@ function compileFactoryFunction(meta) {
|
|
|
3774
3774
|
}
|
|
3775
3775
|
function createFactoryType(meta) {
|
|
3776
3776
|
const ctorDepsType = meta.deps !== null && meta.deps !== 'invalid' ? createCtorDepsType(meta.deps) : NONE_TYPE;
|
|
3777
|
-
return expressionType(importExpr(Identifiers
|
|
3777
|
+
return expressionType(importExpr(Identifiers.FactoryDeclaration, [typeWithParameters(meta.type.type, meta.typeArgumentCount), ctorDepsType]));
|
|
3778
3778
|
}
|
|
3779
3779
|
function injectDependencies(deps, target) {
|
|
3780
3780
|
return deps.map((dep, index) => compileInjectDependency(dep, target, index));
|
|
@@ -3782,7 +3782,7 @@ function injectDependencies(deps, target) {
|
|
|
3782
3782
|
function compileInjectDependency(dep, target, index) {
|
|
3783
3783
|
// Interpret the dependency according to its resolved type.
|
|
3784
3784
|
if (dep.token === null) {
|
|
3785
|
-
return importExpr(Identifiers
|
|
3785
|
+
return importExpr(Identifiers.invalidFactoryDep).callFn([literal(index)]);
|
|
3786
3786
|
}
|
|
3787
3787
|
else if (dep.attributeNameType === null) {
|
|
3788
3788
|
// Build up the injection flags according to the metadata.
|
|
@@ -3810,7 +3810,7 @@ function compileInjectDependency(dep, target, index) {
|
|
|
3810
3810
|
//
|
|
3811
3811
|
// The `dep.attributeTypeName` is only actually used (in `createCtorDepType()`) to generate
|
|
3812
3812
|
// typings.
|
|
3813
|
-
return importExpr(Identifiers
|
|
3813
|
+
return importExpr(Identifiers.injectAttribute).callFn([dep.token]);
|
|
3814
3814
|
}
|
|
3815
3815
|
}
|
|
3816
3816
|
function createCtorDepsType(deps) {
|
|
@@ -3862,11 +3862,11 @@ function getInjectFn(target) {
|
|
|
3862
3862
|
case FactoryTarget$1.Component:
|
|
3863
3863
|
case FactoryTarget$1.Directive:
|
|
3864
3864
|
case FactoryTarget$1.Pipe:
|
|
3865
|
-
return Identifiers
|
|
3865
|
+
return Identifiers.directiveInject;
|
|
3866
3866
|
case FactoryTarget$1.NgModule:
|
|
3867
3867
|
case FactoryTarget$1.Injectable:
|
|
3868
3868
|
default:
|
|
3869
|
-
return Identifiers
|
|
3869
|
+
return Identifiers.inject;
|
|
3870
3870
|
}
|
|
3871
3871
|
}
|
|
3872
3872
|
|
|
@@ -4962,7 +4962,7 @@ function getQueryPredicate(query, constantPool) {
|
|
|
4962
4962
|
case 2 /* Unwrapped */:
|
|
4963
4963
|
return query.predicate.expression;
|
|
4964
4964
|
case 1 /* Wrapped */:
|
|
4965
|
-
return importExpr(Identifiers
|
|
4965
|
+
return importExpr(Identifiers.resolveForwardRef).callFn([query.predicate.expression]);
|
|
4966
4966
|
}
|
|
4967
4967
|
}
|
|
4968
4968
|
}
|
|
@@ -5122,7 +5122,7 @@ function compileInjectable(meta, resolveForwardRefs) {
|
|
|
5122
5122
|
// useExisting is an `inject` call on the existing token.
|
|
5123
5123
|
result = compileFactoryFunction({
|
|
5124
5124
|
...factoryMeta,
|
|
5125
|
-
expression: importExpr(Identifiers
|
|
5125
|
+
expression: importExpr(Identifiers.inject).callFn([meta.useExisting.expression]),
|
|
5126
5126
|
});
|
|
5127
5127
|
}
|
|
5128
5128
|
else {
|
|
@@ -5139,7 +5139,7 @@ function compileInjectable(meta, resolveForwardRefs) {
|
|
|
5139
5139
|
if (meta.providedIn.expression.value !== null) {
|
|
5140
5140
|
injectableProps.set('providedIn', convertFromMaybeForwardRefExpression(meta.providedIn));
|
|
5141
5141
|
}
|
|
5142
|
-
const expression = importExpr(Identifiers
|
|
5142
|
+
const expression = importExpr(Identifiers.ɵɵdefineInjectable)
|
|
5143
5143
|
.callFn([injectableProps.toLiteralMap()], undefined, true);
|
|
5144
5144
|
return {
|
|
5145
5145
|
expression,
|
|
@@ -5148,7 +5148,7 @@ function compileInjectable(meta, resolveForwardRefs) {
|
|
|
5148
5148
|
};
|
|
5149
5149
|
}
|
|
5150
5150
|
function createInjectableType(meta) {
|
|
5151
|
-
return new ExpressionType(importExpr(Identifiers
|
|
5151
|
+
return new ExpressionType(importExpr(Identifiers.InjectableDeclaration, [typeWithParameters(meta.type.type, meta.typeArgumentCount)]));
|
|
5152
5152
|
}
|
|
5153
5153
|
function delegateToFactory(type, internalType, unwrapForwardRefs) {
|
|
5154
5154
|
if (type.node === internalType.node) {
|
|
@@ -5171,7 +5171,7 @@ function delegateToFactory(type, internalType, unwrapForwardRefs) {
|
|
|
5171
5171
|
// ```
|
|
5172
5172
|
// factory: function(t) { return core.resolveForwardRef(type).ɵfac(t); }
|
|
5173
5173
|
// ```
|
|
5174
|
-
const unwrappedType = importExpr(Identifiers
|
|
5174
|
+
const unwrappedType = importExpr(Identifiers.resolveForwardRef).callFn([internalType]);
|
|
5175
5175
|
return createFactoryFunction(unwrappedType);
|
|
5176
5176
|
}
|
|
5177
5177
|
function createFactoryFunction(type) {
|
|
@@ -5859,12 +5859,12 @@ function compileInjector(meta) {
|
|
|
5859
5859
|
if (meta.imports.length > 0) {
|
|
5860
5860
|
definitionMap.set('imports', literalArr(meta.imports));
|
|
5861
5861
|
}
|
|
5862
|
-
const expression = importExpr(Identifiers
|
|
5862
|
+
const expression = importExpr(Identifiers.defineInjector).callFn([definitionMap.toLiteralMap()], undefined, true);
|
|
5863
5863
|
const type = createInjectorType(meta);
|
|
5864
5864
|
return { expression, type, statements: [] };
|
|
5865
5865
|
}
|
|
5866
5866
|
function createInjectorType(meta) {
|
|
5867
|
-
return new ExpressionType(importExpr(Identifiers
|
|
5867
|
+
return new ExpressionType(importExpr(Identifiers.InjectorDeclaration, [new ExpressionType(meta.type.type)]));
|
|
5868
5868
|
}
|
|
5869
5869
|
|
|
5870
5870
|
/**
|
|
@@ -5941,7 +5941,7 @@ function compileNgModule(meta) {
|
|
|
5941
5941
|
if (id !== null) {
|
|
5942
5942
|
definitionMap.set('id', id);
|
|
5943
5943
|
}
|
|
5944
|
-
const expression = importExpr(Identifiers
|
|
5944
|
+
const expression = importExpr(Identifiers.defineNgModule).callFn([definitionMap.toLiteralMap()], undefined, true);
|
|
5945
5945
|
const type = createNgModuleType(meta);
|
|
5946
5946
|
return { expression, type, statements };
|
|
5947
5947
|
}
|
|
@@ -5970,10 +5970,10 @@ function compileNgModuleDeclarationExpression(meta) {
|
|
|
5970
5970
|
if (meta.id !== undefined) {
|
|
5971
5971
|
definitionMap.set('id', new WrappedNodeExpr(meta.id));
|
|
5972
5972
|
}
|
|
5973
|
-
return importExpr(Identifiers
|
|
5973
|
+
return importExpr(Identifiers.defineNgModule).callFn([definitionMap.toLiteralMap()]);
|
|
5974
5974
|
}
|
|
5975
5975
|
function createNgModuleType({ type: moduleType, declarations, imports, exports }) {
|
|
5976
|
-
return new ExpressionType(importExpr(Identifiers
|
|
5976
|
+
return new ExpressionType(importExpr(Identifiers.NgModuleDeclaration, [
|
|
5977
5977
|
new ExpressionType(moduleType.type), tupleTypeOf(declarations), tupleTypeOf(imports),
|
|
5978
5978
|
tupleTypeOf(exports)
|
|
5979
5979
|
]));
|
|
@@ -6001,7 +6001,7 @@ function generateSetNgModuleScopeCall(meta) {
|
|
|
6001
6001
|
}
|
|
6002
6002
|
// setNgModuleScope(...)
|
|
6003
6003
|
const fnCall = new InvokeFunctionExpr(
|
|
6004
|
-
/* fn */ importExpr(Identifiers
|
|
6004
|
+
/* fn */ importExpr(Identifiers.setNgModuleScope),
|
|
6005
6005
|
/* args */ [moduleType, scopeMap.toLiteralMap()]);
|
|
6006
6006
|
// (ngJitMode guard) && setNgModuleScope(...)
|
|
6007
6007
|
const guardedCall = jitOnlyGuardedExpression(fnCall);
|
|
@@ -6035,12 +6035,12 @@ function compilePipeFromMetadata(metadata) {
|
|
|
6035
6035
|
definitionMapValues.push({ key: 'type', value: metadata.type.value, quoted: false });
|
|
6036
6036
|
// e.g. `pure: true`
|
|
6037
6037
|
definitionMapValues.push({ key: 'pure', value: literal(metadata.pure), quoted: false });
|
|
6038
|
-
const expression = importExpr(Identifiers
|
|
6038
|
+
const expression = importExpr(Identifiers.definePipe).callFn([literalMap(definitionMapValues)], undefined, true);
|
|
6039
6039
|
const type = createPipeType(metadata);
|
|
6040
6040
|
return { expression, type, statements: [] };
|
|
6041
6041
|
}
|
|
6042
6042
|
function createPipeType(metadata) {
|
|
6043
|
-
return new ExpressionType(importExpr(Identifiers
|
|
6043
|
+
return new ExpressionType(importExpr(Identifiers.PipeDeclaration, [
|
|
6044
6044
|
typeWithParameters(metadata.type.type, metadata.typeArgumentCount),
|
|
6045
6045
|
new ExpressionType(new LiteralExpr(metadata.pipeName)),
|
|
6046
6046
|
]));
|
|
@@ -6089,33 +6089,6 @@ class ASTWithName extends AST {
|
|
|
6089
6089
|
this.nameSpan = nameSpan;
|
|
6090
6090
|
}
|
|
6091
6091
|
}
|
|
6092
|
-
/**
|
|
6093
|
-
* Represents a quoted expression of the form:
|
|
6094
|
-
*
|
|
6095
|
-
* quote = prefix `:` uninterpretedExpression
|
|
6096
|
-
* prefix = identifier
|
|
6097
|
-
* uninterpretedExpression = arbitrary string
|
|
6098
|
-
*
|
|
6099
|
-
* A quoted expression is meant to be pre-processed by an AST transformer that
|
|
6100
|
-
* converts it into another AST that no longer contains quoted expressions.
|
|
6101
|
-
* It is meant to allow third-party developers to extend Angular template
|
|
6102
|
-
* expression language. The `uninterpretedExpression` part of the quote is
|
|
6103
|
-
* therefore not interpreted by the Angular's own expression parser.
|
|
6104
|
-
*/
|
|
6105
|
-
class Quote extends AST {
|
|
6106
|
-
constructor(span, sourceSpan, prefix, uninterpretedExpression, location) {
|
|
6107
|
-
super(span, sourceSpan);
|
|
6108
|
-
this.prefix = prefix;
|
|
6109
|
-
this.uninterpretedExpression = uninterpretedExpression;
|
|
6110
|
-
this.location = location;
|
|
6111
|
-
}
|
|
6112
|
-
visit(visitor, context = null) {
|
|
6113
|
-
return visitor.visitQuote(this, context);
|
|
6114
|
-
}
|
|
6115
|
-
toString() {
|
|
6116
|
-
return 'Quote';
|
|
6117
|
-
}
|
|
6118
|
-
}
|
|
6119
6092
|
class EmptyExpr extends AST {
|
|
6120
6093
|
visit(visitor, context = null) {
|
|
6121
6094
|
// do nothing
|
|
@@ -6495,7 +6468,6 @@ class RecursiveAstVisitor {
|
|
|
6495
6468
|
this.visit(ast.receiver, context);
|
|
6496
6469
|
this.visitAll(ast.args, context);
|
|
6497
6470
|
}
|
|
6498
|
-
visitQuote(ast, context) { }
|
|
6499
6471
|
// This is not part of the AstVisitor interface, just a helper method
|
|
6500
6472
|
visitAll(asts, context) {
|
|
6501
6473
|
for (const ast of asts) {
|
|
@@ -6578,9 +6550,6 @@ class AstTransformer {
|
|
|
6578
6550
|
visitChain(ast, context) {
|
|
6579
6551
|
return new Chain(ast.span, ast.sourceSpan, this.visitAll(ast.expressions));
|
|
6580
6552
|
}
|
|
6581
|
-
visitQuote(ast, context) {
|
|
6582
|
-
return new Quote(ast.span, ast.sourceSpan, ast.prefix, ast.uninterpretedExpression, ast.location);
|
|
6583
|
-
}
|
|
6584
6553
|
visitSafeKeyedRead(ast, context) {
|
|
6585
6554
|
return new SafeKeyedRead(ast.span, ast.sourceSpan, ast.receiver.visit(this), ast.key.visit(this));
|
|
6586
6555
|
}
|
|
@@ -6743,9 +6712,6 @@ class AstMemoryEfficientTransformer {
|
|
|
6743
6712
|
}
|
|
6744
6713
|
return ast;
|
|
6745
6714
|
}
|
|
6746
|
-
visitQuote(ast, context) {
|
|
6747
|
-
return ast;
|
|
6748
|
-
}
|
|
6749
6715
|
visitSafeKeyedRead(ast, context) {
|
|
6750
6716
|
const obj = ast.receiver.visit(this);
|
|
6751
6717
|
const key = ast.key.visit(this);
|
|
@@ -6812,98 +6778,6 @@ class BoundElementProperty {
|
|
|
6812
6778
|
}
|
|
6813
6779
|
}
|
|
6814
6780
|
|
|
6815
|
-
/**
|
|
6816
|
-
* @license
|
|
6817
|
-
* Copyright Google LLC All Rights Reserved.
|
|
6818
|
-
*
|
|
6819
|
-
* Use of this source code is governed by an MIT-style license that can be
|
|
6820
|
-
* found in the LICENSE file at https://angular.io/license
|
|
6821
|
-
*/
|
|
6822
|
-
const CORE = '@angular/core';
|
|
6823
|
-
class Identifiers {
|
|
6824
|
-
}
|
|
6825
|
-
Identifiers.ANALYZE_FOR_ENTRY_COMPONENTS = {
|
|
6826
|
-
name: 'ANALYZE_FOR_ENTRY_COMPONENTS',
|
|
6827
|
-
moduleName: CORE,
|
|
6828
|
-
};
|
|
6829
|
-
Identifiers.ElementRef = { name: 'ElementRef', moduleName: CORE };
|
|
6830
|
-
Identifiers.NgModuleRef = { name: 'NgModuleRef', moduleName: CORE };
|
|
6831
|
-
Identifiers.ViewContainerRef = { name: 'ViewContainerRef', moduleName: CORE };
|
|
6832
|
-
Identifiers.ChangeDetectorRef = {
|
|
6833
|
-
name: 'ChangeDetectorRef',
|
|
6834
|
-
moduleName: CORE,
|
|
6835
|
-
};
|
|
6836
|
-
Identifiers.QueryList = { name: 'QueryList', moduleName: CORE };
|
|
6837
|
-
Identifiers.TemplateRef = { name: 'TemplateRef', moduleName: CORE };
|
|
6838
|
-
Identifiers.Renderer2 = { name: 'Renderer2', moduleName: CORE };
|
|
6839
|
-
Identifiers.CodegenComponentFactoryResolver = {
|
|
6840
|
-
name: 'ɵCodegenComponentFactoryResolver',
|
|
6841
|
-
moduleName: CORE,
|
|
6842
|
-
};
|
|
6843
|
-
Identifiers.ComponentFactoryResolver = {
|
|
6844
|
-
name: 'ComponentFactoryResolver',
|
|
6845
|
-
moduleName: CORE,
|
|
6846
|
-
};
|
|
6847
|
-
Identifiers.ComponentFactory = { name: 'ComponentFactory', moduleName: CORE };
|
|
6848
|
-
Identifiers.ComponentRef = { name: 'ComponentRef', moduleName: CORE };
|
|
6849
|
-
Identifiers.NgModuleFactory = { name: 'NgModuleFactory', moduleName: CORE };
|
|
6850
|
-
Identifiers.createModuleFactory = {
|
|
6851
|
-
name: 'ɵcmf',
|
|
6852
|
-
moduleName: CORE,
|
|
6853
|
-
};
|
|
6854
|
-
Identifiers.moduleDef = {
|
|
6855
|
-
name: 'ɵmod',
|
|
6856
|
-
moduleName: CORE,
|
|
6857
|
-
};
|
|
6858
|
-
Identifiers.moduleProviderDef = {
|
|
6859
|
-
name: 'ɵmpd',
|
|
6860
|
-
moduleName: CORE,
|
|
6861
|
-
};
|
|
6862
|
-
Identifiers.RegisterModuleFactoryFn = {
|
|
6863
|
-
name: 'ɵregisterModuleFactory',
|
|
6864
|
-
moduleName: CORE,
|
|
6865
|
-
};
|
|
6866
|
-
Identifiers.inject = { name: 'ɵɵinject', moduleName: CORE };
|
|
6867
|
-
Identifiers.directiveInject = { name: 'ɵɵdirectiveInject', moduleName: CORE };
|
|
6868
|
-
Identifiers.INJECTOR = { name: 'INJECTOR', moduleName: CORE };
|
|
6869
|
-
Identifiers.Injector = { name: 'Injector', moduleName: CORE };
|
|
6870
|
-
Identifiers.ViewEncapsulation = {
|
|
6871
|
-
name: 'ViewEncapsulation',
|
|
6872
|
-
moduleName: CORE,
|
|
6873
|
-
};
|
|
6874
|
-
Identifiers.ChangeDetectionStrategy = {
|
|
6875
|
-
name: 'ChangeDetectionStrategy',
|
|
6876
|
-
moduleName: CORE,
|
|
6877
|
-
};
|
|
6878
|
-
Identifiers.SecurityContext = {
|
|
6879
|
-
name: 'SecurityContext',
|
|
6880
|
-
moduleName: CORE,
|
|
6881
|
-
};
|
|
6882
|
-
Identifiers.LOCALE_ID = { name: 'LOCALE_ID', moduleName: CORE };
|
|
6883
|
-
Identifiers.TRANSLATIONS_FORMAT = {
|
|
6884
|
-
name: 'TRANSLATIONS_FORMAT',
|
|
6885
|
-
moduleName: CORE,
|
|
6886
|
-
};
|
|
6887
|
-
Identifiers.inlineInterpolate = {
|
|
6888
|
-
name: 'ɵinlineInterpolate',
|
|
6889
|
-
moduleName: CORE,
|
|
6890
|
-
};
|
|
6891
|
-
Identifiers.interpolate = { name: 'ɵinterpolate', moduleName: CORE };
|
|
6892
|
-
Identifiers.EMPTY_ARRAY = { name: 'ɵEMPTY_ARRAY', moduleName: CORE };
|
|
6893
|
-
Identifiers.EMPTY_MAP = { name: 'ɵEMPTY_MAP', moduleName: CORE };
|
|
6894
|
-
Identifiers.Renderer = { name: 'Renderer', moduleName: CORE };
|
|
6895
|
-
// type only
|
|
6896
|
-
Identifiers.RendererType2 = {
|
|
6897
|
-
name: 'RendererType2',
|
|
6898
|
-
moduleName: CORE,
|
|
6899
|
-
};
|
|
6900
|
-
// type only
|
|
6901
|
-
Identifiers.ViewDefinition = {
|
|
6902
|
-
name: 'ɵViewDefinition',
|
|
6903
|
-
moduleName: CORE,
|
|
6904
|
-
};
|
|
6905
|
-
Identifiers.createComponentFactory = { name: 'ɵccf', moduleName: CORE };
|
|
6906
|
-
|
|
6907
6781
|
/**
|
|
6908
6782
|
* @license
|
|
6909
6783
|
* Copyright Google LLC All Rights Reserved.
|
|
@@ -6918,7 +6792,7 @@ EventHandlerVars.event = variable('$event');
|
|
|
6918
6792
|
* Converts the given expression AST into an executable output AST, assuming the expression is
|
|
6919
6793
|
* used in an action binding (e.g. an event handler).
|
|
6920
6794
|
*/
|
|
6921
|
-
function convertActionBinding(localResolver, implicitReceiver, action, bindingId,
|
|
6795
|
+
function convertActionBinding(localResolver, implicitReceiver, action, bindingId, baseSourceSpan, implicitReceiverAccesses, globals) {
|
|
6922
6796
|
if (!localResolver) {
|
|
6923
6797
|
localResolver = new DefaultLocalResolver(globals);
|
|
6924
6798
|
}
|
|
@@ -6942,7 +6816,7 @@ function convertActionBinding(localResolver, implicitReceiver, action, bindingId
|
|
|
6942
6816
|
throw new Error(`Illegal State: Actions are not allowed to contain pipes. Pipe: ${name}`);
|
|
6943
6817
|
}
|
|
6944
6818
|
}, action);
|
|
6945
|
-
const visitor = new _AstToIrVisitor(localResolver, implicitReceiver, bindingId,
|
|
6819
|
+
const visitor = new _AstToIrVisitor(localResolver, implicitReceiver, bindingId, /* supportsInterpolation */ false, baseSourceSpan, implicitReceiverAccesses);
|
|
6946
6820
|
const actionStmts = [];
|
|
6947
6821
|
flattenStatements(actionWithoutBuiltins.visit(visitor, _Mode.Statement), actionStmts);
|
|
6948
6822
|
prependTemporaryDecls(visitor.temporaryCount, bindingId, actionStmts);
|
|
@@ -6973,11 +6847,11 @@ class ConvertPropertyBindingResult {
|
|
|
6973
6847
|
* is used in property binding. The expression has to be preprocessed via
|
|
6974
6848
|
* `convertPropertyBindingBuiltins`.
|
|
6975
6849
|
*/
|
|
6976
|
-
function convertPropertyBinding(localResolver, implicitReceiver, expressionWithoutBuiltins, bindingId
|
|
6850
|
+
function convertPropertyBinding(localResolver, implicitReceiver, expressionWithoutBuiltins, bindingId) {
|
|
6977
6851
|
if (!localResolver) {
|
|
6978
6852
|
localResolver = new DefaultLocalResolver();
|
|
6979
6853
|
}
|
|
6980
|
-
const visitor = new _AstToIrVisitor(localResolver, implicitReceiver, bindingId,
|
|
6854
|
+
const visitor = new _AstToIrVisitor(localResolver, implicitReceiver, bindingId, /* supportsInterpolation */ false);
|
|
6981
6855
|
const outputExpr = expressionWithoutBuiltins.visit(visitor, _Mode.Expression);
|
|
6982
6856
|
const stmts = getStatementsFromVisitor(visitor, bindingId);
|
|
6983
6857
|
if (visitor.usesImplicitReceiver) {
|
|
@@ -7002,28 +6876,13 @@ function convertPropertyBinding(localResolver, implicitReceiver, expressionWitho
|
|
|
7002
6876
|
* `o.importExpr(R3.propertyInterpolate).callFn(result)`
|
|
7003
6877
|
*/
|
|
7004
6878
|
function convertUpdateArguments(localResolver, contextVariableExpression, expressionWithArgumentsToExtract, bindingId) {
|
|
7005
|
-
const visitor = new _AstToIrVisitor(localResolver, contextVariableExpression, bindingId,
|
|
7006
|
-
const outputExpr =
|
|
6879
|
+
const visitor = new _AstToIrVisitor(localResolver, contextVariableExpression, bindingId, /* supportsInterpolation */ true);
|
|
6880
|
+
const outputExpr = visitor.visitInterpolation(expressionWithArgumentsToExtract, _Mode.Expression);
|
|
7007
6881
|
if (visitor.usesImplicitReceiver) {
|
|
7008
6882
|
localResolver.notifyImplicitReceiverUse();
|
|
7009
6883
|
}
|
|
7010
6884
|
const stmts = getStatementsFromVisitor(visitor, bindingId);
|
|
7011
|
-
|
|
7012
|
-
let args = outputExpr.args.slice(1);
|
|
7013
|
-
if (expressionWithArgumentsToExtract instanceof Interpolation) {
|
|
7014
|
-
// If we're dealing with an interpolation of 1 value with an empty prefix and suffix, reduce the
|
|
7015
|
-
// args returned to just the value, because we're going to pass it to a special instruction.
|
|
7016
|
-
const strings = expressionWithArgumentsToExtract.strings;
|
|
7017
|
-
if (args.length === 3 && strings[0] === '' && strings[1] === '') {
|
|
7018
|
-
// Single argument interpolate instructions.
|
|
7019
|
-
args = [args[1]];
|
|
7020
|
-
}
|
|
7021
|
-
else if (args.length >= 19) {
|
|
7022
|
-
// 19 or more arguments must be passed to the `interpolateV`-style instructions, which accept
|
|
7023
|
-
// an array of arguments
|
|
7024
|
-
args = [literalArr(args)];
|
|
7025
|
-
}
|
|
7026
|
-
}
|
|
6885
|
+
const args = outputExpr.args;
|
|
7027
6886
|
return { stmts, args };
|
|
7028
6887
|
}
|
|
7029
6888
|
function getStatementsFromVisitor(visitor, bindingId) {
|
|
@@ -7090,11 +6949,11 @@ class _BuiltinAstConverter extends AstTransformer {
|
|
|
7090
6949
|
}
|
|
7091
6950
|
}
|
|
7092
6951
|
class _AstToIrVisitor {
|
|
7093
|
-
constructor(_localResolver, _implicitReceiver, bindingId,
|
|
6952
|
+
constructor(_localResolver, _implicitReceiver, bindingId, supportsInterpolation, baseSourceSpan, implicitReceiverAccesses) {
|
|
7094
6953
|
this._localResolver = _localResolver;
|
|
7095
6954
|
this._implicitReceiver = _implicitReceiver;
|
|
7096
6955
|
this.bindingId = bindingId;
|
|
7097
|
-
this.
|
|
6956
|
+
this.supportsInterpolation = supportsInterpolation;
|
|
7098
6957
|
this.baseSourceSpan = baseSourceSpan;
|
|
7099
6958
|
this.implicitReceiverAccesses = implicitReceiverAccesses;
|
|
7100
6959
|
this._nodeMap = new Map();
|
|
@@ -7192,21 +7051,29 @@ class _AstToIrVisitor {
|
|
|
7192
7051
|
return this.visitImplicitReceiver(ast, mode);
|
|
7193
7052
|
}
|
|
7194
7053
|
visitInterpolation(ast, mode) {
|
|
7054
|
+
if (!this.supportsInterpolation) {
|
|
7055
|
+
throw new Error('Unexpected interpolation');
|
|
7056
|
+
}
|
|
7195
7057
|
ensureExpressionMode(mode, ast);
|
|
7196
|
-
|
|
7058
|
+
let args = [];
|
|
7197
7059
|
for (let i = 0; i < ast.strings.length - 1; i++) {
|
|
7198
7060
|
args.push(literal(ast.strings[i]));
|
|
7199
7061
|
args.push(this._visit(ast.expressions[i], _Mode.Expression));
|
|
7200
7062
|
}
|
|
7201
7063
|
args.push(literal(ast.strings[ast.strings.length - 1]));
|
|
7202
|
-
|
|
7203
|
-
|
|
7064
|
+
// If we're dealing with an interpolation of 1 value with an empty prefix and suffix, reduce the
|
|
7065
|
+
// args returned to just the value, because we're going to pass it to a special instruction.
|
|
7066
|
+
const strings = ast.strings;
|
|
7067
|
+
if (strings.length === 2 && strings[0] === '' && strings[1] === '') {
|
|
7068
|
+
// Single argument interpolate instructions.
|
|
7069
|
+
args = [args[1]];
|
|
7204
7070
|
}
|
|
7205
|
-
|
|
7206
|
-
|
|
7207
|
-
|
|
7208
|
-
|
|
7209
|
-
|
|
7071
|
+
else if (ast.expressions.length >= 9) {
|
|
7072
|
+
// 9 or more arguments must be passed to the `interpolateV`-style instructions, which accept
|
|
7073
|
+
// an array of arguments
|
|
7074
|
+
args = [literalArr(args)];
|
|
7075
|
+
}
|
|
7076
|
+
return new InterpolationExpression(args);
|
|
7210
7077
|
}
|
|
7211
7078
|
visitKeyedRead(ast, mode) {
|
|
7212
7079
|
const leftMostSafe = this.leftMostSafeNode(ast);
|
|
@@ -7317,10 +7184,6 @@ class _AstToIrVisitor {
|
|
|
7317
7184
|
visitAll(asts, mode) {
|
|
7318
7185
|
return asts.map(ast => this._visit(ast, mode));
|
|
7319
7186
|
}
|
|
7320
|
-
visitQuote(ast, mode) {
|
|
7321
|
-
throw new Error(`Quotes are not supported for evaluation!
|
|
7322
|
-
Statement: ${ast.uninterpretedExpression} located at ${ast.location}`);
|
|
7323
|
-
}
|
|
7324
7187
|
visitCall(ast, mode) {
|
|
7325
7188
|
const leftMostSafe = this.leftMostSafeNode(ast);
|
|
7326
7189
|
if (leftMostSafe) {
|
|
@@ -7506,9 +7369,6 @@ class _AstToIrVisitor {
|
|
|
7506
7369
|
visitPropertyWrite(ast) {
|
|
7507
7370
|
return null;
|
|
7508
7371
|
},
|
|
7509
|
-
visitQuote(ast) {
|
|
7510
|
-
return null;
|
|
7511
|
-
},
|
|
7512
7372
|
visitSafePropertyRead(ast) {
|
|
7513
7373
|
return visit(this, ast.receiver) || ast;
|
|
7514
7374
|
},
|
|
@@ -7585,9 +7445,6 @@ class _AstToIrVisitor {
|
|
|
7585
7445
|
visitPropertyWrite(ast) {
|
|
7586
7446
|
return false;
|
|
7587
7447
|
},
|
|
7588
|
-
visitQuote(ast) {
|
|
7589
|
-
return false;
|
|
7590
|
-
},
|
|
7591
7448
|
visitSafePropertyRead(ast) {
|
|
7592
7449
|
return false;
|
|
7593
7450
|
},
|
|
@@ -7644,6 +7501,18 @@ function flattenStatements(arg, output) {
|
|
|
7644
7501
|
output.push(arg);
|
|
7645
7502
|
}
|
|
7646
7503
|
}
|
|
7504
|
+
function unsupported() {
|
|
7505
|
+
throw new Error('Unsupported operation');
|
|
7506
|
+
}
|
|
7507
|
+
class InterpolationExpression extends Expression {
|
|
7508
|
+
constructor(args) {
|
|
7509
|
+
super(null, null);
|
|
7510
|
+
this.args = args;
|
|
7511
|
+
this.isConstant = unsupported;
|
|
7512
|
+
this.isEquivalent = unsupported;
|
|
7513
|
+
this.visitExpression = unsupported;
|
|
7514
|
+
}
|
|
7515
|
+
}
|
|
7647
7516
|
class DefaultLocalResolver {
|
|
7648
7517
|
constructor(globals) {
|
|
7649
7518
|
this.globals = globals;
|
|
@@ -8811,7 +8680,7 @@ class StylingBuilder {
|
|
|
8811
8680
|
getStyleMapInterpolationExpression(mapValue);
|
|
8812
8681
|
}
|
|
8813
8682
|
else {
|
|
8814
|
-
reference = isClassBased ? Identifiers
|
|
8683
|
+
reference = isClassBased ? Identifiers.classMap : Identifiers.styleMap;
|
|
8815
8684
|
}
|
|
8816
8685
|
return {
|
|
8817
8686
|
reference,
|
|
@@ -8885,13 +8754,13 @@ class StylingBuilder {
|
|
|
8885
8754
|
}
|
|
8886
8755
|
_buildClassInputs(valueConverter) {
|
|
8887
8756
|
if (this._singleClassInputs) {
|
|
8888
|
-
return this._buildSingleInputs(Identifiers
|
|
8757
|
+
return this._buildSingleInputs(Identifiers.classProp, this._singleClassInputs, valueConverter, null, true);
|
|
8889
8758
|
}
|
|
8890
8759
|
return [];
|
|
8891
8760
|
}
|
|
8892
8761
|
_buildStyleInputs(valueConverter) {
|
|
8893
8762
|
if (this._singleStyleInputs) {
|
|
8894
|
-
return this._buildSingleInputs(Identifiers
|
|
8763
|
+
return this._buildSingleInputs(Identifiers.styleProp, this._singleStyleInputs, valueConverter, getStylePropInterpolationExpression, false);
|
|
8895
8764
|
}
|
|
8896
8765
|
return [];
|
|
8897
8766
|
}
|
|
@@ -8944,25 +8813,25 @@ function parseProperty(name) {
|
|
|
8944
8813
|
function getClassMapInterpolationExpression(interpolation) {
|
|
8945
8814
|
switch (getInterpolationArgsLength(interpolation)) {
|
|
8946
8815
|
case 1:
|
|
8947
|
-
return Identifiers
|
|
8816
|
+
return Identifiers.classMap;
|
|
8948
8817
|
case 3:
|
|
8949
|
-
return Identifiers
|
|
8818
|
+
return Identifiers.classMapInterpolate1;
|
|
8950
8819
|
case 5:
|
|
8951
|
-
return Identifiers
|
|
8820
|
+
return Identifiers.classMapInterpolate2;
|
|
8952
8821
|
case 7:
|
|
8953
|
-
return Identifiers
|
|
8822
|
+
return Identifiers.classMapInterpolate3;
|
|
8954
8823
|
case 9:
|
|
8955
|
-
return Identifiers
|
|
8824
|
+
return Identifiers.classMapInterpolate4;
|
|
8956
8825
|
case 11:
|
|
8957
|
-
return Identifiers
|
|
8826
|
+
return Identifiers.classMapInterpolate5;
|
|
8958
8827
|
case 13:
|
|
8959
|
-
return Identifiers
|
|
8828
|
+
return Identifiers.classMapInterpolate6;
|
|
8960
8829
|
case 15:
|
|
8961
|
-
return Identifiers
|
|
8830
|
+
return Identifiers.classMapInterpolate7;
|
|
8962
8831
|
case 17:
|
|
8963
|
-
return Identifiers
|
|
8832
|
+
return Identifiers.classMapInterpolate8;
|
|
8964
8833
|
default:
|
|
8965
|
-
return Identifiers
|
|
8834
|
+
return Identifiers.classMapInterpolateV;
|
|
8966
8835
|
}
|
|
8967
8836
|
}
|
|
8968
8837
|
/**
|
|
@@ -8972,25 +8841,25 @@ function getClassMapInterpolationExpression(interpolation) {
|
|
|
8972
8841
|
function getStyleMapInterpolationExpression(interpolation) {
|
|
8973
8842
|
switch (getInterpolationArgsLength(interpolation)) {
|
|
8974
8843
|
case 1:
|
|
8975
|
-
return Identifiers
|
|
8844
|
+
return Identifiers.styleMap;
|
|
8976
8845
|
case 3:
|
|
8977
|
-
return Identifiers
|
|
8846
|
+
return Identifiers.styleMapInterpolate1;
|
|
8978
8847
|
case 5:
|
|
8979
|
-
return Identifiers
|
|
8848
|
+
return Identifiers.styleMapInterpolate2;
|
|
8980
8849
|
case 7:
|
|
8981
|
-
return Identifiers
|
|
8850
|
+
return Identifiers.styleMapInterpolate3;
|
|
8982
8851
|
case 9:
|
|
8983
|
-
return Identifiers
|
|
8852
|
+
return Identifiers.styleMapInterpolate4;
|
|
8984
8853
|
case 11:
|
|
8985
|
-
return Identifiers
|
|
8854
|
+
return Identifiers.styleMapInterpolate5;
|
|
8986
8855
|
case 13:
|
|
8987
|
-
return Identifiers
|
|
8856
|
+
return Identifiers.styleMapInterpolate6;
|
|
8988
8857
|
case 15:
|
|
8989
|
-
return Identifiers
|
|
8858
|
+
return Identifiers.styleMapInterpolate7;
|
|
8990
8859
|
case 17:
|
|
8991
|
-
return Identifiers
|
|
8860
|
+
return Identifiers.styleMapInterpolate8;
|
|
8992
8861
|
default:
|
|
8993
|
-
return Identifiers
|
|
8862
|
+
return Identifiers.styleMapInterpolateV;
|
|
8994
8863
|
}
|
|
8995
8864
|
}
|
|
8996
8865
|
/**
|
|
@@ -9000,25 +8869,25 @@ function getStyleMapInterpolationExpression(interpolation) {
|
|
|
9000
8869
|
function getStylePropInterpolationExpression(interpolation) {
|
|
9001
8870
|
switch (getInterpolationArgsLength(interpolation)) {
|
|
9002
8871
|
case 1:
|
|
9003
|
-
return Identifiers
|
|
8872
|
+
return Identifiers.styleProp;
|
|
9004
8873
|
case 3:
|
|
9005
|
-
return Identifiers
|
|
8874
|
+
return Identifiers.stylePropInterpolate1;
|
|
9006
8875
|
case 5:
|
|
9007
|
-
return Identifiers
|
|
8876
|
+
return Identifiers.stylePropInterpolate2;
|
|
9008
8877
|
case 7:
|
|
9009
|
-
return Identifiers
|
|
8878
|
+
return Identifiers.stylePropInterpolate3;
|
|
9010
8879
|
case 9:
|
|
9011
|
-
return Identifiers
|
|
8880
|
+
return Identifiers.stylePropInterpolate4;
|
|
9012
8881
|
case 11:
|
|
9013
|
-
return Identifiers
|
|
8882
|
+
return Identifiers.stylePropInterpolate5;
|
|
9014
8883
|
case 13:
|
|
9015
|
-
return Identifiers
|
|
8884
|
+
return Identifiers.stylePropInterpolate6;
|
|
9016
8885
|
case 15:
|
|
9017
|
-
return Identifiers
|
|
8886
|
+
return Identifiers.stylePropInterpolate7;
|
|
9018
8887
|
case 17:
|
|
9019
|
-
return Identifiers
|
|
8888
|
+
return Identifiers.stylePropInterpolate8;
|
|
9020
8889
|
default:
|
|
9021
|
-
return Identifiers
|
|
8890
|
+
return Identifiers.stylePropInterpolateV;
|
|
9022
8891
|
}
|
|
9023
8892
|
}
|
|
9024
8893
|
/**
|
|
@@ -9479,11 +9348,15 @@ class Parser$1 {
|
|
|
9479
9348
|
this._lexer = _lexer;
|
|
9480
9349
|
this.errors = [];
|
|
9481
9350
|
}
|
|
9482
|
-
parseAction(input, location, absoluteOffset, interpolationConfig = DEFAULT_INTERPOLATION_CONFIG) {
|
|
9351
|
+
parseAction(input, isAssignmentEvent, location, absoluteOffset, interpolationConfig = DEFAULT_INTERPOLATION_CONFIG) {
|
|
9483
9352
|
this._checkNoInterpolation(input, location, interpolationConfig);
|
|
9484
9353
|
const sourceToLex = this._stripComments(input);
|
|
9485
9354
|
const tokens = this._lexer.tokenize(sourceToLex);
|
|
9486
|
-
|
|
9355
|
+
let flags = 1 /* Action */;
|
|
9356
|
+
if (isAssignmentEvent) {
|
|
9357
|
+
flags |= 2 /* AssignmentEvent */;
|
|
9358
|
+
}
|
|
9359
|
+
const ast = new _ParseAST(input, location, absoluteOffset, tokens, flags, this.errors, 0).parseChain();
|
|
9487
9360
|
return new ASTWithSource(ast, input, location, absoluteOffset, this.errors);
|
|
9488
9361
|
}
|
|
9489
9362
|
parseBinding(input, location, absoluteOffset, interpolationConfig = DEFAULT_INTERPOLATION_CONFIG) {
|
|
@@ -9507,31 +9380,12 @@ class Parser$1 {
|
|
|
9507
9380
|
this.errors.push(new ParserError(message, input, errLocation, ctxLocation));
|
|
9508
9381
|
}
|
|
9509
9382
|
_parseBindingAst(input, location, absoluteOffset, interpolationConfig) {
|
|
9510
|
-
// Quotes expressions use 3rd-party expression language. We don't want to use
|
|
9511
|
-
// our lexer or parser for that, so we check for that ahead of time.
|
|
9512
|
-
const quote = this._parseQuote(input, location, absoluteOffset);
|
|
9513
|
-
if (quote != null) {
|
|
9514
|
-
return quote;
|
|
9515
|
-
}
|
|
9516
9383
|
this._checkNoInterpolation(input, location, interpolationConfig);
|
|
9517
9384
|
const sourceToLex = this._stripComments(input);
|
|
9518
9385
|
const tokens = this._lexer.tokenize(sourceToLex);
|
|
9519
|
-
return new _ParseAST(input, location, absoluteOffset, tokens,
|
|
9386
|
+
return new _ParseAST(input, location, absoluteOffset, tokens, 0 /* None */, this.errors, 0)
|
|
9520
9387
|
.parseChain();
|
|
9521
9388
|
}
|
|
9522
|
-
_parseQuote(input, location, absoluteOffset) {
|
|
9523
|
-
if (input == null)
|
|
9524
|
-
return null;
|
|
9525
|
-
const prefixSeparatorIndex = input.indexOf(':');
|
|
9526
|
-
if (prefixSeparatorIndex == -1)
|
|
9527
|
-
return null;
|
|
9528
|
-
const prefix = input.substring(0, prefixSeparatorIndex).trim();
|
|
9529
|
-
if (!isIdentifier(prefix))
|
|
9530
|
-
return null;
|
|
9531
|
-
const uninterpretedExpression = input.substring(prefixSeparatorIndex + 1);
|
|
9532
|
-
const span = new ParseSpan(0, input.length);
|
|
9533
|
-
return new Quote(span, span.toAbsolute(absoluteOffset), prefix, uninterpretedExpression, location);
|
|
9534
|
-
}
|
|
9535
9389
|
/**
|
|
9536
9390
|
* Parse microsyntax template expression and return a list of bindings or
|
|
9537
9391
|
* parsing errors in case the given expression is invalid.
|
|
@@ -9560,7 +9414,7 @@ class Parser$1 {
|
|
|
9560
9414
|
*/
|
|
9561
9415
|
parseTemplateBindings(templateKey, templateValue, templateUrl, absoluteKeyOffset, absoluteValueOffset) {
|
|
9562
9416
|
const tokens = this._lexer.tokenize(templateValue);
|
|
9563
|
-
const parser = new _ParseAST(templateValue, templateUrl, absoluteValueOffset, tokens,
|
|
9417
|
+
const parser = new _ParseAST(templateValue, templateUrl, absoluteValueOffset, tokens, 0 /* None */, this.errors, 0 /* relative offset */);
|
|
9564
9418
|
return parser.parseTemplateBindings({
|
|
9565
9419
|
source: templateKey,
|
|
9566
9420
|
span: new AbsoluteSourceSpan(absoluteKeyOffset, absoluteKeyOffset + templateKey.length),
|
|
@@ -9575,7 +9429,7 @@ class Parser$1 {
|
|
|
9575
9429
|
const expressionText = expressions[i].text;
|
|
9576
9430
|
const sourceToLex = this._stripComments(expressionText);
|
|
9577
9431
|
const tokens = this._lexer.tokenize(sourceToLex);
|
|
9578
|
-
const ast = new _ParseAST(input, location, absoluteOffset, tokens,
|
|
9432
|
+
const ast = new _ParseAST(input, location, absoluteOffset, tokens, 0 /* None */, this.errors, offsets[i])
|
|
9579
9433
|
.parseChain();
|
|
9580
9434
|
expressionNodes.push(ast);
|
|
9581
9435
|
}
|
|
@@ -9589,8 +9443,7 @@ class Parser$1 {
|
|
|
9589
9443
|
parseInterpolationExpression(expression, location, absoluteOffset) {
|
|
9590
9444
|
const sourceToLex = this._stripComments(expression);
|
|
9591
9445
|
const tokens = this._lexer.tokenize(sourceToLex);
|
|
9592
|
-
const ast = new _ParseAST(expression, location, absoluteOffset, tokens,
|
|
9593
|
-
/* parseAction */ false, this.errors, 0)
|
|
9446
|
+
const ast = new _ParseAST(expression, location, absoluteOffset, tokens, 0 /* None */, this.errors, 0)
|
|
9594
9447
|
.parseChain();
|
|
9595
9448
|
const strings = ['', '']; // The prefix and suffix strings are both empty
|
|
9596
9449
|
return this.createInterpolationAst(strings, [ast], expression, location, absoluteOffset);
|
|
@@ -9761,12 +9614,12 @@ var ParseContextFlags;
|
|
|
9761
9614
|
ParseContextFlags[ParseContextFlags["Writable"] = 1] = "Writable";
|
|
9762
9615
|
})(ParseContextFlags || (ParseContextFlags = {}));
|
|
9763
9616
|
class _ParseAST {
|
|
9764
|
-
constructor(input, location, absoluteOffset, tokens,
|
|
9617
|
+
constructor(input, location, absoluteOffset, tokens, parseFlags, errors, offset) {
|
|
9765
9618
|
this.input = input;
|
|
9766
9619
|
this.location = location;
|
|
9767
9620
|
this.absoluteOffset = absoluteOffset;
|
|
9768
9621
|
this.tokens = tokens;
|
|
9769
|
-
this.
|
|
9622
|
+
this.parseFlags = parseFlags;
|
|
9770
9623
|
this.errors = errors;
|
|
9771
9624
|
this.offset = offset;
|
|
9772
9625
|
this.rparensExpected = 0;
|
|
@@ -9943,7 +9796,7 @@ class _ParseAST {
|
|
|
9943
9796
|
const expr = this.parsePipe();
|
|
9944
9797
|
exprs.push(expr);
|
|
9945
9798
|
if (this.consumeOptionalCharacter($SEMICOLON)) {
|
|
9946
|
-
if (!this.
|
|
9799
|
+
if (!(this.parseFlags & 1 /* Action */)) {
|
|
9947
9800
|
this.error('Binding expression cannot contain chained expression');
|
|
9948
9801
|
}
|
|
9949
9802
|
while (this.consumeOptionalCharacter($SEMICOLON)) {
|
|
@@ -9967,7 +9820,7 @@ class _ParseAST {
|
|
|
9967
9820
|
const start = this.inputIndex;
|
|
9968
9821
|
let result = this.parseExpression();
|
|
9969
9822
|
if (this.consumeOptionalOperator('|')) {
|
|
9970
|
-
if (this.
|
|
9823
|
+
if (this.parseFlags & 1 /* Action */) {
|
|
9971
9824
|
this.error('Cannot have a pipe in an action expression');
|
|
9972
9825
|
}
|
|
9973
9826
|
do {
|
|
@@ -10309,7 +10162,7 @@ class _ParseAST {
|
|
|
10309
10162
|
const nameSpan = this.sourceSpan(nameStart);
|
|
10310
10163
|
let receiver;
|
|
10311
10164
|
if (isSafe) {
|
|
10312
|
-
if (this.
|
|
10165
|
+
if (this.consumeOptionalAssignment()) {
|
|
10313
10166
|
this.error('The \'?.\' operator cannot be used in the assignment');
|
|
10314
10167
|
receiver = new EmptyExpr(this.span(start), this.sourceSpan(start));
|
|
10315
10168
|
}
|
|
@@ -10318,8 +10171,8 @@ class _ParseAST {
|
|
|
10318
10171
|
}
|
|
10319
10172
|
}
|
|
10320
10173
|
else {
|
|
10321
|
-
if (this.
|
|
10322
|
-
if (!this.
|
|
10174
|
+
if (this.consumeOptionalAssignment()) {
|
|
10175
|
+
if (!(this.parseFlags & 1 /* Action */)) {
|
|
10323
10176
|
this.error('Bindings cannot contain assignments');
|
|
10324
10177
|
return new EmptyExpr(this.span(start), this.sourceSpan(start));
|
|
10325
10178
|
}
|
|
@@ -10345,6 +10198,22 @@ class _ParseAST {
|
|
|
10345
10198
|
return isSafe ? new SafeCall(span, sourceSpan, receiver, args, argumentSpan) :
|
|
10346
10199
|
new Call(span, sourceSpan, receiver, args, argumentSpan);
|
|
10347
10200
|
}
|
|
10201
|
+
consumeOptionalAssignment() {
|
|
10202
|
+
// When parsing assignment events (originating from two-way-binding aka banana-in-a-box syntax),
|
|
10203
|
+
// it is valid for the primary expression to be terminated by the non-null operator. This
|
|
10204
|
+
// primary expression is substituted as LHS of the assignment operator to achieve
|
|
10205
|
+
// two-way-binding, such that the LHS could be the non-null operator. The grammar doesn't
|
|
10206
|
+
// naturally allow for this syntax, so assignment events are parsed specially.
|
|
10207
|
+
if ((this.parseFlags & 2 /* AssignmentEvent */) && this.next.isOperator('!') &&
|
|
10208
|
+
this.peek(1).isOperator('=')) {
|
|
10209
|
+
// First skip over the ! operator.
|
|
10210
|
+
this.advance();
|
|
10211
|
+
// Then skip over the = operator, to fully consume the optional assignment operator.
|
|
10212
|
+
this.advance();
|
|
10213
|
+
return true;
|
|
10214
|
+
}
|
|
10215
|
+
return this.consumeOptionalOperator('=');
|
|
10216
|
+
}
|
|
10348
10217
|
parseCallArguments() {
|
|
10349
10218
|
if (this.next.isCharacter($RPAREN))
|
|
10350
10219
|
return [];
|
|
@@ -15034,7 +14903,7 @@ class BindingParser {
|
|
|
15034
14903
|
// Regardless, neither of these values are used in Ivy but are only here to satisfy the
|
|
15035
14904
|
// function signature. This should likely be refactored in the future so that `sourceSpan`
|
|
15036
14905
|
// isn't being used inaccurately.
|
|
15037
|
-
this.parseEvent(propName, expression, sourceSpan, sourceSpan, [], targetEvents, sourceSpan);
|
|
14906
|
+
this.parseEvent(propName, expression, /* isAssignmentEvent */ false, sourceSpan, sourceSpan, [], targetEvents, sourceSpan);
|
|
15038
14907
|
}
|
|
15039
14908
|
else {
|
|
15040
14909
|
this._reportError(`Value of the host listener "${propName}" needs to be a string representing an expression but got "${expression}" (${typeof expression})`, sourceSpan);
|
|
@@ -15271,7 +15140,7 @@ class BindingParser {
|
|
|
15271
15140
|
return new BoundElementProperty(boundPropertyName, bindingType, securityContexts[0], boundProp.expression, unit, boundProp.sourceSpan, boundProp.keySpan, boundProp.valueSpan);
|
|
15272
15141
|
}
|
|
15273
15142
|
// TODO: keySpan should be required but was made optional to avoid changing VE parser.
|
|
15274
|
-
parseEvent(name, expression, sourceSpan, handlerSpan, targetMatchableAttrs, targetEvents, keySpan) {
|
|
15143
|
+
parseEvent(name, expression, isAssignmentEvent, sourceSpan, handlerSpan, targetMatchableAttrs, targetEvents, keySpan) {
|
|
15275
15144
|
if (name.length === 0) {
|
|
15276
15145
|
this._reportError(`Event name is missing in binding`, sourceSpan);
|
|
15277
15146
|
}
|
|
@@ -15280,21 +15149,21 @@ class BindingParser {
|
|
|
15280
15149
|
if (keySpan !== undefined) {
|
|
15281
15150
|
keySpan = moveParseSourceSpan(keySpan, new AbsoluteSourceSpan(keySpan.start.offset + 1, keySpan.end.offset));
|
|
15282
15151
|
}
|
|
15283
|
-
this._parseAnimationEvent(name, expression, sourceSpan, handlerSpan, targetEvents, keySpan);
|
|
15152
|
+
this._parseAnimationEvent(name, expression, isAssignmentEvent, sourceSpan, handlerSpan, targetEvents, keySpan);
|
|
15284
15153
|
}
|
|
15285
15154
|
else {
|
|
15286
|
-
this._parseRegularEvent(name, expression, sourceSpan, handlerSpan, targetMatchableAttrs, targetEvents, keySpan);
|
|
15155
|
+
this._parseRegularEvent(name, expression, isAssignmentEvent, sourceSpan, handlerSpan, targetMatchableAttrs, targetEvents, keySpan);
|
|
15287
15156
|
}
|
|
15288
15157
|
}
|
|
15289
15158
|
calcPossibleSecurityContexts(selector, propName, isAttribute) {
|
|
15290
15159
|
const prop = this._schemaRegistry.getMappedPropName(propName);
|
|
15291
15160
|
return calcPossibleSecurityContexts(this._schemaRegistry, selector, prop, isAttribute);
|
|
15292
15161
|
}
|
|
15293
|
-
_parseAnimationEvent(name, expression, sourceSpan, handlerSpan, targetEvents, keySpan) {
|
|
15162
|
+
_parseAnimationEvent(name, expression, isAssignmentEvent, sourceSpan, handlerSpan, targetEvents, keySpan) {
|
|
15294
15163
|
const matches = splitAtPeriod(name, [name, '']);
|
|
15295
15164
|
const eventName = matches[0];
|
|
15296
15165
|
const phase = matches[1].toLowerCase();
|
|
15297
|
-
const ast = this._parseAction(expression, handlerSpan);
|
|
15166
|
+
const ast = this._parseAction(expression, isAssignmentEvent, handlerSpan);
|
|
15298
15167
|
targetEvents.push(new ParsedEvent(eventName, phase, 1 /* Animation */, ast, sourceSpan, handlerSpan, keySpan));
|
|
15299
15168
|
if (eventName.length === 0) {
|
|
15300
15169
|
this._reportError(`Animation event name is missing in binding`, sourceSpan);
|
|
@@ -15308,20 +15177,20 @@ class BindingParser {
|
|
|
15308
15177
|
this._reportError(`The animation trigger output event (@${eventName}) is missing its phase value name (start or done are currently supported)`, sourceSpan);
|
|
15309
15178
|
}
|
|
15310
15179
|
}
|
|
15311
|
-
_parseRegularEvent(name, expression, sourceSpan, handlerSpan, targetMatchableAttrs, targetEvents, keySpan) {
|
|
15180
|
+
_parseRegularEvent(name, expression, isAssignmentEvent, sourceSpan, handlerSpan, targetMatchableAttrs, targetEvents, keySpan) {
|
|
15312
15181
|
// long format: 'target: eventName'
|
|
15313
15182
|
const [target, eventName] = splitAtColon(name, [null, name]);
|
|
15314
|
-
const ast = this._parseAction(expression, handlerSpan);
|
|
15183
|
+
const ast = this._parseAction(expression, isAssignmentEvent, handlerSpan);
|
|
15315
15184
|
targetMatchableAttrs.push([name, ast.source]);
|
|
15316
15185
|
targetEvents.push(new ParsedEvent(eventName, target, 0 /* Regular */, ast, sourceSpan, handlerSpan, keySpan));
|
|
15317
15186
|
// Don't detect directives for event names for now,
|
|
15318
15187
|
// so don't add the event name to the matchableAttrs
|
|
15319
15188
|
}
|
|
15320
|
-
_parseAction(value, sourceSpan) {
|
|
15189
|
+
_parseAction(value, isAssignmentEvent, sourceSpan) {
|
|
15321
15190
|
const sourceInfo = (sourceSpan && sourceSpan.start || '(unknown').toString();
|
|
15322
15191
|
const absoluteOffset = (sourceSpan && sourceSpan.start) ? sourceSpan.start.offset : 0;
|
|
15323
15192
|
try {
|
|
15324
|
-
const ast = this._exprParser.parseAction(value, sourceInfo, absoluteOffset, this._interpolationConfig);
|
|
15193
|
+
const ast = this._exprParser.parseAction(value, isAssignmentEvent, sourceInfo, absoluteOffset, this._interpolationConfig);
|
|
15325
15194
|
if (ast) {
|
|
15326
15195
|
this._reportExpressionParserErrors(ast.errors, sourceSpan);
|
|
15327
15196
|
}
|
|
@@ -15783,7 +15652,7 @@ class HtmlAstToIvyAst {
|
|
|
15783
15652
|
const events = [];
|
|
15784
15653
|
const identifier = bindParts[IDENT_KW_IDX];
|
|
15785
15654
|
const keySpan = createKeySpan(srcSpan, bindParts[KW_ON_IDX], identifier);
|
|
15786
|
-
this.bindingParser.parseEvent(identifier, value, srcSpan, attribute.valueSpan || srcSpan, matchableAttributes, events, keySpan);
|
|
15655
|
+
this.bindingParser.parseEvent(identifier, value, /* isAssignmentEvent */ false, srcSpan, attribute.valueSpan || srcSpan, matchableAttributes, events, keySpan);
|
|
15787
15656
|
addEvents(events, boundEvents);
|
|
15788
15657
|
}
|
|
15789
15658
|
else if (bindParts[KW_BINDON_IDX]) {
|
|
@@ -15827,7 +15696,7 @@ class HtmlAstToIvyAst {
|
|
|
15827
15696
|
}
|
|
15828
15697
|
else {
|
|
15829
15698
|
const events = [];
|
|
15830
|
-
this.bindingParser.parseEvent(identifier, value, srcSpan, attribute.valueSpan || srcSpan, matchableAttributes, events, keySpan);
|
|
15699
|
+
this.bindingParser.parseEvent(identifier, value, /* isAssignmentEvent */ false, srcSpan, attribute.valueSpan || srcSpan, matchableAttributes, events, keySpan);
|
|
15831
15700
|
addEvents(events, boundEvents);
|
|
15832
15701
|
}
|
|
15833
15702
|
return true;
|
|
@@ -15865,7 +15734,7 @@ class HtmlAstToIvyAst {
|
|
|
15865
15734
|
}
|
|
15866
15735
|
parseAssignmentEvent(name, expression, sourceSpan, valueSpan, targetMatchableAttrs, boundEvents, keySpan) {
|
|
15867
15736
|
const events = [];
|
|
15868
|
-
this.bindingParser.parseEvent(`${name}Change`, `${expression}=$event`, sourceSpan, valueSpan || sourceSpan, targetMatchableAttrs, events, keySpan);
|
|
15737
|
+
this.bindingParser.parseEvent(`${name}Change`, `${expression} =$event`, /* isAssignmentEvent */ true, sourceSpan, valueSpan || sourceSpan, targetMatchableAttrs, events, keySpan);
|
|
15869
15738
|
addEvents(events, boundEvents);
|
|
15870
15739
|
}
|
|
15871
15740
|
reportError(message, sourceSpan, level = ParseErrorLevel.ERROR) {
|
|
@@ -16653,7 +16522,8 @@ class I18nMetaVisitor {
|
|
|
16653
16522
|
*/
|
|
16654
16523
|
_parseMetadata(meta) {
|
|
16655
16524
|
return typeof meta === 'string' ? parseI18nMeta(meta) :
|
|
16656
|
-
meta instanceof Message ? meta :
|
|
16525
|
+
meta instanceof Message ? meta :
|
|
16526
|
+
{};
|
|
16657
16527
|
}
|
|
16658
16528
|
/**
|
|
16659
16529
|
* Generate (or restore) message id if not specified already.
|
|
@@ -16678,9 +16548,9 @@ class I18nMetaVisitor {
|
|
|
16678
16548
|
// `packages/compiler/src/render3/view/template.ts`).
|
|
16679
16549
|
// In that case we want to reuse the legacy message generated in the 1st pass (see
|
|
16680
16550
|
// `setI18nRefs()`).
|
|
16681
|
-
const previousMessage = meta instanceof Message ?
|
|
16682
|
-
meta :
|
|
16683
|
-
|
|
16551
|
+
const previousMessage = meta instanceof Message ? meta :
|
|
16552
|
+
meta instanceof IcuPlaceholder ? meta.previousMessage :
|
|
16553
|
+
undefined;
|
|
16684
16554
|
message.legacyIds = previousMessage ? previousMessage.legacyIds : [];
|
|
16685
16555
|
}
|
|
16686
16556
|
}
|
|
@@ -16725,10 +16595,14 @@ function i18nMetaToJSDoc(meta) {
|
|
|
16725
16595
|
if (meta.description) {
|
|
16726
16596
|
tags.push({ tagName: "desc" /* Desc */, text: meta.description });
|
|
16727
16597
|
}
|
|
16598
|
+
else {
|
|
16599
|
+
// Suppress the JSCompiler warning that a `@desc` was not given for this message.
|
|
16600
|
+
tags.push({ tagName: "suppress" /* Suppress */, text: '{msgDescriptions}' });
|
|
16601
|
+
}
|
|
16728
16602
|
if (meta.meaning) {
|
|
16729
16603
|
tags.push({ tagName: "meaning" /* Meaning */, text: meta.meaning });
|
|
16730
16604
|
}
|
|
16731
|
-
return
|
|
16605
|
+
return jsDocComment(tags);
|
|
16732
16606
|
}
|
|
16733
16607
|
|
|
16734
16608
|
/** Closure uses `goog.getMsg(message)` to lookup translations */
|
|
@@ -16746,10 +16620,7 @@ function createGoogleGetMsgStatements(variable$1, message, closureVar, params) {
|
|
|
16746
16620
|
// const MSG_... = goog.getMsg(..);
|
|
16747
16621
|
// I18N_X = MSG_...;
|
|
16748
16622
|
const googGetMsgStmt = closureVar.set(variable(GOOG_GET_MSG).callFn(args)).toConstDecl();
|
|
16749
|
-
|
|
16750
|
-
if (metaComment !== null) {
|
|
16751
|
-
googGetMsgStmt.addLeadingComment(metaComment);
|
|
16752
|
-
}
|
|
16623
|
+
googGetMsgStmt.addLeadingComment(i18nMetaToJSDoc(message));
|
|
16753
16624
|
const i18nAssignmentStmt = new ExpressionStatement(variable$1.set(closureVar));
|
|
16754
16625
|
return [googGetMsgStmt, i18nAssignmentStmt];
|
|
16755
16626
|
}
|
|
@@ -16910,7 +16781,7 @@ const NG_PROJECT_AS_ATTR_NAME = 'ngProjectAs';
|
|
|
16910
16781
|
// Global symbols available only inside event bindings.
|
|
16911
16782
|
const EVENT_BINDING_SCOPE_GLOBALS = new Set(['$event']);
|
|
16912
16783
|
// List of supported global targets for event listeners
|
|
16913
|
-
const GLOBAL_TARGET_RESOLVERS = new Map([['window', Identifiers
|
|
16784
|
+
const GLOBAL_TARGET_RESOLVERS = new Map([['window', Identifiers.resolveWindow], ['document', Identifiers.resolveDocument], ['body', Identifiers.resolveBody]]);
|
|
16914
16785
|
const LEADING_TRIVIA_CHARS = [' ', '\n', '\r', '\t'];
|
|
16915
16786
|
// if (rf & flags) { .. }
|
|
16916
16787
|
function renderFlagCheckIfStmt(flags, statements) {
|
|
@@ -16927,7 +16798,7 @@ function prepareEventListenerParameters(eventAst, handlerName = null, scope = nu
|
|
|
16927
16798
|
const implicitReceiverExpr = (scope === null || scope.bindingLevel === 0) ?
|
|
16928
16799
|
variable(CONTEXT_NAME) :
|
|
16929
16800
|
scope.getOrCreateSharedContextVar(0);
|
|
16930
|
-
const bindingStatements = convertActionBinding(scope, implicitReceiverExpr, handler, 'b',
|
|
16801
|
+
const bindingStatements = convertActionBinding(scope, implicitReceiverExpr, handler, 'b', eventAst.handlerSpan, implicitReceiverAccesses, EVENT_BINDING_SCOPE_GLOBALS);
|
|
16931
16802
|
const statements = [];
|
|
16932
16803
|
if (scope) {
|
|
16933
16804
|
// `variableDeclarations` needs to run first, because
|
|
@@ -17022,12 +16893,12 @@ class TemplateDefinitionBuilder {
|
|
|
17022
16893
|
this.fileBasedI18nSuffix = relativeContextFilePath.replace(/[^A-Za-z0-9]/g, '_') + '_';
|
|
17023
16894
|
this._valueConverter = new ValueConverter(constantPool, () => this.allocateDataSlot(), (numSlots) => this.allocatePureFunctionSlots(numSlots), (name, localName, slot, value) => {
|
|
17024
16895
|
this._bindingScope.set(this.level, localName, value);
|
|
17025
|
-
this.creationInstruction(null, Identifiers
|
|
16896
|
+
this.creationInstruction(null, Identifiers.pipe, [literal(slot), literal(name)]);
|
|
17026
16897
|
});
|
|
17027
16898
|
}
|
|
17028
16899
|
buildTemplateFunction(nodes, variables, ngContentSelectorsOffset = 0, i18n) {
|
|
17029
16900
|
this._ngContentSelectorsOffset = ngContentSelectorsOffset;
|
|
17030
|
-
if (this._namespace !== Identifiers
|
|
16901
|
+
if (this._namespace !== Identifiers.namespaceHTML) {
|
|
17031
16902
|
this.creationInstruction(null, this._namespace);
|
|
17032
16903
|
}
|
|
17033
16904
|
// Create variable bindings
|
|
@@ -17073,7 +16944,7 @@ class TemplateDefinitionBuilder {
|
|
|
17073
16944
|
// Since we accumulate ngContent selectors while processing template elements,
|
|
17074
16945
|
// we *prepend* `projectionDef` to creation instructions block, to put it before
|
|
17075
16946
|
// any `projection` instructions
|
|
17076
|
-
this.creationInstruction(null, Identifiers
|
|
16947
|
+
this.creationInstruction(null, Identifiers.projectionDef, parameters, /* prepend */ true);
|
|
17077
16948
|
}
|
|
17078
16949
|
if (initI18nContext) {
|
|
17079
16950
|
this.i18nEnd(null, selfClosingI18nInstruction);
|
|
@@ -17234,7 +17105,7 @@ class TemplateDefinitionBuilder {
|
|
|
17234
17105
|
if (Object.keys(icuMapping).length) {
|
|
17235
17106
|
args.push(mapLiteral(icuMapping, true));
|
|
17236
17107
|
}
|
|
17237
|
-
return instruction(null, Identifiers
|
|
17108
|
+
return instruction(null, Identifiers.i18nPostprocess, args);
|
|
17238
17109
|
};
|
|
17239
17110
|
}
|
|
17240
17111
|
this.i18nTranslate(meta, params, context.ref, transformFn);
|
|
@@ -17253,7 +17124,7 @@ class TemplateDefinitionBuilder {
|
|
|
17253
17124
|
// into i18nStart call for top level i18n context
|
|
17254
17125
|
params.push(literal(id));
|
|
17255
17126
|
}
|
|
17256
|
-
this.creationInstruction(span, selfClosing ? Identifiers
|
|
17127
|
+
this.creationInstruction(span, selfClosing ? Identifiers.i18n : Identifiers.i18nStart, params);
|
|
17257
17128
|
}
|
|
17258
17129
|
i18nEnd(span = null, selfClosing) {
|
|
17259
17130
|
if (!this.i18n) {
|
|
@@ -17276,11 +17147,11 @@ class TemplateDefinitionBuilder {
|
|
|
17276
17147
|
// for i18n block, advance to the most recent element index (by taking the current number of
|
|
17277
17148
|
// elements and subtracting one) before invoking `i18nExp` instructions, to make sure the
|
|
17278
17149
|
// necessary lifecycle hooks of components/directives are properly flushed.
|
|
17279
|
-
this.updateInstructionChainWithAdvance(this.getConstCount() - 1, Identifiers
|
|
17280
|
-
this.updateInstruction(span, Identifiers
|
|
17150
|
+
this.updateInstructionChainWithAdvance(this.getConstCount() - 1, Identifiers.i18nExp, chainBindings);
|
|
17151
|
+
this.updateInstruction(span, Identifiers.i18nApply, [literal(index)]);
|
|
17281
17152
|
}
|
|
17282
17153
|
if (!selfClosing) {
|
|
17283
|
-
this.creationInstruction(span, Identifiers
|
|
17154
|
+
this.creationInstruction(span, Identifiers.i18nEnd);
|
|
17284
17155
|
}
|
|
17285
17156
|
this.i18n = null; // reset local i18n context
|
|
17286
17157
|
}
|
|
@@ -17306,25 +17177,25 @@ class TemplateDefinitionBuilder {
|
|
|
17306
17177
|
}
|
|
17307
17178
|
});
|
|
17308
17179
|
if (bindings.length > 0) {
|
|
17309
|
-
this.updateInstructionChainWithAdvance(nodeIndex, Identifiers
|
|
17180
|
+
this.updateInstructionChainWithAdvance(nodeIndex, Identifiers.i18nExp, bindings);
|
|
17310
17181
|
}
|
|
17311
17182
|
if (i18nAttrArgs.length > 0) {
|
|
17312
17183
|
const index = literal(this.allocateDataSlot());
|
|
17313
17184
|
const constIndex = this.addToConsts(literalArr(i18nAttrArgs));
|
|
17314
|
-
this.creationInstruction(sourceSpan, Identifiers
|
|
17185
|
+
this.creationInstruction(sourceSpan, Identifiers.i18nAttributes, [index, constIndex]);
|
|
17315
17186
|
if (hasBindings) {
|
|
17316
|
-
this.updateInstruction(sourceSpan, Identifiers
|
|
17187
|
+
this.updateInstruction(sourceSpan, Identifiers.i18nApply, [index]);
|
|
17317
17188
|
}
|
|
17318
17189
|
}
|
|
17319
17190
|
}
|
|
17320
17191
|
getNamespaceInstruction(namespaceKey) {
|
|
17321
17192
|
switch (namespaceKey) {
|
|
17322
17193
|
case 'math':
|
|
17323
|
-
return Identifiers
|
|
17194
|
+
return Identifiers.namespaceMathML;
|
|
17324
17195
|
case 'svg':
|
|
17325
|
-
return Identifiers
|
|
17196
|
+
return Identifiers.namespaceSVG;
|
|
17326
17197
|
default:
|
|
17327
|
-
return Identifiers
|
|
17198
|
+
return Identifiers.namespaceHTML;
|
|
17328
17199
|
}
|
|
17329
17200
|
}
|
|
17330
17201
|
addNamespaceInstruction(nsInstruction, element) {
|
|
@@ -17351,7 +17222,7 @@ class TemplateDefinitionBuilder {
|
|
|
17351
17222
|
else if (projectionSlotIdx !== 0) {
|
|
17352
17223
|
parameters.push(literal(projectionSlotIdx));
|
|
17353
17224
|
}
|
|
17354
|
-
this.creationInstruction(ngContent.sourceSpan, Identifiers
|
|
17225
|
+
this.creationInstruction(ngContent.sourceSpan, Identifiers.projection, parameters);
|
|
17355
17226
|
if (this.i18n) {
|
|
17356
17227
|
this.i18n.appendProjection(ngContent.i18n, slot);
|
|
17357
17228
|
}
|
|
@@ -17423,12 +17294,12 @@ class TemplateDefinitionBuilder {
|
|
|
17423
17294
|
element.outputs.length === 0 && boundI18nAttrs.length === 0 && !hasChildren;
|
|
17424
17295
|
const createSelfClosingI18nInstruction = !createSelfClosingInstruction && hasTextChildrenOnly(element.children);
|
|
17425
17296
|
if (createSelfClosingInstruction) {
|
|
17426
|
-
this.creationInstruction(element.sourceSpan, isNgContainer$1 ? Identifiers
|
|
17297
|
+
this.creationInstruction(element.sourceSpan, isNgContainer$1 ? Identifiers.elementContainer : Identifiers.element, trimTrailingNulls(parameters));
|
|
17427
17298
|
}
|
|
17428
17299
|
else {
|
|
17429
|
-
this.creationInstruction(element.startSourceSpan, isNgContainer$1 ? Identifiers
|
|
17300
|
+
this.creationInstruction(element.startSourceSpan, isNgContainer$1 ? Identifiers.elementContainerStart : Identifiers.elementStart, trimTrailingNulls(parameters));
|
|
17430
17301
|
if (isNonBindableMode) {
|
|
17431
|
-
this.creationInstruction(element.startSourceSpan, Identifiers
|
|
17302
|
+
this.creationInstruction(element.startSourceSpan, Identifiers.disableBindings);
|
|
17432
17303
|
}
|
|
17433
17304
|
if (boundI18nAttrs.length > 0) {
|
|
17434
17305
|
this.i18nAttributesInstruction(elementIndex, boundI18nAttrs, element.startSourceSpan ?? element.sourceSpan);
|
|
@@ -17439,7 +17310,7 @@ class TemplateDefinitionBuilder {
|
|
|
17439
17310
|
sourceSpan: outputAst.sourceSpan,
|
|
17440
17311
|
params: this.prepareListenerParameter(element.name, outputAst, elementIndex)
|
|
17441
17312
|
}));
|
|
17442
|
-
this.creationInstructionChain(Identifiers
|
|
17313
|
+
this.creationInstructionChain(Identifiers.listener, listeners);
|
|
17443
17314
|
}
|
|
17444
17315
|
// Note: it's important to keep i18n/i18nStart instructions after i18nAttributes and
|
|
17445
17316
|
// listeners, to make sure i18nAttributes instruction targets current element at runtime.
|
|
@@ -17545,7 +17416,7 @@ class TemplateDefinitionBuilder {
|
|
|
17545
17416
|
}
|
|
17546
17417
|
else {
|
|
17547
17418
|
// class prop
|
|
17548
|
-
this.updateInstructionWithAdvance(elementIndex, input.sourceSpan, Identifiers
|
|
17419
|
+
this.updateInstructionWithAdvance(elementIndex, input.sourceSpan, Identifiers.classProp, () => {
|
|
17549
17420
|
return [
|
|
17550
17421
|
literal(elementIndex), literal(attrName), this.convertPropertyBinding(value),
|
|
17551
17422
|
...params
|
|
@@ -17556,10 +17427,10 @@ class TemplateDefinitionBuilder {
|
|
|
17556
17427
|
}
|
|
17557
17428
|
});
|
|
17558
17429
|
if (propertyBindings.length > 0) {
|
|
17559
|
-
this.updateInstructionChainWithAdvance(elementIndex, Identifiers
|
|
17430
|
+
this.updateInstructionChainWithAdvance(elementIndex, Identifiers.property, propertyBindings);
|
|
17560
17431
|
}
|
|
17561
17432
|
if (attributeBindings.length > 0) {
|
|
17562
|
-
this.updateInstructionChainWithAdvance(elementIndex, Identifiers
|
|
17433
|
+
this.updateInstructionChainWithAdvance(elementIndex, Identifiers.attribute, attributeBindings);
|
|
17563
17434
|
}
|
|
17564
17435
|
// Traverse element child nodes
|
|
17565
17436
|
visitAll$1(this, element.children);
|
|
@@ -17573,9 +17444,9 @@ class TemplateDefinitionBuilder {
|
|
|
17573
17444
|
this.i18nEnd(span, createSelfClosingI18nInstruction);
|
|
17574
17445
|
}
|
|
17575
17446
|
if (isNonBindableMode) {
|
|
17576
|
-
this.creationInstruction(span, Identifiers
|
|
17447
|
+
this.creationInstruction(span, Identifiers.enableBindings);
|
|
17577
17448
|
}
|
|
17578
|
-
this.creationInstruction(span, isNgContainer$1 ? Identifiers
|
|
17449
|
+
this.creationInstruction(span, isNgContainer$1 ? Identifiers.elementContainerEnd : Identifiers.elementEnd);
|
|
17579
17450
|
}
|
|
17580
17451
|
}
|
|
17581
17452
|
visitTemplate(template) {
|
|
@@ -17601,7 +17472,7 @@ class TemplateDefinitionBuilder {
|
|
|
17601
17472
|
if (template.references && template.references.length) {
|
|
17602
17473
|
const refs = this.prepareRefsArray(template.references);
|
|
17603
17474
|
parameters.push(this.addToConsts(refs));
|
|
17604
|
-
parameters.push(importExpr(Identifiers
|
|
17475
|
+
parameters.push(importExpr(Identifiers.templateRefExtractor));
|
|
17605
17476
|
}
|
|
17606
17477
|
// Create the template function
|
|
17607
17478
|
const templateVisitor = new TemplateDefinitionBuilder(this.constantPool, this._bindingScope, this.level + 1, contextName, this.i18n, templateIndex, templateName, this._namespace, this.fileBasedI18nSuffix, this.i18nUseExternalIds, this._constants);
|
|
@@ -17617,7 +17488,7 @@ class TemplateDefinitionBuilder {
|
|
|
17617
17488
|
}
|
|
17618
17489
|
});
|
|
17619
17490
|
// e.g. template(1, MyComp_Template_1)
|
|
17620
|
-
this.creationInstruction(template.sourceSpan, Identifiers
|
|
17491
|
+
this.creationInstruction(template.sourceSpan, Identifiers.templateCreate, () => {
|
|
17621
17492
|
parameters.splice(2, 0, literal(templateVisitor.getConstCount()), literal(templateVisitor.getVarCount()));
|
|
17622
17493
|
return trimTrailingNulls(parameters);
|
|
17623
17494
|
});
|
|
@@ -17643,7 +17514,7 @@ class TemplateDefinitionBuilder {
|
|
|
17643
17514
|
sourceSpan: outputAst.sourceSpan,
|
|
17644
17515
|
params: this.prepareListenerParameter('ng_template', outputAst, templateIndex)
|
|
17645
17516
|
}));
|
|
17646
|
-
this.creationInstructionChain(Identifiers
|
|
17517
|
+
this.creationInstructionChain(Identifiers.listener, listeners);
|
|
17647
17518
|
}
|
|
17648
17519
|
}
|
|
17649
17520
|
}
|
|
@@ -17658,7 +17529,7 @@ class TemplateDefinitionBuilder {
|
|
|
17658
17529
|
return;
|
|
17659
17530
|
}
|
|
17660
17531
|
const nodeIndex = this.allocateDataSlot();
|
|
17661
|
-
this.creationInstruction(text.sourceSpan, Identifiers
|
|
17532
|
+
this.creationInstruction(text.sourceSpan, Identifiers.text, [literal(nodeIndex)]);
|
|
17662
17533
|
const value = text.value.visit(this._valueConverter);
|
|
17663
17534
|
this.allocateBindingSlots(value);
|
|
17664
17535
|
if (value instanceof Interpolation) {
|
|
@@ -17673,7 +17544,7 @@ class TemplateDefinitionBuilder {
|
|
|
17673
17544
|
// block, we exclude this text element from instructions set,
|
|
17674
17545
|
// since it will be captured in i18n content and processed at runtime
|
|
17675
17546
|
if (!this.i18n) {
|
|
17676
|
-
this.creationInstruction(text.sourceSpan, Identifiers
|
|
17547
|
+
this.creationInstruction(text.sourceSpan, Identifiers.text, [literal(this.allocateDataSlot()), literal(text.value)]);
|
|
17677
17548
|
}
|
|
17678
17549
|
}
|
|
17679
17550
|
visitIcu(icu) {
|
|
@@ -17698,7 +17569,7 @@ class TemplateDefinitionBuilder {
|
|
|
17698
17569
|
const transformFn = (raw) => {
|
|
17699
17570
|
const params = { ...vars, ...placeholders };
|
|
17700
17571
|
const formatted = i18nFormatPlaceholderNames(params, /* useCamelCase */ false);
|
|
17701
|
-
return instruction(null, Identifiers
|
|
17572
|
+
return instruction(null, Identifiers.i18nPostprocess, [raw, mapLiteral(formatted, true)]);
|
|
17702
17573
|
};
|
|
17703
17574
|
// in case the whole i18n message is a single ICU - we do not need to
|
|
17704
17575
|
// create a separate top-level translation, we can use the root ref instead
|
|
@@ -17765,7 +17636,7 @@ class TemplateDefinitionBuilder {
|
|
|
17765
17636
|
}
|
|
17766
17637
|
});
|
|
17767
17638
|
if (propertyBindings.length > 0) {
|
|
17768
|
-
this.updateInstructionChainWithAdvance(templateIndex, Identifiers
|
|
17639
|
+
this.updateInstructionChainWithAdvance(templateIndex, Identifiers.property, propertyBindings);
|
|
17769
17640
|
}
|
|
17770
17641
|
}
|
|
17771
17642
|
// Bindings must only be resolved after all local refs have been visited, so all
|
|
@@ -17841,7 +17712,7 @@ class TemplateDefinitionBuilder {
|
|
|
17841
17712
|
if (delta < 1) {
|
|
17842
17713
|
throw new Error('advance instruction can only go forwards');
|
|
17843
17714
|
}
|
|
17844
|
-
this.instructionFn(this._updateCodeFns, span, Identifiers
|
|
17715
|
+
this.instructionFn(this._updateCodeFns, span, Identifiers.advance, [literal(delta)]);
|
|
17845
17716
|
this._currentIndex = nodeIndex;
|
|
17846
17717
|
}
|
|
17847
17718
|
}
|
|
@@ -17866,7 +17737,7 @@ class TemplateDefinitionBuilder {
|
|
|
17866
17737
|
this._bindingScope.getOrCreateSharedContextVar(0);
|
|
17867
17738
|
}
|
|
17868
17739
|
convertPropertyBinding(value) {
|
|
17869
|
-
const convertedPropertyBinding = convertPropertyBinding(this, this.getImplicitReceiverExpr(), value, this.bindingContext()
|
|
17740
|
+
const convertedPropertyBinding = convertPropertyBinding(this, this.getImplicitReceiverExpr(), value, this.bindingContext());
|
|
17870
17741
|
const valExpr = convertedPropertyBinding.currValExpr;
|
|
17871
17742
|
this._tempVariables.push(...convertedPropertyBinding.stmts);
|
|
17872
17743
|
return valExpr;
|
|
@@ -18023,7 +17894,7 @@ class TemplateDefinitionBuilder {
|
|
|
18023
17894
|
// e.g. nextContext(2);
|
|
18024
17895
|
const nextContextStmt = relativeLevel > 0 ? [generateNextContextExpr(relativeLevel).toStmt()] : [];
|
|
18025
17896
|
// e.g. const $foo$ = reference(1);
|
|
18026
|
-
const refExpr = lhs.set(importExpr(Identifiers
|
|
17897
|
+
const refExpr = lhs.set(importExpr(Identifiers.reference).callFn([literal(slot)]));
|
|
18027
17898
|
return nextContextStmt.concat(refExpr.toConstDecl());
|
|
18028
17899
|
}, true);
|
|
18029
17900
|
return [reference.name, reference.value];
|
|
@@ -18101,22 +17972,22 @@ class ValueConverter extends AstMemoryEfficientTransformer {
|
|
|
18101
17972
|
}
|
|
18102
17973
|
}
|
|
18103
17974
|
// Pipes always have at least one parameter, the value they operate on
|
|
18104
|
-
const pipeBindingIdentifiers = [Identifiers
|
|
17975
|
+
const pipeBindingIdentifiers = [Identifiers.pipeBind1, Identifiers.pipeBind2, Identifiers.pipeBind3, Identifiers.pipeBind4];
|
|
18105
17976
|
function pipeBindingCallInfo(args) {
|
|
18106
17977
|
const identifier = pipeBindingIdentifiers[args.length];
|
|
18107
17978
|
return {
|
|
18108
|
-
identifier: identifier || Identifiers
|
|
17979
|
+
identifier: identifier || Identifiers.pipeBindV,
|
|
18109
17980
|
isVarLength: !identifier,
|
|
18110
17981
|
};
|
|
18111
17982
|
}
|
|
18112
17983
|
const pureFunctionIdentifiers = [
|
|
18113
|
-
Identifiers
|
|
18114
|
-
Identifiers
|
|
17984
|
+
Identifiers.pureFunction0, Identifiers.pureFunction1, Identifiers.pureFunction2, Identifiers.pureFunction3, Identifiers.pureFunction4,
|
|
17985
|
+
Identifiers.pureFunction5, Identifiers.pureFunction6, Identifiers.pureFunction7, Identifiers.pureFunction8
|
|
18115
17986
|
];
|
|
18116
17987
|
function pureFunctionCallInfo(args) {
|
|
18117
17988
|
const identifier = pureFunctionIdentifiers[args.length];
|
|
18118
17989
|
return {
|
|
18119
|
-
identifier: identifier || Identifiers
|
|
17990
|
+
identifier: identifier || Identifiers.pureFunctionV,
|
|
18120
17991
|
isVarLength: !identifier,
|
|
18121
17992
|
};
|
|
18122
17993
|
}
|
|
@@ -18125,7 +17996,7 @@ function instruction(span, reference, params) {
|
|
|
18125
17996
|
}
|
|
18126
17997
|
// e.g. x(2);
|
|
18127
17998
|
function generateNextContextExpr(relativeLevelDiff) {
|
|
18128
|
-
return importExpr(Identifiers
|
|
17999
|
+
return importExpr(Identifiers.nextContext)
|
|
18129
18000
|
.callFn(relativeLevelDiff > 1 ? [literal(relativeLevelDiff)] : []);
|
|
18130
18001
|
}
|
|
18131
18002
|
function getLiteralFactory(constantPool, literal$1, allocateSlots) {
|
|
@@ -18327,7 +18198,7 @@ class BindingScope {
|
|
|
18327
18198
|
restoreViewStatement() {
|
|
18328
18199
|
const statements = [];
|
|
18329
18200
|
if (this.restoreViewVariable) {
|
|
18330
|
-
const restoreCall = instruction(null, Identifiers
|
|
18201
|
+
const restoreCall = instruction(null, Identifiers.restoreView, [this.restoreViewVariable]);
|
|
18331
18202
|
// Either `const restoredCtx = restoreView($state$);` or `restoreView($state$);`
|
|
18332
18203
|
// depending on whether it is being used.
|
|
18333
18204
|
statements.push(this.usesRestoredViewContext ?
|
|
@@ -18339,7 +18210,7 @@ class BindingScope {
|
|
|
18339
18210
|
viewSnapshotStatements() {
|
|
18340
18211
|
// const $state$ = getCurrentView();
|
|
18341
18212
|
return this.restoreViewVariable ?
|
|
18342
|
-
[this.restoreViewVariable.set(instruction(null, Identifiers
|
|
18213
|
+
[this.restoreViewVariable.set(instruction(null, Identifiers.getCurrentView, [])).toConstDecl()] :
|
|
18343
18214
|
[];
|
|
18344
18215
|
}
|
|
18345
18216
|
isListenerScope() {
|
|
@@ -18407,25 +18278,25 @@ function getNgProjectAsLiteral(attribute) {
|
|
|
18407
18278
|
function getPropertyInterpolationExpression(interpolation) {
|
|
18408
18279
|
switch (getInterpolationArgsLength(interpolation)) {
|
|
18409
18280
|
case 1:
|
|
18410
|
-
return Identifiers
|
|
18281
|
+
return Identifiers.propertyInterpolate;
|
|
18411
18282
|
case 3:
|
|
18412
|
-
return Identifiers
|
|
18283
|
+
return Identifiers.propertyInterpolate1;
|
|
18413
18284
|
case 5:
|
|
18414
|
-
return Identifiers
|
|
18285
|
+
return Identifiers.propertyInterpolate2;
|
|
18415
18286
|
case 7:
|
|
18416
|
-
return Identifiers
|
|
18287
|
+
return Identifiers.propertyInterpolate3;
|
|
18417
18288
|
case 9:
|
|
18418
|
-
return Identifiers
|
|
18289
|
+
return Identifiers.propertyInterpolate4;
|
|
18419
18290
|
case 11:
|
|
18420
|
-
return Identifiers
|
|
18291
|
+
return Identifiers.propertyInterpolate5;
|
|
18421
18292
|
case 13:
|
|
18422
|
-
return Identifiers
|
|
18293
|
+
return Identifiers.propertyInterpolate6;
|
|
18423
18294
|
case 15:
|
|
18424
|
-
return Identifiers
|
|
18295
|
+
return Identifiers.propertyInterpolate7;
|
|
18425
18296
|
case 17:
|
|
18426
|
-
return Identifiers
|
|
18297
|
+
return Identifiers.propertyInterpolate8;
|
|
18427
18298
|
default:
|
|
18428
|
-
return Identifiers
|
|
18299
|
+
return Identifiers.propertyInterpolateV;
|
|
18429
18300
|
}
|
|
18430
18301
|
}
|
|
18431
18302
|
/**
|
|
@@ -18435,23 +18306,23 @@ function getPropertyInterpolationExpression(interpolation) {
|
|
|
18435
18306
|
function getAttributeInterpolationExpression(interpolation) {
|
|
18436
18307
|
switch (getInterpolationArgsLength(interpolation)) {
|
|
18437
18308
|
case 3:
|
|
18438
|
-
return Identifiers
|
|
18309
|
+
return Identifiers.attributeInterpolate1;
|
|
18439
18310
|
case 5:
|
|
18440
|
-
return Identifiers
|
|
18311
|
+
return Identifiers.attributeInterpolate2;
|
|
18441
18312
|
case 7:
|
|
18442
|
-
return Identifiers
|
|
18313
|
+
return Identifiers.attributeInterpolate3;
|
|
18443
18314
|
case 9:
|
|
18444
|
-
return Identifiers
|
|
18315
|
+
return Identifiers.attributeInterpolate4;
|
|
18445
18316
|
case 11:
|
|
18446
|
-
return Identifiers
|
|
18317
|
+
return Identifiers.attributeInterpolate5;
|
|
18447
18318
|
case 13:
|
|
18448
|
-
return Identifiers
|
|
18319
|
+
return Identifiers.attributeInterpolate6;
|
|
18449
18320
|
case 15:
|
|
18450
|
-
return Identifiers
|
|
18321
|
+
return Identifiers.attributeInterpolate7;
|
|
18451
18322
|
case 17:
|
|
18452
|
-
return Identifiers
|
|
18323
|
+
return Identifiers.attributeInterpolate8;
|
|
18453
18324
|
default:
|
|
18454
|
-
return Identifiers
|
|
18325
|
+
return Identifiers.attributeInterpolateV;
|
|
18455
18326
|
}
|
|
18456
18327
|
}
|
|
18457
18328
|
/**
|
|
@@ -18461,25 +18332,25 @@ function getAttributeInterpolationExpression(interpolation) {
|
|
|
18461
18332
|
function getTextInterpolationExpression(interpolation) {
|
|
18462
18333
|
switch (getInterpolationArgsLength(interpolation)) {
|
|
18463
18334
|
case 1:
|
|
18464
|
-
return Identifiers
|
|
18335
|
+
return Identifiers.textInterpolate;
|
|
18465
18336
|
case 3:
|
|
18466
|
-
return Identifiers
|
|
18337
|
+
return Identifiers.textInterpolate1;
|
|
18467
18338
|
case 5:
|
|
18468
|
-
return Identifiers
|
|
18339
|
+
return Identifiers.textInterpolate2;
|
|
18469
18340
|
case 7:
|
|
18470
|
-
return Identifiers
|
|
18341
|
+
return Identifiers.textInterpolate3;
|
|
18471
18342
|
case 9:
|
|
18472
|
-
return Identifiers
|
|
18343
|
+
return Identifiers.textInterpolate4;
|
|
18473
18344
|
case 11:
|
|
18474
|
-
return Identifiers
|
|
18345
|
+
return Identifiers.textInterpolate5;
|
|
18475
18346
|
case 13:
|
|
18476
|
-
return Identifiers
|
|
18347
|
+
return Identifiers.textInterpolate6;
|
|
18477
18348
|
case 15:
|
|
18478
|
-
return Identifiers
|
|
18349
|
+
return Identifiers.textInterpolate7;
|
|
18479
18350
|
case 17:
|
|
18480
|
-
return Identifiers
|
|
18351
|
+
return Identifiers.textInterpolate8;
|
|
18481
18352
|
default:
|
|
18482
|
-
return Identifiers
|
|
18353
|
+
return Identifiers.textInterpolateV;
|
|
18483
18354
|
}
|
|
18484
18355
|
}
|
|
18485
18356
|
/**
|
|
@@ -18570,18 +18441,18 @@ function makeBindingParser(interpolationConfig = DEFAULT_INTERPOLATION_CONFIG) {
|
|
|
18570
18441
|
function resolveSanitizationFn(context, isAttribute) {
|
|
18571
18442
|
switch (context) {
|
|
18572
18443
|
case SecurityContext.HTML:
|
|
18573
|
-
return importExpr(Identifiers
|
|
18444
|
+
return importExpr(Identifiers.sanitizeHtml);
|
|
18574
18445
|
case SecurityContext.SCRIPT:
|
|
18575
|
-
return importExpr(Identifiers
|
|
18446
|
+
return importExpr(Identifiers.sanitizeScript);
|
|
18576
18447
|
case SecurityContext.STYLE:
|
|
18577
18448
|
// the compiler does not fill in an instruction for [style.prop?] binding
|
|
18578
18449
|
// values because the style algorithm knows internally what props are subject
|
|
18579
18450
|
// to sanitization (only [attr.style] values are explicitly sanitized)
|
|
18580
|
-
return isAttribute ? importExpr(Identifiers
|
|
18451
|
+
return isAttribute ? importExpr(Identifiers.sanitizeStyle) : null;
|
|
18581
18452
|
case SecurityContext.URL:
|
|
18582
|
-
return importExpr(Identifiers
|
|
18453
|
+
return importExpr(Identifiers.sanitizeUrl);
|
|
18583
18454
|
case SecurityContext.RESOURCE_URL:
|
|
18584
|
-
return importExpr(Identifiers
|
|
18455
|
+
return importExpr(Identifiers.sanitizeResourceUrl);
|
|
18585
18456
|
default:
|
|
18586
18457
|
return null;
|
|
18587
18458
|
}
|
|
@@ -18591,10 +18462,10 @@ function trustedConstAttribute(tagName, attr) {
|
|
|
18591
18462
|
if (isTrustedTypesSink(tagName, attr.name)) {
|
|
18592
18463
|
switch (elementRegistry.securityContext(tagName, attr.name, /* isAttribute */ true)) {
|
|
18593
18464
|
case SecurityContext.HTML:
|
|
18594
|
-
return taggedTemplate(importExpr(Identifiers
|
|
18465
|
+
return taggedTemplate(importExpr(Identifiers.trustConstantHtml), new TemplateLiteral([new TemplateLiteralElement(attr.value)], []), undefined, attr.valueSpan);
|
|
18595
18466
|
// NB: no SecurityContext.SCRIPT here, as the corresponding tags are stripped by the compiler.
|
|
18596
18467
|
case SecurityContext.RESOURCE_URL:
|
|
18597
|
-
return taggedTemplate(importExpr(Identifiers
|
|
18468
|
+
return taggedTemplate(importExpr(Identifiers.trustConstantResourceUrl), new TemplateLiteral([new TemplateLiteralElement(attr.value)], []), undefined, attr.valueSpan);
|
|
18598
18469
|
default:
|
|
18599
18470
|
return value;
|
|
18600
18471
|
}
|
|
@@ -18723,16 +18594,16 @@ function addFeatures(definitionMap, meta) {
|
|
|
18723
18594
|
if (viewProviders) {
|
|
18724
18595
|
args.push(viewProviders);
|
|
18725
18596
|
}
|
|
18726
|
-
features.push(importExpr(Identifiers
|
|
18597
|
+
features.push(importExpr(Identifiers.ProvidersFeature).callFn(args));
|
|
18727
18598
|
}
|
|
18728
18599
|
if (meta.usesInheritance) {
|
|
18729
|
-
features.push(importExpr(Identifiers
|
|
18600
|
+
features.push(importExpr(Identifiers.InheritDefinitionFeature));
|
|
18730
18601
|
}
|
|
18731
18602
|
if (meta.fullInheritance) {
|
|
18732
|
-
features.push(importExpr(Identifiers
|
|
18603
|
+
features.push(importExpr(Identifiers.CopyDefinitionFeature));
|
|
18733
18604
|
}
|
|
18734
18605
|
if (meta.lifecycle.usesOnChanges) {
|
|
18735
|
-
features.push(importExpr(Identifiers
|
|
18606
|
+
features.push(importExpr(Identifiers.NgOnChangesFeature));
|
|
18736
18607
|
}
|
|
18737
18608
|
if (features.length) {
|
|
18738
18609
|
definitionMap.set('features', literalArr(features));
|
|
@@ -18744,7 +18615,7 @@ function addFeatures(definitionMap, meta) {
|
|
|
18744
18615
|
function compileDirectiveFromMetadata(meta, constantPool, bindingParser) {
|
|
18745
18616
|
const definitionMap = baseDirectiveFields(meta, constantPool, bindingParser);
|
|
18746
18617
|
addFeatures(definitionMap, meta);
|
|
18747
|
-
const expression = importExpr(Identifiers
|
|
18618
|
+
const expression = importExpr(Identifiers.defineDirective).callFn([definitionMap.toLiteralMap()], undefined, true);
|
|
18748
18619
|
const type = createDirectiveType(meta);
|
|
18749
18620
|
return { expression, type, statements: [] };
|
|
18750
18621
|
}
|
|
@@ -18770,7 +18641,7 @@ function compileComponentFromMetadata(meta, constantPool, bindingParser) {
|
|
|
18770
18641
|
const templateName = templateTypeName ? `${templateTypeName}_Template` : null;
|
|
18771
18642
|
const changeDetection = meta.changeDetection;
|
|
18772
18643
|
const template = meta.template;
|
|
18773
|
-
const templateBuilder = new TemplateDefinitionBuilder(constantPool, BindingScope.createRootScope(), 0, templateTypeName, null, null, templateName, Identifiers
|
|
18644
|
+
const templateBuilder = new TemplateDefinitionBuilder(constantPool, BindingScope.createRootScope(), 0, templateTypeName, null, null, templateName, Identifiers.namespaceHTML, meta.relativeContextFilePath, meta.i18nUseExternalIds);
|
|
18774
18645
|
const templateFunctionExpression = templateBuilder.buildTemplateFunction(template.nodes, []);
|
|
18775
18646
|
// We need to provide this so that dynamically generated components know what
|
|
18776
18647
|
// projected content blocks to pass through to the component when it is instantiated.
|
|
@@ -18836,7 +18707,7 @@ function compileComponentFromMetadata(meta, constantPool, bindingParser) {
|
|
|
18836
18707
|
if (changeDetection != null && changeDetection !== ChangeDetectionStrategy.Default) {
|
|
18837
18708
|
definitionMap.set('changeDetection', literal(changeDetection));
|
|
18838
18709
|
}
|
|
18839
|
-
const expression = importExpr(Identifiers
|
|
18710
|
+
const expression = importExpr(Identifiers.defineComponent).callFn([definitionMap.toLiteralMap()], undefined, true);
|
|
18840
18711
|
const type = createComponentType(meta);
|
|
18841
18712
|
return { expression, type, statements: [] };
|
|
18842
18713
|
}
|
|
@@ -18847,7 +18718,7 @@ function compileComponentFromMetadata(meta, constantPool, bindingParser) {
|
|
|
18847
18718
|
function createComponentType(meta) {
|
|
18848
18719
|
const typeParams = createDirectiveTypeParams(meta);
|
|
18849
18720
|
typeParams.push(stringArrayAsType(meta.template.ngContentSelectors));
|
|
18850
|
-
return expressionType(importExpr(Identifiers
|
|
18721
|
+
return expressionType(importExpr(Identifiers.ComponentDeclaration, typeParams));
|
|
18851
18722
|
}
|
|
18852
18723
|
/**
|
|
18853
18724
|
* Compiles the array literal of declarations into an expression according to the provided emit
|
|
@@ -18863,7 +18734,7 @@ function compileDeclarationList(list, mode) {
|
|
|
18863
18734
|
return fn([], [new ReturnStatement(list)]);
|
|
18864
18735
|
case 2 /* ClosureResolved */:
|
|
18865
18736
|
// directives: function () { return [MyDir].map(ng.resolveForwardRef); }
|
|
18866
|
-
const resolvedList = list.prop('map').callFn([importExpr(Identifiers
|
|
18737
|
+
const resolvedList = list.prop('map').callFn([importExpr(Identifiers.resolveForwardRef)]);
|
|
18867
18738
|
return fn([], [new ReturnStatement(resolvedList)]);
|
|
18868
18739
|
}
|
|
18869
18740
|
}
|
|
@@ -18898,13 +18769,13 @@ function createContentQueriesFunction(queries, constantPool, name) {
|
|
|
18898
18769
|
const tempAllocator = temporaryAllocator(updateStatements, TEMPORARY_NAME);
|
|
18899
18770
|
for (const query of queries) {
|
|
18900
18771
|
// creation, e.g. r3.contentQuery(dirIndex, somePredicate, true, null);
|
|
18901
|
-
createStatements.push(importExpr(Identifiers
|
|
18772
|
+
createStatements.push(importExpr(Identifiers.contentQuery)
|
|
18902
18773
|
.callFn([variable('dirIndex'), ...prepareQueryParams(query, constantPool)])
|
|
18903
18774
|
.toStmt());
|
|
18904
18775
|
// update, e.g. (r3.queryRefresh(tmp = r3.loadQuery()) && (ctx.someDir = tmp));
|
|
18905
18776
|
const temporary = tempAllocator();
|
|
18906
|
-
const getQueryList = importExpr(Identifiers
|
|
18907
|
-
const refresh = importExpr(Identifiers
|
|
18777
|
+
const getQueryList = importExpr(Identifiers.loadQuery).callFn([]);
|
|
18778
|
+
const refresh = importExpr(Identifiers.queryRefresh).callFn([temporary.set(getQueryList)]);
|
|
18908
18779
|
const updateDirective = variable(CONTEXT_NAME)
|
|
18909
18780
|
.prop(query.propertyName)
|
|
18910
18781
|
.set(query.first ? temporary.prop('first') : temporary);
|
|
@@ -18956,7 +18827,7 @@ function createDirectiveTypeParams(meta) {
|
|
|
18956
18827
|
*/
|
|
18957
18828
|
function createDirectiveType(meta) {
|
|
18958
18829
|
const typeParams = createDirectiveTypeParams(meta);
|
|
18959
|
-
return expressionType(importExpr(Identifiers
|
|
18830
|
+
return expressionType(importExpr(Identifiers.DirectiveDeclaration, typeParams));
|
|
18960
18831
|
}
|
|
18961
18832
|
// Define and update any view queries
|
|
18962
18833
|
function createViewQueriesFunction(viewQueries, constantPool, name) {
|
|
@@ -18965,12 +18836,12 @@ function createViewQueriesFunction(viewQueries, constantPool, name) {
|
|
|
18965
18836
|
const tempAllocator = temporaryAllocator(updateStatements, TEMPORARY_NAME);
|
|
18966
18837
|
viewQueries.forEach((query) => {
|
|
18967
18838
|
// creation, e.g. r3.viewQuery(somePredicate, true);
|
|
18968
|
-
const queryDefinition = importExpr(Identifiers
|
|
18839
|
+
const queryDefinition = importExpr(Identifiers.viewQuery).callFn(prepareQueryParams(query, constantPool));
|
|
18969
18840
|
createStatements.push(queryDefinition.toStmt());
|
|
18970
18841
|
// update, e.g. (r3.queryRefresh(tmp = r3.loadQuery()) && (ctx.someDir = tmp));
|
|
18971
18842
|
const temporary = tempAllocator();
|
|
18972
|
-
const getQueryList = importExpr(Identifiers
|
|
18973
|
-
const refresh = importExpr(Identifiers
|
|
18843
|
+
const getQueryList = importExpr(Identifiers.loadQuery).callFn([]);
|
|
18844
|
+
const refresh = importExpr(Identifiers.queryRefresh).callFn([temporary.set(getQueryList)]);
|
|
18974
18845
|
const updateDirective = variable(CONTEXT_NAME)
|
|
18975
18846
|
.prop(query.propertyName)
|
|
18976
18847
|
.set(query.first ? temporary.prop('first') : temporary);
|
|
@@ -19052,7 +18923,7 @@ function createHostBindingsFunction(hostBindingsMetadata, typeSourceSpan, bindin
|
|
|
19052
18923
|
// of different security contexts. In this case we use special sanitization function and
|
|
19053
18924
|
// select the actual sanitizer at runtime based on a tag name that is provided while
|
|
19054
18925
|
// invoking sanitization function.
|
|
19055
|
-
sanitizerFn = importExpr(Identifiers
|
|
18926
|
+
sanitizerFn = importExpr(Identifiers.sanitizeUrlOrResourceUrl);
|
|
19056
18927
|
}
|
|
19057
18928
|
else {
|
|
19058
18929
|
sanitizerFn = resolveSanitizationFn(securityContexts[0], isAttribute);
|
|
@@ -19063,13 +18934,13 @@ function createHostBindingsFunction(hostBindingsMetadata, typeSourceSpan, bindin
|
|
|
19063
18934
|
instructionParams.push(sanitizerFn);
|
|
19064
18935
|
}
|
|
19065
18936
|
updateStatements.push(...bindingExpr.stmts);
|
|
19066
|
-
if (instruction === Identifiers
|
|
18937
|
+
if (instruction === Identifiers.hostProperty) {
|
|
19067
18938
|
propertyBindings.push(instructionParams);
|
|
19068
18939
|
}
|
|
19069
|
-
else if (instruction === Identifiers
|
|
18940
|
+
else if (instruction === Identifiers.attribute) {
|
|
19070
18941
|
attributeBindings.push(instructionParams);
|
|
19071
18942
|
}
|
|
19072
|
-
else if (instruction === Identifiers
|
|
18943
|
+
else if (instruction === Identifiers.syntheticHostProperty) {
|
|
19073
18944
|
syntheticHostBindings.push(instructionParams);
|
|
19074
18945
|
}
|
|
19075
18946
|
else {
|
|
@@ -19077,13 +18948,13 @@ function createHostBindingsFunction(hostBindingsMetadata, typeSourceSpan, bindin
|
|
|
19077
18948
|
}
|
|
19078
18949
|
});
|
|
19079
18950
|
if (propertyBindings.length > 0) {
|
|
19080
|
-
updateStatements.push(chainedInstruction(Identifiers
|
|
18951
|
+
updateStatements.push(chainedInstruction(Identifiers.hostProperty, propertyBindings).toStmt());
|
|
19081
18952
|
}
|
|
19082
18953
|
if (attributeBindings.length > 0) {
|
|
19083
|
-
updateStatements.push(chainedInstruction(Identifiers
|
|
18954
|
+
updateStatements.push(chainedInstruction(Identifiers.attribute, attributeBindings).toStmt());
|
|
19084
18955
|
}
|
|
19085
18956
|
if (syntheticHostBindings.length > 0) {
|
|
19086
|
-
updateStatements.push(chainedInstruction(Identifiers
|
|
18957
|
+
updateStatements.push(chainedInstruction(Identifiers.syntheticHostProperty, syntheticHostBindings).toStmt());
|
|
19087
18958
|
}
|
|
19088
18959
|
// since we're dealing with directives/components and both have hostBinding
|
|
19089
18960
|
// functions, we need to generate a special hostAttrs instruction that deals
|
|
@@ -19129,7 +19000,7 @@ function createHostBindingsFunction(hostBindingsMetadata, typeSourceSpan, bindin
|
|
|
19129
19000
|
return null;
|
|
19130
19001
|
}
|
|
19131
19002
|
function bindingFn(implicit, value) {
|
|
19132
|
-
return convertPropertyBinding(null, implicit, value, 'b'
|
|
19003
|
+
return convertPropertyBinding(null, implicit, value, 'b');
|
|
19133
19004
|
}
|
|
19134
19005
|
function convertStylingCall(call, bindingContext, bindingFn) {
|
|
19135
19006
|
return call.params(value => bindingFn(bindingContext, value).currValExpr);
|
|
@@ -19141,7 +19012,7 @@ function getBindingNameAndInstruction(binding) {
|
|
|
19141
19012
|
const attrMatches = bindingName.match(ATTR_REGEX);
|
|
19142
19013
|
if (attrMatches) {
|
|
19143
19014
|
bindingName = attrMatches[1];
|
|
19144
|
-
instruction = Identifiers
|
|
19015
|
+
instruction = Identifiers.attribute;
|
|
19145
19016
|
}
|
|
19146
19017
|
else {
|
|
19147
19018
|
if (binding.isAnimation) {
|
|
@@ -19149,10 +19020,10 @@ function getBindingNameAndInstruction(binding) {
|
|
|
19149
19020
|
// host bindings that have a synthetic property (e.g. @foo) should always be rendered
|
|
19150
19021
|
// in the context of the component and not the parent. Therefore there is a special
|
|
19151
19022
|
// compatibility instruction available for this purpose.
|
|
19152
|
-
instruction = Identifiers
|
|
19023
|
+
instruction = Identifiers.syntheticHostProperty;
|
|
19153
19024
|
}
|
|
19154
19025
|
else {
|
|
19155
|
-
instruction = Identifiers
|
|
19026
|
+
instruction = Identifiers.hostProperty;
|
|
19156
19027
|
}
|
|
19157
19028
|
}
|
|
19158
19029
|
return { bindingName, instruction, isAttribute: !!attrMatches };
|
|
@@ -19176,10 +19047,10 @@ function createHostListeners(eventBindings, name) {
|
|
|
19176
19047
|
}
|
|
19177
19048
|
});
|
|
19178
19049
|
if (syntheticListeners.length > 0) {
|
|
19179
|
-
instructions.push(chainedInstruction(Identifiers
|
|
19050
|
+
instructions.push(chainedInstruction(Identifiers.syntheticHostListener, syntheticListeners).toStmt());
|
|
19180
19051
|
}
|
|
19181
19052
|
if (listeners.length > 0) {
|
|
19182
|
-
instructions.push(chainedInstruction(Identifiers
|
|
19053
|
+
instructions.push(chainedInstruction(Identifiers.listener, listeners).toStmt());
|
|
19183
19054
|
}
|
|
19184
19055
|
return instructions;
|
|
19185
19056
|
}
|
|
@@ -19300,6 +19171,7 @@ class CompilerFacadeImpl {
|
|
|
19300
19171
|
deps: null,
|
|
19301
19172
|
pipeName: facade.pipeName,
|
|
19302
19173
|
pure: facade.pure,
|
|
19174
|
+
isStandalone: facade.isStandalone,
|
|
19303
19175
|
};
|
|
19304
19176
|
const res = compilePipeFromMetadata(metadata);
|
|
19305
19177
|
return this.jitExpression(res.expression, angularCoreEnv, sourceMapUrl, []);
|
|
@@ -19560,6 +19432,7 @@ function convertDeclareDirectiveFacadeToMetadata(declaration, typeSourceSpan) {
|
|
|
19560
19432
|
deps: null,
|
|
19561
19433
|
typeArgumentCount: 0,
|
|
19562
19434
|
fullInheritance: false,
|
|
19435
|
+
isStandalone: declaration.isStandalone ?? false,
|
|
19563
19436
|
};
|
|
19564
19437
|
}
|
|
19565
19438
|
function convertHostDeclarationToMetadata(host = {}) {
|
|
@@ -19741,6 +19614,7 @@ function convertDeclarePipeFacadeToMetadata(declaration) {
|
|
|
19741
19614
|
pipeName: declaration.name,
|
|
19742
19615
|
deps: null,
|
|
19743
19616
|
pure: declaration.pure ?? true,
|
|
19617
|
+
isStandalone: declaration.isStandalone ?? false,
|
|
19744
19618
|
};
|
|
19745
19619
|
}
|
|
19746
19620
|
function convertDeclareInjectorFacadeToMetadata(declaration) {
|
|
@@ -19767,7 +19641,7 @@ function publishFacade(global) {
|
|
|
19767
19641
|
* Use of this source code is governed by an MIT-style license that can be
|
|
19768
19642
|
* found in the LICENSE file at https://angular.io/license
|
|
19769
19643
|
*/
|
|
19770
|
-
const VERSION = new Version('
|
|
19644
|
+
const VERSION = new Version('14.0.0-next.2');
|
|
19771
19645
|
|
|
19772
19646
|
/**
|
|
19773
19647
|
* @license
|
|
@@ -21780,7 +21654,7 @@ function extractTemplateEntities(rootScope) {
|
|
|
21780
21654
|
function compileClassMetadata(metadata) {
|
|
21781
21655
|
// Generate an ngDevMode guarded call to setClassMetadata with the class identifier and its
|
|
21782
21656
|
// metadata.
|
|
21783
|
-
const fnCall = importExpr(Identifiers
|
|
21657
|
+
const fnCall = importExpr(Identifiers.setClassMetadata).callFn([
|
|
21784
21658
|
metadata.type,
|
|
21785
21659
|
metadata.decorators,
|
|
21786
21660
|
metadata.ctorParameters ?? literal(null),
|
|
@@ -21808,13 +21682,13 @@ const MINIMUM_PARTIAL_LINKER_VERSION$6 = '12.0.0';
|
|
|
21808
21682
|
function compileDeclareClassMetadata(metadata) {
|
|
21809
21683
|
const definitionMap = new DefinitionMap();
|
|
21810
21684
|
definitionMap.set('minVersion', literal(MINIMUM_PARTIAL_LINKER_VERSION$6));
|
|
21811
|
-
definitionMap.set('version', literal('
|
|
21812
|
-
definitionMap.set('ngImport', importExpr(Identifiers
|
|
21685
|
+
definitionMap.set('version', literal('14.0.0-next.2'));
|
|
21686
|
+
definitionMap.set('ngImport', importExpr(Identifiers.core));
|
|
21813
21687
|
definitionMap.set('type', metadata.type);
|
|
21814
21688
|
definitionMap.set('decorators', metadata.decorators);
|
|
21815
21689
|
definitionMap.set('ctorParameters', metadata.ctorParameters);
|
|
21816
21690
|
definitionMap.set('propDecorators', metadata.propDecorators);
|
|
21817
|
-
return importExpr(Identifiers
|
|
21691
|
+
return importExpr(Identifiers.declareClassMetadata).callFn([definitionMap.toLiteralMap()]);
|
|
21818
21692
|
}
|
|
21819
21693
|
|
|
21820
21694
|
/**
|
|
@@ -21914,7 +21788,7 @@ const MINIMUM_PARTIAL_LINKER_VERSION$5 = '12.0.0';
|
|
|
21914
21788
|
*/
|
|
21915
21789
|
function compileDeclareDirectiveFromMetadata(meta) {
|
|
21916
21790
|
const definitionMap = createDirectiveDefinitionMap(meta);
|
|
21917
|
-
const expression = importExpr(Identifiers
|
|
21791
|
+
const expression = importExpr(Identifiers.declareDirective).callFn([definitionMap.toLiteralMap()]);
|
|
21918
21792
|
const type = createDirectiveType(meta);
|
|
21919
21793
|
return { expression, type, statements: [] };
|
|
21920
21794
|
}
|
|
@@ -21925,7 +21799,7 @@ function compileDeclareDirectiveFromMetadata(meta) {
|
|
|
21925
21799
|
function createDirectiveDefinitionMap(meta) {
|
|
21926
21800
|
const definitionMap = new DefinitionMap();
|
|
21927
21801
|
definitionMap.set('minVersion', literal(MINIMUM_PARTIAL_LINKER_VERSION$5));
|
|
21928
|
-
definitionMap.set('version', literal('
|
|
21802
|
+
definitionMap.set('version', literal('14.0.0-next.2'));
|
|
21929
21803
|
// e.g. `type: MyDirective`
|
|
21930
21804
|
definitionMap.set('type', meta.internalType);
|
|
21931
21805
|
// e.g. `selector: 'some-dir'`
|
|
@@ -21951,7 +21825,7 @@ function createDirectiveDefinitionMap(meta) {
|
|
|
21951
21825
|
if (meta.lifecycle.usesOnChanges) {
|
|
21952
21826
|
definitionMap.set('usesOnChanges', literal(true));
|
|
21953
21827
|
}
|
|
21954
|
-
definitionMap.set('ngImport', importExpr(Identifiers
|
|
21828
|
+
definitionMap.set('ngImport', importExpr(Identifiers.core));
|
|
21955
21829
|
return definitionMap;
|
|
21956
21830
|
}
|
|
21957
21831
|
/**
|
|
@@ -22018,7 +21892,7 @@ function compileHostMetadata(meta) {
|
|
|
22018
21892
|
*/
|
|
22019
21893
|
function compileDeclareComponentFromMetadata(meta, template, additionalTemplateInfo) {
|
|
22020
21894
|
const definitionMap = createComponentDefinitionMap(meta, template, additionalTemplateInfo);
|
|
22021
|
-
const expression = importExpr(Identifiers
|
|
21895
|
+
const expression = importExpr(Identifiers.declareComponent).callFn([definitionMap.toLiteralMap()]);
|
|
22022
21896
|
const type = createComponentType(meta);
|
|
22023
21897
|
return { expression, type, statements: [] };
|
|
22024
21898
|
}
|
|
@@ -22038,11 +21912,11 @@ function createComponentDefinitionMap(meta, template, templateInfo) {
|
|
|
22038
21912
|
definitionMap.set('viewProviders', meta.viewProviders);
|
|
22039
21913
|
definitionMap.set('animations', meta.animations);
|
|
22040
21914
|
if (meta.changeDetection !== undefined) {
|
|
22041
|
-
definitionMap.set('changeDetection', importExpr(Identifiers
|
|
21915
|
+
definitionMap.set('changeDetection', importExpr(Identifiers.ChangeDetectionStrategy)
|
|
22042
21916
|
.prop(ChangeDetectionStrategy[meta.changeDetection]));
|
|
22043
21917
|
}
|
|
22044
21918
|
if (meta.encapsulation !== ViewEncapsulation.Emulated) {
|
|
22045
|
-
definitionMap.set('encapsulation', importExpr(Identifiers
|
|
21919
|
+
definitionMap.set('encapsulation', importExpr(Identifiers.ViewEncapsulation).prop(ViewEncapsulation[meta.encapsulation]));
|
|
22046
21920
|
}
|
|
22047
21921
|
if (meta.interpolation !== DEFAULT_INTERPOLATION_CONFIG) {
|
|
22048
21922
|
definitionMap.set('interpolation', literalArr([literal(meta.interpolation.start), literal(meta.interpolation.end)]));
|
|
@@ -22146,13 +22020,13 @@ const MINIMUM_PARTIAL_LINKER_VERSION$4 = '12.0.0';
|
|
|
22146
22020
|
function compileDeclareFactoryFunction(meta) {
|
|
22147
22021
|
const definitionMap = new DefinitionMap();
|
|
22148
22022
|
definitionMap.set('minVersion', literal(MINIMUM_PARTIAL_LINKER_VERSION$4));
|
|
22149
|
-
definitionMap.set('version', literal('
|
|
22150
|
-
definitionMap.set('ngImport', importExpr(Identifiers
|
|
22023
|
+
definitionMap.set('version', literal('14.0.0-next.2'));
|
|
22024
|
+
definitionMap.set('ngImport', importExpr(Identifiers.core));
|
|
22151
22025
|
definitionMap.set('type', meta.internalType);
|
|
22152
22026
|
definitionMap.set('deps', compileDependencies(meta.deps));
|
|
22153
|
-
definitionMap.set('target', importExpr(Identifiers
|
|
22027
|
+
definitionMap.set('target', importExpr(Identifiers.FactoryTarget).prop(FactoryTarget$1[meta.target]));
|
|
22154
22028
|
return {
|
|
22155
|
-
expression: importExpr(Identifiers
|
|
22029
|
+
expression: importExpr(Identifiers.declareFactory).callFn([definitionMap.toLiteralMap()]),
|
|
22156
22030
|
statements: [],
|
|
22157
22031
|
type: createFactoryType(meta),
|
|
22158
22032
|
};
|
|
@@ -22178,7 +22052,7 @@ const MINIMUM_PARTIAL_LINKER_VERSION$3 = '12.0.0';
|
|
|
22178
22052
|
*/
|
|
22179
22053
|
function compileDeclareInjectableFromMetadata(meta) {
|
|
22180
22054
|
const definitionMap = createInjectableDefinitionMap(meta);
|
|
22181
|
-
const expression = importExpr(Identifiers
|
|
22055
|
+
const expression = importExpr(Identifiers.declareInjectable).callFn([definitionMap.toLiteralMap()]);
|
|
22182
22056
|
const type = createInjectableType(meta);
|
|
22183
22057
|
return { expression, type, statements: [] };
|
|
22184
22058
|
}
|
|
@@ -22188,8 +22062,8 @@ function compileDeclareInjectableFromMetadata(meta) {
|
|
|
22188
22062
|
function createInjectableDefinitionMap(meta) {
|
|
22189
22063
|
const definitionMap = new DefinitionMap();
|
|
22190
22064
|
definitionMap.set('minVersion', literal(MINIMUM_PARTIAL_LINKER_VERSION$3));
|
|
22191
|
-
definitionMap.set('version', literal('
|
|
22192
|
-
definitionMap.set('ngImport', importExpr(Identifiers
|
|
22065
|
+
definitionMap.set('version', literal('14.0.0-next.2'));
|
|
22066
|
+
definitionMap.set('ngImport', importExpr(Identifiers.core));
|
|
22193
22067
|
definitionMap.set('type', meta.internalType);
|
|
22194
22068
|
// Only generate providedIn property if it has a non-null value
|
|
22195
22069
|
if (meta.providedIn !== undefined) {
|
|
@@ -22236,7 +22110,7 @@ function createInjectableDefinitionMap(meta) {
|
|
|
22236
22110
|
const MINIMUM_PARTIAL_LINKER_VERSION$2 = '12.0.0';
|
|
22237
22111
|
function compileDeclareInjectorFromMetadata(meta) {
|
|
22238
22112
|
const definitionMap = createInjectorDefinitionMap(meta);
|
|
22239
|
-
const expression = importExpr(Identifiers
|
|
22113
|
+
const expression = importExpr(Identifiers.declareInjector).callFn([definitionMap.toLiteralMap()]);
|
|
22240
22114
|
const type = createInjectorType(meta);
|
|
22241
22115
|
return { expression, type, statements: [] };
|
|
22242
22116
|
}
|
|
@@ -22246,8 +22120,8 @@ function compileDeclareInjectorFromMetadata(meta) {
|
|
|
22246
22120
|
function createInjectorDefinitionMap(meta) {
|
|
22247
22121
|
const definitionMap = new DefinitionMap();
|
|
22248
22122
|
definitionMap.set('minVersion', literal(MINIMUM_PARTIAL_LINKER_VERSION$2));
|
|
22249
|
-
definitionMap.set('version', literal('
|
|
22250
|
-
definitionMap.set('ngImport', importExpr(Identifiers
|
|
22123
|
+
definitionMap.set('version', literal('14.0.0-next.2'));
|
|
22124
|
+
definitionMap.set('ngImport', importExpr(Identifiers.core));
|
|
22251
22125
|
definitionMap.set('type', meta.internalType);
|
|
22252
22126
|
definitionMap.set('providers', meta.providers);
|
|
22253
22127
|
if (meta.imports.length > 0) {
|
|
@@ -22273,7 +22147,7 @@ function createInjectorDefinitionMap(meta) {
|
|
|
22273
22147
|
const MINIMUM_PARTIAL_LINKER_VERSION$1 = '12.0.0';
|
|
22274
22148
|
function compileDeclareNgModuleFromMetadata(meta) {
|
|
22275
22149
|
const definitionMap = createNgModuleDefinitionMap(meta);
|
|
22276
|
-
const expression = importExpr(Identifiers
|
|
22150
|
+
const expression = importExpr(Identifiers.declareNgModule).callFn([definitionMap.toLiteralMap()]);
|
|
22277
22151
|
const type = createNgModuleType(meta);
|
|
22278
22152
|
return { expression, type, statements: [] };
|
|
22279
22153
|
}
|
|
@@ -22283,8 +22157,8 @@ function compileDeclareNgModuleFromMetadata(meta) {
|
|
|
22283
22157
|
function createNgModuleDefinitionMap(meta) {
|
|
22284
22158
|
const definitionMap = new DefinitionMap();
|
|
22285
22159
|
definitionMap.set('minVersion', literal(MINIMUM_PARTIAL_LINKER_VERSION$1));
|
|
22286
|
-
definitionMap.set('version', literal('
|
|
22287
|
-
definitionMap.set('ngImport', importExpr(Identifiers
|
|
22160
|
+
definitionMap.set('version', literal('14.0.0-next.2'));
|
|
22161
|
+
definitionMap.set('ngImport', importExpr(Identifiers.core));
|
|
22288
22162
|
definitionMap.set('type', meta.internalType);
|
|
22289
22163
|
// We only generate the keys in the metadata if the arrays contain values.
|
|
22290
22164
|
// We must wrap the arrays inside a function if any of the values are a forward reference to a
|
|
@@ -22331,7 +22205,7 @@ const MINIMUM_PARTIAL_LINKER_VERSION = '12.0.0';
|
|
|
22331
22205
|
*/
|
|
22332
22206
|
function compileDeclarePipeFromMetadata(meta) {
|
|
22333
22207
|
const definitionMap = createPipeDefinitionMap(meta);
|
|
22334
|
-
const expression = importExpr(Identifiers
|
|
22208
|
+
const expression = importExpr(Identifiers.declarePipe).callFn([definitionMap.toLiteralMap()]);
|
|
22335
22209
|
const type = createPipeType(meta);
|
|
22336
22210
|
return { expression, type, statements: [] };
|
|
22337
22211
|
}
|
|
@@ -22341,8 +22215,8 @@ function compileDeclarePipeFromMetadata(meta) {
|
|
|
22341
22215
|
function createPipeDefinitionMap(meta) {
|
|
22342
22216
|
const definitionMap = new DefinitionMap();
|
|
22343
22217
|
definitionMap.set('minVersion', literal(MINIMUM_PARTIAL_LINKER_VERSION));
|
|
22344
|
-
definitionMap.set('version', literal('
|
|
22345
|
-
definitionMap.set('ngImport', importExpr(Identifiers
|
|
22218
|
+
definitionMap.set('version', literal('14.0.0-next.2'));
|
|
22219
|
+
definitionMap.set('ngImport', importExpr(Identifiers.core));
|
|
22346
22220
|
// e.g. `type: MyPipe`
|
|
22347
22221
|
definitionMap.set('type', meta.internalType);
|
|
22348
22222
|
// e.g. `name: "myPipe"`
|
|
@@ -22391,5 +22265,5 @@ publishFacade(_global);
|
|
|
22391
22265
|
* found in the LICENSE file at https://angular.io/license
|
|
22392
22266
|
*/
|
|
22393
22267
|
|
|
22394
|
-
export { AST, ASTWithName, ASTWithSource, AbsoluteSourceSpan, ArrayType, AstMemoryEfficientTransformer, AstTransformer, Attribute, Binary, BinaryOperator, BinaryOperatorExpr, BindingPipe, BoundElementProperty, BuiltinType, BuiltinTypeName, CUSTOM_ELEMENTS_SCHEMA, Call, Chain, ChangeDetectionStrategy, CommaExpr, Comment, CompilerConfig, Conditional, ConditionalExpr, ConstantPool, CssSelector, DEFAULT_INTERPOLATION_CONFIG, DYNAMIC_TYPE, DeclareFunctionStmt, DeclareVarStmt, DomElementSchemaRegistry, EOF, Element, ElementSchemaRegistry, EmitterVisitorContext, EmptyExpr, Expansion, ExpansionCase, Expression, ExpressionBinding, ExpressionStatement, ExpressionType, ExternalExpr, ExternalReference, FactoryTarget$1 as FactoryTarget, FunctionExpr, HtmlParser, HtmlTagDefinition, I18NHtmlParser,
|
|
22268
|
+
export { AST, ASTWithName, ASTWithSource, AbsoluteSourceSpan, ArrayType, AstMemoryEfficientTransformer, AstTransformer, Attribute, Binary, BinaryOperator, BinaryOperatorExpr, BindingPipe, BoundElementProperty, BuiltinType, BuiltinTypeName, CUSTOM_ELEMENTS_SCHEMA, Call, Chain, ChangeDetectionStrategy, CommaExpr, Comment, CompilerConfig, Conditional, ConditionalExpr, ConstantPool, CssSelector, DEFAULT_INTERPOLATION_CONFIG, DYNAMIC_TYPE, DeclareFunctionStmt, DeclareVarStmt, DomElementSchemaRegistry, EOF, Element, ElementSchemaRegistry, EmitterVisitorContext, EmptyExpr, Expansion, ExpansionCase, Expression, ExpressionBinding, ExpressionStatement, ExpressionType, ExternalExpr, ExternalReference, FactoryTarget$1 as FactoryTarget, FunctionExpr, HtmlParser, HtmlTagDefinition, I18NHtmlParser, IfStmt, ImplicitReceiver, InstantiateExpr, Interpolation, InterpolationConfig, InvokeFunctionExpr, JSDocComment, JitEvaluator, KeyedRead, KeyedWrite, LeadingComment, Lexer, LiteralArray, LiteralArrayExpr, LiteralExpr, LiteralMap, LiteralMapExpr, LiteralPrimitive, LocalizedString, MapType, MessageBundle, NONE_TYPE, NO_ERRORS_SCHEMA, NodeWithI18n, NonNullAssert, NotExpr, ParseError, ParseErrorLevel, ParseLocation, ParseSourceFile, ParseSourceSpan, ParseSpan, ParseTreeResult, ParsedEvent, ParsedProperty, ParsedPropertyType, ParsedVariable, Parser$1 as Parser, ParserError, PrefixNot, PropertyRead, PropertyWrite, R3BoundTarget, Identifiers as R3Identifiers, R3TargetBinder, ReadKeyExpr, ReadPropExpr, ReadVarExpr, RecursiveAstVisitor, RecursiveVisitor, ResourceLoader, ReturnStatement, STRING_TYPE, SafeCall, SafeKeyedRead, SafePropertyRead, SelectorContext, SelectorListContext, SelectorMatcher, Serializer, SplitInterpolation, Statement, StmtModifier, TagContentType, TaggedTemplateExpr, TemplateBindingParseResult, TemplateLiteral, TemplateLiteralElement, Text, ThisReceiver, BoundAttribute as TmplAstBoundAttribute, BoundEvent as TmplAstBoundEvent, BoundText as TmplAstBoundText, Content as TmplAstContent, Element$1 as TmplAstElement, Icu$1 as TmplAstIcu, RecursiveVisitor$1 as TmplAstRecursiveVisitor, Reference as TmplAstReference, Template as TmplAstTemplate, Text$3 as TmplAstText, TextAttribute as TmplAstTextAttribute, Variable as TmplAstVariable, Token, TokenType, TreeError, Type, TypeModifier, TypeofExpr, Unary, UnaryOperator, UnaryOperatorExpr, VERSION, VariableBinding, Version, ViewEncapsulation, WrappedNodeExpr, WriteKeyExpr, WritePropExpr, WriteVarExpr, Xliff, Xliff2, Xmb, XmlParser, Xtb, _ParseAST, compileClassMetadata, compileComponentFromMetadata, compileDeclareClassMetadata, compileDeclareComponentFromMetadata, compileDeclareDirectiveFromMetadata, compileDeclareFactoryFunction, compileDeclareInjectableFromMetadata, compileDeclareInjectorFromMetadata, compileDeclareNgModuleFromMetadata, compileDeclarePipeFromMetadata, compileDirectiveFromMetadata, compileFactoryFunction, compileInjectable, compileInjector, compileNgModule, compilePipeFromMetadata, computeMsgId, core, createInjectableType, createMayBeForwardRefExpression, devOnlyGuardedExpression, emitDistinctChangesOnlyDefaultValue, getHtmlTagDefinition, getNsPrefix, getSafePropertyAccessString, identifierName, isIdentifier, isNgContainer, isNgContent, isNgTemplate, jsDocComment, leadingComment, literalMap, makeBindingParser, mergeNsAndName, output_ast as outputAst, parseHostBindings, parseTemplate, preserveWhitespacesDefault, publishFacade, r3JitTypeSourceSpan, sanitizeIdentifier, splitNsName, verifyHostBindings, visitAll };
|
|
22395
22269
|
//# sourceMappingURL=compiler.mjs.map
|