@angular/compiler 17.0.0-next.4 → 17.0.0-next.5
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/esm2022/src/render3/partial/class_metadata.mjs +1 -1
- package/esm2022/src/render3/partial/directive.mjs +1 -1
- package/esm2022/src/render3/partial/factory.mjs +1 -1
- package/esm2022/src/render3/partial/injectable.mjs +1 -1
- package/esm2022/src/render3/partial/injector.mjs +1 -1
- package/esm2022/src/render3/partial/ng_module.mjs +1 -1
- package/esm2022/src/render3/partial/pipe.mjs +1 -1
- package/esm2022/src/render3/r3_ast.mjs +10 -3
- package/esm2022/src/render3/r3_control_flow.mjs +16 -9
- package/esm2022/src/render3/r3_deferred_triggers.mjs +7 -7
- package/esm2022/src/render3/r3_module_compiler.mjs +9 -11
- package/esm2022/src/render3/view/compiler.mjs +4 -1
- package/esm2022/src/render3/view/t2_api.mjs +1 -1
- package/esm2022/src/render3/view/t2_binder.mjs +178 -78
- package/esm2022/src/render3/view/template.mjs +32 -46
- package/esm2022/src/template/pipeline/ir/src/enums.mjs +14 -7
- package/esm2022/src/template/pipeline/ir/src/expression.mjs +3 -1
- package/esm2022/src/template/pipeline/ir/src/ops/create.mjs +28 -3
- package/esm2022/src/template/pipeline/src/compilation.mjs +6 -1
- package/esm2022/src/template/pipeline/src/conversion.mjs +7 -1
- package/esm2022/src/template/pipeline/src/emit.mjs +7 -1
- package/esm2022/src/template/pipeline/src/ingest.mjs +16 -3
- package/esm2022/src/template/pipeline/src/instruction.mjs +19 -3
- package/esm2022/src/template/pipeline/src/phases/const_collection.mjs +22 -29
- package/esm2022/src/template/pipeline/src/phases/generate_projection_def.mjs +46 -0
- package/esm2022/src/template/pipeline/src/phases/i18n_const_collection.mjs +33 -0
- package/esm2022/src/template/pipeline/src/phases/phase_remove_content_selectors.mjs +39 -0
- package/esm2022/src/template/pipeline/src/phases/reify.mjs +11 -2
- package/esm2022/src/version.mjs +1 -1
- package/fesm2022/compiler.mjs +516 -247
- package/fesm2022/compiler.mjs.map +1 -1
- package/fesm2022/testing.mjs +1 -1
- package/index.d.ts +53 -40
- package/package.json +3 -3
- package/testing/index.d.ts +1 -1
package/fesm2022/testing.mjs
CHANGED
package/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Angular v17.0.0-next.
|
|
2
|
+
* @license Angular v17.0.0-next.5
|
|
3
3
|
* (c) 2010-2022 Google LLC. https://angular.io/
|
|
4
4
|
* License: MIT
|
|
5
5
|
*/
|
|
@@ -500,10 +500,7 @@ export declare interface BoundTarget<DirectiveT extends DirectiveMeta> {
|
|
|
500
500
|
* For a given `Reference`, get the reference's target - either an `Element`, a `Template`, or
|
|
501
501
|
* a directive on a particular node.
|
|
502
502
|
*/
|
|
503
|
-
getReferenceTarget(ref: TmplAstReference):
|
|
504
|
-
directive: DirectiveT;
|
|
505
|
-
node: TmplAstElement | TmplAstTemplate;
|
|
506
|
-
} | TmplAstElement | TmplAstTemplate | null;
|
|
503
|
+
getReferenceTarget(ref: TmplAstReference): ReferenceTarget<DirectiveT> | null;
|
|
507
504
|
/**
|
|
508
505
|
* For a given binding, get the entity to which the binding is being made.
|
|
509
506
|
*
|
|
@@ -521,25 +518,24 @@ export declare interface BoundTarget<DirectiveT extends DirectiveMeta> {
|
|
|
521
518
|
*/
|
|
522
519
|
getExpressionTarget(expr: AST): TmplAstReference | TmplAstVariable | null;
|
|
523
520
|
/**
|
|
524
|
-
* Given a particular `Reference` or `Variable`, get the `
|
|
521
|
+
* Given a particular `Reference` or `Variable`, get the `ScopedNode` which created it.
|
|
525
522
|
*
|
|
526
|
-
* All `Variable`s are defined on
|
|
527
|
-
* from the `Target`.
|
|
528
|
-
* `Template`. Returns `null` otherwise.
|
|
523
|
+
* All `Variable`s are defined on node, so this will always return a value for a `Variable`
|
|
524
|
+
* from the `Target`. Returns `null` otherwise.
|
|
529
525
|
*/
|
|
530
|
-
|
|
526
|
+
getDefinitionNodeOfSymbol(symbol: TmplAstReference | TmplAstVariable): ScopedNode | null;
|
|
531
527
|
/**
|
|
532
|
-
* Get the nesting level of a particular `
|
|
528
|
+
* Get the nesting level of a particular `ScopedNode`.
|
|
533
529
|
*
|
|
534
|
-
* This starts at 1 for top-level
|
|
530
|
+
* This starts at 1 for top-level nodes within the `Target` and increases for nodes
|
|
535
531
|
* nested at deeper levels.
|
|
536
532
|
*/
|
|
537
|
-
getNestingLevel(
|
|
533
|
+
getNestingLevel(node: ScopedNode): number;
|
|
538
534
|
/**
|
|
539
|
-
* Get all `Reference`s and `Variables` visible within the given `
|
|
540
|
-
* if `null` is passed).
|
|
535
|
+
* Get all `Reference`s and `Variables` visible within the given `ScopedNode` (or at the top
|
|
536
|
+
* level, if `null` is passed).
|
|
541
537
|
*/
|
|
542
|
-
|
|
538
|
+
getEntitiesInScope(node: ScopedNode | null): ReadonlySet<TmplAstReference | TmplAstVariable>;
|
|
543
539
|
/**
|
|
544
540
|
* Get a list of all the directives used by the target,
|
|
545
541
|
* including directives from `{#defer}` blocks.
|
|
@@ -564,6 +560,12 @@ export declare interface BoundTarget<DirectiveT extends DirectiveMeta> {
|
|
|
564
560
|
* Get a list of all {#defer} blocks used by the target.
|
|
565
561
|
*/
|
|
566
562
|
getDeferBlocks(): TmplAstDeferredBlock[];
|
|
563
|
+
/**
|
|
564
|
+
* Gets the element that a specific deferred block trigger is targeting.
|
|
565
|
+
* @param block Block that the trigger belongs to.
|
|
566
|
+
* @param trigger Trigger whose target is being looked up.
|
|
567
|
+
*/
|
|
568
|
+
getDeferredTriggerTarget(block: TmplAstDeferredTrigger, trigger: TmplAstDeferredTrigger): TmplAstElement | null;
|
|
567
569
|
}
|
|
568
570
|
|
|
569
571
|
export declare class BuiltinType extends Type {
|
|
@@ -1355,14 +1357,8 @@ declare class FnParam {
|
|
|
1355
1357
|
clone(): FnParam;
|
|
1356
1358
|
}
|
|
1357
1359
|
|
|
1358
|
-
|
|
1359
|
-
|
|
1360
|
-
$first?: string;
|
|
1361
|
-
$last?: string;
|
|
1362
|
-
$even?: string;
|
|
1363
|
-
$odd?: string;
|
|
1364
|
-
$count?: string;
|
|
1365
|
-
}
|
|
1360
|
+
/** Context variables that can be used inside a `ForLoopBlock`. */
|
|
1361
|
+
declare type ForLoopBlockContext = Record<'$index' | '$first' | '$last' | '$even' | '$odd' | '$count', TmplAstVariable>;
|
|
1366
1362
|
|
|
1367
1363
|
/**
|
|
1368
1364
|
* Specifies how a forward ref has been handled in a MaybeForwardRefExpression
|
|
@@ -2814,29 +2810,35 @@ export declare class R3BoundTarget<DirectiveT extends DirectiveMeta> implements
|
|
|
2814
2810
|
private exprTargets;
|
|
2815
2811
|
private symbols;
|
|
2816
2812
|
private nestingLevel;
|
|
2817
|
-
private
|
|
2813
|
+
private scopedNodeEntities;
|
|
2818
2814
|
private usedPipes;
|
|
2819
2815
|
private eagerPipes;
|
|
2820
2816
|
private deferredBlocks;
|
|
2821
2817
|
constructor(target: Target, directives: Map<TmplAstElement | TmplAstTemplate, DirectiveT[]>, eagerDirectives: DirectiveT[], bindings: Map<TmplAstBoundAttribute | TmplAstBoundEvent | TmplAstTextAttribute, DirectiveT | TmplAstElement | TmplAstTemplate>, references: Map<TmplAstBoundAttribute | TmplAstBoundEvent | TmplAstReference | TmplAstTextAttribute, {
|
|
2822
2818
|
directive: DirectiveT;
|
|
2823
2819
|
node: TmplAstElement | TmplAstTemplate;
|
|
2824
|
-
} | TmplAstElement | TmplAstTemplate>, exprTargets: Map<AST, TmplAstReference | TmplAstVariable>, symbols: Map<TmplAstReference | TmplAstVariable, TmplAstTemplate>, nestingLevel: Map<
|
|
2825
|
-
|
|
2820
|
+
} | TmplAstElement | TmplAstTemplate>, exprTargets: Map<AST, TmplAstReference | TmplAstVariable>, symbols: Map<TmplAstReference | TmplAstVariable, TmplAstTemplate>, nestingLevel: Map<ScopedNode, number>, scopedNodeEntities: Map<ScopedNode | null, ReadonlySet<TmplAstReference | TmplAstVariable>>, usedPipes: Set<string>, eagerPipes: Set<string>, deferredBlocks: Set<TmplAstDeferredBlock>);
|
|
2821
|
+
getEntitiesInScope(node: ScopedNode | null): ReadonlySet<TmplAstReference | TmplAstVariable>;
|
|
2826
2822
|
getDirectivesOfNode(node: TmplAstElement | TmplAstTemplate): DirectiveT[] | null;
|
|
2827
|
-
getReferenceTarget(ref: TmplAstReference):
|
|
2828
|
-
directive: DirectiveT;
|
|
2829
|
-
node: TmplAstElement | TmplAstTemplate;
|
|
2830
|
-
} | TmplAstElement | TmplAstTemplate | null;
|
|
2823
|
+
getReferenceTarget(ref: TmplAstReference): ReferenceTarget<DirectiveT> | null;
|
|
2831
2824
|
getConsumerOfBinding(binding: TmplAstBoundAttribute | TmplAstBoundEvent | TmplAstTextAttribute): DirectiveT | TmplAstElement | TmplAstTemplate | null;
|
|
2832
2825
|
getExpressionTarget(expr: AST): TmplAstReference | TmplAstVariable | null;
|
|
2833
|
-
|
|
2834
|
-
getNestingLevel(
|
|
2826
|
+
getDefinitionNodeOfSymbol(symbol: TmplAstReference | TmplAstVariable): ScopedNode | null;
|
|
2827
|
+
getNestingLevel(node: ScopedNode): number;
|
|
2835
2828
|
getUsedDirectives(): DirectiveT[];
|
|
2836
2829
|
getEagerlyUsedDirectives(): DirectiveT[];
|
|
2837
2830
|
getUsedPipes(): string[];
|
|
2838
2831
|
getEagerlyUsedPipes(): string[];
|
|
2839
2832
|
getDeferBlocks(): TmplAstDeferredBlock[];
|
|
2833
|
+
getDeferredTriggerTarget(block: TmplAstDeferredBlock, trigger: TmplAstDeferredTrigger): TmplAstElement | null;
|
|
2834
|
+
/**
|
|
2835
|
+
* Finds an entity with a specific name in a scope.
|
|
2836
|
+
* @param rootNode Root node of the scope.
|
|
2837
|
+
* @param name Name of the entity.
|
|
2838
|
+
*/
|
|
2839
|
+
private findEntityInScope;
|
|
2840
|
+
/** Coerces a `ReferenceTarget` to an `Element`, if possible. */
|
|
2841
|
+
private referenceTargetToElement;
|
|
2840
2842
|
}
|
|
2841
2843
|
|
|
2842
2844
|
/**
|
|
@@ -4312,6 +4314,12 @@ export declare class RecursiveVisitor implements Visitor {
|
|
|
4312
4314
|
private visitChildren;
|
|
4313
4315
|
}
|
|
4314
4316
|
|
|
4317
|
+
/** Possible values that a reference can be resolved to. */
|
|
4318
|
+
export declare type ReferenceTarget<DirectiveT> = {
|
|
4319
|
+
directive: DirectiveT;
|
|
4320
|
+
node: TmplAstElement | TmplAstTemplate;
|
|
4321
|
+
} | TmplAstElement | TmplAstTemplate;
|
|
4322
|
+
|
|
4315
4323
|
/**
|
|
4316
4324
|
* Flags passed into template functions to determine which blocks (i.e. creation, update)
|
|
4317
4325
|
* should be executed.
|
|
@@ -4372,6 +4380,9 @@ export declare interface SchemaMetadata {
|
|
|
4372
4380
|
name: string;
|
|
4373
4381
|
}
|
|
4374
4382
|
|
|
4383
|
+
/** Node that has a `Scope` associated with it. */
|
|
4384
|
+
export declare type ScopedNode = TmplAstTemplate | TmplAstSwitchBlockCase | TmplAstIfBlockBranch | TmplAstForLoopBlock | TmplAstForLoopBlockEmpty | TmplAstDeferredBlock | TmplAstDeferredBlockError | TmplAstDeferredBlockLoading | TmplAstDeferredBlockPlaceholder;
|
|
4385
|
+
|
|
4375
4386
|
declare enum SecurityContext {
|
|
4376
4387
|
NONE = 0,
|
|
4377
4388
|
HTML = 1,
|
|
@@ -4833,16 +4844,16 @@ export declare class TmplAstElement implements TmplAstNode {
|
|
|
4833
4844
|
}
|
|
4834
4845
|
|
|
4835
4846
|
export declare class TmplAstForLoopBlock implements TmplAstNode {
|
|
4836
|
-
|
|
4847
|
+
item: TmplAstVariable;
|
|
4837
4848
|
expression: ASTWithSource;
|
|
4838
4849
|
trackBy: ASTWithSource;
|
|
4839
|
-
contextVariables: ForLoopBlockContext
|
|
4850
|
+
contextVariables: ForLoopBlockContext;
|
|
4840
4851
|
children: TmplAstNode[];
|
|
4841
4852
|
empty: TmplAstForLoopBlockEmpty | null;
|
|
4842
4853
|
sourceSpan: ParseSourceSpan;
|
|
4843
4854
|
startSourceSpan: ParseSourceSpan;
|
|
4844
4855
|
endSourceSpan: ParseSourceSpan | null;
|
|
4845
|
-
constructor(
|
|
4856
|
+
constructor(item: TmplAstVariable, expression: ASTWithSource, trackBy: ASTWithSource, contextVariables: ForLoopBlockContext, children: TmplAstNode[], empty: TmplAstForLoopBlockEmpty | null, sourceSpan: ParseSourceSpan, startSourceSpan: ParseSourceSpan, endSourceSpan: ParseSourceSpan | null);
|
|
4846
4857
|
visit<Result>(visitor: Visitor_3<Result>): Result;
|
|
4847
4858
|
}
|
|
4848
4859
|
|
|
@@ -4855,6 +4866,8 @@ export declare class TmplAstForLoopBlockEmpty implements TmplAstNode {
|
|
|
4855
4866
|
}
|
|
4856
4867
|
|
|
4857
4868
|
export declare class TmplAstHoverDeferredTrigger extends TmplAstDeferredTrigger {
|
|
4869
|
+
reference: string;
|
|
4870
|
+
constructor(reference: string, sourceSpan: ParseSourceSpan);
|
|
4858
4871
|
}
|
|
4859
4872
|
|
|
4860
4873
|
export declare class TmplAstIcu implements TmplAstNode {
|
|
@@ -4889,10 +4902,10 @@ export declare class TmplAstIfBlock implements TmplAstNode {
|
|
|
4889
4902
|
export declare class TmplAstIfBlockBranch implements TmplAstNode {
|
|
4890
4903
|
expression: AST | null;
|
|
4891
4904
|
children: TmplAstNode[];
|
|
4892
|
-
expressionAlias:
|
|
4905
|
+
expressionAlias: TmplAstVariable | null;
|
|
4893
4906
|
sourceSpan: ParseSourceSpan;
|
|
4894
4907
|
startSourceSpan: ParseSourceSpan;
|
|
4895
|
-
constructor(expression: AST | null, children: TmplAstNode[], expressionAlias:
|
|
4908
|
+
constructor(expression: AST | null, children: TmplAstNode[], expressionAlias: TmplAstVariable | null, sourceSpan: ParseSourceSpan, startSourceSpan: ParseSourceSpan);
|
|
4896
4909
|
visit<Result>(visitor: Visitor_3<Result>): Result;
|
|
4897
4910
|
}
|
|
4898
4911
|
|
|
@@ -4900,8 +4913,8 @@ export declare class TmplAstImmediateDeferredTrigger extends TmplAstDeferredTrig
|
|
|
4900
4913
|
}
|
|
4901
4914
|
|
|
4902
4915
|
export declare class TmplAstInteractionDeferredTrigger extends TmplAstDeferredTrigger {
|
|
4903
|
-
reference: string
|
|
4904
|
-
constructor(reference: string
|
|
4916
|
+
reference: string;
|
|
4917
|
+
constructor(reference: string, sourceSpan: ParseSourceSpan);
|
|
4905
4918
|
}
|
|
4906
4919
|
|
|
4907
4920
|
export declare interface TmplAstNode {
|
package/package.json
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@angular/compiler",
|
|
3
|
-
"version": "17.0.0-next.
|
|
3
|
+
"version": "17.0.0-next.5",
|
|
4
4
|
"description": "Angular - the compiler library",
|
|
5
5
|
"author": "angular",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"engines": {
|
|
8
|
-
"node": "
|
|
8
|
+
"node": ">=18.13.0"
|
|
9
9
|
},
|
|
10
10
|
"dependencies": {
|
|
11
11
|
"tslib": "^2.3.0"
|
|
12
12
|
},
|
|
13
13
|
"peerDependencies": {
|
|
14
|
-
"@angular/core": "17.0.0-next.
|
|
14
|
+
"@angular/core": "17.0.0-next.5"
|
|
15
15
|
},
|
|
16
16
|
"peerDependenciesMeta": {
|
|
17
17
|
"@angular/core": {
|
package/testing/index.d.ts
CHANGED