From c1fc9c1ac9bec0a15b1ae3a50747b9536de29fc2 Mon Sep 17 00:00:00 2001 From: Jacob Wright Date: Sat, 25 Aug 2018 14:50:14 -0600 Subject: [PATCH] Encapsulate class directives in the stylesheet. --- src/css/Selector.ts | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/css/Selector.ts b/src/css/Selector.ts index 80e722a483..ed8a4f60df 100644 --- a/src/css/Selector.ts +++ b/src/css/Selector.ts @@ -157,7 +157,7 @@ function applySelector(stylesheet: Stylesheet, blocks: Block[], node: Node, stac } if (selector.type === 'ClassSelector') { - if (!attributeMatches(node, 'class', selector.name, '~=', false)) return false; + if (!attributeMatches(node, 'class', selector.name, '~=', false) && !classMatches(node, selector.name)) return false; } else if (selector.type === 'IdSelector') { @@ -258,6 +258,12 @@ function attributeMatches(node: Node, name: string, expectedValue: string, opera return false; } +function classMatches(node, name: string) { + return node.classes.some(function(classDir) { + return classDir.name === name; + }); +} + function isDynamic(value: Node) { return value.length > 1 || value[0].type !== 'Text'; }