@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/bundles/core.umd.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
|
*/
|
|
@@ -2126,7 +2126,15 @@
|
|
|
2126
2126
|
* without having to remember the specific indices.
|
|
2127
2127
|
* Uglify will inline these when minifying so there shouldn't be a cost.
|
|
2128
2128
|
*/
|
|
2129
|
-
|
|
2129
|
+
/**
|
|
2130
|
+
* Flag to signify that this `LContainer` may have transplanted views which need to be change
|
|
2131
|
+
* detected. (see: `LView[DECLARATION_COMPONENT_VIEW])`.
|
|
2132
|
+
*
|
|
2133
|
+
* This flag, once set, is never unset for the `LContainer`. This means that when unset we can skip
|
|
2134
|
+
* a lot of work in `refreshEmbeddedViews`. But when set we still need to verify
|
|
2135
|
+
* that the `MOVED_VIEWS` are transplanted and on-push.
|
|
2136
|
+
*/
|
|
2137
|
+
var HAS_TRANSPLANTED_VIEWS = 2;
|
|
2130
2138
|
// PARENT, NEXT, TRANSPLANTED_VIEWS_TO_REFRESH are indices 3, 4, and 5
|
|
2131
2139
|
// As we already have these constants in LView, we don't need to re-create them.
|
|
2132
2140
|
// T_HOST is index 6
|
|
@@ -2511,12 +2519,6 @@
|
|
|
2511
2519
|
function resetPreOrderHookFlags(lView) {
|
|
2512
2520
|
lView[PREORDER_HOOK_FLAGS] = 0;
|
|
2513
2521
|
}
|
|
2514
|
-
function getLContainerActiveIndex(lContainer) {
|
|
2515
|
-
return lContainer[ACTIVE_INDEX] >> 1 /* SHIFT */;
|
|
2516
|
-
}
|
|
2517
|
-
function setLContainerActiveIndex(lContainer, index) {
|
|
2518
|
-
lContainer[ACTIVE_INDEX] = index << 1 /* SHIFT */;
|
|
2519
|
-
}
|
|
2520
2522
|
/**
|
|
2521
2523
|
* Updates the `TRANSPLANTED_VIEWS_TO_REFRESH` counter on the `LContainer` as well as the parents
|
|
2522
2524
|
* whose
|
|
@@ -6413,6 +6415,24 @@
|
|
|
6413
6415
|
assertDefined(rootView[CONTEXT], 'RootView has no context. Perhaps it is disconnected?');
|
|
6414
6416
|
return rootView[CONTEXT];
|
|
6415
6417
|
}
|
|
6418
|
+
/**
|
|
6419
|
+
* Gets the first `LContainer` in the LView or `null` if none exists.
|
|
6420
|
+
*/
|
|
6421
|
+
function getFirstLContainer(lView) {
|
|
6422
|
+
return getNearestLContainer(lView[CHILD_HEAD]);
|
|
6423
|
+
}
|
|
6424
|
+
/**
|
|
6425
|
+
* Gets the next `LContainer` that is a sibling of the given container.
|
|
6426
|
+
*/
|
|
6427
|
+
function getNextLContainer(container) {
|
|
6428
|
+
return getNearestLContainer(container[NEXT]);
|
|
6429
|
+
}
|
|
6430
|
+
function getNearestLContainer(viewOrContainer) {
|
|
6431
|
+
while (viewOrContainer !== null && !isLContainer(viewOrContainer)) {
|
|
6432
|
+
viewOrContainer = viewOrContainer[NEXT];
|
|
6433
|
+
}
|
|
6434
|
+
return viewOrContainer;
|
|
6435
|
+
}
|
|
6416
6436
|
|
|
6417
6437
|
/**
|
|
6418
6438
|
* @license
|
|
@@ -6766,8 +6786,10 @@
|
|
|
6766
6786
|
parent, //
|
|
6767
6787
|
projection, //
|
|
6768
6788
|
styles, //
|
|
6789
|
+
stylesWithoutHost, //
|
|
6769
6790
|
residualStyles, //
|
|
6770
6791
|
classes, //
|
|
6792
|
+
classesWithoutHost, //
|
|
6771
6793
|
residualClasses, //
|
|
6772
6794
|
classBindings, //
|
|
6773
6795
|
styleBindings) {
|
|
@@ -6795,8 +6817,10 @@
|
|
|
6795
6817
|
this.parent = parent;
|
|
6796
6818
|
this.projection = projection;
|
|
6797
6819
|
this.styles = styles;
|
|
6820
|
+
this.stylesWithoutHost = stylesWithoutHost;
|
|
6798
6821
|
this.residualStyles = residualStyles;
|
|
6799
6822
|
this.classes = classes;
|
|
6823
|
+
this.classesWithoutHost = classesWithoutHost;
|
|
6800
6824
|
this.residualClasses = residualClasses;
|
|
6801
6825
|
this.classBindings = classBindings;
|
|
6802
6826
|
this.styleBindings = styleBindings;
|
|
@@ -7190,17 +7214,9 @@
|
|
|
7190
7214
|
function LContainerDebug(_raw_lContainer) {
|
|
7191
7215
|
this._raw_lContainer = _raw_lContainer;
|
|
7192
7216
|
}
|
|
7193
|
-
Object.defineProperty(LContainerDebug.prototype, "activeIndex", {
|
|
7194
|
-
get: function () {
|
|
7195
|
-
return getLContainerActiveIndex(this._raw_lContainer);
|
|
7196
|
-
},
|
|
7197
|
-
enumerable: true,
|
|
7198
|
-
configurable: true
|
|
7199
|
-
});
|
|
7200
7217
|
Object.defineProperty(LContainerDebug.prototype, "hasTransplantedViews", {
|
|
7201
7218
|
get: function () {
|
|
7202
|
-
return
|
|
7203
|
-
1 /* HAS_TRANSPLANTED_VIEWS */;
|
|
7219
|
+
return this._raw_lContainer[HAS_TRANSPLANTED_VIEWS];
|
|
7204
7220
|
},
|
|
7205
7221
|
enumerable: true,
|
|
7206
7222
|
configurable: true
|
|
@@ -7656,7 +7672,7 @@
|
|
|
7656
7672
|
tView.node = tNode = createTNode(tView, tParentNode, //
|
|
7657
7673
|
2 /* View */, index, null, null);
|
|
7658
7674
|
}
|
|
7659
|
-
|
|
7675
|
+
lView[T_HOST] = tNode;
|
|
7660
7676
|
}
|
|
7661
7677
|
/**
|
|
7662
7678
|
* When elements are created dynamically after a view blueprint is created (e.g. through
|
|
@@ -7796,7 +7812,7 @@
|
|
|
7796
7812
|
// insertion points. This is needed to avoid the situation where the template is defined in this
|
|
7797
7813
|
// `LView` but its declaration appears after the insertion component.
|
|
7798
7814
|
markTransplantedViewsForRefresh(lView);
|
|
7799
|
-
|
|
7815
|
+
refreshEmbeddedViews(lView);
|
|
7800
7816
|
// Content query results must be refreshed before content hooks are called.
|
|
7801
7817
|
if (tView.contentQueries !== null) {
|
|
7802
7818
|
refreshContentQueries(tView, lView);
|
|
@@ -8167,8 +8183,10 @@
|
|
|
8167
8183
|
tParent, // parent: TElementNode|TContainerNode|null
|
|
8168
8184
|
null, // projection: number|(ITNode|RNode[])[]|null
|
|
8169
8185
|
null, // styles: string|null
|
|
8186
|
+
null, // stylesWithoutHost: string|null
|
|
8170
8187
|
undefined, // residualStyles: string|null
|
|
8171
8188
|
null, // classes: string|null
|
|
8189
|
+
null, // classesWithoutHost: string|null
|
|
8172
8190
|
undefined, // residualClasses: string|null
|
|
8173
8191
|
0, // classBindings: TStylingRange;
|
|
8174
8192
|
0) :
|
|
@@ -8196,8 +8214,10 @@
|
|
|
8196
8214
|
parent: tParent,
|
|
8197
8215
|
projection: null,
|
|
8198
8216
|
styles: null,
|
|
8217
|
+
stylesWithoutHost: null,
|
|
8199
8218
|
residualStyles: undefined,
|
|
8200
8219
|
classes: null,
|
|
8220
|
+
classesWithoutHost: null,
|
|
8201
8221
|
residualClasses: undefined,
|
|
8202
8222
|
classBindings: 0,
|
|
8203
8223
|
styleBindings: 0,
|
|
@@ -8844,7 +8864,7 @@
|
|
|
8844
8864
|
// https://jsperf.com/array-literal-vs-new-array-really
|
|
8845
8865
|
var lContainer = new (ngDevMode ? LContainerArray : Array)(hostNative, // host native
|
|
8846
8866
|
true, // Boolean `true` in this position signifies that this is an `LContainer`
|
|
8847
|
-
|
|
8867
|
+
false, // has transplanted views
|
|
8848
8868
|
currentView, // parent
|
|
8849
8869
|
null, // next
|
|
8850
8870
|
0, // transplanted views to refresh count
|
|
@@ -8858,10 +8878,10 @@
|
|
|
8858
8878
|
return lContainer;
|
|
8859
8879
|
}
|
|
8860
8880
|
/**
|
|
8861
|
-
* Goes over
|
|
8881
|
+
* Goes over embedded views (ones created through ViewContainerRef APIs) and refreshes
|
|
8862
8882
|
* them by executing an associated template function.
|
|
8863
8883
|
*/
|
|
8864
|
-
function
|
|
8884
|
+
function refreshEmbeddedViews(lView) {
|
|
8865
8885
|
for (var lContainer = getFirstLContainer(lView); lContainer !== null; lContainer = getNextLContainer(lContainer)) {
|
|
8866
8886
|
for (var i = CONTAINER_HEADER_OFFSET; i < lContainer.length; i++) {
|
|
8867
8887
|
var embeddedLView = lContainer[i];
|
|
@@ -8873,60 +8893,31 @@
|
|
|
8873
8893
|
}
|
|
8874
8894
|
}
|
|
8875
8895
|
}
|
|
8876
|
-
/**
|
|
8877
|
-
* Gets the first `LContainer` in the LView or `null` if none exists.
|
|
8878
|
-
*/
|
|
8879
|
-
function getFirstLContainer(lView) {
|
|
8880
|
-
var viewOrContainer = lView[CHILD_HEAD];
|
|
8881
|
-
while (viewOrContainer !== null &&
|
|
8882
|
-
!(isLContainer(viewOrContainer) &&
|
|
8883
|
-
viewOrContainer[ACTIVE_INDEX] >> 1 /* SHIFT */ ===
|
|
8884
|
-
-1 /* DYNAMIC_EMBEDDED_VIEWS_ONLY */)) {
|
|
8885
|
-
viewOrContainer = viewOrContainer[NEXT];
|
|
8886
|
-
}
|
|
8887
|
-
return viewOrContainer;
|
|
8888
|
-
}
|
|
8889
|
-
/**
|
|
8890
|
-
* Gets the next `LContainer` that is a sibling of the given container.
|
|
8891
|
-
*/
|
|
8892
|
-
function getNextLContainer(container) {
|
|
8893
|
-
var viewOrContainer = container[NEXT];
|
|
8894
|
-
while (viewOrContainer !== null &&
|
|
8895
|
-
!(isLContainer(viewOrContainer) &&
|
|
8896
|
-
viewOrContainer[ACTIVE_INDEX] >> 1 /* SHIFT */ ===
|
|
8897
|
-
-1 /* DYNAMIC_EMBEDDED_VIEWS_ONLY */)) {
|
|
8898
|
-
viewOrContainer = viewOrContainer[NEXT];
|
|
8899
|
-
}
|
|
8900
|
-
return viewOrContainer;
|
|
8901
|
-
}
|
|
8902
8896
|
/**
|
|
8903
8897
|
* Mark transplanted views as needing to be refreshed at their insertion points.
|
|
8904
8898
|
*
|
|
8905
|
-
* See: `ActiveIndexFlag.HAS_TRANSPLANTED_VIEWS` and `LView[DECLARATION_COMPONENT_VIEW]` for
|
|
8906
|
-
* explanation of transplanted views.
|
|
8907
|
-
*
|
|
8908
8899
|
* @param lView The `LView` that may have transplanted views.
|
|
8909
8900
|
*/
|
|
8910
8901
|
function markTransplantedViewsForRefresh(lView) {
|
|
8911
8902
|
for (var lContainer = getFirstLContainer(lView); lContainer !== null; lContainer = getNextLContainer(lContainer)) {
|
|
8912
|
-
if (
|
|
8913
|
-
|
|
8914
|
-
|
|
8915
|
-
|
|
8916
|
-
|
|
8917
|
-
|
|
8918
|
-
|
|
8919
|
-
|
|
8920
|
-
|
|
8921
|
-
|
|
8922
|
-
|
|
8923
|
-
|
|
8924
|
-
// Note, it is possible that the `movedViews` is tracking views that are transplanted *and*
|
|
8925
|
-
// those that aren't (declaration component === insertion component). In the latter case,
|
|
8926
|
-
// it's fine to add the flag, as we will clear it immediately in
|
|
8927
|
-
// `refreshDynamicEmbeddedViews` for the view currently being refreshed.
|
|
8928
|
-
movedLView[FLAGS] |= 1024 /* RefreshTransplantedView */;
|
|
8903
|
+
if (!lContainer[HAS_TRANSPLANTED_VIEWS])
|
|
8904
|
+
continue;
|
|
8905
|
+
var movedViews = lContainer[MOVED_VIEWS];
|
|
8906
|
+
ngDevMode && assertDefined(movedViews, 'Transplanted View flags set but missing MOVED_VIEWS');
|
|
8907
|
+
for (var i = 0; i < movedViews.length; i++) {
|
|
8908
|
+
var movedLView = movedViews[i];
|
|
8909
|
+
var insertionLContainer = movedLView[PARENT];
|
|
8910
|
+
ngDevMode && assertLContainer(insertionLContainer);
|
|
8911
|
+
// We don't want to increment the counter if the moved LView was already marked for
|
|
8912
|
+
// refresh.
|
|
8913
|
+
if ((movedLView[FLAGS] & 1024 /* RefreshTransplantedView */) === 0) {
|
|
8914
|
+
updateTransplantedViewCount(insertionLContainer, 1);
|
|
8929
8915
|
}
|
|
8916
|
+
// Note, it is possible that the `movedViews` is tracking views that are transplanted *and*
|
|
8917
|
+
// those that aren't (declaration component === insertion component). In the latter case,
|
|
8918
|
+
// it's fine to add the flag, as we will clear it immediately in
|
|
8919
|
+
// `refreshEmbeddedViews` for the view currently being refreshed.
|
|
8920
|
+
movedLView[FLAGS] |= 1024 /* RefreshTransplantedView */;
|
|
8930
8921
|
}
|
|
8931
8922
|
}
|
|
8932
8923
|
}
|
|
@@ -9497,7 +9488,7 @@
|
|
|
9497
9488
|
// At this point the declaration-component is not same as insertion-component; this means that
|
|
9498
9489
|
// this is a transplanted view. Mark the declared lView as having transplanted views so that
|
|
9499
9490
|
// those views can participate in CD.
|
|
9500
|
-
declarationContainer[
|
|
9491
|
+
declarationContainer[HAS_TRANSPLANTED_VIEWS] = true;
|
|
9501
9492
|
}
|
|
9502
9493
|
if (movedViews === null) {
|
|
9503
9494
|
declarationContainer[MOVED_VIEWS] = [lView];
|
|
@@ -10286,10 +10277,6 @@
|
|
|
10286
10277
|
this._cdRefInjectingView = _cdRefInjectingView;
|
|
10287
10278
|
this._appRef = null;
|
|
10288
10279
|
this._viewContainerRef = null;
|
|
10289
|
-
/**
|
|
10290
|
-
* @internal
|
|
10291
|
-
*/
|
|
10292
|
-
this._tViewNode = null;
|
|
10293
10280
|
}
|
|
10294
10281
|
Object.defineProperty(ViewRef.prototype, "rootNodes", {
|
|
10295
10282
|
get: function () {
|
|
@@ -10682,9 +10669,7 @@
|
|
|
10682
10669
|
embeddedLView[QUERIES] = declarationViewLQueries.createEmbeddedView(embeddedTView);
|
|
10683
10670
|
}
|
|
10684
10671
|
renderView(embeddedTView, embeddedLView, context);
|
|
10685
|
-
|
|
10686
|
-
viewRef._tViewNode = embeddedLView[T_HOST];
|
|
10687
|
-
return viewRef;
|
|
10672
|
+
return new ViewRef(embeddedLView);
|
|
10688
10673
|
};
|
|
10689
10674
|
return TemplateRef;
|
|
10690
10675
|
}(TemplateRefToken));
|
|
@@ -10875,7 +10860,6 @@
|
|
|
10875
10860
|
if (isLContainer(slotValue)) {
|
|
10876
10861
|
// If the host is a container, we don't need to create a new LContainer
|
|
10877
10862
|
lContainer = slotValue;
|
|
10878
|
-
setLContainerActiveIndex(lContainer, -1 /* DYNAMIC_EMBEDDED_VIEWS_ONLY */);
|
|
10879
10863
|
}
|
|
10880
10864
|
else {
|
|
10881
10865
|
var commentNode = void 0;
|
|
@@ -11066,7 +11050,7 @@
|
|
|
11066
11050
|
var DELEGATE_CTOR = /^function\s+\S+\(\)\s*{[\s\S]+\.apply\(this,\s*arguments\)/;
|
|
11067
11051
|
var INHERITED_CLASS = /^class\s+[A-Za-z\d$_]*\s*extends\s+[^{]+{/;
|
|
11068
11052
|
var INHERITED_CLASS_WITH_CTOR = /^class\s+[A-Za-z\d$_]*\s*extends\s+[^{]+{[\s\S]*constructor\s*\(/;
|
|
11069
|
-
var INHERITED_CLASS_WITH_DELEGATE_CTOR = /^class\s+[A-Za-z\d$_]*\s*extends\s+[^{]+{[\s\S]*constructor\s*\(\)\s*{\s
|
|
11053
|
+
var INHERITED_CLASS_WITH_DELEGATE_CTOR = /^class\s+[A-Za-z\d$_]*\s*extends\s+[^{]+{[\s\S]*constructor\s*\(\)\s*{\s*super\(\.\.\.arguments\)/;
|
|
11070
11054
|
/**
|
|
11071
11055
|
* Determine whether a stringified type is a class which delegates its constructor
|
|
11072
11056
|
* to its parent.
|
|
@@ -13527,29 +13511,34 @@
|
|
|
13527
13511
|
*
|
|
13528
13512
|
* @param tNode The `TNode` into which the styling information should be loaded.
|
|
13529
13513
|
* @param attrs `TAttributes` containing the styling information.
|
|
13514
|
+
* @param writeToHost Where should the resulting static styles be written?
|
|
13515
|
+
* - `false` Write to `TNode.stylesWithoutHost` / `TNode.classesWithoutHost`
|
|
13516
|
+
* - `true` Write to `TNode.styles` / `TNode.classes`
|
|
13530
13517
|
*/
|
|
13531
|
-
function computeStaticStyling(tNode, attrs) {
|
|
13518
|
+
function computeStaticStyling(tNode, attrs, writeToHost) {
|
|
13532
13519
|
ngDevMode &&
|
|
13533
13520
|
assertFirstCreatePass(getTView(), 'Expecting to be called in first template pass only');
|
|
13534
|
-
var styles = tNode.styles;
|
|
13535
|
-
var classes = tNode.classes;
|
|
13521
|
+
var styles = writeToHost ? tNode.styles : null;
|
|
13522
|
+
var classes = writeToHost ? tNode.classes : null;
|
|
13536
13523
|
var mode = 0;
|
|
13537
|
-
|
|
13538
|
-
var
|
|
13539
|
-
|
|
13540
|
-
|
|
13541
|
-
|
|
13542
|
-
|
|
13543
|
-
|
|
13544
|
-
|
|
13545
|
-
|
|
13546
|
-
|
|
13547
|
-
|
|
13548
|
-
|
|
13524
|
+
if (attrs !== null) {
|
|
13525
|
+
for (var i = 0; i < attrs.length; i++) {
|
|
13526
|
+
var value = attrs[i];
|
|
13527
|
+
if (typeof value === 'number') {
|
|
13528
|
+
mode = value;
|
|
13529
|
+
}
|
|
13530
|
+
else if (mode == 1 /* Classes */) {
|
|
13531
|
+
classes = concatStringsWithSpace(classes, value);
|
|
13532
|
+
}
|
|
13533
|
+
else if (mode == 2 /* Styles */) {
|
|
13534
|
+
var style = value;
|
|
13535
|
+
var styleValue = attrs[++i];
|
|
13536
|
+
styles = concatStringsWithSpace(styles, style + ': ' + styleValue + ';');
|
|
13537
|
+
}
|
|
13549
13538
|
}
|
|
13550
13539
|
}
|
|
13551
|
-
styles
|
|
13552
|
-
classes
|
|
13540
|
+
writeToHost ? tNode.styles = styles : tNode.stylesWithoutHost = styles;
|
|
13541
|
+
writeToHost ? tNode.classes = classes : tNode.classesWithoutHost = classes;
|
|
13553
13542
|
}
|
|
13554
13543
|
|
|
13555
13544
|
/**
|
|
@@ -14641,8 +14630,11 @@
|
|
|
14641
14630
|
var tNode = getOrCreateTNode(tView, lView[T_HOST], index, 3 /* Element */, name, attrs);
|
|
14642
14631
|
var hasDirectives = resolveDirectives(tView, lView, tNode, getConstant(tViewConsts, localRefsIndex));
|
|
14643
14632
|
ngDevMode && warnAboutUnknownElement(tView, lView, native, tNode, hasDirectives);
|
|
14633
|
+
if (tNode.attrs !== null) {
|
|
14634
|
+
computeStaticStyling(tNode, tNode.attrs, false);
|
|
14635
|
+
}
|
|
14644
14636
|
if (tNode.mergedAttrs !== null) {
|
|
14645
|
-
computeStaticStyling(tNode, tNode.mergedAttrs);
|
|
14637
|
+
computeStaticStyling(tNode, tNode.mergedAttrs, true);
|
|
14646
14638
|
}
|
|
14647
14639
|
if (tView.queries !== null) {
|
|
14648
14640
|
tView.queries.elementStart(tView, tNode);
|
|
@@ -14731,11 +14723,11 @@
|
|
|
14731
14723
|
tView.queries.elementEnd(previousOrParentTNode);
|
|
14732
14724
|
}
|
|
14733
14725
|
}
|
|
14734
|
-
if (tNode.
|
|
14735
|
-
setDirectiveInputsWhichShadowsStyling(tView, tNode, getLView(), tNode.
|
|
14726
|
+
if (tNode.classesWithoutHost != null && hasClassInput(tNode)) {
|
|
14727
|
+
setDirectiveInputsWhichShadowsStyling(tView, tNode, getLView(), tNode.classesWithoutHost, true);
|
|
14736
14728
|
}
|
|
14737
|
-
if (tNode.
|
|
14738
|
-
setDirectiveInputsWhichShadowsStyling(tView, tNode, getLView(), tNode.
|
|
14729
|
+
if (tNode.stylesWithoutHost != null && hasStyleInput(tNode)) {
|
|
14730
|
+
setDirectiveInputsWhichShadowsStyling(tView, tNode, getLView(), tNode.stylesWithoutHost, false);
|
|
14739
14731
|
}
|
|
14740
14732
|
}
|
|
14741
14733
|
/**
|
|
@@ -14803,7 +14795,7 @@
|
|
|
14803
14795
|
// While ng-container doesn't necessarily support styling, we use the style context to identify
|
|
14804
14796
|
// and execute directives on the ng-container.
|
|
14805
14797
|
if (attrs !== null) {
|
|
14806
|
-
computeStaticStyling(tNode, attrs);
|
|
14798
|
+
computeStaticStyling(tNode, attrs, true);
|
|
14807
14799
|
}
|
|
14808
14800
|
var localRefs = getConstant(tViewConsts, localRefsIndex);
|
|
14809
14801
|
resolveDirectives(tView, lView, tNode, localRefs);
|
|
@@ -16686,7 +16678,7 @@
|
|
|
16686
16678
|
// the binding has removed it. This would confuse `[ngStyle]`/`[ngClass]` to do the wrong
|
|
16687
16679
|
// thing as it would think that the static portion was removed. For this reason we
|
|
16688
16680
|
// concatenate it so that `[ngStyle]`/`[ngClass]` can continue to work on changed.
|
|
16689
|
-
var staticPrefix = isClassBased ? tNode.
|
|
16681
|
+
var staticPrefix = isClassBased ? tNode.classesWithoutHost : tNode.stylesWithoutHost;
|
|
16690
16682
|
ngDevMode && isClassBased === false && staticPrefix !== null &&
|
|
16691
16683
|
assertEqual(staticPrefix.endsWith(';'), true, 'Expecting static portion to end with \';\'');
|
|
16692
16684
|
if (staticPrefix !== null) {
|
|
@@ -19191,7 +19183,7 @@
|
|
|
19191
19183
|
var tNode = getOrCreateTNode(tView, null, 0, 3 /* Element */, null, null);
|
|
19192
19184
|
var mergedAttrs = tNode.mergedAttrs = def.hostAttrs;
|
|
19193
19185
|
if (mergedAttrs !== null) {
|
|
19194
|
-
computeStaticStyling(tNode, mergedAttrs);
|
|
19186
|
+
computeStaticStyling(tNode, mergedAttrs, true);
|
|
19195
19187
|
if (rNode !== null) {
|
|
19196
19188
|
setUpAttributes(hostRenderer, rNode, mergedAttrs);
|
|
19197
19189
|
if (tNode.classes !== null) {
|
|
@@ -20227,7 +20219,7 @@
|
|
|
20227
20219
|
/**
|
|
20228
20220
|
* @publicApi
|
|
20229
20221
|
*/
|
|
20230
|
-
var VERSION = new Version('9.1.
|
|
20222
|
+
var VERSION = new Version('9.1.11');
|
|
20231
20223
|
|
|
20232
20224
|
/**
|
|
20233
20225
|
* @license
|
|
@@ -23353,7 +23345,8 @@
|
|
|
23353
23345
|
if (!rootSelectorOrNode || isIsolated) {
|
|
23354
23346
|
// The host element of the internal or isolated root view is attached to the component's host
|
|
23355
23347
|
// view node.
|
|
23356
|
-
|
|
23348
|
+
ngDevMode && assertNodeOfPossibleTypes(rootTView.node, 2 /* View */);
|
|
23349
|
+
rootTView.node.child = tElementNode;
|
|
23357
23350
|
}
|
|
23358
23351
|
return componentRef;
|
|
23359
23352
|
};
|
|
@@ -23388,7 +23381,7 @@
|
|
|
23388
23381
|
_this.destroyCbs = [];
|
|
23389
23382
|
_this.instance = instance;
|
|
23390
23383
|
_this.hostView = _this.changeDetectorRef = new RootViewRef(_rootLView);
|
|
23391
|
-
|
|
23384
|
+
assignTViewNodeToLView(_rootLView[TVIEW], null, -1, _rootLView);
|
|
23392
23385
|
_this.componentType = componentType;
|
|
23393
23386
|
return _this;
|
|
23394
23387
|
}
|