@angular/compiler 17.3.0-rc.0 → 18.0.0-next.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/esm2022/src/compiler.mjs +2 -2
  2. package/esm2022/src/expression_parser/ast.mjs +25 -1
  3. package/esm2022/src/jit_compiler_facade.mjs +13 -32
  4. package/esm2022/src/render3/partial/class_metadata.mjs +1 -1
  5. package/esm2022/src/render3/partial/directive.mjs +1 -1
  6. package/esm2022/src/render3/partial/factory.mjs +1 -1
  7. package/esm2022/src/render3/partial/injectable.mjs +1 -1
  8. package/esm2022/src/render3/partial/injector.mjs +1 -1
  9. package/esm2022/src/render3/partial/ng_module.mjs +1 -1
  10. package/esm2022/src/render3/partial/pipe.mjs +1 -1
  11. package/esm2022/src/render3/r3_ast.mjs +4 -3
  12. package/esm2022/src/render3/r3_class_metadata_compiler.mjs +3 -3
  13. package/esm2022/src/render3/r3_control_flow.mjs +5 -1
  14. package/esm2022/src/render3/r3_template_transform.mjs +3 -2
  15. package/esm2022/src/render3/view/api.mjs +1 -1
  16. package/esm2022/src/render3/view/compiler.mjs +89 -353
  17. package/esm2022/src/render3/view/i18n/util.mjs +1 -85
  18. package/esm2022/src/render3/view/query_generation.mjs +5 -2
  19. package/esm2022/src/render3/view/template.mjs +1 -2248
  20. package/esm2022/src/render3/view/util.mjs +3 -134
  21. package/esm2022/src/template/pipeline/ir/src/ops/create.mjs +3 -3
  22. package/esm2022/src/template/pipeline/src/compilation.mjs +3 -3
  23. package/esm2022/src/template/pipeline/src/emit.mjs +3 -3
  24. package/esm2022/src/template/pipeline/src/ingest.mjs +38 -29
  25. package/esm2022/src/template/pipeline/src/phases/i18n_const_collection.mjs +20 -2
  26. package/esm2022/src/template/pipeline/src/phases/naming.mjs +2 -2
  27. package/esm2022/src/template/pipeline/src/phases/parse_extracted_styles.mjs +81 -3
  28. package/esm2022/src/template/pipeline/src/phases/resolve_defer_deps_fns.mjs +31 -0
  29. package/esm2022/src/template/pipeline/src/phases/transform_two_way_binding_set.mjs +11 -2
  30. package/esm2022/src/template_parser/binding_parser.mjs +9 -9
  31. package/esm2022/src/version.mjs +1 -1
  32. package/fesm2022/compiler.mjs +11490 -15729
  33. package/fesm2022/compiler.mjs.map +1 -1
  34. package/index.d.ts +54 -45
  35. package/package.json +2 -2
  36. package/esm2022/src/compiler_util/expression_converter.mjs +0 -852
  37. package/esm2022/src/render3/view/i18n/context.mjs +0 -212
  38. package/esm2022/src/render3/view/style_parser.mjs +0 -87
  39. package/esm2022/src/render3/view/styling_builder.mjs +0 -534
  40. package/esm2022/src/template/pipeline/src/phases/create_defer_deps_fns.mjs +0 -50
  41. package/esm2022/src/template/pipeline/switch/index.mjs +0 -2
package/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Angular v17.3.0-rc.0
2
+ * @license Angular v18.0.0-next.0
3
3
  * (c) 2010-2022 Google LLC. https://angular.io/
4
4
  * License: MIT
5
5
  */
@@ -435,7 +435,7 @@ export declare class BindingPipe extends ASTWithName {
435
435
  visit(visitor: AstVisitor, context?: any): any;
436
436
  }
437
437
 
