UNPKG

482 BJavaScriptView Raw
1import { isFunction } from "d3-let";
2
3//
4// Emit a custom event Name up the chain of parent models
5export default function(eventName, data) {
6 var name = "$" + eventName;
7 propagate(this, name, data, this);
8 return this;
9}
10
11function propagate(model, name, data, originModel) {
12 if (!model) return;
13 if (model.hasOwnProperty(name) && isFunction(model[name])) {
14 if (model[name](data, originModel) === false) return;
15 }
16 propagate(model.parent, name, data, originModel);
17}