@angular/compiler 17.0.0-rc.1 → 17.0.0-rc.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.
Files changed (90) hide show
  1. package/esm2022/src/render3/partial/class_metadata.mjs +1 -1
  2. package/esm2022/src/render3/partial/directive.mjs +1 -1
  3. package/esm2022/src/render3/partial/factory.mjs +1 -1
  4. package/esm2022/src/render3/partial/injectable.mjs +1 -1
  5. package/esm2022/src/render3/partial/injector.mjs +1 -1
  6. package/esm2022/src/render3/partial/ng_module.mjs +1 -1
  7. package/esm2022/src/render3/partial/pipe.mjs +1 -1
  8. package/esm2022/src/render3/r3_ast.mjs +55 -61
  9. package/esm2022/src/render3/r3_control_flow.mjs +17 -13
  10. package/esm2022/src/render3/r3_deferred_blocks.mjs +7 -8
  11. package/esm2022/src/render3/r3_deferred_triggers.mjs +46 -27
  12. package/esm2022/src/render3/view/t2_api.mjs +1 -1
  13. package/esm2022/src/render3/view/t2_binder.mjs +22 -10
  14. package/esm2022/src/render3/view/template.mjs +54 -5
  15. package/esm2022/src/template/pipeline/ir/index.mjs +2 -1
  16. package/esm2022/src/template/pipeline/ir/src/enums.mjs +75 -20
  17. package/esm2022/src/template/pipeline/ir/src/expression.mjs +74 -71
  18. package/esm2022/src/template/pipeline/ir/src/handle.mjs +13 -0
  19. package/esm2022/src/template/pipeline/ir/src/ops/create.mjs +47 -47
  20. package/esm2022/src/template/pipeline/ir/src/ops/update.mjs +10 -9
  21. package/esm2022/src/template/pipeline/ir/src/traits.mjs +1 -32
  22. package/esm2022/src/template/pipeline/src/conversion.mjs +2 -2
  23. package/esm2022/src/template/pipeline/src/emit.mjs +117 -107
  24. package/esm2022/src/template/pipeline/src/ingest.mjs +155 -49
  25. package/esm2022/src/template/pipeline/src/instruction.mjs +36 -12
  26. package/esm2022/src/template/pipeline/src/phases/any_cast.mjs +4 -3
  27. package/esm2022/src/template/pipeline/src/phases/apply_i18n_expressions.mjs +3 -3
  28. package/esm2022/src/template/pipeline/src/phases/assign_i18n_slot_dependencies.mjs +2 -2
  29. package/esm2022/src/template/pipeline/src/phases/attribute_extraction.mjs +2 -2
  30. package/esm2022/src/template/pipeline/src/phases/binding_specialization.mjs +2 -2
  31. package/esm2022/src/template/pipeline/src/phases/chaining.mjs +2 -2
  32. package/esm2022/src/template/pipeline/src/phases/collapse_singleton_interpolations.mjs +2 -2
  33. package/esm2022/src/template/pipeline/src/phases/conditionals.mjs +6 -6
  34. package/esm2022/src/template/pipeline/src/phases/const_collection.mjs +2 -2
  35. package/esm2022/src/template/pipeline/src/phases/defer_configs.mjs +30 -0
  36. package/esm2022/src/template/pipeline/src/phases/defer_resolve_targets.mjs +93 -0
  37. package/esm2022/src/template/pipeline/src/phases/empty_elements.mjs +4 -4
  38. package/esm2022/src/template/pipeline/src/phases/expand_safe_reads.mjs +7 -4
  39. package/esm2022/src/template/pipeline/src/phases/format_i18n_params.mjs +114 -0
  40. package/esm2022/src/template/pipeline/src/phases/generate_advance.mjs +4 -4
  41. package/esm2022/src/template/pipeline/src/phases/generate_projection_def.mjs +2 -2
  42. package/esm2022/src/template/pipeline/src/phases/generate_variables.mjs +4 -3
  43. package/esm2022/src/template/pipeline/src/phases/has_const_expression_collection.mjs +28 -0
  44. package/esm2022/src/template/pipeline/src/phases/host_style_property_parsing.mjs +8 -2
  45. package/esm2022/src/template/pipeline/src/phases/i18n_const_collection.mjs +129 -7
  46. package/esm2022/src/template/pipeline/src/phases/i18n_message_extraction.mjs +4 -105
  47. package/esm2022/src/template/pipeline/src/phases/i18n_text_extraction.mjs +9 -6
  48. package/esm2022/src/template/pipeline/src/phases/icu_extraction.mjs +8 -5
  49. package/esm2022/src/template/pipeline/src/phases/local_refs.mjs +2 -2
  50. package/esm2022/src/template/pipeline/src/phases/namespace.mjs +2 -2
  51. package/esm2022/src/template/pipeline/src/phases/naming.mjs +11 -13
  52. package/esm2022/src/template/pipeline/src/phases/next_context_merging.mjs +2 -2
  53. package/esm2022/src/template/pipeline/src/phases/ng_container.mjs +2 -2
  54. package/esm2022/src/template/pipeline/src/phases/nonbindable.mjs +2 -2
  55. package/esm2022/src/template/pipeline/src/phases/nullish_coalescing.mjs +8 -2
  56. package/esm2022/src/template/pipeline/src/phases/ordering.mjs +7 -2
  57. package/esm2022/src/template/pipeline/src/phases/parse_extracted_styles.mjs +3 -3
  58. package/esm2022/src/template/pipeline/src/phases/phase_remove_content_selectors.mjs +2 -2
  59. package/esm2022/src/template/pipeline/src/phases/pipe_creation.mjs +16 -11
  60. package/esm2022/src/template/pipeline/src/phases/pipe_variadic.mjs +7 -3
  61. package/esm2022/src/template/pipeline/src/phases/propagate_i18n_blocks.mjs +2 -2
  62. package/esm2022/src/template/pipeline/src/phases/propagate_i18n_placeholders.mjs +61 -0
  63. package/esm2022/src/template/pipeline/src/phases/pure_function_extraction.mjs +2 -2
  64. package/esm2022/src/template/pipeline/src/phases/pure_literal_structures.mjs +4 -4
  65. package/esm2022/src/template/pipeline/src/phases/reify.mjs +49 -29
  66. package/esm2022/src/template/pipeline/src/phases/remove_empty_bindings.mjs +5 -2
  67. package/esm2022/src/template/pipeline/src/phases/repeater_derived_vars.mjs +7 -2
  68. package/esm2022/src/template/pipeline/src/phases/resolve_contexts.mjs +3 -3
  69. package/esm2022/src/template/pipeline/src/phases/resolve_dollar_event.mjs +5 -5
  70. package/esm2022/src/template/pipeline/src/phases/resolve_i18n_element_placeholders.mjs +109 -0
  71. package/esm2022/src/template/pipeline/src/phases/resolve_i18n_expression_placeholders.mjs +58 -0
  72. package/esm2022/src/template/pipeline/src/phases/resolve_names.mjs +3 -3
  73. package/esm2022/src/template/pipeline/src/phases/resolve_sanitizers.mjs +2 -2
  74. package/esm2022/src/template/pipeline/src/phases/save_restore_view.mjs +14 -9
  75. package/esm2022/src/template/pipeline/src/phases/slot_allocation.mjs +4 -29
  76. package/esm2022/src/template/pipeline/src/phases/style_binding_specialization.mjs +3 -3
  77. package/esm2022/src/template/pipeline/src/phases/temporary_variables.mjs +3 -3
  78. package/esm2022/src/template/pipeline/src/phases/track_fn_generation.mjs +2 -2
  79. package/esm2022/src/template/pipeline/src/phases/track_fn_optimization.mjs +8 -2
  80. package/esm2022/src/template/pipeline/src/phases/track_variables.mjs +7 -2
  81. package/esm2022/src/template/pipeline/src/phases/var_counting.mjs +2 -2
  82. package/esm2022/src/template/pipeline/src/phases/variable_optimization.mjs +5 -5
  83. package/esm2022/src/template/pipeline/src/phases/wrap_icus.mjs +2 -2
  84. package/esm2022/src/version.mjs +1 -1
  85. package/fesm2022/compiler.mjs +1467 -1017
  86. package/fesm2022/compiler.mjs.map +1 -1
  87. package/index.d.ts +41 -58
  88. package/package.json +3 -3
  89. package/esm2022/src/template/pipeline/src/phases/has_const_trait_collection.mjs +0 -34
  90. package/esm2022/src/template/pipeline/src/phases/resolve_i18n_placeholders.mjs +0 -288
