d3-view
Version:
View-model d3 plugin for building interactive data-driven web interfaces
18 lines (15 loc) • 482 B
JavaScript
import { isFunction } from "d3-let";
//
// Emit a custom event Name up the chain of parent models
export default function(eventName, data) {
var name = "$" + eventName;
propagate(this, name, data, this);
return this;
}
function propagate(model, name, data, originModel) {
if (!model) return;
if (model.hasOwnProperty(name) && isFunction(model[name])) {
if (model[name](data, originModel) === false) return;
}
propagate(model.parent, name, data, originModel);
}