1
+ 'use strict' ;
2
+
3
+ Object . defineProperty ( exports , "__esModule" , {
4
+ value : true
5
+ } ) ;
6
+
7
+ exports . default = function ( target ) {
8
+ target . prototype . isCustomEvent = function ( ele ) {
9
+ var event = this . state . event ;
10
+
11
+ return event || ! ! ele . getAttribute ( 'data-event' ) ;
12
+ } ;
13
+
14
+ /* Bind listener for custom event */
15
+ target . prototype . customBindListener = function ( ele ) {
16
+ var _this = this ;
17
+
18
+ var _state = this . state ,
19
+ event = _state . event ,
20
+ eventOff = _state . eventOff ;
21
+
22
+ var dataEvent = ele . getAttribute ( 'data-event' ) || event ;
23
+ var dataEventOff = ele . getAttribute ( 'data-event-off' ) || eventOff ;
24
+
25
+ dataEvent . split ( ' ' ) . forEach ( function ( event ) {
26
+ ele . removeEventListener ( event , customListener ) ;
27
+ customListener = checkStatus . bind ( _this , dataEventOff ) ;
28
+ ele . addEventListener ( event , customListener , false ) ;
29
+ } ) ;
30
+ if ( dataEventOff ) {
31
+ dataEventOff . split ( ' ' ) . forEach ( function ( event ) {
32
+ ele . removeEventListener ( event , _this . hideTooltip ) ;
33
+ ele . addEventListener ( event , _this . hideTooltip , false ) ;
34
+ } ) ;
35
+ }
36
+ } ;
37
+
38
+ /* Unbind listener for custom event */
39
+ target . prototype . customUnbindListener = function ( ele ) {
40
+ var _state2 = this . state ,
41
+ event = _state2 . event ,
42
+ eventOff = _state2 . eventOff ;
43
+
44
+ var dataEvent = event || ele . getAttribute ( 'data-event' ) ;
45
+ var dataEventOff = eventOff || ele . getAttribute ( 'data-event-off' ) ;
46
+
47
+ ele . removeEventListener ( dataEvent , customListener ) ;
48
+ if ( dataEventOff ) ele . removeEventListener ( dataEventOff , this . hideTooltip ) ;
49
+ } ;
50
+ } ;
51
+
52
+ /**
53
+ * Custom events to control showing and hiding of tooltip
54
+ *
55
+ * @attributes
56
+ * - `event` {String}
57
+ * - `eventOff` {String}
58
+ */
59
+
60
+ var checkStatus = function checkStatus ( dataEventOff , e ) {
61
+ var show = this . state . show ;
62
+ var id = this . props . id ;
63
+
64
+ var dataIsCapture = e . currentTarget . getAttribute ( 'data-iscapture' ) ;
65
+ var isCapture = dataIsCapture && dataIsCapture === 'true' || this . props . isCapture ;
66
+ var currentItem = e . currentTarget . getAttribute ( 'currentItem' ) ;
67
+
68
+ if ( ! isCapture ) e . stopPropagation ( ) ;
69
+ if ( show && currentItem === 'true' ) {
70
+ if ( ! dataEventOff ) this . hideTooltip ( e ) ;
71
+ } else {
72
+ e . currentTarget . setAttribute ( 'currentItem' , 'true' ) ;
73
+ setUntargetItems ( e . currentTarget , this . getTargetArray ( id ) ) ;
74
+ this . showTooltip ( e ) ;
75
+ }
76
+ } ;
77
+
78
+ var setUntargetItems = function setUntargetItems ( currentTarget , targetArray ) {
79
+ for ( var i = 0 ; i < targetArray . length ; i ++ ) {
80
+ if ( currentTarget !== targetArray [ i ] ) {
81
+ targetArray [ i ] . setAttribute ( 'currentItem' , 'false' ) ;
82
+ } else {
83
+ targetArray [ i ] . setAttribute ( 'currentItem' , 'true' ) ;
84
+ }
85
+ }
86
+ } ;
87
+
88
+ var customListener = void 0 ;
0 commit comments