UNPKG

bootstrap-italia

Version:

Bootstrap Italia è un tema Bootstrap 5 per la creazione di applicazioni web nel pieno rispetto delle linee guida di design per i siti internet e i servizi digitali della PA

47 lines (39 loc) 1.13 kB
const DATA_MOUSE_FOCUS = 'data-focus-mouse' const CLASS_NAME_MOUSE_FOCUS = 'focus--mouse' class TrackFocus { constructor() { this._usingMouse = false this._bindEvents() } // Public // Private _bindEvents() { const events = ['keydown', 'mousedown'] events.forEach((evtName) => { document.addEventListener(evtName, (evt) => { this._usingMouse = evt.type === 'mousedown' }) }) document.addEventListener('focusin', (evt) => { if (this._usingMouse) { if (evt.target) { evt.target.classList.add(CLASS_NAME_MOUSE_FOCUS) evt.target.setAttribute(DATA_MOUSE_FOCUS, true) } } }) document.addEventListener('focusout', (evt) => { if (evt.target) { evt.target.classList.remove(CLASS_NAME_MOUSE_FOCUS) evt.target.setAttribute(DATA_MOUSE_FOCUS, false) } }) } } /** * ------------------------------------------------------------------------ * Data Api implementation * ------------------------------------------------------------------------ */ new TrackFocus() export default TrackFocus