@@ -6,18 +6,14 @@ import { define_property, is_array } from '../../utils.js';
6
6
* @param {string } event_name
7
7
* @param {Element } dom
8
8
* @param {EventListener } handler
9
- * @param {boolean } capture
10
- * @param {boolean } [passive]
11
- * @returns {void }
9
+ * @param {AddEventListenerOptions } options
12
10
*/
13
- export function event ( event_name , dom , handler , capture , passive ) {
14
- var options = { capture, passive } ;
15
-
11
+ export function create_event ( event_name , dom , handler , options ) {
16
12
/**
17
13
* @this {EventTarget}
18
14
*/
19
15
function target_handler ( /** @type {Event } */ event ) {
20
- if ( ! capture ) {
16
+ if ( ! options . capture ) {
21
17
// Only call in the bubble phase, else delegated events would be called before the capturing events
22
18
handle_event_propagation ( dom , event ) ;
23
19
}
@@ -28,6 +24,21 @@ export function event(event_name, dom, handler, capture, passive) {
28
24
29
25
dom . addEventListener ( event_name , target_handler , options ) ;
30
26
27
+ return target_handler ;
28
+ }
29
+
30
+ /**
31
+ * @param {string } event_name
32
+ * @param {Element } dom
33
+ * @param {EventListener } handler
34
+ * @param {boolean } capture
35
+ * @param {boolean } [passive]
36
+ * @returns {void }
37
+ */
38
+ export function event ( event_name , dom , handler , capture , passive ) {
39
+ var options = { capture, passive } ;
40
+ var target_handler = create_event ( event_name , dom , handler , options ) ;
41
+
31
42
// @ts -ignore
32
43
if ( dom === document . body || dom === window || dom === document ) {
33
44
render_effect ( ( ) => {
0 commit comments