@infordata-web/portal-common-component-lib
Version:
This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 10.0.14.
45 lines • 7.7 kB
JavaScript
import { ApplicationRef, Injectable } from '@angular/core';
import { defer, Observable, Subject } from 'rxjs';
import { map, shareReplay, switchMap, tap } from 'rxjs/operators';
import { HttpClient } from '@angular/common/http';
import { ConfigurationService } from '../configuration/configuration-service';
import * as i0 from "@angular/core";
import * as i1 from "@angular/common/http";
import * as i2 from "../configuration/configuration-service";
export class TranslateService {
constructor(http, appRef, configurationService) {
this.http = http;
this.appRef = appRef;
this.configurationService = configurationService;
this.traduzioniLib$ = new Observable();
this.communicatoreConEsterno$ = new Subject();
this.i18nApiUrl = this.configurationService.servicePaths.get("I18N_MS_API_URL");
console.log('[DAG_I18N_MS_URL]', this.i18nApiUrl);
this.traduzioniLib$ = this.configurationService.lingua$.pipe(switchMap(language => this.getBundleTraduzioni$(language)), tap(_ => setTimeout(() => this.appRef.tick(), 0)), shareReplay());
}
getTraduzione$(codice) {
return defer(() => this.traduzioniLib$.pipe(map(bundle => bundle.get(codice) || codice)));
}
getBundleTraduzioni$(language) {
const url = this.i18nApiUrl + '/v1/labels/' + this.configurationService.nameApp + '/' + language;
return this.http.get(url).pipe(map(this.reduceLabels), tap(_ => this.communicatoreConEsterno$.next(true)));
}
reduceLabels(labels) {
const reduced = labels.reduce((acc, label) => {
return acc.set(label["codiceLabel"], label["label"]);
}, new Map());
return reduced;
}
}
TranslateService.ɵprov = i0.ɵɵdefineInjectable({ factory: function TranslateService_Factory() { return new TranslateService(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(i0.ApplicationRef), i0.ɵɵinject(i2.ConfigurationService)); }, token: TranslateService, providedIn: "root" });
TranslateService.decorators = [
{ type: Injectable, args: [{
providedIn: 'root'
},] }
];
TranslateService.ctorParameters = () => [
{ type: HttpClient },
{ type: ApplicationRef },
{ type: ConfigurationService }
];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiRDovUHJvZ2V0dGkvREFHL3NvcmdlbnRpL2dpdGxhYi10ZXJuaS9jb21tb24tY29tcG9uZW50LWxpYi9wcm9qZWN0cy9wb3J0YWwtY29tbW9uLWNvbXBvbmVudC1saWIvc3JjLyIsInNvdXJjZXMiOlsibGliL3RyYW5zbGF0ZS90cmFuc2xhdGUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRCxPQUFPLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbEQsT0FBTyxFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQzs7OztBQUs5RSxNQUFNLE9BQU8sZ0JBQWdCO0lBTzVCLFlBQW9CLElBQWdCLEVBQzNCLE1BQXNCLEVBQ3RCLG9CQUEwQztRQUYvQixTQUFJLEdBQUosSUFBSSxDQUFZO1FBQzNCLFdBQU0sR0FBTixNQUFNLENBQWdCO1FBQ3RCLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBc0I7UUFQNUMsbUJBQWMsR0FBRyxJQUFJLFVBQVUsRUFBdUIsQ0FBQztRQUN2RCw2QkFBd0IsR0FBRyxJQUFJLE9BQU8sRUFBTyxDQUFDO1FBUXBELElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUNoRixPQUFPLENBQUMsR0FBRyxDQUFDLG1CQUFtQixFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUVsRCxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUMzRCxTQUFTLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsUUFBUSxDQUFDLENBQUMsRUFDMUQsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFDakQsV0FBVyxFQUFFLENBQ2IsQ0FBQztJQUNILENBQUM7SUFFRCxjQUFjLENBQUMsTUFBYztRQUM1QixPQUFPLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FDMUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQ1osTUFBTSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxNQUFNLENBQzVCLENBQ0QsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVPLG9CQUFvQixDQUFDLFFBQVE7UUFDcEMsTUFBTSxHQUFHLEdBQVcsSUFBSSxDQUFDLFVBQVUsR0FBRyxhQUFhLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE9BQU8sR0FBRyxHQUFHLEdBQUcsUUFBUSxDQUFDO1FBQ3pHLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUM3QixHQUFHLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUN0QixHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsd0JBQXdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQ2xELENBQUM7SUFDSCxDQUFDO0lBRU8sWUFBWSxDQUFDLE1BQWtCO1FBQ3RDLE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUF3QixFQUFFLEtBQUssRUFBRSxFQUFFO1lBQ2pFLE9BQU8sR0FBRyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUE7UUFDckQsQ0FBQyxFQUNBLElBQUksR0FBRyxFQUFrQixDQUFDLENBQUM7UUFFNUIsT0FBTyxPQUFPLENBQUM7SUFDaEIsQ0FBQzs7OztZQS9DRCxVQUFVLFNBQUM7Z0JBQ1gsVUFBVSxFQUFFLE1BQU07YUFDbEI7OztZQUxRLFVBQVU7WUFIVixjQUFjO1lBSWQsb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXBwbGljYXRpb25SZWYsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgZGVmZXIsIE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgbWFwLCBzaGFyZVJlcGxheSwgc3dpdGNoTWFwLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IENvbmZpZ3VyYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vY29uZmlndXJhdGlvbi9jb25maWd1cmF0aW9uLXNlcnZpY2UnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG5cdHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgVHJhbnNsYXRlU2VydmljZSB7XHJcblxyXG5cdHB1YmxpYyB0cmFkdXppb25pTGliJCA9IG5ldyBPYnNlcnZhYmxlPE1hcDxzdHJpbmcsIHN0cmluZz4+KCk7XHJcblx0cHVibGljIGNvbW11bmljYXRvcmVDb25Fc3Rlcm5vJCA9IG5ldyBTdWJqZWN0PGFueT4oKTtcclxuXHRsb2FkaW5nTGluZ3VhZ2U6IGJvb2xlYW47XHJcblx0aTE4bkFwaVVybDtcclxuXHJcblx0Y29uc3RydWN0b3IocHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxyXG5cdFx0cHJpdmF0ZSBhcHBSZWY6IEFwcGxpY2F0aW9uUmVmLFxyXG5cdFx0cHJpdmF0ZSBjb25maWd1cmF0aW9uU2VydmljZTogQ29uZmlndXJhdGlvblNlcnZpY2UpIHtcclxuXHJcblx0XHR0aGlzLmkxOG5BcGlVcmwgPSB0aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlLnNlcnZpY2VQYXRocy5nZXQoXCJJMThOX01TX0FQSV9VUkxcIik7XHJcblx0XHRjb25zb2xlLmxvZygnW0RBR19JMThOX01TX1VSTF0nLCB0aGlzLmkxOG5BcGlVcmwpO1xyXG5cclxuXHRcdHRoaXMudHJhZHV6aW9uaUxpYiQgPSB0aGlzLmNvbmZpZ3VyYXRpb25TZXJ2aWNlLmxpbmd1YSQucGlwZShcclxuXHRcdFx0c3dpdGNoTWFwKGxhbmd1YWdlID0+IHRoaXMuZ2V0QnVuZGxlVHJhZHV6aW9uaSQobGFuZ3VhZ2UpKSxcclxuXHRcdFx0dGFwKF8gPT4gc2V0VGltZW91dCgoKSA9PiB0aGlzLmFwcFJlZi50aWNrKCksIDApKSxcclxuXHRcdFx0c2hhcmVSZXBsYXkoKVxyXG5cdFx0KTtcclxuXHR9XHJcblxyXG5cdGdldFRyYWR1emlvbmUkKGNvZGljZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcclxuXHRcdHJldHVybiBkZWZlcigoKSA9PiB0aGlzLnRyYWR1emlvbmlMaWIkLnBpcGUoXHJcblx0XHRcdG1hcChidW5kbGUgPT5cclxuXHRcdFx0XHRidW5kbGUuZ2V0KGNvZGljZSkgfHwgY29kaWNlXHJcblx0XHRcdClcclxuXHRcdCkpO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBnZXRCdW5kbGVUcmFkdXppb25pJChsYW5ndWFnZSk6IE9ic2VydmFibGU8TWFwPHN0cmluZywgc3RyaW5nPj4ge1xyXG5cdFx0Y29uc3QgdXJsOiBzdHJpbmcgPSB0aGlzLmkxOG5BcGlVcmwgKyAnL3YxL2xhYmVscy8nICsgdGhpcy5jb25maWd1cmF0aW9uU2VydmljZS5uYW1lQXBwICsgJy8nICsgbGFuZ3VhZ2U7XHJcblx0XHRyZXR1cm4gdGhpcy5odHRwLmdldCh1cmwpLnBpcGUoXHJcblx0XHRcdG1hcCh0aGlzLnJlZHVjZUxhYmVscyksXHJcblx0XHRcdHRhcChfID0+IHRoaXMuY29tbXVuaWNhdG9yZUNvbkVzdGVybm8kLm5leHQodHJ1ZSkpXHJcblx0XHQpO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSByZWR1Y2VMYWJlbHMobGFiZWxzOiBBcnJheTxhbnk+KTogTWFwPHN0cmluZywgc3RyaW5nPiB7XHJcblx0XHRjb25zdCByZWR1Y2VkID0gbGFiZWxzLnJlZHVjZSgoYWNjOiBNYXA8c3RyaW5nLCBzdHJpbmc+LCBsYWJlbCkgPT4ge1xyXG5cdFx0XHRyZXR1cm4gYWNjLnNldChsYWJlbFtcImNvZGljZUxhYmVsXCJdLCBsYWJlbFtcImxhYmVsXCJdKVxyXG5cdFx0fSxcclxuXHRcdFx0bmV3IE1hcDxzdHJpbmcsIHN0cmluZz4oKSk7XHJcblxyXG5cdFx0cmV0dXJuIHJlZHVjZWQ7XHJcblx0fVxyXG5cclxufVxyXG4iXX0=