b82850a0ab80331e6dc0e6d8e15b2390f1fe477e5296e5333b14c1c633422b8957b5595e7efbedc9ad88b3b4c6c43dd7aad09cf506dae567173020f3657f9d 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. 'use strict';
  2. exports.__esModule = true;
  3. exports.stopImmediatePropagation = stopImmediatePropagation;
  4. exports.isImmediatePropagationStopped = isImmediatePropagationStopped;
  5. exports.stopPropagation = stopPropagation;
  6. exports.pageX = pageX;
  7. exports.pageY = pageY;
  8. exports.isRightClick = isRightClick;
  9. exports.isLeftClick = isLeftClick;
  10. var _element = require('./element');
  11. /**
  12. * Prevent other listeners of the same event from being called.
  13. *
  14. * @param {Event} event
  15. */
  16. function stopImmediatePropagation(event) {
  17. event.isImmediatePropagationEnabled = false;
  18. event.cancelBubble = true;
  19. }
  20. /**
  21. * Check if event was stopped by `stopImmediatePropagation`.
  22. *
  23. * @param event {Event}
  24. * @returns {Boolean}
  25. */
  26. function isImmediatePropagationStopped(event) {
  27. return event.isImmediatePropagationEnabled === false;
  28. }
  29. /**
  30. * Prevent further propagation of the current event (prevent bubbling).
  31. *
  32. * @param event {Event}
  33. */
  34. function stopPropagation(event) {
  35. // ie8
  36. // http://msdn.microsoft.com/en-us/library/ie/ff975462(v=vs.85).aspx
  37. if (typeof event.stopPropagation === 'function') {
  38. event.stopPropagation();
  39. } else {
  40. event.cancelBubble = true;
  41. }
  42. }
  43. /**
  44. * Get horizontal coordinate of the event object relative to the whole document.
  45. *
  46. * @param {Event} event
  47. * @returns {Number}
  48. */
  49. function pageX(event) {
  50. if (event.pageX) {
  51. return event.pageX;
  52. }
  53. return event.clientX + (0, _element.getWindowScrollLeft)();
  54. }
  55. /**
  56. * Get vertical coordinate of the event object relative to the whole document.
  57. *
  58. * @param {Event} event
  59. * @returns {Number}
  60. */
  61. function pageY(event) {
  62. if (event.pageY) {
  63. return event.pageY;
  64. }
  65. return event.clientY + (0, _element.getWindowScrollTop)();
  66. }
  67. /**
  68. * Check if provided event was triggered by clicking the right mouse button.
  69. *
  70. * @param {Event} event DOM Event.
  71. * @returns {Boolean}
  72. */
  73. function isRightClick(event) {
  74. return event.button === 2;
  75. }
  76. /**
  77. * Check if provided event was triggered by clicking the left mouse button.
  78. *
  79. * @param {Event} event DOM Event.
  80. * @returns {Boolean}
  81. */
  82. function isLeftClick(event) {
  83. return event.button === 0;
  84. }