@siemens/element-translate-ng 47.6.0 → 47.7.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 (32) hide show
  1. package/README.md +5 -2
  2. package/angular-localize/index.d.ts +1 -1
  3. package/angular-localize/si-translate-ng-localize.module.d.ts +1 -2
  4. package/angular-localize/si-translate-ng-localize.provider.d.ts +1 -1
  5. package/fesm2022/siemens-element-translate-ng-angular-localize.mjs +10 -22
  6. package/fesm2022/siemens-element-translate-ng-angular-localize.mjs.map +1 -1
  7. package/fesm2022/siemens-element-translate-ng-ngx-translate.mjs +10 -18
  8. package/fesm2022/siemens-element-translate-ng-ngx-translate.mjs.map +1 -1
  9. package/fesm2022/siemens-element-translate-ng-translate-types.mjs +1 -1
  10. package/fesm2022/siemens-element-translate-ng-translate-types.mjs.map +1 -1
  11. package/fesm2022/siemens-element-translate-ng-translate.mjs +109 -96
  12. package/fesm2022/siemens-element-translate-ng-translate.mjs.map +1 -1
  13. package/fesm2022/siemens-element-translate-ng.mjs +1 -1
  14. package/fesm2022/siemens-element-translate-ng.mjs.map +1 -1
  15. package/localize-types/index.d.ts +1 -1
  16. package/ngx-translate/index.d.ts +1 -1
  17. package/ngx-translate/si-translate-ngxt.module.d.ts +1 -2
  18. package/ngx-translate/si-translate-ngxt.provider.d.ts +1 -1
  19. package/ngx-translate/si-translate-ngxt.service-builder.d.ts +1 -1
  20. package/package.json +1 -1
  21. package/public-api.d.ts +1 -1
  22. package/translate/index.d.ts +2 -1
  23. package/translate/si-localize.d.ts +1 -3
  24. package/translate/si-translatable.model.d.ts +1 -1
  25. package/translate/si-translate.inject.d.ts +2 -0
  26. package/translate/si-translate.module.d.ts +5 -3
  27. package/translate/si-translate.pipe.d.ts +2 -2
  28. package/translate/si-translate.service-builder.d.ts +1 -1
  29. package/translate/si-translate.service.d.ts +2 -0
  30. package/translate/testing/si-translate.mock-service-builder.factory.d.ts +1 -1
  31. package/translate-types/global.types.d.ts +1 -1
  32. package/translate-types/index.d.ts +1 -1
package/README.md CHANGED
@@ -62,6 +62,9 @@ You can set a seed for running the tests in a specific using an environment vari
62
62
 
63
63
  ## License
64
64
 
65
- Code and documentation copyright 2024 Siemens AG.
65
+ The following applies for code and documentation of the git repository,
66
+ unless explicitly mentioned.
66
67
 
67
- See [LICENSE.md](https://github.com/siemens/element/blob/main/LICENSE.md).
68
+ Copyright (c) Siemens 2016 - 2025
69
+
70
+ MIT, see [LICENSE.md](LICENSE.md).
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright Siemens 2016 - 2025.
2
+ * Copyright (c) Siemens 2016 - 2025
3
3
  * SPDX-License-Identifier: MIT
4
4
  */
5
5
  export * from './si-translate-ng-localize.module';
@@ -1,11 +1,10 @@
1
1
  import * as i0 from "@angular/core";
2
- import * as i1 from "@siemens/element-translate-ng/translate";
3
2
  /**
4
3
  * This module configures Element to work with \@angular/localize.
5
4
  * It should only be imported once in an application's root module (typically `app.module.ts`)
6
5
  */
7
6
  export declare class SiTranslateNgLocalizeModule {
8
7
  static ɵfac: i0.ɵɵFactoryDeclaration<SiTranslateNgLocalizeModule, never>;
9
- static ɵmod: i0.ɵɵNgModuleDeclaration<SiTranslateNgLocalizeModule, never, [typeof i1.SiTranslateModule], never>;
8
+ static ɵmod: i0.ɵɵNgModuleDeclaration<SiTranslateNgLocalizeModule, never, never, never>;
10
9
  static ɵinj: i0.ɵɵInjectorDeclaration<SiTranslateNgLocalizeModule>;
11
10
  }
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright Siemens 2016 - 2025.
2
+ * Copyright (c) Siemens 2016 - 2025
3
3
  * SPDX-License-Identifier: MIT
4
4
  */
5
5
  import { EnvironmentProviders, Provider } from '@angular/core';
@@ -1,9 +1,9 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Injectable, inject, NgModule, importProvidersFrom } from '@angular/core';
3
- import { SiNoTranslateService, SiTranslateServiceBuilder, SiTranslateModule } from '@siemens/element-translate-ng/translate';
2
+ import { Injectable, inject, NgModule } from '@angular/core';
3
+ import { SiNoTranslateService, SiTranslateServiceBuilder } from '@siemens/element-translate-ng/translate';
4
4
 
5
5
  /**
6
- * Copyright Siemens 2016 - 2025.
6
+ * Copyright (c) Siemens 2016 - 2025
7
7
  * SPDX-License-Identifier: MIT
8
8
  */
9
9
  class SiTranslateNgLocalizeService extends SiNoTranslateService {
@@ -17,7 +17,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImpor
17
17
  }] });
18
18
 
19
19
  /**
20
- * Copyright Siemens 2016 - 2025.
20
+ * Copyright (c) Siemens 2016 - 2025
21
21
  * SPDX-License-Identifier: MIT
22
22
  */
23
23
  /**
@@ -37,7 +37,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImpor
37
37
  }] });
38
38
 
39
39
  /**
40
- * Copyright Siemens 2016 - 2025.
40
+ * Copyright (c) Siemens 2016 - 2025
41
41
  * SPDX-License-Identifier: MIT
42
42
  */
43
43
  /**
@@ -46,38 +46,26 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImpor
46
46
  */
47
47
  class SiTranslateNgLocalizeModule {
48
48
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiTranslateNgLocalizeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
49
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.0.6", ngImport: i0, type: SiTranslateNgLocalizeModule, imports: [SiTranslateModule] });
50
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiTranslateNgLocalizeModule, providers: [
51
- { provide: SiTranslateServiceBuilder, useClass: SiTranslateNgLocalizeServiceBuilder }
52
- ], imports: [SiTranslateModule] });
49
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.0.6", ngImport: i0, type: SiTranslateNgLocalizeModule });
50
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiTranslateNgLocalizeModule, providers: [{ provide: SiTranslateServiceBuilder, useClass: SiTranslateNgLocalizeServiceBuilder }] });
53
51
  }
54
52
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiTranslateNgLocalizeModule, decorators: [{
55
53
  type: NgModule,
56
54
  args: [{
57
- providers: [
58
- { provide: SiTranslateServiceBuilder, useClass: SiTranslateNgLocalizeServiceBuilder }
59
- ],
60
- imports: [SiTranslateModule]
55
+ providers: [{ provide: SiTranslateServiceBuilder, useClass: SiTranslateNgLocalizeServiceBuilder }]
61
56
  }]
62
57
  }] });
63
58
 
64
- /**
65
- * Copyright Siemens 2016 - 2025.
66
- * SPDX-License-Identifier: MIT
67
- */
68
59
  /**
69
60
  * This provider configures Element to work with \@angular/localize.
70
61
  * It should only be imported once in an application's configuration (typically `app.config.ts`)
71
62
  */
72
63
  const provideNgLocalizeForElement = () => {
73
- return [
74
- { provide: SiTranslateServiceBuilder, useClass: SiTranslateNgLocalizeServiceBuilder },
75
- importProvidersFrom(SiTranslateModule)
76
- ];
64
+ return [{ provide: SiTranslateServiceBuilder, useClass: SiTranslateNgLocalizeServiceBuilder }];
77
65
  };
78
66
 
79
67
  /**
80
- * Copyright Siemens 2016 - 2025.
68
+ * Copyright (c) Siemens 2016 - 2025
81
69
  * SPDX-License-Identifier: MIT
82
70
  */
83
71
 
