{"ast":null,"code":"import _toConsumableArray from \"@babel/runtime/helpers/toConsumableArray\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nimport { announce as $l2apB$announce } from \"@react-aria/live-announcer\";\nimport { ariaHideOutside as $l2apB$ariaHideOutside } from \"@react-aria/overlays\";\nimport { listData as $l2apB$listData, getItemId as $l2apB$getItemId } from \"@react-aria/listbox\";\nimport { chain as $l2apB$chain, useLabels as $l2apB$useLabels, isAppleDevice as $l2apB$isAppleDevice, mergeProps as $l2apB$mergeProps } from \"@react-aria/utils\";\nimport { useMemo as $l2apB$useMemo, useRef as $l2apB$useRef, useEffect as $l2apB$useEffect } from \"react\";\nimport { getItemCount as $l2apB$getItemCount } from \"@react-stately/collections\";\nimport { ListKeyboardDelegate as $l2apB$ListKeyboardDelegate, useSelectableCollection as $l2apB$useSelectableCollection } from \"@react-aria/selection\";\nimport { useMenuTrigger as $l2apB$useMenuTrigger } from \"@react-aria/menu\";\nimport { useMessageFormatter as $l2apB$useMessageFormatter } from \"@react-aria/i18n\";\nimport { useTextField as $l2apB$useTextField } from \"@react-aria/textfield\";\n\nfunction $parcel$interopDefault(a) {\n  return a && a.__esModule ? a.default : a;\n}\n\nfunction $parcel$export(e, n, v, s) {\n  Object.defineProperty(e, n, {\n    get: v,\n    set: s,\n    enumerable: true,\n    configurable: true\n  });\n}\n\nvar $be4ea813a2bafd2a$exports = {};\n$parcel$export($be4ea813a2bafd2a$exports, \"useComboBox\", function () {\n  return $be4ea813a2bafd2a$export$8c18d1b4f7232bbf;\n});\nvar $5abbcf3a77d64a68$exports = {};\nvar $47c9b5feb1bbf380$exports = {};\n$47c9b5feb1bbf380$exports = JSON.parse(\"{\\\"buttonLabel\\\":\\\"عرض المقترحات\\\",\\\"countAnnouncement\\\":\\\"{optionCount, plural, one {# خيار} other {# خيارات}} متاحة.\\\",\\\"focusAnnouncement\\\":\\\"{isGroupChange, select, true {المجموعة المدخلة {groupTitle}, مع {groupCount, plural, one {# خيار} other {# خيارات}}. } other {}}{optionText}{isSelected, select, true {, محدد} other {}}\\\",\\\"listboxLabel\\\":\\\"مقترحات\\\",\\\"selectedAnnouncement\\\":\\\"{optionText}، محدد\\\"}\");\nvar $97abed416a43404e$exports = {};\n$97abed416a43404e$exports = JSON.parse(\"{\\\"buttonLabel\\\":\\\"Покажи предложения\\\",\\\"countAnnouncement\\\":\\\"{optionCount, plural, one {# опция} other {# опции}} на разположение.\\\",\\\"focusAnnouncement\\\":\\\"{isGroupChange, select, true {Въведена група {groupTitle}, с {groupCount, plural, one {# опция} other {# опции}}. } other {}}{optionText}{isSelected, select, true {, избрани} other {}}\\\",\\\"listboxLabel\\\":\\\"Предложения\\\",\\\"selectedAnnouncement\\\":\\\"{optionText}, избрани\\\"}\");\nvar $994e6e63c84a25ee$exports = {};\n$994e6e63c84a25ee$exports = JSON.parse(\"{\\\"buttonLabel\\\":\\\"Zobrazit doporučení\\\",\\\"countAnnouncement\\\":\\\"K dispozici {optionCount, plural, one {je # možnost} other {jsou/je # možnosti/-í}}.\\\",\\\"focusAnnouncement\\\":\\\"{isGroupChange, select, true {Zadaná skupina „{groupTitle}“ {groupCount, plural, one {s # možností} other {se # možnostmi}}. } other {}}{optionText}{isSelected, select, true { (vybráno)} other {}}\\\",\\\"listboxLabel\\\":\\\"Návrhy\\\",\\\"selectedAnnouncement\\\":\\\"{optionText}, vybráno\\\"}\");\nvar $ce158d0140c4c08b$exports = {};\n$ce158d0140c4c08b$exports = JSON.parse(\"{\\\"buttonLabel\\\":\\\"Vis forslag\\\",\\\"countAnnouncement\\\":\\\"{optionCount, plural, one {# mulighed tilgængelig} other {# muligheder tilgængelige}}.\\\",\\\"focusAnnouncement\\\":\\\"{isGroupChange, select, true {Angivet gruppe {groupTitle}, med {groupCount, plural, one {# mulighed} other {# muligheder}}. } other {}}{optionText}{isSelected, select, true {, valgt} other {}}\\\",\\\"listboxLabel\\\":\\\"Forslag\\\",\\\"selectedAnnouncement\\\":\\\"{optionText}, valgt\\\"}\");\nvar $157eb80aca0c5b52$exports = {};\n$157eb80aca0c5b52$exports = JSON.parse(\"{\\\"buttonLabel\\\":\\\"Empfehlungen anzeigen\\\",\\\"countAnnouncement\\\":\\\"{optionCount, plural, one {# Option} other {# Optionen}} verfügbar.\\\",\\\"focusAnnouncement\\\":\\\"{isGroupChange, select, true {Eingetretene Gruppe {groupTitle}, mit {groupCount, plural, one {# Option} other {# Optionen}}. } other {}}{optionText}{isSelected, select, true {, ausgewählt} other {}}\\\",\\\"listboxLabel\\\":\\\"Empfehlungen\\\",\\\"selectedAnnouncement\\\":\\\"{optionText}, ausgewählt\\\"}\");\nvar $a817e8761f23deec$exports = {};\n$a817e8761f23deec$exports = JSON.parse(\"{\\\"buttonLabel\\\":\\\"Προβολή προτάσεων\\\",\\\"countAnnouncement\\\":\\\"{optionCount, plural, one {# επιλογή} other {# επιλογές }} διαθέσιμες.\\\",\\\"focusAnnouncement\\\":\\\"{isGroupChange, select, true {Εισαγμένη ομάδα {groupTitle}, με {groupCount, plural, one {# επιλογή} other {# επιλογές}}. } other {}}{optionText}{isSelected, select, true {, επιλεγμένο} other {}}\\\",\\\"listboxLabel\\\":\\\"Προτάσεις\\\",\\\"selectedAnnouncement\\\":\\\"{optionText}, επιλέχθηκε\\\"}\");\nvar $e0e4ae0f8450eba6$exports = {};\n$e0e4ae0f8450eba6$exports = JSON.parse(\"{\\\"focusAnnouncement\\\":\\\"{isGroupChange, select, true {Entered group {groupTitle}, with {groupCount, plural, one {# option} other {# options}}. } other {}}{optionText}{isSelected, select, true {, selected} other {}}\\\",\\\"countAnnouncement\\\":\\\"{optionCount, plural, one {# option} other {# options}} available.\\\",\\\"selectedAnnouncement\\\":\\\"{optionText}, selected\\\",\\\"buttonLabel\\\":\\\"Show suggestions\\\",\\\"listboxLabel\\\":\\\"Suggestions\\\"}\");\nvar $208d9247d0e158c1$exports = {};\n$208d9247d0e158c1$exports = JSON.parse(\"{\\\"buttonLabel\\\":\\\"Mostrar sugerencias\\\",\\\"countAnnouncement\\\":\\\"{optionCount, plural, one {# opción} other {# opciones}} disponible(s).\\\",\\\"focusAnnouncement\\\":\\\"{isGroupChange, select, true {Se ha unido al grupo {groupTitle}, con {groupCount, plural, one {# opción} other {# opciones}}. } other {}}{optionText}{isSelected, select, true {, seleccionado} other {}}\\\",\\\"listboxLabel\\\":\\\"Sugerencias\\\",\\\"selectedAnnouncement\\\":\\\"{optionText}, seleccionado\\\"}\");\nvar $1e91637a0cd136b1$exports = {};\n$1e91637a0cd136b1$exports = JSON.parse(\"{\\\"buttonLabel\\\":\\\"Kuva soovitused\\\",\\\"countAnnouncement\\\":\\\"{optionCount, plural, one {# valik} other {# valikud}} saadaval.\\\",\\\"focusAnnouncement\\\":\\\"{isGroupChange, select, true {Sisestatud rühm {groupTitle}, valikuga {groupCount, plural, one {# valik} other {# valikud}}. } other {}}{optionText}{isSelected, select, true {, valitud} other {}}\\\",\\\"listboxLabel\\\":\\\"Soovitused\\\",\\\"selectedAnnouncement\\\":\\\"{optionText}, valitud\\\"}\");\nvar $afe2e61a9a0f4d13$exports = {};\n$afe2e61a9a0f4d13$exports = JSON.parse(\"{\\\"buttonLabel\\\":\\\"Näytä ehdotukset\\\",\\\"countAnnouncement\\\":\\\"{optionCount, plural, one {# vaihtoehto} other {# vaihtoehdot}} saatavilla.\\\",\\\"focusAnnouncement\\\":\\\"{isGroupChange, select, true {Mentiin ryhmään {groupTitle}, {groupCount, plural, one {# vaihtoehdon} other {# vaihtoehdon}} kanssa.} other {}}{optionText}{isSelected, select, true {, valittu} other {}}\\\",\\\"listboxLabel\\\":\\\"Ehdotukset\\\",\\\"selectedAnnouncement\\\":\\\"{optionText}, valittu\\\"}\");\nvar $fd9335deb962084f$exports = {};\n$fd9335deb962084f$exports = JSON.parse(\"{\\\"buttonLabel\\\":\\\"Afficher les suggestions\\\",\\\"countAnnouncement\\\":\\\"{optionCount, plural, one {# option} other {# options}} disponible(s).\\\",\\\"focusAnnouncement\\\":\\\"{isGroupChange, select, true {Groupe {groupTitle} saisi, avec {groupCount, plural, one {# option} other {# options}}. } other {}}{optionText}{isSelected, select, true {, sélectionné(s)} other {}}\\\",\\\"listboxLabel\\\":\\\"Suggestions\\\",\\\"selectedAnnouncement\\\":\\\"{optionText}, sélectionné\\\"}\");\nvar $f291151c761cd738$exports = {};\n$f291151c761cd738$exports = JSON.parse(\"{\\\"buttonLabel\\\":\\\"הצג הצעות\\\",\\\"countAnnouncement\\\":\\\"{optionCount, plural, one {אפשרות #} other {# אפשרויות}} במצב זמין.\\\",\\\"focusAnnouncement\\\":\\\"{isGroupChange, select, true {נכנס לקבוצה {groupTitle}, עם {groupCount, plural, one {אפשרות #} other {# אפשרויות}}. } other {}}{optionText}{isSelected, select, true {, נבחר} other {}}\\\",\\\"listboxLabel\\\":\\\"הצעות\\\",\\\"selectedAnnouncement\\\":\\\"{optionText}, נבחר\\\"}\");\nvar $ab4365ef94e29c27$exports = {};\n$ab4365ef94e29c27$exports = JSON.parse(\"{\\\"buttonLabel\\\":\\\"Prikaži prijedloge\\\",\\\"countAnnouncement\\\":\\\"Dostupno još: {optionCount, plural, one {# opcija} other {# opcije/a}}.\\\",\\\"focusAnnouncement\\\":\\\"{isGroupChange, select, true {Unesena skupina {groupTitle}, s {groupCount, plural, one {# opcijom} other {# opcije/a}}. } other {}}{optionText}{isSelected, select, true {, odabranih} other {}}\\\",\\\"listboxLabel\\\":\\\"Prijedlozi\\\",\\\"selectedAnnouncement\\\":\\\"{optionText}, odabrano\\\"}\");\nvar $4220d74edf6087a4$exports = {};\n$4220d74edf6087a4$exports = JSON.parse(\"{\\\"buttonLabel\\\":\\\"Javaslatok megjelenítése\\\",\\\"countAnnouncement\\\":\\\"{optionCount, plural, one {# lehetőség} other {# lehetőség}} áll rendelkezésre.\\\",\\\"focusAnnouncement\\\":\\\"{isGroupChange, select, true {Belépett a(z) {groupTitle} csoportba, amely {groupCount, plural, one {# lehetőséget} other {# lehetőséget}} tartalmaz. } other {}}{optionText}{isSelected, select, true {, kijelölve} other {}}\\\",\\\"listboxLabel\\\":\\\"Javaslatok\\\",\\\"selectedAnnouncement\\\":\\\"{optionText}, kijelölve\\\"}\");\nvar $f48e0f87d11a20c4$exports = {};\n$f48e0f87d11a20c4$exports = JSON.parse(\"{\\\"buttonLabel\\\":\\\"Mostra suggerimenti\\\",\\\"countAnnouncement\\\":\\\"{optionCount, plural, one {# opzione disponibile} other {# opzioni disponibili}}.\\\",\\\"focusAnnouncement\\\":\\\"{isGroupChange, select, true {Ingresso nel gruppo {groupTitle}, con {groupCount, plural, one {# opzione} other {# opzioni}}. } other {}}{optionText}{isSelected, select, true {, selezionato} other {}}\\\",\\\"listboxLabel\\\":\\\"Suggerimenti\\\",\\\"selectedAnnouncement\\\":\\\"{optionText}, selezionato\\\"}\");\nvar $e70ffa011184b21f$exports = {};\n$e70ffa011184b21f$exports = JSON.parse(\"{\\\"buttonLabel\\\":\\\"候補を表示\\\",\\\"countAnnouncement\\\":\\\"{optionCount, plural, one {# 個のオプション} other {# 個のオプション}}を利用できます。\\\",\\\"focusAnnouncement\\\":\\\"{isGroupChange, select, true {入力されたグループ {groupTitle}、{groupCount, plural, one {# 個のオプション} other {# 個のオプション}}を含む。} other {}}{optionText}{isSelected, select, true {、選択済み} other {}}\\\",\\\"listboxLabel\\\":\\\"候補\\\",\\\"selectedAnnouncement\\\":\\\"{optionText}、選択済み\\\"}\");\nvar $8cd21f750e77e016$exports = {};\n$8cd21f750e77e016$exports = JSON.parse(\"{\\\"buttonLabel\\\":\\\"제안 사항 표시\\\",\\\"countAnnouncement\\\":\\\"{optionCount, plural, one {#개 옵션} other {#개 옵션}}을 사용할 수 있습니다.\\\",\\\"focusAnnouncement\\\":\\\"{isGroupChange, select, true {입력한 그룹 {groupTitle}, {groupCount, plural, one {#개 옵션} other {#개 옵션}}. } other {}}{optionText}{isSelected, select, true {, 선택됨} other {}}\\\",\\\"listboxLabel\\\":\\\"제안\\\",\\\"selectedAnnouncement\\\":\\\"{optionText}, 선택됨\\\"}\");\nvar $14ef7a59aab7c101$exports = {};\n$14ef7a59aab7c101$exports = JSON.parse(\"{\\\"buttonLabel\\\":\\\"Rodyti pasiūlymus\\\",\\\"countAnnouncement\\\":\\\"Yra {optionCount, plural, one {# parinktis} other {# parinktys (-ių)}}.\\\",\\\"focusAnnouncement\\\":\\\"{isGroupChange, select, true {Įvesta grupė {groupTitle}, su {groupCount, plural, one {# parinktimi} other {# parinktimis (-ių)}}. } other {}}{optionText}{isSelected, select, true {, pasirinkta} other {}}\\\",\\\"listboxLabel\\\":\\\"Pasiūlymai\\\",\\\"selectedAnnouncement\\\":\\\"{optionText}, pasirinkta\\\"}\");\nvar $d0eeb8a545d66091$exports = {};\n$d0eeb8a545d66091$exports = JSON.parse(\"{\\\"buttonLabel\\\":\\\"Rādīt ieteikumus\\\",\\\"countAnnouncement\\\":\\\"Pieejamo opciju skaits: {optionCount, plural, one {# opcija} other {# opcijas}}.\\\",\\\"focusAnnouncement\\\":\\\"{isGroupChange, select, true {Ievadīta grupa {groupTitle}, ar {groupCount, plural, one {# opciju} other {# opcijām}}. } other {}}{optionText}{isSelected, select, true {, atlasīta} other {}}\\\",\\\"listboxLabel\\\":\\\"Ieteikumi\\\",\\\"selectedAnnouncement\\\":\\\"{optionText}, atlasīta\\\"}\");\nvar $82d66923cf241a06$exports = {};\n$82d66923cf241a06$exports = JSON.parse(\"{\\\"buttonLabel\\\":\\\"Vis forslag\\\",\\\"countAnnouncement\\\":\\\"{optionCount, plural, one {# alternativ} other {# alternativer}} finnes.\\\",\\\"focusAnnouncement\\\":\\\"{isGroupChange, select, true {Angitt gruppe {groupTitle}, med {groupCount, plural, one {# alternativ} other {# alternativer}}. } other {}}{optionText}{isSelected, select, true {, valgt} other {}}\\\",\\\"listboxLabel\\\":\\\"Forslag\\\",\\\"selectedAnnouncement\\\":\\\"{optionText}, valgt\\\"}\");\nvar $fd94d41f1b130e82$exports = {};\n$fd94d41f1b130e82$exports = JSON.parse(\"{\\\"buttonLabel\\\":\\\"Suggesties weergeven\\\",\\\"countAnnouncement\\\":\\\"{optionCount, plural, one {# optie} other {# opties}} beschikbaar.\\\",\\\"focusAnnouncement\\\":\\\"{isGroupChange, select, true {Groep {groupTitle} ingevoerd met {groupCount, plural, one {# optie} other {# opties}}. } other {}}{optionText}{isSelected, select, true {, geselecteerd} other {}}\\\",\\\"listboxLabel\\\":\\\"Suggesties\\\",\\\"selectedAnnouncement\\\":\\\"{optionText}, geselecteerd\\\"}\");\nvar $a7fa582cd284e9c7$exports = {};\n$a7fa582cd284e9c7$exports = JSON.parse(\"{\\\"buttonLabel\\\":\\\"Wyświetlaj sugestie\\\",\\\"countAnnouncement\\\":\\\"dostępna/dostępne(-nych) {optionCount, plural, one {# opcja} other {# opcje(-i)}}.\\\",\\\"focusAnnouncement\\\":\\\"{isGroupChange, select, true {Dołączono do grupy {groupTitle}, z {groupCount, plural, one {# opcją} other {# opcjami}}. } other {}}{optionText}{isSelected, select, true {, wybrano} other {}}\\\",\\\"listboxLabel\\\":\\\"Sugestie\\\",\\\"selectedAnnouncement\\\":\\\"{optionText}, wybrano\\\"}\");\nvar $036e1bd21fd7df93$exports = {};\n$036e1bd21fd7df93$exports = JSON.parse(\"{\\\"buttonLabel\\\":\\\"Mostrar sugestões\\\",\\\"countAnnouncement\\\":\\\"{optionCount, plural, one {# opção} other {# opções}} disponível.\\\",\\\"focusAnnouncement\\\":\\\"{isGroupChange, select, true {Grupo inserido {groupTitle}, com {groupCount, plural, one {# opção} other {# opções}}. } other {}}{optionText}{isSelected, select, true {, selecionado} other {}}\\\",\\\"listboxLabel\\\":\\\"Sugestões\\\",\\\"selectedAnnouncement\\\":\\\"{optionText}, selecionado\\\"}\");\nvar $76d15d2f36812ad4$exports = {};\n$76d15d2f36812ad4$exports = JSON.parse(\"{\\\"buttonLabel\\\":\\\"Apresentar sugestões\\\",\\\"countAnnouncement\\\":\\\"{optionCount, plural, one {# opção} other {# opções}} disponível.\\\",\\\"focusAnnouncement\\\":\\\"{isGroupChange, select, true {Grupo introduzido {groupTitle}, com {groupCount, plural, one {# opção} other {# opções}}. } other {}}{optionText}{isSelected, select, true {, selecionado} other {}}\\\",\\\"listboxLabel\\\":\\\"Sugestões\\\",\\\"selectedAnnouncement\\\":\\\"{optionText}, selecionado\\\"}\");\nvar $9fafa3dd24f14773$exports = {};\n$9fafa3dd24f14773$exports = JSON.parse(\"{\\\"buttonLabel\\\":\\\"Afișare sugestii\\\",\\\"countAnnouncement\\\":\\\"{optionCount, plural, one {# opțiune} other {# opțiuni}} disponibile.\\\",\\\"focusAnnouncement\\\":\\\"{isGroupChange, select, true {Grup {groupTitle} introdus, cu {groupCount, plural, one {# opțiune} other {# opțiuni}}. } other {}}{optionText}{isSelected, select, true {, selectat} other {}}\\\",\\\"listboxLabel\\\":\\\"Sugestii\\\",\\\"selectedAnnouncement\\\":\\\"{optionText}, selectat\\\"}\");\nvar $b0eed9bc4b8abf58$exports = {};\n$b0eed9bc4b8abf58$exports = JSON.parse(\"{\\\"buttonLabel\\\":\\\"Показать предложения\\\",\\\"countAnnouncement\\\":\\\"{optionCount, plural, one {# параметр} other {# параметров}} доступно.\\\",\\\"focusAnnouncement\\\":\\\"{isGroupChange, select, true {Введенная группа {groupTitle}, с {groupCount, plural, one {# параметром} other {# параметрами}}. } other {}}{optionText}{isSelected, select, true {, выбранными} other {}}\\\",\\\"listboxLabel\\\":\\\"Предложения\\\",\\\"selectedAnnouncement\\\":\\\"{optionText}, выбрано\\\"}\");\nvar $1fab0ceefd5d2cc1$exports = {};\n$1fab0ceefd5d2cc1$exports = JSON.parse(\"{\\\"buttonLabel\\\":\\\"Zobraziť návrhy\\\",\\\"countAnnouncement\\\":\\\"{optionCount, plural, one {# možnosť} other {# možnosti/-í}} k dispozícii.\\\",\\\"focusAnnouncement\\\":\\\"{isGroupChange, select, true {Zadaná skupina {groupTitle}, s {groupCount, plural, one {# možnosťou} other {# možnosťami}}. } other {}}{optionText}{isSelected, select, true {, vybraté} other {}}\\\",\\\"listboxLabel\\\":\\\"Návrhy\\\",\\\"selectedAnnouncement\\\":\\\"{optionText}, vybraté\\\"}\");\nvar $6980c92cea4a4907$exports = {};\n$6980c92cea4a4907$exports = JSON.parse(\"{\\\"buttonLabel\\\":\\\"Prikaži predloge\\\",\\\"countAnnouncement\\\":\\\"Na voljo je {optionCount, plural, one {# opcija} other {# opcije}}.\\\",\\\"focusAnnouncement\\\":\\\"{isGroupChange, select, true {Vnesena skupina {groupTitle}, z {groupCount, plural, one {# opcija} other {# opcije}}. } other {}}{optionText}{isSelected, select, true {, izbrano} other {}}\\\",\\\"listboxLabel\\\":\\\"Predlogi\\\",\\\"selectedAnnouncement\\\":\\\"{optionText}, izbrano\\\"}\");\nvar $cbd7304dc5d7e9ce$exports = {};\n$cbd7304dc5d7e9ce$exports = JSON.parse(\"{\\\"buttonLabel\\\":\\\"Prikaži predloge\\\",\\\"countAnnouncement\\\":\\\"Dostupno još: {optionCount, plural, one {# opcija} other {# opcije/a}}.\\\",\\\"focusAnnouncement\\\":\\\"{isGroupChange, select, true {Unesena grupa {groupTitle}, s {groupCount, plural, one {# opcijom} other {# optione/a}}. } other {}}{optionText}{isSelected, select, true {, izabranih} other {}}\\\",\\\"listboxLabel\\\":\\\"Predlozi\\\",\\\"selectedAnnouncement\\\":\\\"{optionText}, izabrano\\\"}\");\nvar $6b8090037b96ebc8$exports = {};\n$6b8090037b96ebc8$exports = JSON.parse(\"{\\\"buttonLabel\\\":\\\"Visa förslag\\\",\\\"countAnnouncement\\\":\\\"{optionCount, plural, one {# alternativ} other {# alternativ}} tillgängliga.\\\",\\\"focusAnnouncement\\\":\\\"{isGroupChange, select, true {Ingick i gruppen {groupTitle} med {groupCount, plural, one {# alternativ} other {# alternativ}}. } other {}}{optionText}{isSelected, select, true {, valda} other {}}\\\",\\\"listboxLabel\\\":\\\"Förslag\\\",\\\"selectedAnnouncement\\\":\\\"{optionText}, valda\\\"}\");\nvar $9439058564931691$exports = {};\n$9439058564931691$exports = JSON.parse(\"{\\\"buttonLabel\\\":\\\"Önerileri göster\\\",\\\"countAnnouncement\\\":\\\"{optionCount, plural, one {# seçenek} other {# seçenekler}} kullanılabilir.\\\",\\\"focusAnnouncement\\\":\\\"{isGroupChange, select, true {Girilen grup {groupTitle}, ile {groupCount, plural, one {# seçenek} other {# seçenekler}}. } other {}}{optionText}{isSelected, select, true {, seçildi} other {}}\\\",\\\"listboxLabel\\\":\\\"Öneriler\\\",\\\"selectedAnnouncement\\\":\\\"{optionText}, seçildi\\\"}\");\nvar $631e4de686bb0351$exports = {};\n$631e4de686bb0351$exports = JSON.parse(\"{\\\"buttonLabel\\\":\\\"Показати пропозиції\\\",\\\"countAnnouncement\\\":\\\"{optionCount, plural, one {# параметр} other {# параметри(-ів)}} доступно.\\\",\\\"focusAnnouncement\\\":\\\"{isGroupChange, select, true {Введена група {groupTitle}, з {groupCount, plural, one {# параметр} other {# параметри(-ів)}}. } other {}}{optionText}{isSelected, select, true {, вибрано} other {}}\\\",\\\"listboxLabel\\\":\\\"Пропозиції\\\",\\\"selectedAnnouncement\\\":\\\"{optionText}, вибрано\\\"}\");\nvar $02f520407e642ee3$exports = {};\n$02f520407e642ee3$exports = JSON.parse(\"{\\\"buttonLabel\\\":\\\"显示建议\\\",\\\"countAnnouncement\\\":\\\"有 {optionCount, plural, one {# 个选项} other {# 个选项}}可用。\\\",\\\"focusAnnouncement\\\":\\\"{isGroupChange, select, true {进入了 {groupTitle} 组，其中有 {groupCount, plural, one {# 个选项} other {# 个选项}}. } other {}}{optionText}{isSelected, select, true {, 已选择} other {}}\\\",\\\"listboxLabel\\\":\\\"建议\\\",\\\"selectedAnnouncement\\\":\\\"{optionText}, 已选择\\\"}\");\nvar $7e8a1defad14ae4a$exports = {};\n$7e8a1defad14ae4a$exports = JSON.parse(\"{\\\"buttonLabel\\\":\\\"顯示建議\\\",\\\"countAnnouncement\\\":\\\"{optionCount, plural, one {# 選項} other {# 選項}} 可用。\\\",\\\"focusAnnouncement\\\":\\\"{isGroupChange, select, true {輸入的群組 {groupTitle}, 有 {groupCount, plural, one {# 選項} other {# 選項}}. } other {}}{optionText}{isSelected, select, true {, 已選取} other {}}\\\",\\\"listboxLabel\\\":\\\"建議\\\",\\\"selectedAnnouncement\\\":\\\"{optionText}, 已選取\\\"}\");\n$5abbcf3a77d64a68$exports = {\n  \"ar-AE\": $47c9b5feb1bbf380$exports,\n  \"bg-BG\": $97abed416a43404e$exports,\n  \"cs-CZ\": $994e6e63c84a25ee$exports,\n  \"da-DK\": $ce158d0140c4c08b$exports,\n  \"de-DE\": $157eb80aca0c5b52$exports,\n  \"el-GR\": $a817e8761f23deec$exports,\n  \"en-US\": $e0e4ae0f8450eba6$exports,\n  \"es-ES\": $208d9247d0e158c1$exports,\n  \"et-EE\": $1e91637a0cd136b1$exports,\n  \"fi-FI\": $afe2e61a9a0f4d13$exports,\n  \"fr-FR\": $fd9335deb962084f$exports,\n  \"he-IL\": $f291151c761cd738$exports,\n  \"hr-HR\": $ab4365ef94e29c27$exports,\n  \"hu-HU\": $4220d74edf6087a4$exports,\n  \"it-IT\": $f48e0f87d11a20c4$exports,\n  \"ja-JP\": $e70ffa011184b21f$exports,\n  \"ko-KR\": $8cd21f750e77e016$exports,\n  \"lt-LT\": $14ef7a59aab7c101$exports,\n  \"lv-LV\": $d0eeb8a545d66091$exports,\n  \"nb-NO\": $82d66923cf241a06$exports,\n  \"nl-NL\": $fd94d41f1b130e82$exports,\n  \"pl-PL\": $a7fa582cd284e9c7$exports,\n  \"pt-BR\": $036e1bd21fd7df93$exports,\n  \"pt-PT\": $76d15d2f36812ad4$exports,\n  \"ro-RO\": $9fafa3dd24f14773$exports,\n  \"ru-RU\": $b0eed9bc4b8abf58$exports,\n  \"sk-SK\": $1fab0ceefd5d2cc1$exports,\n  \"sl-SI\": $6980c92cea4a4907$exports,\n  \"sr-SP\": $cbd7304dc5d7e9ce$exports,\n  \"sv-SE\": $6b8090037b96ebc8$exports,\n  \"tr-TR\": $9439058564931691$exports,\n  \"uk-UA\": $631e4de686bb0351$exports,\n  \"zh-CN\": $02f520407e642ee3$exports,\n  \"zh-TW\": $7e8a1defad14ae4a$exports\n};\n\nfunction $be4ea813a2bafd2a$export$8c18d1b4f7232bbf(props, state) {\n  var _focusedItem$parentKe, _state$selectionManag;\n\n  var buttonRef = props.buttonRef,\n      popoverRef = props.popoverRef,\n      inputRef = props.inputRef,\n      listBoxRef = props.listBoxRef,\n      keyboardDelegate = props.keyboardDelegate,\n      shouldFocusWrap = props.shouldFocusWrap,\n      isReadOnly = props.isReadOnly,\n      isDisabled = props.isDisabled;\n  var formatMessage = $l2apB$useMessageFormatter($parcel$interopDefault($5abbcf3a77d64a68$exports));\n\n  var _$l2apB$useMenuTrigge = $l2apB$useMenuTrigger({\n    type: 'listbox',\n    isDisabled: isDisabled || isReadOnly\n  }, state, buttonRef),\n      menuTriggerProps = _$l2apB$useMenuTrigge.menuTriggerProps,\n      menuProps = _$l2apB$useMenuTrigge.menuProps;\n\n  $l2apB$listData.set(state, {\n    id: menuProps.id\n  });\n  var delegate = $l2apB$useMemo(function () {\n    return keyboardDelegate || new $l2apB$ListKeyboardDelegate(state.collection, state.disabledKeys, listBoxRef);\n  }, [keyboardDelegate, state.collection, state.disabledKeys, listBoxRef]);\n\n  var _$l2apB$useSelectable = $l2apB$useSelectableCollection({\n    selectionManager: state.selectionManager,\n    keyboardDelegate: delegate,\n    disallowTypeAhead: true,\n    disallowEmptySelection: true,\n    shouldFocusWrap: shouldFocusWrap,\n    ref: inputRef,\n    isVirtualized: true\n  }),\n      collectionProps = _$l2apB$useSelectable.collectionProps;\n\n  var onKeyDown = function onKeyDown(e) {\n    switch (e.key) {\n      case 'Enter':\n      case 'Tab':\n        if (state.isOpen && e.key === 'Enter') e.preventDefault();\n        state.commit();\n        break;\n\n      case 'Escape':\n        state.revert();\n        break;\n\n      case 'ArrowDown':\n        state.open('first', 'manual');\n        break;\n\n      case 'ArrowUp':\n        state.open('last', 'manual');\n        break;\n\n      case 'ArrowLeft':\n      case 'ArrowRight':\n        state.selectionManager.setFocusedKey(null);\n        break;\n    }\n  };\n\n  var onBlur = function onBlur(e) {\n    var _popoverRef$current;\n\n    if (e.relatedTarget === (buttonRef == null ? void 0 : buttonRef.current) || (_popoverRef$current = popoverRef.current) != null && _popoverRef$current.contains(e.relatedTarget)) return;\n    if (props.onBlur) props.onBlur(e);\n    state.setFocused(false);\n  };\n\n  var onFocus = function onFocus(e) {\n    if (state.isFocused) return;\n    if (props.onFocus) props.onFocus(e);\n    state.setFocused(true);\n  };\n\n  var _$l2apB$useTextField = $l2apB$useTextField(_objectSpread(_objectSpread({}, props), {}, {\n    onChange: state.setInputValue,\n    onKeyDown: !isReadOnly && $l2apB$chain(state.isOpen && collectionProps.onKeyDown, onKeyDown, props.onKeyDown),\n    onBlur: onBlur,\n    value: state.inputValue,\n    onFocus: onFocus,\n    autoComplete: 'off'\n  }), inputRef),\n      labelProps = _$l2apB$useTextField.labelProps,\n      inputProps = _$l2apB$useTextField.inputProps,\n      descriptionProps = _$l2apB$useTextField.descriptionProps,\n      errorMessageProps = _$l2apB$useTextField.errorMessageProps;\n\n  var onPress = function onPress(e) {\n    if (e.pointerType === 'touch') {\n      inputRef.current.focus();\n      state.toggle(null, 'manual');\n    }\n  };\n\n  var onPressStart = function onPressStart(e) {\n    if (e.pointerType !== 'touch') {\n      inputRef.current.focus();\n      state.toggle(e.pointerType === 'keyboard' || e.pointerType === 'virtual' ? 'first' : null, 'manual');\n    }\n  };\n\n  var triggerLabelProps = $l2apB$useLabels({\n    id: menuTriggerProps.id,\n    'aria-label': formatMessage('buttonLabel'),\n    'aria-labelledby': props['aria-labelledby'] || labelProps.id\n  });\n  var listBoxProps = $l2apB$useLabels({\n    id: menuProps.id,\n    'aria-label': formatMessage('listboxLabel'),\n    'aria-labelledby': props['aria-labelledby'] || labelProps.id\n  });\n  var lastEventTime = $l2apB$useRef(0);\n\n  var onTouchEnd = function onTouchEnd(e) {\n    if (isDisabled || isReadOnly) return;\n\n    if (e.timeStamp - lastEventTime.current < 500) {\n      e.preventDefault();\n      inputRef.current.focus();\n      return;\n    }\n\n    var rect = e.target.getBoundingClientRect();\n    var touch = e.changedTouches[0];\n    var centerX = Math.ceil(rect.left + 0.5 * rect.width);\n    var centerY = Math.ceil(rect.top + 0.5 * rect.height);\n\n    if (touch.clientX === centerX && touch.clientY === centerY) {\n      e.preventDefault();\n      inputRef.current.focus();\n      state.toggle(null, 'manual');\n      lastEventTime.current = e.timeStamp;\n    }\n  };\n\n  var focusedItem = state.selectionManager.focusedKey != null && state.isOpen ? state.collection.getItem(state.selectionManager.focusedKey) : undefined;\n  var sectionKey = (_focusedItem$parentKe = focusedItem == null ? void 0 : focusedItem.parentKey) != null ? _focusedItem$parentKe : null;\n  var itemKey = (_state$selectionManag = state.selectionManager.focusedKey) != null ? _state$selectionManag : null;\n  var lastSection = $l2apB$useRef(sectionKey);\n  var lastItem = $l2apB$useRef(itemKey);\n  $l2apB$useEffect(function () {\n    if ($l2apB$isAppleDevice() && focusedItem != null && itemKey !== lastItem.current) {\n      var isSelected = state.selectionManager.isSelected(itemKey);\n      var section = sectionKey != null ? state.collection.getItem(sectionKey) : null;\n      var sectionTitle = (section == null ? void 0 : section['aria-label']) || (typeof (section == null ? void 0 : section.rendered) === 'string' ? section.rendered : '') || '';\n      var announcement = formatMessage('focusAnnouncement', {\n        isGroupChange: section && sectionKey !== lastSection.current,\n        groupTitle: sectionTitle,\n        groupCount: section ? _toConsumableArray(section.childNodes).length : 0,\n        optionText: focusedItem['aria-label'] || focusedItem.textValue || '',\n        isSelected: isSelected\n      });\n      $l2apB$announce(announcement);\n    }\n\n    lastSection.current = sectionKey;\n    lastItem.current = itemKey;\n  });\n  var optionCount = $l2apB$getItemCount(state.collection);\n  var lastSize = $l2apB$useRef(optionCount);\n  var lastOpen = $l2apB$useRef(state.isOpen);\n  $l2apB$useEffect(function () {\n    var didOpenWithoutFocusedItem = state.isOpen !== lastOpen.current && (state.selectionManager.focusedKey == null || $l2apB$isAppleDevice());\n\n    if (state.isOpen && (didOpenWithoutFocusedItem || optionCount !== lastSize.current)) {\n      var announcement = formatMessage('countAnnouncement', {\n        optionCount: optionCount\n      });\n      $l2apB$announce(announcement);\n    }\n\n    lastSize.current = optionCount;\n    lastOpen.current = state.isOpen;\n  });\n  var lastSelectedKey = $l2apB$useRef(state.selectedKey);\n  $l2apB$useEffect(function () {\n    if ($l2apB$isAppleDevice() && state.isFocused && state.selectedItem && state.selectedKey !== lastSelectedKey.current) {\n      var optionText = state.selectedItem['aria-label'] || state.selectedItem.textValue || '';\n      var announcement = formatMessage('selectedAnnouncement', {\n        optionText: optionText\n      });\n      $l2apB$announce(announcement);\n    }\n\n    lastSelectedKey.current = state.selectedKey;\n  });\n  $l2apB$useEffect(function () {\n    if (state.isOpen) return $l2apB$ariaHideOutside([inputRef.current, popoverRef.current]);\n  }, [state.isOpen, inputRef, popoverRef]);\n  return {\n    labelProps: labelProps,\n    buttonProps: _objectSpread(_objectSpread(_objectSpread({}, menuTriggerProps), triggerLabelProps), {}, {\n      excludeFromTabOrder: true,\n      onPress: onPress,\n      onPressStart: onPressStart,\n      isDisabled: isDisabled || isReadOnly\n    }),\n    inputProps: $l2apB$mergeProps(inputProps, {\n      role: 'combobox',\n      'aria-expanded': menuTriggerProps['aria-expanded'],\n      'aria-controls': state.isOpen ? menuProps.id : undefined,\n      'aria-autocomplete': 'list',\n      'aria-activedescendant': focusedItem ? $l2apB$getItemId(state, focusedItem.key) : undefined,\n      onTouchEnd: onTouchEnd,\n      autoCorrect: 'off',\n      spellCheck: 'false'\n    }),\n    listBoxProps: $l2apB$mergeProps(menuProps, listBoxProps, {\n      autoFocus: state.focusStrategy,\n      shouldUseVirtualFocus: true,\n      shouldSelectOnPressUp: true,\n      shouldFocusOnHover: true\n    }),\n    descriptionProps: descriptionProps,\n    errorMessageProps: errorMessageProps\n  };\n}\n\nexport { $be4ea813a2bafd2a$export$8c18d1b4f7232bbf as useComboBox };","map":{"version":3,"sources":["packages/@react-aria/combobox/src/useComboBox.ts","packages/@react-aria/combobox/intl/*.js","packages/@react-aria/combobox/intl/ar-AE.json","packages/@react-aria/combobox/intl/bg-BG.json","packages/@react-aria/combobox/intl/cs-CZ.json","packages/@react-aria/combobox/intl/da-DK.json","packages/@react-aria/combobox/intl/de-DE.json","packages/@react-aria/combobox/intl/el-GR.json","packages/@react-aria/combobox/intl/en-US.json","packages/@react-aria/combobox/intl/es-ES.json","packages/@react-aria/combobox/intl/et-EE.json","packages/@react-aria/combobox/intl/fi-FI.json","packages/@react-aria/combobox/intl/fr-FR.json","packages/@react-aria/combobox/intl/he-IL.json","packages/@react-aria/combobox/intl/hr-HR.json","packages/@react-aria/combobox/intl/hu-HU.json","packages/@react-aria/combobox/intl/it-IT.json","packages/@react-aria/combobox/intl/ja-JP.json","packages/@react-aria/combobox/intl/ko-KR.json","packages/@react-aria/combobox/intl/lt-LT.json","packages/@react-aria/combobox/intl/lv-LV.json","packages/@react-aria/combobox/intl/nb-NO.json","packages/@react-aria/combobox/intl/nl-NL.json","packages/@react-aria/combobox/intl/pl-PL.json","packages/@react-aria/combobox/intl/pt-BR.json","packages/@react-aria/combobox/intl/pt-PT.json","packages/@react-aria/combobox/intl/ro-RO.json","packages/@react-aria/combobox/intl/ru-RU.json","packages/@react-aria/combobox/intl/sk-SK.json","packages/@react-aria/combobox/intl/sl-SI.json","packages/@react-aria/combobox/intl/sr-SP.json","packages/@react-aria/combobox/intl/sv-SE.json","packages/@react-aria/combobox/intl/tr-TR.json","packages/@react-aria/combobox/intl/uk-UA.json","packages/@react-aria/combobox/intl/zh-CN.json","packages/@react-aria/combobox/intl/zh-TW.json"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {announce} from '@react-aria/live-announcer';\nimport {AriaButtonProps} from '@react-types/button';\nimport {AriaComboBoxProps} from '@react-types/combobox';\nimport {ariaHideOutside} from '@react-aria/overlays';\nimport {AriaListBoxOptions, getItemId, listData} from '@react-aria/listbox';\nimport {chain, isAppleDevice, mergeProps, useLabels} from '@react-aria/utils';\nimport {ComboBoxState} from '@react-stately/combobox';\nimport {FocusEvent, HTMLAttributes, InputHTMLAttributes, KeyboardEvent, RefObject, TouchEvent, useEffect, useMemo, useRef} from 'react';\nimport {getItemCount} from '@react-stately/collections';\n// @ts-ignore\nimport intlMessages from '../intl/*.json';\nimport {KeyboardDelegate, PressEvent} from '@react-types/shared';\nimport {ListKeyboardDelegate, useSelectableCollection} from '@react-aria/selection';\nimport {useMenuTrigger} from '@react-aria/menu';\nimport {useMessageFormatter} from '@react-aria/i18n';\nimport {useTextField} from '@react-aria/textfield';\n\ninterface AriaComboBoxOptions<T> extends AriaComboBoxProps<T> {\n  /** The ref for the input element. */\n  inputRef: RefObject<HTMLInputElement>,\n  /** The ref for the list box popover. */\n  popoverRef: RefObject<HTMLDivElement>,\n  /** The ref for the list box. */\n  listBoxRef: RefObject<HTMLElement>,\n  /** The ref for the optional list box popup trigger button.  */\n  buttonRef?: RefObject<HTMLElement>,\n  /** An optional keyboard delegate implementation, to override the default. */\n  keyboardDelegate?: KeyboardDelegate\n}\n\ninterface ComboBoxAria<T> {\n  /** Props for the label element. */\n  labelProps: HTMLAttributes<HTMLElement>,\n  /** Props for the combo box input element. */\n  inputProps: InputHTMLAttributes<HTMLInputElement>,\n  /** Props for the list box, to be passed to [useListBox](useListBox.html). */\n  listBoxProps: AriaListBoxOptions<T>,\n  /** Props for the optional trigger button, to be passed to [useButton](useButton.html). */\n  buttonProps: AriaButtonProps,\n  /** Props for the combo box description element, if any. */\n  descriptionProps: HTMLAttributes<HTMLElement>,\n  /** Props for the combo box error message element, if any. */\n  errorMessageProps: HTMLAttributes<HTMLElement>\n}\n\n/**\n * Provides the behavior and accessibility implementation for a combo box component.\n * A combo box combines a text input with a listbox, allowing users to filter a list of options to items matching a query.\n * @param props - Props for the combo box.\n * @param state - State for the select, as returned by `useComboBoxState`.\n */\nexport function useComboBox<T>(props: AriaComboBoxOptions<T>, state: ComboBoxState<T>): ComboBoxAria<T> {\n  let {\n    buttonRef,\n    popoverRef,\n    inputRef,\n    listBoxRef,\n    keyboardDelegate,\n    // completionMode = 'suggest',\n    shouldFocusWrap,\n    isReadOnly,\n    isDisabled\n  } = props;\n\n  let formatMessage = useMessageFormatter(intlMessages);\n  let {menuTriggerProps, menuProps} = useMenuTrigger(\n    {\n      type: 'listbox',\n      isDisabled: isDisabled || isReadOnly\n    },\n    state,\n    buttonRef\n  );\n\n  // Set listbox id so it can be used when calling getItemId later\n  listData.set(state, {id: menuProps.id});\n\n  // By default, a KeyboardDelegate is provided which uses the DOM to query layout information (e.g. for page up/page down).\n  // When virtualized, the layout object will be passed in as a prop and override this.\n  let delegate = useMemo(() =>\n    keyboardDelegate ||\n    new ListKeyboardDelegate(state.collection, state.disabledKeys, listBoxRef)\n  , [keyboardDelegate, state.collection, state.disabledKeys, listBoxRef]);\n\n  // Use useSelectableCollection to get the keyboard handlers to apply to the textfield\n  let {collectionProps} = useSelectableCollection({\n    selectionManager: state.selectionManager,\n    keyboardDelegate: delegate,\n    disallowTypeAhead: true,\n    disallowEmptySelection: true,\n    shouldFocusWrap,\n    ref: inputRef,\n    // Prevent item scroll behavior from being applied here, should be handled in the user's Popover + ListBox component\n    isVirtualized: true\n  });\n\n  // For textfield specific keydown operations\n  let onKeyDown = (e: KeyboardEvent) => {\n    switch (e.key) {\n      case 'Enter':\n      case 'Tab':\n        // Prevent form submission if menu is open since we may be selecting a option\n        if (state.isOpen && e.key === 'Enter') {\n          e.preventDefault();\n        }\n\n        state.commit();\n        break;\n      case 'Escape':\n        state.revert();\n        break;\n      case 'ArrowDown':\n        state.open('first', 'manual');\n        break;\n      case 'ArrowUp':\n        state.open('last', 'manual');\n        break;\n      case 'ArrowLeft':\n      case 'ArrowRight':\n        state.selectionManager.setFocusedKey(null);\n        break;\n    }\n  };\n\n  let onBlur = (e: FocusEvent) => {\n    // Ignore blur if focused moved to the button or into the popover.\n    if (e.relatedTarget === buttonRef?.current || popoverRef.current?.contains(e.relatedTarget as HTMLElement)) {\n      return;\n    }\n\n    if (props.onBlur) {\n      props.onBlur(e);\n    }\n\n    state.setFocused(false);\n  };\n\n  let onFocus = (e: FocusEvent) => {\n    if (state.isFocused) {\n      return;\n    }\n\n    if (props.onFocus) {\n      props.onFocus(e);\n    }\n\n    state.setFocused(true);\n  };\n\n  let {labelProps, inputProps, descriptionProps, errorMessageProps} = useTextField({\n    ...props,\n    onChange: state.setInputValue,\n    onKeyDown: !isReadOnly && chain(state.isOpen && collectionProps.onKeyDown, onKeyDown, props.onKeyDown),\n    onBlur,\n    value: state.inputValue,\n    onFocus,\n    autoComplete: 'off'\n  }, inputRef);\n\n  // Press handlers for the ComboBox button\n  let onPress = (e: PressEvent) => {\n    if (e.pointerType === 'touch') {\n      // Focus the input field in case it isn't focused yet\n      inputRef.current.focus();\n      state.toggle(null, 'manual');\n    }\n  };\n\n  let onPressStart = (e: PressEvent) => {\n    if (e.pointerType !== 'touch') {\n      inputRef.current.focus();\n      state.toggle((e.pointerType === 'keyboard' || e.pointerType === 'virtual') ? 'first' : null, 'manual');\n    }\n  };\n\n  let triggerLabelProps = useLabels({\n    id: menuTriggerProps.id,\n    'aria-label': formatMessage('buttonLabel'),\n    'aria-labelledby': props['aria-labelledby'] || labelProps.id\n  });\n\n  let listBoxProps = useLabels({\n    id: menuProps.id,\n    'aria-label': formatMessage('listboxLabel'),\n    'aria-labelledby': props['aria-labelledby'] || labelProps.id\n  });\n\n  // If a touch happens on direct center of ComboBox input, might be virtual click from iPad so open ComboBox menu\n  let lastEventTime = useRef(0);\n  let onTouchEnd = (e: TouchEvent) => {\n    if (isDisabled || isReadOnly) {\n      return;\n    }\n\n    // Sometimes VoiceOver on iOS fires two touchend events in quick succession. Ignore the second one.\n    if (e.timeStamp - lastEventTime.current < 500) {\n      e.preventDefault();\n      inputRef.current.focus();\n      return;\n    }\n\n    let rect = (e.target as HTMLElement).getBoundingClientRect();\n    let touch = e.changedTouches[0];\n\n    let centerX = Math.ceil(rect.left + .5 * rect.width);\n    let centerY = Math.ceil(rect.top + .5 * rect.height);\n\n    if (touch.clientX === centerX && touch.clientY === centerY) {\n      e.preventDefault();\n      inputRef.current.focus();\n      state.toggle(null, 'manual');\n\n      lastEventTime.current = e.timeStamp;\n    }\n  };\n\n  // VoiceOver has issues with announcing aria-activedescendant properly on change\n  // (especially on iOS). We use a live region announcer to announce focus changes\n  // manually. In addition, section titles are announced when navigating into a new section.\n  let focusedItem = state.selectionManager.focusedKey != null && state.isOpen\n    ? state.collection.getItem(state.selectionManager.focusedKey)\n    : undefined;\n  let sectionKey = focusedItem?.parentKey ?? null;\n  let itemKey = state.selectionManager.focusedKey ?? null;\n  let lastSection = useRef(sectionKey);\n  let lastItem = useRef(itemKey);\n  useEffect(() => {\n    if (isAppleDevice() && focusedItem != null && itemKey !== lastItem.current) {\n      let isSelected = state.selectionManager.isSelected(itemKey);\n      let section = sectionKey != null ? state.collection.getItem(sectionKey) : null;\n      let sectionTitle = section?.['aria-label'] || (typeof section?.rendered === 'string' ? section.rendered : '') || '';\n\n      let announcement = formatMessage('focusAnnouncement', {\n        isGroupChange: section && sectionKey !== lastSection.current,\n        groupTitle: sectionTitle,\n        groupCount: section ? [...section.childNodes].length : 0,\n        optionText: focusedItem['aria-label'] || focusedItem.textValue || '',\n        isSelected\n      });\n\n      announce(announcement);\n    }\n\n    lastSection.current = sectionKey;\n    lastItem.current = itemKey;\n  });\n\n  // Announce the number of available suggestions when it changes\n  let optionCount = getItemCount(state.collection);\n  let lastSize = useRef(optionCount);\n  let lastOpen = useRef(state.isOpen);\n  useEffect(() => {\n    // Only announce the number of options available when the menu opens if there is no\n    // focused item, otherwise screen readers will typically read e.g. \"1 of 6\".\n    // The exception is VoiceOver since this isn't included in the message above.\n    let didOpenWithoutFocusedItem =\n      state.isOpen !== lastOpen.current &&\n      (state.selectionManager.focusedKey == null || isAppleDevice());\n\n    if (state.isOpen && (didOpenWithoutFocusedItem || optionCount !== lastSize.current)) {\n      let announcement = formatMessage('countAnnouncement', {optionCount});\n      announce(announcement);\n    }\n\n    lastSize.current = optionCount;\n    lastOpen.current = state.isOpen;\n  });\n\n  // Announce when a selection occurs for VoiceOver. Other screen readers typically do this automatically.\n  let lastSelectedKey = useRef(state.selectedKey);\n  useEffect(() => {\n    if (isAppleDevice() && state.isFocused && state.selectedItem && state.selectedKey !== lastSelectedKey.current) {\n      let optionText = state.selectedItem['aria-label'] || state.selectedItem.textValue || '';\n      let announcement = formatMessage('selectedAnnouncement', {optionText});\n      announce(announcement);\n    }\n\n    lastSelectedKey.current = state.selectedKey;\n  });\n\n  useEffect(() => {\n    if (state.isOpen) {\n      return ariaHideOutside([inputRef.current, popoverRef.current]);\n    }\n  }, [state.isOpen, inputRef, popoverRef]);\n\n  return {\n    labelProps,\n    buttonProps: {\n      ...menuTriggerProps,\n      ...triggerLabelProps,\n      excludeFromTabOrder: true,\n      onPress,\n      onPressStart,\n      isDisabled: isDisabled || isReadOnly\n    },\n    inputProps: mergeProps(inputProps, {\n      role: 'combobox',\n      'aria-expanded': menuTriggerProps['aria-expanded'],\n      'aria-controls': state.isOpen ? menuProps.id : undefined,\n      // TODO: readd proper logic for completionMode = complete (aria-autocomplete: both)\n      'aria-autocomplete': 'list',\n      'aria-activedescendant': focusedItem ? getItemId(state, focusedItem.key) : undefined,\n      onTouchEnd,\n      // This disable's iOS's autocorrect suggestions, since the combo box provides its own suggestions.\n      autoCorrect: 'off',\n      // This disable's the macOS Safari spell check auto corrections.\n      spellCheck: 'false'\n    }),\n    listBoxProps: mergeProps(menuProps, listBoxProps, {\n      autoFocus: state.focusStrategy,\n      shouldUseVirtualFocus: true,\n      shouldSelectOnPressUp: true,\n      shouldFocusOnHover: true\n    }),\n    descriptionProps,\n    errorMessageProps\n  };\n}\n","const _temp0 = require(\"./ar-AE.json\");\nconst _temp1 = require(\"./bg-BG.json\");\nconst _temp2 = require(\"./cs-CZ.json\");\nconst _temp3 = require(\"./da-DK.json\");\nconst _temp4 = require(\"./de-DE.json\");\nconst _temp5 = require(\"./el-GR.json\");\nconst _temp6 = require(\"./en-US.json\");\nconst _temp7 = require(\"./es-ES.json\");\nconst _temp8 = require(\"./et-EE.json\");\nconst _temp9 = require(\"./fi-FI.json\");\nconst _temp10 = require(\"./fr-FR.json\");\nconst _temp11 = require(\"./he-IL.json\");\nconst _temp12 = require(\"./hr-HR.json\");\nconst _temp13 = require(\"./hu-HU.json\");\nconst _temp14 = require(\"./it-IT.json\");\nconst _temp15 = require(\"./ja-JP.json\");\nconst _temp16 = require(\"./ko-KR.json\");\nconst _temp17 = require(\"./lt-LT.json\");\nconst _temp18 = require(\"./lv-LV.json\");\nconst _temp19 = require(\"./nb-NO.json\");\nconst _temp20 = require(\"./nl-NL.json\");\nconst _temp21 = require(\"./pl-PL.json\");\nconst _temp22 = require(\"./pt-BR.json\");\nconst _temp23 = require(\"./pt-PT.json\");\nconst _temp24 = require(\"./ro-RO.json\");\nconst _temp25 = require(\"./ru-RU.json\");\nconst _temp26 = require(\"./sk-SK.json\");\nconst _temp27 = require(\"./sl-SI.json\");\nconst _temp28 = require(\"./sr-SP.json\");\nconst _temp29 = require(\"./sv-SE.json\");\nconst _temp30 = require(\"./tr-TR.json\");\nconst _temp31 = require(\"./uk-UA.json\");\nconst _temp32 = require(\"./zh-CN.json\");\nconst _temp33 = require(\"./zh-TW.json\");\nmodule.exports = {\n  \"ar-AE\": _temp0,\n  \"bg-BG\": _temp1,\n  \"cs-CZ\": _temp2,\n  \"da-DK\": _temp3,\n  \"de-DE\": _temp4,\n  \"el-GR\": _temp5,\n  \"en-US\": _temp6,\n  \"es-ES\": _temp7,\n  \"et-EE\": _temp8,\n  \"fi-FI\": _temp9,\n  \"fr-FR\": _temp10,\n  \"he-IL\": _temp11,\n  \"hr-HR\": _temp12,\n  \"hu-HU\": _temp13,\n  \"it-IT\": _temp14,\n  \"ja-JP\": _temp15,\n  \"ko-KR\": _temp16,\n  \"lt-LT\": _temp17,\n  \"lv-LV\": _temp18,\n  \"nb-NO\": _temp19,\n  \"nl-NL\": _temp20,\n  \"pl-PL\": _temp21,\n  \"pt-BR\": _temp22,\n  \"pt-PT\": _temp23,\n  \"ro-RO\": _temp24,\n  \"ru-RU\": _temp25,\n  \"sk-SK\": _temp26,\n  \"sl-SI\": _temp27,\n  \"sr-SP\": _temp28,\n  \"sv-SE\": _temp29,\n  \"tr-TR\": _temp30,\n  \"uk-UA\": _temp31,\n  \"zh-CN\": _temp32,\n  \"zh-TW\": _temp33\n}","{\n  \"buttonLabel\": \"عرض المقترحات\",\n  \"countAnnouncement\": \"{optionCount, plural, one {# خيار} other {# خيارات}} متاحة.\",\n  \"focusAnnouncement\": \"{isGroupChange, select, true {المجموعة المدخلة {groupTitle}, مع {groupCount, plural, one {# خيار} other {# خيارات}}. } other {}}{optionText}{isSelected, select, true {, محدد} other {}}\",\n  \"listboxLabel\": \"مقترحات\",\n  \"selectedAnnouncement\": \"{optionText}، محدد\"\n}\n","{\n  \"buttonLabel\": \"Покажи предложения\",\n  \"countAnnouncement\": \"{optionCount, plural, one {# опция} other {# опции}} на разположение.\",\n  \"focusAnnouncement\": \"{isGroupChange, select, true {Въведена група {groupTitle}, с {groupCount, plural, one {# опция} other {# опции}}. } other {}}{optionText}{isSelected, select, true {, избрани} other {}}\",\n  \"listboxLabel\": \"Предложения\",\n  \"selectedAnnouncement\": \"{optionText}, избрани\"\n}\n","{\n  \"buttonLabel\": \"Zobrazit doporučení\",\n  \"countAnnouncement\": \"K dispozici {optionCount, plural, one {je # možnost} other {jsou/je # možnosti/-í}}.\",\n  \"focusAnnouncement\": \"{isGroupChange, select, true {Zadaná skupina „{groupTitle}“ {groupCount, plural, one {s # možností} other {se # možnostmi}}. } other {}}{optionText}{isSelected, select, true { (vybráno)} other {}}\",\n  \"listboxLabel\": \"Návrhy\",\n  \"selectedAnnouncement\": \"{optionText}, vybráno\"\n}\n","{\n  \"buttonLabel\": \"Vis forslag\",\n  \"countAnnouncement\": \"{optionCount, plural, one {# mulighed tilgængelig} other {# muligheder tilgængelige}}.\",\n  \"focusAnnouncement\": \"{isGroupChange, select, true {Angivet gruppe {groupTitle}, med {groupCount, plural, one {# mulighed} other {# muligheder}}. } other {}}{optionText}{isSelected, select, true {, valgt} other {}}\",\n  \"listboxLabel\": \"Forslag\",\n  \"selectedAnnouncement\": \"{optionText}, valgt\"\n}\n","{\n  \"buttonLabel\": \"Empfehlungen anzeigen\",\n  \"countAnnouncement\": \"{optionCount, plural, one {# Option} other {# Optionen}} verfügbar.\",\n  \"focusAnnouncement\": \"{isGroupChange, select, true {Eingetretene Gruppe {groupTitle}, mit {groupCount, plural, one {# Option} other {# Optionen}}. } other {}}{optionText}{isSelected, select, true {, ausgewählt} other {}}\",\n  \"listboxLabel\": \"Empfehlungen\",\n  \"selectedAnnouncement\": \"{optionText}, ausgewählt\"\n}\n","{\n  \"buttonLabel\": \"Προβολή προτάσεων\",\n  \"countAnnouncement\": \"{optionCount, plural, one {# επιλογή} other {# επιλογές }} διαθέσιμες.\",\n  \"focusAnnouncement\": \"{isGroupChange, select, true {Εισαγμένη ομάδα {groupTitle}, με {groupCount, plural, one {# επιλογή} other {# επιλογές}}. } other {}}{optionText}{isSelected, select, true {, επιλεγμένο} other {}}\",\n  \"listboxLabel\": \"Προτάσεις\",\n  \"selectedAnnouncement\": \"{optionText}, επιλέχθηκε\"\n}\n","{\n  \"focusAnnouncement\": \"{isGroupChange, select, true {Entered group {groupTitle}, with {groupCount, plural, one {# option} other {# options}}. } other {}}{optionText}{isSelected, select, true {, selected} other {}}\",\n  \"countAnnouncement\": \"{optionCount, plural, one {# option} other {# options}} available.\",\n  \"selectedAnnouncement\": \"{optionText}, selected\",\n  \"buttonLabel\": \"Show suggestions\",\n  \"listboxLabel\": \"Suggestions\"\n}\n","{\n  \"buttonLabel\": \"Mostrar sugerencias\",\n  \"countAnnouncement\": \"{optionCount, plural, one {# opción} other {# opciones}} disponible(s).\",\n  \"focusAnnouncement\": \"{isGroupChange, select, true {Se ha unido al grupo {groupTitle}, con {groupCount, plural, one {# opción} other {# opciones}}. } other {}}{optionText}{isSelected, select, true {, seleccionado} other {}}\",\n  \"listboxLabel\": \"Sugerencias\",\n  \"selectedAnnouncement\": \"{optionText}, seleccionado\"\n}\n","{\n  \"buttonLabel\": \"Kuva soovitused\",\n  \"countAnnouncement\": \"{optionCount, plural, one {# valik} other {# valikud}} saadaval.\",\n  \"focusAnnouncement\": \"{isGroupChange, select, true {Sisestatud rühm {groupTitle}, valikuga {groupCount, plural, one {# valik} other {# valikud}}. } other {}}{optionText}{isSelected, select, true {, valitud} other {}}\",\n  \"listboxLabel\": \"Soovitused\",\n  \"selectedAnnouncement\": \"{optionText}, valitud\"\n}\n","{\n  \"buttonLabel\": \"Näytä ehdotukset\",\n  \"countAnnouncement\": \"{optionCount, plural, one {# vaihtoehto} other {# vaihtoehdot}} saatavilla.\",\n  \"focusAnnouncement\": \"{isGroupChange, select, true {Mentiin ryhmään {groupTitle}, {groupCount, plural, one {# vaihtoehdon} other {# vaihtoehdon}} kanssa.} other {}}{optionText}{isSelected, select, true {, valittu} other {}}\",\n  \"listboxLabel\": \"Ehdotukset\",\n  \"selectedAnnouncement\": \"{optionText}, valittu\"\n}\n","{\n  \"buttonLabel\": \"Afficher les suggestions\",\n  \"countAnnouncement\": \"{optionCount, plural, one {# option} other {# options}} disponible(s).\",\n  \"focusAnnouncement\": \"{isGroupChange, select, true {Groupe {groupTitle} saisi, avec {groupCount, plural, one {# option} other {# options}}. } other {}}{optionText}{isSelected, select, true {, sélectionné(s)} other {}}\",\n  \"listboxLabel\": \"Suggestions\",\n  \"selectedAnnouncement\": \"{optionText}, sélectionné\"\n}\n","{\n  \"buttonLabel\": \"הצג הצעות\",\n  \"countAnnouncement\": \"{optionCount, plural, one {אפשרות #} other {# אפשרויות}} במצב זמין.\",\n  \"focusAnnouncement\": \"{isGroupChange, select, true {נכנס לקבוצה {groupTitle}, עם {groupCount, plural, one {אפשרות #} other {# אפשרויות}}. } other {}}{optionText}{isSelected, select, true {, נבחר} other {}}\",\n  \"listboxLabel\": \"הצעות\",\n  \"selectedAnnouncement\": \"{optionText}, נבחר\"\n}\n","{\n  \"buttonLabel\": \"Prikaži prijedloge\",\n  \"countAnnouncement\": \"Dostupno još: {optionCount, plural, one {# opcija} other {# opcije/a}}.\",\n  \"focusAnnouncement\": \"{isGroupChange, select, true {Unesena skupina {groupTitle}, s {groupCount, plural, one {# opcijom} other {# opcije/a}}. } other {}}{optionText}{isSelected, select, true {, odabranih} other {}}\",\n  \"listboxLabel\": \"Prijedlozi\",\n  \"selectedAnnouncement\": \"{optionText}, odabrano\"\n}\n","{\n  \"buttonLabel\": \"Javaslatok megjelenítése\",\n  \"countAnnouncement\": \"{optionCount, plural, one {# lehetőség} other {# lehetőség}} áll rendelkezésre.\",\n  \"focusAnnouncement\": \"{isGroupChange, select, true {Belépett a(z) {groupTitle} csoportba, amely {groupCount, plural, one {# lehetőséget} other {# lehetőséget}} tartalmaz. } other {}}{optionText}{isSelected, select, true {, kijelölve} other {}}\",\n  \"listboxLabel\": \"Javaslatok\",\n  \"selectedAnnouncement\": \"{optionText}, kijelölve\"\n}\n","{\n  \"buttonLabel\": \"Mostra suggerimenti\",\n  \"countAnnouncement\": \"{optionCount, plural, one {# opzione disponibile} other {# opzioni disponibili}}.\",\n  \"focusAnnouncement\": \"{isGroupChange, select, true {Ingresso nel gruppo {groupTitle}, con {groupCount, plural, one {# opzione} other {# opzioni}}. } other {}}{optionText}{isSelected, select, true {, selezionato} other {}}\",\n  \"listboxLabel\": \"Suggerimenti\",\n  \"selectedAnnouncement\": \"{optionText}, selezionato\"\n}\n","{\n  \"buttonLabel\": \"候補を表示\",\n  \"countAnnouncement\": \"{optionCount, plural, one {# 個のオプション} other {# 個のオプション}}を利用できます。\",\n  \"focusAnnouncement\": \"{isGroupChange, select, true {入力されたグループ {groupTitle}、{groupCount, plural, one {# 個のオプション} other {# 個のオプション}}を含む。} other {}}{optionText}{isSelected, select, true {、選択済み} other {}}\",\n  \"listboxLabel\": \"候補\",\n  \"selectedAnnouncement\": \"{optionText}、選択済み\"\n}\n","{\n  \"buttonLabel\": \"제안 사항 표시\",\n  \"countAnnouncement\": \"{optionCount, plural, one {#개 옵션} other {#개 옵션}}을 사용할 수 있습니다.\",\n  \"focusAnnouncement\": \"{isGroupChange, select, true {입력한 그룹 {groupTitle}, {groupCount, plural, one {#개 옵션} other {#개 옵션}}. } other {}}{optionText}{isSelected, select, true {, 선택됨} other {}}\",\n  \"listboxLabel\": \"제안\",\n  \"selectedAnnouncement\": \"{optionText}, 선택됨\"\n}\n","{\n  \"buttonLabel\": \"Rodyti pasiūlymus\",\n  \"countAnnouncement\": \"Yra {optionCount, plural, one {# parinktis} other {# parinktys (-ių)}}.\",\n  \"focusAnnouncement\": \"{isGroupChange, select, true {Įvesta grupė {groupTitle}, su {groupCount, plural, one {# parinktimi} other {# parinktimis (-ių)}}. } other {}}{optionText}{isSelected, select, true {, pasirinkta} other {}}\",\n  \"listboxLabel\": \"Pasiūlymai\",\n  \"selectedAnnouncement\": \"{optionText}, pasirinkta\"\n}\n","{\n  \"buttonLabel\": \"Rādīt ieteikumus\",\n  \"countAnnouncement\": \"Pieejamo opciju skaits: {optionCount, plural, one {# opcija} other {# opcijas}}.\",\n  \"focusAnnouncement\": \"{isGroupChange, select, true {Ievadīta grupa {groupTitle}, ar {groupCount, plural, one {# opciju} other {# opcijām}}. } other {}}{optionText}{isSelected, select, true {, atlasīta} other {}}\",\n  \"listboxLabel\": \"Ieteikumi\",\n  \"selectedAnnouncement\": \"{optionText}, atlasīta\"\n}\n","{\n  \"buttonLabel\": \"Vis forslag\",\n  \"countAnnouncement\": \"{optionCount, plural, one {# alternativ} other {# alternativer}} finnes.\",\n  \"focusAnnouncement\": \"{isGroupChange, select, true {Angitt gruppe {groupTitle}, med {groupCount, plural, one {# alternativ} other {# alternativer}}. } other {}}{optionText}{isSelected, select, true {, valgt} other {}}\",\n  \"listboxLabel\": \"Forslag\",\n  \"selectedAnnouncement\": \"{optionText}, valgt\"\n}\n","{\n  \"buttonLabel\": \"Suggesties weergeven\",\n  \"countAnnouncement\": \"{optionCount, plural, one {# optie} other {# opties}} beschikbaar.\",\n  \"focusAnnouncement\": \"{isGroupChange, select, true {Groep {groupTitle} ingevoerd met {groupCount, plural, one {# optie} other {# opties}}. } other {}}{optionText}{isSelected, select, true {, geselecteerd} other {}}\",\n  \"listboxLabel\": \"Suggesties\",\n  \"selectedAnnouncement\": \"{optionText}, geselecteerd\"\n}\n","{\n  \"buttonLabel\": \"Wyświetlaj sugestie\",\n  \"countAnnouncement\": \"dostępna/dostępne(-nych) {optionCount, plural, one {# opcja} other {# opcje(-i)}}.\",\n  \"focusAnnouncement\": \"{isGroupChange, select, true {Dołączono do grupy {groupTitle}, z {groupCount, plural, one {# opcją} other {# opcjami}}. } other {}}{optionText}{isSelected, select, true {, wybrano} other {}}\",\n  \"listboxLabel\": \"Sugestie\",\n  \"selectedAnnouncement\": \"{optionText}, wybrano\"\n}\n","{\n  \"buttonLabel\": \"Mostrar sugestões\",\n  \"countAnnouncement\": \"{optionCount, plural, one {# opção} other {# opções}} disponível.\",\n  \"focusAnnouncement\": \"{isGroupChange, select, true {Grupo inserido {groupTitle}, com {groupCount, plural, one {# opção} other {# opções}}. } other {}}{optionText}{isSelected, select, true {, selecionado} other {}}\",\n  \"listboxLabel\": \"Sugestões\",\n  \"selectedAnnouncement\": \"{optionText}, selecionado\"\n}\n","{\n  \"buttonLabel\": \"Apresentar sugestões\",\n  \"countAnnouncement\": \"{optionCount, plural, one {# opção} other {# opções}} disponível.\",\n  \"focusAnnouncement\": \"{isGroupChange, select, true {Grupo introduzido {groupTitle}, com {groupCount, plural, one {# opção} other {# opções}}. } other {}}{optionText}{isSelected, select, true {, selecionado} other {}}\",\n  \"listboxLabel\": \"Sugestões\",\n  \"selectedAnnouncement\": \"{optionText}, selecionado\"\n}\n","{\n  \"buttonLabel\": \"Afișare sugestii\",\n  \"countAnnouncement\": \"{optionCount, plural, one {# opțiune} other {# opțiuni}} disponibile.\",\n  \"focusAnnouncement\": \"{isGroupChange, select, true {Grup {groupTitle} introdus, cu {groupCount, plural, one {# opțiune} other {# opțiuni}}. } other {}}{optionText}{isSelected, select, true {, selectat} other {}}\",\n  \"listboxLabel\": \"Sugestii\",\n  \"selectedAnnouncement\": \"{optionText}, selectat\"\n}\n","{\n  \"buttonLabel\": \"Показать предложения\",\n  \"countAnnouncement\": \"{optionCount, plural, one {# параметр} other {# параметров}} доступно.\",\n  \"focusAnnouncement\": \"{isGroupChange, select, true {Введенная группа {groupTitle}, с {groupCount, plural, one {# параметром} other {# параметрами}}. } other {}}{optionText}{isSelected, select, true {, выбранными} other {}}\",\n  \"listboxLabel\": \"Предложения\",\n  \"selectedAnnouncement\": \"{optionText}, выбрано\"\n}\n","{\n  \"buttonLabel\": \"Zobraziť návrhy\",\n  \"countAnnouncement\": \"{optionCount, plural, one {# možnosť} other {# možnosti/-í}} k dispozícii.\",\n  \"focusAnnouncement\": \"{isGroupChange, select, true {Zadaná skupina {groupTitle}, s {groupCount, plural, one {# možnosťou} other {# možnosťami}}. } other {}}{optionText}{isSelected, select, true {, vybraté} other {}}\",\n  \"listboxLabel\": \"Návrhy\",\n  \"selectedAnnouncement\": \"{optionText}, vybraté\"\n}\n","{\n  \"buttonLabel\": \"Prikaži predloge\",\n  \"countAnnouncement\": \"Na voljo je {optionCount, plural, one {# opcija} other {# opcije}}.\",\n  \"focusAnnouncement\": \"{isGroupChange, select, true {Vnesena skupina {groupTitle}, z {groupCount, plural, one {# opcija} other {# opcije}}. } other {}}{optionText}{isSelected, select, true {, izbrano} other {}}\",\n  \"listboxLabel\": \"Predlogi\",\n  \"selectedAnnouncement\": \"{optionText}, izbrano\"\n}\n","{\n  \"buttonLabel\": \"Prikaži predloge\",\n  \"countAnnouncement\": \"Dostupno još: {optionCount, plural, one {# opcija} other {# opcije/a}}.\",\n  \"focusAnnouncement\": \"{isGroupChange, select, true {Unesena grupa {groupTitle}, s {groupCount, plural, one {# opcijom} other {# optione/a}}. } other {}}{optionText}{isSelected, select, true {, izabranih} other {}}\",\n  \"listboxLabel\": \"Predlozi\",\n  \"selectedAnnouncement\": \"{optionText}, izabrano\"\n}\n","{\n  \"buttonLabel\": \"Visa förslag\",\n  \"countAnnouncement\": \"{optionCount, plural, one {# alternativ} other {# alternativ}} tillgängliga.\",\n  \"focusAnnouncement\": \"{isGroupChange, select, true {Ingick i gruppen {groupTitle} med {groupCount, plural, one {# alternativ} other {# alternativ}}. } other {}}{optionText}{isSelected, select, true {, valda} other {}}\",\n  \"listboxLabel\": \"Förslag\",\n  \"selectedAnnouncement\": \"{optionText}, valda\"\n}\n","{\n  \"buttonLabel\": \"Önerileri göster\",\n  \"countAnnouncement\": \"{optionCount, plural, one {# seçenek} other {# seçenekler}} kullanılabilir.\",\n  \"focusAnnouncement\": \"{isGroupChange, select, true {Girilen grup {groupTitle}, ile {groupCount, plural, one {# seçenek} other {# seçenekler}}. } other {}}{optionText}{isSelected, select, true {, seçildi} other {}}\",\n  \"listboxLabel\": \"Öneriler\",\n  \"selectedAnnouncement\": \"{optionText}, seçildi\"\n}\n","{\n  \"buttonLabel\": \"Показати пропозиції\",\n  \"countAnnouncement\": \"{optionCount, plural, one {# параметр} other {# параметри(-ів)}} доступно.\",\n  \"focusAnnouncement\": \"{isGroupChange, select, true {Введена група {groupTitle}, з {groupCount, plural, one {# параметр} other {# параметри(-ів)}}. } other {}}{optionText}{isSelected, select, true {, вибрано} other {}}\",\n  \"listboxLabel\": \"Пропозиції\",\n  \"selectedAnnouncement\": \"{optionText}, вибрано\"\n}\n","{\n  \"buttonLabel\": \"显示建议\",\n  \"countAnnouncement\": \"有 {optionCount, plural, one {# 个选项} other {# 个选项}}可用。\",\n  \"focusAnnouncement\": \"{isGroupChange, select, true {进入了 {groupTitle} 组，其中有 {groupCount, plural, one {# 个选项} other {# 个选项}}. } other {}}{optionText}{isSelected, select, true {, 已选择} other {}}\",\n  \"listboxLabel\": \"建议\",\n  \"selectedAnnouncement\": \"{optionText}, 已选择\"\n}\n","{\n  \"buttonLabel\": \"顯示建議\",\n  \"countAnnouncement\": \"{optionCount, plural, one {# 選項} other {# 選項}} 可用。\",\n  \"focusAnnouncement\": \"{isGroupChange, select, true {輸入的群組 {groupTitle}, 有 {groupCount, plural, one {# 選項} other {# 選項}}. } other {}}{optionText}{isSelected, select, true {, 已選取} other {}}\",\n  \"listboxLabel\": \"建議\",\n  \"selectedAnnouncement\": \"{optionText}, 已選取\"\n}\n"]},"metadata":{},"sourceType":"module"}