File size: 5,948 Bytes
bc20498
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
// 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: '日' },
};
// eslint-disable-next-line @typescript-eslint/ban-types
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, 
// eslint-disable-next-line @typescript-eslint/ban-types
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];
}