@ogs-gmbh/ngx-translate 1.0.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.
Files changed (63) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +50 -0
  3. package/enums/collecting-strategies.enum.d.ts +4 -0
  4. package/enums/preloading-strategies.enum.d.ts +4 -0
  5. package/errors/locale-not-defined.error.d.ts +5 -0
  6. package/errors/scope-not-defined.error.d.ts +4 -0
  7. package/errors/source-locale-not-defined.error.d.ts +4 -0
  8. package/errors/translation-not-defined.error.d.ts +4 -0
  9. package/esm2022/enums/collecting-strategies.enum.mjs +6 -0
  10. package/esm2022/enums/preloading-strategies.enum.mjs +6 -0
  11. package/esm2022/errors/locale-not-defined.error.mjs +8 -0
  12. package/esm2022/errors/scope-not-defined.error.mjs +10 -0
  13. package/esm2022/errors/source-locale-not-defined.error.mjs +8 -0
  14. package/esm2022/errors/translation-not-defined.error.mjs +8 -0
  15. package/esm2022/interceptors/translation.interceptor.mjs +24 -0
  16. package/esm2022/lib.module.mjs +51 -0
  17. package/esm2022/ogs-gmbh-ngx-translate.mjs +2 -0
  18. package/esm2022/pipe.module.mjs +24 -0
  19. package/esm2022/pipes/translation.pipe.mjs +49 -0
  20. package/esm2022/providers/config.provider.mjs +7 -0
  21. package/esm2022/providers/http.provider.mjs +13 -0
  22. package/esm2022/providers/interceptor.provider.mjs +8 -0
  23. package/esm2022/providers/preload.provider.mjs +58 -0
  24. package/esm2022/providers/scope.provider.mjs +7 -0
  25. package/esm2022/public-api.mjs +18 -0
  26. package/esm2022/services/translation-http.serivce.mjs +47 -0
  27. package/esm2022/services/translation-store.service.mjs +207 -0
  28. package/esm2022/services/translation.service.mjs +236 -0
  29. package/esm2022/tokens/config.token.mjs +3 -0
  30. package/esm2022/tokens/http.token.mjs +4 -0
  31. package/esm2022/tokens/preload.token.mjs +3 -0
  32. package/esm2022/tokens/scope.token.mjs +3 -0
  33. package/esm2022/types/config.type.mjs +2 -0
  34. package/esm2022/types/provider.type.mjs +2 -0
  35. package/esm2022/types/store.type.mjs +2 -0
  36. package/esm2022/utils/file.util.mjs +65 -0
  37. package/esm2022/utils/translate.util.mjs +26 -0
  38. package/fesm2022/ogs-gmbh-ngx-translate.mjs +821 -0
  39. package/fesm2022/ogs-gmbh-ngx-translate.mjs.map +1 -0
  40. package/index.d.ts +2 -0
  41. package/interceptors/translation.interceptor.d.ts +9 -0
  42. package/lib.module.d.ts +11 -0
  43. package/package.json +36 -0
  44. package/pipe.module.d.ts +8 -0
  45. package/pipes/translation.pipe.d.ts +17 -0
  46. package/providers/config.provider.d.ts +3 -0
  47. package/providers/http.provider.d.ts +4 -0
  48. package/providers/interceptor.provider.d.ts +2 -0
  49. package/providers/preload.provider.d.ts +4 -0
  50. package/providers/scope.provider.d.ts +2 -0
  51. package/public-api.d.ts +17 -0
  52. package/services/translation-http.serivce.d.ts +12 -0
  53. package/services/translation-store.service.d.ts +42 -0
  54. package/services/translation.service.d.ts +30 -0
  55. package/tokens/config.token.d.ts +3 -0
  56. package/tokens/http.token.d.ts +4 -0
  57. package/tokens/preload.token.d.ts +2 -0
  58. package/tokens/scope.token.d.ts +2 -0
  59. package/types/config.type.d.ts +32 -0
  60. package/types/provider.type.d.ts +10 -0
  61. package/types/store.type.d.ts +23 -0
  62. package/utils/file.util.d.ts +6 -0
  63. package/utils/translate.util.d.ts +6 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 OGS Gesellschaft für Datenverarbeitung und Systemberatung mbH
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,50 @@
1
+ # i18n Translation Library
2
+
3
+ ![GitHub License](https://img.shields.io/github/license/OGS-GmbH/ngx-translate)
4
+ ![NPM Version](https://img.shields.io/npm/v/%40ogs-gmbh%2Fngx-translate)
5
+ ![GitHub Actions Workflow Status](https://img.shields.io/github/actions/workflow/status/OGS-GmbH/ngx-translate/main-deploy.yml)
6
+
7
+ This Angular i18n library offers a REST-based approach to internationalization, with support for chunked and token-based translation loading.
8
+
9
+ Translations are retrieved dynamically from remote endpoints, allowing for modular and scalable language management, especially in large applications or multi-tenant environments.
10
+
11
+ Each translation chunk is associated with a specific feature or module, and access can be controlled via authentication tokens. The library enables runtime language switching and supports nested keys (multi-chunks).
12
+
13
+ Its clean API and minimal setup make it easy to integrate into both new and existing projects.
14
+
15
+ ## Installation
16
+ To get started, you can install this package using your preferred package manager.
17
+ ````shell
18
+ npm install @ogs-gmbh/ngx-translate
19
+ ````
20
+
21
+ <details>
22
+ <summary>Other package manager</summary>
23
+ <br />
24
+
25
+ ````shell
26
+ yarn add @ogs-gmbh/ngx-translate
27
+ ````
28
+
29
+ ````shell
30
+ pnpm install @ogs-gmbh/ngx-translate
31
+ ````
32
+
33
+ </details>
34
+
35
+ ## License
36
+ The MIT License (MIT) - Please have a look at the [LICENSE file](https://github.com/OGS-GmbH/ngx-translate/blob/main/LICENSE) for more details.
37
+
38
+ ## Contributing
39
+ Contributions are always welcome and greatly appreciated. Whether you want to report a bug, suggest a new feature, or improve the documentation, your input helps make the project better for everyone.
40
+
41
+ If you're unsure where to start, check the open issues for guidance. Even small contributions, such as fixing typos or improving code readability, are valuable.
42
+
43
+ Feel free to submit a pull request or start a discussion — we're happy to collaborate!
44
+
45
+ ---
46
+
47
+ <a href="https://www.ogs.de/en/"><img src="https://www.ogs.de/fileadmin/templates/main/img/logo.png" height="32" /></a>
48
+ <p>Gesellschaft für Datenverarbeitung und Systemberatung mbH</p>
49
+
50
+ [Imprint](https://www.ogs.de/en/imprint/) | [Contact](https://www.ogs.de/en/contact/) | [Careers](https://www.ogs.de/en/about-ogs/#Careers)
@@ -0,0 +1,4 @@
1
+ export declare enum CollectingStrategies {
2
+ ALL = "all",
3
+ CURRENT = "current"
4
+ }
@@ -0,0 +1,4 @@
1
+ export declare enum PreloadingStrategies {
2
+ INITIALIZATION = "initialization",
3
+ RUNTIME = "runtime"
4
+ }
@@ -0,0 +1,5 @@
1
+ import { LocaleConfig } from "../public-api";
2
+ export declare class LocaleNotDefinedError extends Error {
3
+ readonly name: string;
4
+ constructor(locale: LocaleConfig);
5
+ }
@@ -0,0 +1,4 @@
1
+ export declare class ScopeNotDefinedError extends Error {
2
+ readonly name: string;
3
+ constructor(isDefaultScope: boolean, scopeName?: string);
4
+ }
@@ -0,0 +1,4 @@
1
+ export declare class SourceLocaleNotDefinedError extends Error {
2
+ readonly name: string;
3
+ constructor();
4
+ }
@@ -0,0 +1,4 @@
1
+ export declare class TranslationNotDefinedError extends Error {
2
+ name: string;
3
+ constructor(token: string, value?: string);
4
+ }
@@ -0,0 +1,6 @@
1
+ export var CollectingStrategies;
2
+ (function (CollectingStrategies) {
3
+ CollectingStrategies["ALL"] = "all";
4
+ CollectingStrategies["CURRENT"] = "current";
5
+ })(CollectingStrategies || (CollectingStrategies = {}));
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGVjdGluZy1zdHJhdGVnaWVzLmVudW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZW51bXMvY29sbGVjdGluZy1zdHJhdGVnaWVzLmVudW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFOLElBQVksb0JBR1g7QUFIRCxXQUFZLG9CQUFvQjtJQUM5QixtQ0FBVyxDQUFBO0lBQ1gsMkNBQW1CLENBQUE7QUFDckIsQ0FBQyxFQUhXLG9CQUFvQixLQUFwQixvQkFBb0IsUUFHL0IiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBDb2xsZWN0aW5nU3RyYXRlZ2llcyB7XG4gIEFMTCA9IFwiYWxsXCIsXG4gIENVUlJFTlQgPSBcImN1cnJlbnRcIlxufVxuIl19
@@ -0,0 +1,6 @@
1
+ export var PreloadingStrategies;
2
+ (function (PreloadingStrategies) {
3
+ PreloadingStrategies["INITIALIZATION"] = "initialization";
4
+ PreloadingStrategies["RUNTIME"] = "runtime";
5
+ })(PreloadingStrategies || (PreloadingStrategies = {}));
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlbG9hZGluZy1zdHJhdGVnaWVzLmVudW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZW51bXMvcHJlbG9hZGluZy1zdHJhdGVnaWVzLmVudW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFOLElBQVksb0JBR1g7QUFIRCxXQUFZLG9CQUFvQjtJQUM5Qix5REFBaUMsQ0FBQTtJQUNqQywyQ0FBbUIsQ0FBQTtBQUNyQixDQUFDLEVBSFcsb0JBQW9CLEtBQXBCLG9CQUFvQixRQUcvQiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIFByZWxvYWRpbmdTdHJhdGVnaWVzIHtcbiAgSU5JVElBTElaQVRJT04gPSBcImluaXRpYWxpemF0aW9uXCIsXG4gIFJVTlRJTUUgPSBcInJ1bnRpbWVcIlxufVxuIl19
@@ -0,0 +1,8 @@
1
+ export class LocaleNotDefinedError extends Error {
2
+ name;
3
+ constructor(locale) {
4
+ super(`Locale "${locale.value}" does not exists. Please check if the locale is provided in the translation config.`);
5
+ this.name = "LocaleNotDefinedError";
6
+ }
7
+ }
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxlLW5vdC1kZWZpbmVkLmVycm9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2Vycm9ycy9sb2NhbGUtbm90LWRlZmluZWQuZXJyb3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxPQUFPLHFCQUFzQixTQUFRLEtBQUs7SUFDckIsSUFBSSxDQUFTO0lBRXRDLFlBQWEsTUFBb0I7UUFDL0IsS0FBSyxDQUFDLFdBQVksTUFBTSxDQUFDLEtBQU0sc0ZBQXNGLENBQUMsQ0FBQztRQUN2SCxJQUFJLENBQUMsSUFBSSxHQUFHLHVCQUF1QixDQUFDO0lBQ3RDLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExvY2FsZUNvbmZpZyB9IGZyb20gXCIuLi9wdWJsaWMtYXBpXCI7XG5cbmV4cG9ydCBjbGFzcyBMb2NhbGVOb3REZWZpbmVkRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIHB1YmxpYyBvdmVycmlkZSByZWFkb25seSBuYW1lOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IgKGxvY2FsZTogTG9jYWxlQ29uZmlnKSB7XG4gICAgc3VwZXIoYExvY2FsZSBcIiR7IGxvY2FsZS52YWx1ZSB9XCIgZG9lcyBub3QgZXhpc3RzLiBQbGVhc2UgY2hlY2sgaWYgdGhlIGxvY2FsZSBpcyBwcm92aWRlZCBpbiB0aGUgdHJhbnNsYXRpb24gY29uZmlnLmApO1xuICAgIHRoaXMubmFtZSA9IFwiTG9jYWxlTm90RGVmaW5lZEVycm9yXCI7XG4gIH1cbn1cblxuIl19
@@ -0,0 +1,10 @@
1
+ export class ScopeNotDefinedError extends Error {
2
+ name;
3
+ constructor(isDefaultScope, scopeName) {
4
+ super(isDefaultScope
5
+ ? `The default scope does not exists. Please check if the given scope is provided.`
6
+ : `Scope "${scopeName}" does not exists. Please check if the given scope is provided.`);
7
+ this.name = "ScopeNotDefinedError";
8
+ }
9
+ }
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NvcGUtbm90LWRlZmluZWQuZXJyb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZXJyb3JzL3Njb3BlLW5vdC1kZWZpbmVkLmVycm9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxLQUFLO0lBQ3BCLElBQUksQ0FBUztJQUV0QyxZQUFhLGNBQXVCLEVBQUUsU0FBa0I7UUFDdEQsS0FBSyxDQUNILGNBQWM7WUFDWixDQUFDLENBQUMsaUZBQWlGO1lBQ25GLENBQUMsQ0FBQyxVQUFXLFNBQVUsaUVBQWlFLENBQzNGLENBQUM7UUFDRixJQUFJLENBQUMsSUFBSSxHQUFHLHNCQUFzQixDQUFDO0lBQ3JDLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBTY29wZU5vdERlZmluZWRFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgcHVibGljIG92ZXJyaWRlIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvciAoaXNEZWZhdWx0U2NvcGU6IGJvb2xlYW4sIHNjb3BlTmFtZT86IHN0cmluZykge1xuICAgIHN1cGVyKFxuICAgICAgaXNEZWZhdWx0U2NvcGVcbiAgICAgICAgPyBgVGhlIGRlZmF1bHQgc2NvcGUgZG9lcyBub3QgZXhpc3RzLiBQbGVhc2UgY2hlY2sgaWYgdGhlIGdpdmVuIHNjb3BlIGlzIHByb3ZpZGVkLmBcbiAgICAgICAgOiBgU2NvcGUgXCIkeyBzY29wZU5hbWUgfVwiIGRvZXMgbm90IGV4aXN0cy4gUGxlYXNlIGNoZWNrIGlmIHRoZSBnaXZlbiBzY29wZSBpcyBwcm92aWRlZC5gXG4gICAgKTtcbiAgICB0aGlzLm5hbWUgPSBcIlNjb3BlTm90RGVmaW5lZEVycm9yXCI7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,8 @@
1
+ export class SourceLocaleNotDefinedError extends Error {
2
+ name;
3
+ constructor() {
4
+ super(`A source locale does not exists. Please check if a source locale is provided in the translation config.`);
5
+ this.name = "SourceLocaleNotDefinedError";
6
+ }
7
+ }
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlLWxvY2FsZS1ub3QtZGVmaW5lZC5lcnJvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9lcnJvcnMvc291cmNlLWxvY2FsZS1ub3QtZGVmaW5lZC5lcnJvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sMkJBQTRCLFNBQVEsS0FBSztJQUMzQixJQUFJLENBQVM7SUFFdEM7UUFDRSxLQUFLLENBQUMseUdBQXlHLENBQUMsQ0FBQztRQUNqSCxJQUFJLENBQUMsSUFBSSxHQUFHLDZCQUE2QixDQUFDO0lBQzVDLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBTb3VyY2VMb2NhbGVOb3REZWZpbmVkRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIHB1YmxpYyBvdmVycmlkZSByZWFkb25seSBuYW1lOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IgKCkge1xuICAgIHN1cGVyKGBBIHNvdXJjZSBsb2NhbGUgZG9lcyBub3QgZXhpc3RzLiBQbGVhc2UgY2hlY2sgaWYgYSBzb3VyY2UgbG9jYWxlIGlzIHByb3ZpZGVkIGluIHRoZSB0cmFuc2xhdGlvbiBjb25maWcuYCk7XG4gICAgdGhpcy5uYW1lID0gXCJTb3VyY2VMb2NhbGVOb3REZWZpbmVkRXJyb3JcIjtcbiAgfVxufVxuXG4iXX0=
@@ -0,0 +1,8 @@
1
+ export class TranslationNotDefinedError extends Error {
2
+ name;
3
+ constructor(token, value) {
4
+ super(`Translation for token "${token}" ${value && `and its default value "${value}"`} does not exists. Please check if the translation for the given token is provided in the translations.`);
5
+ this.name = "TranslationNotDefinedError";
6
+ }
7
+ }
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRpb24tbm90LWRlZmluZWQuZXJyb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZXJyb3JzL3RyYW5zbGF0aW9uLW5vdC1kZWZpbmVkLmVycm9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTywwQkFBMkIsU0FBUSxLQUFLO0lBQ25DLElBQUksQ0FBUztJQUU3QixZQUFhLEtBQWEsRUFBRSxLQUFjO1FBQ3hDLEtBQUssQ0FBQywwQkFBMkIsS0FBTSxLQUFNLEtBQUssSUFBSSwwQkFBMkIsS0FBTSxHQUFJLHdHQUF3RyxDQUFDLENBQUM7UUFDck0sSUFBSSxDQUFDLElBQUksR0FBRyw0QkFBNEIsQ0FBQztJQUMzQyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgVHJhbnNsYXRpb25Ob3REZWZpbmVkRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIHB1YmxpYyBvdmVycmlkZSBuYW1lOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IgKHRva2VuOiBzdHJpbmcsIHZhbHVlPzogc3RyaW5nKSB7XG4gICAgc3VwZXIoYFRyYW5zbGF0aW9uIGZvciB0b2tlbiBcIiR7IHRva2VuIH1cIiAkeyB2YWx1ZSAmJiBgYW5kIGl0cyBkZWZhdWx0IHZhbHVlIFwiJHsgdmFsdWUgfVwiYCB9IGRvZXMgbm90IGV4aXN0cy4gUGxlYXNlIGNoZWNrIGlmIHRoZSB0cmFuc2xhdGlvbiBmb3IgdGhlIGdpdmVuIHRva2VuIGlzIHByb3ZpZGVkIGluIHRoZSB0cmFuc2xhdGlvbnMuYCk7XG4gICAgdGhpcy5uYW1lID0gXCJUcmFuc2xhdGlvbk5vdERlZmluZWRFcnJvclwiO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,24 @@
1
+ import { Injectable, inject } from "@angular/core";
2
+ import { TranslationStoreService } from "../services/translation-store.service";
3
+ import * as i0 from "@angular/core";
4
+ export class TranslationInterceptor {
5
+ _translationStoreService = inject(TranslationStoreService);
6
+ intercept(httpRequest, httpHandler) {
7
+ const currentLocale = this._translationStoreService.getCurrentLocale();
8
+ const clonedHttpRequest = httpRequest.clone({
9
+ setHeaders: {
10
+ language: currentLocale.value
11
+ }
12
+ });
13
+ return httpHandler.handle(clonedHttpRequest);
14
+ }
15
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TranslationInterceptor, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
16
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TranslationInterceptor, providedIn: "root" });
17
+ }
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TranslationInterceptor, decorators: [{
19
+ type: Injectable,
20
+ args: [{
21
+ providedIn: "root"
22
+ }]
23
+ }] });
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRpb24uaW50ZXJjZXB0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvaW50ZXJjZXB0b3JzL3RyYW5zbGF0aW9uLmludGVyY2VwdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR25ELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDOztBQUtoRixNQUFNLE9BQU8sc0JBQXNCO0lBQ2hCLHdCQUF3QixHQUE0QixNQUFNLENBQUMsdUJBQXVCLENBQUMsQ0FBQztJQUU5RixTQUFTLENBQUUsV0FBMkMsRUFBRSxXQUFrQztRQUMvRixNQUFNLGFBQWEsR0FBaUIsSUFBSSxDQUFDLHdCQUF3QixDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDckYsTUFBTSxpQkFBaUIsR0FBeUIsV0FBVyxDQUFDLEtBQUssQ0FBQztZQUNoRSxVQUFVLEVBQUU7Z0JBQ1YsUUFBUSxFQUFFLGFBQWEsQ0FBQyxLQUFLO2FBQzlCO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsT0FBTyxXQUFXLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDL0MsQ0FBQzt3R0FaVSxzQkFBc0I7NEdBQXRCLHNCQUFzQixjQUZyQixNQUFNOzs0RkFFUCxzQkFBc0I7a0JBSGxDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cEV2ZW50LCBIdHRwSGFuZGxlciwgSHR0cEludGVyY2VwdG9yLCBIdHRwUmVxdWVzdCB9IGZyb20gXCJAYW5ndWxhci9jb21tb24vaHR0cFwiO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSwgaW5qZWN0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IExvY2FsZUNvbmZpZyB9IGZyb20gXCIuLi90eXBlcy9jb25maWcudHlwZVwiO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgeyBUcmFuc2xhdGlvblN0b3JlU2VydmljZSB9IGZyb20gXCIuLi9zZXJ2aWNlcy90cmFuc2xhdGlvbi1zdG9yZS5zZXJ2aWNlXCI7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogXCJyb290XCJcbn0pXG5leHBvcnQgY2xhc3MgVHJhbnNsYXRpb25JbnRlcmNlcHRvciBpbXBsZW1lbnRzIEh0dHBJbnRlcmNlcHRvciB7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3RyYW5zbGF0aW9uU3RvcmVTZXJ2aWNlOiBUcmFuc2xhdGlvblN0b3JlU2VydmljZSA9IGluamVjdChUcmFuc2xhdGlvblN0b3JlU2VydmljZSk7XG5cbiAgcHVibGljIGludGVyY2VwdCAoaHR0cFJlcXVlc3Q6IFJlYWRvbmx5PEh0dHBSZXF1ZXN0PHVua25vd24+PiwgaHR0cEhhbmRsZXI6IFJlYWRvbmx5PEh0dHBIYW5kbGVyPik6IE9ic2VydmFibGU8SHR0cEV2ZW50PHVua25vd24+PiB7XG4gICAgY29uc3QgY3VycmVudExvY2FsZTogTG9jYWxlQ29uZmlnID0gdGhpcy5fdHJhbnNsYXRpb25TdG9yZVNlcnZpY2UuZ2V0Q3VycmVudExvY2FsZSgpO1xuICAgIGNvbnN0IGNsb25lZEh0dHBSZXF1ZXN0OiBIdHRwUmVxdWVzdDx1bmtub3duPiA9IGh0dHBSZXF1ZXN0LmNsb25lKHtcbiAgICAgIHNldEhlYWRlcnM6IHtcbiAgICAgICAgbGFuZ3VhZ2U6IGN1cnJlbnRMb2NhbGUudmFsdWVcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBodHRwSGFuZGxlci5oYW5kbGUoY2xvbmVkSHR0cFJlcXVlc3QpO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,51 @@
1
+ import { NgModule } from "@angular/core";
2
+ import { CommonModule } from "@angular/common";
3
+ import { TranslationHttpSerivce } from "./services/translation-http.serivce";
4
+ import { TranslationPipeModule } from "./pipe.module";
5
+ import { TranslationService } from "./services/translation.service";
6
+ import { TranslationStoreService } from "./services/translation-store.service";
7
+ import { provideTranslationConfig } from "./providers/config.provider";
8
+ import { provideTranslationHttpConfig, provideTranslationHttpOptions } from "./providers/http.provider";
9
+ import { provideTranslationInterceptor } from "./providers/interceptor.provider";
10
+ import * as i0 from "@angular/core";
11
+ export class TranslationModule {
12
+ static forRoot(translateConfig) {
13
+ return {
14
+ ngModule: TranslationModule,
15
+ providers: [
16
+ provideTranslationConfig(translateConfig.translate),
17
+ provideTranslationHttpConfig(translateConfig.http.config),
18
+ provideTranslationHttpOptions(translateConfig.http.options)
19
+ ]
20
+ };
21
+ }
22
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TranslationModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
23
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: TranslationModule, imports: [CommonModule,
24
+ TranslationPipeModule], exports: [TranslationPipeModule] });
25
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TranslationModule, providers: [
26
+ TranslationHttpSerivce,
27
+ TranslationStoreService,
28
+ TranslationService,
29
+ provideTranslationInterceptor()
30
+ ], imports: [CommonModule,
31
+ TranslationPipeModule, TranslationPipeModule] });
32
+ }
33
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TranslationModule, decorators: [{
34
+ type: NgModule,
35
+ args: [{
36
+ imports: [
37
+ CommonModule,
38
+ TranslationPipeModule
39
+ ],
40
+ providers: [
41
+ TranslationHttpSerivce,
42
+ TranslationStoreService,
43
+ TranslationService,
44
+ provideTranslationInterceptor()
45
+ ],
46
+ exports: [
47
+ TranslationPipeModule
48
+ ]
49
+ }]
50
+ }] });
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBdUIsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUM3RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDL0UsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDdkUsT0FBTyxFQUFFLDRCQUE0QixFQUFFLDZCQUE2QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDeEcsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sa0NBQWtDLENBQUM7O0FBa0JqRixNQUFNLE9BQU8saUJBQWlCO0lBQ3JCLE1BQU0sQ0FBQyxPQUFPLENBQUUsZUFBMEM7UUFDL0QsT0FBTztZQUNMLFFBQVEsRUFBRSxpQkFBaUI7WUFDM0IsU0FBUyxFQUFFO2dCQUNULHdCQUF3QixDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUM7Z0JBQ25ELDRCQUE0QixDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO2dCQUN6RCw2QkFBNkIsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQzthQUM1RDtTQUNGLENBQUM7SUFDSixDQUFDO3dHQVZVLGlCQUFpQjt5R0FBakIsaUJBQWlCLFlBZDFCLFlBQVk7WUFDWixxQkFBcUIsYUFTckIscUJBQXFCO3lHQUlaLGlCQUFpQixhQVhqQjtZQUNULHNCQUFzQjtZQUN0Qix1QkFBdUI7WUFDdkIsa0JBQWtCO1lBQ2xCLDZCQUE2QixFQUFFO1NBQ2hDLFlBUkMsWUFBWTtZQUNaLHFCQUFxQixFQVNyQixxQkFBcUI7OzRGQUlaLGlCQUFpQjtrQkFoQjdCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1oscUJBQXFCO3FCQUN0QjtvQkFDRCxTQUFTLEVBQUU7d0JBQ1Qsc0JBQXNCO3dCQUN0Qix1QkFBdUI7d0JBQ3ZCLGtCQUFrQjt3QkFDbEIsNkJBQTZCLEVBQUU7cUJBQ2hDO29CQUNELE9BQU8sRUFBRTt3QkFDUCxxQkFBcUI7cUJBQ3RCO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xuaW1wb3J0IHsgVHJhbnNsYXRlQ29uZmlnIH0gZnJvbSBcIi4vdHlwZXMvY29uZmlnLnR5cGVcIjtcbmltcG9ydCB7IFRyYW5zbGF0aW9uSHR0cFNlcml2Y2UgfSBmcm9tIFwiLi9zZXJ2aWNlcy90cmFuc2xhdGlvbi1odHRwLnNlcml2Y2VcIjtcbmltcG9ydCB7IFRyYW5zbGF0aW9uUGlwZU1vZHVsZSB9IGZyb20gXCIuL3BpcGUubW9kdWxlXCI7XG5pbXBvcnQgeyBUcmFuc2xhdGlvblNlcnZpY2UgfSBmcm9tIFwiLi9zZXJ2aWNlcy90cmFuc2xhdGlvbi5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBUcmFuc2xhdGlvblN0b3JlU2VydmljZSB9IGZyb20gXCIuL3NlcnZpY2VzL3RyYW5zbGF0aW9uLXN0b3JlLnNlcnZpY2VcIjtcbmltcG9ydCB7IHByb3ZpZGVUcmFuc2xhdGlvbkNvbmZpZyB9IGZyb20gXCIuL3Byb3ZpZGVycy9jb25maWcucHJvdmlkZXJcIjtcbmltcG9ydCB7IHByb3ZpZGVUcmFuc2xhdGlvbkh0dHBDb25maWcsIHByb3ZpZGVUcmFuc2xhdGlvbkh0dHBPcHRpb25zIH0gZnJvbSBcIi4vcHJvdmlkZXJzL2h0dHAucHJvdmlkZXJcIjtcbmltcG9ydCB7IHByb3ZpZGVUcmFuc2xhdGlvbkludGVyY2VwdG9yIH0gZnJvbSBcIi4vcHJvdmlkZXJzL2ludGVyY2VwdG9yLnByb3ZpZGVyXCI7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgVHJhbnNsYXRpb25QaXBlTW9kdWxlXG4gIF0sXG4gIHByb3ZpZGVyczogW1xuICAgIFRyYW5zbGF0aW9uSHR0cFNlcml2Y2UsXG4gICAgVHJhbnNsYXRpb25TdG9yZVNlcnZpY2UsXG4gICAgVHJhbnNsYXRpb25TZXJ2aWNlLFxuICAgIHByb3ZpZGVUcmFuc2xhdGlvbkludGVyY2VwdG9yKClcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIFRyYW5zbGF0aW9uUGlwZU1vZHVsZVxuICBdXG59KVxuLyogZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0c2VzbGludC9uby1leHRyYW5lb3VzLWNsYXNzICovXG5leHBvcnQgY2xhc3MgVHJhbnNsYXRpb25Nb2R1bGUge1xuICBwdWJsaWMgc3RhdGljIGZvclJvb3QgKHRyYW5zbGF0ZUNvbmZpZzogUmVhZG9ubHk8VHJhbnNsYXRlQ29uZmlnPik6IE1vZHVsZVdpdGhQcm92aWRlcnM8VHJhbnNsYXRpb25Nb2R1bGU+IHtcbiAgICByZXR1cm4ge1xuICAgICAgbmdNb2R1bGU6IFRyYW5zbGF0aW9uTW9kdWxlLFxuICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHByb3ZpZGVUcmFuc2xhdGlvbkNvbmZpZyh0cmFuc2xhdGVDb25maWcudHJhbnNsYXRlKSxcbiAgICAgICAgcHJvdmlkZVRyYW5zbGF0aW9uSHR0cENvbmZpZyh0cmFuc2xhdGVDb25maWcuaHR0cC5jb25maWcpLFxuICAgICAgICBwcm92aWRlVHJhbnNsYXRpb25IdHRwT3B0aW9ucyh0cmFuc2xhdGVDb25maWcuaHR0cC5vcHRpb25zKVxuICAgICAgXVxuICAgIH07XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export * from './public-api';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2dzLWdtYmgtbmd4LXRyYW5zbGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9vZ3MtZ21iaC1uZ3gtdHJhbnNsYXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19
@@ -0,0 +1,24 @@
1
+ import { CommonModule } from "@angular/common";
2
+ import { NgModule } from "@angular/core";
3
+ import { TranslationPipe } from "./pipes/translation.pipe";
4
+ import * as i0 from "@angular/core";
5
+ export class TranslationPipeModule {
6
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TranslationPipeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
7
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: TranslationPipeModule, declarations: [TranslationPipe], imports: [CommonModule], exports: [TranslationPipe] });
8
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TranslationPipeModule, imports: [CommonModule] });
9
+ }
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TranslationPipeModule, decorators: [{
11
+ type: NgModule,
12
+ args: [{
13
+ imports: [
14
+ CommonModule
15
+ ],
16
+ declarations: [
17
+ TranslationPipe
18
+ ],
19
+ exports: [
20
+ TranslationPipe
21
+ ]
22
+ }]
23
+ }] });
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlwZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcGlwZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDOztBQWMzRCxNQUFNLE9BQU8scUJBQXFCO3dHQUFyQixxQkFBcUI7eUdBQXJCLHFCQUFxQixpQkFQOUIsZUFBZSxhQUhmLFlBQVksYUFNWixlQUFlO3lHQUlOLHFCQUFxQixZQVY5QixZQUFZOzs0RkFVSCxxQkFBcUI7a0JBWmpDLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFO3dCQUNQLFlBQVk7cUJBQ2I7b0JBQ0QsWUFBWSxFQUFFO3dCQUNaLGVBQWU7cUJBQ2hCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxlQUFlO3FCQUNoQjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IFRyYW5zbGF0aW9uUGlwZSB9IGZyb20gXCIuL3BpcGVzL3RyYW5zbGF0aW9uLnBpcGVcIjtcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZVxuICBdLFxuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBUcmFuc2xhdGlvblBpcGVcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIFRyYW5zbGF0aW9uUGlwZVxuICBdXG59KVxuLyogZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0c2VzbGludC9uby1leHRyYW5lb3VzLWNsYXNzICovXG5leHBvcnQgY2xhc3MgVHJhbnNsYXRpb25QaXBlTW9kdWxlIHt9XG4iXX0=
@@ -0,0 +1,49 @@
1
+ import { ChangeDetectorRef, Pipe, inject } from "@angular/core";
2
+ import { TRANSLATION_CONFIG_TOKEN } from "../public-api";
3
+ import { filter } from "rxjs";
4
+ import { TRANSLATION_SCOPE_TOKEN } from "../tokens/scope.token";
5
+ import { TranslationService } from "../services/translation.service";
6
+ import { resolveScope } from "../utils/translate.util";
7
+ import * as i0 from "@angular/core";
8
+ export class TranslationPipe {
9
+ _translationServiceSubscription = null;
10
+ _lastValue = null;
11
+ _hasTranslationChanged = false;
12
+ _translationService = inject(TranslationService);
13
+ _changeDetectorRef = inject(ChangeDetectorRef);
14
+ _translationScopeToken = inject(TRANSLATION_SCOPE_TOKEN, { optional: true });
15
+ _translationConfig = inject(TRANSLATION_CONFIG_TOKEN, { optional: true });
16
+ transform(value, token, scope) {
17
+ if (this._translationServiceSubscription !== null)
18
+ return this._lastValue;
19
+ this._translationServiceSubscription = this._translationService.translateTokenByLocale$(token, value, this._resolveScope(scope))
20
+ .pipe(filter((translation) => translation !== this._lastValue))
21
+ .subscribe({
22
+ next: (translation) => {
23
+ this._hasTranslationChanged = translation !== this._lastValue;
24
+ this._updateLastValue(translation);
25
+ }
26
+ });
27
+ return this._lastValue;
28
+ }
29
+ ngOnDestroy() {
30
+ this._translationServiceSubscription?.unsubscribe();
31
+ }
32
+ _resolveScope(scope) {
33
+ return resolveScope(this._translationConfig, scope ?? this._translationScopeToken);
34
+ }
35
+ _updateLastValue(newValue) {
36
+ this._lastValue = newValue;
37
+ this._hasTranslationChanged && this._changeDetectorRef.markForCheck();
38
+ }
39
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TranslationPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
40
+ static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: TranslationPipe, name: "translate", pure: false });
41
+ }
42
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TranslationPipe, decorators: [{
43
+ type: Pipe,
44
+ args: [{
45
+ name: "translate",
46
+ pure: false
47
+ }]
48
+ }] });
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRpb24ucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9waXBlcy90cmFuc2xhdGlvbi5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBYSxJQUFJLEVBQWlCLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRixPQUFPLEVBQTJCLHdCQUF3QixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xGLE9BQU8sRUFBZ0IsTUFBTSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzVDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7QUFNdkQsTUFBTSxPQUFPLGVBQWU7SUFDbEIsK0JBQStCLEdBQXdCLElBQUksQ0FBQztJQUU1RCxVQUFVLEdBQWtCLElBQUksQ0FBQztJQUVqQyxzQkFBc0IsR0FBWSxLQUFLLENBQUM7SUFFL0IsbUJBQW1CLEdBQXVCLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBRXJFLGtCQUFrQixHQUFzQixNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUVsRSxzQkFBc0IsR0FBa0IsTUFBTSxDQUFDLHVCQUF1QixFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFFNUYsa0JBQWtCLEdBQW1DLE1BQU0sQ0FBQyx3QkFBd0IsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBRXBILFNBQVMsQ0FBRSxLQUFhLEVBQUUsS0FBYSxFQUFFLEtBQXNEO1FBQ3BHLElBQUksSUFBSSxDQUFDLCtCQUErQixLQUFLLElBQUk7WUFDL0MsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO1FBRXpCLElBQUksQ0FBQywrQkFBK0IsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsdUJBQXVCLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQzdILElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxXQUFtQixFQUFXLEVBQUUsQ0FBQyxXQUFXLEtBQUssSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2FBQy9FLFNBQVMsQ0FBQztZQUNULElBQUksRUFBRSxDQUFDLFdBQW1CLEVBQVEsRUFBRTtnQkFDbEMsSUFBSSxDQUFDLHNCQUFzQixHQUFHLFdBQVcsS0FBSyxJQUFJLENBQUMsVUFBVSxDQUFDO2dCQUM5RCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDckMsQ0FBQztTQUNGLENBQUMsQ0FBQztRQUVMLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUN6QixDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsK0JBQStCLEVBQUUsV0FBVyxFQUFFLENBQUM7SUFDdEQsQ0FBQztJQUVPLGFBQWEsQ0FBeUQsS0FBUztRQUNyRixPQUFPLFlBQVksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsS0FBSyxJQUFJLElBQUksQ0FBQyxzQkFBMkIsQ0FBQyxDQUFDO0lBQzFGLENBQUM7SUFFTyxnQkFBZ0IsQ0FBRSxRQUFnQjtRQUN4QyxJQUFJLENBQUMsVUFBVSxHQUFHLFFBQVEsQ0FBQztRQUMzQixJQUFJLENBQUMsc0JBQXNCLElBQUksSUFBSSxDQUFDLGtCQUFrQixDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3hFLENBQUM7d0dBMUNVLGVBQWU7c0dBQWYsZUFBZTs7NEZBQWYsZUFBZTtrQkFKM0IsSUFBSTttQkFBQztvQkFDSixJQUFJLEVBQUUsV0FBVztvQkFDakIsSUFBSSxFQUFFLEtBQUs7aUJBQ1oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgT25EZXN0cm95LCBQaXBlLCBQaXBlVHJhbnNmb3JtLCBpbmplY3QgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgU3BlY2lmaWNUcmFuc2xhdGVDb25maWcsIFRSQU5TTEFUSU9OX0NPTkZJR19UT0tFTiB9IGZyb20gXCIuLi9wdWJsaWMtYXBpXCI7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24sIGZpbHRlciB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgeyBUUkFOU0xBVElPTl9TQ09QRV9UT0tFTiB9IGZyb20gXCIuLi90b2tlbnMvc2NvcGUudG9rZW5cIjtcbmltcG9ydCB7IFRyYW5zbGF0aW9uU2VydmljZSB9IGZyb20gXCIuLi9zZXJ2aWNlcy90cmFuc2xhdGlvbi5zZXJ2aWNlXCI7XG5pbXBvcnQgeyByZXNvbHZlU2NvcGUgfSBmcm9tIFwiLi4vdXRpbHMvdHJhbnNsYXRlLnV0aWxcIjtcblxuQFBpcGUoe1xuICBuYW1lOiBcInRyYW5zbGF0ZVwiLFxuICBwdXJlOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBUcmFuc2xhdGlvblBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtLCBPbkRlc3Ryb3kge1xuICBwcml2YXRlIF90cmFuc2xhdGlvblNlcnZpY2VTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbiB8IG51bGwgPSBudWxsO1xuXG4gIHByaXZhdGUgX2xhc3RWYWx1ZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgcHJpdmF0ZSBfaGFzVHJhbnNsYXRpb25DaGFuZ2VkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfdHJhbnNsYXRpb25TZXJ2aWNlOiBUcmFuc2xhdGlvblNlcnZpY2UgPSBpbmplY3QoVHJhbnNsYXRpb25TZXJ2aWNlKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9jaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX3RyYW5zbGF0aW9uU2NvcGVUb2tlbjogc3RyaW5nIHwgbnVsbCA9IGluamVjdChUUkFOU0xBVElPTl9TQ09QRV9UT0tFTiwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF90cmFuc2xhdGlvbkNvbmZpZzogU3BlY2lmaWNUcmFuc2xhdGVDb25maWcgfCBudWxsID0gaW5qZWN0KFRSQU5TTEFUSU9OX0NPTkZJR19UT0tFTiwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcblxuICBwdWJsaWMgdHJhbnNmb3JtICh2YWx1ZTogc3RyaW5nLCB0b2tlbjogc3RyaW5nLCBzY29wZT86IFJlYWRvbmx5PEFycmF5PHN0cmluZyB8IG51bGw+IHwgc3RyaW5nIHwgbnVsbD4pOiBzdHJpbmcgfCBudWxsIHtcbiAgICBpZiAodGhpcy5fdHJhbnNsYXRpb25TZXJ2aWNlU3Vic2NyaXB0aW9uICE9PSBudWxsKVxuICAgICAgcmV0dXJuIHRoaXMuX2xhc3RWYWx1ZTtcblxuICAgIHRoaXMuX3RyYW5zbGF0aW9uU2VydmljZVN1YnNjcmlwdGlvbiA9IHRoaXMuX3RyYW5zbGF0aW9uU2VydmljZS50cmFuc2xhdGVUb2tlbkJ5TG9jYWxlJCh0b2tlbiwgdmFsdWUsIHRoaXMuX3Jlc29sdmVTY29wZShzY29wZSkpXG4gICAgICAucGlwZShmaWx0ZXIoKHRyYW5zbGF0aW9uOiBzdHJpbmcpOiBib29sZWFuID0+IHRyYW5zbGF0aW9uICE9PSB0aGlzLl9sYXN0VmFsdWUpKVxuICAgICAgLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6ICh0cmFuc2xhdGlvbjogc3RyaW5nKTogdm9pZCA9PiB7XG4gICAgICAgICAgdGhpcy5faGFzVHJhbnNsYXRpb25DaGFuZ2VkID0gdHJhbnNsYXRpb24gIT09IHRoaXMuX2xhc3RWYWx1ZTtcbiAgICAgICAgICB0aGlzLl91cGRhdGVMYXN0VmFsdWUodHJhbnNsYXRpb24pO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgIHJldHVybiB0aGlzLl9sYXN0VmFsdWU7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3kgKCk6IHZvaWQge1xuICAgIHRoaXMuX3RyYW5zbGF0aW9uU2VydmljZVN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHByaXZhdGUgX3Jlc29sdmVTY29wZTxUIGV4dGVuZHMgUmVhZG9ubHlBcnJheTxzdHJpbmcgfCBudWxsPiB8IHN0cmluZyB8IG51bGw+KHNjb3BlPzogVCk6IFQge1xuICAgIHJldHVybiByZXNvbHZlU2NvcGUodGhpcy5fdHJhbnNsYXRpb25Db25maWcsIHNjb3BlID8/IHRoaXMuX3RyYW5zbGF0aW9uU2NvcGVUb2tlbiBhcyBUKTtcbiAgfVxuXG4gIHByaXZhdGUgX3VwZGF0ZUxhc3RWYWx1ZSAobmV3VmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuX2xhc3RWYWx1ZSA9IG5ld1ZhbHVlO1xuICAgIHRoaXMuX2hhc1RyYW5zbGF0aW9uQ2hhbmdlZCAmJiB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,7 @@
1
+ import { TRANSLATION_CONFIG_TOKEN } from "../tokens/config.token";
2
+ export const provideTranslationConfig = (translationConfig) => ({
3
+ provide: TRANSLATION_CONFIG_TOKEN,
4
+ useValue: translationConfig,
5
+ multi: false
6
+ });
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLnByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3Byb3ZpZGVycy9jb25maWcucHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFHbEUsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsQ0FBQyxpQkFBb0QsRUFBaUIsRUFBRSxDQUFDLENBQUM7SUFDaEgsT0FBTyxFQUFFLHdCQUF3QjtJQUNqQyxRQUFRLEVBQUUsaUJBQWlCO0lBQzNCLEtBQUssRUFBRSxLQUFLO0NBQ2IsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3BlY2lmaWNUcmFuc2xhdGVDb25maWcgfSBmcm9tIFwiLi4vdHlwZXMvY29uZmlnLnR5cGVcIjtcbmltcG9ydCB7IFRSQU5TTEFUSU9OX0NPTkZJR19UT0tFTiB9IGZyb20gXCIuLi90b2tlbnMvY29uZmlnLnRva2VuXCI7XG5pbXBvcnQgeyBWYWx1ZVByb3ZpZGVyIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcblxuZXhwb3J0IGNvbnN0IHByb3ZpZGVUcmFuc2xhdGlvbkNvbmZpZyA9ICh0cmFuc2xhdGlvbkNvbmZpZzogUmVhZG9ubHk8U3BlY2lmaWNUcmFuc2xhdGVDb25maWc+KTogVmFsdWVQcm92aWRlciA9PiAoe1xuICBwcm92aWRlOiBUUkFOU0xBVElPTl9DT05GSUdfVE9LRU4sXG4gIHVzZVZhbHVlOiB0cmFuc2xhdGlvbkNvbmZpZyxcbiAgbXVsdGk6IGZhbHNlXG59KTtcblxuIl19
@@ -0,0 +1,13 @@
1
+ import { buildHttpConnectionString } from "@ogs-gmbh/ngx-http";
2
+ import { TRANSLATION_HTTP_CONFIG, TRANSLATION_HTTP_OPTIONS } from "../tokens/http.token";
3
+ export const provideTranslationHttpConfig = (httpConfig) => ({
4
+ provide: TRANSLATION_HTTP_CONFIG,
5
+ useValue: buildHttpConnectionString(httpConfig),
6
+ multi: false
7
+ });
8
+ export const provideTranslationHttpOptions = (httpOptions) => ({
9
+ provide: TRANSLATION_HTTP_OPTIONS,
10
+ useValue: httpOptions,
11
+ multi: false
12
+ });
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC5wcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9wcm92aWRlcnMvaHR0cC5wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQThDLHlCQUF5QixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDM0csT0FBTyxFQUFFLHVCQUF1QixFQUFFLHdCQUF3QixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFHekYsTUFBTSxDQUFDLE1BQU0sNEJBQTRCLEdBQUcsQ0FBQyxVQUFnQyxFQUFpQixFQUFFLENBQUMsQ0FBQztJQUNoRyxPQUFPLEVBQUUsdUJBQXVCO0lBQ2hDLFFBQVEsRUFBRSx5QkFBeUIsQ0FBQyxVQUFVLENBQUM7SUFDL0MsS0FBSyxFQUFFLEtBQUs7Q0FDYixDQUFDLENBQUM7QUFDSCxNQUFNLENBQUMsTUFBTSw2QkFBNkIsR0FBRyxDQUFDLFdBQXlELEVBQWlCLEVBQUUsQ0FBQyxDQUFDO0lBQzFILE9BQU8sRUFBRSx3QkFBd0I7SUFDakMsUUFBUSxFQUFFLFdBQVc7SUFDckIsS0FBSyxFQUFFLEtBQUs7Q0FDYixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ29uZmlnLCBIdHRwSGVhZGVyc09wdGlvbiwgSHR0cE9wdGlvbnMsIGJ1aWxkSHR0cENvbm5lY3Rpb25TdHJpbmcgfSBmcm9tIFwiQG9ncy1nbWJoL25neC1odHRwXCI7XG5pbXBvcnQgeyBUUkFOU0xBVElPTl9IVFRQX0NPTkZJRywgVFJBTlNMQVRJT05fSFRUUF9PUFRJT05TIH0gZnJvbSBcIi4uL3Rva2Vucy9odHRwLnRva2VuXCI7XG5pbXBvcnQgeyBWYWx1ZVByb3ZpZGVyIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcblxuZXhwb3J0IGNvbnN0IHByb3ZpZGVUcmFuc2xhdGlvbkh0dHBDb25maWcgPSAoaHR0cENvbmZpZzogUmVhZG9ubHk8SHR0cENvbmZpZz4pOiBWYWx1ZVByb3ZpZGVyID0+ICh7XG4gIHByb3ZpZGU6IFRSQU5TTEFUSU9OX0hUVFBfQ09ORklHLFxuICB1c2VWYWx1ZTogYnVpbGRIdHRwQ29ubmVjdGlvblN0cmluZyhodHRwQ29uZmlnKSxcbiAgbXVsdGk6IGZhbHNlXG59KTtcbmV4cG9ydCBjb25zdCBwcm92aWRlVHJhbnNsYXRpb25IdHRwT3B0aW9ucyA9IChodHRwT3B0aW9uczogSHR0cE9wdGlvbnM8bmV2ZXIsIEh0dHBIZWFkZXJzT3B0aW9uLCBuZXZlcj4pOiBWYWx1ZVByb3ZpZGVyID0+ICh7XG4gIHByb3ZpZGU6IFRSQU5TTEFUSU9OX0hUVFBfT1BUSU9OUyxcbiAgdXNlVmFsdWU6IGh0dHBPcHRpb25zLFxuICBtdWx0aTogZmFsc2Vcbn0pO1xuIl19
@@ -0,0 +1,8 @@
1
+ import { HTTP_INTERCEPTORS } from "@angular/common/http";
2
+ import { TranslationInterceptor } from "../interceptors/translation.interceptor";
3
+ export const provideTranslationInterceptor = () => ({
4
+ provide: HTTP_INTERCEPTORS,
5
+ useClass: TranslationInterceptor,
6
+ multi: true
7
+ });
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJjZXB0b3IucHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcHJvdmlkZXJzL2ludGVyY2VwdG9yLnByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBRWpGLE1BQU0sQ0FBQyxNQUFNLDZCQUE2QixHQUFHLEdBQWtCLEVBQUUsQ0FBQyxDQUFDO0lBQ2pFLE9BQU8sRUFBRSxpQkFBaUI7SUFDMUIsUUFBUSxFQUFFLHNCQUFzQjtJQUNoQyxLQUFLLEVBQUUsSUFBSTtDQUNaLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENsYXNzUHJvdmlkZXIgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgSFRUUF9JTlRFUkNFUFRPUlMgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uL2h0dHBcIjtcbmltcG9ydCB7IFRyYW5zbGF0aW9uSW50ZXJjZXB0b3IgfSBmcm9tIFwiLi4vaW50ZXJjZXB0b3JzL3RyYW5zbGF0aW9uLmludGVyY2VwdG9yXCI7XG5cbmV4cG9ydCBjb25zdCBwcm92aWRlVHJhbnNsYXRpb25JbnRlcmNlcHRvciA9ICgpOiBDbGFzc1Byb3ZpZGVyID0+ICh7XG4gIHByb3ZpZGU6IEhUVFBfSU5URVJDRVBUT1JTLFxuICB1c2VDbGFzczogVHJhbnNsYXRpb25JbnRlcmNlcHRvcixcbiAgbXVsdGk6IHRydWVcbn0pO1xuXG4iXX0=
@@ -0,0 +1,58 @@
1
+ import { APP_INITIALIZER } from "@angular/core";
2
+ import { HttpClient } from "@angular/common/http";
3
+ import { PreloadingStrategies } from "../enums/preloading-strategies.enum";
4
+ import { TRANSLATION_PRELOAD_TOKEN } from "../tokens/preload.token";
5
+ import { TranslationHttpSerivce } from "../services/translation-http.serivce";
6
+ import { TranslationService } from "../services/translation.service";
7
+ import { TranslationStoreService } from "../services/translation-store.service";
8
+ const handleInitializationStrategy = (httpClient, translationHttpService, translationStoreService, translationSerivce, scopes) => () => void translationSerivce.preloadByCurrentLocale(httpClient, translationStoreService, translationHttpService, scopes).subscribe();
9
+ const handleRuntimeStrategy = (httpClient, translationHttpService, translationStoreService, translationSerivce, scopes) => () => {
10
+ translationSerivce.preloadByCurrentLocale(httpClient, translationStoreService, translationHttpService, scopes).subscribe();
11
+ return translationSerivce;
12
+ };
13
+ export const provideTranslationPreload = (preloadProvider) => {
14
+ switch (preloadProvider.preloadingStrategy) {
15
+ case PreloadingStrategies.INITIALIZATION: {
16
+ return {
17
+ provide: APP_INITIALIZER,
18
+ useFactory: (httpClient, translationHttpService, translationStoreService, translationSerivce) => handleInitializationStrategy(httpClient, translationHttpService, translationStoreService, translationSerivce, preloadProvider.scopes),
19
+ deps: [HttpClient, TranslationHttpSerivce, TranslationStoreService, TranslationService],
20
+ multi: true
21
+ };
22
+ }
23
+ case PreloadingStrategies.RUNTIME: {
24
+ return {
25
+ provide: TRANSLATION_PRELOAD_TOKEN,
26
+ useFactory: (httpClient, translationHttpService, translationStoreService, translationSerivce) => handleRuntimeStrategy(httpClient, translationHttpService, translationStoreService, translationSerivce, preloadProvider.scopes),
27
+ deps: [HttpClient, TranslationHttpSerivce, TranslationStoreService, TranslationService],
28
+ multi: false
29
+ };
30
+ }
31
+ }
32
+ };
33
+ const handleReactiveInitializationStrategy = (httpClient, translationHttpService, translationStoreService, translationSerivce, scopes) => () => void translationSerivce.preloadByLocale(httpClient, translationStoreService, translationHttpService, scopes).subscribe();
34
+ const handleReactiveRuntimeStrategy = (httpClient, translationHttpService, translationStoreService, translationSerivce, scopes) => () => {
35
+ translationSerivce.preloadByLocale(httpClient, translationStoreService, translationHttpService, scopes).subscribe();
36
+ return translationSerivce;
37
+ };
38
+ export const provideTranslationPreloadReactive = (preloadProvider) => {
39
+ switch (preloadProvider.preloadingStrategy) {
40
+ case PreloadingStrategies.INITIALIZATION: {
41
+ return {
42
+ provide: APP_INITIALIZER,
43
+ useFactory: (httpClient, translationHttpService, translationStoreService, translationSerivce) => handleReactiveInitializationStrategy(httpClient, translationHttpService, translationStoreService, translationSerivce, preloadProvider.scopes),
44
+ deps: [HttpClient, TranslationHttpSerivce, TranslationStoreService, TranslationService],
45
+ multi: true
46
+ };
47
+ }
48
+ case PreloadingStrategies.RUNTIME: {
49
+ return {
50
+ provide: TRANSLATION_PRELOAD_TOKEN,
51
+ useFactory: (httpClient, translationHttpService, translationStoreService, translationSerivce) => handleReactiveRuntimeStrategy(httpClient, translationHttpService, translationStoreService, translationSerivce, preloadProvider.scopes),
52
+ deps: [HttpClient, TranslationHttpSerivce, TranslationStoreService, TranslationService],
53
+ multi: false
54
+ };
55
+ }
56
+ }
57
+ };
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlbG9hZC5wcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9wcm92aWRlcnMvcHJlbG9hZC5wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFtQixNQUFNLGVBQWUsQ0FBQztBQUNqRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDM0UsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDcEUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFFOUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDckUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFHaEYsTUFBTSw0QkFBNEIsR0FBRyxDQUNuQyxVQUFnQyxFQUNoQyxzQkFBd0QsRUFDeEQsdUJBQTBELEVBQzFELGtCQUFnRCxFQUNoRCxNQUFzRCxFQUMxQyxFQUFFLENBQUMsR0FBUyxFQUFFLENBQUMsS0FBSyxrQkFBa0IsQ0FBQyxzQkFBc0IsQ0FBQyxVQUFVLEVBQUUsdUJBQXVCLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7QUFHN0osTUFBTSxxQkFBcUIsR0FBRyxDQUM1QixVQUFnQyxFQUNoQyxzQkFBd0QsRUFDeEQsdUJBQTBELEVBQzFELGtCQUFnRCxFQUNoRCxNQUFzRCxFQUNsQixFQUFFLENBQUMsR0FBaUMsRUFBRTtJQUMxRSxrQkFBa0IsQ0FBQyxzQkFBc0IsQ0FBQyxVQUFVLEVBQUUsdUJBQXVCLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7SUFFM0gsT0FBTyxrQkFBa0IsQ0FBQztBQUM1QixDQUFDLENBQUM7QUFHRixNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRyxDQUFDLGVBQXFELEVBQW1CLEVBQUU7SUFDbEgsUUFBUSxlQUFlLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUMzQyxLQUFLLG9CQUFvQixDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUM7WUFDekMsT0FBTztnQkFDTCxPQUFPLEVBQUUsZUFBZTtnQkFDeEIsVUFBVSxFQUFFLENBQ1YsVUFBZ0MsRUFDaEMsc0JBQXdELEVBQ3hELHVCQUEwRCxFQUMxRCxrQkFBZ0QsRUFDcEMsRUFBRSxDQUFDLDRCQUE0QixDQUFDLFVBQVUsRUFBRSxzQkFBc0IsRUFBRSx1QkFBdUIsRUFBRSxrQkFBa0IsRUFBRSxlQUFlLENBQUMsTUFBTSxDQUFDO2dCQUN0SixJQUFJLEVBQUUsQ0FBRSxVQUFVLEVBQUUsc0JBQXNCLEVBQUUsdUJBQXVCLEVBQUUsa0JBQWtCLENBQUU7Z0JBQ3pGLEtBQUssRUFBRSxJQUFJO2FBQ1osQ0FBQztRQUNKLENBQUM7UUFFRCxLQUFLLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7WUFDbEMsT0FBTztnQkFDTCxPQUFPLEVBQUUseUJBQXlCO2dCQUNsQyxVQUFVLEVBQUUsQ0FDVixVQUFnQyxFQUNoQyxzQkFBd0QsRUFDeEQsdUJBQTBELEVBQzFELGtCQUFnRCxFQUNwQyxFQUFFLENBQUMscUJBQXFCLENBQUMsVUFBVSxFQUFFLHNCQUFzQixFQUFFLHVCQUF1QixFQUFFLGtCQUFrQixFQUFFLGVBQWUsQ0FBQyxNQUFNLENBQUM7Z0JBQy9JLElBQUksRUFBRSxDQUFFLFVBQVUsRUFBRSxzQkFBc0IsRUFBRSx1QkFBdUIsRUFBRSxrQkFBa0IsQ0FBRTtnQkFDekYsS0FBSyxFQUFFLEtBQUs7YUFDYixDQUFDO1FBQ0osQ0FBQztJQUNILENBQUM7QUFDSCxDQUFDLENBQUM7QUFHRixNQUFNLG9DQUFvQyxHQUFHLENBQzNDLFVBQWdDLEVBQ2hDLHNCQUF3RCxFQUN4RCx1QkFBMEQsRUFDMUQsa0JBQWdELEVBQ2hELE1BQXNELEVBQzFDLEVBQUUsQ0FBQyxHQUFTLEVBQUUsQ0FBQyxLQUFLLGtCQUFrQixDQUFDLGVBQWUsQ0FBQyxVQUFVLEVBQUUsdUJBQXVCLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7QUFHdEosTUFBTSw2QkFBNkIsR0FBRyxDQUNwQyxVQUFnQyxFQUNoQyxzQkFBd0QsRUFDeEQsdUJBQTBELEVBQzFELGtCQUFnRCxFQUNoRCxNQUFzRCxFQUNsQixFQUFFLENBQUMsR0FBaUMsRUFBRTtJQUMxRSxrQkFBa0IsQ0FBQyxlQUFlLENBQUMsVUFBVSxFQUFFLHVCQUF1QixFQUFFLHNCQUFzQixFQUFFLE1BQU0sQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBRXBILE9BQU8sa0JBQWtCLENBQUM7QUFDNUIsQ0FBQyxDQUFDO0FBR0YsTUFBTSxDQUFDLE1BQU0saUNBQWlDLEdBQUcsQ0FBQyxlQUFxRCxFQUFtQixFQUFFO0lBQzFILFFBQVEsZUFBZSxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFDM0MsS0FBSyxvQkFBb0IsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDO1lBQ3pDLE9BQU87Z0JBQ0wsT0FBTyxFQUFFLGVBQWU7Z0JBQ3hCLFVBQVUsRUFBRSxDQUNWLFVBQWdDLEVBQ2hDLHNCQUF3RCxFQUN4RCx1QkFBMEQsRUFDMUQsa0JBQWdELEVBQ2hELEVBQUUsQ0FBQyxvQ0FBb0MsQ0FBQyxVQUFVLEVBQUUsc0JBQXNCLEVBQUUsdUJBQXVCLEVBQUUsa0JBQWtCLEVBQUUsZUFBZSxDQUFDLE1BQU0sQ0FBQztnQkFDbEosSUFBSSxFQUFFLENBQUUsVUFBVSxFQUFFLHNCQUFzQixFQUFFLHVCQUF1QixFQUFFLGtCQUFrQixDQUFFO2dCQUN6RixLQUFLLEVBQUUsSUFBSTthQUNaLENBQUM7UUFDSixDQUFDO1FBRUQsS0FBSyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1lBQ2xDLE9BQU87Z0JBQ0wsT0FBTyxFQUFFLHlCQUF5QjtnQkFDbEMsVUFBVSxFQUFFLENBQ1YsVUFBZ0MsRUFDaEMsc0JBQXdELEVBQ3hELHVCQUEwRCxFQUMxRCxrQkFBZ0QsRUFDaEQsRUFBRSxDQUFDLDZCQUE2QixDQUFDLFVBQVUsRUFBRSxzQkFBc0IsRUFBRSx1QkFBdUIsRUFBRSxrQkFBa0IsRUFBRSxlQUFlLENBQUMsTUFBTSxDQUFDO2dCQUMzSSxJQUFJLEVBQUUsQ0FBRSxVQUFVLEVBQUUsc0JBQXNCLEVBQUUsdUJBQXVCLEVBQUUsa0JBQWtCLENBQUU7Z0JBQ3pGLEtBQUssRUFBRSxLQUFLO2FBQ2IsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0FBQ0gsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVBQX0lOSVRJQUxJWkVSLCBGYWN0b3J5UHJvdmlkZXIgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gXCJAYW5ndWxhci9jb21tb24vaHR0cFwiO1xuaW1wb3J0IHsgUHJlbG9hZGluZ1N0cmF0ZWdpZXMgfSBmcm9tIFwiLi4vZW51bXMvcHJlbG9hZGluZy1zdHJhdGVnaWVzLmVudW1cIjtcbmltcG9ydCB7IFRSQU5TTEFUSU9OX1BSRUxPQURfVE9LRU4gfSBmcm9tIFwiLi4vdG9rZW5zL3ByZWxvYWQudG9rZW5cIjtcbmltcG9ydCB7IFRyYW5zbGF0aW9uSHR0cFNlcml2Y2UgfSBmcm9tIFwiLi4vc2VydmljZXMvdHJhbnNsYXRpb24taHR0cC5zZXJpdmNlXCI7XG5pbXBvcnQgeyBUcmFuc2xhdGlvblByZWxvYWRQcm92aWRlciB9IGZyb20gXCIuLi90eXBlcy9wcm92aWRlci50eXBlXCI7XG5pbXBvcnQgeyBUcmFuc2xhdGlvblNlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZXMvdHJhbnNsYXRpb24uc2VydmljZVwiO1xuaW1wb3J0IHsgVHJhbnNsYXRpb25TdG9yZVNlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZXMvdHJhbnNsYXRpb24tc3RvcmUuc2VydmljZVwiO1xuXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHNlc2xpbnQvbWF4LXBhcmFtcyAqL1xuY29uc3QgaGFuZGxlSW5pdGlhbGl6YXRpb25TdHJhdGVneSA9IChcbiAgaHR0cENsaWVudDogUmVhZG9ubHk8SHR0cENsaWVudD4sXG4gIHRyYW5zbGF0aW9uSHR0cFNlcnZpY2U6IFJlYWRvbmx5PFRyYW5zbGF0aW9uSHR0cFNlcml2Y2U+LFxuICB0cmFuc2xhdGlvblN0b3JlU2VydmljZTogUmVhZG9ubHk8VHJhbnNsYXRpb25TdG9yZVNlcnZpY2U+LFxuICB0cmFuc2xhdGlvblNlcml2Y2U6IFJlYWRvbmx5PFRyYW5zbGF0aW9uU2VydmljZT4sXG4gIHNjb3BlczogUmVhZG9ubHk8QXJyYXk8c3RyaW5nIHwgbnVsbD4gfCBzdHJpbmcgfCBudWxsPlxuKTogKCkgPT4gdm9pZCA9PiAoKTogdm9pZCA9PiB2b2lkIHRyYW5zbGF0aW9uU2VyaXZjZS5wcmVsb2FkQnlDdXJyZW50TG9jYWxlKGh0dHBDbGllbnQsIHRyYW5zbGF0aW9uU3RvcmVTZXJ2aWNlLCB0cmFuc2xhdGlvbkh0dHBTZXJ2aWNlLCBzY29wZXMpLnN1YnNjcmliZSgpO1xuLyogZXNsaW50LWVuYWJsZSBAdHNlc2xpbnQvbWF4LXBhcmFtcyAqL1xuLyogZXNsaW50LWRpc2FibGUgQHRzZXNsaW50L21heC1wYXJhbXMgKi9cbmNvbnN0IGhhbmRsZVJ1bnRpbWVTdHJhdGVneSA9IChcbiAgaHR0cENsaWVudDogUmVhZG9ubHk8SHR0cENsaWVudD4sXG4gIHRyYW5zbGF0aW9uSHR0cFNlcnZpY2U6IFJlYWRvbmx5PFRyYW5zbGF0aW9uSHR0cFNlcml2Y2U+LFxuICB0cmFuc2xhdGlvblN0b3JlU2VydmljZTogUmVhZG9ubHk8VHJhbnNsYXRpb25TdG9yZVNlcnZpY2U+LFxuICB0cmFuc2xhdGlvblNlcml2Y2U6IFJlYWRvbmx5PFRyYW5zbGF0aW9uU2VydmljZT4sXG4gIHNjb3BlczogUmVhZG9ubHk8QXJyYXk8c3RyaW5nIHwgbnVsbD4gfCBzdHJpbmcgfCBudWxsPlxuKTogKCkgPT4gUmVhZG9ubHk8VHJhbnNsYXRpb25TZXJ2aWNlPiA9PiAoKTogUmVhZG9ubHk8VHJhbnNsYXRpb25TZXJ2aWNlPiA9PiB7XG4gIHRyYW5zbGF0aW9uU2VyaXZjZS5wcmVsb2FkQnlDdXJyZW50TG9jYWxlKGh0dHBDbGllbnQsIHRyYW5zbGF0aW9uU3RvcmVTZXJ2aWNlLCB0cmFuc2xhdGlvbkh0dHBTZXJ2aWNlLCBzY29wZXMpLnN1YnNjcmliZSgpO1xuXG4gIHJldHVybiB0cmFuc2xhdGlvblNlcml2Y2U7XG59O1xuLyogZXNsaW50LWVuYWJsZSBAdHNlc2xpbnQvbWF4LXBhcmFtcyAqL1xuXG5leHBvcnQgY29uc3QgcHJvdmlkZVRyYW5zbGF0aW9uUHJlbG9hZCA9IChwcmVsb2FkUHJvdmlkZXI6IFJlYWRvbmx5PFRyYW5zbGF0aW9uUHJlbG9hZFByb3ZpZGVyPik6IEZhY3RvcnlQcm92aWRlciA9PiB7XG4gIHN3aXRjaCAocHJlbG9hZFByb3ZpZGVyLnByZWxvYWRpbmdTdHJhdGVneSkge1xuICAgIGNhc2UgUHJlbG9hZGluZ1N0cmF0ZWdpZXMuSU5JVElBTElaQVRJT046IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHByb3ZpZGU6IEFQUF9JTklUSUFMSVpFUixcbiAgICAgICAgdXNlRmFjdG9yeTogKFxuICAgICAgICAgIGh0dHBDbGllbnQ6IFJlYWRvbmx5PEh0dHBDbGllbnQ+LFxuICAgICAgICAgIHRyYW5zbGF0aW9uSHR0cFNlcnZpY2U6IFJlYWRvbmx5PFRyYW5zbGF0aW9uSHR0cFNlcml2Y2U+LFxuICAgICAgICAgIHRyYW5zbGF0aW9uU3RvcmVTZXJ2aWNlOiBSZWFkb25seTxUcmFuc2xhdGlvblN0b3JlU2VydmljZT4sXG4gICAgICAgICAgdHJhbnNsYXRpb25TZXJpdmNlOiBSZWFkb25seTxUcmFuc2xhdGlvblNlcnZpY2U+XG4gICAgICAgICk6ICgpID0+IHZvaWQgPT4gaGFuZGxlSW5pdGlhbGl6YXRpb25TdHJhdGVneShodHRwQ2xpZW50LCB0cmFuc2xhdGlvbkh0dHBTZXJ2aWNlLCB0cmFuc2xhdGlvblN0b3JlU2VydmljZSwgdHJhbnNsYXRpb25TZXJpdmNlLCBwcmVsb2FkUHJvdmlkZXIuc2NvcGVzKSxcbiAgICAgICAgZGVwczogWyBIdHRwQ2xpZW50LCBUcmFuc2xhdGlvbkh0dHBTZXJpdmNlLCBUcmFuc2xhdGlvblN0b3JlU2VydmljZSwgVHJhbnNsYXRpb25TZXJ2aWNlIF0sXG4gICAgICAgIG11bHRpOiB0cnVlXG4gICAgICB9O1xuICAgIH1cblxuICAgIGNhc2UgUHJlbG9hZGluZ1N0cmF0ZWdpZXMuUlVOVElNRToge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgcHJvdmlkZTogVFJBTlNMQVRJT05fUFJFTE9BRF9UT0tFTixcbiAgICAgICAgdXNlRmFjdG9yeTogKFxuICAgICAgICAgIGh0dHBDbGllbnQ6IFJlYWRvbmx5PEh0dHBDbGllbnQ+LFxuICAgICAgICAgIHRyYW5zbGF0aW9uSHR0cFNlcnZpY2U6IFJlYWRvbmx5PFRyYW5zbGF0aW9uSHR0cFNlcml2Y2U+LFxuICAgICAgICAgIHRyYW5zbGF0aW9uU3RvcmVTZXJ2aWNlOiBSZWFkb25seTxUcmFuc2xhdGlvblN0b3JlU2VydmljZT4sXG4gICAgICAgICAgdHJhbnNsYXRpb25TZXJpdmNlOiBSZWFkb25seTxUcmFuc2xhdGlvblNlcnZpY2U+XG4gICAgICAgICk6ICgpID0+IHZvaWQgPT4gaGFuZGxlUnVudGltZVN0cmF0ZWd5KGh0dHBDbGllbnQsIHRyYW5zbGF0aW9uSHR0cFNlcnZpY2UsIHRyYW5zbGF0aW9uU3RvcmVTZXJ2aWNlLCB0cmFuc2xhdGlvblNlcml2Y2UsIHByZWxvYWRQcm92aWRlci5zY29wZXMpLFxuICAgICAgICBkZXBzOiBbIEh0dHBDbGllbnQsIFRyYW5zbGF0aW9uSHR0cFNlcml2Y2UsIFRyYW5zbGF0aW9uU3RvcmVTZXJ2aWNlLCBUcmFuc2xhdGlvblNlcnZpY2UgXSxcbiAgICAgICAgbXVsdGk6IGZhbHNlXG4gICAgICB9O1xuICAgIH1cbiAgfVxufTtcblxuLyogZXNsaW50LWRpc2FibGUgQHRzZXNsaW50L21heC1wYXJhbXMgKi9cbmNvbnN0IGhhbmRsZVJlYWN0aXZlSW5pdGlhbGl6YXRpb25TdHJhdGVneSA9IChcbiAgaHR0cENsaWVudDogUmVhZG9ubHk8SHR0cENsaWVudD4sXG4gIHRyYW5zbGF0aW9uSHR0cFNlcnZpY2U6IFJlYWRvbmx5PFRyYW5zbGF0aW9uSHR0cFNlcml2Y2U+LFxuICB0cmFuc2xhdGlvblN0b3JlU2VydmljZTogUmVhZG9ubHk8VHJhbnNsYXRpb25TdG9yZVNlcnZpY2U+LFxuICB0cmFuc2xhdGlvblNlcml2Y2U6IFJlYWRvbmx5PFRyYW5zbGF0aW9uU2VydmljZT4sXG4gIHNjb3BlczogUmVhZG9ubHk8QXJyYXk8c3RyaW5nIHwgbnVsbD4gfCBzdHJpbmcgfCBudWxsPlxuKTogKCkgPT4gdm9pZCA9PiAoKTogdm9pZCA9PiB2b2lkIHRyYW5zbGF0aW9uU2VyaXZjZS5wcmVsb2FkQnlMb2NhbGUoaHR0cENsaWVudCwgdHJhbnNsYXRpb25TdG9yZVNlcnZpY2UsIHRyYW5zbGF0aW9uSHR0cFNlcnZpY2UsIHNjb3Blcykuc3Vic2NyaWJlKCk7XG4vKiBlc2xpbnQtZW5hYmxlIEB0c2VzbGludC9tYXgtcGFyYW1zICovXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHNlc2xpbnQvbWF4LXBhcmFtcyAqL1xuY29uc3QgaGFuZGxlUmVhY3RpdmVSdW50aW1lU3RyYXRlZ3kgPSAoXG4gIGh0dHBDbGllbnQ6IFJlYWRvbmx5PEh0dHBDbGllbnQ+LFxuICB0cmFuc2xhdGlvbkh0dHBTZXJ2aWNlOiBSZWFkb25seTxUcmFuc2xhdGlvbkh0dHBTZXJpdmNlPixcbiAgdHJhbnNsYXRpb25TdG9yZVNlcnZpY2U6IFJlYWRvbmx5PFRyYW5zbGF0aW9uU3RvcmVTZXJ2aWNlPixcbiAgdHJhbnNsYXRpb25TZXJpdmNlOiBSZWFkb25seTxUcmFuc2xhdGlvblNlcnZpY2U+LFxuICBzY29wZXM6IFJlYWRvbmx5PEFycmF5PHN0cmluZyB8IG51bGw+IHwgc3RyaW5nIHwgbnVsbD5cbik6ICgpID0+IFJlYWRvbmx5PFRyYW5zbGF0aW9uU2VydmljZT4gPT4gKCk6IFJlYWRvbmx5PFRyYW5zbGF0aW9uU2VydmljZT4gPT4ge1xuICB0cmFuc2xhdGlvblNlcml2Y2UucHJlbG9hZEJ5TG9jYWxlKGh0dHBDbGllbnQsIHRyYW5zbGF0aW9uU3RvcmVTZXJ2aWNlLCB0cmFuc2xhdGlvbkh0dHBTZXJ2aWNlLCBzY29wZXMpLnN1YnNjcmliZSgpO1xuXG4gIHJldHVybiB0cmFuc2xhdGlvblNlcml2Y2U7XG59O1xuLyogZXNsaW50LWVuYWJsZSBAdHNlc2xpbnQvbWF4LXBhcmFtcyAqL1xuXG5leHBvcnQgY29uc3QgcHJvdmlkZVRyYW5zbGF0aW9uUHJlbG9hZFJlYWN0aXZlID0gKHByZWxvYWRQcm92aWRlcjogUmVhZG9ubHk8VHJhbnNsYXRpb25QcmVsb2FkUHJvdmlkZXI+KTogRmFjdG9yeVByb3ZpZGVyID0+IHtcbiAgc3dpdGNoIChwcmVsb2FkUHJvdmlkZXIucHJlbG9hZGluZ1N0cmF0ZWd5KSB7XG4gICAgY2FzZSBQcmVsb2FkaW5nU3RyYXRlZ2llcy5JTklUSUFMSVpBVElPTjoge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgcHJvdmlkZTogQVBQX0lOSVRJQUxJWkVSLFxuICAgICAgICB1c2VGYWN0b3J5OiAoXG4gICAgICAgICAgaHR0cENsaWVudDogUmVhZG9ubHk8SHR0cENsaWVudD4sXG4gICAgICAgICAgdHJhbnNsYXRpb25IdHRwU2VydmljZTogUmVhZG9ubHk8VHJhbnNsYXRpb25IdHRwU2VyaXZjZT4sXG4gICAgICAgICAgdHJhbnNsYXRpb25TdG9yZVNlcnZpY2U6IFJlYWRvbmx5PFRyYW5zbGF0aW9uU3RvcmVTZXJ2aWNlPixcbiAgICAgICAgICB0cmFuc2xhdGlvblNlcml2Y2U6IFJlYWRvbmx5PFRyYW5zbGF0aW9uU2VydmljZT5cbiAgICAgICAgKSA9PiBoYW5kbGVSZWFjdGl2ZUluaXRpYWxpemF0aW9uU3RyYXRlZ3koaHR0cENsaWVudCwgdHJhbnNsYXRpb25IdHRwU2VydmljZSwgdHJhbnNsYXRpb25TdG9yZVNlcnZpY2UsIHRyYW5zbGF0aW9uU2VyaXZjZSwgcHJlbG9hZFByb3ZpZGVyLnNjb3BlcyksXG4gICAgICAgIGRlcHM6IFsgSHR0cENsaWVudCwgVHJhbnNsYXRpb25IdHRwU2VyaXZjZSwgVHJhbnNsYXRpb25TdG9yZVNlcnZpY2UsIFRyYW5zbGF0aW9uU2VydmljZSBdLFxuICAgICAgICBtdWx0aTogdHJ1ZVxuICAgICAgfTtcbiAgICB9XG5cbiAgICBjYXNlIFByZWxvYWRpbmdTdHJhdGVnaWVzLlJVTlRJTUU6IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHByb3ZpZGU6IFRSQU5TTEFUSU9OX1BSRUxPQURfVE9LRU4sXG4gICAgICAgIHVzZUZhY3Rvcnk6IChcbiAgICAgICAgICBodHRwQ2xpZW50OiBSZWFkb25seTxIdHRwQ2xpZW50PixcbiAgICAgICAgICB0cmFuc2xhdGlvbkh0dHBTZXJ2aWNlOiBSZWFkb25seTxUcmFuc2xhdGlvbkh0dHBTZXJpdmNlPixcbiAgICAgICAgICB0cmFuc2xhdGlvblN0b3JlU2VydmljZTogUmVhZG9ubHk8VHJhbnNsYXRpb25TdG9yZVNlcnZpY2U+LFxuICAgICAgICAgIHRyYW5zbGF0aW9uU2VyaXZjZTogUmVhZG9ubHk8VHJhbnNsYXRpb25TZXJ2aWNlPlxuICAgICAgICApID0+IGhhbmRsZVJlYWN0aXZlUnVudGltZVN0cmF0ZWd5KGh0dHBDbGllbnQsIHRyYW5zbGF0aW9uSHR0cFNlcnZpY2UsIHRyYW5zbGF0aW9uU3RvcmVTZXJ2aWNlLCB0cmFuc2xhdGlvblNlcml2Y2UsIHByZWxvYWRQcm92aWRlci5zY29wZXMpLFxuICAgICAgICBkZXBzOiBbIEh0dHBDbGllbnQsIFRyYW5zbGF0aW9uSHR0cFNlcml2Y2UsIFRyYW5zbGF0aW9uU3RvcmVTZXJ2aWNlLCBUcmFuc2xhdGlvblNlcnZpY2UgXSxcbiAgICAgICAgbXVsdGk6IGZhbHNlXG4gICAgICB9O1xuICAgIH1cbiAgfVxufTtcblxuIl19
@@ -0,0 +1,7 @@
1
+ import { TRANSLATION_SCOPE_TOKEN } from "../tokens/scope.token";
2
+ export const provideTranslationScope = (scope) => ({
3
+ provide: TRANSLATION_SCOPE_TOKEN,
4
+ useValue: scope,
5
+ multi: false
6
+ });
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NvcGUucHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcHJvdmlkZXJzL3Njb3BlLnByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBR2hFLE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHLENBQUMsS0FBYSxFQUFpQixFQUFFLENBQUMsQ0FBQztJQUN4RSxPQUFPLEVBQUUsdUJBQXVCO0lBQ2hDLFFBQVEsRUFBRSxLQUFLO0lBQ2YsS0FBSyxFQUFFLEtBQUs7Q0FDYixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUUkFOU0xBVElPTl9TQ09QRV9UT0tFTiB9IGZyb20gXCIuLi90b2tlbnMvc2NvcGUudG9rZW5cIjtcbmltcG9ydCB7IFZhbHVlUHJvdmlkZXIgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuXG5leHBvcnQgY29uc3QgcHJvdmlkZVRyYW5zbGF0aW9uU2NvcGUgPSAoc2NvcGU6IHN0cmluZyk6IFZhbHVlUHJvdmlkZXIgPT4gKHtcbiAgcHJvdmlkZTogVFJBTlNMQVRJT05fU0NPUEVfVE9LRU4sXG4gIHVzZVZhbHVlOiBzY29wZSxcbiAgbXVsdGk6IGZhbHNlXG59KTtcblxuIl19
@@ -0,0 +1,18 @@
1
+ export * from "./enums/collecting-strategies.enum";
2
+ export * from "./enums/preloading-strategies.enum";
3
+ export * from "./interceptors/translation.interceptor";
4
+ export * from "./pipes/translation.pipe";
5
+ export * from "./services/translation-http.serivce";
6
+ export * from "./services/translation-store.service";
7
+ export * from "./services/translation.service";
8
+ export * from "./tokens/config.token";
9
+ export * from "./tokens/scope.token";
10
+ export * from "./tokens/preload.token";
11
+ export * from "./types/config.type";
12
+ export * from "./providers/scope.provider";
13
+ export * from "./providers/preload.provider";
14
+ export * from "./providers/config.provider";
15
+ export * from "./providers/interceptor.provider";
16
+ export * from "./pipe.module";
17
+ export * from "./lib.module";
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLHdDQUF3QyxDQUFDO0FBQ3ZELGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLHNDQUFzQyxDQUFDO0FBQ3JELGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBFeHBvcnQgdW5pdCBvZiB0aGlzIHBhY2thZ2VcbiAqL1xuZXhwb3J0ICogZnJvbSBcIi4vZW51bXMvY29sbGVjdGluZy1zdHJhdGVnaWVzLmVudW1cIjtcbmV4cG9ydCAqIGZyb20gXCIuL2VudW1zL3ByZWxvYWRpbmctc3RyYXRlZ2llcy5lbnVtXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9pbnRlcmNlcHRvcnMvdHJhbnNsYXRpb24uaW50ZXJjZXB0b3JcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3BpcGVzL3RyYW5zbGF0aW9uLnBpcGVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3NlcnZpY2VzL3RyYW5zbGF0aW9uLWh0dHAuc2VyaXZjZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc2VydmljZXMvdHJhbnNsYXRpb24tc3RvcmUuc2VydmljZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc2VydmljZXMvdHJhbnNsYXRpb24uc2VydmljZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vdG9rZW5zL2NvbmZpZy50b2tlblwiO1xuZXhwb3J0ICogZnJvbSBcIi4vdG9rZW5zL3Njb3BlLnRva2VuXCI7XG5leHBvcnQgKiBmcm9tIFwiLi90b2tlbnMvcHJlbG9hZC50b2tlblwiO1xuZXhwb3J0ICogZnJvbSBcIi4vdHlwZXMvY29uZmlnLnR5cGVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3Byb3ZpZGVycy9zY29wZS5wcm92aWRlclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vcHJvdmlkZXJzL3ByZWxvYWQucHJvdmlkZXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3Byb3ZpZGVycy9jb25maWcucHJvdmlkZXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3Byb3ZpZGVycy9pbnRlcmNlcHRvci5wcm92aWRlclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vcGlwZS5tb2R1bGVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi5tb2R1bGVcIjtcbiJdfQ==
@@ -0,0 +1,47 @@
1
+ import { mergeHttpHeaders } from "@ogs-gmbh/ngx-http";
2
+ import { HttpHeaders } from "@angular/common/http";
3
+ import { Injectable, inject } from "@angular/core";
4
+ import { retry, timeout } from "rxjs";
5
+ import { TRANSLATION_CONFIG_TOKEN } from "../tokens/config.token";
6
+ import { TRANSLATION_HTTP_CONFIG, TRANSLATION_HTTP_OPTIONS } from "../tokens/http.token";
7
+ import * as i0 from "@angular/core";
8
+ export class TranslationHttpSerivce {
9
+ _translationHttpConfig = inject(TRANSLATION_HTTP_CONFIG);
10
+ _translationConfig = inject(TRANSLATION_CONFIG_TOKEN, { optional: true });
11
+ _translationHttpOptions = inject(TRANSLATION_HTTP_OPTIONS);
12
+ getWithRef$(httpClientRef, scopeName, httpOptions) {
13
+ let path = this._translationHttpConfig;
14
+ if (typeof scopeName === "string" || scopeName === null) {
15
+ if (scopeName !== null)
16
+ path += `?scope=${encodeURIComponent(scopeName)}`;
17
+ }
18
+ else {
19
+ const urlSearchParams = new URLSearchParams();
20
+ scopeName.forEach((scopeNameItem) => {
21
+ if (scopeNameItem === null)
22
+ return;
23
+ urlSearchParams.append("scope", encodeURIComponent(scopeNameItem));
24
+ });
25
+ path += `?${urlSearchParams.toString()}`;
26
+ }
27
+ let headers = new HttpHeaders();
28
+ if (this._translationHttpOptions.headers !== undefined)
29
+ headers = mergeHttpHeaders(headers, this._translationHttpOptions.headers);
30
+ if (httpOptions?.headers !== undefined)
31
+ headers = mergeHttpHeaders(headers, httpOptions.headers);
32
+ return httpClientRef.get(path, {
33
+ responseType: "json",
34
+ observe: "body",
35
+ headers
36
+ }).pipe(timeout(this._translationConfig?.timeout ?? 3000), retry(0));
37
+ }
38
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TranslationHttpSerivce, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
39
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TranslationHttpSerivce, providedIn: "root" });
40
+ }
41
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TranslationHttpSerivce, decorators: [{
42
+ type: Injectable,
43
+ args: [{
44
+ providedIn: "root"
45
+ }]
46
+ }] });
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRpb24taHR0cC5zZXJpdmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3NlcnZpY2VzL3RyYW5zbGF0aW9uLWh0dHAuc2VyaXZjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWtDLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDdEYsT0FBTyxFQUFjLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBYyxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRWxELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDOztBQUt6RixNQUFNLE9BQU8sc0JBQXNCO0lBQ2hCLHNCQUFzQixHQUFXLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0lBRWpFLGtCQUFrQixHQUFtQyxNQUFNLENBQUMsd0JBQXdCLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUUxRyx1QkFBdUIsR0FBaUQsTUFBTSxDQUFDLHdCQUF3QixDQUFDLENBQUM7SUFFbkgsV0FBVyxDQUFJLGFBQW1DLEVBQUUsU0FBdUQsRUFBRSxXQUEwRDtRQUM1SyxJQUFJLElBQUksR0FBVyxJQUFJLENBQUMsc0JBQXNCLENBQUM7UUFFL0MsSUFBSSxPQUFPLFNBQVMsS0FBSyxRQUFRLElBQUksU0FBUyxLQUFLLElBQUksRUFBRSxDQUFDO1lBQ3hELElBQUksU0FBUyxLQUFLLElBQUk7Z0JBQ3BCLElBQUksSUFBSSxVQUFXLGtCQUFrQixDQUFDLFNBQVMsQ0FBRSxFQUFFLENBQUM7UUFDeEQsQ0FBQzthQUFNLENBQUM7WUFDTixNQUFNLGVBQWUsR0FBb0IsSUFBSSxlQUFlLEVBQUUsQ0FBQztZQUUvRCxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsYUFBNEIsRUFBUSxFQUFFO2dCQUN2RCxJQUFJLGFBQWEsS0FBSyxJQUFJO29CQUFFLE9BQU87Z0JBRW5DLGVBQWUsQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLGtCQUFrQixDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7WUFDckUsQ0FBQyxDQUFDLENBQUM7WUFDSCxJQUFJLElBQUksSUFBSyxlQUFlLENBQUMsUUFBUSxFQUFHLEVBQUUsQ0FBQztRQUM3QyxDQUFDO1FBRUQsSUFBSSxPQUFPLEdBQWdCLElBQUksV0FBVyxFQUFFLENBQUM7UUFFN0MsSUFBSSxJQUFJLENBQUMsdUJBQXVCLENBQUMsT0FBTyxLQUFLLFNBQVM7WUFDcEQsT0FBTyxHQUFHLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsdUJBQXVCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFNUUsSUFBSSxXQUFXLEVBQUUsT0FBTyxLQUFLLFNBQVM7WUFDcEMsT0FBTyxHQUFHLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFM0QsT0FBTyxhQUFhLENBQUMsR0FBRyxDQUFJLElBQUksRUFBRTtZQUNoQyxZQUFZLEVBQUUsTUFBTTtZQUNwQixPQUFPLEVBQUUsTUFBTTtZQUNmLE9BQU87U0FDUixDQUFDLENBQUMsSUFBSSxDQUNMLE9BQU8sQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsT0FBTyxJQUFJLElBQUksQ0FBQyxFQUNqRCxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQ1QsQ0FBQztJQUNKLENBQUM7d0dBeENVLHNCQUFzQjs0R0FBdEIsc0JBQXNCLGNBRnJCLE1BQU07OzRGQUVQLHNCQUFzQjtrQkFIbEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwSGVhZGVyc09wdGlvbiwgSHR0cE9wdGlvbnMsIG1lcmdlSHR0cEhlYWRlcnMgfSBmcm9tIFwiQG9ncy1nbWJoL25neC1odHRwXCI7XG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwSGVhZGVycyB9IGZyb20gXCJAYW5ndWxhci9jb21tb24vaHR0cFwiO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSwgaW5qZWN0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IE9ic2VydmFibGUsIHJldHJ5LCB0aW1lb3V0IH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IFNwZWNpZmljVHJhbnNsYXRlQ29uZmlnIH0gZnJvbSBcIi4uL3R5cGVzL2NvbmZpZy50eXBlXCI7XG5pbXBvcnQgeyBUUkFOU0xBVElPTl9DT05GSUdfVE9LRU4gfSBmcm9tIFwiLi4vdG9rZW5zL2NvbmZpZy50b2tlblwiO1xuaW1wb3J0IHsgVFJBTlNMQVRJT05fSFRUUF9DT05GSUcsIFRSQU5TTEFUSU9OX0hUVFBfT1BUSU9OUyB9IGZyb20gXCIuLi90b2tlbnMvaHR0cC50b2tlblwiO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46IFwicm9vdFwiXG59KVxuZXhwb3J0IGNsYXNzIFRyYW5zbGF0aW9uSHR0cFNlcml2Y2Uge1xuICBwcml2YXRlIHJlYWRvbmx5IF90cmFuc2xhdGlvbkh0dHBDb25maWc6IHN0cmluZyA9IGluamVjdChUUkFOU0xBVElPTl9IVFRQX0NPTkZJRyk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfdHJhbnNsYXRpb25Db25maWc6IFNwZWNpZmljVHJhbnNsYXRlQ29uZmlnIHwgbnVsbCA9IGluamVjdChUUkFOU0xBVElPTl9DT05GSUdfVE9LRU4sIHsgb3B0aW9uYWw6IHRydWUgfSk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfdHJhbnNsYXRpb25IdHRwT3B0aW9uczogSHR0cE9wdGlvbnM8bmV2ZXIsIEh0dHBIZWFkZXJzT3B0aW9uLCBuZXZlcj4gPSBpbmplY3QoVFJBTlNMQVRJT05fSFRUUF9PUFRJT05TKTtcblxuICBwdWJsaWMgZ2V0V2l0aFJlZiQ8VD4oaHR0cENsaWVudFJlZjogUmVhZG9ubHk8SHR0cENsaWVudD4sIHNjb3BlTmFtZTogUmVhZG9ubHlBcnJheTxzdHJpbmcgfCBudWxsPiB8IHN0cmluZyB8IG51bGwsIGh0dHBPcHRpb25zPzogSHR0cE9wdGlvbnM8bmV2ZXIsIEh0dHBIZWFkZXJzT3B0aW9uLCBuZXZlcj4pOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICBsZXQgcGF0aDogc3RyaW5nID0gdGhpcy5fdHJhbnNsYXRpb25IdHRwQ29uZmlnO1xuXG4gICAgaWYgKHR5cGVvZiBzY29wZU5hbWUgPT09IFwic3RyaW5nXCIgfHwgc2NvcGVOYW1lID09PSBudWxsKSB7XG4gICAgICBpZiAoc2NvcGVOYW1lICE9PSBudWxsKVxuICAgICAgICBwYXRoICs9IGA/c2NvcGU9JHsgZW5jb2RlVVJJQ29tcG9uZW50KHNjb3BlTmFtZSkgfWA7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHVybFNlYXJjaFBhcmFtczogVVJMU2VhcmNoUGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcygpO1xuXG4gICAgICBzY29wZU5hbWUuZm9yRWFjaCgoc2NvcGVOYW1lSXRlbTogc3RyaW5nIHwgbnVsbCk6IHZvaWQgPT4ge1xuICAgICAgICBpZiAoc2NvcGVOYW1lSXRlbSA9PT0gbnVsbCkgcmV0dXJuO1xuXG4gICAgICAgIHVybFNlYXJjaFBhcmFtcy5hcHBlbmQoXCJzY29wZVwiLCBlbmNvZGVVUklDb21wb25lbnQoc2NvcGVOYW1lSXRlbSkpO1xuICAgICAgfSk7XG4gICAgICBwYXRoICs9IGA/JHsgdXJsU2VhcmNoUGFyYW1zLnRvU3RyaW5nKCkgfWA7XG4gICAgfVxuXG4gICAgbGV0IGhlYWRlcnM6IEh0dHBIZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCk7XG5cbiAgICBpZiAodGhpcy5fdHJhbnNsYXRpb25IdHRwT3B0aW9ucy5oZWFkZXJzICE9PSB1bmRlZmluZWQpXG4gICAgICBoZWFkZXJzID0gbWVyZ2VIdHRwSGVhZGVycyhoZWFkZXJzLCB0aGlzLl90cmFuc2xhdGlvbkh0dHBPcHRpb25zLmhlYWRlcnMpO1xuXG4gICAgaWYgKGh0dHBPcHRpb25zPy5oZWFkZXJzICE9PSB1bmRlZmluZWQpXG4gICAgICBoZWFkZXJzID0gbWVyZ2VIdHRwSGVhZGVycyhoZWFkZXJzLCBodHRwT3B0aW9ucy5oZWFkZXJzKTtcblxuICAgIHJldHVybiBodHRwQ2xpZW50UmVmLmdldDxUPihwYXRoLCB7XG4gICAgICByZXNwb25zZVR5cGU6IFwianNvblwiLFxuICAgICAgb2JzZXJ2ZTogXCJib2R5XCIsXG4gICAgICBoZWFkZXJzXG4gICAgfSkucGlwZShcbiAgICAgIHRpbWVvdXQodGhpcy5fdHJhbnNsYXRpb25Db25maWc/LnRpbWVvdXQgPz8gMzAwMCksXG4gICAgICByZXRyeSgwKVxuICAgICk7XG4gIH1cbn1cbiJdfQ==