1 | import { isFunction } from "d3-let";
|
2 |
|
3 | //
|
4 | // Emit a custom event Name up the chain of parent models
|
5 | export default function(eventName, data) {
|
6 | var name = "$" + eventName;
|
7 | propagate(this, name, data, this);
|
8 | return this;
|
9 | }
|
10 |
|
11 | function 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 | }
|