From 401335049dc8a82e168756b46bff6c5df363721c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20Stra=C3=9Fburger?= Date: Sat, 5 Nov 2016 20:24:49 +0100 Subject: [PATCH] :art: adding any, none, has, !has, >, < and <= style filters --- src/Styler.coffee | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/src/Styler.coffee b/src/Styler.coffee index c7eea20..83ae897 100644 --- a/src/Styler.coffee +++ b/src/Styler.coffee @@ -61,6 +61,18 @@ module.exports = class Styler return false for appliesTo in filters when not appliesTo feature true + when "any" + filters = (@_compileFilter subFilter for subFilter in filter[1..]) + (feature) -> + return true for appliesTo in filters when appliesTo feature + false + + when "none" + filters = (@_compileFilter subFilter for subFilter in filter[1..]) + (feature) -> + return false for appliesTo in filters when appliesTo feature + true + when "==" (feature) -> feature.properties[filter[1]] is filter[2] @@ -77,9 +89,21 @@ module.exports = class Styler return false for value in filter[2..] when feature.properties[filter[1]] is value true + when "has" + (feature) -> !!feature.properties[filter[1]] + + when "!has" + (feature) -> !feature.properties[filter[1]] + + when ">" + (feature) -> feature.properties[filter[1]] > filter[2] + when ">=" (feature) -> feature.properties[filter[1]] >= filter[2] + when "<" + (feature) -> feature.properties[filter[1]] < filter[2] + when "<=" (feature) -> feature.properties[filter[1]] <= filter[2]