From 768a480d006a0bb80d3f56e5ebdaee42af15fa7e Mon Sep 17 00:00:00 2001 From: Adrian Cochrane Date: Tue, 18 Jun 2019 08:53:22 +1200 Subject: [PATCH] Cascade CSS properties. --- src/Stylish/Style/Selector.hs | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/Stylish/Style/Selector.hs b/src/Stylish/Style/Selector.hs index a98877b..ddc3eb4 100644 --- a/src/Stylish/Style/Selector.hs +++ b/src/Stylish/Style/Selector.hs @@ -11,6 +11,9 @@ import Stylish.Style.Selector.Common import Stylish.Parse (StyleSheet(..)) +-- TODO do performance tests to decide beside between strict/lazy. +import Data.HashMap.Strict + ruleStore = ImportanceSplitter $ OrderedRuleStore (InterpretedRuleStore styleIndex) 0 data QueryableStyleSheet store = QueryableStyleSheet { @@ -26,3 +29,11 @@ instance RuleStore s => StyleSheet (QueryableStyleSheet s) where } queryRules (QueryableStyleSheet store _) el = lookupRules store el + +-------- +---- Cascade +-------- + +cascadeRules rules = cascadeProperties $ concat $ Prelude.map properties rules + +cascadeProperties ((name, value):props) = insert name value $ cascadeProperties props -- 2.30.2