438
- export declare const enum BindingType {
438
+ export declare enum BindingType {
439
439
  Property = 0,
440
440
  Attribute = 1,
441
441
  Class = 2,
@@ -689,10 +689,7 @@ export declare type CompileClassMetadataFn = (metadata: R3ClassMetadata) => outp
689
689
  * Similar to the `setClassMetadata` call, it's wrapped into the `ngDevMode`
690
690
  * check to tree-shake away this code in production mode.
691
691
  */
692
- export declare function compileComponentClassMetadata(metadata: R3ClassMetadata, deferrableTypes: Map<string, {
693
- importPath: string;
694
- isDefaultImport: boolean;
695
- }> | null): outputAst.Expression;
692
+ export declare function compileComponentClassMetadata(metadata: R3ClassMetadata, deferrableTypes: R3DeferPerComponentDependency[] | null): outputAst.Expression;
696
693
 
697
694
  /**
698
695
  * Compile a component for the render3 runtime as defined by the `R3ComponentMetadata`.
@@ -727,6 +724,11 @@ export declare function compileDeclareNgModuleFromMetadata(meta: R3NgModuleMetad
727
724
  */
728
725
  export declare function compileDeclarePipeFromMetadata(meta: R3PipeMetadata): R3CompiledExpression;
729
726
 
727
+ /**
728
+ * Compiles the dependency resolver function for a defer block.
729
+ */
730
+ export declare function compileDeferResolverFunction(meta: R3DeferResolverFunctionMetadata): outputAst.ArrowFunctionExpr;
731
+
730
732
  /**
731
733
  * Compile a directive for the render3 runtime as defined by the `R3DirectiveMetadata`.
732
734
  */
@@ -2237,7 +2239,7 @@ export declare class ParsedEvent {
2237
2239
  constructor(name: string, targetOrPhase: string, type: ParsedEventType, handler: ASTWithSource, sourceSpan: ParseSourceSpan, handlerSpan: ParseSourceSpan, keySpan: ParseSourceSpan);
2238
2240
  }
2239
2241
 
2240
- export declare const enum ParsedEventType {
2242
+ export declare enum ParsedEventType {
2241
2243
  Regular = 0,
2242
2244
  Animation = 1,
2243
2245
  TwoWay = 2
@@ -2794,6 +2796,17 @@ export declare interface R3CompiledExpression {
2794
2796
  statements: outputAst.Statement[];
2795
2797
  }
2796
2798
 
2799
+ /**
2800
+ * Information about the deferred blocks in a component's template.
2801
+ */
2802
+ export declare type R3ComponentDeferMetadata = {
2803
+ mode: DeferBlockDepsEmitMode.PerBlock;
2804
+ blocks: Map<t.DeferredBlock, outputAst.ArrowFunctionExpr | null>;
2805
+ } | {
2806
+ mode: DeferBlockDepsEmitMode.PerComponent;
2807
+ dependenciesFn: outputAst.ArrowFunctionExpr | null;
2808
+ };
2809
+
2797
2810
  /**
2798
2811
  * Information needed to compile a component for the render3 runtime.
2799
2812
  */
@@ -2817,29 +2830,8 @@ export declare interface R3ComponentMetadata<DeclarationT extends R3TemplateDepe
2817
2830
  preserveWhitespaces?: boolean;
2818
2831
  };
2819
2832
  declarations: DeclarationT[];
2820
- /**
2821
- * Map of all types that can be defer loaded (ts.ClassDeclaration) ->
2822
- * corresponding import declaration (ts.ImportDeclaration) within
2823
- * the current source file.
2824
- */
2825
- deferrableDeclToImportDecl: Map<outputAst.Expression, outputAst.Expression>;
2826
- /**
2827
- * Map of `@defer` blocks -> their corresponding metadata.
2828
- */
2829
- deferBlocks: Map<t.DeferredBlock, R3DeferBlockMetadata>;
2830
- /**
2831
- * Defines how dynamic imports for deferred dependencies should be grouped:
2832
- * - either in a function on per-component basis (in case of local compilation)
2833
- * - or in a function on per-block basis (in full compilation mode)
2834
- */
2835
- deferBlockDepsEmitMode: DeferBlockDepsEmitMode;
2836
- /**
2837
- * Map of deferrable symbol names -> corresponding import paths.
2838
- */
2839
- deferrableTypes: Map<string, {
2840
- importPath: string;
2841
- isDefaultImport: boolean;
2842
- }>;
2833
+ /** Metadata related to the deferred blocks in the component's template. */
2834
+ defer: R3ComponentDeferMetadata;
2843
2835
  /**
2844
2836
  * Specifies how the 'directives' and/or `pipes` array, if generated, need to be emitted.
2845
2837
  */
@@ -2894,7 +2886,6 @@ export declare interface R3ComponentMetadata<DeclarationT extends R3TemplateDepe
2894
2886
  * not be set. If component has empty array imports then this field is not set.
2895
2887
  */
2896
2888
  rawImports?: outputAst.Expression;
2897
- useTemplatePipeline: boolean;
2898
2889
  }
2899
2890
 
2900
2891
  /**
@@ -3398,23 +3389,13 @@ export declare interface R3DeclareQueryMetadata {
3398
3389
  export declare type R3DeclareTemplateDependencyMetadata = R3DeclareDirectiveDependencyMetadata | R3DeclarePipeDependencyMetadata | R3DeclareNgModuleDependencyMetadata;
3399
3390
 
3400
3391
  /**
3401
- * Information necessary to compile a `defer` block.
3402
- */
3403
- export declare interface R3DeferBlockMetadata {
3404
- /** Dependencies used within the block. */
3405
- deps: R3DeferBlockTemplateDependency[];
3406
- /** Mapping between triggers and the DOM nodes they refer to. */
3407
- triggerElements: Map<t.DeferredTrigger, t.Element | null>;
3408
- }
3409
-
3410
- /**
3411
- * Describes a dependency used within a `@defer` block.
3392
+ * Information about a single dependency of a defer block in `PerBlock` mode.
3412
3393
  */
3413
- export declare interface R3DeferBlockTemplateDependency {
3394
+ export declare interface R3DeferPerBlockDependency {
3414
3395
  /**
3415
3396
  * Reference to a dependency.
3416
3397
  */
3417
- type: outputAst.WrappedNodeExpr<unknown>;
3398
+ typeReference: outputAst.Expression;
3418
3399
  /**
3419
3400
  * Dependency class name.
3420
3401
  */
@@ -3433,6 +3414,35 @@ export declare interface R3DeferBlockTemplateDependency {
3433
3414
  isDefaultImport: boolean;
3434
3415
  }
3435
3416
 
3417
+ /**
3418
+ * Information about a single dependency of a defer block in `PerComponent` mode.
3419
+ */
3420
+ export declare interface R3DeferPerComponentDependency {
3421
+ /**
3422
+ * Dependency class name.
3423
+ */
3424
+ symbolName: string;
3425
+ /**
3426
+ * Import path where this dependency is located.
3427
+ */
3428
+ importPath: string;
3429
+ /**
3430
+ * Whether the symbol is the default export.
3431
+ */
3432
+ isDefaultImport: boolean;
3433
+ }
3434
+
3435
+ /**
3436
+ * Information needed to compile the defer block resolver function.
3437
+ */
3438
+ export declare type R3DeferResolverFunctionMetadata = {
3439
+ mode: DeferBlockDepsEmitMode.PerBlock;
3440
+ dependencies: R3DeferPerBlockDependency[];
3441
+ } | {
3442
+ mode: DeferBlockDepsEmitMode.PerComponent;
3443
+ dependencies: R3DeferPerComponentDependency[];
3444
+ };
3445
+
3436
3446
  declare interface R3DelegatedFnOrClassMetadata extends R3ConstructorFactoryMetadata {
3437
3447
  delegate: outputAst.Expression;
3438
3448
  delegateType: R3FactoryDelegateType;
@@ -3649,7 +3659,6 @@ export declare interface R3HostMetadata {
3649
3659
  styleAttr?: string;
3650
3660
  classAttr?: string;
3651
3661
  };
3652
- useTemplatePipeline: boolean;
3653
3662
  }
3654
3663
 
3655
3664
  export declare class R3Identifiers {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@angular/compiler",
3
- "version": "17.3.0-rc.0",
3
+ "version": "18.0.0-next.0",
4
4
  "description": "Angular - the compiler library",
5
5
  "author": "angular",
6
6
  "license": "MIT",
@@ -11,7 +11,7 @@
11
11
  "tslib": "^2.3.0"
12
12
  },
13
13
  "peerDependencies": {
14
- "@angular/core": "17.3.0-rc.0"
14
+ "@angular/core": "18.0.0-next.0"
15
15
  },
16
16
  "peerDependenciesMeta": {
17
17
  "@angular/core": {