@@ -1 +1 @@
1
- {"version":3,"file":"siemens-element-translate-ng-angular-localize.mjs","sources":["../../../../projects/element-translate-ng/angular-localize/si-translate-ng-localize.service.ts","../../../../projects/element-translate-ng/angular-localize/si-translate-ng-localize-service-builder.service.ts","../../../../projects/element-translate-ng/angular-localize/si-translate-ng-localize.module.ts","../../../../projects/element-translate-ng/angular-localize/si-translate-ng-localize.provider.ts","../../../../projects/element-translate-ng/angular-localize/index.ts","../../../../projects/element-translate-ng/angular-localize/siemens-element-translate-ng-angular-localize.ts"],"sourcesContent":["/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nimport { Injectable } from '@angular/core';\nimport { SiNoTranslateService } from '@siemens/element-translate-ng/translate';\n\n@Injectable({ providedIn: 'root' })\nexport class SiTranslateNgLocalizeService extends SiNoTranslateService {\n override prevent$LocalizeInit = true;\n}\n","/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nimport { inject, Injectable } from '@angular/core';\nimport {\n SiTranslateService,\n SiTranslateServiceBuilder\n} from '@siemens/element-translate-ng/translate';\n\nimport { SiTranslateNgLocalizeService } from './si-translate-ng-localize.service';\n\n/**\n * Similar to the no-translate builder, but this one is not initializing the Element version of $localize,\n * as it will be provided by angular.\n */\n@Injectable()\nexport class SiTranslateNgLocalizeServiceBuilder extends SiTranslateServiceBuilder {\n private siTranslateNgService = inject(SiTranslateNgLocalizeService);\n\n override buildService(): SiTranslateService {\n return this.siTranslateNgService;\n }\n}\n","/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nimport { NgModule } from '@angular/core';\nimport {\n SiTranslateModule,\n SiTranslateServiceBuilder\n} from '@siemens/element-translate-ng/translate';\n\nimport { SiTranslateNgLocalizeServiceBuilder } from './si-translate-ng-localize-service-builder.service';\n\n/**\n * This module configures Element to work with \\@angular/localize.\n * It should only be imported once in an application's root module (typically `app.module.ts`)\n */\n@NgModule({\n providers: [\n { provide: SiTranslateServiceBuilder, useClass: SiTranslateNgLocalizeServiceBuilder }\n ],\n imports: [SiTranslateModule]\n})\nexport class SiTranslateNgLocalizeModule {}\n","/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nimport { EnvironmentProviders, importProvidersFrom, Provider } from '@angular/core';\nimport {\n SiTranslateModule,\n SiTranslateServiceBuilder\n} from '@siemens/element-translate-ng/translate';\n\nimport { SiTranslateNgLocalizeServiceBuilder } from './si-translate-ng-localize-service-builder.service';\n\n/**\n * This provider configures Element to work with \\@angular/localize.\n * It should only be imported once in an application's configuration (typically `app.config.ts`)\n */\nexport const provideNgLocalizeForElement = (): (EnvironmentProviders | Provider)[] => {\n return [\n { provide: SiTranslateServiceBuilder, useClass: SiTranslateNgLocalizeServiceBuilder },\n importProvidersFrom(SiTranslateModule)\n ];\n};\n","/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-translate-ng-localize.module';\nexport * from './si-translate-ng-localize.provider';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;AAAA;;;AAGG;AAKG,MAAO,4BAA6B,SAAQ,oBAAoB,CAAA;IAC3D,oBAAoB,GAAG,IAAI;uGADzB,4BAA4B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAA5B,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,4BAA4B,cADf,MAAM,EAAA,CAAA;;2FACnB,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBADxC,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;ACPlC;;;AAGG;AASH;;;AAGG;AAEG,MAAO,mCAAoC,SAAQ,yBAAyB,CAAA;AACxE,IAAA,oBAAoB,GAAG,MAAM,CAAC,4BAA4B,CAAC;IAE1D,YAAY,GAAA;QACnB,OAAO,IAAI,CAAC,oBAAoB;;uGAJvB,mCAAmC,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;2GAAnC,mCAAmC,EAAA,CAAA;;2FAAnC,mCAAmC,EAAA,UAAA,EAAA,CAAA;kBAD/C;;;AChBD;;;AAGG;AASH;;;AAGG;MAOU,2BAA2B,CAAA;uGAA3B,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;AAA3B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,2BAA2B,YAF5B,iBAAiB,CAAA,EAAA,CAAA;AAEhB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,2BAA2B,EAL3B,SAAA,EAAA;AACT,YAAA,EAAE,OAAO,EAAE,yBAAyB,EAAE,QAAQ,EAAE,mCAAmC;AACpF,SAAA,EAAA,OAAA,EAAA,CACS,iBAAiB,CAAA,EAAA,CAAA;;2FAEhB,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBANvC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,SAAS,EAAE;AACT,wBAAA,EAAE,OAAO,EAAE,yBAAyB,EAAE,QAAQ,EAAE,mCAAmC;AACpF,qBAAA;oBACD,OAAO,EAAE,CAAC,iBAAiB;AAC5B,iBAAA;;;ACrBD;;;AAGG;AASH;;;AAGG;AACI,MAAM,2BAA2B,GAAG,MAA0C;IACnF,OAAO;AACL,QAAA,EAAE,OAAO,EAAE,yBAAyB,EAAE,QAAQ,EAAE,mCAAmC,EAAE;QACrF,mBAAmB,CAAC,iBAAiB;KACtC;AACH;;ACrBA;;;AAGG;;ACHH;;AAEG;;;;"}
1
+ {"version":3,"file":"siemens-element-translate-ng-angular-localize.mjs","sources":["../../../../projects/element-translate-ng/angular-localize/si-translate-ng-localize.service.ts","../../../../projects/element-translate-ng/angular-localize/si-translate-ng-localize-service-builder.service.ts","../../../../projects/element-translate-ng/angular-localize/si-translate-ng-localize.module.ts","../../../../projects/element-translate-ng/angular-localize/si-translate-ng-localize.provider.ts","../../../../projects/element-translate-ng/angular-localize/index.ts","../../../../projects/element-translate-ng/angular-localize/siemens-element-translate-ng-angular-localize.ts"],"sourcesContent":["/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport { Injectable } from '@angular/core';\nimport { SiNoTranslateService } from '@siemens/element-translate-ng/translate';\n\n@Injectable({ providedIn: 'root' })\nexport class SiTranslateNgLocalizeService extends SiNoTranslateService {\n override prevent$LocalizeInit = true;\n}\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport { inject, Injectable } from '@angular/core';\nimport {\n SiTranslateService,\n SiTranslateServiceBuilder\n} from '@siemens/element-translate-ng/translate';\n\nimport { SiTranslateNgLocalizeService } from './si-translate-ng-localize.service';\n\n/**\n * Similar to the no-translate builder, but this one is not initializing the Element version of $localize,\n * as it will be provided by angular.\n */\n@Injectable()\nexport class SiTranslateNgLocalizeServiceBuilder extends SiTranslateServiceBuilder {\n private siTranslateNgService = inject(SiTranslateNgLocalizeService);\n\n override buildService(): SiTranslateService {\n return this.siTranslateNgService;\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport { NgModule } from '@angular/core';\nimport { SiTranslateServiceBuilder } from '@siemens/element-translate-ng/translate';\n\nimport { SiTranslateNgLocalizeServiceBuilder } from './si-translate-ng-localize-service-builder.service';\n\n/**\n * This module configures Element to work with \\@angular/localize.\n * It should only be imported once in an application's root module (typically `app.module.ts`)\n */\n@NgModule({\n providers: [{ provide: SiTranslateServiceBuilder, useClass: SiTranslateNgLocalizeServiceBuilder }]\n})\nexport class SiTranslateNgLocalizeModule {}\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport { EnvironmentProviders, Provider } from '@angular/core';\nimport { SiTranslateServiceBuilder } from '@siemens/element-translate-ng/translate';\n\nimport { SiTranslateNgLocalizeServiceBuilder } from './si-translate-ng-localize-service-builder.service';\n\n/**\n * This provider configures Element to work with \\@angular/localize.\n * It should only be imported once in an application's configuration (typically `app.config.ts`)\n */\nexport const provideNgLocalizeForElement = (): (EnvironmentProviders | Provider)[] => {\n return [{ provide: SiTranslateServiceBuilder, useClass: SiTranslateNgLocalizeServiceBuilder }];\n};\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-translate-ng-localize.module';\nexport * from './si-translate-ng-localize.provider';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;AAAA;;;AAGG;AAKG,MAAO,4BAA6B,SAAQ,oBAAoB,CAAA;IAC3D,oBAAoB,GAAG,IAAI;uGADzB,4BAA4B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAA5B,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,4BAA4B,cADf,MAAM,EAAA,CAAA;;2FACnB,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBADxC,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;ACPlC;;;AAGG;AASH;;;AAGG;AAEG,MAAO,mCAAoC,SAAQ,yBAAyB,CAAA;AACxE,IAAA,oBAAoB,GAAG,MAAM,CAAC,4BAA4B,CAAC;IAE1D,YAAY,GAAA;QACnB,OAAO,IAAI,CAAC,oBAAoB;;uGAJvB,mCAAmC,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;2GAAnC,mCAAmC,EAAA,CAAA;;2FAAnC,mCAAmC,EAAA,UAAA,EAAA,CAAA;kBAD/C;;;AChBD;;;AAGG;AAMH;;;AAGG;MAIU,2BAA2B,CAAA;uGAA3B,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;wGAA3B,2BAA2B,EAAA,CAAA;wGAA3B,2BAA2B,EAAA,SAAA,EAF3B,CAAC,EAAE,OAAO,EAAE,yBAAyB,EAAE,QAAQ,EAAE,mCAAmC,EAAE,CAAC,EAAA,CAAA;;2FAEvF,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAHvC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,yBAAyB,EAAE,QAAQ,EAAE,mCAAmC,EAAE;AAClG,iBAAA;;;ACND;;;AAGG;AACI,MAAM,2BAA2B,GAAG,MAA0C;IACnF,OAAO,CAAC,EAAE,OAAO,EAAE,yBAAyB,EAAE,QAAQ,EAAE,mCAAmC,EAAE,CAAC;AAChG;;ACfA;;;AAGG;;ACHH;;AAEG;;;;"}
@@ -1,13 +1,13 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Injectable, NgModule, importProvidersFrom } from '@angular/core';
3
- import { SiTranslateService, SiTranslateServiceBuilder, SiTranslateModule } from '@siemens/element-translate-ng/translate';
2
+ import { Injectable, NgModule } from '@angular/core';
3
+ import { SiTranslateService, SiTranslateServiceBuilder } from '@siemens/element-translate-ng/translate';
4
4
  import * as i1 from '@ngx-translate/core';
5
5
  import { TranslateService } from '@ngx-translate/core';
6
6
  import { merge, of } from 'rxjs';
7
7
  import { map } from 'rxjs/operators';
8
8
 
9
9
  /**
10
- * Copyright Siemens 2016 - 2025.
10
+ * Copyright (c) Siemens 2016 - 2025
11
11
  * SPDX-License-Identifier: MIT
12
12
  */
13
13
  /**
@@ -80,7 +80,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImpor
80
80
  }], ctorParameters: () => [{ type: i1.TranslateService }] });
81
81
 
82
82
  /**
83
- * Copyright Siemens 2016 - 2025.
83
+ * Copyright (c) Siemens 2016 - 2025
84
84
  * SPDX-License-Identifier: MIT
85
85
  */
86
86
  /**
@@ -109,7 +109,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImpor
109
109
  }] });
110
110
 
111
111
  /**
112
- * Copyright Siemens 2016 - 2025.
112
+ * Copyright (c) Siemens 2016 - 2025
113
113
  * SPDX-License-Identifier: MIT
114
114
  */
115
115
  /**
@@ -118,34 +118,26 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImpor
118
118
  */
119
119
  class SiTranslateNgxTModule {
120
120
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiTranslateNgxTModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
121
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.0.6", ngImport: i0, type: SiTranslateNgxTModule, imports: [SiTranslateModule] });
122
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiTranslateNgxTModule, providers: [{ provide: SiTranslateServiceBuilder, useClass: SiTranslateNgxTServiceBuilder }], imports: [SiTranslateModule] });
121
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.0.6", ngImport: i0, type: SiTranslateNgxTModule });
122
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiTranslateNgxTModule, providers: [{ provide: SiTranslateServiceBuilder, useClass: SiTranslateNgxTServiceBuilder }] });
123
123
  }
124
124
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiTranslateNgxTModule, decorators: [{
125
125
  type: NgModule,
126
126
  args: [{
127
- providers: [{ provide: SiTranslateServiceBuilder, useClass: SiTranslateNgxTServiceBuilder }],
128
- imports: [SiTranslateModule]
127
+ providers: [{ provide: SiTranslateServiceBuilder, useClass: SiTranslateNgxTServiceBuilder }]
129
128
  }]
130
129
  }] });
131
130
 
132
- /**
133
- * Copyright Siemens 2016 - 2025.
134
- * SPDX-License-Identifier: MIT
135
- */
136
131
  /**
137
132
  * This provider configures Element to use ngx-translate for translating {@link TranslatableString}
138
133
  * It should only be imported once in an application's configuration (typically `app.config.ts`)
139
134
  */
140
135
  const provideNgxTranslateForElement = () => {
141
- return [
142
- { provide: SiTranslateServiceBuilder, useClass: SiTranslateNgxTServiceBuilder },
143
- importProvidersFrom(SiTranslateModule)
144
- ];
136
+ return [{ provide: SiTranslateServiceBuilder, useClass: SiTranslateNgxTServiceBuilder }];
145
137
  };
146
138
 
147
139
  /**
148
- * Copyright Siemens 2016 - 2025.
140
+ * Copyright (c) Siemens 2016 - 2025
149
141
  * SPDX-License-Identifier: MIT
150
142
  */
151
143
 
