@angular/core 9.1.7 → 9.1.11
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/bundles/core-testing.umd.js +1 -1
- package/bundles/core-testing.umd.min.js +1 -1
- package/bundles/core-testing.umd.min.js.map +1 -1
- package/bundles/core.umd.js +99 -106
- package/bundles/core.umd.js.map +1 -1
- package/bundles/core.umd.min.js +104 -104
- package/bundles/core.umd.min.js.map +1 -1
- package/core.d.ts +47 -43
- package/core.metadata.json +1 -1
- package/esm2015/src/reflection/reflection_capabilities.js +2 -2
- package/esm2015/src/render3/component.js +2 -2
- package/esm2015/src/render3/component_ref.js +5 -3
- package/esm2015/src/render3/instructions/element.js +9 -6
- package/esm2015/src/render3/instructions/element_container.js +2 -2
- package/esm2015/src/render3/instructions/lview_debug.js +14 -11
- package/esm2015/src/render3/instructions/shared.js +32 -63
- package/esm2015/src/render3/instructions/styling.js +2 -2
- package/esm2015/src/render3/interfaces/container.js +9 -27
- package/esm2015/src/render3/interfaces/node.js +34 -4
- package/esm2015/src/render3/interfaces/view.js +1 -1
- package/esm2015/src/render3/node_assert.js +1 -1
- package/esm2015/src/render3/node_manipulation.js +3 -3
- package/esm2015/src/render3/styling/static_styling.js +25 -20
- package/esm2015/src/render3/util/view_traversal_utils.js +28 -2
- package/esm2015/src/render3/util/view_utils.js +2 -17
- package/esm2015/src/render3/view_engine_compatibility.js +3 -7
- package/esm2015/src/render3/view_ref.js +1 -10
- package/esm2015/src/util/assert.js +1 -1
- package/esm2015/src/version.js +1 -1
- package/esm5/src/reflection/reflection_capabilities.js +2 -2
- package/esm5/src/render3/component.js +2 -2
- package/esm5/src/render3/component_ref.js +5 -3
- package/esm5/src/render3/instructions/element.js +9 -6
- package/esm5/src/render3/instructions/element_container.js +2 -2
- package/esm5/src/render3/instructions/lview_debug.js +8 -12
- package/esm5/src/render3/instructions/shared.js +30 -55
- package/esm5/src/render3/instructions/styling.js +2 -2
- package/esm5/src/render3/interfaces/container.js +10 -2
- package/esm5/src/render3/interfaces/node.js +1 -1
- package/esm5/src/render3/interfaces/view.js +1 -1
- package/esm5/src/render3/node_assert.js +1 -1
- package/esm5/src/render3/node_manipulation.js +3 -3
- package/esm5/src/render3/styling/static_styling.js +23 -18
- package/esm5/src/render3/util/view_traversal_utils.js +20 -2
- package/esm5/src/render3/util/view_utils.js +2 -8
- package/esm5/src/render3/view_engine_compatibility.js +3 -6
- package/esm5/src/render3/view_ref.js +1 -5
- package/esm5/src/util/assert.js +1 -1
- package/esm5/src/version.js +1 -1
- package/fesm2015/core.js +149 -157
- package/fesm2015/core.js.map +1 -1
- package/fesm2015/testing.js +1 -1
- package/fesm5/core.js +99 -106
- package/fesm5/core.js.map +1 -1
- package/fesm5/testing.js +1 -1
- package/package.json +1 -1
- package/src/r3_symbols.d.ts +1 -1
- package/testing/testing.d.ts +1 -1
- package/testing.d.ts +1 -1
package/fesm2015/core.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Angular v9.1.
|
|
2
|
+
* @license Angular v9.1.11
|
|
3
3
|
* (c) 2010-2020 Google LLC. https://angular.io/
|
|
4
4
|
* License: MIT
|
|
5
5
|
*/
|
|
@@ -2792,12 +2792,15 @@ const unusedValueExportToPlacateAjd = 1;
|
|
|
2792
2792
|
*/
|
|
2793
2793
|
const TYPE = 1;
|
|
2794
2794
|
/**
|
|
2795
|
-
*
|
|
2796
|
-
*
|
|
2797
|
-
*
|
|
2795
|
+
* Flag to signify that this `LContainer` may have transplanted views which need to be change
|
|
2796
|
+
* detected. (see: `LView[DECLARATION_COMPONENT_VIEW])`.
|
|
2797
|
+
*
|
|
2798
|
+
* This flag, once set, is never unset for the `LContainer`. This means that when unset we can skip
|
|
2799
|
+
* a lot of work in `refreshEmbeddedViews`. But when set we still need to verify
|
|
2800
|
+
* that the `MOVED_VIEWS` are transplanted and on-push.
|
|
2798
2801
|
* @type {?}
|
|
2799
2802
|
*/
|
|
2800
|
-
const
|
|
2803
|
+
const HAS_TRANSPLANTED_VIEWS = 2;
|
|
2801
2804
|
// PARENT, NEXT, TRANSPLANTED_VIEWS_TO_REFRESH are indices 3, 4, and 5
|
|
2802
2805
|
// As we already have these constants in LView, we don't need to re-create them.
|
|
2803
2806
|
// T_HOST is index 6
|
|
@@ -2816,26 +2819,6 @@ const MOVED_VIEWS = 9;
|
|
|
2816
2819
|
* @type {?}
|
|
2817
2820
|
*/
|
|
2818
2821
|
const CONTAINER_HEADER_OFFSET = 10;
|
|
2819
|
-
/** @enum {number} */
|
|
2820
|
-
const ActiveIndexFlag = {
|
|
2821
|
-
/**
|
|
2822
|
-
* Flag which signifies that the `LContainer` does not have any inline embedded views.
|
|
2823
|
-
*/
|
|
2824
|
-
DYNAMIC_EMBEDDED_VIEWS_ONLY: -1,
|
|
2825
|
-
/**
|
|
2826
|
-
* Flag to signify that this `LContainer` may have transplanted views which need to be change
|
|
2827
|
-
* detected. (see: `LView[DECLARATION_COMPONENT_VIEW])`.
|
|
2828
|
-
*
|
|
2829
|
-
* This flag once set is never unset for the `LContainer`. This means that when unset we can skip
|
|
2830
|
-
* a lot of work in `refreshDynamicEmbeddedViews`. But when set we still need to verify
|
|
2831
|
-
* that the `MOVED_VIEWS` are transplanted and on-push.
|
|
2832
|
-
*/
|
|
2833
|
-
HAS_TRANSPLANTED_VIEWS: 1,
|
|
2834
|
-
/**
|
|
2835
|
-
* Number of bits to shift inline embedded views counter to make space for other flags.
|
|
2836
|
-
*/
|
|
2837
|
-
SHIFT: 1,
|
|
2838
|
-
};
|
|
2839
2822
|
/**
|
|
2840
2823
|
* The state associated with a container.
|
|
2841
2824
|
*
|
|
@@ -2852,7 +2835,7 @@ if (false) {
|
|
|
2852
2835
|
/* Skipping unnamed member:
|
|
2853
2836
|
[TYPE]: true;*/
|
|
2854
2837
|
/* Skipping unnamed member:
|
|
2855
|
-
[
|
|
2838
|
+
[HAS_TRANSPLANTED_VIEWS]: boolean;*/
|
|
2856
2839
|
/* Skipping unnamed member:
|
|
2857
2840
|
[PARENT]: LView;*/
|
|
2858
2841
|
/* Skipping unnamed member:
|
|
@@ -3782,21 +3765,6 @@ function getConstant(consts, index) {
|
|
|
3782
3765
|
function resetPreOrderHookFlags(lView) {
|
|
3783
3766
|
lView[PREORDER_HOOK_FLAGS] = 0;
|
|
3784
3767
|
}
|
|
3785
|
-
/**
|
|
3786
|
-
* @param {?} lContainer
|
|
3787
|
-
* @return {?}
|
|
3788
|
-
*/
|
|
3789
|
-
function getLContainerActiveIndex(lContainer) {
|
|
3790
|
-
return lContainer[ACTIVE_INDEX] >> 1 /* SHIFT */;
|
|
3791
|
-
}
|
|
3792
|
-
/**
|
|
3793
|
-
* @param {?} lContainer
|
|
3794
|
-
* @param {?} index
|
|
3795
|
-
* @return {?}
|
|
3796
|
-
*/
|
|
3797
|
-
function setLContainerActiveIndex(lContainer, index) {
|
|
3798
|
-
lContainer[ACTIVE_INDEX] = index << 1 /* SHIFT */;
|
|
3799
|
-
}
|
|
3800
3768
|
/**
|
|
3801
3769
|
* Updates the `TRANSPLANTED_VIEWS_TO_REFRESH` counter on the `LContainer` as well as the parents
|
|
3802
3770
|
* whose
|
|
@@ -8708,14 +8676,29 @@ if (false) {
|
|
|
8708
8676
|
*/
|
|
8709
8677
|
TNode.prototype.projection;
|
|
8710
8678
|
/**
|
|
8711
|
-
* A collection of all style static values for an element.
|
|
8679
|
+
* A collection of all `style` static values for an element (including from host).
|
|
8712
8680
|
*
|
|
8713
8681
|
* This field will be populated if and when:
|
|
8714
8682
|
*
|
|
8715
|
-
* - There are one or more initial
|
|
8683
|
+
* - There are one or more initial `style`s on an element (e.g. `<div style="width:200px;">`)
|
|
8684
|
+
* - There are one or more initial `style`s on a directive/component host
|
|
8685
|
+
* (e.g. `\@Directive({host: {style: "width:200px;" } }`)
|
|
8716
8686
|
* @type {?}
|
|
8717
8687
|
*/
|
|
8718
8688
|
TNode.prototype.styles;
|
|
8689
|
+
/**
|
|
8690
|
+
* A collection of all `style` static values for an element excluding host sources.
|
|
8691
|
+
*
|
|
8692
|
+
* Populated when there are one or more initial `style`s on an element
|
|
8693
|
+
* (e.g. `<div style="width:200px;">`)
|
|
8694
|
+
* Must be stored separately from `tNode.styles` to facilitate setting directive
|
|
8695
|
+
* inputs that shadow the `style` property. If we used `tNode.styles` as is for shadowed inputs,
|
|
8696
|
+
* we would feed host styles back into directives as "inputs". If we used `tNode.attrs`, we would
|
|
8697
|
+
* have to concatenate the attributes on every template pass. Instead, we process once on first
|
|
8698
|
+
* create pass and store here.
|
|
8699
|
+
* @type {?}
|
|
8700
|
+
*/
|
|
8701
|
+
TNode.prototype.stylesWithoutHost;
|
|
8719
8702
|
/**
|
|
8720
8703
|
* A `KeyValueArray` version of residual `styles`.
|
|
8721
8704
|
*
|
|
@@ -8746,14 +8729,29 @@ if (false) {
|
|
|
8746
8729
|
*/
|
|
8747
8730
|
TNode.prototype.residualStyles;
|
|
8748
8731
|
/**
|
|
8749
|
-
* A collection of all class static values for an element.
|
|
8732
|
+
* A collection of all class static values for an element (including from host).
|
|
8750
8733
|
*
|
|
8751
8734
|
* This field will be populated if and when:
|
|
8752
8735
|
*
|
|
8753
8736
|
* - There are one or more initial classes on an element (e.g. `<div class="one two three">`)
|
|
8737
|
+
* - There are one or more initial classes on an directive/component host
|
|
8738
|
+
* (e.g. `\@Directive({host: {class: "SOME_CLASS" } }`)
|
|
8754
8739
|
* @type {?}
|
|
8755
8740
|
*/
|
|
8756
8741
|
TNode.prototype.classes;
|
|
8742
|
+
/**
|
|
8743
|
+
* A collection of all class static values for an element excluding host sources.
|
|
8744
|
+
*
|
|
8745
|
+
* Populated when there are one or more initial classes on an element
|
|
8746
|
+
* (e.g. `<div class="SOME_CLASS">`)
|
|
8747
|
+
* Must be stored separately from `tNode.classes` to facilitate setting directive
|
|
8748
|
+
* inputs that shadow the `class` property. If we used `tNode.classes` as is for shadowed inputs,
|
|
8749
|
+
* we would feed host classes back into directives as "inputs". If we used `tNode.attrs`, we would
|
|
8750
|
+
* have to concatenate the attributes on every template pass. Instead, we process once on first
|
|
8751
|
+
* create pass and store here.
|
|
8752
|
+
* @type {?}
|
|
8753
|
+
*/
|
|
8754
|
+
TNode.prototype.classesWithoutHost;
|
|
8757
8755
|
/**
|
|
8758
8756
|
* A `KeyValueArray` version of residual `classes`.
|
|
8759
8757
|
*
|
|
@@ -9650,6 +9648,32 @@ function getRootContext(viewOrComponent) {
|
|
|
9650
9648
|
assertDefined(rootView[CONTEXT], 'RootView has no context. Perhaps it is disconnected?');
|
|
9651
9649
|
return (/** @type {?} */ (rootView[CONTEXT]));
|
|
9652
9650
|
}
|
|
9651
|
+
/**
|
|
9652
|
+
* Gets the first `LContainer` in the LView or `null` if none exists.
|
|
9653
|
+
* @param {?} lView
|
|
9654
|
+
* @return {?}
|
|
9655
|
+
*/
|
|
9656
|
+
function getFirstLContainer(lView) {
|
|
9657
|
+
return getNearestLContainer(lView[CHILD_HEAD]);
|
|
9658
|
+
}
|
|
9659
|
+
/**
|
|
9660
|
+
* Gets the next `LContainer` that is a sibling of the given container.
|
|
9661
|
+
* @param {?} container
|
|
9662
|
+
* @return {?}
|
|
9663
|
+
*/
|
|
9664
|
+
function getNextLContainer(container) {
|
|
9665
|
+
return getNearestLContainer(container[NEXT]);
|
|
9666
|
+
}
|
|
9667
|
+
/**
|
|
9668
|
+
* @param {?} viewOrContainer
|
|
9669
|
+
* @return {?}
|
|
9670
|
+
*/
|
|
9671
|
+
function getNearestLContainer(viewOrContainer) {
|
|
9672
|
+
while (viewOrContainer !== null && !isLContainer(viewOrContainer)) {
|
|
9673
|
+
viewOrContainer = viewOrContainer[NEXT];
|
|
9674
|
+
}
|
|
9675
|
+
return viewOrContainer;
|
|
9676
|
+
}
|
|
9653
9677
|
|
|
9654
9678
|
/**
|
|
9655
9679
|
* @fileoverview added by tsickle
|
|
@@ -10587,8 +10611,10 @@ class TNode$1 {
|
|
|
10587
10611
|
* @param {?} parent
|
|
10588
10612
|
* @param {?} projection
|
|
10589
10613
|
* @param {?} styles
|
|
10614
|
+
* @param {?} stylesWithoutHost
|
|
10590
10615
|
* @param {?} residualStyles
|
|
10591
10616
|
* @param {?} classes
|
|
10617
|
+
* @param {?} classesWithoutHost
|
|
10592
10618
|
* @param {?} residualClasses
|
|
10593
10619
|
* @param {?} classBindings
|
|
10594
10620
|
* @param {?} styleBindings
|
|
@@ -10617,8 +10643,10 @@ class TNode$1 {
|
|
|
10617
10643
|
parent, //
|
|
10618
10644
|
projection, //
|
|
10619
10645
|
styles, //
|
|
10646
|
+
stylesWithoutHost, //
|
|
10620
10647
|
residualStyles, //
|
|
10621
10648
|
classes, //
|
|
10649
|
+
classesWithoutHost, //
|
|
10622
10650
|
residualClasses, //
|
|
10623
10651
|
classBindings, //
|
|
10624
10652
|
styleBindings) {
|
|
@@ -10646,8 +10674,10 @@ class TNode$1 {
|
|
|
10646
10674
|
this.parent = parent;
|
|
10647
10675
|
this.projection = projection;
|
|
10648
10676
|
this.styles = styles;
|
|
10677
|
+
this.stylesWithoutHost = stylesWithoutHost;
|
|
10649
10678
|
this.residualStyles = residualStyles;
|
|
10650
10679
|
this.classes = classes;
|
|
10680
|
+
this.classesWithoutHost = classesWithoutHost;
|
|
10651
10681
|
this.residualClasses = residualClasses;
|
|
10652
10682
|
this.classBindings = classBindings;
|
|
10653
10683
|
this.styleBindings = styleBindings;
|
|
@@ -10784,10 +10814,14 @@ if (false) {
|
|
|
10784
10814
|
/** @type {?} */
|
|
10785
10815
|
TNode$1.prototype.styles;
|
|
10786
10816
|
/** @type {?} */
|
|
10817
|
+
TNode$1.prototype.stylesWithoutHost;
|
|
10818
|
+
/** @type {?} */
|
|
10787
10819
|
TNode$1.prototype.residualStyles;
|
|
10788
10820
|
/** @type {?} */
|
|
10789
10821
|
TNode$1.prototype.classes;
|
|
10790
10822
|
/** @type {?} */
|
|
10823
|
+
TNode$1.prototype.classesWithoutHost;
|
|
10824
|
+
/** @type {?} */
|
|
10791
10825
|
TNode$1.prototype.residualClasses;
|
|
10792
10826
|
/** @type {?} */
|
|
10793
10827
|
TNode$1.prototype.classBindings;
|
|
@@ -11195,18 +11229,11 @@ class LContainerDebug {
|
|
|
11195
11229
|
constructor(_raw_lContainer) {
|
|
11196
11230
|
this._raw_lContainer = _raw_lContainer;
|
|
11197
11231
|
}
|
|
11198
|
-
/**
|
|
11199
|
-
* @return {?}
|
|
11200
|
-
*/
|
|
11201
|
-
get activeIndex() {
|
|
11202
|
-
return getLContainerActiveIndex(this._raw_lContainer);
|
|
11203
|
-
}
|
|
11204
11232
|
/**
|
|
11205
11233
|
* @return {?}
|
|
11206
11234
|
*/
|
|
11207
11235
|
get hasTransplantedViews() {
|
|
11208
|
-
return
|
|
11209
|
-
1 /* HAS_TRANSPLANTED_VIEWS */;
|
|
11236
|
+
return this._raw_lContainer[HAS_TRANSPLANTED_VIEWS];
|
|
11210
11237
|
}
|
|
11211
11238
|
/**
|
|
11212
11239
|
* @return {?}
|
|
@@ -11832,7 +11859,7 @@ function assignTViewNodeToLView(tView, tParentNode, index, lView) {
|
|
|
11832
11859
|
tView.node = tNode = (/** @type {?} */ (createTNode(tView, (/** @type {?} */ (tParentNode)), //
|
|
11833
11860
|
2 /* View */, index, null, null)));
|
|
11834
11861
|
}
|
|
11835
|
-
|
|
11862
|
+
lView[T_HOST] = (/** @type {?} */ (tNode));
|
|
11836
11863
|
}
|
|
11837
11864
|
/**
|
|
11838
11865
|
* When elements are created dynamically after a view blueprint is created (e.g. through
|
|
@@ -11992,7 +12019,7 @@ function refreshView(tView, lView, templateFn, context) {
|
|
|
11992
12019
|
// insertion points. This is needed to avoid the situation where the template is defined in this
|
|
11993
12020
|
// `LView` but its declaration appears after the insertion component.
|
|
11994
12021
|
markTransplantedViewsForRefresh(lView);
|
|
11995
|
-
|
|
12022
|
+
refreshEmbeddedViews(lView);
|
|
11996
12023
|
// Content query results must be refreshed before content hooks are called.
|
|
11997
12024
|
if (tView.contentQueries !== null) {
|
|
11998
12025
|
refreshContentQueries(tView, lView);
|
|
@@ -12446,8 +12473,10 @@ function createTNode(tView, tParent, type, adjustedIndex, tagName, attrs) {
|
|
|
12446
12473
|
tParent, // parent: TElementNode|TContainerNode|null
|
|
12447
12474
|
null, // projection: number|(ITNode|RNode[])[]|null
|
|
12448
12475
|
null, // styles: string|null
|
|
12476
|
+
null, // stylesWithoutHost: string|null
|
|
12449
12477
|
undefined, // residualStyles: string|null
|
|
12450
12478
|
null, // classes: string|null
|
|
12479
|
+
null, // classesWithoutHost: string|null
|
|
12451
12480
|
undefined, (/** @type {?} */ (0)), (/** @type {?} */ (0))) :
|
|
12452
12481
|
{
|
|
12453
12482
|
type: type,
|
|
@@ -12473,8 +12502,10 @@ function createTNode(tView, tParent, type, adjustedIndex, tagName, attrs) {
|
|
|
12473
12502
|
parent: tParent,
|
|
12474
12503
|
projection: null,
|
|
12475
12504
|
styles: null,
|
|
12505
|
+
stylesWithoutHost: null,
|
|
12476
12506
|
residualStyles: undefined,
|
|
12477
12507
|
classes: null,
|
|
12508
|
+
classesWithoutHost: null,
|
|
12478
12509
|
residualClasses: undefined,
|
|
12479
12510
|
classBindings: (/** @type {?} */ (0)),
|
|
12480
12511
|
styleBindings: (/** @type {?} */ (0)),
|
|
@@ -13329,7 +13360,7 @@ function createLContainer(hostNative, currentView, native, tNode) {
|
|
|
13329
13360
|
/** @type {?} */
|
|
13330
13361
|
const lContainer = new (ngDevMode ? LContainerArray : Array)(hostNative, // host native
|
|
13331
13362
|
true, // Boolean `true` in this position signifies that this is an `LContainer`
|
|
13332
|
-
|
|
13363
|
+
false, // has transplanted views
|
|
13333
13364
|
currentView, // parent
|
|
13334
13365
|
null, // next
|
|
13335
13366
|
0, // transplanted views to refresh count
|
|
@@ -13343,12 +13374,12 @@ function createLContainer(hostNative, currentView, native, tNode) {
|
|
|
13343
13374
|
return lContainer;
|
|
13344
13375
|
}
|
|
13345
13376
|
/**
|
|
13346
|
-
* Goes over
|
|
13377
|
+
* Goes over embedded views (ones created through ViewContainerRef APIs) and refreshes
|
|
13347
13378
|
* them by executing an associated template function.
|
|
13348
13379
|
* @param {?} lView
|
|
13349
13380
|
* @return {?}
|
|
13350
13381
|
*/
|
|
13351
|
-
function
|
|
13382
|
+
function refreshEmbeddedViews(lView) {
|
|
13352
13383
|
for (let lContainer = getFirstLContainer(lView); lContainer !== null; lContainer = getNextLContainer(lContainer)) {
|
|
13353
13384
|
for (let i = CONTAINER_HEADER_OFFSET; i < lContainer.length; i++) {
|
|
13354
13385
|
/** @type {?} */
|
|
@@ -13362,70 +13393,35 @@ function refreshDynamicEmbeddedViews(lView) {
|
|
|
13362
13393
|
}
|
|
13363
13394
|
}
|
|
13364
13395
|
}
|
|
13365
|
-
/**
|
|
13366
|
-
* Gets the first `LContainer` in the LView or `null` if none exists.
|
|
13367
|
-
* @param {?} lView
|
|
13368
|
-
* @return {?}
|
|
13369
|
-
*/
|
|
13370
|
-
function getFirstLContainer(lView) {
|
|
13371
|
-
/** @type {?} */
|
|
13372
|
-
let viewOrContainer = lView[CHILD_HEAD];
|
|
13373
|
-
while (viewOrContainer !== null &&
|
|
13374
|
-
!(isLContainer(viewOrContainer) &&
|
|
13375
|
-
viewOrContainer[ACTIVE_INDEX] >> 1 /* SHIFT */ ===
|
|
13376
|
-
-1 /* DYNAMIC_EMBEDDED_VIEWS_ONLY */)) {
|
|
13377
|
-
viewOrContainer = viewOrContainer[NEXT];
|
|
13378
|
-
}
|
|
13379
|
-
return viewOrContainer;
|
|
13380
|
-
}
|
|
13381
|
-
/**
|
|
13382
|
-
* Gets the next `LContainer` that is a sibling of the given container.
|
|
13383
|
-
* @param {?} container
|
|
13384
|
-
* @return {?}
|
|
13385
|
-
*/
|
|
13386
|
-
function getNextLContainer(container) {
|
|
13387
|
-
/** @type {?} */
|
|
13388
|
-
let viewOrContainer = container[NEXT];
|
|
13389
|
-
while (viewOrContainer !== null &&
|
|
13390
|
-
!(isLContainer(viewOrContainer) &&
|
|
13391
|
-
viewOrContainer[ACTIVE_INDEX] >> 1 /* SHIFT */ ===
|
|
13392
|
-
-1 /* DYNAMIC_EMBEDDED_VIEWS_ONLY */)) {
|
|
13393
|
-
viewOrContainer = viewOrContainer[NEXT];
|
|
13394
|
-
}
|
|
13395
|
-
return viewOrContainer;
|
|
13396
|
-
}
|
|
13397
13396
|
/**
|
|
13398
13397
|
* Mark transplanted views as needing to be refreshed at their insertion points.
|
|
13399
13398
|
*
|
|
13400
|
-
* See: `ActiveIndexFlag.HAS_TRANSPLANTED_VIEWS` and `LView[DECLARATION_COMPONENT_VIEW]` for
|
|
13401
|
-
* explanation of transplanted views.
|
|
13402
|
-
*
|
|
13403
13399
|
* @param {?} lView The `LView` that may have transplanted views.
|
|
13404
13400
|
* @return {?}
|
|
13405
13401
|
*/
|
|
13406
13402
|
function markTransplantedViewsForRefresh(lView) {
|
|
13407
13403
|
for (let lContainer = getFirstLContainer(lView); lContainer !== null; lContainer = getNextLContainer(lContainer)) {
|
|
13408
|
-
if (
|
|
13404
|
+
if (!lContainer[HAS_TRANSPLANTED_VIEWS])
|
|
13405
|
+
continue;
|
|
13406
|
+
/** @type {?} */
|
|
13407
|
+
const movedViews = (/** @type {?} */ (lContainer[MOVED_VIEWS]));
|
|
13408
|
+
ngDevMode && assertDefined(movedViews, 'Transplanted View flags set but missing MOVED_VIEWS');
|
|
13409
|
+
for (let i = 0; i < movedViews.length; i++) {
|
|
13409
13410
|
/** @type {?} */
|
|
13410
|
-
const
|
|
13411
|
-
|
|
13412
|
-
|
|
13413
|
-
|
|
13414
|
-
|
|
13415
|
-
|
|
13416
|
-
|
|
13417
|
-
|
|
13418
|
-
// We don't want to increment the counter if the moved LView was already marked for
|
|
13419
|
-
// refresh.
|
|
13420
|
-
if ((movedLView[FLAGS] & 1024 /* RefreshTransplantedView */) === 0) {
|
|
13421
|
-
updateTransplantedViewCount(insertionLContainer, 1);
|
|
13422
|
-
}
|
|
13423
|
-
// Note, it is possible that the `movedViews` is tracking views that are transplanted *and*
|
|
13424
|
-
// those that aren't (declaration component === insertion component). In the latter case,
|
|
13425
|
-
// it's fine to add the flag, as we will clear it immediately in
|
|
13426
|
-
// `refreshDynamicEmbeddedViews` for the view currently being refreshed.
|
|
13427
|
-
movedLView[FLAGS] |= 1024 /* RefreshTransplantedView */;
|
|
13411
|
+
const movedLView = (/** @type {?} */ (movedViews[i]));
|
|
13412
|
+
/** @type {?} */
|
|
13413
|
+
const insertionLContainer = (/** @type {?} */ (movedLView[PARENT]));
|
|
13414
|
+
ngDevMode && assertLContainer(insertionLContainer);
|
|
13415
|
+
// We don't want to increment the counter if the moved LView was already marked for
|
|
13416
|
+
// refresh.
|
|
13417
|
+
if ((movedLView[FLAGS] & 1024 /* RefreshTransplantedView */) === 0) {
|
|
13418
|
+
updateTransplantedViewCount(insertionLContainer, 1);
|
|
13428
13419
|
}
|
|
13420
|
+
// Note, it is possible that the `movedViews` is tracking views that are transplanted *and*
|
|
13421
|
+
// those that aren't (declaration component === insertion component). In the latter case,
|
|
13422
|
+
// it's fine to add the flag, as we will clear it immediately in
|
|
13423
|
+
// `refreshEmbeddedViews` for the view currently being refreshed.
|
|
13424
|
+
movedLView[FLAGS] |= 1024 /* RefreshTransplantedView */;
|
|
13429
13425
|
}
|
|
13430
13426
|
}
|
|
13431
13427
|
}
|
|
@@ -14154,7 +14150,7 @@ function trackMovedView(declarationContainer, lView) {
|
|
|
14154
14150
|
// At this point the declaration-component is not same as insertion-component; this means that
|
|
14155
14151
|
// this is a transplanted view. Mark the declared lView as having transplanted views so that
|
|
14156
14152
|
// those views can participate in CD.
|
|
14157
|
-
declarationContainer[
|
|
14153
|
+
declarationContainer[HAS_TRANSPLANTED_VIEWS] = true;
|
|
14158
14154
|
}
|
|
14159
14155
|
if (movedViews === null) {
|
|
14160
14156
|
declarationContainer[MOVED_VIEWS] = [lView];
|
|
@@ -15080,10 +15076,6 @@ class ViewRef {
|
|
|
15080
15076
|
this._cdRefInjectingView = _cdRefInjectingView;
|
|
15081
15077
|
this._appRef = null;
|
|
15082
15078
|
this._viewContainerRef = null;
|
|
15083
|
-
/**
|
|
15084
|
-
* \@internal
|
|
15085
|
-
*/
|
|
15086
|
-
this._tViewNode = null;
|
|
15087
15079
|
}
|
|
15088
15080
|
/**
|
|
15089
15081
|
* @return {?}
|
|
@@ -15361,11 +15353,6 @@ if (false) {
|
|
|
15361
15353
|
* @private
|
|
15362
15354
|
*/
|
|
15363
15355
|
ViewRef.prototype._viewContainerRef;
|
|
15364
|
-
/**
|
|
15365
|
-
* \@internal
|
|
15366
|
-
* @type {?}
|
|
15367
|
-
*/
|
|
15368
|
-
ViewRef.prototype._tViewNode;
|
|
15369
15356
|
/**
|
|
15370
15357
|
* This represents `LView` associated with the component when ViewRef is a ChangeDetectorRef.
|
|
15371
15358
|
*
|
|
@@ -15574,10 +15561,7 @@ function createTemplateRef(TemplateRefToken, ElementRefToken, hostTNode, hostVie
|
|
|
15574
15561
|
embeddedLView[QUERIES] = declarationViewLQueries.createEmbeddedView(embeddedTView);
|
|
15575
15562
|
}
|
|
15576
15563
|
renderView(embeddedTView, embeddedLView, context);
|
|
15577
|
-
|
|
15578
|
-
const viewRef = new ViewRef(embeddedLView);
|
|
15579
|
-
viewRef._tViewNode = (/** @type {?} */ (embeddedLView[T_HOST]));
|
|
15580
|
-
return viewRef;
|
|
15564
|
+
return new ViewRef(embeddedLView);
|
|
15581
15565
|
}
|
|
15582
15566
|
};
|
|
15583
15567
|
}
|
|
@@ -15844,7 +15828,6 @@ function createContainerRef(ViewContainerRefToken, ElementRefToken, hostTNode, h
|
|
|
15844
15828
|
if (isLContainer(slotValue)) {
|
|
15845
15829
|
// If the host is a container, we don't need to create a new LContainer
|
|
15846
15830
|
lContainer = slotValue;
|
|
15847
|
-
setLContainerActiveIndex(lContainer, -1 /* DYNAMIC_EMBEDDED_VIEWS_ONLY */);
|
|
15848
15831
|
}
|
|
15849
15832
|
else {
|
|
15850
15833
|
/** @type {?} */
|
|
@@ -16126,7 +16109,7 @@ function isType(v) {
|
|
|
16126
16109
|
const DELEGATE_CTOR = /^function\s+\S+\(\)\s*{[\s\S]+\.apply\(this,\s*arguments\)/;
|
|
16127
16110
|
const INHERITED_CLASS = /^class\s+[A-Za-z\d$_]*\s*extends\s+[^{]+{/;
|
|
16128
16111
|
const INHERITED_CLASS_WITH_CTOR = /^class\s+[A-Za-z\d$_]*\s*extends\s+[^{]+{[\s\S]*constructor\s*\(/;
|
|
16129
|
-
const INHERITED_CLASS_WITH_DELEGATE_CTOR = /^class\s+[A-Za-z\d$_]*\s*extends\s+[^{]+{[\s\S]*constructor\s*\(\)\s*{\s
|
|
16112
|
+
const INHERITED_CLASS_WITH_DELEGATE_CTOR = /^class\s+[A-Za-z\d$_]*\s*extends\s+[^{]+{[\s\S]*constructor\s*\(\)\s*{\s*super\(\.\.\.arguments\)/;
|
|
16130
16113
|
/**
|
|
16131
16114
|
* Determine whether a stringified type is a class which delegates its constructor
|
|
16132
16115
|
* to its parent.
|
|
@@ -19791,36 +19774,41 @@ function componentDefResolved(type) {
|
|
|
19791
19774
|
*
|
|
19792
19775
|
* @param {?} tNode The `TNode` into which the styling information should be loaded.
|
|
19793
19776
|
* @param {?} attrs `TAttributes` containing the styling information.
|
|
19777
|
+
* @param {?} writeToHost Where should the resulting static styles be written?
|
|
19778
|
+
* - `false` Write to `TNode.stylesWithoutHost` / `TNode.classesWithoutHost`
|
|
19779
|
+
* - `true` Write to `TNode.styles` / `TNode.classes`
|
|
19794
19780
|
* @return {?}
|
|
19795
19781
|
*/
|
|
19796
|
-
function computeStaticStyling(tNode, attrs) {
|
|
19782
|
+
function computeStaticStyling(tNode, attrs, writeToHost) {
|
|
19797
19783
|
ngDevMode &&
|
|
19798
19784
|
assertFirstCreatePass(getTView(), 'Expecting to be called in first template pass only');
|
|
19799
19785
|
/** @type {?} */
|
|
19800
|
-
let styles = tNode.styles;
|
|
19786
|
+
let styles = writeToHost ? tNode.styles : null;
|
|
19801
19787
|
/** @type {?} */
|
|
19802
|
-
let classes = tNode.classes;
|
|
19788
|
+
let classes = writeToHost ? tNode.classes : null;
|
|
19803
19789
|
/** @type {?} */
|
|
19804
19790
|
let mode = 0;
|
|
19805
|
-
|
|
19806
|
-
|
|
19807
|
-
const value = attrs[i];
|
|
19808
|
-
if (typeof value === 'number') {
|
|
19809
|
-
mode = value;
|
|
19810
|
-
}
|
|
19811
|
-
else if (mode == 1 /* Classes */) {
|
|
19812
|
-
classes = concatStringsWithSpace(classes, (/** @type {?} */ (value)));
|
|
19813
|
-
}
|
|
19814
|
-
else if (mode == 2 /* Styles */) {
|
|
19815
|
-
/** @type {?} */
|
|
19816
|
-
const style = (/** @type {?} */ (value));
|
|
19791
|
+
if (attrs !== null) {
|
|
19792
|
+
for (let i = 0; i < attrs.length; i++) {
|
|
19817
19793
|
/** @type {?} */
|
|
19818
|
-
const
|
|
19819
|
-
|
|
19794
|
+
const value = attrs[i];
|
|
19795
|
+
if (typeof value === 'number') {
|
|
19796
|
+
mode = value;
|
|
19797
|
+
}
|
|
19798
|
+
else if (mode == 1 /* Classes */) {
|
|
19799
|
+
classes = concatStringsWithSpace(classes, (/** @type {?} */ (value)));
|
|
19800
|
+
}
|
|
19801
|
+
else if (mode == 2 /* Styles */) {
|
|
19802
|
+
/** @type {?} */
|
|
19803
|
+
const style = (/** @type {?} */ (value));
|
|
19804
|
+
/** @type {?} */
|
|
19805
|
+
const styleValue = (/** @type {?} */ (attrs[++i]));
|
|
19806
|
+
styles = concatStringsWithSpace(styles, style + ': ' + styleValue + ';');
|
|
19807
|
+
}
|
|
19820
19808
|
}
|
|
19821
19809
|
}
|
|
19822
|
-
styles
|
|
19823
|
-
classes
|
|
19810
|
+
writeToHost ? tNode.styles = styles : tNode.stylesWithoutHost = styles;
|
|
19811
|
+
writeToHost ? tNode.classes = classes : tNode.classesWithoutHost = classes;
|
|
19824
19812
|
}
|
|
19825
19813
|
|
|
19826
19814
|
/**
|
|
@@ -21228,8 +21216,11 @@ function elementStartFirstCreatePass(index, tView, lView, native, name, attrsInd
|
|
|
21228
21216
|
/** @type {?} */
|
|
21229
21217
|
const hasDirectives = resolveDirectives(tView, lView, tNode, getConstant(tViewConsts, localRefsIndex));
|
|
21230
21218
|
ngDevMode && warnAboutUnknownElement(tView, lView, native, tNode, hasDirectives);
|
|
21219
|
+
if (tNode.attrs !== null) {
|
|
21220
|
+
computeStaticStyling(tNode, tNode.attrs, false);
|
|
21221
|
+
}
|
|
21231
21222
|
if (tNode.mergedAttrs !== null) {
|
|
21232
|
-
computeStaticStyling(tNode, tNode.mergedAttrs);
|
|
21223
|
+
computeStaticStyling(tNode, tNode.mergedAttrs, true);
|
|
21233
21224
|
}
|
|
21234
21225
|
if (tView.queries !== null) {
|
|
21235
21226
|
tView.queries.elementStart(tView, tNode);
|
|
@@ -21332,11 +21323,11 @@ function ɵɵelementEnd() {
|
|
|
21332
21323
|
(/** @type {?} */ (tView.queries)).elementEnd(previousOrParentTNode);
|
|
21333
21324
|
}
|
|
21334
21325
|
}
|
|
21335
|
-
if (tNode.
|
|
21336
|
-
setDirectiveInputsWhichShadowsStyling(tView, tNode, getLView(), tNode.
|
|
21326
|
+
if (tNode.classesWithoutHost != null && hasClassInput(tNode)) {
|
|
21327
|
+
setDirectiveInputsWhichShadowsStyling(tView, tNode, getLView(), tNode.classesWithoutHost, true);
|
|
21337
21328
|
}
|
|
21338
|
-
if (tNode.
|
|
21339
|
-
setDirectiveInputsWhichShadowsStyling(tView, tNode, getLView(), tNode.
|
|
21329
|
+
if (tNode.stylesWithoutHost != null && hasStyleInput(tNode)) {
|
|
21330
|
+
setDirectiveInputsWhichShadowsStyling(tView, tNode, getLView(), tNode.stylesWithoutHost, false);
|
|
21340
21331
|
}
|
|
21341
21332
|
}
|
|
21342
21333
|
/**
|
|
@@ -21426,7 +21417,7 @@ function elementContainerStartFirstCreatePass(index, tView, lView, attrsIndex, l
|
|
|
21426
21417
|
// While ng-container doesn't necessarily support styling, we use the style context to identify
|
|
21427
21418
|
// and execute directives on the ng-container.
|
|
21428
21419
|
if (attrs !== null) {
|
|
21429
|
-
computeStaticStyling(tNode, attrs);
|
|
21420
|
+
computeStaticStyling(tNode, attrs, true);
|
|
21430
21421
|
}
|
|
21431
21422
|
/** @type {?} */
|
|
21432
21423
|
const localRefs = getConstant(tViewConsts, localRefsIndex);
|
|
@@ -23539,7 +23530,7 @@ function checkStylingMap(keyValueArraySet, stringParser, value, isClassBased) {
|
|
|
23539
23530
|
// thing as it would think that the static portion was removed. For this reason we
|
|
23540
23531
|
// concatenate it so that `[ngStyle]`/`[ngClass]` can continue to work on changed.
|
|
23541
23532
|
/** @type {?} */
|
|
23542
|
-
let staticPrefix = isClassBased ? tNode.
|
|
23533
|
+
let staticPrefix = isClassBased ? tNode.classesWithoutHost : tNode.stylesWithoutHost;
|
|
23543
23534
|
ngDevMode && isClassBased === false && staticPrefix !== null &&
|
|
23544
23535
|
assertEqual(staticPrefix.endsWith(';'), true, 'Expecting static portion to end with \';\'');
|
|
23545
23536
|
if (staticPrefix !== null) {
|
|
@@ -26441,7 +26432,7 @@ function createRootComponentView(rNode, def, rootView, rendererFactory, hostRend
|
|
|
26441
26432
|
/** @type {?} */
|
|
26442
26433
|
const mergedAttrs = tNode.mergedAttrs = def.hostAttrs;
|
|
26443
26434
|
if (mergedAttrs !== null) {
|
|
26444
|
-
computeStaticStyling(tNode, mergedAttrs);
|
|
26435
|
+
computeStaticStyling(tNode, mergedAttrs, true);
|
|
26445
26436
|
if (rNode !== null) {
|
|
26446
26437
|
setUpAttributes(hostRenderer, rNode, mergedAttrs);
|
|
26447
26438
|
if (tNode.classes !== null) {
|
|
@@ -28178,7 +28169,7 @@ if (false) {
|
|
|
28178
28169
|
* \@publicApi
|
|
28179
28170
|
* @type {?}
|
|
28180
28171
|
*/
|
|
28181
|
-
const VERSION = new Version('9.1.
|
|
28172
|
+
const VERSION = new Version('9.1.11');
|
|
28182
28173
|
|
|
28183
28174
|
/**
|
|
28184
28175
|
* @fileoverview added by tsickle
|
|
@@ -34114,7 +34105,8 @@ class ComponentFactory$1 extends ComponentFactory {
|
|
|
34114
34105
|
if (!rootSelectorOrNode || isIsolated) {
|
|
34115
34106
|
// The host element of the internal or isolated root view is attached to the component's host
|
|
34116
34107
|
// view node.
|
|
34117
|
-
(
|
|
34108
|
+
ngDevMode && assertNodeOfPossibleTypes(rootTView.node, 2 /* View */);
|
|
34109
|
+
(/** @type {?} */ (rootTView.node)).child = tElementNode;
|
|
34118
34110
|
}
|
|
34119
34111
|
return componentRef;
|
|
34120
34112
|
}
|
|
@@ -34176,7 +34168,7 @@ class ComponentRef$1 extends ComponentRef {
|
|
|
34176
34168
|
this.destroyCbs = [];
|
|
34177
34169
|
this.instance = instance;
|
|
34178
34170
|
this.hostView = this.changeDetectorRef = new RootViewRef(_rootLView);
|
|
34179
|
-
|
|
34171
|
+
assignTViewNodeToLView(_rootLView[TVIEW], null, -1, _rootLView);
|
|
34180
34172
|
this.componentType = componentType;
|
|
34181
34173
|
}
|
|
34182
34174
|
/**
|