@angular/core 10.1.2 → 10.1.6

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 (60) hide show
  1. package/bundles/core-testing.umd.js +1 -1
  2. package/bundles/core-testing.umd.min.js +1 -1
  3. package/bundles/core-testing.umd.min.js.map +1 -1
  4. package/bundles/core.umd.js +5088 -5013
  5. package/bundles/core.umd.js.map +1 -1
  6. package/bundles/core.umd.min.js +129 -122
  7. package/bundles/core.umd.min.js.map +1 -1
  8. package/core.d.ts +121 -106
  9. package/core.metadata.json +1 -1
  10. package/esm2015/core.js +8 -8
  11. package/esm2015/src/application_ref.js +4 -2
  12. package/esm2015/src/debug/debug_node.js +9 -4
  13. package/esm2015/src/di/injector_compatibility.js +13 -1
  14. package/esm2015/src/errors.js +1 -1
  15. package/esm2015/src/render3/assert.js +53 -8
  16. package/esm2015/src/render3/component.js +10 -9
  17. package/esm2015/src/render3/component_ref.js +5 -12
  18. package/esm2015/src/render3/context_discovery.js +11 -9
  19. package/esm2015/src/render3/di.js +80 -47
  20. package/esm2015/src/render3/di_setup.js +3 -3
  21. package/esm2015/src/render3/features/providers_feature.js +2 -2
  22. package/esm2015/src/render3/i18n/i18n_apply.js +27 -20
  23. package/esm2015/src/render3/i18n/i18n_debug.js +2 -2
  24. package/esm2015/src/render3/i18n/i18n_parse.js +9 -9
  25. package/esm2015/src/render3/instructions/di.js +9 -6
  26. package/esm2015/src/render3/instructions/element.js +17 -17
  27. package/esm2015/src/render3/instructions/element_container.js +15 -15
  28. package/esm2015/src/render3/instructions/listener.js +6 -6
  29. package/esm2015/src/render3/instructions/lview_debug.js +113 -32
  30. package/esm2015/src/render3/instructions/projection.js +4 -4
  31. package/esm2015/src/render3/instructions/shared.js +42 -66
  32. package/esm2015/src/render3/instructions/styling.js +1 -1
  33. package/esm2015/src/render3/instructions/template.js +7 -10
  34. package/esm2015/src/render3/instructions/text.js +5 -5
  35. package/esm2015/src/render3/interfaces/injector.js +4 -4
  36. package/esm2015/src/render3/interfaces/node.js +2 -3
  37. package/esm2015/src/render3/interfaces/type_checks.js +1 -1
  38. package/esm2015/src/render3/interfaces/view.js +11 -1
  39. package/esm2015/src/render3/jit/module.js +1 -1
  40. package/esm2015/src/render3/node_assert.js +3 -14
  41. package/esm2015/src/render3/node_manipulation.js +63 -128
  42. package/esm2015/src/render3/pipe.js +15 -9
  43. package/esm2015/src/render3/query.js +7 -7
  44. package/esm2015/src/render3/state.js +17 -16
  45. package/esm2015/src/render3/styling/style_binding_list.js +2 -2
  46. package/esm2015/src/render3/util/change_detection_utils.js +2 -2
  47. package/esm2015/src/render3/util/discovery_utils.js +7 -5
  48. package/esm2015/src/render3/util/injector_utils.js +8 -2
  49. package/esm2015/src/render3/util/view_utils.js +2 -2
  50. package/esm2015/src/render3/view_engine_compatibility.js +37 -26
  51. package/esm2015/src/render3/view_ref.js +7 -10
  52. package/esm2015/src/version.js +1 -1
  53. package/fesm2015/core.js +5117 -5057
  54. package/fesm2015/core.js.map +1 -1
  55. package/fesm2015/testing.js +1 -1
  56. package/package.json +1 -1
  57. package/src/r3_symbols.d.ts +1 -1
  58. package/testing/testing.d.ts +1 -1
  59. package/testing.d.ts +1 -1
  60. package/esm2015/src/render3/node_util.js +0 -46
package/core.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Angular v10.1.2
2
+ * @license Angular v10.1.6
3
3
  * (c) 2010-2020 Google LLC. https://angular.io/
4
4
  * License: MIT
5
5
  */
@@ -1616,6 +1616,18 @@ declare interface DebugNode_2 {
1616
1616
  * Child nodes
1617
1617
  */
1618
1618
  children: DebugNode_2[];
1619
+ /**
1620
+ * A list of Component/Directive types which need to be instantiated an this location.
1621
+ */
1622
+ factories: Type<unknown>[];
1623
+ /**
1624
+ * A list of Component/Directive instances which were instantiated an this location.
1625
+ */
1626
+ instances: unknown[];
1627
+ /**
1628
+ * NodeInjector information.
1629
+ */
1630
+ injector: NodeInjectorDebug;
1619
1631
  }
1620
1632
 
