From d64f7f09800834e5cbb08b0c8f12750fc7680030 Mon Sep 17 00:00:00 2001 From: Artur Arseniev Date: Thu, 22 Feb 2024 00:17:30 +0400 Subject: [PATCH] Skip rules without selectors in Styles.getParentRules --- src/style_manager/index.ts | 10 ++++++---- test/specs/style_manager/index.ts | 6 +++++- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/src/style_manager/index.ts b/src/style_manager/index.ts index c78953d24..2c2a0bd89 100644 --- a/src/style_manager/index.ts +++ b/src/style_manager/index.ts @@ -601,10 +601,12 @@ export default class StyleManager extends ItemManagerModule< let rules: CssRule[] = []; const rulesBySelectors = (values: string[]) => { - return cssC.getRules().filter(rule => { - const rSels = rule.getSelectors().map(s => s.getFullName()); - return rSels.every(rSel => values.indexOf(rSel) >= 0); - }); + return !values.length + ? [] + : cssC.getRules().filter(rule => { + const rSels = rule.getSelectors().map(s => s.getFullName()); + return !!rSels.length && rSels.every(rSel => values.indexOf(rSel) >= 0); + }); }; // Componente related rule diff --git a/test/specs/style_manager/index.ts b/test/specs/style_manager/index.ts index 45a7d891f..d3d8c9c08 100644 --- a/test/specs/style_manager/index.ts +++ b/test/specs/style_manager/index.ts @@ -213,11 +213,15 @@ describe('StyleManager', () => { test('Mixed classes', () => { const cmp = domc.addComponent('
'); - const [rule1, rule2] = cssc.addRules(` + const [a, b, rule1, rule2] = cssc.addRules(` + h1 { color: white; } + h1 .test { color: black; } .cls1 { color: red; } .cls1.cls2 { color: blue; } .cls2 { color: green; } .cls1.cls3 { color: green; } + h2 { color: white; } + h2 .test { color: black; } `); em.setSelected(cmp); obj.__upSel();