@gravity-ui/navigation 1.8.4 → 2.0.0-beta.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 +12 -9
- package/build/cjs/{ActionBar-96a59723.js → ActionBar-38c4e24f.js} +2 -2
- package/build/cjs/ActionBar-38c4e24f.js.map +1 -0
- package/build/cjs/AsideFallback.js +4 -4
- package/build/cjs/AsideFallback.js.map +1 -1
- package/build/cjs/AsideHeader.js +6 -5
- package/build/cjs/AsideHeader.js.map +1 -1
- package/build/cjs/AsideHeaderContext.js.map +1 -1
- package/build/cjs/Drawer.js +3 -3
- package/build/cjs/Drawer.js.map +1 -1
- package/build/cjs/{FooterItem-eafaeac3.js → FooterItem-0b0d76e4.js} +56 -56
- package/build/cjs/FooterItem-0b0d76e4.js.map +1 -0
- package/build/cjs/FooterItem.js +5 -5
- package/build/cjs/FooterItem.js.map +1 -1
- package/build/cjs/{HotkeysPanel-2e240e4d.js → HotkeysPanel-4ad41893.js} +15 -15
- package/build/cjs/HotkeysPanel-4ad41893.js.map +1 -0
- package/build/cjs/{Item-702f50be.js → Item-d836a378.js} +52 -52
- package/build/cjs/Item-d836a378.js.map +1 -0
- package/build/cjs/PageLayout.js +5 -5
- package/build/cjs/PageLayout.js.map +1 -1
- package/build/cjs/PageLayoutAside.js +231 -230
- package/build/cjs/PageLayoutAside.js.map +1 -1
- package/build/cjs/{Settings-11b021e4.js → Settings-a0deac97.js} +47 -47
- package/build/cjs/Settings-a0deac97.js.map +1 -0
- package/build/cjs/{Title-c539667f.js → Title-54580605.js} +5 -5
- package/build/cjs/Title-54580605.js.map +1 -0
- package/build/cjs/{TopPanel-b531a2be.js → TopPanel-1b062791.js} +3 -3
- package/build/cjs/TopPanel-1b062791.js.map +1 -0
- 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/i18n/index.d.ts +1 -1
- package/build/cjs/components/AsideHeader/types.d.ts +1 -1
- package/build/cjs/components/CompositeBar/Item/Item.d.ts +1 -0
- package/build/cjs/components/CompositeBar/utils.d.ts +2 -2
- package/build/cjs/components/HotkeysPanel/HotkeysPanel.d.ts +1 -1
- package/build/cjs/components/MobileHeader/MobileHeader.d.ts +3 -3
- package/build/cjs/components/MobileHeader/i18n/index.d.ts +1 -1
- package/build/cjs/components/Settings/Settings.d.ts +1 -1
- 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 +0 -1
- package/build/cjs/components/types.d.ts +1 -1
- package/build/cjs/index.js +11 -16
- package/build/cjs/index.js.map +1 -1
- package/build/cjs/index2.js +2 -2
- package/build/cjs/index3.js +4 -4
- package/build/cjs/index4.js +2 -2
- package/build/cjs/index5.js +6 -6
- package/build/cjs/index6.js +6 -6
- 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-affc1f80.js.map +1 -0
- package/build/esm/AsideFallback.js +4 -4
- package/build/esm/AsideFallback.js.map +1 -1
- package/build/esm/AsideHeader.js +6 -5
- package/build/esm/AsideHeader.js.map +1 -1
- package/build/esm/AsideHeaderContext.js.map +1 -1
- package/build/esm/Drawer.js +3 -3
- package/build/esm/Drawer.js.map +1 -1
- package/build/esm/{FooterItem-39ac7c22.js → FooterItem-76774de7.js} +57 -57
- package/build/esm/FooterItem-76774de7.js.map +1 -0
- package/build/esm/FooterItem.js +5 -5
- package/build/esm/FooterItem.js.map +1 -1
- package/build/esm/{HotkeysPanel-bd0e997d.js → HotkeysPanel-9138824c.js} +15 -15
- package/build/esm/HotkeysPanel-9138824c.js.map +1 -0
- package/build/esm/{Item-29a1bfdb.js → Item-9eb6b3be.js} +52 -52
- package/build/esm/Item-9eb6b3be.js.map +1 -0
- package/build/esm/PageLayout.js +5 -5
- package/build/esm/PageLayout.js.map +1 -1
- package/build/esm/PageLayoutAside.js +219 -218
- package/build/esm/PageLayoutAside.js.map +1 -1
- package/build/esm/{Settings-31634d93.js → Settings-0a78c1a7.js} +48 -48
- package/build/esm/Settings-0a78c1a7.js.map +1 -0
- package/build/esm/{Title-b2f2c4e9.js → Title-03b4255a.js} +5 -5
- package/build/esm/Title-03b4255a.js.map +1 -0
- package/build/esm/{TopPanel-36ffc4c7.js → TopPanel-2760cf72.js} +3 -3
- package/build/esm/TopPanel-2760cf72.js.map +1 -0
- 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/i18n/index.d.ts +1 -1
- package/build/esm/components/AsideHeader/types.d.ts +1 -1
- package/build/esm/components/CompositeBar/Item/Item.d.ts +1 -0
- package/build/esm/components/CompositeBar/utils.d.ts +2 -2
- package/build/esm/components/HotkeysPanel/HotkeysPanel.d.ts +1 -1
- package/build/esm/components/MobileHeader/MobileHeader.d.ts +3 -3
- package/build/esm/components/MobileHeader/i18n/index.d.ts +1 -1
- package/build/esm/components/Settings/Settings.d.ts +1 -1
- 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 +0 -1
- package/build/esm/components/types.d.ts +1 -1
- package/build/esm/index.js +11 -11
- package/build/esm/index2.js +2 -2
- package/build/esm/index3.js +4 -4
- package/build/esm/index4.js +2 -2
- package/build/esm/index5.js +6 -6
- package/build/esm/index6.js +6 -6
- package/build/esm/utils-117463a5.js +6 -0
- package/build/esm/{utils-6d5146c7.js.map → utils-117463a5.js.map} +1 -1
- package/package.json +30 -30
- package/build/cjs/ActionBar-96a59723.js.map +0 -1
- package/build/cjs/FooterItem-eafaeac3.js.map +0 -1
- package/build/cjs/HotkeysPanel-2e240e4d.js.map +0 -1
- package/build/cjs/Item-702f50be.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/TopPanel-b531a2be.js.map +0 -1
- package/build/cjs/components/ActionBar/__stories__/ActionBar.stories.d.ts +0 -20
- package/build/cjs/components/ActionBar/__stories__/ActionBarShowcase.d.ts +0 -2
- package/build/cjs/components/ActionBar/__stories__/ActionBarSingleSection.d.ts +0 -2
- package/build/cjs/components/AsideHeader/__stories__/AsideHeader.stories.d.ts +0 -13
- package/build/cjs/components/AsideHeader/__stories__/AsideHeaderShowcase.d.ts +0 -13
- package/build/cjs/components/AsideHeader/__stories__/getAsideHeaderWrapper.d.ts +0 -3
- package/build/cjs/components/AsideHeader/__stories__/moc.d.ts +0 -5
- package/build/cjs/components/Drawer/__stories__/Drawer.stories.d.ts +0 -3
- package/build/cjs/components/Drawer/__stories__/DrawerShowcase.d.ts +0 -3
- package/build/cjs/components/FooterItem/__stories__/FooterItem.stories.d.ts +0 -5
- package/build/cjs/components/HotkeysPanel/__stories__/HotkeysPanel.stories.d.ts +0 -3
- package/build/cjs/components/HotkeysPanel/__stories__/HotkeysPanelShowcase.d.ts +0 -3
- package/build/cjs/components/HotkeysPanel/__stories__/moc.d.ts +0 -2
- package/build/cjs/components/MobileHeader/BurgerMenu/__stories__/BurgerMenu.stories.d.ts +0 -5
- package/build/cjs/components/MobileHeader/BurgerMenu/__stories__/moc.d.ts +0 -2
- package/build/cjs/components/MobileHeader/__stories__/MobileHeader.stories.d.ts +0 -3
- package/build/cjs/components/MobileHeader/__stories__/MobileHeaderShowcase.d.ts +0 -3
- package/build/cjs/components/MobileHeader/__stories__/moc.d.ts +0 -1
- package/build/cjs/components/Settings/__stories__/Settings.stories.d.ts +0 -4
- package/build/cjs/components/Settings/__stories__/SettingsDemo.d.ts +0 -14
- package/build/cjs/components/Settings/__stories__/SettingsMobileDemo.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/ActionBar-68f814a3.js.map +0 -1
- package/build/esm/FooterItem-39ac7c22.js.map +0 -1
- package/build/esm/HotkeysPanel-bd0e997d.js.map +0 -1
- package/build/esm/Item-29a1bfdb.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/TopPanel-36ffc4c7.js.map +0 -1
- package/build/esm/components/ActionBar/__stories__/ActionBar.stories.d.ts +0 -20
- package/build/esm/components/ActionBar/__stories__/ActionBarShowcase.d.ts +0 -2
- package/build/esm/components/ActionBar/__stories__/ActionBarSingleSection.d.ts +0 -2
- package/build/esm/components/AsideHeader/__stories__/AsideHeader.stories.d.ts +0 -13
- package/build/esm/components/AsideHeader/__stories__/AsideHeaderShowcase.d.ts +0 -13
- package/build/esm/components/AsideHeader/__stories__/getAsideHeaderWrapper.d.ts +0 -3
- package/build/esm/components/AsideHeader/__stories__/moc.d.ts +0 -5
- package/build/esm/components/Drawer/__stories__/Drawer.stories.d.ts +0 -3
- package/build/esm/components/Drawer/__stories__/DrawerShowcase.d.ts +0 -3
- package/build/esm/components/FooterItem/__stories__/FooterItem.stories.d.ts +0 -5
- package/build/esm/components/HotkeysPanel/__stories__/HotkeysPanel.stories.d.ts +0 -3
- package/build/esm/components/HotkeysPanel/__stories__/HotkeysPanelShowcase.d.ts +0 -3
- package/build/esm/components/HotkeysPanel/__stories__/moc.d.ts +0 -2
- package/build/esm/components/MobileHeader/BurgerMenu/__stories__/BurgerMenu.stories.d.ts +0 -5
- package/build/esm/components/MobileHeader/BurgerMenu/__stories__/moc.d.ts +0 -2
- package/build/esm/components/MobileHeader/__stories__/MobileHeader.stories.d.ts +0 -3
- package/build/esm/components/MobileHeader/__stories__/MobileHeaderShowcase.d.ts +0 -3
- package/build/esm/components/MobileHeader/__stories__/moc.d.ts +0 -1
- package/build/esm/components/Settings/__stories__/Settings.stories.d.ts +0 -4
- package/build/esm/components/Settings/__stories__/SettingsDemo.d.ts +0 -14
- package/build/esm/components/Settings/__stories__/SettingsMobileDemo.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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"}
|