abstract_navigatable.js 3.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. exports.AbstractNavigatable = void 0;
  4. var key_navigatable_js_1 = require("./key_navigatable.js");
  5. var mouse_navigatable_js_1 = require("./mouse_navigatable.js");
  6. var AbstractNavigatable = (function () {
  7. function AbstractNavigatable() {
  8. this.bubble = false;
  9. }
  10. AbstractNavigatable.prototype.bubbleKey = function () {
  11. this.bubble = true;
  12. };
  13. AbstractNavigatable.prototype.keydown = function (event) {
  14. switch (event.keyCode) {
  15. case key_navigatable_js_1.KEY.ESCAPE:
  16. this.escape(event);
  17. break;
  18. case key_navigatable_js_1.KEY.RIGHT:
  19. this.right(event);
  20. break;
  21. case key_navigatable_js_1.KEY.LEFT:
  22. this.left(event);
  23. break;
  24. case key_navigatable_js_1.KEY.UP:
  25. this.up(event);
  26. break;
  27. case key_navigatable_js_1.KEY.DOWN:
  28. this.down(event);
  29. break;
  30. case key_navigatable_js_1.KEY.RETURN:
  31. case key_navigatable_js_1.KEY.SPACE:
  32. this.space(event);
  33. break;
  34. default:
  35. return;
  36. }
  37. this.bubble ? this.bubble = false : this.stop(event);
  38. };
  39. AbstractNavigatable.prototype.escape = function (_event) { };
  40. AbstractNavigatable.prototype.space = function (_event) { };
  41. AbstractNavigatable.prototype.left = function (_event) { };
  42. AbstractNavigatable.prototype.right = function (_event) { };
  43. AbstractNavigatable.prototype.up = function (_event) { };
  44. AbstractNavigatable.prototype.down = function (_event) { };
  45. AbstractNavigatable.prototype.stop = function (event) {
  46. if (event) {
  47. event.stopPropagation();
  48. event.preventDefault();
  49. event.cancelBubble = true;
  50. }
  51. };
  52. AbstractNavigatable.prototype.mousedown = function (event) {
  53. return this.stop(event);
  54. };
  55. AbstractNavigatable.prototype.mouseup = function (event) {
  56. return this.stop(event);
  57. };
  58. AbstractNavigatable.prototype.mouseover = function (event) {
  59. return this.stop(event);
  60. };
  61. AbstractNavigatable.prototype.mouseout = function (event) {
  62. return this.stop(event);
  63. };
  64. AbstractNavigatable.prototype.click = function (event) {
  65. return this.stop(event);
  66. };
  67. AbstractNavigatable.prototype.addEvents = function (element) {
  68. element.addEventListener(mouse_navigatable_js_1.MOUSE.DOWN, this.mousedown.bind(this));
  69. element.addEventListener(mouse_navigatable_js_1.MOUSE.UP, this.mouseup.bind(this));
  70. element.addEventListener(mouse_navigatable_js_1.MOUSE.OVER, this.mouseover.bind(this));
  71. element.addEventListener(mouse_navigatable_js_1.MOUSE.OUT, this.mouseout.bind(this));
  72. element.addEventListener(mouse_navigatable_js_1.MOUSE.CLICK, this.click.bind(this));
  73. element.addEventListener('keydown', this.keydown.bind(this));
  74. element.addEventListener('dragstart', this.stop.bind(this));
  75. element.addEventListener(mouse_navigatable_js_1.MOUSE.SELECTSTART, this.stop.bind(this));
  76. element.addEventListener('contextmenu', this.stop.bind(this));
  77. element.addEventListener(mouse_navigatable_js_1.MOUSE.DBLCLICK, this.stop.bind(this));
  78. };
  79. return AbstractNavigatable;
  80. }());
  81. exports.AbstractNavigatable = AbstractNavigatable;
  82. //# sourceMappingURL=abstract_navigatable.js.map