aboutsummaryrefslogtreecommitdiffhomepage
path: root/public/bower_components/jquery-sparkline/src/rangemap.js
diff options
context:
space:
mode:
Diffstat (limited to 'public/bower_components/jquery-sparkline/src/rangemap.js')
-rw-r--r--public/bower_components/jquery-sparkline/src/rangemap.js39
1 files changed, 39 insertions, 0 deletions
diff --git a/public/bower_components/jquery-sparkline/src/rangemap.js b/public/bower_components/jquery-sparkline/src/rangemap.js
new file mode 100644
index 0000000..9aaf3bb
--- /dev/null
+++ b/public/bower_components/jquery-sparkline/src/rangemap.js
@@ -0,0 +1,39 @@
+ $.RangeMapClass = RangeMap = createClass({
+ init: function (map) {
+ var key, range, rangelist = [];
+ for (key in map) {
+ if (map.hasOwnProperty(key) && typeof key === 'string' && key.indexOf(':') > -1) {
+ range = key.split(':');
+ range[0] = range[0].length === 0 ? -Infinity : parseFloat(range[0]);
+ range[1] = range[1].length === 0 ? Infinity : parseFloat(range[1]);
+ range[2] = map[key];
+ rangelist.push(range);
+ }
+ }
+ this.map = map;
+ this.rangelist = rangelist || false;
+ },
+
+ get: function (value) {
+ var rangelist = this.rangelist,
+ i, range, result;
+ if ((result = this.map[value]) !== undefined) {
+ return result;
+ }
+ if (rangelist) {
+ for (i = rangelist.length; i--;) {
+ range = rangelist[i];
+ if (range[0] <= value && range[1] >= value) {
+ return range[2];
+ }
+ }
+ }
+ return undefined;
+ }
+ });
+
+ // Convenience function
+ $.range_map = function(map) {
+ return new RangeMap(map);
+ };
+