@@ -4,6 +4,19 @@ import { getBootstrap } from './context.helper';
44const { document : doc } = window ;
55
66const TOOLTIPS_SELECTOR = '[title], [data-tooltip-title]' ;
7+ const TOOLTIPS_DEFAULTS_PARAMS = {
8+ delay : {
9+ show : 150 ,
10+ hide : 75 ,
11+ } ,
12+ placement : 'bottom' ,
13+ trigger : 'hover' ,
14+ useHtml : false ,
15+ template : ( extraClass = '' ) => `<div class="tooltip ibexa-tooltip ${ extraClass } ">
16+ <div class="tooltip-arrow ibexa-tooltip__arrow"></div>
17+ <div class="tooltip-inner ibexa-tooltip__inner"></div>
18+ </div>` ,
19+ } ;
720const observerConfig = {
821 childList : true ,
922 subtree : true ,
@@ -130,15 +143,21 @@ const getContainer = (tooltipNode) => {
130143 return container ?? doc . body ;
131144} ;
132145const initializeTooltip = ( tooltipNode , hasEllipsisStyle ) => {
146+ const {
147+ delay : defaultDelay ,
148+ placement : defaultPlacement ,
149+ trigger : defaultTrigger ,
150+ template : defaultTemplate ,
151+ } = TOOLTIPS_DEFAULTS_PARAMS ;
133152 const { delayShow, delayHide } = tooltipNode . dataset ;
134153 const delay = {
135- show : delayShow ? parseInt ( delayShow , 10 ) : 150 ,
136- hide : delayHide ? parseInt ( delayHide , 10 ) : 75 ,
154+ show : delayShow ? parseInt ( delayShow , 10 ) : defaultDelay . show ,
155+ hide : delayHide ? parseInt ( delayHide , 10 ) : defaultDelay . hide ,
137156 } ;
138157 const { title } = tooltipNode ;
139158 const extraClass = tooltipNode . dataset . tooltipExtraClass ?? '' ;
140- const placement = tooltipNode . dataset . tooltipPlacement ?? 'bottom' ;
141- const trigger = tooltipNode . dataset . tooltipTrigger ?? 'hover' ;
159+ const placement = tooltipNode . dataset . tooltipPlacement ?? defaultPlacement ;
160+ const trigger = tooltipNode . dataset . tooltipTrigger ?? defaultTrigger ;
142161 const useHtml = tooltipNode . dataset . tooltipUseHtml !== undefined ;
143162 const container = getContainer ( tooltipNode ) ;
144163 const iframe = document . querySelector ( tooltipNode . dataset . tooltipIframeSelector ) ;
@@ -150,10 +169,7 @@ const initializeTooltip = (tooltipNode, hasEllipsisStyle) => {
150169 container,
151170 popperConfig : modifyPopperConfig . bind ( null , iframe ) ,
152171 html : useHtml ,
153- template : `<div class="tooltip ibexa-tooltip ${ extraClass } ">
154- <div class="tooltip-arrow ibexa-tooltip__arrow"></div>
155- <div class="tooltip-inner ibexa-tooltip__inner"></div>
156- </div>` ,
172+ template : defaultTemplate ( extraClass ) ,
157173 } ) ;
158174
159175 if ( isSafari ( ) ) {
@@ -241,4 +257,4 @@ const observe = (baseElement = doc) => {
241257 observer . observe ( baseElement , observerConfig ) ;
242258} ;
243259
244- export { parse , hideAll , observe } ;
260+ export { parse , hideAll , observe , TOOLTIPS_DEFAULTS_PARAMS } ;
0 commit comments