@angular/compiler 16.2.0-next.2 → 16.2.0-next.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/esm2022/src/compiler.mjs +3 -3
  2. package/esm2022/src/jit_compiler_facade.mjs +6 -2
  3. package/esm2022/src/output/abstract_emitter.mjs +4 -1
  4. package/esm2022/src/output/output_ast.mjs +22 -1
  5. package/esm2022/src/render3/partial/class_metadata.mjs +1 -1
  6. package/esm2022/src/render3/partial/directive.mjs +1 -1
  7. package/esm2022/src/render3/partial/factory.mjs +1 -1
  8. package/esm2022/src/render3/partial/injectable.mjs +1 -1
  9. package/esm2022/src/render3/partial/injector.mjs +1 -1
  10. package/esm2022/src/render3/partial/ng_module.mjs +1 -1
  11. package/esm2022/src/render3/partial/pipe.mjs +1 -1
  12. package/esm2022/src/render3/r3_ast.mjs +109 -1
  13. package/esm2022/src/render3/r3_deferred_blocks.mjs +156 -0
  14. package/esm2022/src/render3/r3_deferred_triggers.mjs +275 -0
  15. package/esm2022/src/render3/r3_template_transform.mjs +40 -12
  16. package/esm2022/src/render3/view/t2_binder.mjs +61 -6
  17. package/esm2022/src/render3/view/template.mjs +17 -3
  18. package/esm2022/src/template/pipeline/ir/src/enums.mjs +21 -9
  19. package/esm2022/src/template/pipeline/ir/src/expression.mjs +4 -1
  20. package/esm2022/src/template/pipeline/ir/src/ops/update.mjs +42 -1
  21. package/esm2022/src/template/pipeline/src/emit.mjs +8 -6
  22. package/esm2022/src/template/pipeline/src/ingest.mjs +25 -3
  23. package/esm2022/src/template/pipeline/src/instruction.mjs +35 -8
  24. package/esm2022/src/template/pipeline/src/phases/attribute_extraction.mjs +2 -1
  25. package/esm2022/src/template/pipeline/src/phases/chaining.mjs +11 -1
  26. package/esm2022/src/template/pipeline/src/phases/naming.mjs +38 -9
  27. package/esm2022/src/template/pipeline/src/phases/property_ordering.mjs +82 -0
  28. package/esm2022/src/template/pipeline/src/phases/reify.mjs +10 -1
  29. package/esm2022/src/template/pipeline/src/phases/var_counting.mjs +13 -8
  30. package/esm2022/src/template_parser/binding_parser.mjs +4 -4
  31. package/esm2022/src/util.mjs +2 -8
  32. package/esm2022/src/version.mjs +1 -1
  33. package/fesm2022/compiler.mjs +1322 -454
  34. package/fesm2022/compiler.mjs.map +1 -1
  35. package/fesm2022/testing.mjs +1 -1
  36. package/index.d.ts +120 -2
  37. package/package.json +2 -2
  38. package/testing/index.d.ts +1 -1
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Angular v16.2.0-next.2
2
+ * @license Angular v16.2.0-next.3
3
3
  * (c) 2010-2022 Google LLC. https://angular.io/
4
4
  * License: MIT
5
5
  */
package/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Angular v16.2.0-next.2
2
+ * @license Angular v16.2.0-next.3
3
3
  * (c) 2010-2022 Google LLC. https://angular.io/
4
4
  * License: MIT
5
5
  */
