{"version":3,"file":"languageSelector-languageSelector.chunk.3a2a7ed29134d73875ff.js","mappings":"kIAAe,SAASA,IACpB,IAAMC,EAAUC,SAASC,cAAc,4BAEjCC,EAASH,aAAO,EAAPA,EAASE,cAA2B,mCAE7CE,EAAgBJ,aAAO,EAAPA,EAASE,cAC3B,6BAGEG,EAAQD,aAAa,EAAbA,EAAeE,iBAA8B,yBACrDC,EAAYF,GAASA,EAAMG,OAAS,EAAIH,EAAM,GAAK,KAOzD,SAASI,IACLT,SAAAA,EAASU,aAAa,gBAAiB,SACvCC,OAAOC,oBAAoB,UAAWC,GACtCZ,SAASW,oBAAoB,QAASE,GAA6B,EACvE,CAcA,SAASD,EAAoBE,GAEhB,WADDA,EAAMC,OAENP,IACAQ,EAAYd,GAKxB,CAEA,SAASc,EAAYC,GACjBA,GAAWA,EAAQC,OACvB,CAWA,SAASL,IACAV,SAAAA,EAAegB,SAASnB,SAASoB,iBAClCZ,IAEAQ,EAAYd,GAEpB,CAfAA,SAAAA,EAAQmB,iBAAiB,SAAS,WAC9BnB,SAAAA,EAAQmB,iBAAiB,WAAW,SAAAP,IA5BxC,SAA6BA,GACzB,OAAQA,EAAMC,MACV,IAAK,QACL,IAAK,QAbThB,SAAAA,EAASU,aAAa,gBAAiB,QACvCT,SAASqB,iBAAiB,QAASR,GAA6B,GAcxDG,EAAYV,GAKxB,CAmBQgB,CAAoBR,EACxB,IACAJ,OAAOW,iBAAiB,WAAW,SAAAP,GAC/BF,EAAoBE,EACxB,GACJ,GASJ,C","sources":["webpack:///./html/wp-content/themes/ls/src/js/main/components/languageSelector/languageSelector.ts"],"sourcesContent":["export default function LanguageSelector() {\n const wrapper = document.querySelector('[data-language-selector]');\n\n const button = wrapper?.querySelector('[data-language-selector-button]');\n\n const flagContainer = wrapper?.querySelector(\n '[data-language-flag-list]'\n );\n\n const flags = flagContainer?.querySelectorAll('[data-menu-link-flag]');\n const firstFlag = flags && flags.length > 0 ? flags[0] : null;\n\n function handleOpenDropdown() {\n wrapper?.setAttribute('aria-expanded', 'true');\n document.addEventListener('focus', closeDropdownOnOutsideFocus, true);\n }\n\n function handleCloseDropdown() {\n wrapper?.setAttribute('aria-expanded', 'false');\n window.removeEventListener('keydown', handleWindowKeydown);\n document.removeEventListener('focus', closeDropdownOnOutsideFocus, true);\n }\n\n function handleButtonKeydown(event: KeyboardEvent) {\n switch (event.code) {\n case 'Space':\n case 'Enter':\n handleOpenDropdown();\n handleFocus(firstFlag as HTMLElement);\n break;\n default:\n break;\n }\n }\n\n function handleWindowKeydown(event: KeyboardEvent) {\n switch (event.code) {\n case 'Escape':\n handleCloseDropdown();\n handleFocus(button as HTMLElement);\n break;\n default:\n break;\n }\n }\n\n function handleFocus(element: HTMLElement) {\n element && element.focus();\n }\n\n button?.addEventListener('focus', () => {\n button?.addEventListener('keydown', event => {\n handleButtonKeydown(event);\n });\n window.addEventListener('keydown', event => {\n handleWindowKeydown(event);\n });\n });\n\n function closeDropdownOnOutsideFocus() {\n if (!flagContainer?.contains(document.activeElement)) {\n handleCloseDropdown();\n\n handleFocus(button as HTMLElement);\n }\n }\n}\n"],"names":["LanguageSelector","wrapper","document","querySelector","button","flagContainer","flags","querySelectorAll","firstFlag","length","handleCloseDropdown","setAttribute","window","removeEventListener","handleWindowKeydown","closeDropdownOnOutsideFocus","event","code","handleFocus","element","focus","contains","activeElement","addEventListener","handleButtonKeydown"],"sourceRoot":""}