function initPopperObject(obj, tooltip) { if (typeof (obj) == "string") { obj = document.getElementById(obj); } if (typeof (tooltip)) { tooltip = document.getElementById(tooltip); } const popperInstance = Popper.createPopper(obj, tooltip, { modifiers: [ { name: 'offset', options: { offset: [0, 8], }, },], }); const showEvents = ['mouseenter', 'focus']; const hideEvents = ['mouseleave', 'blur']; showEvents.forEach((event) => { obj.addEventListener(event, function () { // Make the tooltip visible tooltip.setAttribute('data-show', ''); // Enable the event listeners popperInstance.setOptions((options) => ({ ...options, modifiers: [ ...options.modifiers, { name: 'eventListeners', enabled: true }, ], })); popperInstance.update(); }); }); hideEvents.forEach((event) => { obj.addEventListener(event, function () { // Hide the tooltip tooltip.removeAttribute('data-show'); // Disable the event listeners popperInstance.setOptions((options) => ({ ...options, modifiers: [ ...options.modifiers, { name: 'eventListeners', enabled: false }, ], })); }); }); }