@@ -1 +1 @@
1
- {"version":3,"file":"siemens-element-translate-ng-ngx-translate.mjs","sources":["../../../../projects/element-translate-ng/ngx-translate/si-translate-ngxt.service.ts","../../../../projects/element-translate-ng/ngx-translate/si-translate-ngxt.service-builder.ts","../../../../projects/element-translate-ng/ngx-translate/si-translate-ngxt.module.ts","../../../../projects/element-translate-ng/ngx-translate/si-translate-ngxt.provider.ts","../../../../projects/element-translate-ng/ngx-translate/index.ts","../../../../projects/element-translate-ng/ngx-translate/siemens-element-translate-ng-ngx-translate.ts"],"sourcesContent":["/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nimport { Injectable } from '@angular/core';\nimport {\n MissingTranslationHandler,\n MissingTranslationHandlerParams,\n TranslateService\n} from '@ngx-translate/core';\nimport { SiTranslateService, TranslationResult } from '@siemens/element-translate-ng/translate';\nimport { merge, Observable, of } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\n/**\n * {@link SiTranslateService} wrapper around ngx-translate\n *\n * @internal\n */\n@Injectable()\nexport class SiTranslateNgxTService extends SiTranslateService {\n private ngxTranslateService: TranslateService;\n private defaultTranslations: Record<string, string> = {};\n private originalMissingHandler: MissingTranslationHandler;\n\n constructor(ngxTranslateService: TranslateService) {\n super();\n this.ngxTranslateService = ngxTranslateService;\n this.originalMissingHandler = ngxTranslateService.missingTranslationHandler;\n ngxTranslateService.missingTranslationHandler = {\n handle: params => this.handleMissingTranslation(params)\n };\n\n this.translationChange$ = merge(\n this.ngxTranslateService.onTranslationChange,\n this.ngxTranslateService.onLangChange\n ).pipe(map(() => {}));\n }\n\n override get currentLanguage(): string {\n return this.ngxTranslateService.currentLang;\n }\n\n override get availableLanguages(): string[] {\n return this.ngxTranslateService.getLangs();\n }\n\n override set availableLanguages(languages: string[]) {\n this.ngxTranslateService.addLangs(languages);\n }\n\n override setCurrentLanguage(lang: string): Observable<void> {\n this.setDocumentLanguage(lang);\n return this.ngxTranslateService.use(lang).pipe(map(() => {}));\n }\n\n override getDefaultLanguage(): string {\n return this.ngxTranslateService.getDefaultLang();\n }\n\n override setDefaultLanguage(lang: string): void {\n this.setDocumentLanguage(lang);\n this.ngxTranslateService.setDefaultLang(lang);\n }\n\n override translate<T extends string | string[]>(\n keys: T,\n params?: Record<string, unknown>\n ): Observable<TranslationResult<T>> | TranslationResult<T> {\n if (Array.isArray(keys) && !keys.length) {\n return of({} as TranslationResult<T>);\n }\n return this.ngxTranslateService.stream(keys, params);\n }\n\n override translateAsync<T extends string | string[]>(\n keys: T,\n params?: Record<string, unknown>\n ): Observable<TranslationResult<T>> {\n if (Array.isArray(keys) && !keys.length) {\n return of({} as TranslationResult<T>);\n }\n return this.ngxTranslateService.stream(keys, params);\n }\n\n override translateSync<T extends string | string[]>(\n keys: T,\n params?: Record<string, unknown>\n ): TranslationResult<T> {\n if (Array.isArray(keys) && !keys.length) {\n return {} as TranslationResult<T>;\n }\n return this.ngxTranslateService.instant(keys, params);\n }\n\n override setTranslation(key: string, value: string): void {\n this.defaultTranslations[key] = value;\n }\n\n private handleMissingTranslation(params: MissingTranslationHandlerParams): string {\n return (\n params.translateService.parser.interpolate(\n this.defaultTranslations[params.key],\n params.interpolateParams\n ) ?? this.originalMissingHandler.handle(params)\n );\n }\n}\n","/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nimport { Injectable, Injector } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport {\n SiTranslateService,\n SiTranslateServiceBuilder\n} from '@siemens/element-translate-ng/translate';\n\nimport { SiTranslateNgxTService } from './si-translate-ngxt.service';\n\n/**\n * Builds {@link SiTranslateNgxTService} for each {@link TranslateService}.\n * The builder will create a new Service if a new {@link TranslateService} is found to support the isolated mode.\n *\n * @internal\n */\n@Injectable()\nexport class SiTranslateNgxTServiceBuilder extends SiTranslateServiceBuilder {\n private serviceCache = new Map<TranslateService, SiTranslateNgxTService>();\n\n buildService(injector: Injector): SiTranslateService {\n // Get instance of NGX Translate via injector instance of the current scope (see isolated mode)\n const ngxTranslateService = injector.get(TranslateService);\n\n let ngxTServiceWrapper = this.serviceCache.get(ngxTranslateService);\n if (!ngxTServiceWrapper) {\n ngxTServiceWrapper = new SiTranslateNgxTService(ngxTranslateService);\n this.serviceCache.set(ngxTranslateService, ngxTServiceWrapper);\n }\n\n return ngxTServiceWrapper;\n }\n}\n","/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nimport { NgModule } from '@angular/core';\nimport {\n SiTranslateModule,\n SiTranslateServiceBuilder\n} from '@siemens/element-translate-ng/translate';\n\nimport { SiTranslateNgxTServiceBuilder } from './si-translate-ngxt.service-builder';\n\n/**\n * This module configures Element to use ngx-translate for translating {@link TranslatableString}\n * It should only be imported once in an applications root module (typically `app.module.ts`)\n */\n@NgModule({\n providers: [{ provide: SiTranslateServiceBuilder, useClass: SiTranslateNgxTServiceBuilder }],\n imports: [SiTranslateModule]\n})\nexport class SiTranslateNgxTModule {}\n","/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nimport { EnvironmentProviders, importProvidersFrom, Provider } from '@angular/core';\nimport {\n SiTranslateModule,\n SiTranslateServiceBuilder\n} from '@siemens/element-translate-ng/translate';\n\nimport { SiTranslateNgxTServiceBuilder } from './si-translate-ngxt.service-builder';\n\n/**\n * This provider configures Element to use ngx-translate for translating {@link TranslatableString}\n * It should only be imported once in an application's configuration (typically `app.config.ts`)\n */\nexport const provideNgxTranslateForElement = (): (EnvironmentProviders | Provider)[] => {\n return [\n { provide: SiTranslateServiceBuilder, useClass: SiTranslateNgxTServiceBuilder },\n importProvidersFrom(SiTranslateModule)\n ];\n};\n","/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-translate-ngxt.module';\nexport * from './si-translate-ngxt.provider';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"siemens-element-translate-ng-ngx-translate.mjs","sources":["../../../../projects/element-translate-ng/ngx-translate/si-translate-ngxt.service.ts","../../../../projects/element-translate-ng/ngx-translate/si-translate-ngxt.service-builder.ts","../../../../projects/element-translate-ng/ngx-translate/si-translate-ngxt.module.ts","../../../../projects/element-translate-ng/ngx-translate/si-translate-ngxt.provider.ts","../../../../projects/element-translate-ng/ngx-translate/index.ts","../../../../projects/element-translate-ng/ngx-translate/siemens-element-translate-ng-ngx-translate.ts"],"sourcesContent":["/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport { Injectable } from '@angular/core';\nimport {\n MissingTranslationHandler,\n MissingTranslationHandlerParams,\n TranslateService\n} from '@ngx-translate/core';\nimport { SiTranslateService, TranslationResult } from '@siemens/element-translate-ng/translate';\nimport { merge, Observable, of } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\n/**\n * {@link SiTranslateService} wrapper around ngx-translate\n *\n * @internal\n */\n@Injectable()\nexport class SiTranslateNgxTService extends SiTranslateService {\n private ngxTranslateService: TranslateService;\n private defaultTranslations: Record<string, string> = {};\n private originalMissingHandler: MissingTranslationHandler;\n\n constructor(ngxTranslateService: TranslateService) {\n super();\n this.ngxTranslateService = ngxTranslateService;\n this.originalMissingHandler = ngxTranslateService.missingTranslationHandler;\n ngxTranslateService.missingTranslationHandler = {\n handle: params => this.handleMissingTranslation(params)\n };\n\n this.translationChange$ = merge(\n this.ngxTranslateService.onTranslationChange,\n this.ngxTranslateService.onLangChange\n ).pipe(map(() => {}));\n }\n\n override get currentLanguage(): string {\n return this.ngxTranslateService.currentLang;\n }\n\n override get availableLanguages(): string[] {\n return this.ngxTranslateService.getLangs();\n }\n\n override set availableLanguages(languages: string[]) {\n this.ngxTranslateService.addLangs(languages);\n }\n\n override setCurrentLanguage(lang: string): Observable<void> {\n this.setDocumentLanguage(lang);\n return this.ngxTranslateService.use(lang).pipe(map(() => {}));\n }\n\n override getDefaultLanguage(): string {\n return this.ngxTranslateService.getDefaultLang();\n }\n\n override setDefaultLanguage(lang: string): void {\n this.setDocumentLanguage(lang);\n this.ngxTranslateService.setDefaultLang(lang);\n }\n\n override translate<T extends string | string[]>(\n keys: T,\n params?: Record<string, unknown>\n ): Observable<TranslationResult<T>> | TranslationResult<T> {\n if (Array.isArray(keys) && !keys.length) {\n return of({} as TranslationResult<T>);\n }\n return this.ngxTranslateService.stream(keys, params);\n }\n\n override translateAsync<T extends string | string[]>(\n keys: T,\n params?: Record<string, unknown>\n ): Observable<TranslationResult<T>> {\n if (Array.isArray(keys) && !keys.length) {\n return of({} as TranslationResult<T>);\n }\n return this.ngxTranslateService.stream(keys, params);\n }\n\n override translateSync<T extends string | string[]>(\n keys: T,\n params?: Record<string, unknown>\n ): TranslationResult<T> {\n if (Array.isArray(keys) && !keys.length) {\n return {} as TranslationResult<T>;\n }\n return this.ngxTranslateService.instant(keys, params);\n }\n\n override setTranslation(key: string, value: string): void {\n this.defaultTranslations[key] = value;\n }\n\n private handleMissingTranslation(params: MissingTranslationHandlerParams): string {\n return (\n params.translateService.parser.interpolate(\n this.defaultTranslations[params.key],\n params.interpolateParams\n ) ?? this.originalMissingHandler.handle(params)\n );\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport { Injectable, Injector } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport {\n SiTranslateService,\n SiTranslateServiceBuilder\n} from '@siemens/element-translate-ng/translate';\n\nimport { SiTranslateNgxTService } from './si-translate-ngxt.service';\n\n/**\n * Builds {@link SiTranslateNgxTService} for each {@link TranslateService}.\n * The builder will create a new Service if a new {@link TranslateService} is found to support the isolated mode.\n *\n * @internal\n */\n@Injectable()\nexport class SiTranslateNgxTServiceBuilder extends SiTranslateServiceBuilder {\n private serviceCache = new Map<TranslateService, SiTranslateNgxTService>();\n\n buildService(injector: Injector): SiTranslateService {\n // Get instance of NGX Translate via injector instance of the current scope (see isolated mode)\n const ngxTranslateService = injector.get(TranslateService);\n\n let ngxTServiceWrapper = this.serviceCache.get(ngxTranslateService);\n if (!ngxTServiceWrapper) {\n ngxTServiceWrapper = new SiTranslateNgxTService(ngxTranslateService);\n this.serviceCache.set(ngxTranslateService, ngxTServiceWrapper);\n }\n\n return ngxTServiceWrapper;\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport { NgModule } from '@angular/core';\nimport { SiTranslateServiceBuilder } from '@siemens/element-translate-ng/translate';\n\nimport { SiTranslateNgxTServiceBuilder } from './si-translate-ngxt.service-builder';\n\n/**\n * This module configures Element to use ngx-translate for translating {@link TranslatableString}\n * It should only be imported once in an applications root module (typically `app.module.ts`)\n */\n@NgModule({\n providers: [{ provide: SiTranslateServiceBuilder, useClass: SiTranslateNgxTServiceBuilder }]\n})\nexport class SiTranslateNgxTModule {}\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport { EnvironmentProviders, Provider } from '@angular/core';\nimport { SiTranslateServiceBuilder } from '@siemens/element-translate-ng/translate';\n\nimport { SiTranslateNgxTServiceBuilder } from './si-translate-ngxt.service-builder';\n\n/**\n * This provider configures Element to use ngx-translate for translating {@link TranslatableString}\n * It should only be imported once in an application's configuration (typically `app.config.ts`)\n */\nexport const provideNgxTranslateForElement = (): (EnvironmentProviders | Provider)[] => {\n return [{ provide: SiTranslateServiceBuilder, useClass: SiTranslateNgxTServiceBuilder }];\n};\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-translate-ngxt.module';\nexport * from './si-translate-ngxt.provider';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright Siemens 2016 - 2025.
2
+ * Copyright (c) Siemens 2016 - 2025
3
3
  * SPDX-License-Identifier: MIT
4
4
  */
5
5
 
@@ -1 +1 @@
1
- {"version":3,"file":"siemens-element-translate-ng-translate-types.mjs","sources":["../../../../projects/element-translate-ng/translate-types/index.ts","../../../../projects/element-translate-ng/translate-types/siemens-element-translate-ng-translate-types.ts"],"sourcesContent":["/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nexport * from './global.types';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"AAAA;;;AAGG;;ACHH;;AAEG"}
1
+ {"version":3,"file":"siemens-element-translate-ng-translate-types.mjs","sources":["../../../../projects/element-translate-ng/translate-types/index.ts","../../../../projects/element-translate-ng/translate-types/siemens-element-translate-ng-translate-types.ts"],"sourcesContent":["/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nexport * from './global.types';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"AAAA;;;AAGG;;ACHH;;AAEG"}
@@ -1,32 +1,17 @@
1
1
  import * as i0 from '@angular/core';
2
- import { InjectionToken, inject, Injectable, ChangeDetectorRef, Pipe, Injector, NgModule } from '@angular/core';
2
+ import { InjectionToken, inject, Injectable, Injector, ChangeDetectorRef, Pipe, NgModule } from '@angular/core';
3
3
  import { NEVER, of } from 'rxjs';
4
4
  import { DOCUMENT } from '@angular/common';
5
5
  export * from '@siemens/element-translate-ng/translate-types';
6
6
 
7
7
  /**
8
- * Copyright Siemens 2016 - 2025.
8
+ * Copyright (c) Siemens 2016 - 2025
9
9
  * SPDX-License-Identifier: MIT
10
10
  */
11
11
  const SI_TRANSLATABLE_VALUES = new InjectionToken('si-element-translatable-values');
12
12
 
13
13
  /**
14
- * This var provides access to the global scope object based on the current runtime.
15
- * On Browser its is the window, on Node.js it is global.
16
- *
17
- * Whenever possible, inject(DOCUMENT) is preferred over this approach.
18
- */
19
- let globalScope;
20
- // we are either running Browser or on NodeJS
21
- if (typeof window !== 'undefined') {
22
- globalScope = window;
23
- }
24
- else if (typeof global !== 'undefined') {
25
- globalScope = global;
26
- }
27
-
28
- /**
29
- * Copyright Siemens 2016 - 2025.
14
+ * Copyright (c) Siemens 2016 - 2025
30
15
  * SPDX-License-Identifier: MIT
31
16
  */
32
17
  /**
@@ -41,6 +26,8 @@ const getBrowserLanguage = () => getBrowserCultureLanguage()?.split(/-|_/)[0];
41
26
  * Wrapper around an actual translation framework which is meant to be used internally by Element.
42
27
  * Applications must not use this service.
43
28
  *
29
+ * Use {@link injectSiTranslateService} to get an instance of the translation service.
30
+ *
44
31
  * @internal
45
32
  */
46
33
  class SiTranslateService {
@@ -66,7 +53,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImpor
66
53
  }] });
67
54
 
68
55
  /**
69
- * Copyright Siemens 2016 - 2025.
56
+ * Copyright (c) Siemens 2016 - 2025
70
57
  * SPDX-License-Identifier: MIT
71
58
  */
72
59
  const arrayToRecord = (keys) => keys.reduce((acc, cur) => {
@@ -125,60 +112,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImpor
125
112
  }] });
126
113
 
127
114
  /**
128
- * Copyright Siemens 2016 - 2025.
129
- * SPDX-License-Identifier: MIT
130
- */
131
- class SiTranslatableService {
132
- translatableValues;
133
- isNoTranslate;
134
- siTranslateService;
135
- constructor() {
136
- this.siTranslateService =
137
- inject(SiTranslateService, { optional: true }) ?? inject(SiNoTranslateService);
138
- const translateValues = inject(SI_TRANSLATABLE_VALUES, { optional: true });
139
- this.translatableValues = translateValues?.reduce((a, b) => ({ ...a, ...b })) ?? {};
140
- this.isNoTranslate = this.siTranslateService instanceof SiNoTranslateService;
141
- }
142
- resolveText(key, originalText) {
143
- if (this.siTranslateService.setTranslation) {
144
- this.siTranslateService.setTranslation(key, originalText);
145
- }
146
- return this.translatableValues[key] ?? (this.isNoTranslate ? originalText : key);
147
- }
148
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiTranslatableService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
149
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiTranslatableService, providedIn: 'root' });
150
- }
151
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiTranslatableService, decorators: [{
152
- type: Injectable,
153
- args: [{
154
- providedIn: 'root'
155
- }]
156
- }], ctorParameters: () => [] });
157
-
158
- /**
159
- * Copyright Siemens 2016 - 2025.
160
- * SPDX-License-Identifier: MIT
161
- */
162
- // an alternative implementation for $localize meant to be used for translation frameworks other than @angular/localize
163
- const $localize = (strings, ...expressions) => {
164
- if (strings.length !== 1) {
165
- throw new Error('$localize calls using @siemens/element-translate-ng do not support parameter interpolation');
166
- }
167
- const firstPart = strings[0];
168
- const [, key, value] = /:.*?@@(.*?):(.*)/.exec(firstPart);
169
- return Zone.current.get('siResolveLocalize')(key, value);
170
- };
171
- const siResolveLocalize = (key, value) => inject(SiTranslatableService).resolveText(key, value);
172
- /**
173
- * Initializes the Element version of $localize. Can be called multiple times.
174
- */
175
- const initSiLocalize = () => {
176
- Zone.current._properties.siResolveLocalize = siResolveLocalize;
177
- globalScope.$localize = $localize;
178
- };
179
-
180
- /**
181
- * Copyright Siemens 2016 - 2025.
115
+ * Copyright (c) Siemens 2016 - 2025
182
116
  * SPDX-License-Identifier: MIT
183
117
  */
184
118
  /**
@@ -195,7 +129,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImpor
195
129
  }] });
196
130
 
197
131
  /**
198
- * Copyright Siemens 2016 - 2025.
132
+ * Copyright (c) Siemens 2016 - 2025
199
133
  * SPDX-License-Identifier: MIT
200
134
  */
201
135
  /**
@@ -217,7 +151,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImpor
217
151
  }] });
218
152
 
219
153
  /**
220
- * Copyright Siemens 2016 - 2025.
154
+ * Copyright (c) Siemens 2016 - 2025
155
+ * SPDX-License-Identifier: MIT
156
+ */
157
+ const injectSiTranslateService = () =>
158
+ /* This is needed for ngx-translate when using the isolated mode for lazy child routes.
159
+ * In that case, a new TranslateService is created by ngx-translate which also needs to be used
160
+ * by Element components within that route.
161
+ * The Builder can be used to check if a new service is available
162
+ * and then provide a corresponding SiTranslateService.
163
+ */
164
+ (inject(SiTranslateServiceBuilder, { optional: true }) ?? inject(SiNoTranslateServiceBuilder)).buildService(inject(Injector));
165
+
166
+ /**
167
+ * Copyright (c) Siemens 2016 - 2025
221
168
  * SPDX-License-Identifier: MIT
222
169
  */
223
170
  /**
@@ -231,7 +178,7 @@ class SiTranslatePipe {
231
178
  lastKeyParams;
232
179
  value = '';
233
180
  subscription;
234
- siTranslateService = inject(SiTranslateService);
181
+ siTranslateService = injectSiTranslateService();
235
182
  cdRef = inject(ChangeDetectorRef);
236
183
  transform(key, params) {
237
184
  if (!key) {
@@ -261,38 +208,33 @@ class SiTranslatePipe {
261
208
  this.cdRef.markForCheck();
262
209
  }
263
210
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiTranslatePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
264
- static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.0.6", ngImport: i0, type: SiTranslatePipe, isStandalone: false, name: "translate", pure: false });
211
+ static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.0.6", ngImport: i0, type: SiTranslatePipe, isStandalone: true, name: "translate", pure: false });
265
212
  }
266
213
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiTranslatePipe, decorators: [{
267
214
  type: Pipe,
268
215
  args: [{
269
216
  name: 'translate',
270
217
  // eslint-disable-next-line @angular-eslint/no-pipe-impure
271
- pure: false,
272
- // eslint-disable-next-line @angular-eslint/prefer-standalone
273
- standalone: false
218
+ pure: false
274
219
  }]
275
220
  }] });
276
221
 
277
222
  /**
278
- * Copyright Siemens 2016 - 2025.
223
+ * Copyright (c) Siemens 2016 - 2025
279
224
  * SPDX-License-Identifier: MIT
280
225
  */
281
226
  /**
282
227
  * This provides declares SiTranslatePipe and provides a respective SiTranslateService.
283
- * It should be used internally of Element but NOT by any application
228
+ * It should be used internally of Element but NOT by any application.
229
+ *
230
+ * @deprecated This module is no longer needed.
231
+ * Replace it with the {@link SiTranslatePipe} if needed, otherwise drop it without replacement.
284
232
  *
285
233
  * @internal
286
234
  */
287
235
  class SiTranslateModule {
288
- constructor() {
289
- const translateService = inject(SiTranslateService);
290
- if (!translateService.prevent$LocalizeInit) {
291
- initSiLocalize();
292
- }
293
- }
294
236
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiTranslateModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
295
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.0.6", ngImport: i0, type: SiTranslateModule, declarations: [SiTranslatePipe], exports: [SiTranslatePipe] });
237
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.0.6", ngImport: i0, type: SiTranslateModule, imports: [SiTranslatePipe], exports: [SiTranslatePipe] });
296
238
  static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiTranslateModule, providers: [
297
239
  /* This is needed for ngx-translate when using the isolated mode for lazy child routes.
298
240
  * In that case, a new TranslateService is created by ngx-translate which also needs to be used
@@ -302,15 +244,14 @@ class SiTranslateModule {
302
244
  */
303
245
  {
304
246
  provide: SiTranslateService,
305
- useFactory: (injector, noTranslateBuilder) => injector.get(SiTranslateServiceBuilder, noTranslateBuilder).buildService(injector),
306
- deps: [Injector, SiNoTranslateServiceBuilder]
247
+ useFactory: () => injectSiTranslateService()
307
248
  }
308
249
  ] });
