1
1
import AbstractEvent from 'shared/AbstractEvent' ;
2
+ import { FixMeAny } from 'shared/types' ;
3
+
4
+ import { DragEvent , DragEventData } from '../../../DragEvent' ;
5
+
6
+ interface MirrorEventData {
7
+ source : HTMLElement ;
8
+ originalSource : HTMLElement ;
9
+ sourceContainer : HTMLElement ;
10
+ sensorEvent : FixMeAny ;
11
+ dragEvent : DragEvent < DragEventData > ;
12
+ }
2
13
3
14
/**
4
15
* Base mirror event
5
16
* @class MirrorEvent
6
17
* @module MirrorEvent
7
18
* @extends AbstractEvent
8
19
*/
9
- export class MirrorEvent extends AbstractEvent {
20
+ export class MirrorEvent <
21
+ T extends MirrorEventData ,
22
+ > extends AbstractEvent < MirrorEventData > {
23
+ /**
24
+ * MirrorEvent constructor.
25
+ * @constructs MirrorEvent
26
+ * @param {MirrorEventData } data - Event data
27
+ */
28
+ constructor ( public data : T ) {
29
+ super ( data ) ;
30
+ }
31
+
10
32
/**
11
33
* Draggables source element
12
34
* @property source
@@ -78,17 +100,21 @@ export class MirrorEvent extends AbstractEvent {
78
100
* @module MirrorCreateEvent
79
101
* @extends MirrorEvent
80
102
*/
81
- export class MirrorCreateEvent extends MirrorEvent {
103
+ export class MirrorCreateEvent extends MirrorEvent < MirrorEventData > {
82
104
static type = 'mirror:create' ;
83
105
}
84
106
107
+ interface MirrorCreatedEventData extends MirrorEventData {
108
+ mirror : HTMLElement ;
109
+ }
110
+
85
111
/**
86
112
* Mirror created event
87
113
* @class MirrorCreatedEvent
88
114
* @module MirrorCreatedEvent
89
115
* @extends MirrorEvent
90
116
*/
91
- export class MirrorCreatedEvent extends MirrorEvent {
117
+ export class MirrorCreatedEvent extends MirrorEvent < MirrorCreatedEventData > {
92
118
static type = 'mirror:created' ;
93
119
94
120
/**
@@ -102,13 +128,17 @@ export class MirrorCreatedEvent extends MirrorEvent {
102
128
}
103
129
}
104
130
131
+ interface MirrorAttachedEventData extends MirrorEventData {
132
+ mirror : HTMLElement ;
133
+ }
134
+
105
135
/**
106
136
* Mirror attached event
107
137
* @class MirrorAttachedEvent
108
138
* @module MirrorAttachedEvent
109
139
* @extends MirrorEvent
110
140
*/
111
- export class MirrorAttachedEvent extends MirrorEvent {
141
+ export class MirrorAttachedEvent extends MirrorEvent < MirrorAttachedEventData > {
112
142
static type = 'mirror:attached' ;
113
143
114
144
/**
@@ -122,13 +152,19 @@ export class MirrorAttachedEvent extends MirrorEvent {
122
152
}
123
153
}
124
154
155
+ interface MirrorMoveEventData extends MirrorEventData {
156
+ mirror : HTMLElement ;
157
+ passedThreshX : boolean ;
158
+ passedThreshY : boolean ;
159
+ }
160
+
125
161
/**
126
162
* Mirror move event
127
163
* @class MirrorMoveEvent
128
164
* @module MirrorMoveEvent
129
165
* @extends MirrorEvent
130
166
*/
131
- export class MirrorMoveEvent extends MirrorEvent {
167
+ export class MirrorMoveEvent extends MirrorEvent < MirrorMoveEventData > {
132
168
static type = 'mirror:move' ;
133
169
static cancelable = true ;
134
170
@@ -161,13 +197,19 @@ export class MirrorMoveEvent extends MirrorEvent {
161
197
}
162
198
}
163
199
200
+ interface MirrorMovedEventData extends MirrorEventData {
201
+ mirror : HTMLElement ;
202
+ passedThreshX : boolean ;
203
+ passedThreshY : boolean ;
204
+ }
205
+
164
206
/**
165
207
* Mirror moved event
166
208
* @class MirrorMovedEvent
167
209
* @module MirrorMovedEvent
168
210
* @extends MirrorEvent
169
211
*/
170
- export class MirrorMovedEvent extends MirrorEvent {
212
+ export class MirrorMovedEvent extends MirrorEvent < MirrorMovedEventData > {
171
213
static type = 'mirror:moved' ;
172
214
173
215
/**
@@ -199,13 +241,17 @@ export class MirrorMovedEvent extends MirrorEvent {
199
241
}
200
242
}
201
243
244
+ interface MirrorDestroyEventData extends MirrorEventData {
245
+ mirror : HTMLElement ;
246
+ }
247
+
202
248
/**
203
249
* Mirror destroy event
204
250
* @class MirrorDestroyEvent
205
251
* @module MirrorDestroyEvent
206
252
* @extends MirrorEvent
207
253
*/
208
- export class MirrorDestroyEvent extends MirrorEvent {
254
+ export class MirrorDestroyEvent extends MirrorEvent < MirrorDestroyEventData > {
209
255
static type = 'mirror:destroy' ;
210
256
static cancelable = true ;
211
257
0 commit comments