UNPKG

bits-ui

Version:

The headless components for Svelte.

130 lines (129 loc) 5.81 kB
// prettier-ignore const supportedLocales = [ 'ach', 'af', 'am', 'an', 'ar', 'ast', 'az', 'be', 'bg', 'bn', 'br', 'bs', 'ca', 'cak', 'ckb', 'cs', 'cy', 'da', 'de', 'dsb', 'el', 'en', 'eo', 'es', 'et', 'eu', 'fa', 'ff', 'fi', 'fr', 'fy', 'ga', 'gd', 'gl', 'he', 'hr', 'hsb', 'hu', 'ia', 'id', 'it', 'ja', 'ka', 'kk', 'kn', 'ko', 'lb', 'lo', 'lt', 'lv', 'meh', 'ml', 'ms', 'nl', 'nn', 'no', 'oc', 'pl', 'pt', 'rm', 'ro', 'ru', 'sc', 'scn', 'sk', 'sl', 'sr', 'sv', 'szl', 'tg', 'th', 'tr', 'uk', 'zh-CN', 'zh-TW', ]; const placeholderFields = ["year", "month", "day"]; const placeholders = { ach: { year: "mwaka", month: "dwe", day: "nino" }, af: { year: "jjjj", month: "mm", day: "dd" }, am: { year: "ዓዓዓዓ", month: "ሚሜ", day: "ቀቀ" }, an: { year: "aaaa", month: "mm", day: "dd" }, ar: { year: "سنة", month: "شهر", day: "يوم" }, ast: { year: "aaaa", month: "mm", day: "dd" }, az: { year: "iiii", month: "aa", day: "gg" }, be: { year: "гггг", month: "мм", day: "дд" }, bg: { year: "гггг", month: "мм", day: "дд" }, bn: { year: "yyyy", month: "মিমি", day: "dd" }, br: { year: "bbbb", month: "mm", day: "dd" }, bs: { year: "gggg", month: "mm", day: "dd" }, ca: { year: "aaaa", month: "mm", day: "dd" }, cak: { year: "jjjj", month: "ii", day: "q'q'" }, ckb: { year: "ساڵ", month: "مانگ", day: "ڕۆژ" }, cs: { year: "rrrr", month: "mm", day: "dd" }, cy: { year: "bbbb", month: "mm", day: "dd" }, da: { year: "åååå", month: "mm", day: "dd" }, de: { year: "jjjj", month: "mm", day: "tt" }, dsb: { year: "llll", month: "mm", day: "źź" }, el: { year: "εεεε", month: "μμ", day: "ηη" }, en: { year: "yyyy", month: "mm", day: "dd" }, eo: { year: "jjjj", month: "mm", day: "tt" }, es: { year: "aaaa", month: "mm", day: "dd" }, et: { year: "aaaa", month: "kk", day: "pp" }, eu: { year: "uuuu", month: "hh", day: "ee" }, fa: { year: "سال", month: "ماه", day: "روز" }, ff: { year: "hhhh", month: "ll", day: "ññ" }, fi: { year: "vvvv", month: "kk", day: "pp" }, fr: { year: "aaaa", month: "mm", day: "jj" }, fy: { year: "jjjj", month: "mm", day: "dd" }, ga: { year: "bbbb", month: "mm", day: "ll" }, gd: { year: "bbbb", month: "mm", day: "ll" }, gl: { year: "aaaa", month: "mm", day: "dd" }, he: { year: "שנה", month: "חודש", day: "יום" }, hr: { year: "gggg", month: "mm", day: "dd" }, hsb: { year: "llll", month: "mm", day: "dd" }, hu: { year: "éééé", month: "hh", day: "nn" }, ia: { year: "aaaa", month: "mm", day: "dd" }, id: { year: "tttt", month: "bb", day: "hh" }, it: { year: "aaaa", month: "mm", day: "gg" }, ja: { year: " 年 ", month: "月", day: "日" }, ka: { year: "წწწწ", month: "თთ", day: "რრ" }, kk: { year: "жжжж", month: "аа", day: "кк" }, kn: { year: "ವವವವ", month: "ಮಿಮೀ", day: "ದಿದಿ" }, ko: { year: "연도", month: "월", day: "일" }, lb: { year: "jjjj", month: "mm", day: "dd" }, lo: { year: "ປປປປ", month: "ດດ", day: "ວວ" }, lt: { year: "mmmm", month: "mm", day: "dd" }, lv: { year: "gggg", month: "mm", day: "dd" }, meh: { year: "aaaa", month: "mm", day: "dd" }, ml: { year: "വർഷം", month: "മാസം", day: "തീയതി" }, ms: { year: "tttt", month: "mm", day: "hh" }, nl: { year: "jjjj", month: "mm", day: "dd" }, nn: { year: "åååå", month: "mm", day: "dd" }, no: { year: "åååå", month: "mm", day: "dd" }, oc: { year: "aaaa", month: "mm", day: "jj" }, pl: { year: "rrrr", month: "mm", day: "dd" }, pt: { year: "aaaa", month: "mm", day: "dd" }, rm: { year: "oooo", month: "mm", day: "dd" }, ro: { year: "aaaa", month: "ll", day: "zz" }, ru: { year: "гггг", month: "мм", day: "дд" }, sc: { year: "aaaa", month: "mm", day: "dd" }, scn: { year: "aaaa", month: "mm", day: "jj" }, sk: { year: "rrrr", month: "mm", day: "dd" }, sl: { year: "llll", month: "mm", day: "dd" }, sr: { year: "гггг", month: "мм", day: "дд" }, sv: { year: "åååå", month: "mm", day: "dd" }, szl: { year: "rrrr", month: "mm", day: "dd" }, tg: { year: "сссс", month: "мм", day: "рр" }, th: { year: "ปปปป", month: "ดด", day: "วว" }, tr: { year: "yyyy", month: "aa", day: "gg" }, uk: { year: "рррр", month: "мм", day: "дд" }, "zh-CN": { year: "年", month: "月", day: "日" }, "zh-TW": { year: "年", month: "月", day: "日" }, }; function getPlaceholderObj(locale) { if (!isSupportedLocale(locale)) { const localeLanguage = getLocaleLanguage(locale); if (!isSupportedLocale(localeLanguage)) { return placeholders.en; } else { return placeholders[localeLanguage]; } } else { return placeholders[locale]; } } export function getPlaceholder(field, value, locale) { if (isPlaceholderField(field)) return getPlaceholderObj(locale)[field]; if (isDefaultField(field)) return value; if (isTimeField(field)) return "––"; return ""; } function isSupportedLocale(locale) { return supportedLocales.includes(locale); } function isPlaceholderField(field) { return placeholderFields.includes(field); } function isTimeField(field) { return field === "hour" || field === "minute" || field === "second"; } function isDefaultField(field) { return field === "era" || field === "dayPeriod"; } function getLocaleLanguage(locale) { if (Intl.Locale) { return new Intl.Locale(locale).language; } return locale.split("-")[0]; }