d3-view
Version:
View-model d3 plugin for building interactive data-driven web interfaces
27 lines (22 loc) • 520 B
JavaScript
import { dispatch } from "d3-dispatch";
import debounce from "../utils/debounce";
export default () => {
let triggered = 0;
const events = dispatch("change");
function change() {
events.apply("change", this, arguments);
triggered += 1;
}
return {
change,
on(typename, callback) {
if (arguments.length < 2) return events.on(typename);
events.on(typename, callback);
return this;
},
trigger: debounce(change),
triggered() {
return triggered;
}
};
};