309
250
  }
310
251
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiTranslateModule, decorators: [{
311
252
  type: NgModule,
312
253
  args: [{
313
- declarations: [SiTranslatePipe],
254
+ imports: [SiTranslatePipe],
314
255
  exports: [SiTranslatePipe],
315
256
  providers: [
316
257
  /* This is needed for ngx-translate when using the isolated mode for lazy child routes.
@@ -321,20 +262,92 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImpor
321
262
  */
322
263
  {
323
264
  provide: SiTranslateService,
324
- useFactory: (injector, noTranslateBuilder) => injector.get(SiTranslateServiceBuilder, noTranslateBuilder).buildService(injector),
325
- deps: [Injector, SiNoTranslateServiceBuilder]
265
+ useFactory: () => injectSiTranslateService()
326
266
  }
327
267
  ]
328
268
  }]
269
+ }] });
270
+
271
+ /**
272
+ * This var provides access to the global scope object based on the current runtime.
273
+ * On Browser its is the window, on Node.js it is global.
274
+ *
275
+ * Whenever possible, inject(DOCUMENT) is preferred over this approach.
276
+ */
277
+ let globalScope;
278
+ // we are either running Browser or on NodeJS
279
+ if (typeof window !== 'undefined') {
280
+ globalScope = window;
281
+ }
282
+ else if (typeof global !== 'undefined') {
283
+ globalScope = global;
284
+ }
285
+
286
+ /**
287
+ * Copyright (c) Siemens 2016 - 2025
288
+ * SPDX-License-Identifier: MIT
289
+ */
290
+ class SiTranslatableService {
291
+ translatableValues;
292
+ isNoTranslate;
293
+ siTranslateService;
294
+ constructor() {
295
+ this.siTranslateService = injectSiTranslateService();
296
+ const translateValues = inject(SI_TRANSLATABLE_VALUES, { optional: true });
297
+ this.translatableValues = translateValues?.reduce((a, b) => ({ ...a, ...b })) ?? {};
298
+ this.isNoTranslate = this.siTranslateService instanceof SiNoTranslateService;
299
+ }
300
+ resolveText(key, originalText) {
301
+ if (this.siTranslateService.setTranslation) {
302
+ this.siTranslateService.setTranslation(key, originalText);
303
+ }
304
+ return this.translatableValues[key] ?? (this.isNoTranslate ? originalText : key);
305
+ }
306
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiTranslatableService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
307
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiTranslatableService, providedIn: 'root' });
308
+ }
309
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.6", ngImport: i0, type: SiTranslatableService, decorators: [{
310
+ type: Injectable,
311
+ args: [{
312
+ providedIn: 'root'
313
+ }]
329
314
  }], ctorParameters: () => [] });