1621
1633
  declare class DebugNode__POST_R3__ implements DebugNode {
@@ -3786,7 +3798,7 @@ declare interface LContainer extends Array<any> {
3786
3798
  * The host could be an LView if this container is on a component node.
3787
3799
  * In that case, the component LView is its HOST.
3788
3800
  */
3789
- readonly [HOST]: RElement | RComment | ɵangular_packages_core_core_bp;
3801
+ readonly [HOST]: RElement | RComment | ɵangular_packages_core_core_bo;
3790
3802
  /**
3791
3803
  * This is a type field which allows us to differentiate `LContainer` from `StylingContext` in an
3792
3804
  * efficient way. The value is always set to `true`
@@ -3803,12 +3815,12 @@ declare interface LContainer extends Array<any> {
3803
3815
  * Access to the parent view is necessary so we can propagate back
3804
3816
  * up from inside a container to parent[NEXT].
3805
3817
  */
3806
- [PARENT]: ɵangular_packages_core_core_bp;
3818
+ [PARENT]: ɵangular_packages_core_core_bo;
3807
3819
  /**
3808
3820
  * This allows us to jump from a container to a sibling container or component
3809
3821
  * view with the same parent, so we can remove listeners efficiently.
3810
3822
  */
3811
- [NEXT]: ɵangular_packages_core_core_bp | LContainer | null;
3823
+ [NEXT]: ɵangular_packages_core_core_bo | LContainer | null;
3812
3824
  /**
3813
3825
  * The number of direct transplanted views which need a refresh or have descendants themselves
3814
3826
  * that need a refresh but have not marked their ancestors as Dirty. This tells us that during
@@ -3821,7 +3833,7 @@ declare interface LContainer extends Array<any> {
3821
3833
  * a different `LContainer`. We need to track views created from a given declaration point since
3822
3834
  * queries collect matches from the embedded view declaration point and _not_ the insertion point.
3823
3835
  */
3824
- [MOVED_VIEWS]: ɵangular_packages_core_core_bp[] | null;
3836
+ [MOVED_VIEWS]: ɵangular_packages_core_core_bo[] | null;
3825
3837
  /**
3826
3838
  * Pointer to the `TNode` which represents the host of the container.
3827
3839
  */
@@ -3852,8 +3864,8 @@ declare interface LContainerDebug {
3852
3864
  */
3853
3865
  readonly views: LViewDebug[];
3854
3866
  readonly parent: LViewDebug | null;
3855
- readonly movedViews: ɵangular_packages_core_core_bp[] | null;
3856
- readonly host: RElement | RComment | ɵangular_packages_core_core_bp;
3867
+ readonly movedViews: ɵangular_packages_core_core_bo[] | null;
3868
+ readonly host: RElement | RComment | ɵangular_packages_core_core_bo;
3857
3869
  readonly next: LViewDebug | LContainerDebug | null;
3858
3870
  readonly hasTransplantedViews: boolean;
3859
3871
  }
@@ -3880,7 +3892,7 @@ declare interface LFrame {
3880
3892
  * An array of nodes (text, element, container, etc), pipes, their bindings, and
3881
3893
  * any local variables that need to be stored between invocations.
3882
3894
  */
3883
- lView: ɵangular_packages_core_core_bp;
3895
+ lView: ɵangular_packages_core_core_bo;
3884
3896
  /**
3885
3897
  * Current `TView` associated with the `LFrame.lView`.
3886
3898
  *
@@ -3893,11 +3905,11 @@ declare interface LFrame {
3893
3905
  *
3894
3906
  * This is used in conjunction with `isParent`.
3895
3907
  */
3896
- previousOrParentTNode: TNode;
3908
+ currentTNode: TNode | null;
3897
3909
  /**
3898
3910
  * If `isParent` is:
3899
- * - `true`: then `previousOrParentTNode` points to a parent node.
3900
- * - `false`: then `previousOrParentTNode` points to previous node (sibling).
3911
+ * - `true`: then `currentTNode` points to a parent node.
3912
+ * - `false`: then `currentTNode` points to previous node (sibling).
3901
3913
  */
3902
3914
  isParent: boolean;
3903
3915
  /**
@@ -3916,7 +3928,7 @@ declare interface LFrame {
3916
3928
  *
3917
3929
  * e.g. const inner = x().$implicit; const outer = x().$implicit;
3918
3930
  */
3919
- contextLView: ɵangular_packages_core_core_bp;
3931
+ contextLView: ɵangular_packages_core_core_bo;
3920
3932
  /**
3921
3933
  * Store the element depth count. This is used to identify the root elements of the template
3922
3934
  * so that we can then attach patch data `LView` to only those elements. We know that those
@@ -3977,7 +3989,7 @@ export declare const LOCALE_ID: InjectionToken<string>;
3977
3989
  * - `<div #nativeDivEl>` - `nativeDivEl` should point to the native `<div>` element;
3978
3990
  * - `<ng-template #tplRef>` - `tplRef` should point to the `TemplateRef` instance;
3979
3991
  */
3980
- declare type LocalRefExtractor = (tNode: TNodeWithLocalRefs, currentView: ɵangular_packages_core_core_bp) => any;
3992
+ declare type LocalRefExtractor = (tNode: TNodeWithLocalRefs, currentView: ɵangular_packages_core_core_bo) => any;
3981
3993
 
3982
3994
  /**
3983
3995
  * lQueries represent a collection of individual LQuery objects tracked in a given view.
@@ -4812,6 +4824,29 @@ declare interface NodeDef {
4812
4824
  ngContent: NgContentDef | null;
4813
4825
  }
4814
4826
 
4827
+ declare interface NodeInjectorDebug {
4828
+ /**
4829
+ * Instance bloom. Does the current injector have a provider with a given bloom mask.
4830
+ */
4831
+ bloom: string;
4832
+ /**
4833
+ * Cumulative bloom. Do any of the above injectors have a provider with a given bloom mask.
4834
+ */
4835
+ cumulativeBloom: string;
4836
+ /**
4837
+ * A list of providers associated with this injector.
4838
+ */
4839
+ providers: (Type<unknown> | ɵDirectiveDef<unknown> | ɵComponentDef<unknown>)[];
4840
+ /**
4841
+ * A list of providers associated with this injector visible to the view of the component only.
4842
+ */
4843
+ viewProviders: Type<unknown>[];
4844
+ /**
4845
+ * Location of the parent `TNode`.
4846
+ */
4847
+ parentInjectorIndex: number;
4848
+ }
4849
+
4815
4850
  /**
4816
4851
  * Function to call console.error at the right source location. This is an indirection
4817
4852
  * via another function as browser will log the location that actually called
@@ -6659,7 +6694,7 @@ declare interface TContainerNode extends TNode {
6659
6694
  * - They are the first node of a component or embedded view
6660
6695
  * - They are dynamically created
6661
6696
  */
6662
- parent: ɵangular_packages_core_core_bf | TElementContainerNode | null;
6697
+ parent: ɵangular_packages_core_core_be | TElementContainerNode | null;
6663
6698
  tViews: TView | TView[] | null;
6664
6699
  projection: null;
6665
6700
  }
@@ -6697,8 +6732,8 @@ declare type TData = (TNode | ɵPipeDef<any> | ɵDirectiveDef<any> | ɵComponent
6697
6732
  declare interface TElementContainerNode extends TNode {
6698
6733
  /** Index in the LView[] array. */
6699
6734
  index: number;
6700
- child: ɵangular_packages_core_core_bf | TTextNode | TContainerNode | TElementContainerNode | TProjectionNode | null;
6701
- parent: ɵangular_packages_core_core_bf | TElementContainerNode | null;
6735
+ child: ɵangular_packages_core_core_be | TTextNode | TContainerNode | TElementContainerNode | TProjectionNode | null;
6736
+ parent: ɵangular_packages_core_core_be | TElementContainerNode | null;
6702
6737
  tViews: null;
6703
6738
  projection: null;
6704
6739
  }
@@ -7145,7 +7180,7 @@ declare interface TNode {
7145
7180
  *
7146
7181
  * If this is an inline view node (V), the parent will be its container.
7147
7182
  */
7148
- parent: ɵangular_packages_core_core_bf | TContainerNode | null;
7183
+ parent: ɵangular_packages_core_core_be | TContainerNode | null;
7149
7184
  /**
7150
7185
  * List of projected TNodes for a given component host element OR index into the said nodes.
7151
7186
  *
@@ -7355,34 +7390,30 @@ declare const enum TNodeType {
7355
7390
  * The TNode contains information about an `<ng-content>` projection
7356
7391
  */
7357
7392
  Projection = 1,
7358
- /**
7359
- * The TNode contains information about an {@link LView}
7360
- */
7361
- View = 2,
7362
7393
  /**
7363
7394
  * The TNode contains information about a DOM element aka {@link RNode}.
7364
7395
  */
7365
- Element = 3,
7396
+ Element = 2,
7366
7397
  /**
7367
7398
  * The TNode contains information about an `<ng-container>` element {@link RNode}.
7368
7399
  */
7369
- ElementContainer = 4,
7400
+ ElementContainer = 3,
7370
7401
  /**
7371
7402
  * The TNode contains information about an ICU comment used in `i18n`.
7372
7403
  */
7373
- IcuContainer = 5
7404
+ IcuContainer = 4
7374
7405
  }
7375
7406
 
7376
7407
  /**
7377
7408
  * Converts `TNodeType` into human readable text.
7378
7409
  * Make sure this matches with `TNodeType`
7379
7410
  */
7380
- declare const TNodeTypeAsString: readonly ["Container", "Projection", "View", "Element", "ElementContainer", "IcuContainer"];
7411
+ declare const TNodeTypeAsString: readonly ["Container", "Projection", "Element", "ElementContainer", "IcuContainer"];
7381
7412
 
7382
7413
  /**
7383
7414
  * Type representing a set of TNodes that can have local refs (`#foo`) placed on them.
7384
7415
  */
7385
- declare type TNodeWithLocalRefs = TContainerNode | ɵangular_packages_core_core_bf | TElementContainerNode;
7416
+ declare type TNodeWithLocalRefs = TContainerNode | ɵangular_packages_core_core_be | TElementContainerNode;
7386
7417
 
7387
7418
  /** Static data for an LProjectionNode */
7388
7419
  declare interface TProjectionNode extends TNode {
@@ -7393,7 +7424,7 @@ declare interface TProjectionNode extends TNode {
7393
7424
  * or embedded view (which means their parent is in a different view and must be
7394
7425
  * retrieved using LView.node).
7395
7426
  */
7396
- parent: ɵangular_packages_core_core_bf | TElementContainerNode | null;
7427
+ parent: ɵangular_packages_core_core_be | TElementContainerNode | null;
7397
7428
  tViews: null;
7398
7429
  /** Index of the projection node. (See TNode.projection for more info.) */
7399
7430
  projection: number;
@@ -7713,7 +7744,7 @@ declare interface TTextNode extends TNode {
7713
7744
  * embedded view (which means their parent is in a different view and must be
7714
7745
  * retrieved using LView.node).
7715
7746
  */
7716
- parent: ɵangular_packages_core_core_bf | TElementContainerNode | null;
7747
+ parent: ɵangular_packages_core_core_be | TElementContainerNode | null;
7717
7748
  tViews: null;
7718
7749
  projection: null;
7719
7750
  }
@@ -7731,19 +7762,11 @@ declare interface TView {
7731
7762
  * Type of `TView` (`Root`|`Component`|`Embedded`).
7732
7763
  */
7733
7764
  type: TViewType;
7734
- /**
7735
- * ID for inline views to determine whether a view is the same as the previous view
7736
- * in a certain position. If it's not, we know the new view needs to be inserted
7737
- * and the one that exists needs to be removed (e.g. if/else statements)
7738
- *
7739
- * If this is -1, then this is a component view or a dynamically created view.
7740
- */
7741
- readonly id: number;
7742
7765
  /**
7743
7766
  * This is a blueprint used to generate LView instances for this TView. Copying this
7744
7767
  * blueprint is faster than creating a new LView from scratch.
7745
7768
  */
7746
- blueprint: ɵangular_packages_core_core_bp;
7769
+ blueprint: ɵangular_packages_core_core_bo;
7747
7770
  /**
7748
7771
  * The template function used to refresh the view of dynamically created views
7749
7772
  * and components. Will be null for inline views.
@@ -7754,21 +7777,9 @@ declare interface TView {
7754
7777
  */
7755
7778
  viewQuery: ViewQueriesFunction<{}> | null;
7756
7779
  /**
7757
- * Pointer to the host `TNode` (not part of this TView).
7758
- *
7759
- * If this is a `TViewNode` for an `LViewNode`, this is an embedded view of a container.
7760
- * We need this pointer to be able to efficiently find this node when inserting the view
7761
- * into an anchor.
7762
- *
7763
- * If this is a `TElementNode`, this is the view of a root component. It has exactly one
7764
- * root TNode.
7765
- *
7766
- * If this is null, this is the view of a component that is not at root. We do not store
7767
- * the host TNodes for child component views because they can potentially have several
7768
- * different host TNodes, depending on where the component is being used. These host
7769
- * TNodes cannot be shared (due to different indices, etc).
7780
+ * A `TNode` representing the declaration location of this `TView` (not part of this TView).
7770
7781
  */
7771
- node: TViewNode | ɵangular_packages_core_core_bf | null;
7782
+ declTNode: TNode | null;
7772
7783
  /** Whether or not this template has been processed in creation mode. */
7773
7784
  firstCreatePass: boolean;
7774
7785
  /**
@@ -7965,16 +7976,6 @@ declare interface TView {
7965
7976
  incompleteFirstPass: boolean;
7966
7977
  }
7967
7978
 
7968
- /** Static data for a view */
7969
- declare interface TViewNode extends TNode {
7970
- /** If -1, it's a dynamically created view. Otherwise, it is the view block ID. */
7971
- index: number;
7972
- child: ɵangular_packages_core_core_bf | TTextNode | TElementContainerNode | TContainerNode | TProjectionNode | null;
7973
- parent: TContainerNode | null;
7974
- tViews: null;
7975
- projection: null;
7976
- }
7977
-
7978
7979
  /**
7979
7980
  * Explicitly marks `TView` as a specific type in `ngDevMode`
7980
7981
  *
@@ -8493,14 +8494,14 @@ declare class ViewRef_2<T> implements EmbeddedViewRef<T>, InternalViewRef, viewE
8493
8494
  *
8494
8495
  * @internal
8495
8496
  */
8496
- _lView: ɵangular_packages_core_core_bp,
8497
+ _lView: ɵangular_packages_core_core_bo,
8497
8498
  /**
8498
8499
  * This represents the `LView` associated with the point where `ChangeDetectorRef` was
8499
8500
  * requested.
8500
8501
  *
8501
8502
  * This may be different from `_lView` if the `_cdRefInjectingView` is an embedded view.
8502
8503
  */
8503
- _cdRefInjectingView?: ɵangular_packages_core_core_bp | undefined);
8504
+ _cdRefInjectingView?: ɵangular_packages_core_core_bo | undefined);
8504
8505
  get context(): T;
8505
8506
  get destroyed(): boolean;
8506
8507
  destroy(): void;
@@ -8784,25 +8785,23 @@ export declare const ɵangular_packages_core_core_ba: InstructionState;
8784
8785
  /**
8785
8786
  * Return the current `LView`.
8786
8787
  */
8787
- export declare function ɵangular_packages_core_core_bb(): ɵangular_packages_core_core_bp;
8788
-
8789
- export declare function ɵangular_packages_core_core_bc(): TNode;
8788
+ export declare function ɵangular_packages_core_core_bb(): ɵangular_packages_core_core_bo;
8790
8789
 
8791
- export declare function ɵangular_packages_core_core_bd(): number;
8790
+ export declare function ɵangular_packages_core_core_bc(): number;
8792
8791
 
8793
- export declare function ɵangular_packages_core_core_be<T = any>(level: number): T;
8792
+ export declare function ɵangular_packages_core_core_bd<T = any>(level: number): T;
8794
8793
 
8795
8794
  /** Static data for an element */
8796
- export declare interface ɵangular_packages_core_core_bf extends TNode {
8795
+ export declare interface ɵangular_packages_core_core_be extends TNode {
8797
8796
  /** Index in the data[] array */
8798
8797
  index: number;
8799
- child: ɵangular_packages_core_core_bf | TTextNode | TElementContainerNode | TContainerNode | TProjectionNode | null;
8798
+ child: ɵangular_packages_core_core_be | TTextNode | TElementContainerNode | TContainerNode | TProjectionNode | null;
8800
8799
  /**
8801
8800
  * Element nodes will have parents unless they are the first node of a component or
8802
8801
  * embedded view (which means their parent is in a different view and must be
8803
8802
  * retrieved using viewData[HOST_NODE]).
8804
8803
  */
8805
- parent: ɵangular_packages_core_core_bf | TElementContainerNode | null;
8804
+ parent: ɵangular_packages_core_core_be | TElementContainerNode | null;
8806
8805
  tViews: null;
8807
8806
  /**
8808
8807
  * If this is a component TNode with projection, this will be an array of projected
@@ -8824,7 +8823,7 @@ export declare interface ɵangular_packages_core_core_bf extends TNode {
8824
8823
  * @param thisArg Optional calling context of pureFn
8825
8824
  * @returns Updated or cached value
8826
8825
  */
8827
- export declare function ɵangular_packages_core_core_bg(lView: ɵangular_packages_core_core_bp, bindingRoot: number, slotOffset: number, pureFn: (v: any) => any, exp: any, thisArg?: any): any;
8826
+ export declare function ɵangular_packages_core_core_bf(lView: ɵangular_packages_core_core_bo, bindingRoot: number, slotOffset: number, pureFn: (v: any) => any, exp: any, thisArg?: any): any;
8828
8827
 
8829
8828
  /**
8830
8829
  * If the value of any provided exp has changed, calls the pure function to return
@@ -8839,7 +8838,7 @@ export declare function ɵangular_packages_core_core_bg(lView: ɵangular_package
8839
8838
  * @param thisArg Optional calling context of pureFn
8840
8839
  * @returns Updated or cached value
8841
8840
  */
8842
- export declare function ɵangular_packages_core_core_bh(lView: ɵangular_packages_core_core_bp, bindingRoot: number, slotOffset: number, pureFn: (v1: any, v2: any) => any, exp1: any, exp2: any, thisArg?: any): any;
8841
+ export declare function ɵangular_packages_core_core_bg(lView: ɵangular_packages_core_core_bo, bindingRoot: number, slotOffset: number, pureFn: (v1: any, v2: any) => any, exp1: any, exp2: any, thisArg?: any): any;
8843
8842
 
8844
8843
  /**
8845
8844
  * If the value of any provided exp has changed, calls the pure function to return
@@ -8855,7 +8854,7 @@ export declare function ɵangular_packages_core_core_bh(lView: ɵangular_package
8855
8854
  * @param thisArg Optional calling context of pureFn
8856
8855
  * @returns Updated or cached value
8857
8856
  */
8858
- export declare function ɵangular_packages_core_core_bi(lView: ɵangular_packages_core_core_bp, bindingRoot: number, slotOffset: number, pureFn: (v1: any, v2: any, v3: any) => any, exp1: any, exp2: any, exp3: any, thisArg?: any): any;
8857
+ export declare function ɵangular_packages_core_core_bh(lView: ɵangular_packages_core_core_bo, bindingRoot: number, slotOffset: number, pureFn: (v1: any, v2: any, v3: any) => any, exp1: any, exp2: any, exp3: any, thisArg?: any): any;
8859
8858
 
8860
8859
  /**
8861
8860
  * If the value of any provided exp has changed, calls the pure function to return
@@ -8873,7 +8872,7 @@ export declare function ɵangular_packages_core_core_bi(lView: ɵangular_package
8873
8872
  * @returns Updated or cached value
8874
8873
  *
8875
8874
  */
8876
- export declare function ɵangular_packages_core_core_bj(lView: ɵangular_packages_core_core_bp, bindingRoot: number, slotOffset: number, pureFn: (v1: any, v2: any, v3: any, v4: any) => any, exp1: any, exp2: any, exp3: any, exp4: any, thisArg?: any): any;
8875
+ export declare function ɵangular_packages_core_core_bi(lView: ɵangular_packages_core_core_bo, bindingRoot: number, slotOffset: number, pureFn: (v1: any, v2: any, v3: any, v4: any) => any, exp1: any, exp2: any, exp3: any, exp4: any, thisArg?: any): any;
8877
8876
 
8878
8877
  /**
8879
8878
  * pureFunction instruction that can support any number of bindings.
@@ -8890,7 +8889,7 @@ export declare function ɵangular_packages_core_core_bj(lView: ɵangular_package
8890
8889
  * @param thisArg Optional calling context of pureFn
8891
8890
  * @returns Updated or cached value
8892
8891
  */
8893
- export declare function ɵangular_packages_core_core_bk(lView: ɵangular_packages_core_core_bp, bindingRoot: number, slotOffset: number, pureFn: (...v: any[]) => any, exps: any[], thisArg?: any): any;
8892
+ export declare function ɵangular_packages_core_core_bj(lView: ɵangular_packages_core_core_bo, bindingRoot: number, slotOffset: number, pureFn: (...v: any[]) => any, exps: any[], thisArg?: any): any;
8894
8893
 
8895
8894
  /**
8896
8895
  * Detects which sanitizer to use for URL property, based on tag name and prop name.
@@ -8899,14 +8898,14 @@ export declare function ɵangular_packages_core_core_bk(lView: ɵangular_package
8899
8898
  * `packages/compiler/src/schema/dom_security_schema.ts`.
8900
8899
  * If tag and prop names don't match Resource URL schema, use URL sanitizer.
8901
8900
  */
8902
- export declare function ɵangular_packages_core_core_bl(tag: string, prop: string): typeof ɵɵsanitizeResourceUrl;
8901
+ export declare function ɵangular_packages_core_core_bk(tag: string, prop: string): typeof ɵɵsanitizeResourceUrl;
8903
8902
 
8904
- export declare function ɵangular_packages_core_core_bm(name: string, props?: (...args: any[]) => any, parentClass?: any): any;
8903
+ export declare function ɵangular_packages_core_core_bl(name: string, props?: (...args: any[]) => any, parentClass?: any): any;
8905
8904
 
8906
- export declare function ɵangular_packages_core_core_bn(name: string, props?: (...args: any[]) => any, parentClass?: any, additionalProcessing?: (target: any, name: string, ...args: any[]) => void): any;
8905
+ export declare function ɵangular_packages_core_core_bm(name: string, props?: (...args: any[]) => any, parentClass?: any, additionalProcessing?: (target: any, name: string, ...args: any[]) => void): any;
8907
8906
 
8908
8907
 
8909
- export declare function ɵangular_packages_core_core_bo<T>(objWithPropertyToExtract: T): string;
8908
+ export declare function ɵangular_packages_core_core_bn<T>(objWithPropertyToExtract: T): string;
8910
8909
 
8911
8910
  /**
8912
8911
  * `LView` stores all of the information needed to process the instructions as
@@ -8918,7 +8917,7 @@ export declare function ɵangular_packages_core_core_bo<T>(objWithPropertyToExtr
8918
8917
  * Keeping separate state for each view facilities view insertion / deletion, so we
8919
8918
  * don't have to edit the data array based on which views are present.
8920
8919
  */
8921
- export declare interface ɵangular_packages_core_core_bp extends Array<any> {
8920
+ export declare interface ɵangular_packages_core_core_bo extends Array<any> {
8922
8921
  /**
8923
8922
  * Human readable representation of the `LView`.
8924
8923
  *
@@ -8928,8 +8927,7 @@ export declare interface ɵangular_packages_core_core_bp extends Array<any> {
8928
8927
  */
8929
8928
  debug?: LViewDebug;
8930
8929
  /**
8931
- * The host node for this LView instance, if this is a component view.
8932
- * If this is an embedded view, HOST will be null.
8930
+ * The node into which this `LView` is inserted.
8933
8931
  */
8934
8932
  [HOST]: RElement | null;
8935
8933
  /**
@@ -8949,7 +8947,7 @@ export declare interface ɵangular_packages_core_core_bp extends Array<any> {
8949
8947
  *
8950
8948
  * `LContainer` - The current view is part of a container, and is an embedded view.
8951
8949
  */
8952
- [PARENT]: ɵangular_packages_core_core_bp | LContainer | null;
8950
+ [PARENT]: ɵangular_packages_core_core_bo | LContainer | null;
8953
8951
  /**
8954
8952
  *
8955
8953
  * The next sibling LView or LContainer.
@@ -8959,20 +8957,39 @@ export declare interface ɵangular_packages_core_core_bp extends Array<any> {
8959
8957
  * views in the same container. We need a way to link component views and views
8960
8958
  * across containers as well.
8961
8959
  */
8962
- [NEXT]: ɵangular_packages_core_core_bp | LContainer | null;
8960
+ [NEXT]: ɵangular_packages_core_core_bo | LContainer | null;
8963
8961
  /** Queries active for this view - nodes from a view are reported to those queries. */
8964
8962
  [QUERIES]: LQueries | null;
8965
8963
  /**
8966
- * Pointer to the `TViewNode` or `TElementNode` which represents the root of the view.
8964
+ * Store the `TNode` of the location where the current `LView` is inserted into.
8967
8965
  *
8968
- * If `TViewNode`, this is an embedded view of a container. We need this to be able to
8969
- * efficiently find the `LViewNode` when inserting the view into an anchor.
8966
+ * Given:
8967
+ * ```
8968
+ * <div>
8969
+ * <ng-template><span></span></ng-template>
8970
+ * </div>
8971
+ * ```
8972
+ *
8973
+ * We end up with two `TView`s.
8974
+ * - `parent` `TView` which contains `<div><!-- anchor --></div>`
8975
+ * - `child` `TView` which contains `<span></span>`
8970
8976
  *
8971
- * If `TElementNode`, this is the LView of a component.
8977
+ * Typically the `child` is inserted into the declaration location of the `parent`, but it can be
8978
+ * inserted anywhere. Because it can be inserted anywhere it is not possible to store the
8979
+ * insertion information in the `TView` and instead we must store it in the `LView[T_HOST]`.
8972
8980
  *
8973
- * If null, this is the root view of an application (root component is in this view).
8981
+ * So to determine where is our insertion parent we would execute:
8982
+ * ```
8983
+ * const parentLView = lView[PARENT];
8984
+ * const parentTNode = lView[T_HOST];
8985
+ * const insertionParent = parentLView[parentTNode.index];
8986
+ * ```
8987
+ *
8988
+ *
8989
+ * If `null`, this is the root view of an application (root component is in this view) and it has
8990
+ * no parents.
8974
8991
  */
8975
- [T_HOST]: TViewNode | ɵangular_packages_core_core_bf | null;
8992
+ [T_HOST]: TNode | null;
8976
8993
  /**
8977
8994
  * When a view is destroyed, listeners need to be released and outputs need to be
8978
8995
  * unsubscribed. This context array stores both listener functions wrapped with
@@ -9005,19 +9022,17 @@ export declare interface ɵangular_packages_core_core_bp extends Array<any> {
9005
9022
  * Necessary to store this so views can traverse through their nested views
9006
9023
  * to remove listeners and call onDestroy callbacks.
9007
9024
  */
9008
- [CHILD_HEAD]: ɵangular_packages_core_core_bp | LContainer | null;
9025
+ [CHILD_HEAD]: ɵangular_packages_core_core_bo | LContainer | null;
9009
9026
  /**
9010
9027
  * The last LView or LContainer beneath this LView in the hierarchy.
9011
9028
  *
9012
9029
  * The tail allows us to quickly add a new state to the end of the view list
9013
9030
  * without having to propagate starting from the first child.
9014
9031
  */
9015
- [CHILD_TAIL]: ɵangular_packages_core_core_bp | LContainer | null;
9032
+ [CHILD_TAIL]: ɵangular_packages_core_core_bo | LContainer | null;
9016
9033
  /**
9017
9034
  * View where this view's template was declared.
9018
9035
  *
9019
- * Only applicable for dynamically created views. Will be null for inline/component views.
9020
- *
9021
9036
  * The template for a dynamically created view may be declared in a different view than
9022
9037
  * it is inserted. We already track the "insertion view" (view where the template was
9023
9038
  * inserted) in LView[PARENT], but we also need access to the "declaration view"
@@ -9037,7 +9052,7 @@ export declare interface ɵangular_packages_core_core_bp extends Array<any> {
9037
9052
  * template function during change detection, we need the declaration view to get inherited
9038
9053
  * context.
9039
9054
  */
9040
- [DECLARATION_VIEW]: ɵangular_packages_core_core_bp | null;
9055
+ [DECLARATION_VIEW]: ɵangular_packages_core_core_bo | null;
9041
9056
  /**
9042
9057
  * Points to the declaration component view, used to track transplanted `LView`s.
9043
9058
  *
@@ -9107,7 +9122,7 @@ export declare interface ɵangular_packages_core_core_bp extends Array<any> {
9107
9122
  * - `LView[DECLARATION_LCONTAINER]` similar problem for queries
9108
9123
  * - `LContainer[MOVED_VIEWS]` similar problem for queries
9109
9124
  */
9110
- [DECLARATION_COMPONENT_VIEW]: ɵangular_packages_core_core_bp;
9125
+ [DECLARATION_COMPONENT_VIEW]: ɵangular_packages_core_core_bo;
9111
9126
  /**
9112
9127
  * A declaration point of embedded views (ones instantiated based on the content of a
9113
9128
  * <ng-template>), null for other types of views.
@@ -9137,7 +9152,7 @@ export declare interface ɵangular_packages_core_core_bp extends Array<any> {
9137
9152
  *
9138
9153
  * @param viewOrComponent the `LView` or component to get the root context for.
9139
9154
  */
9140
- export declare function ɵangular_packages_core_core_bq(viewOrComponent: ɵangular_packages_core_core_bp | {}): RootContext;
9155
+ export declare function ɵangular_packages_core_core_bp(viewOrComponent: ɵangular_packages_core_core_bo | {}): RootContext;
9141
9156
 
9142
9157
 
9143
9158
  /**
@@ -9160,7 +9175,7 @@ export declare function ɵangular_packages_core_core_bq(viewOrComponent: ɵangul
9160
9175
  *
9161
9176
  * @codeGenApi
9162
9177
  */
9163
- export declare function ɵangular_packages_core_core_br(message: string, replacements?: {
9178
+ export declare function ɵangular_packages_core_core_bq(message: string, replacements?: {
9164
9179
  [key: string]: (string | string[]);
9165
9180
  }): string;
9166
9181
 
@@ -9220,7 +9235,7 @@ export declare function ɵangular_packages_core_core_g(): string;
9220
9235
  * @param view The view to which the node belongs
9221
9236
  * @returns The ElementRef instance to use
9222
9237
  */
9223
- export declare function ɵangular_packages_core_core_h(ElementRefToken: typeof ElementRef, tNode: TNode, view: ɵangular_packages_core_core_bp): ElementRef;
9238
+ export declare function ɵangular_packages_core_core_h(ElementRefToken: typeof ElementRef, tNode: TNode, view: ɵangular_packages_core_core_bo): ElementRef;
9224
9239
 
9225
9240
  /**
9226
9241
  * Creates a TemplateRef and stores it on the injector.
@@ -9231,7 +9246,7 @@ export declare function ɵangular_packages_core_core_h(ElementRefToken: typeof E
9231
9246
  * @param hostView The view to which the node belongs
9232
9247
  * @returns The TemplateRef instance or null if we can't create a TemplateRef on a given node type
9233
9248
  */
9234
- export declare function ɵangular_packages_core_core_i<T>(TemplateRefToken: typeof TemplateRef, ElementRefToken: typeof ElementRef, hostTNode: TNode, hostView: ɵangular_packages_core_core_bp): TemplateRef<T> | null;
9249
+ export declare function ɵangular_packages_core_core_i<T>(TemplateRefToken: typeof TemplateRef, ElementRefToken: typeof ElementRef, hostTNode: TNode, hostView: ɵangular_packages_core_core_bo): TemplateRef<T> | null;
9235
9250
 
9236
9251
  export declare function ɵangular_packages_core_core_j(id: string): NgModuleFactory<any>;
9237
9252
 
@@ -10204,7 +10219,7 @@ export declare interface ɵLContext {
10204
10219
  /**
10205
10220
  * The component's parent view data.
10206
10221
  */
10207
- lView: ɵangular_packages_core_core_bp;
10222
+ lView: ɵangular_packages_core_core_bo;
10208
10223
  /**
10209
10224
  * The index instance of the node.
10210
10225
  */
@@ -10717,7 +10732,7 @@ export declare class ɵRender3ComponentRef<T> extends ComponentRef<T> {
10717
10732
  hostView: ViewRef_2<T>;
10718
10733
  changeDetectorRef: ChangeDetectorRef;
10719
10734
  componentType: Type<T>;
10720
- constructor(componentType: Type<T>, instance: T, location: ElementRef, _rootLView: ɵangular_packages_core_core_bp, _tNode: ɵangular_packages_core_core_bf | TContainerNode | TElementContainerNode);
10735
+ constructor(componentType: Type<T>, instance: T, location: ElementRef, _rootLView: ɵangular_packages_core_core_bo, _tNode: ɵangular_packages_core_core_be | TContainerNode | TElementContainerNode);
10721
10736
  get injector(): Injector;
10722
10737
  destroy(): void;
10723
10738
  onDestroy(callback: () => void): void;
@@ -10892,7 +10907,7 @@ export declare function ɵsetLocaleId(localeId: string): void;
10892
10907
  export declare type ɵSetterFn = (obj: any, value: any) => void;
10893
10908
 
10894
10909
  /** Store a value in the `data` at a given `index`. */
10895
- export declare function ɵstore<T>(tView: TView, lView: ɵangular_packages_core_core_bp, index: number, value: T): void;
10910
+ export declare function ɵstore<T>(tView: TView, lView: ɵangular_packages_core_core_bo, index: number, value: T): void;
10896
10911
 
10897
10912
 
10898
10913
  export declare function ɵstringify(token: any): string;
@@ -13240,7 +13255,7 @@ export declare function ɵɵpropertyInterpolateV(propName: string, values: any[]
13240
13255
  * ɵɵtextInterpolate(ctx.greeter.greet());
13241
13256
  * }
13242
13257
  * },
13243
- * features: [ProvidersFeature([GreeterDE])]
13258
+ * features: [ɵɵProvidersFeature([GreeterDE])]
13244
13259
  * });
13245
13260
  * }
13246
13261
  * ```
@@ -14363,7 +14378,7 @@ export declare function ɵɵtemplate(index: number, templateFn: ComponentTemplat
14363
14378
  *
14364
14379
  * @codeGenApi
14365
14380
  */
14366
- export declare function ɵɵtemplateRefExtractor(tNode: TNode, currentView: ɵangular_packages_core_core_bp): TemplateRef<unknown> | null;
14381
+ export declare function ɵɵtemplateRefExtractor(tNode: TNode, currentView: ɵangular_packages_core_core_bo): TemplateRef<unknown> | null;
14367
14382
 
14368
14383
  /**
14369
14384
  * Create static text node