event.js 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. "use strict";
  2. exports.__esModule = true;
  3. exports.on = on;
  4. exports.off = off;
  5. exports.stopPropagation = stopPropagation;
  6. exports.preventDefault = preventDefault;
  7. exports.supportsPassive = void 0;
  8. var _ = require(".");
  9. /* eslint-disable no-empty */
  10. /* eslint-disable getter-return */
  11. /* eslint-disable import/no-mutable-exports */
  12. var supportsPassive = false;
  13. exports.supportsPassive = supportsPassive;
  14. if (!_.isServer) {
  15. try {
  16. var opts = {};
  17. Object.defineProperty(opts, 'passive', {
  18. get: function get() {
  19. /* istanbul ignore next */
  20. exports.supportsPassive = supportsPassive = true;
  21. }
  22. });
  23. window.addEventListener('test-passive', null, opts);
  24. } catch (e) {}
  25. }
  26. function on(target, event, handler, passive) {
  27. if (passive === void 0) {
  28. passive = false;
  29. }
  30. if (!_.isServer) {
  31. target.addEventListener(event, handler, supportsPassive ? {
  32. capture: false,
  33. passive: passive
  34. } : false);
  35. }
  36. }
  37. function off(target, event, handler) {
  38. if (!_.isServer) {
  39. target.removeEventListener(event, handler);
  40. }
  41. }
  42. function stopPropagation(event) {
  43. event.stopPropagation();
  44. }
  45. function preventDefault(event, isStopPropagation) {
  46. /* istanbul ignore else */
  47. if (typeof event.cancelable !== 'boolean' || event.cancelable) {
  48. event.preventDefault();
  49. }
  50. if (isStopPropagation) {
  51. stopPropagation(event);
  52. }
  53. }