UNPKG

520 BJavaScriptView Raw
1import { dispatch } from "d3-dispatch";
2import debounce from "../utils/debounce";
3
4export default () => {
5 let triggered = 0;
6
7 const events = dispatch("change");
8
9 function change() {
10 events.apply("change", this, arguments);
11 triggered += 1;
12 }
13
14 return {
15 change,
16 on(typename, callback) {
17 if (arguments.length < 2) return events.on(typename);
18 events.on(typename, callback);
19 return this;
20 },
21 trigger: debounce(change),
22 triggered() {
23 return triggered;
24 }
25 };
26};