{"version":3,"file":"lang_menu_controller-CQn_md4i.js","names":[],"sources":["../../../app/javascript/entrypoints/site_controllers/lang_menu_controller.js"],"sourcesContent":["import { Controller } from \"@hotwired/stimulus\"\n\n// Language select: button with flag and code, menu of languages. Keyboard: arrows, Escape.\nexport default class extends Controller {\n static targets = [\"button\", \"list\"]\n\n connect() {\n this.outside = (event) => { if (!this.element.contains(event.target)) this.close() }\n document.addEventListener(\"click\", this.outside)\n }\n\n disconnect() {\n document.removeEventListener(\"click\", this.outside)\n }\n\n toggle() {\n this.listTarget.hidden ? this.open(true) : this.close()\n }\n\n keydown(event) {\n const items = this.items\n const index = items.indexOf(document.activeElement)\n if (event.key === \"ArrowDown\") {\n event.preventDefault()\n if (this.listTarget.hidden) return this.open(true)\n items[(index + 1) % items.length].focus()\n } else if (event.key === \"ArrowUp\") {\n event.preventDefault()\n items[(index - 1 + items.length) % items.length].focus()\n } else if (event.key === \"Escape\") {\n this.close()\n this.buttonTarget.focus()\n }\n }\n\n open(focus) {\n this.listTarget.hidden = false\n this.buttonTarget.setAttribute(\"aria-expanded\", \"true\")\n if (focus) (this.listTarget.querySelector(\"[aria-current]\") || this.items[0]).focus()\n }\n\n close() {\n this.listTarget.hidden = true\n this.buttonTarget.setAttribute(\"aria-expanded\", \"false\")\n }\n\n get items() {\n return [...this.listTarget.querySelectorAll(\"a\")]\n }\n}\n"],"mappings":"4GAGA,EAAA,cAA6B,CAAW,CACtC,OAAO,QAAU,CAAC,SAAU,OAAO,CAEnC,SAAU,CACR,KAAK,QAAW,GAAU,CAAO,KAAK,QAAQ,SAAS,EAAM,OAAO,EAAE,KAAK,OAAO,EAClF,SAAS,iBAAiB,QAAS,KAAK,QAAQ,CAGlD,YAAa,CACX,SAAS,oBAAoB,QAAS,KAAK,QAAQ,CAGrD,QAAS,CACP,KAAK,WAAW,OAAS,KAAK,KAAK,GAAK,CAAG,KAAK,OAAO,CAGzD,QAAQ,EAAO,CACb,IAAM,EAAQ,KAAK,MACb,EAAQ,EAAM,QAAQ,SAAS,cAAc,CACnD,GAAI,EAAM,MAAQ,YAAa,CAE7B,GADA,EAAM,gBAAgB,CAClB,KAAK,WAAW,OAAQ,OAAO,KAAK,KAAK,GAAK,CAClD,GAAO,EAAQ,GAAK,EAAM,QAAQ,OAAO,MAChC,EAAM,MAAQ,WACvB,EAAM,gBAAgB,CACtB,GAAO,EAAQ,EAAI,EAAM,QAAU,EAAM,QAAQ,OAAO,EAC/C,EAAM,MAAQ,WACvB,KAAK,OAAO,CACZ,KAAK,aAAa,OAAO,EAI7B,KAAK,EAAO,CACV,KAAK,WAAW,OAAS,GACzB,KAAK,aAAa,aAAa,gBAAiB,OAAO,CACnD,IAAQ,KAAK,WAAW,cAAc,iBAAiB,EAAI,KAAK,MAAM,IAAI,OAAO,CAGvF,OAAQ,CACN,KAAK,WAAW,OAAS,GACzB,KAAK,aAAa,aAAa,gBAAiB,QAAQ,CAG1D,IAAI,OAAQ,CACV,MAAO,CAAC,GAAG,KAAK,WAAW,iBAAiB,IAAI,CAAC"}