one
Version:
One is a React framework for web, iOS, and Android apps.
1 lines • 4.49 kB
Source Map (JSON)
{"version":3,"file":"index.js","names":[],"sources":["esm/platform/localization/index.js"],"sourcesContent":["import { useEffect, useState } from \"react\";\nimport { FALLBACK_CALENDAR, FALLBACK_LOCALE } from \"./map\";\nfunction localeFor(tag) {\n try {\n const parsed = new Intl.Locale(tag);\n const numbers = new Intl.NumberFormat(tag).formatToParts(123456789e-2);\n const part = (type) => numbers.find((entry) => entry.type === type)?.value ?? null;\n const direction = parsed.textInfo?.direction;\n return {\n languageTag: parsed.baseName,\n languageCode: parsed.language ?? null,\n languageScriptCode: parsed.script ?? null,\n regionCode: parsed.region ?? null,\n languageRegionCode: parsed.region ?? null,\n currencyCode: null,\n currencySymbol: null,\n languageCurrencyCode: null,\n languageCurrencySymbol: null,\n decimalSeparator: part(\"decimal\"),\n digitGroupingSeparator: part(\"group\"),\n textDirection: direction === \"rtl\" ? \"rtl\" : \"ltr\",\n measurementSystem: null,\n temperatureUnit: null\n };\n } catch {\n return { ...FALLBACK_LOCALE, languageTag: tag };\n }\n}\nfunction getLocales() {\n if (typeof navigator === \"undefined\" || !navigator.languages?.length) {\n return [FALLBACK_LOCALE];\n }\n const locales = [...navigator.languages].map(localeFor);\n return locales.length > 0 ? locales : [FALLBACK_LOCALE];\n}\nfunction getCalendars() {\n if (typeof Intl === \"undefined\") return [FALLBACK_CALENDAR];\n try {\n const options = new Intl.DateTimeFormat().resolvedOptions();\n const parsed = new Intl.Locale(options.locale);\n const firstDay = parsed.weekInfo?.firstDay;\n return [\n {\n calendar: options.calendar ?? null,\n timeZone: options.timeZone ?? null,\n uses24hourClock: parsed.hourCycle === void 0 ? null : parsed.hourCycle === \"h23\" || parsed.hourCycle === \"h24\",\n // weekInfo numbers monday as 1; expo numbers sunday as 1.\n firstWeekday: firstDay === void 0 ? null : firstDay % 7 + 1\n }\n ];\n } catch {\n return [FALLBACK_CALENDAR];\n }\n}\nfunction subscribe(refresh) {\n if (typeof window === \"undefined\") return void 0;\n window.addEventListener(\"languagechange\", refresh);\n return () => window.removeEventListener(\"languagechange\", refresh);\n}\nfunction useLocales() {\n const [locales, setLocales] = useState(() => getLocales());\n useEffect(() => subscribe(() => setLocales(getLocales())), []);\n return locales;\n}\nfunction useCalendars() {\n const [calendars, setCalendars] = useState(() => getCalendars());\n useEffect(() => subscribe(() => setCalendars(getCalendars())), []);\n return calendars;\n}\nconst Localization = Object.freeze({ getLocales, getCalendars });\nexport {\n Localization,\n useCalendars,\n useLocales\n};\n//# sourceMappingURL=index.js.map\n"],"mappings":";;;;AAEA,SAAS,UAAU,KAAK;CACtB,IAAI;EACF,MAAM,SAAS,IAAI,KAAK,OAAO,GAAG;EAClC,MAAM,UAAU,IAAI,KAAK,aAAa,GAAG,CAAC,CAAC,cAAc,UAAY;EACrE,MAAM,QAAQ,SAAS,QAAQ,MAAM,UAAU,MAAM,SAAS,IAAI,CAAC,EAAE,SAAS;EAC9E,MAAM,YAAY,OAAO,UAAU;EACnC,OAAO;GACL,aAAa,OAAO;GACpB,cAAc,OAAO,YAAY;GACjC,oBAAoB,OAAO,UAAU;GACrC,YAAY,OAAO,UAAU;GAC7B,oBAAoB,OAAO,UAAU;GACrC,cAAc;GACd,gBAAgB;GAChB,sBAAsB;GACtB,wBAAwB;GACxB,kBAAkB,KAAK,SAAS;GAChC,wBAAwB,KAAK,OAAO;GACpC,eAAe,cAAc,QAAQ,QAAQ;GAC7C,mBAAmB;GACnB,iBAAiB;EACnB;CACF,QAAQ;EACN,OAAO;GAAE,GAAG;GAAiB,aAAa;EAAI;CAChD;AACF;AACA,SAAS,aAAa;CACpB,IAAI,OAAO,cAAc,eAAe,CAAC,UAAU,WAAW,QAAQ;EACpE,OAAO,CAAC,eAAe;CACzB;CACA,MAAM,UAAU,CAAC,GAAG,UAAU,SAAS,CAAC,CAAC,IAAI,SAAS;CACtD,OAAO,QAAQ,SAAS,IAAI,UAAU,CAAC,eAAe;AACxD;AACA,SAAS,eAAe;CACtB,IAAI,OAAO,SAAS,aAAa,OAAO,CAAC,iBAAiB;CAC1D,IAAI;EACF,MAAM,UAAU,IAAI,KAAK,eAAe,CAAC,CAAC,gBAAgB;EAC1D,MAAM,SAAS,IAAI,KAAK,OAAO,QAAQ,MAAM;EAC7C,MAAM,WAAW,OAAO,UAAU;EAClC,OAAO,CACL;GACE,UAAU,QAAQ,YAAY;GAC9B,UAAU,QAAQ,YAAY;GAC9B,iBAAiB,OAAO,cAAc,KAAK,IAAI,OAAO,OAAO,cAAc,SAAS,OAAO,cAAc;GAEzG,cAAc,aAAa,KAAK,IAAI,OAAO,WAAW,IAAI;EAC5D,CACF;CACF,QAAQ;EACN,OAAO,CAAC,iBAAiB;CAC3B;AACF;AACA,SAAS,UAAU,SAAS;CAC1B,IAAI,OAAO,WAAW,aAAa,OAAO,KAAK;CAC/C,OAAO,iBAAiB,kBAAkB,OAAO;CACjD,aAAa,OAAO,oBAAoB,kBAAkB,OAAO;AACnE;AACA,SAAS,aAAa;CACpB,MAAM,CAAC,SAAS,cAAc,eAAe,WAAW,CAAC;CACzD,gBAAgB,gBAAgB,WAAW,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC;CAC7D,OAAO;AACT;AACA,SAAS,eAAe;CACtB,MAAM,CAAC,WAAW,gBAAgB,eAAe,aAAa,CAAC;CAC/D,gBAAgB,gBAAgB,aAAa,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC;CACjE,OAAO;AACT;AACA,MAAM,eAAe,OAAO,OAAO;CAAE;CAAY;AAAa,CAAC"}