import “../core/document”; import “../core/vendor”; import “../selection/on”;

var d3_event_dragSelect = d3_vendorSymbol(d3_documentElement.style, “userSelect”),

d3_event_dragId = 0;

function d3_event_dragSuppress() {

var name = ".dragsuppress-" + ++d3_event_dragId,
    touchmove = "touchmove" + name,
    selectstart = "selectstart" + name,
    dragstart = "dragstart" + name,
    click = "click" + name,
    w = d3.select(d3_window).on(touchmove, d3_eventPreventDefault).on(selectstart, d3_eventPreventDefault).on(dragstart, d3_eventPreventDefault),
    style = d3_documentElement.style,
    select = style[d3_event_dragSelect];
style[d3_event_dragSelect] = "none";
return function(suppressClick) {
  w.on(name, null);
  style[d3_event_dragSelect] = select;
  if (suppressClick) { // suppress the next click, but only if it’s immediate
    function off() { w.on(click, null); }
    w.on(click, function() { d3_eventPreventDefault(); off(); }, true);
    setTimeout(off, 0);
  }
};

}