330
315
 
316
+ /**
317
+ * Copyright (c) Siemens 2016 - 2025
318
+ * SPDX-License-Identifier: MIT
319
+ */
320
+ // an alternative implementation for $localize meant to be used for translation frameworks other than @angular/localize
321
+ const $localize = (strings, ...expressions) => {
322
+ if (strings.length !== 1) {
323
+ throw new Error('$localize calls using @siemens/element-translate-ng do not support parameter interpolation');
324
+ }
325
+ const firstPart = strings[0];
326
+ const [, key, value] = /:.*?@@(.*?):(.*)/.exec(firstPart);
327
+ return Zone.current.get('siResolveLocalize')(key, value);
328
+ };
329
+ const siResolveLocalize = (key, value) => inject(SiTranslatableService).resolveText(key, value);
330
+ // Always register in the current zone. This is needed in MFE setups, where $localize is already patched.
331
+ Zone.current._properties.siResolveLocalize = siResolveLocalize;
332
+ // Patch $localize in the global scope if it was not already patched by ourselves or Angular.
333
+ // The default $localize function by Angular just throws an error.
334
+ try {
335
+ // eslint-disable-next-line @typescript-eslint/no-unused-expressions
336
+ globalScope.$localize `:@@si-localize:This is a test for $localize`;
337
+ }
338
+ catch {
339
+ globalScope.$localize = $localize;
340
+ }
341
+ /** @deprecated $localize is now automatically initialized. Drop all calls of this function. */
342
+ const initSiLocalize = () => { };
343
+
331
344
  const provideMockTranslateServiceBuilder = (buildService) => ({
332
345
  provide: SiTranslateServiceBuilder,
333
346
  useValue: { buildService }
334
347
  });
335
348
 
336
349
  /**
337
- * Copyright Siemens 2016 - 2025.
350
+ * Copyright (c) Siemens 2016 - 2025
338
351
  * SPDX-License-Identifier: MIT
339
352
  */
340
353
 
