1
1
import AbstractEvent from 'shared/AbstractEvent' ;
2
2
3
+ import { DragEvent , DragEventData } from '../../../Draggable/DragEvent' ;
4
+
5
+ interface CollidableEventData {
6
+ dragEvent : DragEvent < DragEventData > ;
7
+ }
8
+
3
9
/**
4
10
* Base collidable event
5
11
* @class CollidableEvent
6
12
* @module CollidableEvent
7
13
* @extends AbstractEvent
8
14
*/
9
- export class CollidableEvent extends AbstractEvent {
15
+ export class CollidableEvent <
16
+ T extends CollidableEventData ,
17
+ > extends AbstractEvent < CollidableEventData > {
10
18
static type = 'collidable' ;
11
19
20
+ /**
21
+ * CollidableEvent constructor.
22
+ * @constructs CollidableEvent
23
+ * @param {CollidableEventData } data - Event data
24
+ */
25
+ constructor ( public data : T ) {
26
+ super ( data ) ;
27
+ }
28
+
12
29
/**
13
30
* Drag event that triggered this colliable event
14
31
* @property dragEvent
@@ -20,13 +37,17 @@ export class CollidableEvent extends AbstractEvent {
20
37
}
21
38
}
22
39
40
+ interface CollidableInEventData extends CollidableEventData {
41
+ collidingElement : HTMLElement ;
42
+ }
43
+
23
44
/**
24
45
* Collidable in event
25
46
* @class CollidableInEvent
26
47
* @module CollidableInEvent
27
48
* @extends CollidableEvent
28
49
*/
29
- export class CollidableInEvent extends CollidableEvent {
50
+ export class CollidableInEvent extends CollidableEvent < CollidableInEventData > {
30
51
static type = 'collidable:in' ;
31
52
32
53
/**
@@ -40,13 +61,17 @@ export class CollidableInEvent extends CollidableEvent {
40
61
}
41
62
}
42
63
64
+ interface CollidableOutEventData extends CollidableEventData {
65
+ collidingElement : HTMLElement ;
66
+ }
67
+
43
68
/**
44
69
* Collidable out event
45
70
* @class CollidableOutEvent
46
71
* @module CollidableOutEvent
47
72
* @extends CollidableEvent
48
73
*/
49
- export class CollidableOutEvent extends CollidableEvent {
74
+ export class CollidableOutEvent extends CollidableEvent < CollidableOutEventData > {
50
75
static type = 'collidable:out' ;
51
76
52
77
/**
0 commit comments