Sha256: 6b6cd07dbe0ee7c062966bfc97e102f132cd848027dac3daa8824d3080c75aa3

Contents?: true

Size: 1.4 KB

Versions: 25

Compression:

Stored size: 1.4 KB

Contents

d3.dispatch = function() {
  var dispatch = new d3_dispatch(),
      i = -1,
      n = arguments.length;
  while (++i < n) dispatch[arguments[i]] = d3_dispatch_event();
  return dispatch;
};

function d3_dispatch() {}

d3_dispatch.prototype.on = function(type, listener) {
  var i = type.indexOf("."),
      name = "";

  // Extract optional namespace, e.g., "click.foo"
  if (i > 0) {
    name = type.substring(i + 1);
    type = type.substring(0, i);
  }

  return arguments.length < 2
      ? this[type].on(name)
      : (this[type].on(name, listener), this);
};

function d3_dispatch_event() {
  var listeners = [],
      listenerByName = {};

  function dispatch() {
    var z = listeners, // defensive reference
        i = -1,
        n = z.length,
        l;
    while (++i < n) if (l = z[i].on) l.apply(this, arguments);
  }

  dispatch.on = function(name, listener) {
    var l, i;

    // return the current listener, if any
    if (arguments.length < 2) return (l = listenerByName[name]) && l.on;

    // remove the old listener, if any (with copy-on-write)
    if (l = listenerByName[name]) {
      l.on = null;
      listeners = listeners.slice(0, i = listeners.indexOf(l)).concat(listeners.slice(i + 1));
      delete listenerByName[name];
    }

    // add the new listener, if any
    if (listener) {
      listeners.push(listenerByName[name] = {on: listener});
    }

    return dispatch;
  };

  return dispatch;
};

Version data entries

25 entries across 25 versions & 1 rubygems

Version Path
picky-statistics-4.5.0 lib/picky-statistics/application/javascripts/d3/src/core/dispatch.js
picky-statistics-4.4.2 lib/picky-statistics/application/javascripts/d3/src/core/dispatch.js
picky-statistics-4.4.1 lib/picky-statistics/application/javascripts/d3/src/core/dispatch.js
picky-statistics-4.4.0 lib/picky-statistics/application/javascripts/d3/src/core/dispatch.js
picky-statistics-4.3.2 lib/picky-statistics/application/javascripts/d3/src/core/dispatch.js
picky-statistics-4.3.1 lib/picky-statistics/application/javascripts/d3/src/core/dispatch.js
picky-statistics-4.3.0 lib/picky-statistics/application/javascripts/d3/src/core/dispatch.js
picky-statistics-4.2.4 lib/picky-statistics/application/javascripts/d3/src/core/dispatch.js
picky-statistics-4.2.3 lib/picky-statistics/application/javascripts/d3/src/core/dispatch.js
picky-statistics-4.2.2 lib/picky-statistics/application/javascripts/d3/src/core/dispatch.js
picky-statistics-4.2.1 lib/picky-statistics/application/javascripts/d3/src/core/dispatch.js
picky-statistics-4.2.0 lib/picky-statistics/application/javascripts/d3/src/core/dispatch.js
picky-statistics-4.1.0 lib/picky-statistics/application/javascripts/d3/src/core/dispatch.js
picky-statistics-4.0.9 lib/picky-statistics/application/javascripts/d3/src/core/dispatch.js
picky-statistics-4.0.8 lib/picky-statistics/application/javascripts/d3/src/core/dispatch.js
picky-statistics-4.0.7 lib/picky-statistics/application/javascripts/d3/src/core/dispatch.js
picky-statistics-4.0.6 lib/picky-statistics/application/javascripts/d3/src/core/dispatch.js
picky-statistics-4.0.5 lib/picky-statistics/application/javascripts/d3/src/core/dispatch.js
picky-statistics-4.0.4 lib/picky-statistics/application/javascripts/d3/src/core/dispatch.js
picky-statistics-4.0.3 lib/picky-statistics/application/javascripts/d3/src/core/dispatch.js