1
1
import AbstractEvent from 'shared/AbstractEvent' ;
2
2
3
+ import { DragEvent , DragEventData } from '../../Draggable/DragEvent' ;
4
+
5
+ interface DroppableEventData {
6
+ dragEvent : DragEvent < DragEventData > ;
7
+ }
8
+
3
9
/**
4
10
* Base droppable event
5
11
* @class DroppableEvent
6
12
* @module DroppableEvent
7
13
* @extends AbstractEvent
8
14
*/
9
- export class DroppableEvent extends AbstractEvent {
15
+ export class DroppableEvent <
16
+ T extends DroppableEventData ,
17
+ > extends AbstractEvent < DroppableEventData > {
10
18
static type = 'droppable' ;
11
19
20
+ /**
21
+ * DroppableEvent constructor.
22
+ * @constructs DroppableEvent
23
+ * @param {DroppableEventData } data - Event data
24
+ */
25
+ constructor ( public data : T ) {
26
+ super ( data ) ;
27
+ }
28
+
12
29
/**
13
30
* Original drag event that triggered this droppable event
14
31
* @property dragEvent
@@ -20,13 +37,17 @@ export class DroppableEvent extends AbstractEvent {
20
37
}
21
38
}
22
39
40
+ interface DroppableStartEventData extends DroppableEventData {
41
+ dropzone : HTMLElement ;
42
+ }
43
+
23
44
/**
24
45
* Droppable start event
25
46
* @class DroppableStartEvent
26
47
* @module DroppableStartEvent
27
48
* @extends DroppableEvent
28
49
*/
29
- export class DroppableStartEvent extends DroppableEvent {
50
+ export class DroppableStartEvent extends DroppableEvent < DroppableStartEventData > {
30
51
static type = 'droppable:start' ;
31
52
static cancelable = true ;
32
53
@@ -41,13 +62,17 @@ export class DroppableStartEvent extends DroppableEvent {
41
62
}
42
63
}
43
64
65
+ interface DroppableDroppedEventData extends DroppableEventData {
66
+ dropzone : HTMLElement ;
67
+ }
68
+
44
69
/**
45
70
* Droppable dropped event
46
71
* @class DroppableDroppedEvent
47
72
* @module DroppableDroppedEvent
48
73
* @extends DroppableEvent
49
74
*/
50
- export class DroppableDroppedEvent extends DroppableEvent {
75
+ export class DroppableDroppedEvent extends DroppableEvent < DroppableDroppedEventData > {
51
76
static type = 'droppable:dropped' ;
52
77
static cancelable = true ;
53
78
@@ -62,13 +87,17 @@ export class DroppableDroppedEvent extends DroppableEvent {
62
87
}
63
88
}
64
89
90
+ interface DroppableReturnedEventData extends DroppableEventData {
91
+ dropzone : HTMLElement ;
92
+ }
93
+
65
94
/**
66
95
* Droppable returned event
67
96
* @class DroppableReturnedEvent
68
97
* @module DroppableReturnedEvent
69
98
* @extends DroppableEvent
70
99
*/
71
- export class DroppableReturnedEvent extends DroppableEvent {
100
+ export class DroppableReturnedEvent extends DroppableEvent < DroppableReturnedEventData > {
72
101
static type = 'droppable:returned' ;
73
102
static cancelable = true ;
74
103
@@ -83,13 +112,17 @@ export class DroppableReturnedEvent extends DroppableEvent {
83
112
}
84
113
}
85
114
115
+ interface DroppableStopEventData extends DroppableEventData {
116
+ dropzone : HTMLElement ;
117
+ }
118
+
86
119
/**
87
120
* Droppable stop event
88
121
* @class DroppableStopEvent
89
122
* @module DroppableStopEvent
90
123
* @extends DroppableEvent
91
124
*/
92
- export class DroppableStopEvent extends DroppableEvent {
125
+ export class DroppableStopEvent extends DroppableEvent < DroppableStopEventData > {
93
126
static type = 'droppable:stop' ;
94
127
static cancelable = true ;
95
128
0 commit comments