diff --git a/src/base-mixin.js b/src/base-mixin.js index 666b00357..6087f59fe 100644 --- a/src/base-mixin.js +++ b/src/base-mixin.js @@ -74,6 +74,9 @@ dc.baseMixin = function (_chart) { } else if (filters.length === 1 && !filters[0].isFiltered) { // single value and not a function-based filter dimension.filterExact(filters[0]); + } else if (filters.length === 1 && filters[0].filterType==='RangedFilter') { + // single value and not a function-based filter + dimension.filterRange(filters[0]); } else { dimension.filterFunction(function (d) { for (var i = 0; i < filters.length; i++) { diff --git a/src/filters.js b/src/filters.js index 9749e6763..3bc25c7ba 100644 --- a/src/filters.js +++ b/src/filters.js @@ -28,6 +28,7 @@ dc.filters.RangedFilter = function (low, high) { range.isFiltered = function (value) { return value >= this[0] && value < this[1]; }; + range.filterType = 'RangedFilter'; return range; }; @@ -50,6 +51,7 @@ dc.filters.TwoDimensionalFilter = function (filter) { return value.length && value.length === f.length && value[0] === f[0] && value[1] === f[1]; }; + f.filterType = 'TwoDimensionalFilter'; return f; }; @@ -103,6 +105,7 @@ dc.filters.RangedTwoDimensionalFilter = function (filter) { return x >= fromBottomLeft[0][0] && x < fromBottomLeft[1][0] && y >= fromBottomLeft[0][1] && y < fromBottomLeft[1][1]; }; + f.filterType = 'RangedTwoDimensionalFilter'; return f; };