package/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Angular v17.0.0-rc.1
2
+ * @license Angular v17.0.0-rc.2
3
3
  * (c) 2010-2022 Google LLC. https://angular.io/
4
4
  * License: MIT
5
5
  */
@@ -449,6 +449,14 @@ export declare class Block implements BaseNode {
449
449
  visit(visitor: Visitor, context: any): any;
450
450
  }
451
451
 
452
+ declare class BlockNode {
453
+ nameSpan: ParseSourceSpan;
454
+ sourceSpan: ParseSourceSpan;
455
+ startSourceSpan: ParseSourceSpan;
456
+ endSourceSpan: ParseSourceSpan | null;
457
+ constructor(nameSpan: ParseSourceSpan, sourceSpan: ParseSourceSpan, startSourceSpan: ParseSourceSpan, endSourceSpan: ParseSourceSpan | null);
458
+ }
459
+
452
460
  export declare class BlockParameter implements BaseNode {
453
461
  expression: string;
454
462
  sourceSpan: ParseSourceSpan;
@@ -557,7 +565,7 @@ export declare interface BoundTarget<DirectiveT extends DirectiveMeta> {
557
565
  * @param block Block that the trigger belongs to.
558
566
  * @param trigger Trigger whose target is being looked up.
559
567
  */
560
- getDeferredTriggerTarget(block: TmplAstDeferredTrigger, trigger: TmplAstDeferredTrigger): TmplAstElement | null;
568
+ getDeferredTriggerTarget(block: TmplAstDeferredBlock, trigger: TmplAstDeferredTrigger): TmplAstElement | null;
561
569
  }
562
570
 
563
571
  export declare class BuiltinType extends Type {
@@ -4616,6 +4624,7 @@ declare namespace t {
4616
4624
  TmplAstTimerDeferredTrigger as TimerDeferredTrigger,
4617
4625
  TmplAstInteractionDeferredTrigger as InteractionDeferredTrigger,
4618
4626
  TmplAstViewportDeferredTrigger as ViewportDeferredTrigger,
4627
+ BlockNode,
4619
4628
  TmplAstDeferredBlockPlaceholder as DeferredBlockPlaceholder,
4620
4629
  TmplAstDeferredBlockLoading as DeferredBlockLoading,
4621
4630
  TmplAstDeferredBlockError as DeferredBlockError,
@@ -4801,7 +4810,7 @@ export declare class TmplAstBoundAttribute implements TmplAstNode {
4801
4810
 
4802
4811
  export declare class TmplAstBoundDeferredTrigger extends TmplAstDeferredTrigger {
4803
4812
  value: AST;
4804
- constructor(value: AST, sourceSpan: ParseSourceSpan);
4813
+ constructor(value: AST, sourceSpan: ParseSourceSpan, prefetchSpan: ParseSourceSpan | null, whenSourceSpan: ParseSourceSpan);
4805
4814
  }
4806
4815
 
4807
4816
  export declare class TmplAstBoundEvent implements TmplAstNode {
@@ -4836,52 +4845,40 @@ export declare class TmplAstContent implements TmplAstNode {
4836
4845
  visit<Result>(visitor: Visitor_3<Result>): Result;
4837
4846
  }
4838
4847
 
4839
- export declare class TmplAstDeferredBlock implements TmplAstNode {
4848
+ export declare class TmplAstDeferredBlock extends BlockNode implements TmplAstNode {
4840
4849
  children: TmplAstNode[];
4841
4850
  placeholder: TmplAstDeferredBlockPlaceholder | null;
4842
4851
  loading: TmplAstDeferredBlockLoading | null;
4843
4852
  error: TmplAstDeferredBlockError | null;
4844
- sourceSpan: ParseSourceSpan;
4845
4853
  mainBlockSpan: ParseSourceSpan;
4846
- startSourceSpan: ParseSourceSpan;
4847
- endSourceSpan: ParseSourceSpan | null;
4848
4854
  readonly triggers: Readonly<TmplAstDeferredBlockTriggers>;
4849
4855
  readonly prefetchTriggers: Readonly<TmplAstDeferredBlockTriggers>;
4850
4856
  private readonly definedTriggers;
4851
4857
  private readonly definedPrefetchTriggers;
4852
- constructor(children: TmplAstNode[], triggers: TmplAstDeferredBlockTriggers, prefetchTriggers: TmplAstDeferredBlockTriggers, placeholder: TmplAstDeferredBlockPlaceholder | null, loading: TmplAstDeferredBlockLoading | null, error: TmplAstDeferredBlockError | null, sourceSpan: ParseSourceSpan, mainBlockSpan: ParseSourceSpan, startSourceSpan: ParseSourceSpan, endSourceSpan: ParseSourceSpan | null);
4858
+ constructor(children: TmplAstNode[], triggers: TmplAstDeferredBlockTriggers, prefetchTriggers: TmplAstDeferredBlockTriggers, placeholder: TmplAstDeferredBlockPlaceholder | null, loading: TmplAstDeferredBlockLoading | null, error: TmplAstDeferredBlockError | null, nameSpan: ParseSourceSpan, sourceSpan: ParseSourceSpan, mainBlockSpan: ParseSourceSpan, startSourceSpan: ParseSourceSpan, endSourceSpan: ParseSourceSpan | null);
4853
4859
  visit<Result>(visitor: Visitor_3<Result>): Result;
4854
4860
  visitAll(visitor: Visitor_3<unknown>): void;
4855
4861
  private visitTriggers;
4856
4862
  }
4857
4863
 
4858
- export declare class TmplAstDeferredBlockError implements TmplAstNode {
4864
+ export declare class TmplAstDeferredBlockError extends BlockNode implements TmplAstNode {
4859
4865
  children: TmplAstNode[];
4860
- sourceSpan: ParseSourceSpan;
4861
- startSourceSpan: ParseSourceSpan;
4862
- endSourceSpan: ParseSourceSpan | null;
4863
- constructor(children: TmplAstNode[], sourceSpan: ParseSourceSpan, startSourceSpan: ParseSourceSpan, endSourceSpan: ParseSourceSpan | null);
4866
+ constructor(children: TmplAstNode[], nameSpan: ParseSourceSpan, sourceSpan: ParseSourceSpan, startSourceSpan: ParseSourceSpan, endSourceSpan: ParseSourceSpan | null);
4864
4867
  visit<Result>(visitor: Visitor_3<Result>): Result;
4865
4868
  }
4866
4869
 
4867
- export declare class TmplAstDeferredBlockLoading implements TmplAstNode {
4870
+ export declare class TmplAstDeferredBlockLoading extends BlockNode implements TmplAstNode {
4868
4871
  children: TmplAstNode[];
4869
4872
  afterTime: number | null;
4870
4873
  minimumTime: number | null;
4871
- sourceSpan: ParseSourceSpan;
4872
- startSourceSpan: ParseSourceSpan;
4873
- endSourceSpan: ParseSourceSpan | null;
4874
- constructor(children: TmplAstNode[], afterTime: number | null, minimumTime: number | null, sourceSpan: ParseSourceSpan, startSourceSpan: ParseSourceSpan, endSourceSpan: ParseSourceSpan | null);
4874
+ constructor(children: TmplAstNode[], afterTime: number | null, minimumTime: number | null, nameSpan: ParseSourceSpan, sourceSpan: ParseSourceSpan, startSourceSpan: ParseSourceSpan, endSourceSpan: ParseSourceSpan | null);
4875
4875
  visit<Result>(visitor: Visitor_3<Result>): Result;
4876
4876
  }
4877
4877
 
4878
- export declare class TmplAstDeferredBlockPlaceholder implements TmplAstNode {
4878
+ export declare class TmplAstDeferredBlockPlaceholder extends BlockNode implements TmplAstNode {
4879
4879
  children: TmplAstNode[];
4880
4880
  minimumTime: number | null;
4881
- sourceSpan: ParseSourceSpan;
4882
- startSourceSpan: ParseSourceSpan;
4883
- endSourceSpan: ParseSourceSpan | null;
4884
- constructor(children: TmplAstNode[], minimumTime: number | null, sourceSpan: ParseSourceSpan, startSourceSpan: ParseSourceSpan, endSourceSpan: ParseSourceSpan | null);
4881
+ constructor(children: TmplAstNode[], minimumTime: number | null, nameSpan: ParseSourceSpan, sourceSpan: ParseSourceSpan, startSourceSpan: ParseSourceSpan, endSourceSpan: ParseSourceSpan | null);
4885
4882
  visit<Result>(visitor: Visitor_3<Result>): Result;
4886
4883
  }
4887
4884
 
@@ -4896,8 +4893,11 @@ export declare interface TmplAstDeferredBlockTriggers {
4896
4893
  }
4897
4894
 
4898
4895
  export declare abstract class TmplAstDeferredTrigger implements TmplAstNode {
4896
+ nameSpan: ParseSourceSpan | null;
4899
4897
  sourceSpan: ParseSourceSpan;
4900
- constructor(sourceSpan: ParseSourceSpan);
4898
+ prefetchSpan: ParseSourceSpan | null;
4899
+ whenOrOnSourceSpan: ParseSourceSpan | null;
4900
+ constructor(nameSpan: ParseSourceSpan | null, sourceSpan: ParseSourceSpan, prefetchSpan: ParseSourceSpan | null, whenOrOnSourceSpan: ParseSourceSpan | null);
4901
4901
  visit<Result>(visitor: Visitor_3<Result>): Result;
4902
4902
  }
4903
4903
 
@@ -4916,33 +4916,28 @@ export declare class TmplAstElement implements TmplAstNode {
4916
4916
  visit<Result>(visitor: Visitor_3<Result>): Result;
4917
4917
  }
4918
4918
 
4919
- export declare class TmplAstForLoopBlock implements TmplAstNode {
4919
+ export declare class TmplAstForLoopBlock extends BlockNode implements TmplAstNode {
4920
4920
  item: TmplAstVariable;
4921
4921
  expression: ASTWithSource;
4922
4922
  trackBy: ASTWithSource;
4923
+ trackKeywordSpan: ParseSourceSpan;
4923
4924
  contextVariables: ForLoopBlockContext;
4924
4925
  children: TmplAstNode[];
4925
4926
  empty: TmplAstForLoopBlockEmpty | null;
4926
- sourceSpan: ParseSourceSpan;
4927
4927
  mainBlockSpan: ParseSourceSpan;
4928
- startSourceSpan: ParseSourceSpan;
4929
- endSourceSpan: ParseSourceSpan | null;
4930
- constructor(item: TmplAstVariable, expression: ASTWithSource, trackBy: ASTWithSource, contextVariables: ForLoopBlockContext, children: TmplAstNode[], empty: TmplAstForLoopBlockEmpty | null, sourceSpan: ParseSourceSpan, mainBlockSpan: ParseSourceSpan, startSourceSpan: ParseSourceSpan, endSourceSpan: ParseSourceSpan | null);
4928
+ constructor(item: TmplAstVariable, expression: ASTWithSource, trackBy: ASTWithSource, trackKeywordSpan: ParseSourceSpan, contextVariables: ForLoopBlockContext, children: TmplAstNode[], empty: TmplAstForLoopBlockEmpty | null, sourceSpan: ParseSourceSpan, mainBlockSpan: ParseSourceSpan, startSourceSpan: ParseSourceSpan, endSourceSpan: ParseSourceSpan | null, nameSpan: ParseSourceSpan);
4931
4929
  visit<Result>(visitor: Visitor_3<Result>): Result;
4932
4930
  }
4933
4931
 
4934
- export declare class TmplAstForLoopBlockEmpty implements TmplAstNode {
4932
+ export declare class TmplAstForLoopBlockEmpty extends BlockNode implements TmplAstNode {
4935
4933
  children: TmplAstNode[];
4936
- sourceSpan: ParseSourceSpan;
4937
- startSourceSpan: ParseSourceSpan;
4938
- endSourceSpan: ParseSourceSpan | null;
4939
- constructor(children: TmplAstNode[], sourceSpan: ParseSourceSpan, startSourceSpan: ParseSourceSpan, endSourceSpan: ParseSourceSpan | null);
4934
+ constructor(children: TmplAstNode[], sourceSpan: ParseSourceSpan, startSourceSpan: ParseSourceSpan, endSourceSpan: ParseSourceSpan | null, nameSpan: ParseSourceSpan);
4940
4935
  visit<Result>(visitor: Visitor_3<Result>): Result;
4941
4936
  }
4942
4937
 
4943
4938
  export declare class TmplAstHoverDeferredTrigger extends TmplAstDeferredTrigger {
4944
4939
  reference: string | null;
4945
- constructor(reference: string | null, sourceSpan: ParseSourceSpan);
4940
+ constructor(reference: string | null, nameSpan: ParseSourceSpan, sourceSpan: ParseSourceSpan, prefetchSpan: ParseSourceSpan | null, onSourceSpan: ParseSourceSpan | null);
4946
4941
  }
4947
4942
 
4948
4943
  export declare class TmplAstIcu implements TmplAstNode {
@@ -4965,23 +4960,17 @@ export declare class TmplAstIcu implements TmplAstNode {
4965
4960
  export declare class TmplAstIdleDeferredTrigger extends TmplAstDeferredTrigger {
4966
4961
  }
4967
4962
 
4968
- export declare class TmplAstIfBlock implements TmplAstNode {
4963
+ export declare class TmplAstIfBlock extends BlockNode implements TmplAstNode {
4969
4964
  branches: TmplAstIfBlockBranch[];
4970
- sourceSpan: ParseSourceSpan;
4971
- startSourceSpan: ParseSourceSpan;
4972
- endSourceSpan: ParseSourceSpan | null;
4973
- constructor(branches: TmplAstIfBlockBranch[], sourceSpan: ParseSourceSpan, startSourceSpan: ParseSourceSpan, endSourceSpan: ParseSourceSpan | null);
4965
+ constructor(branches: TmplAstIfBlockBranch[], sourceSpan: ParseSourceSpan, startSourceSpan: ParseSourceSpan, endSourceSpan: ParseSourceSpan | null, nameSpan: ParseSourceSpan);
4974
4966
  visit<Result>(visitor: Visitor_3<Result>): Result;
4975
4967
  }
4976
4968
 
4977
- export declare class TmplAstIfBlockBranch implements TmplAstNode {
4969
+ export declare class TmplAstIfBlockBranch extends BlockNode implements TmplAstNode {
4978
4970
  expression: AST | null;
4979
4971
  children: TmplAstNode[];
4980
4972
  expressionAlias: TmplAstVariable | null;
4981
- sourceSpan: ParseSourceSpan;
4982
- startSourceSpan: ParseSourceSpan;
4983
- endSourceSpan: ParseSourceSpan | null;
4984
- constructor(expression: AST | null, children: TmplAstNode[], expressionAlias: TmplAstVariable | null, sourceSpan: ParseSourceSpan, startSourceSpan: ParseSourceSpan, endSourceSpan: ParseSourceSpan | null);
4973
+ constructor(expression: AST | null, children: TmplAstNode[], expressionAlias: TmplAstVariable | null, sourceSpan: ParseSourceSpan, startSourceSpan: ParseSourceSpan, endSourceSpan: ParseSourceSpan | null, nameSpan: ParseSourceSpan);
4985
4974
  visit<Result>(visitor: Visitor_3<Result>): Result;
4986
4975
  }
4987
4976
 
@@ -4990,7 +4979,7 @@ export declare class TmplAstImmediateDeferredTrigger extends TmplAstDeferredTrig
4990
4979
 
4991
4980
  export declare class TmplAstInteractionDeferredTrigger extends TmplAstDeferredTrigger {
4992
4981
  reference: string | null;
4993
- constructor(reference: string | null, sourceSpan: ParseSourceSpan);
4982
+ constructor(reference: string | null, nameSpan: ParseSourceSpan, sourceSpan: ParseSourceSpan, prefetchSpan: ParseSourceSpan | null, onSourceSpan: ParseSourceSpan | null);
4994
4983
  }
4995
4984
 
4996
4985
  export declare interface TmplAstNode {
@@ -5034,7 +5023,7 @@ export declare class TmplAstReference implements TmplAstNode {
5034
5023
  visit<Result>(visitor: Visitor_3<Result>): Result;
5035
5024
  }
5036
5025
 
5037
- export declare class TmplAstSwitchBlock implements TmplAstNode {
5026
+ export declare class TmplAstSwitchBlock extends BlockNode implements TmplAstNode {
5038
5027
  expression: AST;
5039
5028
  cases: TmplAstSwitchBlockCase[];
5040
5029
  /**
@@ -5042,25 +5031,19 @@ export declare class TmplAstSwitchBlock implements TmplAstNode {
5042
5031
  * aren't meant to be processed in any other way.
5043
5032
  */
5044
5033
  unknownBlocks: TmplAstUnknownBlock[];
5045
- sourceSpan: ParseSourceSpan;
5046
- startSourceSpan: ParseSourceSpan;
5047
- endSourceSpan: ParseSourceSpan | null;
5048
5034
  constructor(expression: AST, cases: TmplAstSwitchBlockCase[],
5049
5035
  /**
5050
5036
  * These blocks are only captured to allow for autocompletion in the language service. They
5051
5037
  * aren't meant to be processed in any other way.
5052
5038
  */
5053
- unknownBlocks: TmplAstUnknownBlock[], sourceSpan: ParseSourceSpan, startSourceSpan: ParseSourceSpan, endSourceSpan: ParseSourceSpan | null);
5039
+ unknownBlocks: TmplAstUnknownBlock[], sourceSpan: ParseSourceSpan, startSourceSpan: ParseSourceSpan, endSourceSpan: ParseSourceSpan | null, nameSpan: ParseSourceSpan);
5054
5040
  visit<Result>(visitor: Visitor_3<Result>): Result;
5055
5041
  }
5056
5042
 
5057
- export declare class TmplAstSwitchBlockCase implements TmplAstNode {
5043
+ export declare class TmplAstSwitchBlockCase extends BlockNode implements TmplAstNode {
5058
5044
  expression: AST | null;
5059
5045
  children: TmplAstNode[];
5060
- sourceSpan: ParseSourceSpan;
5061
- startSourceSpan: ParseSourceSpan;
5062
- endSourceSpan: ParseSourceSpan | null;
5063
- constructor(expression: AST | null, children: TmplAstNode[], sourceSpan: ParseSourceSpan, startSourceSpan: ParseSourceSpan, endSourceSpan: ParseSourceSpan | null);
5046
+ constructor(expression: AST | null, children: TmplAstNode[], sourceSpan: ParseSourceSpan, startSourceSpan: ParseSourceSpan, endSourceSpan: ParseSourceSpan | null, nameSpan: ParseSourceSpan);
5064
5047
  visit<Result>(visitor: Visitor_3<Result>): Result;
5065
5048
  }
5066
5049
 
@@ -5107,7 +5090,7 @@ export declare class TmplAstTextAttribute implements TmplAstNode {
5107
5090
 
5108
5091
  export declare class TmplAstTimerDeferredTrigger extends TmplAstDeferredTrigger {
5109
5092
  delay: number;
5110
- constructor(delay: number, sourceSpan: ParseSourceSpan);
5093
+ constructor(delay: number, nameSpan: ParseSourceSpan, sourceSpan: ParseSourceSpan, prefetchSpan: ParseSourceSpan | null, onSourceSpan: ParseSourceSpan | null);
5111
5094
  }
5112
5095
 
5113
5096
  export declare class TmplAstUnknownBlock implements TmplAstNode {
@@ -5130,7 +5113,7 @@ export declare class TmplAstVariable implements TmplAstNode {
5130
5113
 
5131
5114
  export declare class TmplAstViewportDeferredTrigger extends TmplAstDeferredTrigger {
5132
5115
  reference: string | null;
5133
- constructor(reference: string | null, sourceSpan: ParseSourceSpan);
5116
+ constructor(reference: string | null, nameSpan: ParseSourceSpan, sourceSpan: ParseSourceSpan, prefetchSpan: ParseSourceSpan | null, onSourceSpan: ParseSourceSpan | null);
5134
5117
  }
5135
5118
 
5136
5119
  export declare class Token {
package/package.json CHANGED
@@ -1,17 +1,17 @@
1
1
  {
2
2
  "name": "@angular/compiler",
3
- "version": "17.0.0-rc.1",
3
+ "version": "17.0.0-rc.2",
4
4
  "description": "Angular - the compiler library",
5
5
  "author": "angular",
6
6
  "license": "MIT",
7
7
  "engines": {
8
- "node": ">=18.13.0"
8
+ "node": "^18.13.0 || >=20.9.0"
9
9
  },
10
10
  "dependencies": {
11
11
  "tslib": "^2.3.0"
12
12
  },
13
13
  "peerDependencies": {
14
- "@angular/core": "17.0.0-rc.1"
14
+ "@angular/core": "17.0.0-rc.2"
15
15
  },
16
16
  "peerDependenciesMeta": {
17
17
  "@angular/core": {
@@ -1,34 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright Google LLC All Rights Reserved.
4
- *
5
- * Use of this source code is governed by an MIT-style license that can be
6
- * found in the LICENSE file at https://angular.io/license
7
- */
8
- import * as ir from '../../ir';
9
- /**
10
- * Looks for the HasConst trait, indicating that an op or expression has some data which
11
- * should be collected into the constant array. Capable of collecting either a single literal value,
12
- * or an array literal.
13
- */
14
- export function phaseConstTraitCollection(job) {
15
- const collectGlobalConsts = (e) => {
16
- if (e instanceof ir.ExpressionBase && ir.hasConstTrait(e)) {
17
- // TODO: Figure out how to make this type narrowing work.
18
- const ea = e;
19
- if (ea.constValue !== null) {
20
- ea.constIndex = job.addConst(ea.constValue);
21
- }
22
- }
23
- return e;
24
- };
25
- for (const unit of job.units) {
26
- for (const op of unit.ops()) {
27
- if (ir.hasConstTrait(op) && op.constValue !== null) {
28
- op.constIndex = job.addConst(op.makeExpression(op.constValue));
29
- }
30
- ir.transformExpressionsInOp(op, collectGlobalConsts, ir.VisitorContextFlag.None);
31
- }
32
- }
33
- }
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFzX2NvbnN0X3RyYWl0X2NvbGxlY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21waWxlci9zcmMvdGVtcGxhdGUvcGlwZWxpbmUvc3JjL3BoYXNlcy9oYXNfY29uc3RfdHJhaXRfY29sbGVjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFHSCxPQUFPLEtBQUssRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUcvQjs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLHlCQUF5QixDQUFDLEdBQTRCO0lBQ3BFLE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxDQUFlLEVBQWdCLEVBQUU7UUFDNUQsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLGNBQWMsSUFBSSxFQUFFLENBQUMsYUFBYSxDQUFDLENBQWtCLENBQUMsRUFBRTtZQUMxRSx5REFBeUQ7WUFDekQsTUFBTSxFQUFFLEdBQUcsQ0FBb0QsQ0FBQztZQUNoRSxJQUFJLEVBQUUsQ0FBQyxVQUFVLEtBQUssSUFBSSxFQUFFO2dCQUMxQixFQUFFLENBQUMsVUFBVSxHQUFHLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLFVBQXFDLENBQUMsQ0FBQzthQUN4RTtTQUNGO1FBQ0QsT0FBTyxDQUFDLENBQUM7SUFDWCxDQUFDLENBQUM7SUFFRixLQUFLLE1BQU0sSUFBSSxJQUFJLEdBQUcsQ0FBQyxLQUFLLEVBQUU7UUFDNUIsS0FBSyxNQUFNLEVBQUUsSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDM0IsSUFBSSxFQUFFLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxVQUFVLEtBQUssSUFBSSxFQUFFO2dCQUNsRCxFQUFFLENBQUMsVUFBVSxHQUFHLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQzthQUNoRTtZQUNELEVBQUUsQ0FBQyx3QkFBd0IsQ0FBQyxFQUFFLEVBQUUsbUJBQW1CLEVBQUUsRUFBRSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ2xGO0tBQ0Y7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCAqIGFzIG8gZnJvbSAnLi4vLi4vLi4vLi4vb3V0cHV0L291dHB1dF9hc3QnO1xuaW1wb3J0ICogYXMgaXIgZnJvbSAnLi4vLi4vaXInO1xuaW1wb3J0IHR5cGUge0NvbXBvbmVudENvbXBpbGF0aW9uSm9ifSBmcm9tICcuLi9jb21waWxhdGlvbic7XG5cbi8qKlxuICogTG9va3MgZm9yIHRoZSBIYXNDb25zdCB0cmFpdCwgaW5kaWNhdGluZyB0aGF0IGFuIG9wIG9yIGV4cHJlc3Npb24gaGFzIHNvbWUgZGF0YSB3aGljaFxuICogc2hvdWxkIGJlIGNvbGxlY3RlZCBpbnRvIHRoZSBjb25zdGFudCBhcnJheS4gQ2FwYWJsZSBvZiBjb2xsZWN0aW5nIGVpdGhlciBhIHNpbmdsZSBsaXRlcmFsIHZhbHVlLFxuICogb3IgYW4gYXJyYXkgbGl0ZXJhbC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBoYXNlQ29uc3RUcmFpdENvbGxlY3Rpb24oam9iOiBDb21wb25lbnRDb21waWxhdGlvbkpvYik6IHZvaWQge1xuICBjb25zdCBjb2xsZWN0R2xvYmFsQ29uc3RzID0gKGU6IG8uRXhwcmVzc2lvbik6IG8uRXhwcmVzc2lvbiA9PiB7XG4gICAgaWYgKGUgaW5zdGFuY2VvZiBpci5FeHByZXNzaW9uQmFzZSAmJiBpci5oYXNDb25zdFRyYWl0KGUgYXMgaXIuRXhwcmVzc2lvbikpIHtcbiAgICAgIC8vIFRPRE86IEZpZ3VyZSBvdXQgaG93IHRvIG1ha2UgdGhpcyB0eXBlIG5hcnJvd2luZyB3b3JrLlxuICAgICAgY29uc3QgZWEgPSBlIGFzIHVua25vd24gYXMgaXIuRXhwcmVzc2lvbkJhc2UgJiBpci5IYXNDb25zdFRyYWl0O1xuICAgICAgaWYgKGVhLmNvbnN0VmFsdWUgIT09IG51bGwpIHtcbiAgICAgICAgZWEuY29uc3RJbmRleCA9IGpvYi5hZGRDb25zdChlYS5jb25zdFZhbHVlIGFzIHVua25vd24gYXMgby5FeHByZXNzaW9uKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGU7XG4gIH07XG5cbiAgZm9yIChjb25zdCB1bml0IG9mIGpvYi51bml0cykge1xuICAgIGZvciAoY29uc3Qgb3Agb2YgdW5pdC5vcHMoKSkge1xuICAgICAgaWYgKGlyLmhhc0NvbnN0VHJhaXQob3ApICYmIG9wLmNvbnN0VmFsdWUgIT09IG51bGwpIHtcbiAgICAgICAgb3AuY29uc3RJbmRleCA9IGpvYi5hZGRDb25zdChvcC5tYWtlRXhwcmVzc2lvbihvcC5jb25zdFZhbHVlKSk7XG4gICAgICB9XG4gICAgICBpci50cmFuc2Zvcm1FeHByZXNzaW9uc0luT3Aob3AsIGNvbGxlY3RHbG9iYWxDb25zdHMsIGlyLlZpc2l0b3JDb250ZXh0RmxhZy5Ob25lKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==