design-react-kit
Version:
Componenti React per Bootstrap 5
1 lines • 2.12 kB
Source Map (JSON)
{"version":3,"sources":["../src/track-focus.js"],"sourcesContent":["// Focus Management\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap Italia (https://italia.github.io/bootstrap-italia/)\n * Authors: https://github.com/italia/bootstrap-italia/blob/main/AUTHORS\n * Licensed under BSD-3-Clause license (https://github.com/italia/bootstrap-italia/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst DATA_MOUSE_FOCUS = 'data-focus-mouse';\nconst CLASS_NAME_MOUSE_FOCUS = 'focus--mouse';\n\nclass TrackFocus {\n constructor() {\n this._usingMouse = false;\n\n this._bindEvents();\n }\n\n _bindEvents() {\n if (typeof document === 'undefined') {\n return;\n }\n const events = ['keydown', 'mousedown'];\n events.forEach((evtName) => {\n document.addEventListener(evtName, (evt) => {\n this._usingMouse = evt.type === 'mousedown';\n });\n });\n document.addEventListener('focusin', (evt) => {\n if (this._usingMouse) {\n if (evt.target) {\n evt.target.classList.add(CLASS_NAME_MOUSE_FOCUS);\n evt.target.setAttribute(DATA_MOUSE_FOCUS, 'true');\n }\n }\n });\n document.addEventListener('focusout', (evt) => {\n if (evt.target) {\n evt.target.classList.remove(CLASS_NAME_MOUSE_FOCUS);\n evt.target.setAttribute(DATA_MOUSE_FOCUS, 'false');\n }\n });\n }\n}\n\nnew TrackFocus();\n"],"mappings":"aAUA,IAAMA,EAAmB,mBACnBC,EAAyB,eAEzBC,EAAN,KAAiB,CACf,aAAc,CACZ,KAAK,YAAc,GAEnB,KAAK,YAAY,CACnB,CAEA,aAAc,CACZ,GAAI,OAAO,SAAa,IACtB,OAEa,CAAC,UAAW,WAAW,EAC/B,QAASC,GAAY,CAC1B,SAAS,iBAAiBA,EAAUC,GAAQ,CAC1C,KAAK,YAAcA,EAAI,OAAS,WAClC,CAAC,CACH,CAAC,EACD,SAAS,iBAAiB,UAAYA,GAAQ,CACxC,KAAK,aACHA,EAAI,SACNA,EAAI,OAAO,UAAU,IAAIH,CAAsB,EAC/CG,EAAI,OAAO,aAAaJ,EAAkB,MAAM,EAGtD,CAAC,EACD,SAAS,iBAAiB,WAAaI,GAAQ,CACzCA,EAAI,SACNA,EAAI,OAAO,UAAU,OAAOH,CAAsB,EAClDG,EAAI,OAAO,aAAaJ,EAAkB,OAAO,EAErD,CAAC,CACH,CACF,EAEA,IAAIE","names":["DATA_MOUSE_FOCUS","CLASS_NAME_MOUSE_FOCUS","TrackFocus","evtName","evt"]}