Feature #162: Added Rickshaw graphs to most panes of statistics. Needs a little tidying for clarity.
[ckanext-ga-report.git] / ckanext / ga_report / public / scripts / vendor / d3.v2.js
blob:a/ckanext/ga_report/public/scripts/vendor/d3.v2.js -> blob:b/ckanext/ga_report/public/scripts/vendor/d3.v2.js
  (function() {
  function d3_class(ctor, properties) {
  try {
  for (var key in properties) {
  Object.defineProperty(ctor.prototype, key, {
  value: properties[key],
  enumerable: false
  });
  }
  } catch (e) {
  ctor.prototype = properties;
  }
  }
  function d3_arrayCopy(pseudoarray) {
  var i = -1, n = pseudoarray.length, array = [];
  while (++i < n) array.push(pseudoarray[i]);
  return array;
  }
  function d3_arraySlice(pseudoarray) {
  return Array.prototype.slice.call(pseudoarray);
  }
  function d3_Map() {}
  function d3_identity(d) {
  return d;
  }
  function d3_this() {
  return this;
  }
  function d3_true() {
  return true;
  }
  function d3_functor(v) {
  return typeof v === "function" ? v : function() {
  return v;
  };
  }
  function d3_rebind(target, source, method) {
  return function() {
  var value = method.apply(source, arguments);
  return arguments.length ? target : value;
  };
  }
  function d3_number(x) {
  return x != null && !isNaN(x);
  }
  function d3_zipLength(d) {
  return d.length;
  }
  function d3_splitter(d) {
  return d == null;
  }
  function d3_collapse(s) {
  return s.trim().replace(/\s+/g, " ");
  }
  function d3_range_integerScale(x) {
  var k = 1;
  while (x * k % 1) k *= 10;
  return k;
  }
  function d3_dispatch() {}
  function d3_dispatch_event(dispatch) {
  function event() {
  var z = listeners, i = -1, n = z.length, l;
  while (++i < n) if (l = z[i].on) l.apply(this, arguments);
  return dispatch;
  }
  var listeners = [], listenerByName = new d3_Map;
  event.on = function(name, listener) {
  var l = listenerByName.get(name), i;
  if (arguments.length < 2) return l && l.on;
  if (l) {
  l.on = null;
  listeners = listeners.slice(0, i = listeners.indexOf(l)).concat(listeners.slice(i + 1));
  listenerByName.remove(name);
  }
  if (listener) listeners.push(listenerByName.set(name, {
  on: listener
  }));
  return dispatch;
  };
  return event;
  }
  function d3_format_precision(x, p) {
  return p - (x ? 1 + Math.floor(Math.log(x + Math.pow(10, 1 + Math.floor(Math.log(x) / Math.LN10) - p)) / Math.LN10) : 1);
  }
  function d3_format_typeDefault(x) {
  return x + "";
  }
  function d3_format_group(value) {
  var i = value.lastIndexOf("."), f = i >= 0 ? value.substring(i) : (i = value.length, ""), t = [];
  while (i > 0) t.push(value.substring(i -= 3, i + 3));
  return t.reverse().join(",") + f;
  }
  function d3_formatPrefix(d, i) {
  var k = Math.pow(10, Math.abs(8 - i) * 3);
  return {
  scale: i > 8 ? function(d) {
  return d / k;
  } : function(d) {
  return d * k;
  },
  symbol: d
  };
  }
  function d3_ease_clamp(f) {
  return function(t) {
  return t <= 0 ? 0 : t >= 1 ? 1 : f(t);
  };
  }
  function d3_ease_reverse(f) {
  return function(t) {
  return 1 - f(1 - t);
  };
  }
  function d3_ease_reflect(f) {
  return function(t) {
  return .5 * (t < .5 ? f(2 * t) : 2 - f(2 - 2 * t));
  };
  }
  function d3_ease_identity(t) {
  return t;
  }
  function d3_ease_poly(e) {
  return function(t) {
  return Math.pow(t, e);
  };
  }
  function d3_ease_sin(t) {
  return 1 - Math.cos(t * Math.PI / 2);
  }
  function d3_ease_exp(t) {
  return Math.pow(2, 10 * (t - 1));
  }
  function d3_ease_circle(t) {
  return 1 - Math.sqrt(1 - t * t);
  }
  function d3_ease_elastic(a, p) {
  var s;
  if (arguments.length < 2) p = .45;
  if (arguments.length < 1) {
  a = 1;
  s = p / 4;
  } else s = p / (2 * Math.PI) * Math.asin(1 / a);
  return function(t) {
  return 1 + a * Math.pow(2, 10 * -t) * Math.sin((t - s) * 2 * Math.PI / p);
  };
  }
  function d3_ease_back(s) {
  if (!s) s = 1.70158;
  return function(t) {
  return t * t * ((s + 1) * t - s);
  };
  }
  function d3_ease_bounce(t) {
  return t < 1 / 2.75 ? 7.5625 * t * t : t < 2 / 2.75 ? 7.5625 * (t -= 1.5 / 2.75) * t + .75 : t < 2.5 / 2.75 ? 7.5625 * (t -= 2.25 / 2.75) * t + .9375 : 7.5625 * (t -= 2.625 / 2.75) * t + .984375;
  }
  function d3_eventCancel() {
  d3.event.stopPropagation();
  d3.event.preventDefault();
  }
  function d3_eventSource() {
  var e = d3.event, s;
  while (s = e.sourceEvent) e = s;
  return e;
  }
  function d3_eventDispatch(target) {
  var dispatch = new d3_dispatch, i = 0, n = arguments.length;
  while (++i < n) dispatch[arguments[i]] = d3_dispatch_event(dispatch);
  dispatch.of = function(thiz, argumentz) {
  return function(e1) {
  try {
  var e0 = e1.sourceEvent = d3.event;
  e1.target = target;
  d3.event = e1;
  dispatch[e1.type].apply(thiz, argumentz);
  } finally {
  d3.event = e0;
  }
  };
  };
  return dispatch;
  }
  function d3_transform(m) {
  var r0 = [ m.a, m.b ], r1 = [ m.c, m.d ], kx = d3_transformNormalize(r0), kz = d3_transformDot(r0, r1), ky = d3_transformNormalize(d3_transformCombine(r1, r0, -kz)) || 0;
  if (r0[0] * r1[1] < r1[0] * r0[1]) {
  r0[0] *= -1;
  r0[1] *= -1;
  kx *= -1;
  kz *= -1;
  }
  this.rotate = (kx ? Math.atan2(r0[1], r0[0]) : Math.atan2(-r1[0], r1[1])) * d3_transformDegrees;
  this.translate = [ m.e, m.f ];
  this.scale = [ kx, ky ];
  this.skew = ky ? Math.atan2(kz, ky) * d3_transformDegrees : 0;
  }
  function d3_transformDot(a, b) {
  return a[0] * b[0] + a[1] * b[1];
  }
  function d3_transformNormalize(a) {
  var k = Math.sqrt(d3_transformDot(a, a));
  if (k) {
  a[0] /= k;
  a[1] /= k;
  }
  return k;
  }
  function d3_transformCombine(a, b, k) {
  a[0] += k * b[0];
  a[1] += k * b[1];
  return a;
  }
  function d3_interpolateByName(name) {
  return name == "transform" ? d3.interpolateTransform : d3.interpolate;
  }
  function d3_uninterpolateNumber(a, b) {
  b = b - (a = +a) ? 1 / (b - a) : 0;
  return function(x) {
  return (x - a) * b;
  };
  }
  function d3_uninterpolateClamp(a, b) {
  b = b - (a = +a) ? 1 / (b - a) : 0;
  return function(x) {
  return Math.max(0, Math.min(1, (x - a) * b));
  };
  }
  function d3_Color() {}
  function d3_rgb(r, g, b) {
  return new d3_Rgb(r, g, b);
  }
  function d3_Rgb(r, g, b) {
  this.r = r;
  this.g = g;
  this.b = b;
  }
  function d3_rgb_hex(v) {
  return v < 16 ? "0" + Math.max(0, v).toString(16) : Math.min(255, v).toString(16);
  }
  function d3_rgb_parse(format, rgb, hsl) {
  var r = 0, g = 0, b = 0, m1, m2, name;
  m1 = /([a-z]+)\((.*)\)/i.exec(format);
  if (m1) {
  m2 = m1[2].split(",");
  switch (m1[1]) {
  case "hsl":
  {
  return hsl(parseFloat(m2[0]), parseFloat(m2[1]) / 100, parseFloat(m2[2]) / 100);
  }
  case "rgb":
  {
  return rgb(d3_rgb_parseNumber(m2[0]), d3_rgb_parseNumber(m2[1]), d3_rgb_parseNumber(m2[2]));
  }
  }
  }
  if (name = d3_rgb_names.get(format)) return rgb(name.r, name.g, name.b);
  if (format != null && format.charAt(0) === "#") {
  if (format.length === 4) {
  r = format.charAt(1);
  r += r;
  g = format.charAt(2);
  g += g;
  b = format.charAt(3);
  b += b;
  } else if (format.length === 7) {
  r = format.substring(1, 3);
  g = format.substring(3, 5);
  b = format.substring(5, 7);
  }
  r = parseInt(r, 16);
  g = parseInt(g, 16);
  b = parseInt(b, 16);
  }
  return rgb(r, g, b);
  }
  function d3_rgb_hsl(r, g, b) {
  var min = Math.min(r /= 255, g /= 255, b /= 255), max = Math.max(r, g, b), d = max - min, h, s, l = (max + min) / 2;
  if (d) {
  s = l < .5 ? d / (max + min) : d / (2 - max - min);
  if (r == max) h = (g - b) / d + (g < b ? 6 : 0); else if (g == max) h = (b - r) / d + 2; else h = (r - g) / d + 4;
  h *= 60;
  } else {
  s = h = 0;
  }
  return d3_hsl(h, s, l);
  }
  function d3_rgb_lab(r, g, b) {
  r = d3_rgb_xyz(r);
  g = d3_rgb_xyz(g);
  b = d3_rgb_xyz(b);
  var x = d3_xyz_lab((.4124564 * r + .3575761 * g + .1804375 * b) / d3_lab_X), y = d3_xyz_lab((.2126729 * r + .7151522 * g + .072175 * b) / d3_lab_Y), z = d3_xyz_lab((.0193339 * r + .119192 * g + .9503041 * b) / d3_lab_Z);
  return d3_lab(116 * y - 16, 500 * (x - y), 200 * (y - z));
  }
  function d3_rgb_xyz(r) {
  return (r /= 255) <= .04045 ? r / 12.92 : Math.pow((r + .055) / 1.055, 2.4);
  }
  function d3_rgb_parseNumber(c) {
  var f = parseFloat(c);
  return c.charAt(c.length - 1) === "%" ? Math.round(f * 2.55) : f;
  }
  function d3_hsl(h, s, l) {
  return new d3_Hsl(h, s, l);
  }
  function d3_Hsl(h, s, l) {
  this.h = h;
  this.s = s;
  this.l = l;
  }
  function d3_hsl_rgb(h, s, l) {
  function v(h) {
  if (h > 360) h -= 360; else if (h < 0) h += 360;
  if (h < 60) return m1 + (m2 - m1) * h / 60;
  if (h < 180) return m2;
  if (h < 240) return m1 + (m2 - m1) * (240 - h) / 60;
  return m1;
  }
  function vv(h) {
  return Math.round(v(h) * 255);
  }
  var m1, m2;
  h = h % 360;
  if (h < 0) h += 360;
  s = s < 0 ? 0 : s > 1 ? 1 : s;
  l = l < 0 ? 0 : l > 1 ? 1 : l;
  m2 = l <= .5 ? l * (1 + s) : l + s - l * s;
  m1 = 2 * l - m2;
  return d3_rgb(vv(h + 120), vv(h), vv(h - 120));
  }
  function d3_hcl(h, c, l) {
  return new d3_Hcl(h, c, l);
  }
  function d3_Hcl(h, c, l) {
  this.h = h;
  this.c = c;
  this.l = l;
  }
  function d3_hcl_lab(h, c, l) {
  return d3_lab(l, Math.cos(h *= Math.PI / 180) * c, Math.sin(h) * c);
  }
  function d3_lab(l, a, b) {
  return new d3_Lab(l, a, b);
  }
  function d3_Lab(l, a, b) {
  this.l = l;
  this.a = a;
  this.b = b;
  }
  function d3_lab_rgb(l, a, b) {
  var y = (l + 16) / 116, x = y + a / 500, z = y - b / 200;
  x = d3_lab_xyz(x) * d3_lab_X;
  y = d3_lab_xyz(y) * d3_lab_Y;
  z = d3_lab_xyz(z) * d3_lab_Z;
  return d3_rgb(d3_xyz_rgb(3.2404542 * x - 1.5371385 * y - .4985314 * z), d3_xyz_rgb(-.969266 * x + 1.8760108 * y + .041556 * z), d3_xyz_rgb(.0556434 * x - .2040259 * y + 1.0572252 * z));
  }
  function d3_lab_hcl(l, a, b) {
  return d3_hcl(Math.atan2(b, a) / Math.PI * 180, Math.sqrt(a * a + b * b), l);
  }
  function d3_lab_xyz(x) {
  return x > .206893034 ? x * x * x : (x - 4 / 29) / 7.787037;
  }
  function d3_xyz_lab(x) {
  return x > .008856 ? Math.pow(x, 1 / 3) : 7.787037 * x + 4 / 29;
  }
  function d3_xyz_rgb(r) {
  return Math.round(255 * (r <= .00304 ? 12.92 * r : 1.055 * Math.pow(r, 1 / 2.4) - .055));
  }
  function d3_selection(groups) {
  d3_arraySubclass(groups, d3_selectionPrototype);
  return groups;
  }
  function d3_selection_selector(selector) {
  return function() {
  return d3_select(selector, this);
  };
  }
  function d3_selection_selectorAll(selector) {
  return function() {
  return d3_selectAll(selector, this);
  };
  }
  function d3_selection_attr(name, value) {
  function attrNull() {
  this.removeAttribute(name);
  }
  function attrNullNS() {