| 19904 | } |
| 19905 | |
| 19906 | function dblclicked(event, ...args) { |
| 19907 | if (!filter.apply(this, arguments)) return; |
| 19908 | var t0 = this.__zoom, |
| 19909 | p0 = pointer(event.changedTouches ? event.changedTouches[0] : event, this), |
| 19910 | p1 = t0.invert(p0), |
| 19911 | k1 = t0.k * (event.shiftKey ? 0.5 : 2), |
| 19912 | t1 = constrain(translate(scale(t0, k1), p0, p1), extent.apply(this, args), translateExtent); |
| 19913 | |
| 19914 | noevent(event); |
| 19915 | if (duration > 0) select(this).transition().duration(duration).call(schedule, t1, p0, event); |
| 19916 | else select(this).call(zoom.transform, t1, p0, event); |
| 19917 | } |
| 19918 | |
| 19919 | function touchstarted(event, ...args) { |
| 19920 | if (!filter.apply(this, arguments)) return; |