{"version":3,"sources":["../../../src/localization/getLocaleName.ts"],"sourcesContent":["import type { LocalesValues } from '@intlayer/config/client';\n\nconst dnCache = new Map<LocalesValues, Intl.DisplayNames>();\n\nexport const getLocaleName = (\n  displayLocale: LocalesValues,\n  targetLocale: LocalesValues = displayLocale\n): string => {\n  if (typeof Intl?.DisplayNames !== 'function') {\n    if (process.env.NODE_ENV === 'development') {\n      console.warn(\n        `Intl.DisplayNames is not supported; falling back to raw locale (${displayLocale}). Consider adding a polyfill as https://formatjs.github.io/docs/polyfills/intl-displaynames/`\n      );\n    }\n    return displayLocale;\n  }\n\n  // new Intl.DisplayNames() is fairly heavy: under the hood every call parses CLDR data and builds a resolver table. In your LocaleSwitcher it’s invoked:\n  let dn = dnCache.get(targetLocale);\n  if (!dn) {\n    dn = new Intl.DisplayNames([targetLocale], { type: 'language' });\n    dnCache.set(targetLocale, dn);\n  }\n\n  return dn.of(displayLocale) ?? 'Unknown locale';\n};\n"],"mappings":"AAEA,MAAM,UAAU,oBAAI,IAAsC;AAEnD,MAAM,gBAAgB,CAC3B,eACA,eAA8B,kBACnB;AACX,MAAI,OAAO,MAAM,iBAAiB,YAAY;AAC5C,QAAI,QAAQ,IAAI,aAAa,eAAe;AAC1C,cAAQ;AAAA,QACN,mEAAmE,aAAa;AAAA,MAClF;AAAA,IACF;AACA,WAAO;AAAA,EACT;AAGA,MAAI,KAAK,QAAQ,IAAI,YAAY;AACjC,MAAI,CAAC,IAAI;AACP,SAAK,IAAI,KAAK,aAAa,CAAC,YAAY,GAAG,EAAE,MAAM,WAAW,CAAC;AAC/D,YAAQ,IAAI,cAAc,EAAE;AAAA,EAC9B;AAEA,SAAO,GAAG,GAAG,aAAa,KAAK;AACjC;","names":[]}