mirror of
https://github.com/Combodo/iTop.git
synced 2026-02-27 14:14:11 +01:00
51 lines
1.7 KiB
JavaScript
51 lines
1.7 KiB
JavaScript
import "dispatch";
|
|
|
|
d3.event = null;
|
|
|
|
function d3_eventPreventDefault() {
|
|
d3.event.preventDefault();
|
|
}
|
|
|
|
function d3_eventSource() {
|
|
var e = d3.event, s;
|
|
while (s = e.sourceEvent) e = s;
|
|
return e;
|
|
}
|
|
|
|
// Like d3.dispatch, but for custom events abstracting native UI events. These
|
|
// events have a target component (such as a brush), a target element (such as
|
|
// the svg:g element containing the brush) and the standard arguments `d` (the
|
|
// target element's data) and `i` (the selection index of the target element).
|
|
function d3_eventDispatch(target) {
|
|
var dispatch = new d3_dispatch,
|
|
i = 0,
|
|
n = arguments.length;
|
|
|
|
while (++i < n) dispatch[arguments[i]] = d3_dispatch_event(dispatch);
|
|
|
|
// Creates a dispatch context for the specified `thiz` (typically, the target
|
|
// DOM element that received the source event) and `argumentz` (typically, the
|
|
// data `d` and index `i` of the target element). The returned function can be
|
|
// used to dispatch an event to any registered listeners; the function takes a
|
|
// single argument as input, being the event to dispatch. The event must have
|
|
// a "type" attribute which corresponds to a type registered in the
|
|
// constructor. This context will automatically populate the "sourceEvent" and
|
|
// "target" attributes of the event, as well as setting the `d3.event` global
|
|
// for the duration of the notification.
|
|
dispatch.of = function(thiz, argumentz) {
|
|
return function(e1) {
|
|
try {
|
|
var e0 =
|
|
e1.sourceEvent = d3.event;
|
|
e1.target = target;
|
|
d3.event = e1;
|
|
dispatch[e1.type].apply(thiz, argumentz);
|
|
} finally {
|
|
d3.event = e0;
|
|
}
|
|
};
|
|
};
|
|
|
|
return dispatch;
|
|
}
|