fix(ivy): ensure parent/sub-class components evaluate styling correctly (#29602)

The new styling algorithm in angular is designed to evaluate host
bindings stylinh priority in order of directive evaluation order. This,
however, does not work with respect to parent/sub-class directives
because sub-class host bindings are run after the parent host bindings
but still have priority. This patch ensures that the host styling bindings
for parent and sub-class components/directives are executed with respect
to the styling algorithm prioritization.

Jira Issue: FW-1132

PR Close #29602
This commit is contained in:
Matias Niemelä
2019-04-02 16:16:00 -07:00
committed by Igor Minar
parent 5c13feebfd
commit ec56354306
19 changed files with 1404 additions and 913 deletions

View File

@ -29,6 +29,9 @@
{
"name": "DECLARATION_VIEW"
},
{
"name": "DEFAULT_TEMPLATE_DIRECTIVE_INDEX"
},
{
"name": "DepComponent"
},
@ -158,6 +161,9 @@
{
"name": "_renderCompCount"
},
{
"name": "_selectedIndex"
},
{
"name": "addComponentLogic"
},
@ -171,7 +177,7 @@
"name": "allocStylingContext"
},
{
"name": "allocateDirectiveIntoContext"
"name": "allocateOrUpdateDirectiveIntoContext"
},
{
"name": "allowValueChange"
@ -338,9 +344,6 @@
{
"name": "getDirectiveDef"
},
{
"name": "getDirectiveRegistryValuesIndexOf"
},
{
"name": "getElementDepthCount"
},
@ -449,6 +452,9 @@
{
"name": "increaseElementDepthCount"
},
{
"name": "incrementActiveDirectiveId"
},
{
"name": "initNodeFlags"
},
@ -627,7 +633,7 @@
"name": "saveResolvedLocalsInData"
},
{
"name": "setActiveHost"
"name": "setActiveHostElement"
},
{
"name": "setBindingRoot"
@ -668,6 +674,9 @@
{
"name": "setPreviousOrParentTNode"
},
{
"name": "setSelectedIndex"
},
{
"name": "setStyle"
},

View File

@ -134,6 +134,9 @@
{
"name": "_renderCompCount"
},
{
"name": "_selectedIndex"
},
{
"name": "addToViewTree"
},
@ -323,6 +326,9 @@
{
"name": "includeViewProviders"
},
{
"name": "incrementActiveDirectiveId"
},
{
"name": "initNodeFlags"
},
@ -435,7 +441,7 @@
"name": "resetPreOrderHookFlags"
},
{
"name": "setActiveHost"
"name": "setActiveHostElement"
},
{
"name": "setBindingRoot"
@ -464,6 +470,9 @@
{
"name": "setPreviousOrParentTNode"
},
{
"name": "setSelectedIndex"
},
{
"name": "setStyle"
},

View File

@ -44,6 +44,9 @@
{
"name": "DECLARATION_VIEW"
},
{
"name": "DEFAULT_TEMPLATE_DIRECTIVE_INDEX"
},
{
"name": "DefaultIterableDiffer"
},
@ -371,6 +374,9 @@
{
"name": "_renderCompCount"
},
{
"name": "_selectedIndex"
},
{
"name": "_symbolIterator"
},
@ -399,7 +405,10 @@
"name": "allocStylingContext"
},
{
"name": "allocateDirectiveIntoContext"
"name": "allocateOrUpdateDirectiveIntoContext"
},
{
"name": "allowFlush"
},
{
"name": "allowValueChange"
@ -572,9 +581,6 @@
{
"name": "elementClassProp"
},
{
"name": "elementClassPropInternal"
},
{
"name": "elementCreate"
},
@ -644,6 +650,9 @@
{
"name": "findViaComponent"
},
{
"name": "flushQueue"
},
{
"name": "forwardRef"
},
@ -698,12 +707,6 @@
{
"name": "getDirectiveIndexFromEntry"
},
{
"name": "getDirectiveIndexFromRegistry"
},
{
"name": "getDirectiveRegistryValuesIndexOf"
},
{
"name": "getElementDepthCount"
},
@ -755,9 +758,6 @@
{
"name": "getMatchingBindingIndex"
},
{
"name": "getMultiClassesStartIndex"
},
{
"name": "getMultiOrSingleIndex"
},
@ -908,6 +908,9 @@
{
"name": "increaseElementDepthCount"
},
{
"name": "incrementActiveDirectiveId"
},
{
"name": "initElementStyling"
},
@ -983,9 +986,6 @@
{
"name": "isDifferent"
},
{
"name": "isDirectiveDirty"
},
{
"name": "isDirty"
},
@ -1224,7 +1224,7 @@
"name": "select"
},
{
"name": "setActiveHost"
"name": "setActiveHostElement"
},
{
"name": "setBindingRoot"
@ -1247,9 +1247,6 @@
{
"name": "setCurrentQueryIndex"
},
{
"name": "setDirectiveDirty"
},
{
"name": "setDirty"
},
@ -1292,6 +1289,9 @@
{
"name": "setSanitizeFlag"
},
{
"name": "setSelectedIndex"
},
{
"name": "setStyle"
},