@ui5/webcomponents-ngx 0.1.1-rc.4 → 0.1.1
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/esm2020/i18n/i18n.service.mjs +6 -4
- package/fesm2015/ui5-webcomponents-ngx-i18n.mjs +5 -3
- package/fesm2015/ui5-webcomponents-ngx-i18n.mjs.map +1 -1
- package/fesm2020/ui5-webcomponents-ngx-i18n.mjs +5 -3
- package/fesm2020/ui5-webcomponents-ngx-i18n.mjs.map +1 -1
- package/package.json +1 -1
- package/ui5-webcomponents-ngx-v0.1.1.tgz +0 -0
- package/ui5-webcomponents-ngx-v0.1.1-rc.4.tgz +0 -0
|
@@ -17,9 +17,11 @@ export class I18nService {
|
|
|
17
17
|
registerI18nLoader(this.namespace, lang, async (localeId) => {
|
|
18
18
|
const val = this.bundles[localeId];
|
|
19
19
|
const result = isObservable(val) ? await firstValueFrom(val) : await val;
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
20
|
+
setTimeout(() => {
|
|
21
|
+
this.loadedLanguages$.next([
|
|
22
|
+
...new Set([...this.loadedLanguages$.value, localeId]).values()
|
|
23
|
+
]);
|
|
24
|
+
});
|
|
23
25
|
if (typeof result === 'string') {
|
|
24
26
|
return parseProperties(result);
|
|
25
27
|
}
|
|
@@ -70,4 +72,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImpor
|
|
|
70
72
|
type: Inject,
|
|
71
73
|
args: [I18N_TRANSLATIONS]
|
|
72
74
|
}] }]; } });
|
|
73
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
75
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaTE4bi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy91aTUtYW5ndWxhci9pMThuL2kxOG4uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekQsT0FBbUIsRUFBQyxhQUFhLEVBQUUsa0JBQWtCLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQztBQUN6RyxPQUFPLGVBQWUsTUFBTSxzREFBc0QsQ0FBQztBQUVuRixPQUFPLEVBQUMsV0FBVyxFQUFFLFdBQVcsRUFBQyxNQUFNLGlEQUFpRCxDQUFDO0FBQ3pGLE9BQU8sRUFDTCxlQUFlLEVBQ2YsTUFBTSxFQUNOLEtBQUssRUFDTCxjQUFjLEVBQ2QsSUFBSSxFQUNKLFlBQVksRUFDWixHQUFHLEVBRUgsRUFBRSxFQUNGLFNBQVMsRUFDVCxHQUFHLEVBQ0osTUFBTSxNQUFNLENBQUM7QUFDZCxPQUFPLEVBQUMsY0FBYyxFQUFFLGdCQUFnQixFQUFFLGlCQUFpQixFQUFDLE1BQU0sZUFBZSxDQUFDOztBQUlsRixNQUFNLE9BQU8sV0FBVztJQU10QixZQUNvQyxNQUFrQixFQUNwQixTQUFpQixFQUNkLFVBQXdCLEVBQUU7UUFGM0IsV0FBTSxHQUFOLE1BQU0sQ0FBWTtRQUNwQixjQUFTLEdBQVQsU0FBUyxDQUFRO1FBQ2QsWUFBTyxHQUFQLE9BQU8sQ0FBbUI7UUFSdkQsV0FBTSxHQUF1QixNQUFNLENBQUMsV0FBVyxFQUFFLEVBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQztRQUNuRixxQkFBZ0IsR0FBRyxJQUFJLGVBQWUsQ0FBUyxXQUFXLEVBQUUsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQWtCLENBQUMsQ0FBQztRQUVoRyxxQkFBZ0IsR0FBRyxJQUFJLGVBQWUsQ0FBVyxFQUFF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RUFBRSxHQUFHLFlBQVksQ0FBQyxDQUFDO2FBQ2xEO1lBQ0QsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbEIsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7O3dHQWxFVSxXQUFXLGtCQU9aLGdCQUFnQixhQUNoQixjQUFjLGFBQ2QsaUJBQWlCOzRHQVRoQixXQUFXOzJGQUFYLFdBQVc7a0JBRHZCLFVBQVU7OzBCQVFOLE1BQU07MkJBQUMsZ0JBQWdCOzswQkFDdkIsTUFBTTsyQkFBQyxjQUFjOzswQkFDckIsTUFBTTsyQkFBQyxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdCwgaW5qZWN0LCBJbmplY3RhYmxlfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IEkxOG5CdW5kbGUsIHtnZXRJMThuQnVuZGxlLCByZWdpc3RlckkxOG5Mb2FkZXJ9IGZyb20gXCJAdWk1L3dlYmNvbXBvbmVudHMtYmFzZS9kaXN0L2kxOG5CdW5kbGUuanNcIjtcbmltcG9ydCBwYXJzZVByb3BlcnRpZXMgZnJvbSBcIkB1aTUvd2ViY29tcG9uZW50cy1iYXNlL2Rpc3QvUHJvcGVydGllc0ZpbGVGb3JtYXQuanNcIjtcblxuaW1wb3J0IHtnZXRMYW5ndWFnZSwgc2V0TGFuZ3VhZ2V9IGZyb20gXCJAdWk1L3dlYmNvbXBvbmVudHMtYmFzZS9kaXN0L2NvbmZpZy9MYW5ndWFnZS5qc1wiO1xuaW1wb3J0IHtcbiAgQmVoYXZpb3JTdWJqZWN0LFxuICBmaWx0ZXIsXG4gIGZpcnN0LFxuICBmaXJzdFZhbHVlRnJvbSxcbiAgZnJvbSxcbiAgaXNPYnNlcnZhYmxlLFxuICBtYXAsXG4gIE9ic2VydmFibGUsXG4gIG9mLFxuICBzd2l0Y2hNYXAsXG4gIHRhcFxufSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHtJMThOX05BTUVTUEFDRSwgSTE4Tl9ST09UX0NPTkZJRywgSTE4Tl9UUkFOU0xBVElPTlN9IGZyb20gXCIuL2kxOG4udG9rZW5zXCI7XG5pbXBvcnQge0kxOG5Db25maWcsIFRyYW5zbGF0aW9uc30gZnJvbSBcIi4vaTE4bi50eXBlc1wiO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgSTE4blNlcnZpY2Uge1xuICBwcml2YXRlIHBhcmVudDogSTE4blNlcnZpY2UgfCBudWxsID0gaW5qZWN0KEkxOG5TZXJ2aWNlLCB7c2tpcFNlbGY6IHRydWUsIG9wdGlvbmFsOiB0cnVlfSk7XG4gIHByaXZhdGUgY3VycmVudExhbmd1YWdlJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPihnZXRMYW5ndWFnZSgpIHx8IHRoaXMuY29uZmlnLmxhbmd1YWdlIGFzIHN0cmluZyk7XG4gIHByaXZhdGUgcmVhZG9ubHkgaTE4bkJ1bmRsZSQ6IE9ic2VydmFibGU8STE4bkJ1bmRsZT47XG4gIHByaXZhdGUgbG9hZGVkTGFuZ3VhZ2VzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nW10+KFtdKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KEkxOE5fUk9PVF9DT05GSUcpIHByaXZhdGUgY29uZmlnOiBJMThuQ29uZmlnLFxuICAgIEBJbmplY3QoSTE4Tl9OQU1FU1BBQ0UpIHByaXZhdGUgbmFtZXNwYWNlOiBzdHJpbmcsXG4gICAgQEluamVjdChJMThOX1RSQU5TTEFUSU9OUykgcHJpdmF0ZSBidW5kbGVzOiBUcmFuc2xhdGlvbnMgPSB7fVxuICApIHtcbiAgICBPYmplY3Qua2V5cyhidW5kbGVzKS5mb3JFYWNoKChsYW5nKSA9PiB7XG4gICAgICByZWdpc3RlckkxOG5Mb2FkZXIodGhpcy5uYW1lc3BhY2UsIGxhbmcsIGFzeW5jIChsb2NhbGVJZDogc3RyaW5nKSA9PiB7XG4gICAgICAgIGNvbnN0IHZhbCA9IHRoaXMuYnVuZGxlc1tsb2NhbGVJZF07XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGlzT2JzZXJ2YWJsZSh2YWwpID8gYXdhaXQgZmlyc3RWYWx1ZUZyb20odmFsKSA6IGF3YWl0IHZhbDtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5sb2FkZWRMYW5ndWFnZXMkLm5leHQoW1xuICAgICAgICAgICAgLi4ubmV3IFNldChbLi4udGhpcy5sb2FkZWRMYW5ndWFnZXMkLnZhbHVlLCBsb2NhbGVJZF0pLnZhbHVlcygpXG4gICAgICAgICAgXSk7XG4gICAgICAgIH0pO1xuICAgICAgICBpZiAodHlwZW9mIHJlc3VsdCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICByZXR1cm4gcGFyc2VQcm9wZXJ0aWVzKHJlc3VsdCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH0pO1xuICAgIH0pO1xuICAgIHRoaXMuaTE4bkJ1bmRsZSQgPSBmcm9tKGdldEkxOG5CdW5kbGUodGhpcy5uYW1lc3BhY2UpKTtcbiAgfVxuXG4gIGN1cnJlbnRMYW5ndWFnZSgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIGlmICh0aGlzLnBhcmVudCkge1xuICAgICAgcmV0dXJuIHRoaXMucGFyZW50LmN1cnJlbnRMYW5ndWFnZSgpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5jdXJyZW50TGFuZ3VhZ2UkLnZhbHVlO1xuICB9XG5cbiAgY3VycmVudExhbmd1YWdlRXZlbnQoKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICBpZiAodGhpcy5wYXJlbnQpIHtcbiAgICAgIHJldHVybiB0aGlzLnBhcmVudC5jdXJyZW50TGFuZ3VhZ2VFdmVudCgpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5jdXJyZW50TGFuZ3VhZ2UkO1xuICB9XG5cbiAgc2V0TGFuZ3VhZ2UobGFuZ3VhZ2U6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICh0aGlzLnBhcmVudCkge1xuICAgICAgcmV0dXJuIHRoaXMucGFyZW50LnNldExhbmd1YWdlKGxhbmd1YWdlKTtcbiAgICB9XG4gICAgc2V0TGFuZ3VhZ2UobGFuZ3VhZ2UpO1xuICAgIHRoaXMubG9hZGVkTGFuZ3VhZ2VzJC5waXBlKFxuICAgICAgZmlsdGVyKGxhbmdzID0+IGxhbmdzLmluY2x1ZGVzKGxhbmd1YWdlKSksXG4gICAgICBmaXJzdCgpLFxuICAgICAgdGFwKCgpID0+IHRoaXMuY3VycmVudExhbmd1YWdlJC5uZXh0KGxhbmd1YWdlKSlcbiAgICApLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgZ2V0VGV4dChrZXk6IHN0cmluZywgLi4ucGxhY2Vob2xkZXJzOiBhbnlbXSk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgcmV0dXJuIHRoaXMuY3VycmVudExhbmd1YWdlRXZlbnQoKS5waXBlKFxuICAgICAgc3dpdGNoTWFwKCgpID0+IHRoaXMuaTE4bkJ1bmRsZSQpLFxuICAgICAgbWFwKChidW5kbGUpID0+IGJ1bmRsZS5nZXRUZXh0KHtrZXksIGRlZmF1bHRUZXh0OiBrZXl9LCAuLi5wbGFjZWhvbGRlcnMpKSxcbiAgICAgIHN3aXRjaE1hcCgodGV4dCkgPT4ge1xuICAgICAgICBpZiAodGV4dCA9PT0ga2V5ICYmIHRoaXMucGFyZW50KSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMucGFyZW50LmdldFRleHQoa2V5LCAuLi5wbGFjZWhvbGRlcnMpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvZih0ZXh0KTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxufVxuIl19
|
|
@@ -22,9 +22,11 @@ class I18nService {
|
|
|
22
22
|
registerI18nLoader(this.namespace, lang, (localeId) => __awaiter(this, void 0, void 0, function* () {
|
|
23
23
|
const val = this.bundles[localeId];
|
|
24
24
|
const result = isObservable(val) ? yield firstValueFrom(val) : yield val;
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
25
|
+
setTimeout(() => {
|
|
26
|
+
this.loadedLanguages$.next([
|
|
27
|
+
...new Set([...this.loadedLanguages$.value, localeId]).values()
|
|
28
|
+
]);
|
|
29
|
+
});
|
|
28
30
|
if (typeof result === 'string') {
|
|
29
31
|
return parseProperties(result);
|
|
30
32
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ui5-webcomponents-ngx-i18n.mjs","sources":["../../../../libs/ui5-angular/i18n/i18n.tokens.ts","../../../../libs/ui5-angular/i18n/i18n.service.ts","../../../../libs/ui5-angular/i18n/i18n.pipe.ts","../../../../libs/ui5-angular/i18n/i18n.utils.ts","../../../../libs/ui5-angular/i18n/i18n.module.ts","../../../../libs/ui5-angular/i18n/ui5-webcomponents-ngx-i18n.ts"],"sourcesContent":["import {InjectionToken} from \"@angular/core\";\nimport {I18nConfig, Translations} from \"./i18n.types\";\n\nexport const I18N_ROOT_CONFIG = new InjectionToken<I18nConfig>('rootI18nConfig');\nexport const I18N_NAMESPACE = new InjectionToken<string>('i18nNamespace');\nexport const I18N_TRANSLATIONS = new InjectionToken<Translations>('i18nTranslations');\n","import {Inject, inject, Injectable} from \"@angular/core\";\nimport I18nBundle, {getI18nBundle, registerI18nLoader} from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport parseProperties from \"@ui5/webcomponents-base/dist/PropertiesFileFormat.js\";\n\nimport {getLanguage, setLanguage} from \"@ui5/webcomponents-base/dist/config/Language.js\";\nimport {\n BehaviorSubject,\n filter,\n first,\n firstValueFrom,\n from,\n isObservable,\n map,\n Observable,\n of,\n switchMap,\n tap\n} from \"rxjs\";\nimport {I18N_NAMESPACE, I18N_ROOT_CONFIG, I18N_TRANSLATIONS} from \"./i18n.tokens\";\nimport {I18nConfig, Translations} from \"./i18n.types\";\n\n@Injectable()\nexport class I18nService {\n private parent: I18nService | null = inject(I18nService, {skipSelf: true, optional: true});\n private currentLanguage$ = new BehaviorSubject<string>(getLanguage() || this.config.language as string);\n private readonly i18nBundle$: Observable<I18nBundle>;\n private loadedLanguages$ = new BehaviorSubject<string[]>([]);\n\n constructor(\n @Inject(I18N_ROOT_CONFIG) private config: I18nConfig,\n @Inject(I18N_NAMESPACE) private namespace: string,\n @Inject(I18N_TRANSLATIONS) private bundles: Translations = {}\n ) {\n Object.keys(bundles).forEach((lang) => {\n registerI18nLoader(this.namespace, lang, async (localeId: string) => {\n const val = this.bundles[localeId];\n const result = isObservable(val) ? await firstValueFrom(val) : await val;\n this.loadedLanguages$.next([\n ...new Set([...this.loadedLanguages$.value, localeId]).values()\n ]);\n if (typeof result === 'string') {\n return parseProperties(result);\n }\n return result;\n });\n });\n this.i18nBundle$ = from(getI18nBundle(this.namespace));\n }\n\n currentLanguage(): string | undefined {\n if (this.parent) {\n return this.parent.currentLanguage();\n }\n return this.currentLanguage$.value;\n }\n\n currentLanguageEvent(): Observable<string> {\n if (this.parent) {\n return this.parent.currentLanguageEvent();\n }\n return this.currentLanguage$;\n }\n\n setLanguage(language: string): void {\n if (this.parent) {\n return this.parent.setLanguage(language);\n }\n setLanguage(language);\n this.loadedLanguages$.pipe(\n filter(langs => langs.includes(language)),\n first(),\n tap(() => this.currentLanguage$.next(language))\n ).subscribe();\n }\n\n getText(key: string, ...placeholders: any[]): Observable<string> {\n return this.currentLanguageEvent().pipe(\n switchMap(() => this.i18nBundle$),\n map((bundle) => bundle.getText({key, defaultText: key}, ...placeholders)),\n switchMap((text) => {\n if (text === key && this.parent) {\n return this.parent.getText(key, ...placeholders);\n }\n return of(text);\n })\n );\n }\n}\n","import {ChangeDetectorRef, OnDestroy, Pipe, PipeTransform} from \"@angular/core\";\nimport {I18nService} from \"./i18n.service\";\nimport {distinctUntilChanged, Subject, Subscription, takeUntil} from \"rxjs\";\n\n@Pipe({\n name: 'ui5I18n',\n pure: false\n})\nexport class I18nPipe implements PipeTransform, OnDestroy {\n private _lastTranslationValue = '';\n private _subscription?: Subscription;\n private _destroyed$ = new Subject<void>();\n private _lastValue!: string;\n private _lastValueParams!: string[];\n\n constructor(private changeDetectorRef: ChangeDetectorRef,\n private i18nService: I18nService) {\n }\n\n transform(value: string, ...params: any[]): string {\n const paramsChanged = !this._lastValue || params.some((param, index) => param !== this._lastValueParams[index]);\n if (value === this._lastValue && !paramsChanged) {\n return this._lastTranslationValue;\n }\n this._lastValue = value;\n this._lastValueParams = params;\n if (this._subscription) {\n this._subscription.unsubscribe();\n this._subscription = undefined;\n }\n this._subscription = this.i18nService.getText(value, ...params)\n .pipe(\n distinctUntilChanged(),\n takeUntil(this._destroyed$)\n ).subscribe((text) => {\n this._lastTranslationValue = text;\n this.changeDetectorRef.markForCheck();\n });\n return this._lastTranslationValue;\n }\n\n ngOnDestroy(): void {\n this._destroyed$.next();\n this._destroyed$.complete();\n }\n}\n","import {FactorySansProvider, Provider} from \"@angular/core\";\nimport {Translations} from \"./i18n.types\";\nimport {I18N_TRANSLATIONS} from \"./i18n.tokens\";\n\nexport function resolveTranslationsProvider(translations?: Translations | FactorySansProvider): Provider {\n if (!translations) {\n return {\n provide: I18N_TRANSLATIONS,\n useValue: {}\n };\n }\n if (typeof translations.useFactory === 'function') {\n return {\n provide: I18N_TRANSLATIONS,\n useFactory: (translations as FactorySansProvider).useFactory,\n deps: (translations as FactorySansProvider).deps || [],\n }\n }\n return {\n provide: I18N_TRANSLATIONS,\n useValue: translations\n };\n}\n","import {Inject, ModuleWithProviders, NgModule} from \"@angular/core\";\nimport {setFetchDefaultLanguage, setLanguage} from \"@ui5/webcomponents-base/dist/config/Language.js\";\nimport {I18nPipe} from \"./i18n.pipe\";\nimport {I18nService} from \"./i18n.service\";\nimport {I18nConfig} from \"./i18n.types\";\nimport {I18N_NAMESPACE, I18N_ROOT_CONFIG} from \"./i18n.tokens\";\nimport {resolveTranslationsProvider} from \"./i18n.utils\";\n\n\nlet childIds = 0;\n\n@NgModule({\n declarations: [I18nPipe],\n exports: [I18nPipe]\n})\nexport class Ui5I18nModule {\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n constructor(@Inject(I18N_ROOT_CONFIG) private config: I18nConfig) {\n }\n\n static forRoot(config: I18nConfig = {}): ModuleWithProviders<Ui5I18nModule> {\n\n return {\n ngModule: Ui5I18nModule,\n providers: [\n {\n provide: I18N_ROOT_CONFIG,\n useFactory: () => {\n if (config.language) {\n setLanguage(config.language);\n }\n if (config.fetchDefaultLanguage) {\n setFetchDefaultLanguage(config.fetchDefaultLanguage);\n }\n return config;\n }\n },\n {\n provide: I18N_NAMESPACE,\n useValue: config.bundle?.name || 'root_i18n'\n },\n resolveTranslationsProvider(config.bundle?.translations),\n I18nService\n ]\n }\n }\n\n static forChild(config: I18nConfig['bundle'] = {}): ModuleWithProviders<Ui5I18nModule> {\n return {\n ngModule: Ui5I18nModule,\n providers: [\n {\n provide: I18N_NAMESPACE,\n useValue: config?.name || ++childIds + '_i18n'\n },\n resolveTranslationsProvider(config?.translations),\n I18nService\n ]\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.I18nService"],"mappings":";;;;;;;;AAGO,MAAM,gBAAgB,GAAG,IAAI,cAAc,CAAa,gBAAgB,CAAC,CAAC;AAC1E,MAAM,cAAc,GAAG,IAAI,cAAc,CAAS,eAAe,CAAC,CAAC;AACnE,MAAM,iBAAiB,GAAG,IAAI,cAAc,CAAe,kBAAkB,CAAC;;MCiBxE,WAAW,CAAA;AAMtB,IAAA,WAAA,CACoC,MAAkB,EACpB,SAAiB,EACd,UAAwB,EAAE,EAAA;AAF3B,QAAA,IAAM,CAAA,MAAA,GAAN,MAAM,CAAY;AACpB,QAAA,IAAS,CAAA,SAAA,GAAT,SAAS,CAAQ;AACd,QAAA,IAAO,CAAA,OAAA,GAAP,OAAO,CAAmB;AARvD,QAAA,IAAA,CAAA,MAAM,GAAuB,MAAM,CAAC,WAAW,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAC,CAAC,CAAC;AACnF,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,eAAe,CAAS,WAAW,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,QAAkB,CAAC,CAAC;QAEhG,IAAA,CAAA,gBAAgB,GAAG,IAAI,eAAe,CAAW,EAAE,CAAC,CAAC;QAO3D,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;YACpC,kBAAkB,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,CAAO,QAAgB,KAAI,SAAA,CAAA,IAAA,EAAA,KAAA,CAAA,EAAA,KAAA,CAAA,EAAA,aAAA;gBAClE,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AACnC,gBAAA,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,GAAG,MAAM,cAAc,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,CAAC;AACzE,gBAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC;AACzB,oBAAA,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,EAAE;AAChE,iBAAA,CAAC,CAAC;AACH,gBAAA,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;AAC9B,oBAAA,OAAO,eAAe,CAAC,MAAM,CAAC,CAAC;AAChC,iBAAA;AACD,gBAAA,OAAO,MAAM,CAAC;aACf,CAAA,CAAC,CAAC;AACL,SAAC,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;KACxD;IAED,eAAe,GAAA;QACb,IAAI,IAAI,CAAC,MAAM,EAAE;AACf,YAAA,OAAO,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;AACtC,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC;KACpC;IAED,oBAAoB,GAAA;QAClB,IAAI,IAAI,CAAC,MAAM,EAAE;AACf,YAAA,OAAO,IAAI,CAAC,MAAM,CAAC,oBAAoB,EAAE,CAAC;AAC3C,SAAA;QACD,OAAO,IAAI,CAAC,gBAAgB,CAAC;KAC9B;AAED,IAAA,WAAW,CAAC,QAAgB,EAAA;QAC1B,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AAC1C,SAAA;QACD,WAAW,CAAC,QAAQ,CAAC,CAAC;AACtB,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CACxB,MAAM,CAAC,KAAK,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,EACzC,KAAK,EAAE,EACP,GAAG,CAAC,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAChD,CAAC,SAAS,EAAE,CAAC;KACf;AAED,IAAA,OAAO,CAAC,GAAW,EAAE,GAAG,YAAmB,EAAA;QACzC,OAAO,IAAI,CAAC,oBAAoB,EAAE,CAAC,IAAI,CACrC,SAAS,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,EACjC,GAAG,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,OAAO,CAAC,EAAC,GAAG,EAAE,WAAW,EAAE,GAAG,EAAC,EAAE,GAAG,YAAY,CAAC,CAAC,EACzE,SAAS,CAAC,CAAC,IAAI,KAAI;AACjB,YAAA,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,CAAC,MAAM,EAAE;gBAC/B,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,YAAY,CAAC,CAAC;AAClD,aAAA;AACD,YAAA,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC;SACjB,CAAC,CACH,CAAC;KACH;;AAhEU,WAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAW,EAOZ,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,gBAAgB,EAChB,EAAA,EAAA,KAAA,EAAA,cAAc,aACd,iBAAiB,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;4GAThB,WAAW,EAAA,CAAA,CAAA;2FAAX,WAAW,EAAA,UAAA,EAAA,CAAA;kBADvB,UAAU;;;8BAQN,MAAM;+BAAC,gBAAgB,CAAA;;8BACvB,MAAM;+BAAC,cAAc,CAAA;;8BACrB,MAAM;+BAAC,iBAAiB,CAAA;;;;MCvBhB,QAAQ,CAAA;IAOnB,WAAoB,CAAA,iBAAoC,EACpC,WAAwB,EAAA;AADxB,QAAA,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAmB;AACpC,QAAA,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;AAPpC,QAAA,IAAqB,CAAA,qBAAA,GAAG,EAAE,CAAC;AAE3B,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,OAAO,EAAQ,CAAC;KAMzC;AAED,IAAA,SAAS,CAAC,KAAa,EAAE,GAAG,MAAa,EAAA;QACvC,MAAM,aAAa,GAAG,CAAC,IAAI,CAAC,UAAU,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,KAAK,KAAK,KAAK,KAAK,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC;QAChH,IAAI,KAAK,KAAK,IAAI,CAAC,UAAU,IAAI,CAAC,aAAa,EAAE;YAC/C,OAAO,IAAI,CAAC,qBAAqB,CAAC;AACnC,SAAA;AACD,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;AACxB,QAAA,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC;QAC/B,IAAI,IAAI,CAAC,aAAa,EAAE;AACtB,YAAA,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC;AACjC,YAAA,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC;AAChC,SAAA;AACD,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,MAAM,CAAC;AAC5D,aAAA,IAAI,CACH,oBAAoB,EAAE,EACtB,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAC5B,CAAC,SAAS,CAAC,CAAC,IAAI,KAAI;AACnB,YAAA,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;AAClC,YAAA,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,CAAC;AACxC,SAAC,CAAC,CAAC;QACL,OAAO,IAAI,CAAC,qBAAqB,CAAC;KACnC;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;AACxB,QAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;KAC7B;;qGApCU,QAAQ,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;mGAAR,QAAQ,EAAA,IAAA,EAAA,SAAA,EAAA,IAAA,EAAA,KAAA,EAAA,CAAA,CAAA;2FAAR,QAAQ,EAAA,UAAA,EAAA,CAAA;kBAJpB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,SAAS;AACf,oBAAA,IAAI,EAAE,KAAK;iBACZ,CAAA;;;ACHK,SAAU,2BAA2B,CAAC,YAAiD,EAAA;IAC3F,IAAI,CAAC,YAAY,EAAE;QACjB,OAAO;AACL,YAAA,OAAO,EAAE,iBAAiB;AAC1B,YAAA,QAAQ,EAAE,EAAE;SACb,CAAC;AACH,KAAA;AACD,IAAA,IAAI,OAAO,YAAY,CAAC,UAAU,KAAK,UAAU,EAAE;QACjD,OAAO;AACL,YAAA,OAAO,EAAE,iBAAiB;YAC1B,UAAU,EAAG,YAAoC,CAAC,UAAU;AAC5D,YAAA,IAAI,EAAG,YAAoC,CAAC,IAAI,IAAI,EAAE;SACvD,CAAA;AACF,KAAA;IACD,OAAO;AACL,QAAA,OAAO,EAAE,iBAAiB;AAC1B,QAAA,QAAQ,EAAE,YAAY;KACvB,CAAC;AACJ;;ACbA,IAAI,QAAQ,GAAG,CAAC,CAAC;MAMJ,aAAa,CAAA;;AAExB,IAAA,WAAA,CAA8C,MAAkB,EAAA;AAAlB,QAAA,IAAM,CAAA,MAAA,GAAN,MAAM,CAAY;KAC/D;AAED,IAAA,OAAO,OAAO,CAAC,MAAA,GAAqB,EAAE,EAAA;;QAEpC,OAAO;AACL,YAAA,QAAQ,EAAE,aAAa;AACvB,YAAA,SAAS,EAAE;AACT,gBAAA;AACE,oBAAA,OAAO,EAAE,gBAAgB;oBACzB,UAAU,EAAE,MAAK;wBACf,IAAI,MAAM,CAAC,QAAQ,EAAE;AACnB,4BAAA,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AAC9B,yBAAA;wBACD,IAAI,MAAM,CAAC,oBAAoB,EAAE;AAC/B,4BAAA,uBAAuB,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;AACtD,yBAAA;AACD,wBAAA,OAAO,MAAM,CAAC;qBACf;AACF,iBAAA;AACD,gBAAA;AACE,oBAAA,OAAO,EAAE,cAAc;oBACvB,QAAQ,EAAE,CAAA,CAAA,EAAA,GAAA,MAAM,CAAC,MAAM,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,IAAI,KAAI,WAAW;AAC7C,iBAAA;AACD,gBAAA,2BAA2B,CAAC,CAAA,EAAA,GAAA,MAAM,CAAC,MAAM,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,YAAY,CAAC;gBACxD,WAAW;AACZ,aAAA;SACF,CAAA;KACF;AAED,IAAA,OAAO,QAAQ,CAAC,MAAA,GAA+B,EAAE,EAAA;QAC/C,OAAO;AACL,YAAA,QAAQ,EAAE,aAAa;AACvB,YAAA,SAAS,EAAE;AACT,gBAAA;AACE,oBAAA,OAAO,EAAE,cAAc;AACvB,oBAAA,QAAQ,EAAE,CAAA,MAAM,KAAA,IAAA,IAAN,MAAM,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAN,MAAM,CAAE,IAAI,KAAI,EAAE,QAAQ,GAAG,OAAO;AAC/C,iBAAA;gBACD,2BAA2B,CAAC,MAAM,KAAN,IAAA,IAAA,MAAM,uBAAN,MAAM,CAAE,YAAY,CAAC;gBACjD,WAAW;AACZ,aAAA;SACF,CAAA;KACF;;AA5CU,aAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,kBAEJ,gBAAgB,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;2GAFzB,aAAa,EAAA,YAAA,EAAA,CAHT,QAAQ,CAAA,EAAA,OAAA,EAAA,CACb,QAAQ,CAAA,EAAA,CAAA,CAAA;2GAEP,aAAa,EAAA,CAAA,CAAA;2FAAb,aAAa,EAAA,UAAA,EAAA,CAAA;kBAJzB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,QAAQ,CAAC;oBACxB,OAAO,EAAE,CAAC,QAAQ,CAAC;iBACpB,CAAA;;;8BAGc,MAAM;+BAAC,gBAAgB,CAAA;;;;ACjBtC;;AAEG;;;;"}
|
|
1
|
+
{"version":3,"file":"ui5-webcomponents-ngx-i18n.mjs","sources":["../../../../libs/ui5-angular/i18n/i18n.tokens.ts","../../../../libs/ui5-angular/i18n/i18n.service.ts","../../../../libs/ui5-angular/i18n/i18n.pipe.ts","../../../../libs/ui5-angular/i18n/i18n.utils.ts","../../../../libs/ui5-angular/i18n/i18n.module.ts","../../../../libs/ui5-angular/i18n/ui5-webcomponents-ngx-i18n.ts"],"sourcesContent":["import {InjectionToken} from \"@angular/core\";\nimport {I18nConfig, Translations} from \"./i18n.types\";\n\nexport const I18N_ROOT_CONFIG = new InjectionToken<I18nConfig>('rootI18nConfig');\nexport const I18N_NAMESPACE = new InjectionToken<string>('i18nNamespace');\nexport const I18N_TRANSLATIONS = new InjectionToken<Translations>('i18nTranslations');\n","import {Inject, inject, Injectable} from \"@angular/core\";\nimport I18nBundle, {getI18nBundle, registerI18nLoader} from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport parseProperties from \"@ui5/webcomponents-base/dist/PropertiesFileFormat.js\";\n\nimport {getLanguage, setLanguage} from \"@ui5/webcomponents-base/dist/config/Language.js\";\nimport {\n BehaviorSubject,\n filter,\n first,\n firstValueFrom,\n from,\n isObservable,\n map,\n Observable,\n of,\n switchMap,\n tap\n} from \"rxjs\";\nimport {I18N_NAMESPACE, I18N_ROOT_CONFIG, I18N_TRANSLATIONS} from \"./i18n.tokens\";\nimport {I18nConfig, Translations} from \"./i18n.types\";\n\n@Injectable()\nexport class I18nService {\n private parent: I18nService | null = inject(I18nService, {skipSelf: true, optional: true});\n private currentLanguage$ = new BehaviorSubject<string>(getLanguage() || this.config.language as string);\n private readonly i18nBundle$: Observable<I18nBundle>;\n private loadedLanguages$ = new BehaviorSubject<string[]>([]);\n\n constructor(\n @Inject(I18N_ROOT_CONFIG) private config: I18nConfig,\n @Inject(I18N_NAMESPACE) private namespace: string,\n @Inject(I18N_TRANSLATIONS) private bundles: Translations = {}\n ) {\n Object.keys(bundles).forEach((lang) => {\n registerI18nLoader(this.namespace, lang, async (localeId: string) => {\n const val = this.bundles[localeId];\n const result = isObservable(val) ? await firstValueFrom(val) : await val;\n setTimeout(() => {\n this.loadedLanguages$.next([\n ...new Set([...this.loadedLanguages$.value, localeId]).values()\n ]);\n });\n if (typeof result === 'string') {\n return parseProperties(result);\n }\n return result;\n });\n });\n this.i18nBundle$ = from(getI18nBundle(this.namespace));\n }\n\n currentLanguage(): string | undefined {\n if (this.parent) {\n return this.parent.currentLanguage();\n }\n return this.currentLanguage$.value;\n }\n\n currentLanguageEvent(): Observable<string> {\n if (this.parent) {\n return this.parent.currentLanguageEvent();\n }\n return this.currentLanguage$;\n }\n\n setLanguage(language: string): void {\n if (this.parent) {\n return this.parent.setLanguage(language);\n }\n setLanguage(language);\n this.loadedLanguages$.pipe(\n filter(langs => langs.includes(language)),\n first(),\n tap(() => this.currentLanguage$.next(language))\n ).subscribe();\n }\n\n getText(key: string, ...placeholders: any[]): Observable<string> {\n return this.currentLanguageEvent().pipe(\n switchMap(() => this.i18nBundle$),\n map((bundle) => bundle.getText({key, defaultText: key}, ...placeholders)),\n switchMap((text) => {\n if (text === key && this.parent) {\n return this.parent.getText(key, ...placeholders);\n }\n return of(text);\n })\n );\n }\n}\n","import {ChangeDetectorRef, OnDestroy, Pipe, PipeTransform} from \"@angular/core\";\nimport {I18nService} from \"./i18n.service\";\nimport {distinctUntilChanged, Subject, Subscription, takeUntil} from \"rxjs\";\n\n@Pipe({\n name: 'ui5I18n',\n pure: false\n})\nexport class I18nPipe implements PipeTransform, OnDestroy {\n private _lastTranslationValue = '';\n private _subscription?: Subscription;\n private _destroyed$ = new Subject<void>();\n private _lastValue!: string;\n private _lastValueParams!: string[];\n\n constructor(private changeDetectorRef: ChangeDetectorRef,\n private i18nService: I18nService) {\n }\n\n transform(value: string, ...params: any[]): string {\n const paramsChanged = !this._lastValue || params.some((param, index) => param !== this._lastValueParams[index]);\n if (value === this._lastValue && !paramsChanged) {\n return this._lastTranslationValue;\n }\n this._lastValue = value;\n this._lastValueParams = params;\n if (this._subscription) {\n this._subscription.unsubscribe();\n this._subscription = undefined;\n }\n this._subscription = this.i18nService.getText(value, ...params)\n .pipe(\n distinctUntilChanged(),\n takeUntil(this._destroyed$)\n ).subscribe((text) => {\n this._lastTranslationValue = text;\n this.changeDetectorRef.markForCheck();\n });\n return this._lastTranslationValue;\n }\n\n ngOnDestroy(): void {\n this._destroyed$.next();\n this._destroyed$.complete();\n }\n}\n","import {FactorySansProvider, Provider} from \"@angular/core\";\nimport {Translations} from \"./i18n.types\";\nimport {I18N_TRANSLATIONS} from \"./i18n.tokens\";\n\nexport function resolveTranslationsProvider(translations?: Translations | FactorySansProvider): Provider {\n if (!translations) {\n return {\n provide: I18N_TRANSLATIONS,\n useValue: {}\n };\n }\n if (typeof translations.useFactory === 'function') {\n return {\n provide: I18N_TRANSLATIONS,\n useFactory: (translations as FactorySansProvider).useFactory,\n deps: (translations as FactorySansProvider).deps || [],\n }\n }\n return {\n provide: I18N_TRANSLATIONS,\n useValue: translations\n };\n}\n","import {Inject, ModuleWithProviders, NgModule} from \"@angular/core\";\nimport {setFetchDefaultLanguage, setLanguage} from \"@ui5/webcomponents-base/dist/config/Language.js\";\nimport {I18nPipe} from \"./i18n.pipe\";\nimport {I18nService} from \"./i18n.service\";\nimport {I18nConfig} from \"./i18n.types\";\nimport {I18N_NAMESPACE, I18N_ROOT_CONFIG} from \"./i18n.tokens\";\nimport {resolveTranslationsProvider} from \"./i18n.utils\";\n\n\nlet childIds = 0;\n\n@NgModule({\n declarations: [I18nPipe],\n exports: [I18nPipe]\n})\nexport class Ui5I18nModule {\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n constructor(@Inject(I18N_ROOT_CONFIG) private config: I18nConfig) {\n }\n\n static forRoot(config: I18nConfig = {}): ModuleWithProviders<Ui5I18nModule> {\n\n return {\n ngModule: Ui5I18nModule,\n providers: [\n {\n provide: I18N_ROOT_CONFIG,\n useFactory: () => {\n if (config.language) {\n setLanguage(config.language);\n }\n if (config.fetchDefaultLanguage) {\n setFetchDefaultLanguage(config.fetchDefaultLanguage);\n }\n return config;\n }\n },\n {\n provide: I18N_NAMESPACE,\n useValue: config.bundle?.name || 'root_i18n'\n },\n resolveTranslationsProvider(config.bundle?.translations),\n I18nService\n ]\n }\n }\n\n static forChild(config: I18nConfig['bundle'] = {}): ModuleWithProviders<Ui5I18nModule> {\n return {\n ngModule: Ui5I18nModule,\n providers: [\n {\n provide: I18N_NAMESPACE,\n useValue: config?.name || ++childIds + '_i18n'\n },\n resolveTranslationsProvider(config?.translations),\n I18nService\n ]\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.I18nService"],"mappings":"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"}
|
|
@@ -21,9 +21,11 @@ class I18nService {
|
|
|
21
21
|
registerI18nLoader(this.namespace, lang, async (localeId) => {
|
|
22
22
|
const val = this.bundles[localeId];
|
|
23
23
|
const result = isObservable(val) ? await firstValueFrom(val) : await val;
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
24
|
+
setTimeout(() => {
|
|
25
|
+
this.loadedLanguages$.next([
|
|
26
|
+
...new Set([...this.loadedLanguages$.value, localeId]).values()
|
|
27
|
+
]);
|
|
28
|
+
});
|
|
27
29
|
if (typeof result === 'string') {
|
|
28
30
|
return parseProperties(result);
|
|
29
31
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ui5-webcomponents-ngx-i18n.mjs","sources":["../../../../libs/ui5-angular/i18n/i18n.tokens.ts","../../../../libs/ui5-angular/i18n/i18n.service.ts","../../../../libs/ui5-angular/i18n/i18n.pipe.ts","../../../../libs/ui5-angular/i18n/i18n.utils.ts","../../../../libs/ui5-angular/i18n/i18n.module.ts","../../../../libs/ui5-angular/i18n/ui5-webcomponents-ngx-i18n.ts"],"sourcesContent":["import {InjectionToken} from \"@angular/core\";\nimport {I18nConfig, Translations} from \"./i18n.types\";\n\nexport const I18N_ROOT_CONFIG = new InjectionToken<I18nConfig>('rootI18nConfig');\nexport const I18N_NAMESPACE = new InjectionToken<string>('i18nNamespace');\nexport const I18N_TRANSLATIONS = new InjectionToken<Translations>('i18nTranslations');\n","import {Inject, inject, Injectable} from \"@angular/core\";\nimport I18nBundle, {getI18nBundle, registerI18nLoader} from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport parseProperties from \"@ui5/webcomponents-base/dist/PropertiesFileFormat.js\";\n\nimport {getLanguage, setLanguage} from \"@ui5/webcomponents-base/dist/config/Language.js\";\nimport {\n BehaviorSubject,\n filter,\n first,\n firstValueFrom,\n from,\n isObservable,\n map,\n Observable,\n of,\n switchMap,\n tap\n} from \"rxjs\";\nimport {I18N_NAMESPACE, I18N_ROOT_CONFIG, I18N_TRANSLATIONS} from \"./i18n.tokens\";\nimport {I18nConfig, Translations} from \"./i18n.types\";\n\n@Injectable()\nexport class I18nService {\n private parent: I18nService | null = inject(I18nService, {skipSelf: true, optional: true});\n private currentLanguage$ = new BehaviorSubject<string>(getLanguage() || this.config.language as string);\n private readonly i18nBundle$: Observable<I18nBundle>;\n private loadedLanguages$ = new BehaviorSubject<string[]>([]);\n\n constructor(\n @Inject(I18N_ROOT_CONFIG) private config: I18nConfig,\n @Inject(I18N_NAMESPACE) private namespace: string,\n @Inject(I18N_TRANSLATIONS) private bundles: Translations = {}\n ) {\n Object.keys(bundles).forEach((lang) => {\n registerI18nLoader(this.namespace, lang, async (localeId: string) => {\n const val = this.bundles[localeId];\n const result = isObservable(val) ? await firstValueFrom(val) : await val;\n this.loadedLanguages$.next([\n ...new Set([...this.loadedLanguages$.value, localeId]).values()\n ]);\n if (typeof result === 'string') {\n return parseProperties(result);\n }\n return result;\n });\n });\n this.i18nBundle$ = from(getI18nBundle(this.namespace));\n }\n\n currentLanguage(): string | undefined {\n if (this.parent) {\n return this.parent.currentLanguage();\n }\n return this.currentLanguage$.value;\n }\n\n currentLanguageEvent(): Observable<string> {\n if (this.parent) {\n return this.parent.currentLanguageEvent();\n }\n return this.currentLanguage$;\n }\n\n setLanguage(language: string): void {\n if (this.parent) {\n return this.parent.setLanguage(language);\n }\n setLanguage(language);\n this.loadedLanguages$.pipe(\n filter(langs => langs.includes(language)),\n first(),\n tap(() => this.currentLanguage$.next(language))\n ).subscribe();\n }\n\n getText(key: string, ...placeholders: any[]): Observable<string> {\n return this.currentLanguageEvent().pipe(\n switchMap(() => this.i18nBundle$),\n map((bundle) => bundle.getText({key, defaultText: key}, ...placeholders)),\n switchMap((text) => {\n if (text === key && this.parent) {\n return this.parent.getText(key, ...placeholders);\n }\n return of(text);\n })\n );\n }\n}\n","import {ChangeDetectorRef, OnDestroy, Pipe, PipeTransform} from \"@angular/core\";\nimport {I18nService} from \"./i18n.service\";\nimport {distinctUntilChanged, Subject, Subscription, takeUntil} from \"rxjs\";\n\n@Pipe({\n name: 'ui5I18n',\n pure: false\n})\nexport class I18nPipe implements PipeTransform, OnDestroy {\n private _lastTranslationValue = '';\n private _subscription?: Subscription;\n private _destroyed$ = new Subject<void>();\n private _lastValue!: string;\n private _lastValueParams!: string[];\n\n constructor(private changeDetectorRef: ChangeDetectorRef,\n private i18nService: I18nService) {\n }\n\n transform(value: string, ...params: any[]): string {\n const paramsChanged = !this._lastValue || params.some((param, index) => param !== this._lastValueParams[index]);\n if (value === this._lastValue && !paramsChanged) {\n return this._lastTranslationValue;\n }\n this._lastValue = value;\n this._lastValueParams = params;\n if (this._subscription) {\n this._subscription.unsubscribe();\n this._subscription = undefined;\n }\n this._subscription = this.i18nService.getText(value, ...params)\n .pipe(\n distinctUntilChanged(),\n takeUntil(this._destroyed$)\n ).subscribe((text) => {\n this._lastTranslationValue = text;\n this.changeDetectorRef.markForCheck();\n });\n return this._lastTranslationValue;\n }\n\n ngOnDestroy(): void {\n this._destroyed$.next();\n this._destroyed$.complete();\n }\n}\n","import {FactorySansProvider, Provider} from \"@angular/core\";\nimport {Translations} from \"./i18n.types\";\nimport {I18N_TRANSLATIONS} from \"./i18n.tokens\";\n\nexport function resolveTranslationsProvider(translations?: Translations | FactorySansProvider): Provider {\n if (!translations) {\n return {\n provide: I18N_TRANSLATIONS,\n useValue: {}\n };\n }\n if (typeof translations.useFactory === 'function') {\n return {\n provide: I18N_TRANSLATIONS,\n useFactory: (translations as FactorySansProvider).useFactory,\n deps: (translations as FactorySansProvider).deps || [],\n }\n }\n return {\n provide: I18N_TRANSLATIONS,\n useValue: translations\n };\n}\n","import {Inject, ModuleWithProviders, NgModule} from \"@angular/core\";\nimport {setFetchDefaultLanguage, setLanguage} from \"@ui5/webcomponents-base/dist/config/Language.js\";\nimport {I18nPipe} from \"./i18n.pipe\";\nimport {I18nService} from \"./i18n.service\";\nimport {I18nConfig} from \"./i18n.types\";\nimport {I18N_NAMESPACE, I18N_ROOT_CONFIG} from \"./i18n.tokens\";\nimport {resolveTranslationsProvider} from \"./i18n.utils\";\n\n\nlet childIds = 0;\n\n@NgModule({\n declarations: [I18nPipe],\n exports: [I18nPipe]\n})\nexport class Ui5I18nModule {\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n constructor(@Inject(I18N_ROOT_CONFIG) private config: I18nConfig) {\n }\n\n static forRoot(config: I18nConfig = {}): ModuleWithProviders<Ui5I18nModule> {\n\n return {\n ngModule: Ui5I18nModule,\n providers: [\n {\n provide: I18N_ROOT_CONFIG,\n useFactory: () => {\n if (config.language) {\n setLanguage(config.language);\n }\n if (config.fetchDefaultLanguage) {\n setFetchDefaultLanguage(config.fetchDefaultLanguage);\n }\n return config;\n }\n },\n {\n provide: I18N_NAMESPACE,\n useValue: config.bundle?.name || 'root_i18n'\n },\n resolveTranslationsProvider(config.bundle?.translations),\n I18nService\n ]\n }\n }\n\n static forChild(config: I18nConfig['bundle'] = {}): ModuleWithProviders<Ui5I18nModule> {\n return {\n ngModule: Ui5I18nModule,\n providers: [\n {\n provide: I18N_NAMESPACE,\n useValue: config?.name || ++childIds + '_i18n'\n },\n resolveTranslationsProvider(config?.translations),\n I18nService\n ]\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.I18nService"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ui5-webcomponents-ngx-i18n.mjs","sources":["../../../../libs/ui5-angular/i18n/i18n.tokens.ts","../../../../libs/ui5-angular/i18n/i18n.service.ts","../../../../libs/ui5-angular/i18n/i18n.pipe.ts","../../../../libs/ui5-angular/i18n/i18n.utils.ts","../../../../libs/ui5-angular/i18n/i18n.module.ts","../../../../libs/ui5-angular/i18n/ui5-webcomponents-ngx-i18n.ts"],"sourcesContent":["import {InjectionToken} from \"@angular/core\";\nimport {I18nConfig, Translations} from \"./i18n.types\";\n\nexport const I18N_ROOT_CONFIG = new InjectionToken<I18nConfig>('rootI18nConfig');\nexport const I18N_NAMESPACE = new InjectionToken<string>('i18nNamespace');\nexport const I18N_TRANSLATIONS = new InjectionToken<Translations>('i18nTranslations');\n","import {Inject, inject, Injectable} from \"@angular/core\";\nimport I18nBundle, {getI18nBundle, registerI18nLoader} from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport parseProperties from \"@ui5/webcomponents-base/dist/PropertiesFileFormat.js\";\n\nimport {getLanguage, setLanguage} from \"@ui5/webcomponents-base/dist/config/Language.js\";\nimport {\n BehaviorSubject,\n filter,\n first,\n firstValueFrom,\n from,\n isObservable,\n map,\n Observable,\n of,\n switchMap,\n tap\n} from \"rxjs\";\nimport {I18N_NAMESPACE, I18N_ROOT_CONFIG, I18N_TRANSLATIONS} from \"./i18n.tokens\";\nimport {I18nConfig, Translations} from \"./i18n.types\";\n\n@Injectable()\nexport class I18nService {\n private parent: I18nService | null = inject(I18nService, {skipSelf: true, optional: true});\n private currentLanguage$ = new BehaviorSubject<string>(getLanguage() || this.config.language as string);\n private readonly i18nBundle$: Observable<I18nBundle>;\n private loadedLanguages$ = new BehaviorSubject<string[]>([]);\n\n constructor(\n @Inject(I18N_ROOT_CONFIG) private config: I18nConfig,\n @Inject(I18N_NAMESPACE) private namespace: string,\n @Inject(I18N_TRANSLATIONS) private bundles: Translations = {}\n ) {\n Object.keys(bundles).forEach((lang) => {\n registerI18nLoader(this.namespace, lang, async (localeId: string) => {\n const val = this.bundles[localeId];\n const result = isObservable(val) ? await firstValueFrom(val) : await val;\n setTimeout(() => {\n this.loadedLanguages$.next([\n ...new Set([...this.loadedLanguages$.value, localeId]).values()\n ]);\n });\n if (typeof result === 'string') {\n return parseProperties(result);\n }\n return result;\n });\n });\n this.i18nBundle$ = from(getI18nBundle(this.namespace));\n }\n\n currentLanguage(): string | undefined {\n if (this.parent) {\n return this.parent.currentLanguage();\n }\n return this.currentLanguage$.value;\n }\n\n currentLanguageEvent(): Observable<string> {\n if (this.parent) {\n return this.parent.currentLanguageEvent();\n }\n return this.currentLanguage$;\n }\n\n setLanguage(language: string): void {\n if (this.parent) {\n return this.parent.setLanguage(language);\n }\n setLanguage(language);\n this.loadedLanguages$.pipe(\n filter(langs => langs.includes(language)),\n first(),\n tap(() => this.currentLanguage$.next(language))\n ).subscribe();\n }\n\n getText(key: string, ...placeholders: any[]): Observable<string> {\n return this.currentLanguageEvent().pipe(\n switchMap(() => this.i18nBundle$),\n map((bundle) => bundle.getText({key, defaultText: key}, ...placeholders)),\n switchMap((text) => {\n if (text === key && this.parent) {\n return this.parent.getText(key, ...placeholders);\n }\n return of(text);\n })\n );\n }\n}\n","import {ChangeDetectorRef, OnDestroy, Pipe, PipeTransform} from \"@angular/core\";\nimport {I18nService} from \"./i18n.service\";\nimport {distinctUntilChanged, Subject, Subscription, takeUntil} from \"rxjs\";\n\n@Pipe({\n name: 'ui5I18n',\n pure: false\n})\nexport class I18nPipe implements PipeTransform, OnDestroy {\n private _lastTranslationValue = '';\n private _subscription?: Subscription;\n private _destroyed$ = new Subject<void>();\n private _lastValue!: string;\n private _lastValueParams!: string[];\n\n constructor(private changeDetectorRef: ChangeDetectorRef,\n private i18nService: I18nService) {\n }\n\n transform(value: string, ...params: any[]): string {\n const paramsChanged = !this._lastValue || params.some((param, index) => param !== this._lastValueParams[index]);\n if (value === this._lastValue && !paramsChanged) {\n return this._lastTranslationValue;\n }\n this._lastValue = value;\n this._lastValueParams = params;\n if (this._subscription) {\n this._subscription.unsubscribe();\n this._subscription = undefined;\n }\n this._subscription = this.i18nService.getText(value, ...params)\n .pipe(\n distinctUntilChanged(),\n takeUntil(this._destroyed$)\n ).subscribe((text) => {\n this._lastTranslationValue = text;\n this.changeDetectorRef.markForCheck();\n });\n return this._lastTranslationValue;\n }\n\n ngOnDestroy(): void {\n this._destroyed$.next();\n this._destroyed$.complete();\n }\n}\n","import {FactorySansProvider, Provider} from \"@angular/core\";\nimport {Translations} from \"./i18n.types\";\nimport {I18N_TRANSLATIONS} from \"./i18n.tokens\";\n\nexport function resolveTranslationsProvider(translations?: Translations | FactorySansProvider): Provider {\n if (!translations) {\n return {\n provide: I18N_TRANSLATIONS,\n useValue: {}\n };\n }\n if (typeof translations.useFactory === 'function') {\n return {\n provide: I18N_TRANSLATIONS,\n useFactory: (translations as FactorySansProvider).useFactory,\n deps: (translations as FactorySansProvider).deps || [],\n }\n }\n return {\n provide: I18N_TRANSLATIONS,\n useValue: translations\n };\n}\n","import {Inject, ModuleWithProviders, NgModule} from \"@angular/core\";\nimport {setFetchDefaultLanguage, setLanguage} from \"@ui5/webcomponents-base/dist/config/Language.js\";\nimport {I18nPipe} from \"./i18n.pipe\";\nimport {I18nService} from \"./i18n.service\";\nimport {I18nConfig} from \"./i18n.types\";\nimport {I18N_NAMESPACE, I18N_ROOT_CONFIG} from \"./i18n.tokens\";\nimport {resolveTranslationsProvider} from \"./i18n.utils\";\n\n\nlet childIds = 0;\n\n@NgModule({\n declarations: [I18nPipe],\n exports: [I18nPipe]\n})\nexport class Ui5I18nModule {\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n constructor(@Inject(I18N_ROOT_CONFIG) private config: I18nConfig) {\n }\n\n static forRoot(config: I18nConfig = {}): ModuleWithProviders<Ui5I18nModule> {\n\n return {\n ngModule: Ui5I18nModule,\n providers: [\n {\n provide: I18N_ROOT_CONFIG,\n useFactory: () => {\n if (config.language) {\n setLanguage(config.language);\n }\n if (config.fetchDefaultLanguage) {\n setFetchDefaultLanguage(config.fetchDefaultLanguage);\n }\n return config;\n }\n },\n {\n provide: I18N_NAMESPACE,\n useValue: config.bundle?.name || 'root_i18n'\n },\n resolveTranslationsProvider(config.bundle?.translations),\n I18nService\n ]\n }\n }\n\n static forChild(config: I18nConfig['bundle'] = {}): ModuleWithProviders<Ui5I18nModule> {\n return {\n ngModule: Ui5I18nModule,\n providers: [\n {\n provide: I18N_NAMESPACE,\n useValue: config?.name || ++childIds + '_i18n'\n },\n resolveTranslationsProvider(config?.translations),\n I18nService\n ]\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.I18nService"],"mappings":"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"}
|
package/package.json
CHANGED
|
Binary file
|
|
Binary file
|