event.js 1.1 KB

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