@@ -4,9 +4,10 @@ export const tooltip = (element, props) => {
4
4
let component = null ;
5
5
let title = element . getAttribute ( 'title' ) ;
6
6
let action = props ?. action || element . getAttribute ( 'action' ) || 'hover' ;
7
+ const hideOnClickOutside = props ?. hideOnClickOutside || element . getAttribute ( 'hideOnClickOutside' ) || false ;
7
8
8
9
const detect = ( { target } ) => {
9
- if ( config . hideOnClickOutside && target && ! target . classList . contains ( 'tooltip' ) ) {
10
+ if ( hideOnClickOutside && target && ! target . classList . contains ( 'tooltip' ) ) {
10
11
onHide ( ) ;
11
12
}
12
13
} ;
@@ -16,6 +17,10 @@ export const tooltip = (element, props) => {
16
17
targetElement : element
17
18
} ;
18
19
20
+ if ( config . hideOnClickOutside ) {
21
+ delete config . hideOnClickOutside ;
22
+ }
23
+
19
24
if ( title ) {
20
25
element . removeAttribute ( 'title' ) ;
21
26
config . content = title ;
@@ -24,7 +29,7 @@ export const tooltip = (element, props) => {
24
29
const onClick = ( ) => {
25
30
if ( component ) {
26
31
if (
27
- ! ( action === 'click' && config . hideOnClickOutside )
32
+ ! ( action === 'click' && hideOnClickOutside )
28
33
) {
29
34
onHide ( ) ;
30
35
}
@@ -56,7 +61,7 @@ export const tooltip = (element, props) => {
56
61
if ( action === 'click' ) {
57
62
element . addEventListener ( 'click' , onClick ) ;
58
63
59
- if ( config . hideOnClickOutside ) {
64
+ if ( hideOnClickOutside ) {
60
65
document . addEventListener ( 'click' , detect , {
61
66
passive : true ,
62
67
capture : true
@@ -72,7 +77,7 @@ export const tooltip = (element, props) => {
72
77
} ;
73
78
74
79
const removeListeners = ( ) => {
75
- if ( config . hideOnClickOutside ) {
80
+ if ( hideOnClickOutside ) {
76
81
document . removeEventListener ( 'click' , detect ) ;
77
82
}
78
83
0 commit comments