@@ -391,7 +391,7 @@ declare class BindingParser {
391
391
  parsePropertyInterpolation(name: string, value: string, sourceSpan: ParseSourceSpan, valueSpan: ParseSourceSpan | undefined, targetMatchableAttrs: string[][], targetProps: ParsedProperty[], keySpan: ParseSourceSpan, interpolatedTokens: InterpolatedAttributeToken[] | InterpolatedTextToken[] | null): boolean;
392
392
  private _parsePropertyAst;
393
393
  private _parseAnimation;
394
- private _parseBinding;
394
+ parseBinding(value: string, isHostBinding: boolean, sourceSpan: ParseSourceSpan, absoluteOffset: number): ASTWithSource;
395
395
  createBoundElementProperty(elementSelector: string, boundProp: ParsedProperty, skipValidation?: boolean, mapPropertyName?: boolean): BoundElementProperty;
396
396
  parseEvent(name: string, expression: string, isAssignmentEvent: boolean, sourceSpan: ParseSourceSpan, handlerSpan: ParseSourceSpan, targetMatchableAttrs: string[][], targetEvents: ParsedEvent[], keySpan: ParseSourceSpan): void;
397
397
  calcPossibleSecurityContexts(selector: string, propName: string, isAttribute: boolean): SecurityContext[];
@@ -1023,6 +1023,15 @@ export declare class DomElementSchemaRegistry extends ElementSchemaRegistry {
1023
1023
 
1024
1024
  export declare const DYNAMIC_TYPE: BuiltinType;
1025
1025
 
1026
+ export declare class DynamicImportExpr extends Expression {
1027
+ url: string;
1028
+ constructor(url: string, sourceSpan?: ParseSourceSpan | null);
1029
+ isEquivalent(e: Expression): boolean;
1030
+ isConstant(): boolean;
1031
+ visitExpression(visitor: ExpressionVisitor, context: any): any;
1032
+ clone(): DynamicImportExpr;
1033
+ }
1034
+
1026
1035
  declare class Element_2 extends NodeWithI18n {
1027
1036
  name: string;
1028
1037
  attrs: Attribute[];
@@ -1200,6 +1209,7 @@ export declare interface ExpressionVisitor {
1200
1209
  visitLocalizedString(ast: LocalizedString, context: any): any;
1201
1210
  visitExternalExpr(ast: ExternalExpr, context: any): any;
1202
1211
  visitConditionalExpr(ast: ConditionalExpr, context: any): any;
1212
+ visitDynamicImportExpr(ast: DynamicImportExpr, context: any): any;
1203
1213
  visitNotExpr(ast: NotExpr, context: any): any;
1204
1214
  visitFunctionExpr(ast: FunctionExpr, context: any): any;
1205
1215
  visitUnaryOperatorExpr(ast: UnaryOperatorExpr, context: any): any;
@@ -1998,6 +2008,7 @@ declare namespace outputAst {
1998
2008
  ExternalExpr,
1999
2009
  ExternalReference,
2000
2010
  ConditionalExpr,
2011
+ DynamicImportExpr,
2001
2012
  NotExpr,
2002
2013
  FnParam,
2003
2014
  FunctionExpr,
@@ -2620,6 +2631,11 @@ export declare interface ParseTemplateOptions {
2620
2631
  * rules on a case by case basis, instead of for their whole project within a configuration file.
2621
2632
  */
2622
2633
  collectCommentNodes?: boolean;
2634
+ /**
2635
+ * Names of the blocks that should be enabled. E.g. `enabledBlockTypes: new Set(['defer'])`
2636
+ * would allow usages of `{#defer}{/defer}` in templates.
2637
+ */
2638
+ enabledBlockTypes?: Set<string>;
2623
2639
  }
2624
2640
 
2625
2641
  export declare class ParseTreeResult {
@@ -4114,6 +4130,7 @@ declare class RecursiveAstVisitor_2 implements StatementVisitor, ExpressionVisit
4114
4130
  visitWriteVarExpr(ast: WriteVarExpr, context: any): any;
4115
4131
  visitWriteKeyExpr(ast: WriteKeyExpr, context: any): any;
4116
4132
  visitWritePropExpr(ast: WritePropExpr, context: any): any;
4133
+ visitDynamicImportExpr(ast: DynamicImportExpr, context: any): any;
4117
4134
  visitInvokeFunctionExpr(ast: InvokeFunctionExpr, context: any): any;
4118
4135
  visitTaggedTemplateExpr(ast: TaggedTemplateExpr, context: any): any;
4119
4136
  visitInstantiateExpr(ast: InstantiateExpr, context: any): any;
@@ -4377,6 +4394,18 @@ declare namespace t {
4377
4394
  TmplAstBoundAttribute as BoundAttribute,
4378
4395
  TmplAstBoundEvent as BoundEvent,
4379
4396
  TmplAstElement as Element,
4397
+ TmplAstDeferredTrigger as DeferredTrigger,
4398
+ TmplAstBoundDeferredTrigger as BoundDeferredTrigger,
4399
+ TmplAstIdleDeferredTrigger as IdleDeferredTrigger,
4400
+ TmplAstImmediateDeferredTrigger as ImmediateDeferredTrigger,
4401
+ TmplAstHoverDeferredTrigger as HoverDeferredTrigger,
4402
+ TmplAstTimerDeferredTrigger as TimerDeferredTrigger,
4403
+ TmplAstInteractionDeferredTrigger as InteractionDeferredTrigger,
4404
+ TmplAstViewportDeferredTrigger as ViewportDeferredTrigger,
4405
+ TmplAstDeferredBlockPlaceholder as DeferredBlockPlaceholder,
4406
+ TmplAstDeferredBlockLoading as DeferredBlockLoading,
4407
+ TmplAstDeferredBlockError as DeferredBlockError,
4408
+ TmplAstDeferredBlock as DeferredBlock,
4380
4409
  TmplAstTemplate as Template,
4381
4410
  TmplAstContent as Content,
4382
4411
  TmplAstVariable as Variable,
@@ -4547,6 +4576,11 @@ export declare class TmplAstBoundAttribute implements TmplAstNode {
4547
4576
  visit<Result>(visitor: Visitor_3<Result>): Result;
4548
4577
  }
4549
4578
 
4579
+ export declare class TmplAstBoundDeferredTrigger extends TmplAstDeferredTrigger {
4580
+ value: AST;
4581
+ constructor(value: AST, sourceSpan: ParseSourceSpan);
4582
+ }
4583
+
4550
4584
  export declare class TmplAstBoundEvent implements TmplAstNode {
4551
4585
  name: string;
4552
4586
  type: ParsedEventType;
@@ -4579,6 +4613,56 @@ export declare class TmplAstContent implements TmplAstNode {
4579
4613
  visit<Result>(visitor: Visitor_3<Result>): Result;
4580
4614
  }
4581
4615
 
4616
+ export declare class TmplAstDeferredBlock implements TmplAstNode {
4617
+ children: TmplAstNode[];
4618
+ triggers: TmplAstDeferredTrigger[];
4619
+ prefetchTriggers: TmplAstDeferredTrigger[];
4620
+ placeholder: TmplAstDeferredBlockPlaceholder | null;
4621
+ loading: TmplAstDeferredBlockLoading | null;
4622
+ error: TmplAstDeferredBlockError | null;
4623
+ sourceSpan: ParseSourceSpan;
4624
+ startSourceSpan: ParseSourceSpan;
4625
+ endSourceSpan: ParseSourceSpan | null;
4626
+ constructor(children: TmplAstNode[], triggers: TmplAstDeferredTrigger[], prefetchTriggers: TmplAstDeferredTrigger[], placeholder: TmplAstDeferredBlockPlaceholder | null, loading: TmplAstDeferredBlockLoading | null, error: TmplAstDeferredBlockError | null, sourceSpan: ParseSourceSpan, startSourceSpan: ParseSourceSpan, endSourceSpan: ParseSourceSpan | null);
4627
+ visit<Result>(visitor: Visitor_3<Result>): Result;
4628
+ }
4629
+
4630
+ export declare class TmplAstDeferredBlockError implements TmplAstNode {
4631
+ children: TmplAstNode[];
4632
+ sourceSpan: ParseSourceSpan;
4633
+ startSourceSpan: ParseSourceSpan;
4634
+ endSourceSpan: ParseSourceSpan | null;
4635
+ constructor(children: TmplAstNode[], sourceSpan: ParseSourceSpan, startSourceSpan: ParseSourceSpan, endSourceSpan: ParseSourceSpan | null);
4636
+ visit<Result>(visitor: Visitor_3<Result>): Result;
4637
+ }
4638
+
4639
+ export declare class TmplAstDeferredBlockLoading implements TmplAstNode {
4640
+ children: TmplAstNode[];
4641
+ afterTime: number | null;
4642
+ minimumTime: number | null;
4643
+ sourceSpan: ParseSourceSpan;
4644
+ startSourceSpan: ParseSourceSpan;
4645
+ endSourceSpan: ParseSourceSpan | null;
4646
+ constructor(children: TmplAstNode[], afterTime: number | null, minimumTime: number | null, sourceSpan: ParseSourceSpan, startSourceSpan: ParseSourceSpan, endSourceSpan: ParseSourceSpan | null);
4647
+ visit<Result>(visitor: Visitor_3<Result>): Result;
4648
+ }
4649
+
4650
+ export declare class TmplAstDeferredBlockPlaceholder implements TmplAstNode {
4651
+ children: TmplAstNode[];
4652
+ minimumTime: number | null;
4653
+ sourceSpan: ParseSourceSpan;
4654
+ startSourceSpan: ParseSourceSpan;
4655
+ endSourceSpan: ParseSourceSpan | null;
4656
+ constructor(children: TmplAstNode[], minimumTime: number | null, sourceSpan: ParseSourceSpan, startSourceSpan: ParseSourceSpan, endSourceSpan: ParseSourceSpan | null);
4657
+ visit<Result>(visitor: Visitor_3<Result>): Result;
4658
+ }
4659
+
4660
+ export declare abstract class TmplAstDeferredTrigger implements TmplAstNode {
4661
+ sourceSpan: ParseSourceSpan;
4662
+ constructor(sourceSpan: ParseSourceSpan);
4663
+ visit<Result>(visitor: Visitor_3<Result>): Result;
4664
+ }
4665
+
4582
4666
  export declare class TmplAstElement implements TmplAstNode {
4583
4667
  name: string;
4584
4668
  attributes: TmplAstTextAttribute[];
@@ -4594,6 +4678,9 @@ export declare class TmplAstElement implements TmplAstNode {
4594
4678
  visit<Result>(visitor: Visitor_3<Result>): Result;
4595
4679
  }
4596
4680
 
4681
+ export declare class TmplAstHoverDeferredTrigger extends TmplAstDeferredTrigger {
4682
+ }
4683
+
4597
4684
  export declare class TmplAstIcu implements TmplAstNode {
4598
4685
  vars: {
4599
4686
  [name: string]: TmplAstBoundText;
@@ -4611,6 +4698,17 @@ export declare class TmplAstIcu implements TmplAstNode {
4611
4698
  visit<Result>(visitor: Visitor_3<Result>): Result;
4612
4699
  }
4613
4700
 
4701
+ export declare class TmplAstIdleDeferredTrigger extends TmplAstDeferredTrigger {
4702
+ }
4703
+
4704
+ export declare class TmplAstImmediateDeferredTrigger extends TmplAstDeferredTrigger {
4705
+ }
4706
+
4707
+ export declare class TmplAstInteractionDeferredTrigger extends TmplAstDeferredTrigger {
4708
+ reference: string | null;
4709
+ constructor(reference: string | null, sourceSpan: ParseSourceSpan);
4710
+ }
4711
+
4614
4712
  export declare interface TmplAstNode {
4615
4713
  sourceSpan: ParseSourceSpan;
4616
4714
  visit<Result>(visitor: Visitor_3<Result>): Result;
@@ -4619,6 +4717,10 @@ export declare interface TmplAstNode {
4619
4717
  export declare class TmplAstRecursiveVisitor implements Visitor_3<void> {
4620
4718
  visitElement(element: TmplAstElement): void;
4621
4719
  visitTemplate(template: TmplAstTemplate): void;
4720
+ visitDeferredBlock(deferred: TmplAstDeferredBlock): void;
4721
+ visitDeferredBlockPlaceholder(block: TmplAstDeferredBlockPlaceholder): void;
4722
+ visitDeferredBlockError(block: TmplAstDeferredBlockError): void;
4723
+ visitDeferredBlockLoading(block: TmplAstDeferredBlockLoading): void;
4622
4724
  visitContent(content: TmplAstContent): void;
4623
4725
  visitVariable(variable: TmplAstVariable): void;
4624
4726
  visitReference(reference: TmplAstReference): void;
@@ -4628,6 +4730,7 @@ export declare class TmplAstRecursiveVisitor implements Visitor_3<void> {
4628
4730
  visitText(text: TmplAstText): void;
4629
4731
  visitBoundText(text: TmplAstBoundText): void;
4630
4732
  visitIcu(icu: TmplAstIcu): void;
4733
+ visitDeferredTrigger(trigger: TmplAstDeferredTrigger): void;
4631
4734
  }
4632
4735
 
4633
4736
  export declare class TmplAstReference implements TmplAstNode {
@@ -4681,6 +4784,11 @@ export declare class TmplAstTextAttribute implements TmplAstNode {
4681
4784
  visit<Result>(visitor: Visitor_3<Result>): Result;
4682
4785
  }
4683
4786
 
4787
+ export declare class TmplAstTimerDeferredTrigger extends TmplAstDeferredTrigger {
4788
+ delay: number;
4789
+ constructor(delay: number, sourceSpan: ParseSourceSpan);
4790
+ }
4791
+
4684
4792
  export declare class TmplAstVariable implements TmplAstNode {
4685
4793
  name: string;
4686
4794
  value: string;
@@ -4691,6 +4799,11 @@ export declare class TmplAstVariable implements TmplAstNode {
4691
4799
  visit<Result>(visitor: Visitor_3<Result>): Result;
4692
4800
  }
4693
4801
 
4802
+ export declare class TmplAstViewportDeferredTrigger extends TmplAstDeferredTrigger {
4803
+ reference: string | null;
4804
+ constructor(reference: string | null, sourceSpan: ParseSourceSpan);
4805
+ }
4806
+
4694
4807
  export declare class Token {
4695
4808
  index: number;
4696
4809
  end: number;
@@ -5008,6 +5121,11 @@ declare interface Visitor_3<Result = any> {
5008
5121
  visitText(text: TmplAstText): Result;
5009
5122
  visitBoundText(text: TmplAstBoundText): Result;
5010
5123
  visitIcu(icu: TmplAstIcu): Result;
5124
+ visitDeferredBlock(deferred: TmplAstDeferredBlock): Result;
5125
+ visitDeferredBlockPlaceholder(block: TmplAstDeferredBlockPlaceholder): Result;
5126
+ visitDeferredBlockError(block: TmplAstDeferredBlockError): Result;
5127
+ visitDeferredBlockLoading(block: TmplAstDeferredBlockLoading): Result;
5128
+ visitDeferredTrigger(trigger: TmplAstDeferredTrigger): Result;
5011
5129
  }
5012
5130
 
5013
5131
  export declare class WrappedNodeExpr<T> extends Expression {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@angular/compiler",
3
- "version": "16.2.0-next.2",
3
+ "version": "16.2.0-next.3",
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": "16.2.0-next.2"
14
+ "@angular/core": "16.2.0-next.3"
15
15
  },
16
16
  "peerDependenciesMeta": {
17
17
  "@angular/core": {
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Angular v16.2.0-next.2
2
+ * @license Angular v16.2.0-next.3
3
3
  * (c) 2010-2022 Google LLC. https://angular.io/
4
4
  * License: MIT
5
5
  */