@taiga-ui/i18n 4.52.0-canary.24b31eb → 4.52.0-canary.2fa3dd5
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.
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import { InjectionToken, inject } from '@angular/core';
|
|
1
|
+
import { InjectionToken, signal, inject } from '@angular/core';
|
|
2
2
|
import { TUI_ENGLISH_LANGUAGE } from '@taiga-ui/i18n/languages/english';
|
|
3
|
-
import { of } from 'rxjs';
|
|
4
3
|
|
|
5
4
|
/**
|
|
6
5
|
* Default Language for Taiga UI libraries i18n
|
|
@@ -12,7 +11,7 @@ const TUI_DEFAULT_LANGUAGE = new InjectionToken(ngDevMode ? 'TUI_DEFAULT_LANGUAG
|
|
|
12
11
|
* Language for Taiga UI libraries i18n
|
|
13
12
|
*/
|
|
14
13
|
const TUI_LANGUAGE = new InjectionToken(ngDevMode ? 'TUI_LANGUAGE' : '', {
|
|
15
|
-
factory: () =>
|
|
14
|
+
factory: () => signal(inject(TUI_DEFAULT_LANGUAGE)),
|
|
16
15
|
});
|
|
17
16
|
|
|
18
17
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-i18n-tokens.mjs","sources":["../../../projects/i18n/tokens/language.ts","../../../projects/i18n/tokens/language-loader.ts","../../../projects/i18n/tokens/language-storage-key.ts","../../../projects/i18n/tokens/taiga-ui-i18n-tokens.ts"],"sourcesContent":["import {inject, InjectionToken} from '@angular/core';\nimport {TUI_ENGLISH_LANGUAGE} from '@taiga-ui/i18n/languages/english';\nimport {type TuiLanguage} from '@taiga-ui/i18n/types';\
|
|
1
|
+
{"version":3,"file":"taiga-ui-i18n-tokens.mjs","sources":["../../../projects/i18n/tokens/language.ts","../../../projects/i18n/tokens/language-loader.ts","../../../projects/i18n/tokens/language-storage-key.ts","../../../projects/i18n/tokens/taiga-ui-i18n-tokens.ts"],"sourcesContent":["import {inject, InjectionToken, type Signal, signal} from '@angular/core';\nimport {TUI_ENGLISH_LANGUAGE} from '@taiga-ui/i18n/languages/english';\nimport {type TuiLanguage} from '@taiga-ui/i18n/types';\n\n/**\n * Default Language for Taiga UI libraries i18n\n */\nexport const TUI_DEFAULT_LANGUAGE = new InjectionToken<TuiLanguage>(\n ngDevMode ? 'TUI_DEFAULT_LANGUAGE' : '',\n {\n factory: () => TUI_ENGLISH_LANGUAGE,\n },\n);\n\n/**\n * Language for Taiga UI libraries i18n\n */\nexport const TUI_LANGUAGE = new InjectionToken<Signal<TuiLanguage>>(\n ngDevMode ? 'TUI_LANGUAGE' : '',\n {\n factory: () => signal(inject(TUI_DEFAULT_LANGUAGE)),\n },\n);\n","import {InjectionToken} from '@angular/core';\nimport {type TuiLanguageLoader} from '@taiga-ui/i18n/types';\n\n/**\n * Webpack chunk loader for Taiga UI libraries i18n\n * @note: cannot be transferred to a shared file\n * ReferenceError: Cannot access 'TUI_LANGUAGE_LOADER' before initialization\n */\nexport const TUI_LANGUAGE_LOADER = new InjectionToken<TuiLanguageLoader>(\n ngDevMode ? 'TUI_LANGUAGE_LOADER' : '',\n);\n","import {InjectionToken} from '@angular/core';\n\n/**\n * Default key for search value in storage\n */\nexport const TUI_LANGUAGE_STORAGE_KEY = new InjectionToken<string>(\n ngDevMode ? 'TUI_LANGUAGE_STORAGE_KEY' : '',\n {\n factory: () => 'tuiLanguage',\n },\n);\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;AAIA;;AAEG;AACU,MAAA,oBAAoB,GAAG,IAAI,cAAc,CAClD,SAAS,GAAG,sBAAsB,GAAG,EAAE,EACvC;AACI,IAAA,OAAO,EAAE,MAAM,oBAAoB;AACtC,CAAA;AAGL;;AAEG;AACU,MAAA,YAAY,GAAG,IAAI,cAAc,CAC1C,SAAS,GAAG,cAAc,GAAG,EAAE,EAC/B;IACI,OAAO,EAAE,MAAM,MAAM,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;AACtD,CAAA;;AClBL;;;;AAIG;AACU,MAAA,mBAAmB,GAAG,IAAI,cAAc,CACjD,SAAS,GAAG,qBAAqB,GAAG,EAAE;;ACP1C;;AAEG;AACU,MAAA,wBAAwB,GAAG,IAAI,cAAc,CACtD,SAAS,GAAG,0BAA0B,GAAG,EAAE,EAC3C;AACI,IAAA,OAAO,EAAE,MAAM,aAAa;AAC/B,CAAA;;ACTL;;AAEG;;;;"}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { inject, Injectable } from '@angular/core';
|
|
3
|
-
import { TUI_LANGUAGE, TUI_LANGUAGE_LOADER,
|
|
4
|
-
import {
|
|
2
|
+
import { computed, inject, Injectable } from '@angular/core';
|
|
3
|
+
import { TUI_LANGUAGE, TUI_LANGUAGE_LOADER, TUI_DEFAULT_LANGUAGE, TUI_LANGUAGE_STORAGE_KEY } from '@taiga-ui/i18n/tokens';
|
|
4
|
+
import { toSignal } from '@angular/core/rxjs-interop';
|
|
5
5
|
import { WA_LOCAL_STORAGE } from '@ng-web-apis/common';
|
|
6
|
+
import { from, map, of, switchAll, BehaviorSubject } from 'rxjs';
|
|
6
7
|
|
|
7
8
|
function tuiExtractI18n(key) {
|
|
8
|
-
return (
|
|
9
|
+
return (language = inject(TUI_LANGUAGE)) => computed(() => language()[key]);
|
|
9
10
|
}
|
|
10
11
|
|
|
11
12
|
// CommonJS `module.exports` is wrapped as `default` in ESModule.
|
|
@@ -27,7 +28,9 @@ function tuiLanguageSwitcher(loader) {
|
|
|
27
28
|
},
|
|
28
29
|
{
|
|
29
30
|
provide: TUI_LANGUAGE,
|
|
30
|
-
useFactory: () => inject(TuiLanguageSwitcherService).pipe(switchAll()),
|
|
31
|
+
useFactory: () => toSignal(inject(TuiLanguageSwitcherService).pipe(switchAll()), {
|
|
32
|
+
initialValue: inject(TUI_DEFAULT_LANGUAGE),
|
|
33
|
+
}),
|
|
31
34
|
},
|
|
32
35
|
];
|
|
33
36
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taiga-ui-i18n-utils.mjs","sources":["../../../projects/i18n/utils/extract-i18n.ts","../../../projects/i18n/utils/load-language.ts","../../../projects/i18n/utils/language-switcher.ts","../../../projects/i18n/utils/taiga-ui-i18n-utils.ts"],"sourcesContent":["import {inject} from '@angular/core';\nimport {TUI_LANGUAGE} from '@taiga-ui/i18n/tokens';\nimport {type TuiLanguage} from '@taiga-ui/i18n/types';\
|
|
1
|
+
{"version":3,"file":"taiga-ui-i18n-utils.mjs","sources":["../../../projects/i18n/utils/extract-i18n.ts","../../../projects/i18n/utils/load-language.ts","../../../projects/i18n/utils/language-switcher.ts","../../../projects/i18n/utils/taiga-ui-i18n-utils.ts"],"sourcesContent":["import {computed, inject, type Signal} from '@angular/core';\nimport {TUI_LANGUAGE} from '@taiga-ui/i18n/tokens';\nimport {type TuiLanguage} from '@taiga-ui/i18n/types';\n\nexport function tuiExtractI18n<K extends keyof TuiLanguage>(\n key: K,\n): () => Signal<TuiLanguage[K]> {\n return (language = inject(TUI_LANGUAGE)) => computed(() => language()[key]);\n}\n","import {\n type TuiLanguage,\n type TuiLanguageLoader,\n type TuiLanguageName,\n} from '@taiga-ui/i18n/types';\nimport {from, map, type Observable, of} from 'rxjs';\n\n// CommonJS `module.exports` is wrapped as `default` in ESModule.\nasync function normalizeCommonJSImport<T>(importPromise: Promise<T>): Promise<T> {\n return importPromise.then((m: any) => m.default || m);\n}\n\nexport function tuiLoadLanguage(\n language: TuiLanguageName,\n loader: TuiLanguageLoader,\n): Observable<TuiLanguage> {\n return from(normalizeCommonJSImport(loader(language))).pipe(\n map((module: any) => module?.[`TUI_${language.toUpperCase()}_LANGUAGE`]),\n );\n}\n\nexport function tuiAsyncLoadLanguage(\n language: TuiLanguageName | null,\n loader: TuiLanguageLoader | null,\n fallback: TuiLanguage,\n): Observable<TuiLanguage> {\n return language && loader ? tuiLoadLanguage(language, loader) : of(fallback);\n}\n","import {inject, Injectable, type Provider} from '@angular/core';\nimport {toSignal} from '@angular/core/rxjs-interop';\nimport {WA_LOCAL_STORAGE} from '@ng-web-apis/common';\nimport {\n TUI_DEFAULT_LANGUAGE,\n TUI_LANGUAGE,\n TUI_LANGUAGE_LOADER,\n TUI_LANGUAGE_STORAGE_KEY,\n} from '@taiga-ui/i18n/tokens';\nimport {\n type TuiLanguage,\n type TuiLanguageLoader,\n type TuiLanguageName,\n} from '@taiga-ui/i18n/types';\nimport {BehaviorSubject, type Observable, of, switchAll} from 'rxjs';\n\nimport {tuiAsyncLoadLanguage} from './load-language';\n\nexport function tuiLanguageSwitcher(loader: TuiLanguageLoader): Provider[] {\n return [\n {\n provide: TUI_LANGUAGE_LOADER,\n useFactory: () => loader,\n },\n {\n provide: TUI_LANGUAGE,\n useFactory: () =>\n toSignal(inject(TuiLanguageSwitcherService).pipe(switchAll()), {\n initialValue: inject(TUI_DEFAULT_LANGUAGE),\n }),\n },\n ];\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TuiLanguageSwitcherService extends BehaviorSubject<Observable<TuiLanguage>> {\n private readonly fallback = inject(TUI_DEFAULT_LANGUAGE);\n private readonly key = inject(TUI_LANGUAGE_STORAGE_KEY);\n private readonly storage = inject(WA_LOCAL_STORAGE);\n private readonly loader = inject(TUI_LANGUAGE_LOADER, {optional: true});\n\n constructor() {\n super(\n tuiAsyncLoadLanguage(\n inject(WA_LOCAL_STORAGE)?.getItem(inject(TUI_LANGUAGE_STORAGE_KEY)),\n inject(TUI_LANGUAGE_LOADER, {optional: true}),\n inject(TUI_DEFAULT_LANGUAGE),\n ),\n );\n }\n\n public get language(): TuiLanguageName {\n return this.storage?.getItem(this.key) || this.fallback.name;\n }\n\n public setLanguage(language: TuiLanguageName): void {\n this.storage?.setItem(this.key, language);\n this.next(tuiAsyncLoadLanguage(language, this.loader, this.fallback));\n }\n\n protected clear(): void {\n this.storage?.removeItem(this.key);\n this.next(of(this.fallback));\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@taiga-ui/i18n",
|
|
3
|
-
"version": "4.52.0-canary.
|
|
3
|
+
"version": "4.52.0-canary.2fa3dd5",
|
|
4
4
|
"description": "A package with tools for Taiga UI library i18n",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"angular",
|
|
@@ -12,7 +12,10 @@
|
|
|
12
12
|
"directive"
|
|
13
13
|
],
|
|
14
14
|
"homepage": "https://github.com/taiga-family/taiga-ui",
|
|
15
|
-
"repository":
|
|
15
|
+
"repository": {
|
|
16
|
+
"type": "git",
|
|
17
|
+
"url": "https://github.com/taiga-family/taiga-ui"
|
|
18
|
+
},
|
|
16
19
|
"license": "Apache-2.0",
|
|
17
20
|
"peerDependencies": {
|
|
18
21
|
"@angular/core": ">=19.0.0",
|
|
@@ -45,10 +48,6 @@
|
|
|
45
48
|
"types": "./utils/index.d.ts",
|
|
46
49
|
"default": "./fesm2022/taiga-ui-i18n-utils.mjs"
|
|
47
50
|
},
|
|
48
|
-
"./languages/arabic": {
|
|
49
|
-
"types": "./languages/arabic/index.d.ts",
|
|
50
|
-
"default": "./fesm2022/taiga-ui-i18n-languages-arabic.mjs"
|
|
51
|
-
},
|
|
52
51
|
"./languages/belarusian": {
|
|
53
52
|
"types": "./languages/belarusian/index.d.ts",
|
|
54
53
|
"default": "./fesm2022/taiga-ui-i18n-languages-belarusian.mjs"
|
|
@@ -65,6 +64,10 @@
|
|
|
65
64
|
"types": "./languages/english/index.d.ts",
|
|
66
65
|
"default": "./fesm2022/taiga-ui-i18n-languages-english.mjs"
|
|
67
66
|
},
|
|
67
|
+
"./languages/arabic": {
|
|
68
|
+
"types": "./languages/arabic/index.d.ts",
|
|
69
|
+
"default": "./fesm2022/taiga-ui-i18n-languages-arabic.mjs"
|
|
70
|
+
},
|
|
68
71
|
"./languages/french": {
|
|
69
72
|
"types": "./languages/french/index.d.ts",
|
|
70
73
|
"default": "./fesm2022/taiga-ui-i18n-languages-french.mjs"
|
package/tokens/language.d.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import { InjectionToken } from '@angular/core';
|
|
1
|
+
import { InjectionToken, type Signal } from '@angular/core';
|
|
2
2
|
import { type TuiLanguage } from '@taiga-ui/i18n/types';
|
|
3
|
-
import { type Observable } from 'rxjs';
|
|
4
3
|
/**
|
|
5
4
|
* Default Language for Taiga UI libraries i18n
|
|
6
5
|
*/
|
|
@@ -8,4 +7,4 @@ export declare const TUI_DEFAULT_LANGUAGE: InjectionToken<TuiLanguage>;
|
|
|
8
7
|
/**
|
|
9
8
|
* Language for Taiga UI libraries i18n
|
|
10
9
|
*/
|
|
11
|
-
export declare const TUI_LANGUAGE: InjectionToken<
|
|
10
|
+
export declare const TUI_LANGUAGE: InjectionToken<Signal<TuiLanguage>>;
|
package/utils/extract-i18n.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
+
import { type Signal } from '@angular/core';
|
|
1
2
|
import { type TuiLanguage } from '@taiga-ui/i18n/types';
|
|
2
|
-
|
|
3
|
-
export declare function tuiExtractI18n<K extends keyof TuiLanguage>(key: K): () => Observable<TuiLanguage[K]>;
|
|
3
|
+
export declare function tuiExtractI18n<K extends keyof TuiLanguage>(key: K): () => Signal<TuiLanguage[K]>;
|