mirror of
https://github.com/FoggedLens/iD.git
synced 2026-02-13 17:23:02 +00:00
41 lines
955 B
JavaScript
41 lines
955 B
JavaScript
import * as d3 from 'd3';
|
|
import { d3keybinding } from '../lib/d3.keybinding.js';
|
|
|
|
|
|
/* Creates a keybinding behavior for an operation */
|
|
export function behaviorOperation(context) {
|
|
var which, keybinding;
|
|
|
|
|
|
var behavior = function () {
|
|
if (which) {
|
|
keybinding = d3keybinding('behavior.key.' + which.id);
|
|
keybinding.on(which.keys, function() {
|
|
d3.event.preventDefault();
|
|
if (which.available() && !which.disabled() && !context.inIntro()) {
|
|
which();
|
|
}
|
|
});
|
|
d3.select(document).call(keybinding);
|
|
}
|
|
return behavior;
|
|
};
|
|
|
|
|
|
behavior.off = function() {
|
|
if (keybinding) {
|
|
d3.select(document).call(keybinding.off);
|
|
}
|
|
};
|
|
|
|
|
|
behavior.which = function (_) {
|
|
if (!arguments.length) return which;
|
|
which = _;
|
|
return behavior;
|
|
};
|
|
|
|
|
|
return behavior;
|
|
}
|