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
Angular
The sources for this package are in the main Angular repo. Please file issues and pull requests against that repo.
Usage information and reference details can be found in Angular documentation.
License: MIT