Skip to content

Commit

Permalink
fix(compiler): make sure container queries are correctly handled
Browse files Browse the repository at this point in the history
resolves #48264
  • Loading branch information
dario-piotrowicz committed Dec 4, 2022
1 parent 192df71 commit 6c511cd
Show file tree
Hide file tree
Showing 2 changed files with 42 additions and 1 deletion.
3 changes: 2 additions & 1 deletion packages/compiler/src/shadow_css.ts
Expand Up @@ -571,7 +571,8 @@ export class ShadowCss {
this._scopeSelector(rule.selector, scopeSelector, hostSelector, this.strictStyling);
} else if (
rule.selector.startsWith('@media') || rule.selector.startsWith('@supports') ||
rule.selector.startsWith('@document') || rule.selector.startsWith('@layer')) {
rule.selector.startsWith('@document') || rule.selector.startsWith('@layer') ||
rule.selector.startsWith('@container')) {
content = this._scopeSelectors(rule.content, scopeSelector, hostSelector);
} else if (rule.selector.startsWith('@font-face') || rule.selector.startsWith('@page')) {
content = this._stripScopingSelectors(rule.content);
Expand Down
40 changes: 40 additions & 0 deletions packages/compiler/test/shadow_css/conatiner_queries_spec.ts
@@ -0,0 +1,40 @@
/**
* @license
* Copyright Google LLC All Rights Reserved.
*
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://angular.io/license
*/

import {ShadowCss} from '@angular/compiler/src/shadow_css';

describe('ShadowCss, container queries', () => {
function s(css: string, contentAttr: string, hostAttr: string = '') {
const shadowCss = new ShadowCss();
return shadowCss.shimCssText(css, contentAttr, hostAttr);
}

it('should scope normal selectors inside an unnamed container rules', () => {
const css = `
@container max(max-width: 500px) {
.item {
color: red;
}
}
`;
const result = s(css, 'host-a');
expect(result).toContain('.item[host-a] {');
});

it('should scope normal selectors inside a named container rules', () => {
const css = `
@container container max(max-width: 500px) {
.item {
color: red;
}
}
`;
const result = s(css, 'host-a');
expect(result).toContain('.item[host-a] {');
});
});

0 comments on commit 6c511cd

Please sign in to comment.