@gravity-ui/graph
Version:
Modern graph editor component
27 lines (26 loc) • 1.01 kB
JavaScript
export const extractNativeGraphMouseEvent = (event) => {
return event.detail.sourceEvent instanceof MouseEvent ? event.detail.sourceEvent : null;
};
const graphMouseEvents = ["mousedown", "click", "dblclick", "mouseenter", "mousemove", "mouseleave"];
export function isNativeGraphEventName(eventType) {
return graphMouseEvents.includes(eventType);
}
export class GraphEvent extends CustomEvent {
constructor() {
super(...arguments);
this.graphEventDefaultPrevented = false;
this.graphEventPropagationStopped = false;
}
preventGraphEventDefault() {
this.graphEventDefaultPrevented = true;
}
stopGraphEventPropagation() {
this.graphEventPropagationStopped = true;
}
isDefaultPrevented() {
return this.graphEventDefaultPrevented || this.defaultPrevented;
}
}
export function isGraphEvent(event) {
return (event instanceof CustomEvent && "graphEventDefaultPrevented" in event && "graphEventPropagationStopped" in event);
}