1. /**
    
  2.  * Copyright (c) Meta Platforms, Inc. and affiliates.
    
  3.  *
    
  4.  * This source code is licensed under the MIT license found in the
    
  5.  * LICENSE file in the root directory of this source tree.
    
  6.  *
    
  7.  * @flow
    
  8.  */
    
  9. 
    
  10. export function addEventBubbleListener(
    
  11.   target: EventTarget,
    
  12.   eventType: string,
    
  13.   listener: Function,
    
  14. ): Function {
    
  15.   target.addEventListener(eventType, listener, false);
    
  16.   return listener;
    
  17. }
    
  18. 
    
  19. export function addEventCaptureListener(
    
  20.   target: EventTarget,
    
  21.   eventType: string,
    
  22.   listener: Function,
    
  23. ): Function {
    
  24.   target.addEventListener(eventType, listener, true);
    
  25.   return listener;
    
  26. }
    
  27. 
    
  28. export function addEventCaptureListenerWithPassiveFlag(
    
  29.   target: EventTarget,
    
  30.   eventType: string,
    
  31.   listener: Function,
    
  32.   passive: boolean,
    
  33. ): Function {
    
  34.   target.addEventListener(eventType, listener, {
    
  35.     capture: true,
    
  36.     passive,
    
  37.   });
    
  38.   return listener;
    
  39. }
    
  40. 
    
  41. export function addEventBubbleListenerWithPassiveFlag(
    
  42.   target: EventTarget,
    
  43.   eventType: string,
    
  44.   listener: Function,
    
  45.   passive: boolean,
    
  46. ): Function {
    
  47.   target.addEventListener(eventType, listener, {
    
  48.     passive,
    
  49.   });
    
  50.   return listener;
    
  51. }
    
  52. 
    
  53. export function removeEventListener(
    
  54.   target: EventTarget,
    
  55.   eventType: string,
    
  56.   listener: Function,
    
  57.   capture: boolean,
    
  58. ): void {
    
  59.   target.removeEventListener(eventType, listener, capture);
    
  60. }