@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/testing.js
CHANGED
package/fesm5/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
|
*/
|
|
@@ -1941,7 +1941,15 @@ var TYPE = 1;
|
|
|
1941
1941
|
* without having to remember the specific indices.
|
|
1942
1942
|
* Uglify will inline these when minifying so there shouldn't be a cost.
|
|
1943
1943
|
*/
|
|
1944
|
-
|
|
1944
|
+
/**
|
|
1945
|
+
* Flag to signify that this `LContainer` may have transplanted views which need to be change
|
|
1946
|
+
* detected. (see: `LView[DECLARATION_COMPONENT_VIEW])`.
|
|
1947
|
+
*
|
|
1948
|
+
* This flag, once set, is never unset for the `LContainer`. This means that when unset we can skip
|
|
1949
|
+
* a lot of work in `refreshEmbeddedViews`. But when set we still need to verify
|
|
1950
|
+
* that the `MOVED_VIEWS` are transplanted and on-push.
|
|
1951
|
+
*/
|
|
1952
|
+
var HAS_TRANSPLANTED_VIEWS = 2;
|
|
1945
1953
|
// PARENT, NEXT, TRANSPLANTED_VIEWS_TO_REFRESH are indices 3, 4, and 5
|
|
1946
1954
|
// As we already have these constants in LView, we don't need to re-create them.
|
|
1947
1955
|
// T_HOST is index 6
|
|
@@ -2326,12 +2334,6 @@ function getConstant(consts, index) {
|
|
|
2326
2334
|
function resetPreOrderHookFlags(lView) {
|
|
2327
2335
|
lView[PREORDER_HOOK_FLAGS] = 0;
|
|
2328
2336
|
}
|
|
2329
|
-
function getLContainerActiveIndex(lContainer) {
|
|
2330
|
-
return lContainer[ACTIVE_INDEX] >> 1 /* SHIFT */;
|
|
2331
|
-
}
|
|
2332
|
-
function setLContainerActiveIndex(lContainer, index) {
|
|
2333
|
-
lContainer[ACTIVE_INDEX] = index << 1 /* SHIFT */;
|
|
2334
|
-
}
|
|
2335
2337
|
/**
|
|
2336
2338
|
* Updates the `TRANSPLANTED_VIEWS_TO_REFRESH` counter on the `LContainer` as well as the parents
|
|
2337
2339
|
* whose
|
|
@@ -6238,6 +6240,24 @@ function getRootContext(viewOrComponent) {
|
|
|
6238
6240
|
assertDefined(rootView[CONTEXT], 'RootView has no context. Perhaps it is disconnected?');
|
|
6239
6241
|
return rootView[CONTEXT];
|
|
6240
6242
|
}
|
|
6243
|
+
/**
|
|
6244
|
+
* Gets the first `LContainer` in the LView or `null` if none exists.
|
|
6245
|
+
*/
|
|
6246
|
+
function getFirstLContainer(lView) {
|
|
6247
|
+
return getNearestLContainer(lView[CHILD_HEAD]);
|
|
6248
|
+
}
|
|
6249
|
+
/**
|
|
6250
|
+
* Gets the next `LContainer` that is a sibling of the given container.
|
|
6251
|
+
*/
|
|
6252
|
+
function getNextLContainer(container) {
|
|
6253
|
+
return getNearestLContainer(container[NEXT]);
|
|
6254
|
+
}
|
|
6255
|
+
function getNearestLContainer(viewOrContainer) {
|
|
6256
|
+
while (viewOrContainer !== null && !isLContainer(viewOrContainer)) {
|
|
6257
|
+
viewOrContainer = viewOrContainer[NEXT];
|
|
6258
|
+
}
|
|
6259
|
+
return viewOrContainer;
|
|
6260
|
+
}
|
|
6241
6261
|
|
|
6242
6262
|
/**
|
|
6243
6263
|
* @license
|
|
@@ -6591,8 +6611,10 @@ var TNode = /** @class */ (function () {
|
|
|
6591
6611
|
parent, //
|
|
6592
6612
|
projection, //
|
|
6593
6613
|
styles, //
|
|
6614
|
+
stylesWithoutHost, //
|
|
6594
6615
|
residualStyles, //
|
|
6595
6616
|
classes, //
|
|
6617
|
+
classesWithoutHost, //
|
|
6596
6618
|
residualClasses, //
|
|
6597
6619
|
classBindings, //
|
|
6598
6620
|
styleBindings) {
|
|
@@ -6620,8 +6642,10 @@ var TNode = /** @class */ (function () {
|
|
|
6620
6642
|
this.parent = parent;
|
|
6621
6643
|
this.projection = projection;
|
|
6622
6644
|
this.styles = styles;
|
|
6645
|
+
this.stylesWithoutHost = stylesWithoutHost;
|
|
6623
6646
|
this.residualStyles = residualStyles;
|
|
6624
6647
|
this.classes = classes;
|
|
6648
|
+
this.classesWithoutHost = classesWithoutHost;
|
|
6625
6649
|
this.residualClasses = residualClasses;
|
|
6626
6650
|
this.classBindings = classBindings;
|
|
6627
6651
|
this.styleBindings = styleBindings;
|
|
@@ -7015,17 +7039,9 @@ var LContainerDebug = /** @class */ (function () {
|
|
|
7015
7039
|
function LContainerDebug(_raw_lContainer) {
|
|
7016
7040
|
this._raw_lContainer = _raw_lContainer;
|
|
7017
7041
|
}
|
|
7018
|
-
Object.defineProperty(LContainerDebug.prototype, "activeIndex", {
|
|
7019
|
-
get: function () {
|
|
7020
|
-
return getLContainerActiveIndex(this._raw_lContainer);
|
|
7021
|
-
},
|
|
7022
|
-
enumerable: true,
|
|
7023
|
-
configurable: true
|
|
7024
|
-
});
|
|
7025
7042
|
Object.defineProperty(LContainerDebug.prototype, "hasTransplantedViews", {
|
|
7026
7043
|
get: function () {
|
|
7027
|
-
return
|
|
7028
|
-
1 /* HAS_TRANSPLANTED_VIEWS */;
|
|
7044
|
+
return this._raw_lContainer[HAS_TRANSPLANTED_VIEWS];
|
|
7029
7045
|
},
|
|
7030
7046
|
enumerable: true,
|
|
7031
7047
|
configurable: true
|
|
@@ -7481,7 +7497,7 @@ function assignTViewNodeToLView(tView, tParentNode, index, lView) {
|
|
|
7481
7497
|
tView.node = tNode = createTNode(tView, tParentNode, //
|
|
7482
7498
|
2 /* View */, index, null, null);
|
|
7483
7499
|
}
|
|
7484
|
-
|
|
7500
|
+
lView[T_HOST] = tNode;
|
|
7485
7501
|
}
|
|
7486
7502
|
/**
|
|
7487
7503
|
* When elements are created dynamically after a view blueprint is created (e.g. through
|
|
@@ -7621,7 +7637,7 @@ function refreshView(tView, lView, templateFn, context) {
|
|
|
7621
7637
|
// insertion points. This is needed to avoid the situation where the template is defined in this
|
|
7622
7638
|
// `LView` but its declaration appears after the insertion component.
|
|
7623
7639
|
markTransplantedViewsForRefresh(lView);
|
|
7624
|
-
|
|
7640
|
+
refreshEmbeddedViews(lView);
|
|
7625
7641
|
// Content query results must be refreshed before content hooks are called.
|
|
7626
7642
|
if (tView.contentQueries !== null) {
|
|
7627
7643
|
refreshContentQueries(tView, lView);
|
|
@@ -7992,8 +8008,10 @@ function createTNode(tView, tParent, type, adjustedIndex, tagName, attrs) {
|
|
|
7992
8008
|
tParent, // parent: TElementNode|TContainerNode|null
|
|
7993
8009
|
null, // projection: number|(ITNode|RNode[])[]|null
|
|
7994
8010
|
null, // styles: string|null
|
|
8011
|
+
null, // stylesWithoutHost: string|null
|
|
7995
8012
|
undefined, // residualStyles: string|null
|
|
7996
8013
|
null, // classes: string|null
|
|
8014
|
+
null, // classesWithoutHost: string|null
|
|
7997
8015
|
undefined, // residualClasses: string|null
|
|
7998
8016
|
0, // classBindings: TStylingRange;
|
|
7999
8017
|
0) :
|
|
@@ -8021,8 +8039,10 @@ function createTNode(tView, tParent, type, adjustedIndex, tagName, attrs) {
|
|
|
8021
8039
|
parent: tParent,
|
|
8022
8040
|
projection: null,
|
|
8023
8041
|
styles: null,
|
|
8042
|
+
stylesWithoutHost: null,
|
|
8024
8043
|
residualStyles: undefined,
|
|
8025
8044
|
classes: null,
|
|
8045
|
+
classesWithoutHost: null,
|
|
8026
8046
|
residualClasses: undefined,
|
|
8027
8047
|
classBindings: 0,
|
|
8028
8048
|
styleBindings: 0,
|
|
@@ -8669,7 +8689,7 @@ function createLContainer(hostNative, currentView, native, tNode) {
|
|
|
8669
8689
|
// https://jsperf.com/array-literal-vs-new-array-really
|
|
8670
8690
|
var lContainer = new (ngDevMode ? LContainerArray : Array)(hostNative, // host native
|
|
8671
8691
|
true, // Boolean `true` in this position signifies that this is an `LContainer`
|
|
8672
|
-
|
|
8692
|
+
false, // has transplanted views
|
|
8673
8693
|
currentView, // parent
|
|
8674
8694
|
null, // next
|
|
8675
8695
|
0, // transplanted views to refresh count
|
|
@@ -8683,10 +8703,10 @@ function createLContainer(hostNative, currentView, native, tNode) {
|
|
|
8683
8703
|
return lContainer;
|
|
8684
8704
|
}
|
|
8685
8705
|
/**
|
|
8686
|
-
* Goes over
|
|
8706
|
+
* Goes over embedded views (ones created through ViewContainerRef APIs) and refreshes
|
|
8687
8707
|
* them by executing an associated template function.
|
|
8688
8708
|
*/
|
|
8689
|
-
function
|
|
8709
|
+
function refreshEmbeddedViews(lView) {
|
|
8690
8710
|
for (var lContainer = getFirstLContainer(lView); lContainer !== null; lContainer = getNextLContainer(lContainer)) {
|
|
8691
8711
|
for (var i = CONTAINER_HEADER_OFFSET; i < lContainer.length; i++) {
|
|
8692
8712
|
var embeddedLView = lContainer[i];
|
|
@@ -8698,60 +8718,31 @@ function refreshDynamicEmbeddedViews(lView) {
|
|
|
8698
8718
|
}
|
|
8699
8719
|
}
|
|
8700
8720
|
}
|
|
8701
|
-
/**
|
|
8702
|
-
* Gets the first `LContainer` in the LView or `null` if none exists.
|
|
8703
|
-
*/
|
|
8704
|
-
function getFirstLContainer(lView) {
|
|
8705
|
-
var viewOrContainer = lView[CHILD_HEAD];
|
|
8706
|
-
while (viewOrContainer !== null &&
|
|
8707
|
-
!(isLContainer(viewOrContainer) &&
|
|
8708
|
-
viewOrContainer[ACTIVE_INDEX] >> 1 /* SHIFT */ ===
|
|
8709
|
-
-1 /* DYNAMIC_EMBEDDED_VIEWS_ONLY */)) {
|
|
8710
|
-
viewOrContainer = viewOrContainer[NEXT];
|
|
8711
|
-
}
|
|
8712
|
-
return viewOrContainer;
|
|
8713
|
-
}
|
|
8714
|
-
/**
|
|
8715
|
-
* Gets the next `LContainer` that is a sibling of the given container.
|
|
8716
|
-
*/
|
|
8717
|
-
function getNextLContainer(container) {
|
|
8718
|
-
var viewOrContainer = container[NEXT];
|
|
8719
|
-
while (viewOrContainer !== null &&
|
|
8720
|
-
!(isLContainer(viewOrContainer) &&
|
|
8721
|
-
viewOrContainer[ACTIVE_INDEX] >> 1 /* SHIFT */ ===
|
|
8722
|
-
-1 /* DYNAMIC_EMBEDDED_VIEWS_ONLY */)) {
|
|
8723
|
-
viewOrContainer = viewOrContainer[NEXT];
|
|
8724
|
-
}
|
|
8725
|
-
return viewOrContainer;
|
|
8726
|
-
}
|
|
8727
8721
|
/**
|
|
8728
8722
|
* Mark transplanted views as needing to be refreshed at their insertion points.
|
|
8729
8723
|
*
|
|
8730
|
-
* See: `ActiveIndexFlag.HAS_TRANSPLANTED_VIEWS` and `LView[DECLARATION_COMPONENT_VIEW]` for
|
|
8731
|
-
* explanation of transplanted views.
|
|
8732
|
-
*
|
|
8733
8724
|
* @param lView The `LView` that may have transplanted views.
|
|
8734
8725
|
*/
|
|
8735
8726
|
function markTransplantedViewsForRefresh(lView) {
|
|
8736
8727
|
for (var lContainer = getFirstLContainer(lView); lContainer !== null; lContainer = getNextLContainer(lContainer)) {
|
|
8737
|
-
if (
|
|
8738
|
-
|
|
8739
|
-
|
|
8740
|
-
|
|
8741
|
-
|
|
8742
|
-
|
|
8743
|
-
|
|
8744
|
-
|
|
8745
|
-
|
|
8746
|
-
|
|
8747
|
-
|
|
8748
|
-
|
|
8749
|
-
// Note, it is possible that the `movedViews` is tracking views that are transplanted *and*
|
|
8750
|
-
// those that aren't (declaration component === insertion component). In the latter case,
|
|
8751
|
-
// it's fine to add the flag, as we will clear it immediately in
|
|
8752
|
-
// `refreshDynamicEmbeddedViews` for the view currently being refreshed.
|
|
8753
|
-
movedLView[FLAGS] |= 1024 /* RefreshTransplantedView */;
|
|
8728
|
+
if (!lContainer[HAS_TRANSPLANTED_VIEWS])
|
|
8729
|
+
continue;
|
|
8730
|
+
var movedViews = lContainer[MOVED_VIEWS];
|
|
8731
|
+
ngDevMode && assertDefined(movedViews, 'Transplanted View flags set but missing MOVED_VIEWS');
|
|
8732
|
+
for (var i = 0; i < movedViews.length; i++) {
|
|
8733
|
+
var movedLView = movedViews[i];
|
|
8734
|
+
var insertionLContainer = movedLView[PARENT];
|
|
8735
|
+
ngDevMode && assertLContainer(insertionLContainer);
|
|
8736
|
+
// We don't want to increment the counter if the moved LView was already marked for
|
|
8737
|
+
// refresh.
|
|
8738
|
+
if ((movedLView[FLAGS] & 1024 /* RefreshTransplantedView */) === 0) {
|
|
8739
|
+
updateTransplantedViewCount(insertionLContainer, 1);
|
|
8754
8740
|
}
|
|
8741
|
+
// Note, it is possible that the `movedViews` is tracking views that are transplanted *and*
|
|
8742
|
+
// those that aren't (declaration component === insertion component). In the latter case,
|
|
8743
|
+
// it's fine to add the flag, as we will clear it immediately in
|
|
8744
|
+
// `refreshEmbeddedViews` for the view currently being refreshed.
|
|
8745
|
+
movedLView[FLAGS] |= 1024 /* RefreshTransplantedView */;
|
|
8755
8746
|
}
|
|
8756
8747
|
}
|
|
8757
8748
|
}
|
|
@@ -9322,7 +9313,7 @@ function trackMovedView(declarationContainer, lView) {
|
|
|
9322
9313
|
// At this point the declaration-component is not same as insertion-component; this means that
|
|
9323
9314
|
// this is a transplanted view. Mark the declared lView as having transplanted views so that
|
|
9324
9315
|
// those views can participate in CD.
|
|
9325
|
-
declarationContainer[
|
|
9316
|
+
declarationContainer[HAS_TRANSPLANTED_VIEWS] = true;
|
|
9326
9317
|
}
|
|
9327
9318
|
if (movedViews === null) {
|
|
9328
9319
|
declarationContainer[MOVED_VIEWS] = [lView];
|
|
@@ -10111,10 +10102,6 @@ var ViewRef = /** @class */ (function () {
|
|
|
10111
10102
|
this._cdRefInjectingView = _cdRefInjectingView;
|
|
10112
10103
|
this._appRef = null;
|
|
10113
10104
|
this._viewContainerRef = null;
|
|
10114
|
-
/**
|
|
10115
|
-
* @internal
|
|
10116
|
-
*/
|
|
10117
|
-
this._tViewNode = null;
|
|
10118
10105
|
}
|
|
10119
10106
|
Object.defineProperty(ViewRef.prototype, "rootNodes", {
|
|
10120
10107
|
get: function () {
|
|
@@ -10507,9 +10494,7 @@ function createTemplateRef(TemplateRefToken, ElementRefToken, hostTNode, hostVie
|
|
|
10507
10494
|
embeddedLView[QUERIES] = declarationViewLQueries.createEmbeddedView(embeddedTView);
|
|
10508
10495
|
}
|
|
10509
10496
|
renderView(embeddedTView, embeddedLView, context);
|
|
10510
|
-
|
|
10511
|
-
viewRef._tViewNode = embeddedLView[T_HOST];
|
|
10512
|
-
return viewRef;
|
|
10497
|
+
return new ViewRef(embeddedLView);
|
|
10513
10498
|
};
|
|
10514
10499
|
return TemplateRef;
|
|
10515
10500
|
}(TemplateRefToken));
|
|
@@ -10700,7 +10685,6 @@ function createContainerRef(ViewContainerRefToken, ElementRefToken, hostTNode, h
|
|
|
10700
10685
|
if (isLContainer(slotValue)) {
|
|
10701
10686
|
// If the host is a container, we don't need to create a new LContainer
|
|
10702
10687
|
lContainer = slotValue;
|
|
10703
|
-
setLContainerActiveIndex(lContainer, -1 /* DYNAMIC_EMBEDDED_VIEWS_ONLY */);
|
|
10704
10688
|
}
|
|
10705
10689
|
else {
|
|
10706
10690
|
var commentNode = void 0;
|
|
@@ -10891,7 +10875,7 @@ function isType(v) {
|
|
|
10891
10875
|
var DELEGATE_CTOR = /^function\s+\S+\(\)\s*{[\s\S]+\.apply\(this,\s*arguments\)/;
|
|
10892
10876
|
var INHERITED_CLASS = /^class\s+[A-Za-z\d$_]*\s*extends\s+[^{]+{/;
|
|
10893
10877
|
var INHERITED_CLASS_WITH_CTOR = /^class\s+[A-Za-z\d$_]*\s*extends\s+[^{]+{[\s\S]*constructor\s*\(/;
|
|
10894
|
-
var INHERITED_CLASS_WITH_DELEGATE_CTOR = /^class\s+[A-Za-z\d$_]*\s*extends\s+[^{]+{[\s\S]*constructor\s*\(\)\s*{\s
|
|
10878
|
+
var INHERITED_CLASS_WITH_DELEGATE_CTOR = /^class\s+[A-Za-z\d$_]*\s*extends\s+[^{]+{[\s\S]*constructor\s*\(\)\s*{\s*super\(\.\.\.arguments\)/;
|
|
10895
10879
|
/**
|
|
10896
10880
|
* Determine whether a stringified type is a class which delegates its constructor
|
|
10897
10881
|
* to its parent.
|
|
@@ -13352,29 +13336,34 @@ function componentDefResolved(type) {
|
|
|
13352
13336
|
*
|
|
13353
13337
|
* @param tNode The `TNode` into which the styling information should be loaded.
|
|
13354
13338
|
* @param attrs `TAttributes` containing the styling information.
|
|
13339
|
+
* @param writeToHost Where should the resulting static styles be written?
|
|
13340
|
+
* - `false` Write to `TNode.stylesWithoutHost` / `TNode.classesWithoutHost`
|
|
13341
|
+
* - `true` Write to `TNode.styles` / `TNode.classes`
|
|
13355
13342
|
*/
|
|
13356
|
-
function computeStaticStyling(tNode, attrs) {
|
|
13343
|
+
function computeStaticStyling(tNode, attrs, writeToHost) {
|
|
13357
13344
|
ngDevMode &&
|
|
13358
13345
|
assertFirstCreatePass(getTView(), 'Expecting to be called in first template pass only');
|
|
13359
|
-
var styles = tNode.styles;
|
|
13360
|
-
var classes = tNode.classes;
|
|
13346
|
+
var styles = writeToHost ? tNode.styles : null;
|
|
13347
|
+
var classes = writeToHost ? tNode.classes : null;
|
|
13361
13348
|
var mode = 0;
|
|
13362
|
-
|
|
13363
|
-
var
|
|
13364
|
-
|
|
13365
|
-
|
|
13366
|
-
|
|
13367
|
-
|
|
13368
|
-
|
|
13369
|
-
|
|
13370
|
-
|
|
13371
|
-
|
|
13372
|
-
|
|
13373
|
-
|
|
13349
|
+
if (attrs !== null) {
|
|
13350
|
+
for (var i = 0; i < attrs.length; i++) {
|
|
13351
|
+
var value = attrs[i];
|
|
13352
|
+
if (typeof value === 'number') {
|
|
13353
|
+
mode = value;
|
|
13354
|
+
}
|
|
13355
|
+
else if (mode == 1 /* Classes */) {
|
|
13356
|
+
classes = concatStringsWithSpace(classes, value);
|
|
13357
|
+
}
|
|
13358
|
+
else if (mode == 2 /* Styles */) {
|
|
13359
|
+
var style = value;
|
|
13360
|
+
var styleValue = attrs[++i];
|
|
13361
|
+
styles = concatStringsWithSpace(styles, style + ': ' + styleValue + ';');
|
|
13362
|
+
}
|
|
13374
13363
|
}
|
|
13375
13364
|
}
|
|
13376
|
-
styles
|
|
13377
|
-
classes
|
|
13365
|
+
writeToHost ? tNode.styles = styles : tNode.stylesWithoutHost = styles;
|
|
13366
|
+
writeToHost ? tNode.classes = classes : tNode.classesWithoutHost = classes;
|
|
13378
13367
|
}
|
|
13379
13368
|
|
|
13380
13369
|
/**
|
|
@@ -14466,8 +14455,11 @@ function elementStartFirstCreatePass(index, tView, lView, native, name, attrsInd
|
|
|
14466
14455
|
var tNode = getOrCreateTNode(tView, lView[T_HOST], index, 3 /* Element */, name, attrs);
|
|
14467
14456
|
var hasDirectives = resolveDirectives(tView, lView, tNode, getConstant(tViewConsts, localRefsIndex));
|
|
14468
14457
|
ngDevMode && warnAboutUnknownElement(tView, lView, native, tNode, hasDirectives);
|
|
14458
|
+
if (tNode.attrs !== null) {
|
|
14459
|
+
computeStaticStyling(tNode, tNode.attrs, false);
|
|
14460
|
+
}
|
|
14469
14461
|
if (tNode.mergedAttrs !== null) {
|
|
14470
|
-
computeStaticStyling(tNode, tNode.mergedAttrs);
|
|
14462
|
+
computeStaticStyling(tNode, tNode.mergedAttrs, true);
|
|
14471
14463
|
}
|
|
14472
14464
|
if (tView.queries !== null) {
|
|
14473
14465
|
tView.queries.elementStart(tView, tNode);
|
|
@@ -14556,11 +14548,11 @@ function ɵɵelementEnd() {
|
|
|
14556
14548
|
tView.queries.elementEnd(previousOrParentTNode);
|
|
14557
14549
|
}
|
|
14558
14550
|
}
|
|
14559
|
-
if (tNode.
|
|
14560
|
-
setDirectiveInputsWhichShadowsStyling(tView, tNode, getLView(), tNode.
|
|
14551
|
+
if (tNode.classesWithoutHost != null && hasClassInput(tNode)) {
|
|
14552
|
+
setDirectiveInputsWhichShadowsStyling(tView, tNode, getLView(), tNode.classesWithoutHost, true);
|
|
14561
14553
|
}
|
|
14562
|
-
if (tNode.
|
|
14563
|
-
setDirectiveInputsWhichShadowsStyling(tView, tNode, getLView(), tNode.
|
|
14554
|
+
if (tNode.stylesWithoutHost != null && hasStyleInput(tNode)) {
|
|
14555
|
+
setDirectiveInputsWhichShadowsStyling(tView, tNode, getLView(), tNode.stylesWithoutHost, false);
|
|
14564
14556
|
}
|
|
14565
14557
|
}
|
|
14566
14558
|
/**
|
|
@@ -14628,7 +14620,7 @@ function elementContainerStartFirstCreatePass(index, tView, lView, attrsIndex, l
|
|
|
14628
14620
|
// While ng-container doesn't necessarily support styling, we use the style context to identify
|
|
14629
14621
|
// and execute directives on the ng-container.
|
|
14630
14622
|
if (attrs !== null) {
|
|
14631
|
-
computeStaticStyling(tNode, attrs);
|
|
14623
|
+
computeStaticStyling(tNode, attrs, true);
|
|
14632
14624
|
}
|
|
14633
14625
|
var localRefs = getConstant(tViewConsts, localRefsIndex);
|
|
14634
14626
|
resolveDirectives(tView, lView, tNode, localRefs);
|
|
@@ -16511,7 +16503,7 @@ function checkStylingMap(keyValueArraySet, stringParser, value, isClassBased) {
|
|
|
16511
16503
|
// the binding has removed it. This would confuse `[ngStyle]`/`[ngClass]` to do the wrong
|
|
16512
16504
|
// thing as it would think that the static portion was removed. For this reason we
|
|
16513
16505
|
// concatenate it so that `[ngStyle]`/`[ngClass]` can continue to work on changed.
|
|
16514
|
-
var staticPrefix = isClassBased ? tNode.
|
|
16506
|
+
var staticPrefix = isClassBased ? tNode.classesWithoutHost : tNode.stylesWithoutHost;
|
|
16515
16507
|
ngDevMode && isClassBased === false && staticPrefix !== null &&
|
|
16516
16508
|
assertEqual(staticPrefix.endsWith(';'), true, 'Expecting static portion to end with \';\'');
|
|
16517
16509
|
if (staticPrefix !== null) {
|
|
@@ -19016,7 +19008,7 @@ function createRootComponentView(rNode, def, rootView, rendererFactory, hostRend
|
|
|
19016
19008
|
var tNode = getOrCreateTNode(tView, null, 0, 3 /* Element */, null, null);
|
|
19017
19009
|
var mergedAttrs = tNode.mergedAttrs = def.hostAttrs;
|
|
19018
19010
|
if (mergedAttrs !== null) {
|
|
19019
|
-
computeStaticStyling(tNode, mergedAttrs);
|
|
19011
|
+
computeStaticStyling(tNode, mergedAttrs, true);
|
|
19020
19012
|
if (rNode !== null) {
|
|
19021
19013
|
setUpAttributes(hostRenderer, rNode, mergedAttrs);
|
|
19022
19014
|
if (tNode.classes !== null) {
|
|
@@ -20057,7 +20049,7 @@ var Version = /** @class */ (function () {
|
|
|
20057
20049
|
/**
|
|
20058
20050
|
* @publicApi
|
|
20059
20051
|
*/
|
|
20060
|
-
var VERSION = new Version('9.1.
|
|
20052
|
+
var VERSION = new Version('9.1.11');
|
|
20061
20053
|
|
|
20062
20054
|
/**
|
|
20063
20055
|
* @license
|
|
@@ -23183,7 +23175,8 @@ var ComponentFactory$1 = /** @class */ (function (_super) {
|
|
|
23183
23175
|
if (!rootSelectorOrNode || isIsolated) {
|
|
23184
23176
|
// The host element of the internal or isolated root view is attached to the component's host
|
|
23185
23177
|
// view node.
|
|
23186
|
-
|
|
23178
|
+
ngDevMode && assertNodeOfPossibleTypes(rootTView.node, 2 /* View */);
|
|
23179
|
+
rootTView.node.child = tElementNode;
|
|
23187
23180
|
}
|
|
23188
23181
|
return componentRef;
|
|
23189
23182
|
};
|
|
@@ -23218,7 +23211,7 @@ var ComponentRef$1 = /** @class */ (function (_super) {
|
|
|
23218
23211
|
_this.destroyCbs = [];
|
|
23219
23212
|
_this.instance = instance;
|
|
23220
23213
|
_this.hostView = _this.changeDetectorRef = new RootViewRef(_rootLView);
|
|
23221
|
-
|
|
23214
|
+
assignTViewNodeToLView(_rootLView[TVIEW], null, -1, _rootLView);
|
|
23222
23215
|
_this.componentType = componentType;
|
|
23223
23216
|
return _this;
|
|
23224
23217
|
}
|