1
+ import getExtras from '../../utils/appendCardExtras' ;
1
2
import each from '../../utils/each' ;
2
3
import eventEmitter from '../../utils/eventEmitter' ;
3
4
import eventManager from '../../utils/eventManager' ;
4
5
import { globalSet } from '../../utils/global' ;
6
+ import VarStore from '../../utils/VarStore' ;
5
7
6
8
const PREFIX = 'appendCard' ;
7
9
const internal = eventEmitter ( ) ;
8
10
let event = PREFIX ;
9
11
let data ;
12
+ const extras = VarStore ( ) ;
10
13
11
14
internal . on ( 'set' , ( e = PREFIX ) => {
12
15
event = e ;
13
16
} ) . on ( 'pre' , ( ...args ) => {
14
17
eventManager . emit ( `pre:func:${ event } ` , ...args ) ;
15
18
} ) . on ( 'post' , ( ...args ) => {
16
- if ( event === PREFIX || data && ! args . length ) {
17
- eventManager . emit ( `func:${ event } ` , ...( data || args ) ) ;
19
+ if ( event === PREFIX || ! args . length ) {
20
+ const eventData = data || args ;
21
+ if ( eventData . length ) eventManager . emit ( `func:${ event } ` , ...eventData ) ;
18
22
data = null ;
19
23
event = PREFIX ; // Reset
20
24
} else {
21
25
data = args ;
26
+ if ( extras . isSet ( ) ) data . push ( ...extras . value ) ;
27
+ eventManager . emit ( `${ PREFIX } ()` , { // Support old events
28
+ card : args [ 0 ] ,
29
+ element : args [ 1 ] ,
30
+ } ) ;
31
+ eventManager . emit ( `func:${ PREFIX } ` , ...data ) ; // Should always call `appendCard`?
22
32
}
23
33
} ) ;
24
34
@@ -35,15 +45,18 @@ eventManager.on(':loaded', () => {
35
45
36
46
function override ( key ) {
37
47
globalSet ( key , function func ( ...args ) {
48
+ extras . value = getExtras ( key , args ) ;
38
49
internal . emit ( 'set' , key ) ;
39
50
const ret = this . super ( ...args ) ;
40
51
internal . emit ( 'post' ) ;
41
52
return ret ;
42
53
} ) ;
43
54
}
44
55
56
+ const otherKeys = [ 'showCardHover' ] ;
45
57
each ( window , ( _ , key = '' ) => {
46
- if ( key !== PREFIX && key . startsWith ( PREFIX ) ||
47
- key === 'showCardHover' ) override ( key ) ;
58
+ if ( key !== PREFIX && key . startsWith ( PREFIX ) || otherKeys . includes ( key ) ) {
59
+ override ( key ) ;
60
+ }
48
61
} ) ;
49
62
} ) ;
0 commit comments