@cause-911/core
Version:
Run `npm install @cause-911/core --save` to add this library to your project
84 lines • 6.68 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { HttpClient } from '@angular/common/http';
import { forkJoin, of } from 'rxjs';
import { catchError, map } from 'rxjs/operators';
export class CustomMultiTranslateHttpLoader {
/**
* @param {?} httpBackend
* @param {?} options
*/
constructor(httpBackend, options) {
this.resources = [{
prefix: '/assets/i18n/',
suffix: '.json',
}, {
prefix: '/assets/i18n/cause/',
suffix: '-core.json',
}];
this.http = new HttpClient(httpBackend);
if (options && options.libraries) {
options.libraries.forEach((/**
* @param {?} library
* @return {?}
*/
(library) => {
this.resources.push((/** @type {?} */ ({
prefix: '/assets/i18n/cause/',
suffix: `-${library}.json`,
})));
}));
}
}
/**
* @param {?} lang
* @return {?}
*/
getTranslation(lang) {
return forkJoin(this.resources.map((/**
* @param {?} config
* @return {?}
*/
config => this.getOneRessourceTranslation(lang, config)))).pipe(map((/**
* @param {?} response
* @return {?}
*/
response => {
return response.reduce((/**
* @param {?} a
* @param {?} b
* @return {?}
*/
(a, b) => {
return Object.assign(a, b);
}));
})));
}
/**
* @param {?} lang
* @param {?} config
* @return {?}
*/
getOneRessourceTranslation(lang, config) {
return this.http.get(`${config.prefix}${lang}${config.suffix}`).pipe(catchError((/**
* @param {?} error
* @return {?}
*/
error => of({}))));
}
}
if (false) {
/**
* @type {?}
* @private
*/
CustomMultiTranslateHttpLoader.prototype.http;
/**
* @type {?}
* @private
*/
CustomMultiTranslateHttpLoader.prototype.resources;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLW11bHRpLXRyYW5zbGF0ZS1odHRwLWxvYWRlci5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BjYXVzZS05MTEvY29yZS8iLCJzb3VyY2VzIjpbImxpYi9zaGFyZWQvbmd4LXRyYW5zbGF0ZS9jdXN0b20tbXVsdGktdHJhbnNsYXRlLWh0dHAtbG9hZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUE0QixNQUFNLHNCQUFzQixDQUFDO0FBQzVFLE9BQU8sRUFBQyxRQUFRLEVBQUUsRUFBRSxFQUFhLE1BQU0sTUFBTSxDQUFDO0FBQzlDLE9BQU8sRUFBQyxVQUFVLEVBQUUsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFLL0MsTUFBTSxPQUFPLDhCQUE4Qjs7Ozs7SUFVdkMsWUFDSSxXQUF3QixFQUN4QixPQUEwQjtRQVZ0QixjQUFTLEdBQXNCLENBQUM7Z0JBQ3BDLE1BQU0sRUFBRSxlQUFlO2dCQUN2QixNQUFNLEVBQUUsT0FBTzthQUNsQixFQUFFO2dCQUNDLE1BQU0sRUFBRSxxQkFBcUI7Z0JBQzdCLE1BQU0sRUFBRSxZQUFZO2FBQ3ZCLENBQUMsQ0FBQztRQU1DLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxVQUFVLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFeEMsSUFBSSxPQUFPLElBQUksT0FBTyxDQUFDLFNBQVMsRUFBRTtZQUM5QixPQUFPLENBQUMsU0FBUyxDQUFDLE9BQU87Ozs7WUFBQyxDQUFDLE9BQWUsRUFBRSxFQUFFO2dCQUMxQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxtQkFBQTtvQkFDaEIsTUFBTSxFQUFFLHFCQUFxQjtvQkFDN0IsTUFBTSxFQUFFLElBQUksT0FBTyxPQUFPO2lCQUM3QixFQUFtQixDQUFDLENBQUM7WUFDMUIsQ0FBQyxFQUFDLENBQUM7U0FDTjtJQUNMLENBQUM7Ozs7O0lBRU0sY0FBYyxDQUFDLElBQVk7UUFDOUIsT0FBTyxRQUFRLENBQ1gsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHOzs7O1FBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsMEJBQTBCLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxFQUFDLENBQzlFLENBQUMsSUFBSSxDQUNGLEdBQUc7Ozs7UUFBQyxRQUFRLENBQUMsRUFBRTtZQUNYLE9BQU8sUUFBUSxDQUFDLE1BQU07Ozs7O1lBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0JBQzVCLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDL0IsQ0FBQyxFQUFDLENBQUM7UUFDUCxDQUFDLEVBQUMsQ0FDTCxDQUFDO0lBQ04sQ0FBQzs7Ozs7O0lBRU0sMEJBQTBCLENBQUMsSUFBWSxFQUFFLE1BQU07UUFDbEQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEdBQUcsSUFBSSxHQUFHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FDaEUsVUFBVTs7OztRQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFDLENBQzlCLENBQUM7SUFDTixDQUFDO0NBQ0o7Ozs7OztJQTFDRyw4Q0FBeUI7Ozs7O0lBQ3pCLG1EQU1HIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEhhbmRsZXIsIEh0dHBCYWNrZW5kIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHtmb3JrSm9pbiwgb2YsIE9ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtjYXRjaEVycm9yLCBtYXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7Q29yZU1vZHVsZU9wdGlvbnN9IGZyb20gJy4uL21vZGVscy9jb3JlLW1vZHVsZS1vcHRpb25zJztcbmltcG9ydCB7UmVzb3VyY2VPcHRpb25zfSBmcm9tICcuL3Jlc291cmNlLW9wdGlvbnMnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTG9hZGVyIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5cbmV4cG9ydCBjbGFzcyBDdXN0b21NdWx0aVRyYW5zbGF0ZUh0dHBMb2FkZXIgaW1wbGVtZW50cyBUcmFuc2xhdGVMb2FkZXIge1xuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudDtcbiAgICBwcml2YXRlIHJlc291cmNlczogUmVzb3VyY2VPcHRpb25zW10gPSBbe1xuICAgICAgICBwcmVmaXg6ICcvYXNzZXRzL2kxOG4vJyxcbiAgICAgICAgc3VmZml4OiAnLmpzb24nLFxuICAgIH0sIHtcbiAgICAgICAgcHJlZml4OiAnL2Fzc2V0cy9pMThuL2NhdXNlLycsXG4gICAgICAgIHN1ZmZpeDogJy1jb3JlLmpzb24nLFxuICAgIH1dO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIGh0dHBCYWNrZW5kOiBIdHRwQmFja2VuZCxcbiAgICAgICAgb3B0aW9uczogQ29yZU1vZHVsZU9wdGlvbnNcbiAgICApIHtcbiAgICAgICAgdGhpcy5odHRwID0gbmV3IEh0dHBDbGllbnQoaHR0cEJhY2tlbmQpO1xuXG4gICAgICAgIGlmIChvcHRpb25zICYmIG9wdGlvbnMubGlicmFyaWVzKSB7XG4gICAgICAgICAgICBvcHRpb25zLmxpYnJhcmllcy5mb3JFYWNoKChsaWJyYXJ5OiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlc291cmNlcy5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgcHJlZml4OiAnL2Fzc2V0cy9pMThuL2NhdXNlLycsXG4gICAgICAgICAgICAgICAgICAgIHN1ZmZpeDogYC0ke2xpYnJhcnl9Lmpzb25gLFxuICAgICAgICAgICAgICAgIH0gYXMgUmVzb3VyY2VPcHRpb25zKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGdldFRyYW5zbGF0aW9uKGxhbmc6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgICAgIHJldHVybiBmb3JrSm9pbihcbiAgICAgICAgICAgIHRoaXMucmVzb3VyY2VzLm1hcChjb25maWcgPT4gdGhpcy5nZXRPbmVSZXNzb3VyY2VUcmFuc2xhdGlvbihsYW5nLCBjb25maWcpKVxuICAgICAgICApLnBpcGUoXG4gICAgICAgICAgICBtYXAocmVzcG9uc2UgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZS5yZWR1Y2UoKGEsIGIpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oYSwgYik7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRPbmVSZXNzb3VyY2VUcmFuc2xhdGlvbihsYW5nOiBzdHJpbmcsIGNvbmZpZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke2NvbmZpZy5wcmVmaXh9JHtsYW5nfSR7Y29uZmlnLnN1ZmZpeH1gKS5waXBlKFxuICAgICAgICAgICAgY2F0Y2hFcnJvcihlcnJvciA9PiBvZih7fSkpXG4gICAgICAgICk7XG4gICAgfVxufVxuIl19