From cf09bf76ceed90346e23e70815e9b2a99bc21137 Mon Sep 17 00:00:00 2001 From: Alex Ford Date: Thu, 11 Jun 2015 16:09:10 -0400 Subject: [PATCH] Liberalize type of d3.event. Addresses #4590. --- d3/d3-tests.ts | 19 ++++++++++++++++--- d3/d3.d.ts | 8 +++++++- 2 files changed, 23 insertions(+), 4 deletions(-) diff --git a/d3/d3-tests.ts b/d3/d3-tests.ts index 5db3528f5f..a0c2d03120 100644 --- a/d3/d3-tests.ts +++ b/d3/d3-tests.ts @@ -873,7 +873,7 @@ function populationPyramid() { // Allow the arrow keys to change the displayed year. window.focus(); d3.select(window).on("keydown", function () { - switch (( d3.event).keyCode) { + switch (d3.event.keyCode) { case 37: year = Math.max(year0, year - 10); break; case 39: year = Math.min(year1, year + 10); break; } @@ -1291,12 +1291,12 @@ function forceDirectedVoronoi() { d3.select(window) .on("keydown", function() { // shift - if(( d3.event).keyCode == 16) { + if(d3.event.keyCode == 16) { zoomToAdd = false } // s - if(( d3.event).keyCode == 83) { + if(d3.event.keyCode == 83) { simulate = !simulate if(simulate) { force.start() @@ -2665,3 +2665,16 @@ function multiTest() { .attr("transform", "translate(0," + height + ")") .call(xAxis); } + +function testD3Events () { + d3.select('svg') + .on('click', () => { + var coords = [d3.event.pageX, d3.event.pageY]; + console.log("clicked", d3.event.target, "at " + coords); + }) + .on('keypress', () => { + if (d3.event.shiftKey) { + console.log('shift + ' + d3.event.which); + } + }); +} \ No newline at end of file diff --git a/d3/d3.d.ts b/d3/d3.d.ts index 2fa1493b7f..be329db811 100644 --- a/d3/d3.d.ts +++ b/d3/d3.d.ts @@ -918,7 +918,13 @@ declare module d3 { } /** - * The current event's value. Use this variable in a handler registered with selection.on. + * Interface for any and all d3 events. + */ + interface Event extends KeyboardEvent, MouseEvent { + } + + /** + * The current event's value. Use this variable in a handler registered with `selection.on`. */ export var event: Event;