679c3bf7ea
In `ViewEncapsulation.Emulated` mode the compiler converts `:host` and `:host-context` pseudo classes into new CSS selectors. Previously, when there was both `:host-context` and `:host` classes in a selector, the compiler was generating incorrect selectors. There are two scenarios: * Both classes are on the same element (i.e. not separated). E.g. `:host-context(.foo):host(.bar)`. This setup should only match the host element if it has both `foo` and `bar` classes. So the generated CSS selector should be: `.foo.bar<hostmarker>`. * The `:host` class is on a descendant of the `:host-context`. E.g. `:host-context(.foo) :host(.bar)`. This setup should only match the `.foo` selector if it is a proper ancestor of the host (and not on the host itself). So the generated CSS selector should be: `.foo .bar<hostmarker>`. This commit fixes the generation to handle these scenarios. Fixes #14349 PR Close #40494 |
||
---|---|---|
.. | ||
design | ||
src | ||
test | ||
testing | ||
BUILD.bazel | ||
compiler.ts | ||
index.ts | ||
package.json | ||
public_api.ts |