@@ -342,5 +355,5 @@ const provideMockTranslateServiceBuilder = (buildService) => ({
342
355
  * Generated bundle index. Do not edit.
343
356
  */
344
357
 
345
- export { SI_TRANSLATABLE_VALUES, SiNoTranslateService, SiTranslateModule, SiTranslatePipe, SiTranslateService, SiTranslateServiceBuilder, getBrowserCultureLanguage, getBrowserLanguage, initSiLocalize, provideMockTranslateServiceBuilder };
358
+ export { SI_TRANSLATABLE_VALUES, SiNoTranslateService, SiTranslateModule, SiTranslatePipe, SiTranslateService, SiTranslateServiceBuilder, getBrowserCultureLanguage, getBrowserLanguage, initSiLocalize, injectSiTranslateService, provideMockTranslateServiceBuilder };
346
359
  //# sourceMappingURL=siemens-element-translate-ng-translate.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"siemens-element-translate-ng-translate.mjs","sources":["../../../../projects/element-translate-ng/translate/si-translatable.model.ts","../../../../projects/element-translate-ng/translate/global.scope.ts","../../../../projects/element-translate-ng/translate/si-translate.service.ts","../../../../projects/element-translate-ng/translate/si-no-translate.service.ts","../../../../projects/element-translate-ng/translate/si-translatable.service.ts","../../../../projects/element-translate-ng/translate/si-localize.ts","../../../../projects/element-translate-ng/translate/si-translate.service-builder.ts","../../../../projects/element-translate-ng/translate/si-no-translate.service-builder.ts","../../../../projects/element-translate-ng/translate/si-translate.pipe.ts","../../../../projects/element-translate-ng/translate/si-translate.module.ts","../../../../projects/element-translate-ng/translate/testing/si-translate.mock-service-builder.factory.ts","../../../../projects/element-translate-ng/translate/index.ts","../../../../projects/element-translate-ng/translate/siemens-element-translate-ng-translate.ts"],"sourcesContent":["/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nimport { InjectionToken } from '@angular/core';\n\nexport const SI_TRANSLATABLE_VALUES = new InjectionToken<Record<string, string>[]>(\n 'si-element-translatable-values'\n);\n","/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\n// global Object in a NodeJS context, which we have when building types for web-components or building with angular SSR\ndeclare const global: any;\n\n/**\n * This var provides access to the global scope object based on the current runtime.\n * On Browser its is the window, on Node.js it is global.\n *\n * Whenever possible, inject(DOCUMENT) is preferred over this approach.\n */\nlet globalScope: any;\n\n// we are either running Browser or on NodeJS\nif (typeof window !== 'undefined') {\n globalScope = window;\n} else if (typeof global !== 'undefined') {\n globalScope = global;\n}\n\nexport { globalScope };\n","/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nimport { DOCUMENT } from '@angular/common';\nimport { inject, Injectable } from '@angular/core';\nimport { NEVER, Observable } from 'rxjs';\n\nexport type TranslationResult<T> = T extends string ? string : Record<string, string>;\n\n/**\n * @returns The culture language code of the browser, e.g. \"en-US\".\n */\nexport const getBrowserCultureLanguage = (): string | undefined =>\n window?.navigator?.languages?.[0] ?? window?.navigator?.language;\n\n/**\n * @returns The language code of the browser, e.g. \"en\".\n */\nexport const getBrowserLanguage = (): string | undefined =>\n getBrowserCultureLanguage()?.split(/-|_/)[0];\n\n/**\n * Wrapper around an actual translation framework which is meant to be used internally by Element.\n * Applications must not use this service.\n *\n * @internal\n */\n@Injectable()\nexport abstract class SiTranslateService {\n protected translationChange$: Observable<void> = NEVER;\n private documentRef: Document = inject(DOCUMENT);\n\n prevent$LocalizeInit?: boolean;\n\n /**\n * The currently used language.\n */\n abstract get currentLanguage(): string;\n\n /**\n * Sets a new language to be used. If needed, loads the language file.\n * @param lang - The language to be used.\n * @returns An observable that emits when the new language is loaded and activated.\n */\n abstract setCurrentLanguage(lang: string): Observable<void>;\n\n /**\n * The language to be used as default.\n * @param lang - The language code.\n */\n abstract setDefaultLanguage(lang: string): void;\n\n /**\n * The language to be used as default.\n * @returns The code of the default language.\n */\n abstract getDefaultLanguage(): string;\n\n /**\n * The available languages.\n */\n abstract get availableLanguages(): string[];\n abstract set availableLanguages(languages: string[]);\n\n /**\n * If the underlying translation library supports switching the language\n * and/or updating the translation texts, this observable will emit.\n * There is no initial emit.\n */\n get translationChange(): Observable<void> {\n return this.translationChange$;\n }\n\n /**\n * Translates the key(s) by using the underlying translation library.\n *\n * @param keys - A single translation key or an array of keys.\n * @param params - Parameters to be replaced within the translation text.\n *\n * @returns Returns the translated key or an object with the translated keys.\n * Depending on the underlying translation library (sync/async) the result will\n * be wrapped in an Observable.\n */\n abstract translate<T extends string | string[]>(\n keys: T,\n params?: Record<string, unknown>\n ): Observable<TranslationResult<T>> | TranslationResult<T>;\n\n /**\n * Translates the key(s) by using the underlying translation library in an asynchronous manner.\n * It will emit each time the active language is changed.\n *\n * @param keys - A single translation key or an array of keys.\n * @param params - Parameters to be replaced within the translation text.\n *\n * @returns Returns the translated key or an object with the translated keys wrapped in an Observable.\n */\n abstract translateAsync<T extends string | string[]>(\n keys: T,\n params?: Record<string, unknown>\n ): Observable<TranslationResult<T>>;\n\n /**\n * Translates the key(s) by using the underlying translation library in a synchronous manner.\n *\n * Warning: The caller of this function needs to make sure the translation file(s) are already loaded.\n * It is generally not recommended to use this function unless you know exactly what you are doing.\n *\n * @param keys - A single translation key or an array of keys.\n * @param params - Parameters to be replaced within the translation text.\n *\n * @returns Returns the translated key or an object with the translated keys.\n */\n abstract translateSync<T extends string | string[]>(\n keys: T,\n params?: Record<string, unknown>\n ): TranslationResult<T>;\n\n /**\n * If supported by the underlying translation library, this method can be used to add a translation for a specific key.\n * It is intended to be used for adding the english default value.\n * It will be called whenever a key within element is resolved.\n * An implementation of this method must check that it does not override an existing translation.\n */\n setTranslation?(key: string, value: string): void;\n\n setDocumentLanguage(lang: string): void {\n this.documentRef?.documentElement?.setAttribute('lang', lang);\n }\n}\n","/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nimport { Injectable } from '@angular/core';\nimport { Observable, of } from 'rxjs';\n\nimport { SiTranslateService, TranslationResult } from './si-translate.service';\n\nconst arrayToRecord = (keys: string[]): Record<string, string> =>\n keys.reduce(\n (acc, cur) => {\n acc[cur] = cur;\n return acc;\n },\n {} as Record<string, string>\n );\n\nconst replacePlaceholders = (str: string, params: Record<string, unknown>): string => {\n return str.replace(/{{\\s*([^}]+)\\s*}}/g, (match, p1) => {\n return params[p1] !== undefined ? String(params[p1]) : match;\n });\n};\n\n/**\n * Pass through implementation of the {@link SiTranslateService} which is used as a default.\n *\n * @internal\n */\n@Injectable({ providedIn: 'root' })\nexport class SiNoTranslateService extends SiTranslateService {\n override get currentLanguage(): string {\n return 'en';\n }\n\n override get availableLanguages(): string[] {\n return ['en'];\n }\n\n override set availableLanguages(lang: string[]) {}\n\n override setCurrentLanguage(lang: string): Observable<void> {\n return of();\n }\n\n override getDefaultLanguage(): string {\n return 'en';\n }\n\n override setDefaultLanguage(lang: string): void {}\n\n override translate<T extends string | string[]>(\n keys: T,\n _params?: Record<string, unknown>\n ): TranslationResult<T> {\n const translateKey = (key: string): string => {\n return _params ? replacePlaceholders(key, _params) : key;\n };\n\n if (typeof keys === 'string') {\n return translateKey(keys) as TranslationResult<T>;\n } else {\n const translatedKeys = keys.map(translateKey);\n return arrayToRecord(translatedKeys) as TranslationResult<T>;\n }\n }\n\n override translateSync<T extends string | string[]>(\n keys: T,\n params?: Record<string, unknown>\n ): TranslationResult<T> {\n return this.translate(keys, params);\n }\n\n override translateAsync<T extends string | string[]>(\n keys: T,\n params?: Record<string, unknown>\n ): Observable<TranslationResult<T>> {\n return of(this.translate(keys, params));\n }\n}\n","/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nimport { inject, Injectable } from '@angular/core';\nimport { TranslatableString } from '@siemens/element-translate-ng/translate-types';\n\nimport { SiNoTranslateService } from './si-no-translate.service';\nimport { SI_TRANSLATABLE_VALUES } from './si-translatable.model';\nimport { SiTranslateService } from './si-translate.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SiTranslatableService {\n private readonly translatableValues: Record<string, string>;\n private readonly isNoTranslate: boolean;\n private readonly siTranslateService: SiTranslateService;\n\n constructor() {\n this.siTranslateService =\n inject(SiTranslateService, { optional: true }) ?? inject(SiNoTranslateService);\n const translateValues = inject(SI_TRANSLATABLE_VALUES, { optional: true });\n\n this.translatableValues = translateValues?.reduce((a, b) => ({ ...a, ...b })) ?? {};\n this.isNoTranslate = this.siTranslateService instanceof SiNoTranslateService;\n }\n\n resolveText(key: string, originalText: string): TranslatableString {\n if (this.siTranslateService.setTranslation) {\n this.siTranslateService.setTranslation(key, originalText);\n }\n\n return this.translatableValues[key] ?? (this.isNoTranslate ? originalText : key);\n }\n}\n","/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nimport { inject } from '@angular/core';\nimport { TranslatableString } from '@siemens/element-translate-ng/translate-types';\n\nimport { globalScope } from './global.scope';\nimport { SiTranslatableService } from './si-translatable.service';\n\n// an alternative implementation for $localize meant to be used for translation frameworks other than @angular/localize\nconst $localize = (strings: TemplateStringsArray, ...expressions: string[]): TranslatableString => {\n if (strings.length !== 1) {\n throw new Error(\n '$localize calls using @siemens/element-translate-ng do not support parameter interpolation'\n );\n }\n\n const firstPart = strings[0];\n const [, key, value] = /:.*?@@(.*?):(.*)/.exec(firstPart)!;\n\n return Zone.current.get('siResolveLocalize')(key, value);\n};\n\nconst siResolveLocalize = (key: string, value: string): TranslatableString =>\n inject(SiTranslatableService).resolveText(key, value);\n\n/**\n * Initializes the Element version of $localize. Can be called multiple times.\n */\nexport const initSiLocalize = (): void => {\n (Zone.current as any)._properties.siResolveLocalize = siResolveLocalize;\n globalScope.$localize = $localize;\n};\n","/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nimport { Injectable, Injector } from '@angular/core';\n\nimport { SiTranslateService } from './si-translate.service';\n\n/**\n * Provide this class to build a custom translation service.\n *\n * @internal\n */\n@Injectable()\nexport abstract class SiTranslateServiceBuilder {\n /**\n * Returns a translation service instance.\n * @param injector - Is used to retrieve dependencies needed to create the translation service.\n */\n abstract buildService(injector: Injector): SiTranslateService;\n}\n","/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nimport { inject, Injectable } from '@angular/core';\n\nimport { SiNoTranslateService } from './si-no-translate.service';\nimport { SiTranslateService } from './si-translate.service';\nimport { SiTranslateServiceBuilder } from './si-translate.service-builder';\n\n/**\n * Always returns the same instance of {@link SiNoTranslateService}\n *\n * @internal\n */\n@Injectable({ providedIn: 'root' })\nexport class SiNoTranslateServiceBuilder extends SiTranslateServiceBuilder {\n private siNoTranslateService = inject(SiNoTranslateService);\n\n override buildService(): SiTranslateService {\n return this.siNoTranslateService;\n }\n}\n","/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nimport { ChangeDetectorRef, inject, OnDestroy, Pipe, PipeTransform } from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport { SiTranslateService } from './si-translate.service';\n\n/**\n * Translates keys by using the {@link SiTranslateService}.\n * Within Element this pipe should be used instead of ngx-translates `translate` pipe.\n * Outside Element, this pipe should NOT be used.\n *\n * @internal\n */\n\n@Pipe({\n name: 'translate',\n // eslint-disable-next-line @angular-eslint/no-pipe-impure\n pure: false,\n // eslint-disable-next-line @angular-eslint/prefer-standalone\n standalone: false\n})\nexport class SiTranslatePipe implements PipeTransform, OnDestroy {\n private lastKeyParams?: string;\n private value = '';\n private subscription?: Subscription;\n private siTranslateService = inject(SiTranslateService);\n private cdRef = inject(ChangeDetectorRef);\n\n /**\n * Method which is called on any data passed to the pipe.\n * Called by Angular, should not be called directly.\n */\n // The first type is for cases when there is definitely defined string, so that we can use the pipe to assign values to a required variable.\n // The second type is for everything else, so that we can use the pipe for optional inputs\n transform(key: string, params?: any): string;\n transform(key: string | null | undefined, params?: any): string | null | undefined;\n transform(key: string | null | undefined, params?: any): string | null | undefined {\n if (!key) {\n return key;\n }\n\n const currentKeyParams = params ? `${key}-${JSON.stringify(params)}` : key;\n\n if (this.lastKeyParams === currentKeyParams) {\n return this.value;\n }\n\n this.subscription?.unsubscribe();\n\n const translate = this.siTranslateService.translate(key, params);\n if (typeof translate === 'string') {\n this.updateValue(currentKeyParams, translate);\n } else {\n this.subscription = translate.subscribe(value => this.updateValue(currentKeyParams, value));\n }\n\n return this.value;\n }\n\n ngOnDestroy(): void {\n this.subscription?.unsubscribe();\n this.subscription = undefined;\n }\n\n private updateValue(currentKeyParams: string, value: string): void {\n this.lastKeyParams = currentKeyParams;\n this.value = value;\n this.cdRef.markForCheck();\n }\n}\n","/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nimport { inject, Injector, NgModule } from '@angular/core';\n\nimport { initSiLocalize } from './si-localize';\nimport { SiNoTranslateServiceBuilder } from './si-no-translate.service-builder';\nimport { SiTranslatePipe } from './si-translate.pipe';\nimport { SiTranslateService } from './si-translate.service';\nimport { SiTranslateServiceBuilder } from './si-translate.service-builder';\n\n/**\n * This provides declares SiTranslatePipe and provides a respective SiTranslateService.\n * It should be used internally of Element but NOT by any application\n *\n * @internal\n */\n@NgModule({\n declarations: [SiTranslatePipe],\n exports: [SiTranslatePipe],\n providers: [\n /* This is needed for ngx-translate when using the isolated mode for lazy child routes.\n * In that case, a new TranslateService is created by ngx-translate which also needs to be used\n * by Element components within that route.\n * The Builder can be used to check if a new service is available\n * and then provide a corresponding SiTranslateService.\n */\n {\n provide: SiTranslateService,\n useFactory: (injector: Injector, noTranslateBuilder: SiNoTranslateServiceBuilder) =>\n injector.get(SiTranslateServiceBuilder, noTranslateBuilder).buildService(injector),\n deps: [Injector, SiNoTranslateServiceBuilder]\n }\n ]\n})\nexport class SiTranslateModule {\n constructor() {\n const translateService = inject(SiTranslateService);\n if (!translateService.prevent$LocalizeInit) {\n initSiLocalize();\n }\n }\n}\n","/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nimport { Injector, Provider } from '@angular/core';\n\nimport { SiTranslateService } from '../si-translate.service';\nimport { SiTranslateServiceBuilder } from '../si-translate.service-builder';\n\nexport const provideMockTranslateServiceBuilder = (\n buildService: (injector: Injector) => SiTranslateService\n): Provider => ({\n provide: SiTranslateServiceBuilder,\n useValue: { buildService } as SiTranslateServiceBuilder\n});\n","/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-translatable.model';\nexport * from './si-translate.module';\nexport * from './si-translate.service';\nexport * from './si-translate.service-builder';\nexport * from './si-no-translate.service';\nexport * from './si-translate.pipe';\nexport * from './si-localize';\nexport * from './si-translate.service';\nexport * from './testing/si-translate.mock-service-builder.factory';\nexport * from '@siemens/element-translate-ng/translate-types';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"siemens-element-translate-ng-translate.mjs","sources":["../../../../projects/element-translate-ng/translate/si-translatable.model.ts","../../../../projects/element-translate-ng/translate/si-translate.service.ts","../../../../projects/element-translate-ng/translate/si-no-translate.service.ts","../../../../projects/element-translate-ng/translate/si-translate.service-builder.ts","../../../../projects/element-translate-ng/translate/si-no-translate.service-builder.ts","../../../../projects/element-translate-ng/translate/si-translate.inject.ts","../../../../projects/element-translate-ng/translate/si-translate.pipe.ts","../../../../projects/element-translate-ng/translate/si-translate.module.ts","../../../../projects/element-translate-ng/translate/global.scope.ts","../../../../projects/element-translate-ng/translate/si-translatable.service.ts","../../../../projects/element-translate-ng/translate/si-localize.ts","../../../../projects/element-translate-ng/translate/testing/si-translate.mock-service-builder.factory.ts","../../../../projects/element-translate-ng/translate/index.ts","../../../../projects/element-translate-ng/translate/siemens-element-translate-ng-translate.ts"],"sourcesContent":["/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport { InjectionToken } from '@angular/core';\n\nexport const SI_TRANSLATABLE_VALUES = new InjectionToken<Record<string, string>[]>(\n 'si-element-translatable-values'\n);\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport { DOCUMENT } from '@angular/common';\nimport { inject, Injectable } from '@angular/core';\nimport { NEVER, Observable } from 'rxjs';\n\nexport type TranslationResult<T> = T extends string ? string : Record<string, string>;\n\n/**\n * @returns The culture language code of the browser, e.g. \"en-US\".\n */\nexport const getBrowserCultureLanguage = (): string | undefined =>\n window?.navigator?.languages?.[0] ?? window?.navigator?.language;\n\n/**\n * @returns The language code of the browser, e.g. \"en\".\n */\nexport const getBrowserLanguage = (): string | undefined =>\n getBrowserCultureLanguage()?.split(/-|_/)[0];\n\n/**\n * Wrapper around an actual translation framework which is meant to be used internally by Element.\n * Applications must not use this service.\n *\n * Use {@link injectSiTranslateService} to get an instance of the translation service.\n *\n * @internal\n */\n@Injectable()\nexport abstract class SiTranslateService {\n protected translationChange$: Observable<void> = NEVER;\n private documentRef: Document = inject(DOCUMENT);\n\n prevent$LocalizeInit?: boolean;\n\n /**\n * The currently used language.\n */\n abstract get currentLanguage(): string;\n\n /**\n * Sets a new language to be used. If needed, loads the language file.\n * @param lang - The language to be used.\n * @returns An observable that emits when the new language is loaded and activated.\n */\n abstract setCurrentLanguage(lang: string): Observable<void>;\n\n /**\n * The language to be used as default.\n * @param lang - The language code.\n */\n abstract setDefaultLanguage(lang: string): void;\n\n /**\n * The language to be used as default.\n * @returns The code of the default language.\n */\n abstract getDefaultLanguage(): string;\n\n /**\n * The available languages.\n */\n abstract get availableLanguages(): string[];\n abstract set availableLanguages(languages: string[]);\n\n /**\n * If the underlying translation library supports switching the language\n * and/or updating the translation texts, this observable will emit.\n * There is no initial emit.\n */\n get translationChange(): Observable<void> {\n return this.translationChange$;\n }\n\n /**\n * Translates the key(s) by using the underlying translation library.\n *\n * @param keys - A single translation key or an array of keys.\n * @param params - Parameters to be replaced within the translation text.\n *\n * @returns Returns the translated key or an object with the translated keys.\n * Depending on the underlying translation library (sync/async) the result will\n * be wrapped in an Observable.\n */\n abstract translate<T extends string | string[]>(\n keys: T,\n params?: Record<string, unknown>\n ): Observable<TranslationResult<T>> | TranslationResult<T>;\n\n /**\n * Translates the key(s) by using the underlying translation library in an asynchronous manner.\n * It will emit each time the active language is changed.\n *\n * @param keys - A single translation key or an array of keys.\n * @param params - Parameters to be replaced within the translation text.\n *\n * @returns Returns the translated key or an object with the translated keys wrapped in an Observable.\n */\n abstract translateAsync<T extends string | string[]>(\n keys: T,\n params?: Record<string, unknown>\n ): Observable<TranslationResult<T>>;\n\n /**\n * Translates the key(s) by using the underlying translation library in a synchronous manner.\n *\n * Warning: The caller of this function needs to make sure the translation file(s) are already loaded.\n * It is generally not recommended to use this function unless you know exactly what you are doing.\n *\n * @param keys - A single translation key or an array of keys.\n * @param params - Parameters to be replaced within the translation text.\n *\n * @returns Returns the translated key or an object with the translated keys.\n */\n abstract translateSync<T extends string | string[]>(\n keys: T,\n params?: Record<string, unknown>\n ): TranslationResult<T>;\n\n /**\n * If supported by the underlying translation library, this method can be used to add a translation for a specific key.\n * It is intended to be used for adding the english default value.\n * It will be called whenever a key within element is resolved.\n * An implementation of this method must check that it does not override an existing translation.\n */\n setTranslation?(key: string, value: string): void;\n\n setDocumentLanguage(lang: string): void {\n this.documentRef?.documentElement?.setAttribute('lang', lang);\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport { Injectable } from '@angular/core';\nimport { Observable, of } from 'rxjs';\n\nimport { SiTranslateService, TranslationResult } from './si-translate.service';\n\nconst arrayToRecord = (keys: string[]): Record<string, string> =>\n keys.reduce(\n (acc, cur) => {\n acc[cur] = cur;\n return acc;\n },\n {} as Record<string, string>\n );\n\nconst replacePlaceholders = (str: string, params: Record<string, unknown>): string => {\n return str.replace(/{{\\s*([^}]+)\\s*}}/g, (match, p1) => {\n return params[p1] !== undefined ? String(params[p1]) : match;\n });\n};\n\n/**\n * Pass through implementation of the {@link SiTranslateService} which is used as a default.\n *\n * @internal\n */\n@Injectable({ providedIn: 'root' })\nexport class SiNoTranslateService extends SiTranslateService {\n override get currentLanguage(): string {\n return 'en';\n }\n\n override get availableLanguages(): string[] {\n return ['en'];\n }\n\n override set availableLanguages(lang: string[]) {}\n\n override setCurrentLanguage(lang: string): Observable<void> {\n return of();\n }\n\n override getDefaultLanguage(): string {\n return 'en';\n }\n\n override setDefaultLanguage(lang: string): void {}\n\n override translate<T extends string | string[]>(\n keys: T,\n _params?: Record<string, unknown>\n ): TranslationResult<T> {\n const translateKey = (key: string): string => {\n return _params ? replacePlaceholders(key, _params) : key;\n };\n\n if (typeof keys === 'string') {\n return translateKey(keys) as TranslationResult<T>;\n } else {\n const translatedKeys = keys.map(translateKey);\n return arrayToRecord(translatedKeys) as TranslationResult<T>;\n }\n }\n\n override translateSync<T extends string | string[]>(\n keys: T,\n params?: Record<string, unknown>\n ): TranslationResult<T> {\n return this.translate(keys, params);\n }\n\n override translateAsync<T extends string | string[]>(\n keys: T,\n params?: Record<string, unknown>\n ): Observable<TranslationResult<T>> {\n return of(this.translate(keys, params));\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport { Injectable, Injector } from '@angular/core';\n\nimport { SiTranslateService } from './si-translate.service';\n\n/**\n * Provide this class to build a custom translation service.\n *\n * @internal\n */\n@Injectable()\nexport abstract class SiTranslateServiceBuilder {\n /**\n * Returns a translation service instance.\n * @param injector - Is used to retrieve dependencies needed to create the translation service.\n */\n abstract buildService(injector: Injector): SiTranslateService;\n}\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport { inject, Injectable } from '@angular/core';\n\nimport { SiNoTranslateService } from './si-no-translate.service';\nimport { SiTranslateService } from './si-translate.service';\nimport { SiTranslateServiceBuilder } from './si-translate.service-builder';\n\n/**\n * Always returns the same instance of {@link SiNoTranslateService}\n *\n * @internal\n */\n@Injectable({ providedIn: 'root' })\nexport class SiNoTranslateServiceBuilder extends SiTranslateServiceBuilder {\n private siNoTranslateService = inject(SiNoTranslateService);\n\n override buildService(): SiTranslateService {\n return this.siNoTranslateService;\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport { inject, Injector } from '@angular/core';\n\nimport { SiNoTranslateServiceBuilder } from './si-no-translate.service-builder';\nimport { SiTranslateService } from './si-translate.service';\nimport { SiTranslateServiceBuilder } from './si-translate.service-builder';\n\nexport const injectSiTranslateService = (): SiTranslateService =>\n /* This is needed for ngx-translate when using the isolated mode for lazy child routes.\n * In that case, a new TranslateService is created by ngx-translate which also needs to be used\n * by Element components within that route.\n * The Builder can be used to check if a new service is available\n * and then provide a corresponding SiTranslateService.\n */\n (\n inject(SiTranslateServiceBuilder, { optional: true }) ?? inject(SiNoTranslateServiceBuilder)\n ).buildService(inject(Injector));\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport { ChangeDetectorRef, inject, OnDestroy, Pipe, PipeTransform } from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport { injectSiTranslateService } from './si-translate.inject';\nimport { SiTranslateService } from './si-translate.service';\n\n/**\n * Translates keys by using the {@link SiTranslateService}.\n * Within Element this pipe should be used instead of ngx-translates `translate` pipe.\n * Outside Element, this pipe should NOT be used.\n *\n * @internal\n */\n\n@Pipe({\n name: 'translate',\n // eslint-disable-next-line @angular-eslint/no-pipe-impure\n pure: false\n})\nexport class SiTranslatePipe implements PipeTransform, OnDestroy {\n private lastKeyParams?: string;\n private value = '';\n private subscription?: Subscription;\n private siTranslateService = injectSiTranslateService();\n private cdRef = inject(ChangeDetectorRef);\n\n /**\n * Method which is called on any data passed to the pipe.\n * Called by Angular, should not be called directly.\n */\n // The first type is for cases when there is definitely defined string, so that we can use the pipe to assign values to a required variable.\n // The second type is for everything else, so that we can use the pipe for optional inputs\n transform(key: string, params?: any): string;\n transform(key: string | null | undefined, params?: any): string | null | undefined;\n transform(key: string | null | undefined, params?: any): string | null | undefined {\n if (!key) {\n return key;\n }\n\n const currentKeyParams = params ? `${key}-${JSON.stringify(params)}` : key;\n\n if (this.lastKeyParams === currentKeyParams) {\n return this.value;\n }\n\n this.subscription?.unsubscribe();\n\n const translate = this.siTranslateService.translate(key, params);\n if (typeof translate === 'string') {\n this.updateValue(currentKeyParams, translate);\n } else {\n this.subscription = translate.subscribe(value => this.updateValue(currentKeyParams, value));\n }\n\n return this.value;\n }\n\n ngOnDestroy(): void {\n this.subscription?.unsubscribe();\n this.subscription = undefined;\n }\n\n private updateValue(currentKeyParams: string, value: string): void {\n this.lastKeyParams = currentKeyParams;\n this.value = value;\n this.cdRef.markForCheck();\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport { NgModule } from '@angular/core';\n\nimport { injectSiTranslateService } from './si-translate.inject';\nimport { SiTranslatePipe } from './si-translate.pipe';\nimport { SiTranslateService } from './si-translate.service';\n\n/**\n * This provides declares SiTranslatePipe and provides a respective SiTranslateService.\n * It should be used internally of Element but NOT by any application.\n *\n * @deprecated This module is no longer needed.\n * Replace it with the {@link SiTranslatePipe} if needed, otherwise drop it without replacement.\n *\n * @internal\n */\n@NgModule({\n imports: [SiTranslatePipe],\n exports: [SiTranslatePipe],\n providers: [\n /* This is needed for ngx-translate when using the isolated mode for lazy child routes.\n * In that case, a new TranslateService is created by ngx-translate which also needs to be used\n * by Element components within that route.\n * The Builder can be used to check if a new service is available\n * and then provide a corresponding SiTranslateService.\n */\n {\n provide: SiTranslateService,\n useFactory: () => injectSiTranslateService()\n }\n ]\n})\nexport class SiTranslateModule {}\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\n// global Object in a NodeJS context, which we have when building types for web-components or building with angular SSR\ndeclare const global: any;\n\n/**\n * This var provides access to the global scope object based on the current runtime.\n * On Browser its is the window, on Node.js it is global.\n *\n * Whenever possible, inject(DOCUMENT) is preferred over this approach.\n */\nlet globalScope: any;\n\n// we are either running Browser or on NodeJS\nif (typeof window !== 'undefined') {\n globalScope = window;\n} else if (typeof global !== 'undefined') {\n globalScope = global;\n}\n\nexport { globalScope };\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport { inject, Injectable } from '@angular/core';\nimport { TranslatableString } from '@siemens/element-translate-ng/translate-types';\n\nimport { SiNoTranslateService } from './si-no-translate.service';\nimport { SI_TRANSLATABLE_VALUES } from './si-translatable.model';\nimport { injectSiTranslateService } from './si-translate.inject';\nimport { SiTranslateService } from './si-translate.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SiTranslatableService {\n private readonly translatableValues: Record<string, string>;\n private readonly isNoTranslate: boolean;\n private readonly siTranslateService: SiTranslateService;\n\n constructor() {\n this.siTranslateService = injectSiTranslateService();\n const translateValues = inject(SI_TRANSLATABLE_VALUES, { optional: true });\n\n this.translatableValues = translateValues?.reduce((a, b) => ({ ...a, ...b })) ?? {};\n this.isNoTranslate = this.siTranslateService instanceof SiNoTranslateService;\n }\n\n resolveText(key: string, originalText: string): TranslatableString {\n if (this.siTranslateService.setTranslation) {\n this.siTranslateService.setTranslation(key, originalText);\n }\n\n return this.translatableValues[key] ?? (this.isNoTranslate ? originalText : key);\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport { inject } from '@angular/core';\nimport { TranslatableString } from '@siemens/element-translate-ng/translate-types';\n\nimport { globalScope } from './global.scope';\nimport { SiTranslatableService } from './si-translatable.service';\n\n// an alternative implementation for $localize meant to be used for translation frameworks other than @angular/localize\nconst $localize = (strings: TemplateStringsArray, ...expressions: string[]): TranslatableString => {\n if (strings.length !== 1) {\n throw new Error(\n '$localize calls using @siemens/element-translate-ng do not support parameter interpolation'\n );\n }\n\n const firstPart = strings[0];\n const [, key, value] = /:.*?@@(.*?):(.*)/.exec(firstPart)!;\n\n return Zone.current.get('siResolveLocalize')(key, value);\n};\n\nconst siResolveLocalize = (key: string, value: string): TranslatableString =>\n inject(SiTranslatableService).resolveText(key, value);\n\n// Always register in the current zone. This is needed in MFE setups, where $localize is already patched.\n(Zone.current as any)._properties.siResolveLocalize = siResolveLocalize;\n\n// Patch $localize in the global scope if it was not already patched by ourselves or Angular.\n// The default $localize function by Angular just throws an error.\ntry {\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n globalScope.$localize`:@@si-localize:This is a test for $localize`;\n} catch {\n globalScope.$localize = $localize;\n}\n\n/** @deprecated $localize is now automatically initialized. Drop all calls of this function. */\nexport const initSiLocalize = (): void => {};\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nimport { Injector, Provider } from '@angular/core';\n\nimport { SiTranslateService } from '../si-translate.service';\nimport { SiTranslateServiceBuilder } from '../si-translate.service-builder';\n\nexport const provideMockTranslateServiceBuilder = (\n buildService: (injector: Injector) => SiTranslateService\n): Provider => ({\n provide: SiTranslateServiceBuilder,\n useValue: { buildService } as SiTranslateServiceBuilder\n});\n","/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-translatable.model';\nexport * from './si-translate.module';\nexport * from './si-translate.service';\nexport * from './si-translate.service-builder';\nexport * from './si-no-translate.service';\nexport * from './si-translate.pipe';\nexport * from './si-localize';\nexport * from './si-translate.service';\nexport * from './testing/si-translate.mock-service-builder.factory';\nexport * from '@siemens/element-translate-ng/translate-types';\nexport * from './si-translate.inject';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@ export * from '@siemens/element-translate-ng/translate';
4
4
  export * from '@siemens/element-translate-ng/translate-types';
5
5
 
6
6
  /**
7
- * Copyright Siemens 2016 - 2025.
7
+ * Copyright (c) Siemens 2016 - 2025
8
8
  * SPDX-License-Identifier: MIT
9
9
  */
10
10
 
@@ -1 +1 @@
1
- {"version":3,"file":"siemens-element-translate-ng.mjs","sources":["../../../../projects/element-translate-ng/public-api.ts","../../../../projects/element-translate-ng/siemens-element-translate-ng.ts"],"sourcesContent":["/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nexport * from '@siemens/element-translate-ng/angular-localize';\nexport * from '@siemens/element-translate-ng/ngx-translate';\nexport * from '@siemens/element-translate-ng/translate';\nexport * from '@siemens/element-translate-ng/translate-types';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;AAAA;;;AAGG;;ACHH;;AAEG"}
1
+ {"version":3,"file":"siemens-element-translate-ng.mjs","sources":["../../../../projects/element-translate-ng/public-api.ts","../../../../projects/element-translate-ng/siemens-element-translate-ng.ts"],"sourcesContent":["/**\n * Copyright (c) Siemens 2016 - 2025\n * SPDX-License-Identifier: MIT\n */\nexport * from '@siemens/element-translate-ng/angular-localize';\nexport * from '@siemens/element-translate-ng/ngx-translate';\nexport * from '@siemens/element-translate-ng/translate';\nexport * from '@siemens/element-translate-ng/translate-types';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;AAAA;;;AAGG;;ACHH;;AAEG"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright Siemens 2016 - 2025.
2
+ * Copyright (c) Siemens 2016 - 2025
3
3
  * SPDX-License-Identifier: MIT
4
4
  */
5
5
  import { TranslatableString } from '@siemens/element-translate-ng/translate-types';
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright Siemens 2016 - 2025.
2
+ * Copyright (c) Siemens 2016 - 2025
3
3
  * SPDX-License-Identifier: MIT
4
4
  */
5
5
  export * from './si-translate-ngxt.module';
@@ -1,11 +1,10 @@
1
1
  import * as i0 from "@angular/core";
2
- import * as i1 from "@siemens/element-translate-ng/translate";
3
2
  /**
4
3
  * This module configures Element to use ngx-translate for translating {@link TranslatableString}
5
4
  * It should only be imported once in an applications root module (typically `app.module.ts`)
6
5
  */
7
6
  export declare class SiTranslateNgxTModule {
8
7
  static ɵfac: i0.ɵɵFactoryDeclaration<SiTranslateNgxTModule, never>;
9
- static ɵmod: i0.ɵɵNgModuleDeclaration<SiTranslateNgxTModule, never, [typeof i1.SiTranslateModule], never>;
8
+ static ɵmod: i0.ɵɵNgModuleDeclaration<SiTranslateNgxTModule, never, never, never>;
10
9
  static ɵinj: i0.ɵɵInjectorDeclaration<SiTranslateNgxTModule>;
11
10
  }
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright Siemens 2016 - 2025.
2
+ * Copyright (c) Siemens 2016 - 2025
3
3
  * SPDX-License-Identifier: MIT
4
4
  */
5
5
  import { EnvironmentProviders, Provider } from '@angular/core';
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright Siemens 2016 - 2025.
2
+ * Copyright (c) Siemens 2016 - 2025
3
3
  * SPDX-License-Identifier: MIT
4
4
  */
5
5
  import { Injector } from '@angular/core';
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@siemens/element-translate-ng",
3
3
  "description": "Element translation abstraction layer.",
4
- "version": "47.6.0",
4
+ "version": "47.7.0",
5
5
  "license": "MIT",
6
6
  "type": "module",
7
7
  "repository": {
package/public-api.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright Siemens 2016 - 2025.
2
+ * Copyright (c) Siemens 2016 - 2025
3
3
  * SPDX-License-Identifier: MIT
4
4
  */
5
5
  export * from '@siemens/element-translate-ng/angular-localize';
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright Siemens 2016 - 2025.
2
+ * Copyright (c) Siemens 2016 - 2025
3
3
  * SPDX-License-Identifier: MIT
4
4
  */
5
5
  export * from './si-translatable.model';
@@ -12,3 +12,4 @@ export * from './si-localize';
12
12
  export * from './si-translate.service';
13
13
  export * from './testing/si-translate.mock-service-builder.factory';
14
14
  export * from '@siemens/element-translate-ng/translate-types';
15
+ export * from './si-translate.inject';
@@ -1,4 +1,2 @@
1
- /**
2
- * Initializes the Element version of $localize. Can be called multiple times.
3
- */
1
+ /** @deprecated $localize is now automatically initialized. Drop all calls of this function. */
4
2
  export declare const initSiLocalize: () => void;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright Siemens 2016 - 2025.
2
+ * Copyright (c) Siemens 2016 - 2025
3
3
  * SPDX-License-Identifier: MIT
4
4
  */
5
5
  import { InjectionToken } from '@angular/core';
@@ -0,0 +1,2 @@
1
+ import { SiTranslateService } from './si-translate.service';
2
+ export declare const injectSiTranslateService: () => SiTranslateService;
@@ -2,13 +2,15 @@ import * as i0 from "@angular/core";
2
2
  import * as i1 from "./si-translate.pipe";
3
3
  /**
4
4
  * This provides declares SiTranslatePipe and provides a respective SiTranslateService.
5
- * It should be used internally of Element but NOT by any application
5
+ * It should be used internally of Element but NOT by any application.
6
+ *
7
+ * @deprecated This module is no longer needed.
8
+ * Replace it with the {@link SiTranslatePipe} if needed, otherwise drop it without replacement.
6
9
  *
7
10
  * @internal
8
11
  */
9
12
  export declare class SiTranslateModule {
10
- constructor();
11
13
  static ɵfac: i0.ɵɵFactoryDeclaration<SiTranslateModule, never>;
12
- static ɵmod: i0.ɵɵNgModuleDeclaration<SiTranslateModule, [typeof i1.SiTranslatePipe], never, [typeof i1.SiTranslatePipe]>;
14
+ static ɵmod: i0.ɵɵNgModuleDeclaration<SiTranslateModule, never, [typeof i1.SiTranslatePipe], [typeof i1.SiTranslatePipe]>;
13
15
  static ɵinj: i0.ɵɵInjectorDeclaration<SiTranslateModule>;
14
16
  }
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright Siemens 2016 - 2025.
2
+ * Copyright (c) Siemens 2016 - 2025
3
3
  * SPDX-License-Identifier: MIT
4
4
  */
5
5
  import { OnDestroy, PipeTransform } from '@angular/core';
@@ -26,5 +26,5 @@ export declare class SiTranslatePipe implements PipeTransform, OnDestroy {
26
26
  ngOnDestroy(): void;
27
27
  private updateValue;
28
28
  static ɵfac: i0.ɵɵFactoryDeclaration<SiTranslatePipe, never>;
29
- static ɵpipe: i0.ɵɵPipeDeclaration<SiTranslatePipe, "translate", false>;
29
+ static ɵpipe: i0.ɵɵPipeDeclaration<SiTranslatePipe, "translate", true>;
30
30
  }
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright Siemens 2016 - 2025.
2
+ * Copyright (c) Siemens 2016 - 2025
3
3
  * SPDX-License-Identifier: MIT
4
4
  */
5
5
  import { Injector } from '@angular/core';
@@ -13,6 +13,8 @@ export declare const getBrowserLanguage: () => string | undefined;
13
13
  * Wrapper around an actual translation framework which is meant to be used internally by Element.
14
14
  * Applications must not use this service.
15
15
  *
16
+ * Use {@link injectSiTranslateService} to get an instance of the translation service.
17
+ *
16
18
  * @internal
17
19
  */
18
20
  export declare abstract class SiTranslateService {
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright Siemens 2016 - 2025.
2
+ * Copyright (c) Siemens 2016 - 2025
3
3
  * SPDX-License-Identifier: MIT
4
4
  */
5
5
  import { Injector, Provider } from '@angular/core';
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright Siemens 2016 - 2025.
2
+ * Copyright (c) Siemens 2016 - 2025
3
3
  * SPDX-License-Identifier: MIT
4
4
  */
5
5
  /**
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright Siemens 2016 - 2025.
2
+ * Copyright (c) Siemens 2016 - 2025
3
3
  * SPDX-License-Identifier: MIT
4
4
  */
5
5
  export * from './global.types';