UNPKG

mj-context-menu

Version:
77 lines 2.34 kB
import { KEY } from './key_navigatable.js'; import { MOUSE } from './mouse_navigatable.js'; export class AbstractNavigatable { constructor() { this.bubble = false; } bubbleKey() { this.bubble = true; } keydown(event) { switch (event.keyCode) { case KEY.ESCAPE: this.escape(event); break; case KEY.RIGHT: this.right(event); break; case KEY.LEFT: this.left(event); break; case KEY.UP: this.up(event); break; case KEY.DOWN: this.down(event); break; case KEY.RETURN: case KEY.SPACE: this.space(event); break; default: return; } this.bubble ? (this.bubble = false) : this.stop(event); } escape(_event) { } space(_event) { } left(_event) { } right(_event) { } up(_event) { } down(_event) { } stop(event) { if (event) { event.stopPropagation(); event.preventDefault(); event.cancelBubble = true; } } mousedown(event) { return this.stop(event); } mouseup(event) { return this.stop(event); } mouseover(event) { return this.stop(event); } mouseout(event) { return this.stop(event); } click(event) { return this.stop(event); } addEvents(element) { element.addEventListener(MOUSE.DOWN, this.mousedown.bind(this)); element.addEventListener(MOUSE.UP, this.mouseup.bind(this)); element.addEventListener(MOUSE.OVER, this.mouseover.bind(this)); element.addEventListener(MOUSE.OUT, this.mouseout.bind(this)); element.addEventListener(MOUSE.CLICK, this.click.bind(this)); element.addEventListener('keydown', this.keydown.bind(this)); element.addEventListener('dragstart', this.stop.bind(this)); element.addEventListener(MOUSE.SELECTSTART, this.stop.bind(this)); element.addEventListener('contextmenu', this.stop.bind(this)); element.addEventListener(MOUSE.DBLCLICK, this.stop.bind(this)); } } //# sourceMappingURL=abstract_navigatable.js.map