UNPKG

5.54 kBPlain TextView Raw
1// ================================================================= //
2// Copyright (c) roydukkey. All rights reserved. //
3// ================================================================= //
4
5import { remove } from './support/store';
6
7
8/**
9 * Detach all event listeners of the specified event types from the given target.
10 *
11 * @param target - The target from which the event listener is detached.
12 * @param types - A case-sensitive string representing the {@link https://developer.mozilla.org/en-US/docs/Web/Events|event type}s to detach.
13 *
14 * @returns `true` when successfully detached at least one listener; otherwise, `false`.
15 */
16export function off (target: EventTarget, types: string): boolean;
17
18
19/**
20 * Detach an event listener of the specified event types from the given target.
21 *
22 * @param target - The target from which the event listener is detached.
23 * @param types - A case-sensitive string representing the {@link https://developer.mozilla.org/en-US/docs/Web/Events|event type}s to detach.
24 * @param listener - The {@link https://developer.mozilla.org/en-US/docs/Web/API/EventListener|event listener} to detach from the event target.
25 * @param useCapture - Whether or not the EventListener to be detached is registered as a capturing listener.
26 *
27 * @returns `true` when successfully detached at least one listener; otherwise, `false`.
28 */
29export function off (target: EventTarget, types: string, listener: EventListenerOrEventListenerObject | null, useCapture?: boolean): boolean;
30
31
32/**
33 * Detach an event listener of the specified event types from the given target.
34 *
35 * @param target - The target from which the event listener is detached.
36 * @param types - A case-sensitive string representing the {@link https://developer.mozilla.org/en-US/docs/Web/Events|event type}s to detach.
37 * @param listener - The {@link https://developer.mozilla.org/en-US/docs/Web/API/EventListener|event listener} to detach from the event target.
38 * @param options - An {@link https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/removeEventListener#parameters|options object} specifying characteristics about the event listener.
39 *
40 * @returns `true` when successfully detached at least one listener; otherwise, `false`.
41 */
42export function off (target: EventTarget, types: string, listener: EventListenerOrEventListenerObject | null, options: EventListenerOptions): boolean;
43
44
45/**
46 * Detach all event listeners of the specified event types from the given node for the specified selector.
47 *
48 * @param node - The node from which the event listener is detached.
49 * @param selector - A selector which should match the one used when attaching event listeners.
50 * @param types - A case-sensitive string representing the {@link https://developer.mozilla.org/en-US/docs/Web/Events|event type}s to detach.
51 *
52 * @returns `true` when successfully detached at least one listener; otherwise, `false`.
53 */
54export function off (node: Node, selector: string, types: string): boolean;
55
56
57/**
58 * Detach an event listener of the specified event types from the given node for the specified selector.
59 *
60 * @param node - The node from which the event listener is detached.
61 * @param selector - A selector which should match the one used when attaching event listeners.
62 * @param types - A case-sensitive string representing the {@link https://developer.mozilla.org/en-US/docs/Web/Events|event type}s to detach.
63 * @param listener - The {@link https://developer.mozilla.org/en-US/docs/Web/API/EventListener|event listener} to detach from the event target.
64 * @param useCapture - Whether or not the EventListener to be detached is registered as a capturing listener.
65 *
66 * @returns `true` when successfully detached at least one listener; otherwise, `false`.
67 */
68export function off (node: Node, selector: string, types: string, listener: EventListenerOrEventListenerObject | null, useCapture?: boolean): boolean;
69
70
71/**
72 * Detach an event listener of the specified event types from the given node for the specified selector.
73 *
74 * @param node - The node from which the event listener is detached.
75 * @param selector - A selector which should match the one used when attaching event listeners.
76 * @param types - A case-sensitive string representing the {@link https://developer.mozilla.org/en-US/docs/Web/Events|event type}s to detach.
77 * @param listener - The {@link https://developer.mozilla.org/en-US/docs/Web/API/EventListener|event listener} to detach from the event target.
78 * @param options - An {@link https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/removeEventListener#parameters|options object} specifying characteristics about the event listener.
79 *
80 * @returns `true` when successfully detached at least one listener; otherwise, `false`.
81 */
82export function off (node: Node, selector: string, types: string, listener: EventListenerOrEventListenerObject | null, options: EventListenerOptions): boolean;
83
84
85/**
86 * @internal
87 */
88export function off (
89 target: EventTarget,
90 selector: string,
91 types?: string | EventListenerOrEventListenerObject | null,
92 listener?: boolean | EventListenerOptions | EventListenerOrEventListenerObject | null,
93 options?: boolean | EventListenerOptions
94): boolean {
95
96 if (typeof types === 'string') {
97 return remove(target, selector, types, listener as EventListenerOrEventListenerObject | null, options);
98 }
99
100 return remove(target, null, selector as string, types as EventListenerOrEventListenerObject | null, listener as EventListenerOptions | boolean | undefined);
101
102}