()
| 1237 | var target = this, event_ = event.of(target, arguments), locations0, distance0 = 0, scale0, w = d3.select(d3_window).on(touchmove, moved).on(touchend, ended), t = d3.select(target).on(mousedown, null).on(touchstart, started), dragRestore = d3_event_dragSuppress(); |
| 1238 | started(); |
| 1239 | function relocate() { |
| 1240 | var touches = d3.touches(target); |
| 1241 | scale0 = scale; |
| 1242 | locations0 = {}; |
| 1243 | touches.forEach(function(t) { |
| 1244 | locations0[t.identifier] = location(t); |
| 1245 | }); |
| 1246 | return touches; |
| 1247 | } |
| 1248 | function started() { |
| 1249 | var now = Date.now(), touches = relocate(); |
| 1250 | if (touches.length === 1) { |