@gravity-ui/navigation 1.9.0 → 1.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +14 -9
- package/build/cjs/{ActionBar-96a59723.js → ActionBar-38c4e24f.js} +2 -2
- package/build/cjs/{ActionBar-96a59723.js.map → ActionBar-38c4e24f.js.map} +1 -1
- package/build/cjs/AsideFallback.js +2 -2
- package/build/cjs/AsideHeader.js +5 -5
- package/build/cjs/Drawer.js +1 -1
- package/build/cjs/{FooterItem-eafaeac3.js → FooterItem-2ccc673a.js} +9 -8
- package/build/cjs/FooterItem-2ccc673a.js.map +1 -0
- package/build/cjs/FooterItem.js +2 -2
- package/build/cjs/{HotkeysPanel-2e240e4d.js → HotkeysPanel-c62fe0d6.js} +2 -2
- package/build/cjs/{HotkeysPanel-2e240e4d.js.map → HotkeysPanel-c62fe0d6.js.map} +1 -1
- package/build/cjs/{Item-b5ef87be.js → Item-ca4dabc5.js} +4 -4
- package/build/cjs/{Item-b5ef87be.js.map → Item-ca4dabc5.js.map} +1 -1
- package/build/cjs/PageLayout.js +4 -4
- package/build/cjs/PageLayoutAside-9537a7f1.js +954 -0
- package/build/cjs/PageLayoutAside-9537a7f1.js.map +1 -0
- package/build/cjs/PageLayoutAside.js +14 -946
- package/build/cjs/PageLayoutAside.js.map +1 -1
- package/build/cjs/{Settings-11b021e4.js → Settings-468cc8ea.js} +5 -5
- package/build/cjs/Settings-468cc8ea.js.map +1 -0
- package/build/cjs/{Title-c539667f.js → Title-ba68bc82.js} +4 -4
- package/build/cjs/Title-ba68bc82.js.map +1 -0
- package/build/cjs/{TopPanel-b531a2be.js → TopPanel-eb381248.js} +3 -3
- package/build/cjs/{TopPanel-b531a2be.js.map → TopPanel-eb381248.js.map} +1 -1
- package/build/cjs/{cn-1964a72a.js → cn-9933321a.js} +2 -1
- package/build/cjs/{cn-1964a72a.js.map → cn-9933321a.js.map} +1 -1
- package/build/cjs/components/AllPagesPanel/i18n/index.d.ts +1 -1
- package/build/cjs/components/AsideHeader/__stories__/AsideHeader.stories.d.ts +1 -0
- package/build/cjs/components/AsideHeader/i18n/index.d.ts +1 -1
- package/build/cjs/components/Logo/Logo.d.ts +5 -1
- package/build/cjs/components/Logo/__stories__/Logo.stories.d.ts +9 -0
- package/build/cjs/components/Logo/index.d.ts +1 -0
- package/build/cjs/components/MobileHeader/i18n/index.d.ts +1 -1
- package/build/cjs/components/MobileLogo/MobileLogo.d.ts +7 -0
- package/build/cjs/components/MobileLogo/__stories__/MobileLogo.stories.d.ts +7 -0
- package/build/cjs/components/MobileLogo/index.d.ts +1 -0
- package/build/cjs/components/Settings/i18n/index.d.ts +1 -1
- package/build/cjs/components/Title/i18n/index.d.ts +1 -1
- package/build/cjs/components/index.d.ts +2 -1
- package/build/cjs/index.js +14 -17
- package/build/cjs/index.js.map +1 -1
- package/build/cjs/index2.js +2 -2
- package/build/cjs/index3.js +3 -3
- package/build/cjs/index4.js +2 -2
- package/build/cjs/index5.js +4 -4
- package/build/cjs/index6.js +3 -3
- package/build/cjs/utils-db3e03c2.js +8 -0
- package/build/cjs/{utils-a93dd754.js.map → utils-db3e03c2.js.map} +1 -1
- package/build/esm/{ActionBar-68f814a3.js → ActionBar-affc1f80.js} +2 -2
- package/build/esm/{ActionBar-68f814a3.js.map → ActionBar-affc1f80.js.map} +1 -1
- package/build/esm/AsideFallback.js +2 -2
- package/build/esm/AsideHeader.js +5 -5
- package/build/esm/Drawer.js +1 -1
- package/build/esm/{FooterItem-39ac7c22.js → FooterItem-e98b3358.js} +9 -9
- package/build/esm/FooterItem-e98b3358.js.map +1 -0
- package/build/esm/FooterItem.js +2 -2
- package/build/esm/{HotkeysPanel-bd0e997d.js → HotkeysPanel-811ad87d.js} +2 -2
- package/build/esm/{HotkeysPanel-bd0e997d.js.map → HotkeysPanel-811ad87d.js.map} +1 -1
- package/build/esm/{Item-c8057002.js → Item-05150496.js} +4 -4
- package/build/esm/{Item-c8057002.js.map → Item-05150496.js.map} +1 -1
- package/build/esm/PageLayout.js +4 -4
- package/build/esm/PageLayoutAside-8db3103b.js +929 -0
- package/build/esm/PageLayoutAside-8db3103b.js.map +1 -0
- package/build/esm/PageLayoutAside.js +13 -927
- package/build/esm/PageLayoutAside.js.map +1 -1
- package/build/esm/{Settings-31634d93.js → Settings-ec51b1ed.js} +5 -5
- package/build/esm/Settings-ec51b1ed.js.map +1 -0
- package/build/esm/{Title-b2f2c4e9.js → Title-d6074c08.js} +4 -4
- package/build/esm/Title-d6074c08.js.map +1 -0
- package/build/esm/{TopPanel-36ffc4c7.js → TopPanel-737724e5.js} +3 -3
- package/build/esm/{TopPanel-36ffc4c7.js.map → TopPanel-737724e5.js.map} +1 -1
- package/build/esm/{cn-589cd9e2.js → cn-ffe5e9f5.js} +2 -2
- package/build/esm/{cn-589cd9e2.js.map → cn-ffe5e9f5.js.map} +1 -1
- package/build/esm/components/AllPagesPanel/i18n/index.d.ts +1 -1
- package/build/esm/components/AsideHeader/__stories__/AsideHeader.stories.d.ts +1 -0
- package/build/esm/components/AsideHeader/i18n/index.d.ts +1 -1
- package/build/esm/components/Logo/Logo.d.ts +5 -1
- package/build/esm/components/Logo/__stories__/Logo.stories.d.ts +9 -0
- package/build/esm/components/Logo/index.d.ts +1 -0
- package/build/esm/components/MobileHeader/i18n/index.d.ts +1 -1
- package/build/esm/components/MobileLogo/MobileLogo.d.ts +7 -0
- package/build/esm/components/MobileLogo/__stories__/MobileLogo.stories.d.ts +7 -0
- package/build/esm/components/MobileLogo/index.d.ts +1 -0
- package/build/esm/components/Settings/i18n/index.d.ts +1 -1
- package/build/esm/components/Title/i18n/index.d.ts +1 -1
- package/build/esm/components/index.d.ts +2 -1
- package/build/esm/index.js +10 -10
- package/build/esm/index2.js +2 -2
- package/build/esm/index3.js +3 -3
- package/build/esm/index4.js +2 -2
- package/build/esm/index5.js +4 -4
- package/build/esm/index6.js +3 -3
- package/build/esm/utils-117463a5.js +6 -0
- package/build/esm/{utils-6d5146c7.js.map → utils-117463a5.js.map} +1 -1
- package/package.json +1 -1
- package/build/cjs/FooterItem-eafaeac3.js.map +0 -1
- package/build/cjs/Settings-11b021e4.js.map +0 -1
- package/build/cjs/Title-c539667f.js.map +0 -1
- package/build/cjs/components/MobileHeader/Logo/Logo.d.ts +0 -8
- package/build/cjs/components/utils/configure.d.ts +0 -12
- package/build/cjs/components/utils/registerKeyset.d.ts +0 -5
- package/build/cjs/i18n.d.ts +0 -2
- package/build/cjs/registerKeyset-f4ce9ee7.js +0 -215
- package/build/cjs/registerKeyset-f4ce9ee7.js.map +0 -1
- package/build/cjs/utils-a93dd754.js +0 -8
- package/build/esm/FooterItem-39ac7c22.js.map +0 -1
- package/build/esm/Settings-31634d93.js.map +0 -1
- package/build/esm/Title-b2f2c4e9.js.map +0 -1
- package/build/esm/components/MobileHeader/Logo/Logo.d.ts +0 -8
- package/build/esm/components/utils/configure.d.ts +0 -12
- package/build/esm/components/utils/registerKeyset.d.ts +0 -5
- package/build/esm/i18n.d.ts +0 -2
- package/build/esm/registerKeyset-35f1ea08.js +0 -212
- package/build/esm/registerKeyset-35f1ea08.js.map +0 -1
- package/build/esm/utils-6d5146c7.js +0 -6
|
@@ -1,212 +0,0 @@
|
|
|
1
|
-
const PARAM_REGEXP = /{{(.*?)}}/g;
|
|
2
|
-
function replaceParams(keyValue, params) {
|
|
3
|
-
let result = '';
|
|
4
|
-
let lastIndex = (PARAM_REGEXP.lastIndex = 0);
|
|
5
|
-
let match;
|
|
6
|
-
while ((match = PARAM_REGEXP.exec(keyValue))) {
|
|
7
|
-
if (lastIndex !== match.index) {
|
|
8
|
-
result += keyValue.slice(lastIndex, match.index);
|
|
9
|
-
}
|
|
10
|
-
lastIndex = PARAM_REGEXP.lastIndex;
|
|
11
|
-
const [all, key] = match;
|
|
12
|
-
if (Object.prototype.hasOwnProperty.call(params, key)) {
|
|
13
|
-
result += params[key];
|
|
14
|
-
}
|
|
15
|
-
else {
|
|
16
|
-
result += all;
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
if (lastIndex < keyValue.length) {
|
|
20
|
-
result += keyValue.slice(lastIndex);
|
|
21
|
-
}
|
|
22
|
-
return result;
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
var PluralForm;
|
|
26
|
-
(function (PluralForm) {
|
|
27
|
-
PluralForm[PluralForm["One"] = 0] = "One";
|
|
28
|
-
PluralForm[PluralForm["Few"] = 1] = "Few";
|
|
29
|
-
PluralForm[PluralForm["Many"] = 2] = "Many";
|
|
30
|
-
PluralForm[PluralForm["None"] = 3] = "None";
|
|
31
|
-
})(PluralForm || (PluralForm = {}));
|
|
32
|
-
|
|
33
|
-
function pluralizerEn (count, pluralForms) {
|
|
34
|
-
if (count === 0) {
|
|
35
|
-
return pluralForms.None;
|
|
36
|
-
}
|
|
37
|
-
if (count === 1 || count === -1) {
|
|
38
|
-
return pluralForms.One;
|
|
39
|
-
}
|
|
40
|
-
return pluralForms.Many;
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
function pluralizerRu (count, pluralForms) {
|
|
44
|
-
// the rules for negative numbers are the same
|
|
45
|
-
const lastDigit = Math.abs(count % 10);
|
|
46
|
-
const last2Digits = Math.abs(count % 100);
|
|
47
|
-
if (count === 0) {
|
|
48
|
-
return pluralForms.None;
|
|
49
|
-
}
|
|
50
|
-
if (lastDigit === 1 && last2Digits !== 11) {
|
|
51
|
-
return pluralForms.One;
|
|
52
|
-
}
|
|
53
|
-
if ((lastDigit > 1 && lastDigit < 5) && (last2Digits < 10 || last2Digits > 20)) {
|
|
54
|
-
return pluralForms.Few;
|
|
55
|
-
}
|
|
56
|
-
return pluralForms.Many;
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
class I18N {
|
|
60
|
-
constructor(options) {
|
|
61
|
-
this.data = {};
|
|
62
|
-
this.lang = undefined;
|
|
63
|
-
this.pluralizers = {
|
|
64
|
-
en: pluralizerEn,
|
|
65
|
-
ru: pluralizerRu,
|
|
66
|
-
};
|
|
67
|
-
this.logger = null;
|
|
68
|
-
this.logger = (options === null || options === void 0 ? void 0 : options.logger) || null;
|
|
69
|
-
}
|
|
70
|
-
setLang(lang) {
|
|
71
|
-
this.lang = lang;
|
|
72
|
-
}
|
|
73
|
-
configurePluralization(pluralizers) {
|
|
74
|
-
this.pluralizers = Object.assign({}, this.pluralizers, pluralizers);
|
|
75
|
-
}
|
|
76
|
-
registerKeyset(lang, keysetName, data = {}) {
|
|
77
|
-
if (this.data[lang] && Object.prototype.hasOwnProperty.call(this.data[lang], keysetName)) {
|
|
78
|
-
throw new Error(`Keyset '${keysetName}' is already registered, aborting!`);
|
|
79
|
-
}
|
|
80
|
-
this.data[lang] = Object.assign({}, this.data[lang], { [keysetName]: data });
|
|
81
|
-
}
|
|
82
|
-
registerKeysets(lang, data) {
|
|
83
|
-
Object.keys(data).forEach((keysetName) => {
|
|
84
|
-
this.registerKeyset(lang, keysetName, data[keysetName]);
|
|
85
|
-
});
|
|
86
|
-
}
|
|
87
|
-
has(keysetName, key, lang) {
|
|
88
|
-
const languageData = this.getLanguageData(lang);
|
|
89
|
-
return Boolean(languageData && languageData[keysetName] && languageData[keysetName][key]);
|
|
90
|
-
}
|
|
91
|
-
i18n(keysetName, key, params) {
|
|
92
|
-
const languageData = this.getLanguageData(this.lang);
|
|
93
|
-
if (typeof languageData === 'undefined') {
|
|
94
|
-
throw new Error(`Language '${this.lang}' is not defined, make sure you call setLang for the same language you called registerKeysets for!`);
|
|
95
|
-
}
|
|
96
|
-
if (Object.keys(languageData).length === 0) {
|
|
97
|
-
this.warn('Language data is empty.');
|
|
98
|
-
return key;
|
|
99
|
-
}
|
|
100
|
-
const keyset = languageData[keysetName];
|
|
101
|
-
if (!keyset) {
|
|
102
|
-
this.warn('Keyset not found.', keysetName);
|
|
103
|
-
return key;
|
|
104
|
-
}
|
|
105
|
-
if (Object.keys(keyset).length === 0) {
|
|
106
|
-
this.warn('Keyset is empty.', keysetName);
|
|
107
|
-
return key;
|
|
108
|
-
}
|
|
109
|
-
const keyValue = keyset && keyset[key];
|
|
110
|
-
let result;
|
|
111
|
-
if (typeof keyValue === 'undefined') {
|
|
112
|
-
this.warn('Missing key.', keysetName, key);
|
|
113
|
-
return key;
|
|
114
|
-
}
|
|
115
|
-
if (Array.isArray(keyValue)) {
|
|
116
|
-
if (keyValue.length < 3) {
|
|
117
|
-
this.warn('Missing required plurals', keysetName, key);
|
|
118
|
-
return key;
|
|
119
|
-
}
|
|
120
|
-
const count = Number(params === null || params === void 0 ? void 0 : params.count);
|
|
121
|
-
if (Number.isNaN(count)) {
|
|
122
|
-
this.warn('Missing params.count for key.', keysetName, key);
|
|
123
|
-
return key;
|
|
124
|
-
}
|
|
125
|
-
const pluralizer = this.getLanguagePluralizer(this.lang);
|
|
126
|
-
result = keyValue[pluralizer(count, PluralForm)] || keyValue[PluralForm.Many];
|
|
127
|
-
if (keyValue[PluralForm.None] === undefined) {
|
|
128
|
-
this.warn('Missing key for 0', keysetName, key);
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
else {
|
|
132
|
-
result = keyValue;
|
|
133
|
-
}
|
|
134
|
-
if (params) {
|
|
135
|
-
result = replaceParams(result, params);
|
|
136
|
-
}
|
|
137
|
-
return result;
|
|
138
|
-
}
|
|
139
|
-
keyset(keysetName) {
|
|
140
|
-
return (key, params) => {
|
|
141
|
-
return this.i18n(keysetName, key, params);
|
|
142
|
-
};
|
|
143
|
-
}
|
|
144
|
-
warn(msg, keyset, key) {
|
|
145
|
-
var _a;
|
|
146
|
-
let cacheKey = '';
|
|
147
|
-
if (keyset) {
|
|
148
|
-
cacheKey += keyset;
|
|
149
|
-
if (key) {
|
|
150
|
-
cacheKey += `.${key}`;
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
else {
|
|
154
|
-
cacheKey = 'languageData';
|
|
155
|
-
}
|
|
156
|
-
(_a = this.logger) === null || _a === void 0 ? void 0 : _a.log(`I18n: ${msg}`, {
|
|
157
|
-
level: 'info',
|
|
158
|
-
logger: cacheKey,
|
|
159
|
-
extra: {
|
|
160
|
-
type: 'i18n'
|
|
161
|
-
}
|
|
162
|
-
});
|
|
163
|
-
}
|
|
164
|
-
getLanguageData(lang) {
|
|
165
|
-
const langCode = lang || this.lang;
|
|
166
|
-
return langCode ? this.data[langCode] : undefined;
|
|
167
|
-
}
|
|
168
|
-
getLanguagePluralizer(lang) {
|
|
169
|
-
const pluralizer = lang ? this.pluralizers[lang] : undefined;
|
|
170
|
-
if (!pluralizer) {
|
|
171
|
-
this.warn(`Pluralization is not configured for language '${lang}', falling back to the english ruleset`);
|
|
172
|
-
}
|
|
173
|
-
return pluralizer || pluralizerEn;
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
|
|
177
|
-
var Lang;
|
|
178
|
-
(function (Lang) {
|
|
179
|
-
Lang["Ru"] = "ru";
|
|
180
|
-
Lang["En"] = "en";
|
|
181
|
-
})(Lang || (Lang = {}));
|
|
182
|
-
let subs = [];
|
|
183
|
-
const config = {
|
|
184
|
-
lang: Lang.En,
|
|
185
|
-
};
|
|
186
|
-
const configure = (newConfig) => {
|
|
187
|
-
Object.assign(config, newConfig);
|
|
188
|
-
subs.forEach((sub) => {
|
|
189
|
-
sub(config);
|
|
190
|
-
});
|
|
191
|
-
};
|
|
192
|
-
const subscribeConfigure = (sub) => {
|
|
193
|
-
subs.push(sub);
|
|
194
|
-
return () => {
|
|
195
|
-
subs = subs.filter((item) => item !== sub);
|
|
196
|
-
};
|
|
197
|
-
};
|
|
198
|
-
const getConfig = () => config;
|
|
199
|
-
|
|
200
|
-
const i18n = new I18N();
|
|
201
|
-
i18n.setLang(getConfig().lang);
|
|
202
|
-
subscribeConfigure((config) => {
|
|
203
|
-
i18n.setLang(config.lang);
|
|
204
|
-
});
|
|
205
|
-
|
|
206
|
-
function registerKeyset(data, keysetName) {
|
|
207
|
-
Object.entries(data).forEach(([lang, keys]) => i18n.registerKeyset(lang, keysetName, keys));
|
|
208
|
-
return i18n.keyset(keysetName);
|
|
209
|
-
}
|
|
210
|
-
|
|
211
|
-
export { Lang as L, configure as c, registerKeyset as r };
|
|
212
|
-
//# sourceMappingURL=registerKeyset-35f1ea08.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"registerKeyset-35f1ea08.js","sources":["../../node_modules/@gravity-ui/i18n/build/esm/replace-params.js","../../node_modules/@gravity-ui/i18n/build/esm/types.js","../../node_modules/@gravity-ui/i18n/build/esm/plural/en.js","../../node_modules/@gravity-ui/i18n/build/esm/plural/ru.js","../../node_modules/@gravity-ui/i18n/build/esm/index.js","../../../src/components/utils/configure.ts","../../../src/i18n.ts","../../../src/components/utils/registerKeyset.ts"],"sourcesContent":["const PARAM_REGEXP = /{{(.*?)}}/g;\nexport function replaceParams(keyValue, params) {\n let result = '';\n let lastIndex = (PARAM_REGEXP.lastIndex = 0);\n let match;\n while ((match = PARAM_REGEXP.exec(keyValue))) {\n if (lastIndex !== match.index) {\n result += keyValue.slice(lastIndex, match.index);\n }\n lastIndex = PARAM_REGEXP.lastIndex;\n const [all, key] = match;\n if (Object.prototype.hasOwnProperty.call(params, key)) {\n result += params[key];\n }\n else {\n result += all;\n }\n }\n if (lastIndex < keyValue.length) {\n result += keyValue.slice(lastIndex);\n }\n return result;\n}\n","export var PluralForm;\n(function (PluralForm) {\n PluralForm[PluralForm[\"One\"] = 0] = \"One\";\n PluralForm[PluralForm[\"Few\"] = 1] = \"Few\";\n PluralForm[PluralForm[\"Many\"] = 2] = \"Many\";\n PluralForm[PluralForm[\"None\"] = 3] = \"None\";\n})(PluralForm || (PluralForm = {}));\n","export default function (count, pluralForms) {\n if (count === 0) {\n return pluralForms.None;\n }\n if (count === 1 || count === -1) {\n return pluralForms.One;\n }\n return pluralForms.Many;\n}\n","export default function (count, pluralForms) {\n // the rules for negative numbers are the same\n const lastDigit = Math.abs(count % 10);\n const last2Digits = Math.abs(count % 100);\n if (count === 0) {\n return pluralForms.None;\n }\n if (lastDigit === 1 && last2Digits !== 11) {\n return pluralForms.One;\n }\n if ((lastDigit > 1 && lastDigit < 5) && (last2Digits < 10 || last2Digits > 20)) {\n return pluralForms.Few;\n }\n return pluralForms.Many;\n}\n","import { replaceParams } from './replace-params';\nimport { PluralForm } from './types';\nimport pluralizerEn from './plural/en';\nimport pluralizerRu from './plural/ru';\nexport * from './types';\nexport class I18N {\n constructor(options) {\n this.data = {};\n this.lang = undefined;\n this.pluralizers = {\n en: pluralizerEn,\n ru: pluralizerRu,\n };\n this.logger = null;\n this.logger = (options === null || options === void 0 ? void 0 : options.logger) || null;\n }\n setLang(lang) {\n this.lang = lang;\n }\n configurePluralization(pluralizers) {\n this.pluralizers = Object.assign({}, this.pluralizers, pluralizers);\n }\n registerKeyset(lang, keysetName, data = {}) {\n if (this.data[lang] && Object.prototype.hasOwnProperty.call(this.data[lang], keysetName)) {\n throw new Error(`Keyset '${keysetName}' is already registered, aborting!`);\n }\n this.data[lang] = Object.assign({}, this.data[lang], { [keysetName]: data });\n }\n registerKeysets(lang, data) {\n Object.keys(data).forEach((keysetName) => {\n this.registerKeyset(lang, keysetName, data[keysetName]);\n });\n }\n has(keysetName, key, lang) {\n const languageData = this.getLanguageData(lang);\n return Boolean(languageData && languageData[keysetName] && languageData[keysetName][key]);\n }\n i18n(keysetName, key, params) {\n const languageData = this.getLanguageData(this.lang);\n if (typeof languageData === 'undefined') {\n throw new Error(`Language '${this.lang}' is not defined, make sure you call setLang for the same language you called registerKeysets for!`);\n }\n if (Object.keys(languageData).length === 0) {\n this.warn('Language data is empty.');\n return key;\n }\n const keyset = languageData[keysetName];\n if (!keyset) {\n this.warn('Keyset not found.', keysetName);\n return key;\n }\n if (Object.keys(keyset).length === 0) {\n this.warn('Keyset is empty.', keysetName);\n return key;\n }\n const keyValue = keyset && keyset[key];\n let result;\n if (typeof keyValue === 'undefined') {\n this.warn('Missing key.', keysetName, key);\n return key;\n }\n if (Array.isArray(keyValue)) {\n if (keyValue.length < 3) {\n this.warn('Missing required plurals', keysetName, key);\n return key;\n }\n const count = Number(params === null || params === void 0 ? void 0 : params.count);\n if (Number.isNaN(count)) {\n this.warn('Missing params.count for key.', keysetName, key);\n return key;\n }\n const pluralizer = this.getLanguagePluralizer(this.lang);\n result = keyValue[pluralizer(count, PluralForm)] || keyValue[PluralForm.Many];\n if (keyValue[PluralForm.None] === undefined) {\n this.warn('Missing key for 0', keysetName, key);\n }\n }\n else {\n result = keyValue;\n }\n if (params) {\n result = replaceParams(result, params);\n }\n return result;\n }\n keyset(keysetName) {\n return (key, params) => {\n return this.i18n(keysetName, key, params);\n };\n }\n warn(msg, keyset, key) {\n var _a;\n let cacheKey = '';\n if (keyset) {\n cacheKey += keyset;\n if (key) {\n cacheKey += `.${key}`;\n }\n }\n else {\n cacheKey = 'languageData';\n }\n (_a = this.logger) === null || _a === void 0 ? void 0 : _a.log(`I18n: ${msg}`, {\n level: 'info',\n logger: cacheKey,\n extra: {\n type: 'i18n'\n }\n });\n }\n getLanguageData(lang) {\n const langCode = lang || this.lang;\n return langCode ? this.data[langCode] : undefined;\n }\n getLanguagePluralizer(lang) {\n const pluralizer = lang ? this.pluralizers[lang] : undefined;\n if (!pluralizer) {\n this.warn(`Pluralization is not configured for language '${lang}', falling back to the english ruleset`);\n }\n return pluralizer || pluralizerEn;\n }\n}\n","export enum Lang {\n Ru = 'ru',\n En = 'en',\n}\n\ninterface Config {\n lang: `${Lang}`;\n}\n\ntype Subscriber = (config: Config) => void;\n\nlet subs: Subscriber[] = [];\n\nconst config: Config = {\n lang: Lang.En,\n};\n\nexport const configure = (newConfig: Partial<Config>) => {\n Object.assign(config, newConfig);\n subs.forEach((sub) => {\n sub(config);\n });\n};\n\nexport const subscribeConfigure = (sub: Subscriber) => {\n subs.push(sub);\n\n return () => {\n subs = subs.filter((item) => item !== sub);\n };\n};\n\nexport const getConfig = () => config;\n","import {I18N} from '@gravity-ui/i18n';\n\nimport {getConfig, subscribeConfigure} from './components/utils/configure';\n\nexport const i18n = new I18N();\n\ni18n.setLang(getConfig().lang);\n\nsubscribeConfigure((config) => {\n i18n.setLang(config.lang);\n});\n","import {i18n} from '../../i18n';\n\nimport {Lang} from './configure';\n\ntype KeysData = Parameters<typeof i18n.registerKeyset>[2];\n\nexport function registerKeyset<T extends KeysData>(data: Record<Lang, T>, keysetName: string) {\n Object.entries(data).forEach(([lang, keys]) => i18n.registerKeyset(lang, keysetName, keys));\n\n return i18n.keyset(keysetName);\n}\n"],"names":[],"mappings":"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"}
|