ngx-translate-multi-http-loader 18.1.0 → 18.2.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.
@@ -1,8 +1,9 @@
|
|
1
1
|
import { HttpClient } from '@angular/common/http';
|
2
|
-
import { deepmerge } from 'deepmerge-ts';
|
3
2
|
import { forkJoin, of } from 'rxjs';
|
4
3
|
import { catchError, map } from 'rxjs/operators';
|
5
4
|
export class MultiTranslateHttpLoader {
|
5
|
+
_handler;
|
6
|
+
_resourcesPrefix;
|
6
7
|
constructor(_handler, _resourcesPrefix) {
|
7
8
|
this._handler = _handler;
|
8
9
|
this._resourcesPrefix = _resourcesPrefix;
|
@@ -10,12 +11,12 @@ export class MultiTranslateHttpLoader {
|
|
10
11
|
getTranslation(lang) {
|
11
12
|
const requests = this._resourcesPrefix.map((resource) => {
|
12
13
|
let path;
|
13
|
-
if (resource
|
14
|
-
path = `${resource.prefix}${lang}${resource.suffix || '.json'}`;
|
15
|
-
else
|
14
|
+
if (typeof resource === 'string')
|
16
15
|
path = `${resource}${lang}.json`;
|
16
|
+
else
|
17
|
+
path = `${resource.prefix}${lang}${resource.suffix || '.json'}`;
|
17
18
|
return new HttpClient(this._handler).get(path).pipe(catchError((res) => {
|
18
|
-
if (!resource.optional) {
|
19
|
+
if (typeof resource !== 'string' && !resource.optional) {
|
19
20
|
console.group();
|
20
21
|
console.error('Something went wrong for the following translation file:', path);
|
21
22
|
console.error(res);
|
@@ -24,7 +25,33 @@ export class MultiTranslateHttpLoader {
|
|
24
25
|
return of({});
|
25
26
|
}));
|
26
27
|
});
|
27
|
-
return forkJoin(requests).pipe(map((response) =>
|
28
|
+
return forkJoin(requests).pipe(map((response) => response.reduce((acc, curr) => this.mergeDeep(acc, curr), {})));
|
29
|
+
}
|
30
|
+
// @ToDo: Use it from ngx-translate once it gets exported: https://github.com/rbalet/ngx-translate-multi-http-loader/issues/35
|
31
|
+
isObject(item) {
|
32
|
+
return item && typeof item === 'object' && !Array.isArray(item);
|
33
|
+
}
|
34
|
+
mergeDeep(target, source) {
|
35
|
+
const output = Object.assign({}, target);
|
36
|
+
if (!this.isObject(target)) {
|
37
|
+
return this.mergeDeep({}, source);
|
38
|
+
}
|
39
|
+
if (this.isObject(target) && this.isObject(source)) {
|
40
|
+
Object.keys(source).forEach((key) => {
|
41
|
+
if (this.isObject(source[key])) {
|
42
|
+
if (!(key in target)) {
|
43
|
+
Object.assign(output, { [key]: source[key] });
|
44
|
+
}
|
45
|
+
else {
|
46
|
+
output[key] = this.mergeDeep(target[key], source[key]);
|
47
|
+
}
|
48
|
+
}
|
49
|
+
else {
|
50
|
+
Object.assign(output, { [key]: source[key] });
|
51
|
+
}
|
52
|
+
});
|
53
|
+
}
|
54
|
+
return output;
|
28
55
|
}
|
29
56
|
}
|
30
|
-
//# sourceMappingURL=data:application/json;base64,
|
57
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGktaHR0cC1sb2FkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9tdWx0aS1odHRwLWxvYWRlci9zcmMvbGliL211bHRpLWh0dHAtbG9hZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQTtBQUU5RCxPQUFPLEVBQUUsUUFBUSxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQTtBQUMvQyxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBUWhELE1BQU0sT0FBTyx3QkFBd0I7SUFFekI7SUFDQTtJQUZWLFlBQ1UsUUFBcUIsRUFDckIsZ0JBQW1EO1FBRG5ELGFBQVEsR0FBUixRQUFRLENBQWE7UUFDckIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFtQztJQUMxRCxDQUFDO0lBRUcsY0FBYyxDQUFDLElBQVk7UUFDaEMsTUFBTSxRQUFRLEdBQThCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTtZQUNqRixJQUFJLElBQVksQ0FBQTtZQUVoQixJQUFJLE9BQU8sUUFBUSxLQUFLLFFBQVE7Z0JBQUUsSUFBSSxHQUFHLEdBQUcsUUFBUSxHQUFHLElBQUksT0FBTyxDQUFBOztnQkFDN0QsSUFBSSxHQUFHLEdBQUcsUUFBUSxDQUFDLE1BQU0sR0FBRyxJQUFJLEdBQUcsUUFBUSxDQUFDLE1BQU0sSUFBSSxPQUFPLEVBQUUsQ0FBQTtZQUVwRSxPQUFPLElBQUksVUFBVSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUNqRCxVQUFVLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtnQkFDakIsSUFBSSxPQUFPLFFBQVEsS0FBSyxRQUFRLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7b0JBQ3ZELE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQTtvQkFDZixPQUFPLENBQUMsS0FBSyxDQUFDLDBEQUEwRCxFQUFFLElBQUksQ0FBQyxDQUFBO29CQUMvRSxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFBO29CQUNsQixPQUFPLENBQUMsUUFBUSxFQUFFLENBQUE7Z0JBQ3BCLENBQUM7Z0JBQ0QsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUE7WUFDZixDQUFDLENBQUMsQ0FDSCxDQUFBO1FBQ0gsQ0FBQyxDQUFDLENBQUE7UUFFRixPQUFPLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQzVCLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQ2pGLENBQUE7SUFDSCxDQUFDO0lBRUQsOEhBQThIO0lBQzlILFFBQVEsQ0FBQyxJQUFTO1FBQ2hCLE9BQU8sSUFBSSxJQUFJLE9BQU8sSUFBSSxLQUFLLFFBQVEsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDakUsQ0FBQztJQUVELFNBQVMsQ0FBQyxNQUFXLEVBQUUsTUFBVztRQUNoQyxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQTtRQUV4QyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQzNCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUE7UUFDbkMsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDbkQsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFRLEVBQUUsRUFBRTtnQkFDdkMsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUM7b0JBQy9CLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxNQUFNLENBQUMsRUFBRSxDQUFDO3dCQUNyQixNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQTtvQkFDL0MsQ0FBQzt5QkFBTSxDQUFDO3dCQUNOLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQTtvQkFDeEQsQ0FBQztnQkFDSCxDQUFDO3FCQUFNLENBQUM7b0JBQ04sTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUE7Z0JBQy9DLENBQUM7WUFDSCxDQUFDLENBQUMsQ0FBQTtRQUNKLENBQUM7UUFDRCxPQUFPLE1BQU0sQ0FBQTtJQUNmLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBCYWNrZW5kLCBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnXG5pbXBvcnQgeyBUcmFuc2xhdGVMb2FkZXIgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJ1xuaW1wb3J0IHsgZm9ya0pvaW4sIE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcydcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xuXG5leHBvcnQgaW50ZXJmYWNlIElUcmFuc2xhdGlvblJlc291cmNlIHtcbiAgcHJlZml4OiBzdHJpbmdcbiAgc3VmZml4Pzogc3RyaW5nXG4gIG9wdGlvbmFsPzogYm9vbGVhblxufVxuXG5leHBvcnQgY2xhc3MgTXVsdGlUcmFuc2xhdGVIdHRwTG9hZGVyIGltcGxlbWVudHMgVHJhbnNsYXRlTG9hZGVyIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfaGFuZGxlcjogSHR0cEJhY2tlbmQsXG4gICAgcHJpdmF0ZSBfcmVzb3VyY2VzUHJlZml4OiBzdHJpbmdbXSB8IElUcmFuc2xhdGlvblJlc291cmNlW10sXG4gICkge31cblxuICBwdWJsaWMgZ2V0VHJhbnNsYXRpb24obGFuZzogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBjb25zdCByZXF1ZXN0czogT2JzZXJ2YWJsZTxPYmplY3QgfCB7fT5bXSA9IHRoaXMuX3Jlc291cmNlc1ByZWZpeC5tYXAoKHJlc291cmNlKSA9PiB7XG4gICAgICBsZXQgcGF0aDogc3RyaW5nXG5cbiAgICAgIGlmICh0eXBlb2YgcmVzb3VyY2UgPT09ICdzdHJpbmcnKSBwYXRoID0gYCR7cmVzb3VyY2V9JHtsYW5nfS5qc29uYFxuICAgICAgZWxzZSBwYXRoID0gYCR7cmVzb3VyY2UucHJlZml4fSR7bGFuZ30ke3Jlc291cmNlLnN1ZmZpeCB8fCAnLmpzb24nfWBcblxuICAgICAgcmV0dXJuIG5ldyBIdHRwQ2xpZW50KHRoaXMuX2hhbmRsZXIpLmdldChwYXRoKS5waXBlKFxuICAgICAgICBjYXRjaEVycm9yKChyZXMpID0+IHtcbiAgICAgICAgICBpZiAodHlwZW9mIHJlc291cmNlICE9PSAnc3RyaW5nJyAmJiAhcmVzb3VyY2Uub3B0aW9uYWwpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZ3JvdXAoKVxuICAgICAgICAgICAgY29uc29sZS5lcnJvcignU29tZXRoaW5nIHdlbnQgd3JvbmcgZm9yIHRoZSBmb2xsb3dpbmcgdHJhbnNsYXRpb24gZmlsZTonLCBwYXRoKVxuICAgICAgICAgICAgY29uc29sZS5lcnJvcihyZXMpXG4gICAgICAgICAgICBjb25zb2xlLmdyb3VwRW5kKClcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIG9mKHt9KVxuICAgICAgICB9KSxcbiAgICAgIClcbiAgICB9KVxuXG4gICAgcmV0dXJuIGZvcmtKb2luKHJlcXVlc3RzKS5waXBlKFxuICAgICAgbWFwKChyZXNwb25zZSkgPT4gcmVzcG9uc2UucmVkdWNlKChhY2MsIGN1cnIpID0+IHRoaXMubWVyZ2VEZWVwKGFjYywgY3VyciksIHt9KSksXG4gICAgKVxuICB9XG5cbiAgLy8gQFRvRG86IFVzZSBpdCBmcm9tIG5neC10cmFuc2xhdGUgb25jZSBpdCBnZXRzIGV4cG9ydGVkOiBodHRwczovL2dpdGh1Yi5jb20vcmJhbGV0L25neC10cmFuc2xhdGUtbXVsdGktaHR0cC1sb2FkZXIvaXNzdWVzLzM1XG4gIGlzT2JqZWN0KGl0ZW06IGFueSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBpdGVtICYmIHR5cGVvZiBpdGVtID09PSAnb2JqZWN0JyAmJiAhQXJyYXkuaXNBcnJheShpdGVtKVxuICB9XG5cbiAgbWVyZ2VEZWVwKHRhcmdldDogYW55LCBzb3VyY2U6IGFueSk6IGFueSB7XG4gICAgY29uc3Qgb3V0cHV0ID0gT2JqZWN0LmFzc2lnbih7fSwgdGFyZ2V0KVxuXG4gICAgaWYgKCF0aGlzLmlzT2JqZWN0KHRhcmdldCkpIHtcbiAgICAgIHJldHVybiB0aGlzLm1lcmdlRGVlcCh7fSwgc291cmNlKVxuICAgIH1cblxuICAgIGlmICh0aGlzLmlzT2JqZWN0KHRhcmdldCkgJiYgdGhpcy5pc09iamVjdChzb3VyY2UpKSB7XG4gICAgICBPYmplY3Qua2V5cyhzb3VyY2UpLmZvckVhY2goKGtleTogYW55KSA9PiB7XG4gICAgICAgIGlmICh0aGlzLmlzT2JqZWN0KHNvdXJjZVtrZXldKSkge1xuICAgICAgICAgIGlmICghKGtleSBpbiB0YXJnZXQpKSB7XG4gICAgICAgICAgICBPYmplY3QuYXNzaWduKG91dHB1dCwgeyBba2V5XTogc291cmNlW2tleV0gfSlcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgb3V0cHV0W2tleV0gPSB0aGlzLm1lcmdlRGVlcCh0YXJnZXRba2V5XSwgc291cmNlW2tleV0pXG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIE9iamVjdC5hc3NpZ24ob3V0cHV0LCB7IFtrZXldOiBzb3VyY2Vba2V5XSB9KVxuICAgICAgICB9XG4gICAgICB9KVxuICAgIH1cbiAgICByZXR1cm4gb3V0cHV0XG4gIH1cbn1cbiJdfQ==
|
@@ -1,9 +1,10 @@
|
|
1
1
|
import { HttpClient } from '@angular/common/http';
|
2
|
-
import { deepmerge } from 'deepmerge-ts';
|
3
2
|
import { of, forkJoin } from 'rxjs';
|
4
3
|
import { catchError, map } from 'rxjs/operators';
|
5
4
|
|
6
5
|
class MultiTranslateHttpLoader {
|
6
|
+
_handler;
|
7
|
+
_resourcesPrefix;
|
7
8
|
constructor(_handler, _resourcesPrefix) {
|
8
9
|
this._handler = _handler;
|
9
10
|
this._resourcesPrefix = _resourcesPrefix;
|
@@ -11,12 +12,12 @@ class MultiTranslateHttpLoader {
|
|
11
12
|
getTranslation(lang) {
|
12
13
|
const requests = this._resourcesPrefix.map((resource) => {
|
13
14
|
let path;
|
14
|
-
if (resource
|
15
|
-
path = `${resource.prefix}${lang}${resource.suffix || '.json'}`;
|
16
|
-
else
|
15
|
+
if (typeof resource === 'string')
|
17
16
|
path = `${resource}${lang}.json`;
|
17
|
+
else
|
18
|
+
path = `${resource.prefix}${lang}${resource.suffix || '.json'}`;
|
18
19
|
return new HttpClient(this._handler).get(path).pipe(catchError((res) => {
|
19
|
-
if (!resource.optional) {
|
20
|
+
if (typeof resource !== 'string' && !resource.optional) {
|
20
21
|
console.group();
|
21
22
|
console.error('Something went wrong for the following translation file:', path);
|
22
23
|
console.error(res);
|
@@ -25,7 +26,33 @@ class MultiTranslateHttpLoader {
|
|
25
26
|
return of({});
|
26
27
|
}));
|
27
28
|
});
|
28
|
-
return forkJoin(requests).pipe(map((response) =>
|
29
|
+
return forkJoin(requests).pipe(map((response) => response.reduce((acc, curr) => this.mergeDeep(acc, curr), {})));
|
30
|
+
}
|
31
|
+
// @ToDo: Use it from ngx-translate once it gets exported: https://github.com/rbalet/ngx-translate-multi-http-loader/issues/35
|
32
|
+
isObject(item) {
|
33
|
+
return item && typeof item === 'object' && !Array.isArray(item);
|
34
|
+
}
|
35
|
+
mergeDeep(target, source) {
|
36
|
+
const output = Object.assign({}, target);
|
37
|
+
if (!this.isObject(target)) {
|
38
|
+
return this.mergeDeep({}, source);
|
39
|
+
}
|
40
|
+
if (this.isObject(target) && this.isObject(source)) {
|
41
|
+
Object.keys(source).forEach((key) => {
|
42
|
+
if (this.isObject(source[key])) {
|
43
|
+
if (!(key in target)) {
|
44
|
+
Object.assign(output, { [key]: source[key] });
|
45
|
+
}
|
46
|
+
else {
|
47
|
+
output[key] = this.mergeDeep(target[key], source[key]);
|
48
|
+
}
|
49
|
+
}
|
50
|
+
else {
|
51
|
+
Object.assign(output, { [key]: source[key] });
|
52
|
+
}
|
53
|
+
});
|
54
|
+
}
|
55
|
+
return output;
|
29
56
|
}
|
30
57
|
}
|
31
58
|
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"ngx-translate-multi-http-loader.mjs","sources":["../../../projects/multi-http-loader/src/lib/multi-http-loader.ts","../../../projects/multi-http-loader/src/ngx-translate-multi-http-loader.ts"],"sourcesContent":["import { HttpBackend, HttpClient } from '@angular/common/http'\nimport { TranslateLoader } from '@ngx-translate/core'\nimport {
|
1
|
+
{"version":3,"file":"ngx-translate-multi-http-loader.mjs","sources":["../../../projects/multi-http-loader/src/lib/multi-http-loader.ts","../../../projects/multi-http-loader/src/ngx-translate-multi-http-loader.ts"],"sourcesContent":["import { HttpBackend, HttpClient } from '@angular/common/http'\nimport { TranslateLoader } from '@ngx-translate/core'\nimport { forkJoin, Observable, of } from 'rxjs'\nimport { catchError, map } from 'rxjs/operators'\n\nexport interface ITranslationResource {\n prefix: string\n suffix?: string\n optional?: boolean\n}\n\nexport class MultiTranslateHttpLoader implements TranslateLoader {\n constructor(\n private _handler: HttpBackend,\n private _resourcesPrefix: string[] | ITranslationResource[],\n ) {}\n\n public getTranslation(lang: string): Observable<any> {\n const requests: Observable<Object | {}>[] = this._resourcesPrefix.map((resource) => {\n let path: string\n\n if (typeof resource === 'string') path = `${resource}${lang}.json`\n else path = `${resource.prefix}${lang}${resource.suffix || '.json'}`\n\n return new HttpClient(this._handler).get(path).pipe(\n catchError((res) => {\n if (typeof resource !== 'string' && !resource.optional) {\n console.group()\n console.error('Something went wrong for the following translation file:', path)\n console.error(res)\n console.groupEnd()\n }\n return of({})\n }),\n )\n })\n\n return forkJoin(requests).pipe(\n map((response) => response.reduce((acc, curr) => this.mergeDeep(acc, curr), {})),\n )\n }\n\n // @ToDo: Use it from ngx-translate once it gets exported: https://github.com/rbalet/ngx-translate-multi-http-loader/issues/35\n isObject(item: any): boolean {\n return item && typeof item === 'object' && !Array.isArray(item)\n }\n\n mergeDeep(target: any, source: any): any {\n const output = Object.assign({}, target)\n\n if (!this.isObject(target)) {\n return this.mergeDeep({}, source)\n }\n\n if (this.isObject(target) && this.isObject(source)) {\n Object.keys(source).forEach((key: any) => {\n if (this.isObject(source[key])) {\n if (!(key in target)) {\n Object.assign(output, { [key]: source[key] })\n } else {\n output[key] = this.mergeDeep(target[key], source[key])\n }\n } else {\n Object.assign(output, { [key]: source[key] })\n }\n })\n }\n return output\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;MAWa,wBAAwB,CAAA;AAEzB,IAAA,QAAA,CAAA;AACA,IAAA,gBAAA,CAAA;IAFV,WACU,CAAA,QAAqB,EACrB,gBAAmD,EAAA;QADnD,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAa;QACrB,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAmC;KACzD;AAEG,IAAA,cAAc,CAAC,IAAY,EAAA;QAChC,MAAM,QAAQ,GAA8B,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,QAAQ,KAAI;AACjF,YAAA,IAAI,IAAY,CAAA;YAEhB,IAAI,OAAO,QAAQ,KAAK,QAAQ;AAAE,gBAAA,IAAI,GAAG,CAAG,EAAA,QAAQ,CAAG,EAAA,IAAI,OAAO,CAAA;;AAC7D,gBAAA,IAAI,GAAG,CAAA,EAAG,QAAQ,CAAC,MAAM,CAAG,EAAA,IAAI,CAAG,EAAA,QAAQ,CAAC,MAAM,IAAI,OAAO,EAAE,CAAA;YAEpE,OAAO,IAAI,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CACjD,UAAU,CAAC,CAAC,GAAG,KAAI;gBACjB,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE;oBACtD,OAAO,CAAC,KAAK,EAAE,CAAA;AACf,oBAAA,OAAO,CAAC,KAAK,CAAC,0DAA0D,EAAE,IAAI,CAAC,CAAA;AAC/E,oBAAA,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;oBAClB,OAAO,CAAC,QAAQ,EAAE,CAAA;iBACnB;AACD,gBAAA,OAAO,EAAE,CAAC,EAAE,CAAC,CAAA;aACd,CAAC,CACH,CAAA;AACH,SAAC,CAAC,CAAA;AAEF,QAAA,OAAO,QAAQ,CAAC,QAAQ,CAAC,CAAC,IAAI,CAC5B,GAAG,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,KAAK,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CACjF,CAAA;KACF;;AAGD,IAAA,QAAQ,CAAC,IAAS,EAAA;AAChB,QAAA,OAAO,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;KAChE;IAED,SAAS,CAAC,MAAW,EAAE,MAAW,EAAA;QAChC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,CAAA;QAExC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;YAC1B,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,MAAM,CAAC,CAAA;SAClC;AAED,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;YAClD,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,GAAQ,KAAI;gBACvC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE;AAC9B,oBAAA,IAAI,EAAE,GAAG,IAAI,MAAM,CAAC,EAAE;AACpB,wBAAA,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;qBAC9C;yBAAM;AACL,wBAAA,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;qBACvD;iBACF;qBAAM;AACL,oBAAA,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;iBAC9C;AACH,aAAC,CAAC,CAAA;SACH;AACD,QAAA,OAAO,MAAM,CAAA;KACd;AACF;;ACrED;;AAEG;;;;"}
|
@@ -11,4 +11,6 @@ export declare class MultiTranslateHttpLoader implements TranslateLoader {
|
|
11
11
|
private _resourcesPrefix;
|
12
12
|
constructor(_handler: HttpBackend, _resourcesPrefix: string[] | ITranslationResource[]);
|
13
13
|
getTranslation(lang: string): Observable<any>;
|
14
|
+
isObject(item: any): boolean;
|
15
|
+
mergeDeep(target: any, source: any): any;
|
14
16
|
}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "ngx-translate-multi-http-loader",
|
3
|
-
"version": "18.
|
3
|
+
"version": "18.2.0",
|
4
4
|
"license": "MIT",
|
5
5
|
"author": {
|
6
6
|
"name": "Raphaël Balet",
|
@@ -29,7 +29,6 @@
|
|
29
29
|
"@angular/common": ">=13.0.0",
|
30
30
|
"@angular/core": ">=13.0.0",
|
31
31
|
"@ngx-translate/core": ">=15.0.0",
|
32
|
-
"deepmerge-ts": "^7.1.0",
|
33
32
|
"rxjs": "^7.8.1"
|
34
33
|
},
|
35
34
|
"module": "fesm2022/ngx-translate-multi-http-loader.mjs",
|