@ui5/webcomponents-ngx 0.2.0-rc.1 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,11 +1,8 @@
1
1
  import { Inject, NgModule } from "@angular/core";
2
- import { setFetchDefaultLanguage, setLanguage } from "@ui5/webcomponents-base/dist/config/Language.js";
3
2
  import { I18nPipe } from "./i18n.pipe";
4
- import { I18nService } from "./i18n.service";
5
- import { I18N_NAMESPACE, I18N_ROOT_CONFIG } from "./i18n.tokens";
6
- import { resolveTranslationsProvider } from "./i18n.utils";
3
+ import { I18N_ROOT_CONFIG } from "./i18n.tokens";
4
+ import { i18nChildProviders, i18nRootProviders } from "./i18n.providers";
7
5
  import * as i0 from "@angular/core";
8
- let childIds = 0;
9
6
  class Ui5I18nModule {
10
7
  // eslint-disable-next-line @typescript-eslint/no-empty-function
11
8
  constructor(config) {
@@ -15,24 +12,7 @@ class Ui5I18nModule {
15
12
  return {
16
13
  ngModule: Ui5I18nModule,
17
14
  providers: [
18
- {
19
- provide: I18N_ROOT_CONFIG,
20
- useFactory: () => {
21
- if (config.language) {
22
- setLanguage(config.language);
23
- }
24
- if (config.fetchDefaultLanguage) {
25
- setFetchDefaultLanguage(config.fetchDefaultLanguage);
26
- }
27
- return config;
28
- }
29
- },
30
- {
31
- provide: I18N_NAMESPACE,
32
- useValue: config.bundle?.name || 'root_i18n'
33
- },
34
- resolveTranslationsProvider(config.bundle?.translations),
35
- I18nService
15
+ i18nRootProviders(config)
36
16
  ]
37
17
  };
38
18
  }
@@ -40,28 +20,23 @@ class Ui5I18nModule {
40
20
  return {
41
21
  ngModule: Ui5I18nModule,
42
22
  providers: [
43
- {
44
- provide: I18N_NAMESPACE,
45
- useValue: config?.name || ++childIds + '_i18n'
46
- },
47
- resolveTranslationsProvider(config?.translations),
48
- I18nService
23
+ i18nChildProviders(config)
49
24
  ]
50
25
  };
51
26
  }
52
27
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: Ui5I18nModule, deps: [{ token: I18N_ROOT_CONFIG }], target: i0.ɵɵFactoryTarget.NgModule }); }
53
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.0.0", ngImport: i0, type: Ui5I18nModule, declarations: [I18nPipe], exports: [I18nPipe] }); }
28
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.0.0", ngImport: i0, type: Ui5I18nModule, imports: [I18nPipe], exports: [I18nPipe] }); }
54
29
  static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: Ui5I18nModule }); }
55
30
  }
56
31
  export { Ui5I18nModule };
57
32
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: Ui5I18nModule, decorators: [{
58
33
  type: NgModule,
59
34
  args: [{
60
- declarations: [I18nPipe],
35
+ imports: [I18nPipe],
61
36
  exports: [I18nPipe]
62
37
  }]
63
38
  }], ctorParameters: function () { return [{ type: undefined, decorators: [{
64
39
  type: Inject,
65
40
  args: [I18N_ROOT_CONFIG]
66
41
  }] }]; } });
67
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaTE4bi5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3VpNS1hbmd1bGFyL2kxOG4vaTE4bi5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLE1BQU0sRUFBdUIsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3BFLE9BQU8sRUFBQyx1QkFBdUIsRUFBRSxXQUFXLEVBQUMsTUFBTSxpREFBaUQsQ0FBQztBQUNyRyxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sYUFBYSxDQUFDO0FBQ3JDLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzQyxPQUFPLEVBQUMsY0FBYyxFQUFFLGdCQUFnQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQy9ELE9BQU8sRUFBQywyQkFBMkIsRUFBQyxNQUFNLGNBQWMsQ0FBQzs7QUFHekQsSUFBSSxRQUFRLEdBQUcsQ0FBQyxDQUFDO0FBRWpCLE1BSWEsYUFBYTtJQUN4QixnRUFBZ0U7SUFDaEUsWUFBOEMsTUFBa0I7UUFBbEIsV0FBTSxHQUFOLE1BQU0sQ0FBWTtJQUNoRSxDQUFDO0lBRUQsTUFBTSxDQUFDLE9BQU8sQ0FBQyxTQUFxQixFQUFFO1FBRXBDLE9BQU87WUFDTCxRQUFRLEVBQUUsYUFBYTtZQUN2QixTQUFTLEVBQUU7Z0JBQ1Q7b0JBQ0UsT0FBTyxFQUFFLGdCQUFnQjtvQkFDekIsVUFBVSxFQUFFLEdBQUcsRUFBRTt3QkFDZixJQUFJLE1BQU0sQ0FBQyxRQUFRLEVBQUU7NEJBQ25CLFdBQVcsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7eUJBQzlCO3dCQUNELElBQUksTUFBTSxDQUFDLG9CQUFvQixFQUFFOzRCQUMvQix1QkFBdUIsQ0FBQyxNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQzt5QkFDdEQ7d0JBQ0QsT0FBTyxNQUFNLENBQUM7b0JBQ2hCLENBQUM7aUJBQ0Y7Z0JBQ0Q7b0JBQ0UsT0FBTyxFQUFFLGNBQWM7b0JBQ3ZCLFFBQVEsRUFBRSxNQUFNLENBQUMsTUFBTSxFQUFFLElBQUksSUFBSSxXQUFXO2lCQUM3QztnQkFDRCwyQkFBMkIsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLFlBQVksQ0FBQztnQkFDeEQsV0FBVzthQUNaO1NBQ0YsQ0FBQTtJQUNILENBQUM7SUFFRCxNQUFNLENBQUMsUUFBUSxDQUFDLFNBQStCLEVBQUU7UUFDL0MsT0FBTztZQUNMLFFBQVEsRUFBRSxhQUFhO1lBQ3ZCLFNBQVMsRUFBRTtnQkFDVDtvQkFDRSxPQUFPLEVBQUUsY0FBYztvQkFDdkIsUUFBUSxFQUFFLE1BQU0sRUFBRSxJQUFJLElBQUksRUFBRSxRQUFRLEdBQUcsT0FBTztpQkFDL0M7Z0JBQ0QsMkJBQTJCLENBQUMsTUFBTSxFQUFFLFlBQVksQ0FBQztnQkFDakQsV0FBVzthQUNaO1NBQ0YsQ0FBQTtJQUNILENBQUM7OEdBNUNVLGFBQWEsa0JBRUosZ0JBQWdCOytHQUZ6QixhQUFhLGlCQUhULFFBQVEsYUFDYixRQUFROytHQUVQLGFBQWE7O1NBQWIsYUFBYTsyRkFBYixhQUFhO2tCQUp6QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLFFBQVEsQ0FBQztvQkFDeEIsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDO2lCQUNwQjs7MEJBR2MsTUFBTTsyQkFBQyxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdCwgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGV9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQge3NldEZldGNoRGVmYXVsdExhbmd1YWdlLCBzZXRMYW5ndWFnZX0gZnJvbSBcIkB1aTUvd2ViY29tcG9uZW50cy1iYXNlL2Rpc3QvY29uZmlnL0xhbmd1YWdlLmpzXCI7XG5pbXBvcnQge0kxOG5QaXBlfSBmcm9tIFwiLi9pMThuLnBpcGVcIjtcbmltcG9ydCB7STE4blNlcnZpY2V9IGZyb20gXCIuL2kxOG4uc2VydmljZVwiO1xuaW1wb3J0IHtJMThuQ29uZmlnfSBmcm9tIFwiLi9pMThuLnR5cGVzXCI7XG5pbXBvcnQge0kxOE5fTkFNRVNQQUNFLCBJMThOX1JPT1RfQ09ORklHfSBmcm9tIFwiLi9pMThuLnRva2Vuc1wiO1xuaW1wb3J0IHtyZXNvbHZlVHJhbnNsYXRpb25zUHJvdmlkZXJ9IGZyb20gXCIuL2kxOG4udXRpbHNcIjtcblxuXG5sZXQgY2hpbGRJZHMgPSAwO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtJMThuUGlwZV0sXG4gIGV4cG9ydHM6IFtJMThuUGlwZV1cbn0pXG5leHBvcnQgY2xhc3MgVWk1STE4bk1vZHVsZSB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktZnVuY3Rpb25cbiAgY29uc3RydWN0b3IoQEluamVjdChJMThOX1JPT1RfQ09ORklHKSBwcml2YXRlIGNvbmZpZzogSTE4bkNvbmZpZykge1xuICB9XG5cbiAgc3RhdGljIGZvclJvb3QoY29uZmlnOiBJMThuQ29uZmlnID0ge30pOiBNb2R1bGVXaXRoUHJvdmlkZXJzPFVpNUkxOG5Nb2R1bGU+IHtcblxuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogVWk1STE4bk1vZHVsZSxcbiAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgcHJvdmlkZTogSTE4Tl9ST09UX0NPTkZJRyxcbiAgICAgICAgICB1c2VGYWN0b3J5OiAoKSA9PiB7XG4gICAgICAgICAgICBpZiAoY29uZmlnLmxhbmd1YWdlKSB7XG4gICAgICAgICAgICAgIHNldExhbmd1YWdlKGNvbmZpZy5sYW5ndWFnZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoY29uZmlnLmZldGNoRGVmYXVsdExhbmd1YWdlKSB7XG4gICAgICAgICAgICAgIHNldEZldGNoRGVmYXVsdExhbmd1YWdlKGNvbmZpZy5mZXRjaERlZmF1bHRMYW5ndWFnZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gY29uZmlnO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHByb3ZpZGU6IEkxOE5fTkFNRVNQQUNFLFxuICAgICAgICAgIHVzZVZhbHVlOiBjb25maWcuYnVuZGxlPy5uYW1lIHx8ICdyb290X2kxOG4nXG4gICAgICAgIH0sXG4gICAgICAgIHJlc29sdmVUcmFuc2xhdGlvbnNQcm92aWRlcihjb25maWcuYnVuZGxlPy50cmFuc2xhdGlvbnMpLFxuICAgICAgICBJMThuU2VydmljZVxuICAgICAgXVxuICAgIH1cbiAgfVxuXG4gIHN0YXRpYyBmb3JDaGlsZChjb25maWc6IEkxOG5Db25maWdbJ2J1bmRsZSddID0ge30pOiBNb2R1bGVXaXRoUHJvdmlkZXJzPFVpNUkxOG5Nb2R1bGU+IHtcbiAgICByZXR1cm4ge1xuICAgICAgbmdNb2R1bGU6IFVpNUkxOG5Nb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHByb3ZpZGU6IEkxOE5fTkFNRVNQQUNFLFxuICAgICAgICAgIHVzZVZhbHVlOiBjb25maWc/Lm5hbWUgfHwgKytjaGlsZElkcyArICdfaTE4bidcbiAgICAgICAgfSxcbiAgICAgICAgcmVzb2x2ZVRyYW5zbGF0aW9uc1Byb3ZpZGVyKGNvbmZpZz8udHJhbnNsYXRpb25zKSxcbiAgICAgICAgSTE4blNlcnZpY2VcbiAgICAgIF1cbiAgICB9XG4gIH1cbn1cbiJdfQ==
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaTE4bi5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3VpNS1hbmd1bGFyL2kxOG4vaTE4bi5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBdUIsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFdkMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDOztBQUd6RSxNQUlhLGFBQWE7SUFDeEIsZ0VBQWdFO0lBQ2hFLFlBQThDLE1BQWtCO1FBQWxCLFdBQU0sR0FBTixNQUFNLENBQVk7SUFDaEUsQ0FBQztJQUVELE1BQU0sQ0FBQyxPQUFPLENBQUMsU0FBcUIsRUFBRTtRQUVwQyxPQUFPO1lBQ0wsUUFBUSxFQUFFLGFBQWE7WUFDdkIsU0FBUyxFQUFFO2dCQUNULGlCQUFpQixDQUFDLE1BQU0sQ0FBQzthQUMxQjtTQUNGLENBQUE7SUFDSCxDQUFDO0lBRUQsTUFBTSxDQUFDLFFBQVEsQ0FBQyxTQUErQixFQUFFO1FBQy9DLE9BQU87WUFDTCxRQUFRLEVBQUUsYUFBYTtZQUN2QixTQUFTLEVBQUU7Z0JBQ1Qsa0JBQWtCLENBQUMsTUFBTSxDQUFDO2FBQzNCO1NBQ0YsQ0FBQTtJQUNILENBQUM7OEdBdEJVLGFBQWEsa0JBRUosZ0JBQWdCOytHQUZ6QixhQUFhLFlBSGQsUUFBUSxhQUNSLFFBQVE7K0dBRVAsYUFBYTs7U0FBYixhQUFhOzJGQUFiLGFBQWE7a0JBSnpCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDO29CQUNuQixPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUM7aUJBQ3BCOzswQkFHYyxNQUFNOzJCQUFDLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgSTE4blBpcGUgfSBmcm9tIFwiLi9pMThuLnBpcGVcIjtcbmltcG9ydCB7IEkxOG5Db25maWcgfSBmcm9tIFwiLi9pMThuLnR5cGVzXCI7XG5pbXBvcnQgeyBJMThOX1JPT1RfQ09ORklHIH0gZnJvbSBcIi4vaTE4bi50b2tlbnNcIjtcbmltcG9ydCB7IGkxOG5DaGlsZFByb3ZpZGVycywgaTE4blJvb3RQcm92aWRlcnMgfSBmcm9tIFwiLi9pMThuLnByb3ZpZGVyc1wiO1xuXG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtJMThuUGlwZV0sXG4gIGV4cG9ydHM6IFtJMThuUGlwZV1cbn0pXG5leHBvcnQgY2xhc3MgVWk1STE4bk1vZHVsZSB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktZnVuY3Rpb25cbiAgY29uc3RydWN0b3IoQEluamVjdChJMThOX1JPT1RfQ09ORklHKSBwcml2YXRlIGNvbmZpZzogSTE4bkNvbmZpZykge1xuICB9XG5cbiAgc3RhdGljIGZvclJvb3QoY29uZmlnOiBJMThuQ29uZmlnID0ge30pOiBNb2R1bGVXaXRoUHJvdmlkZXJzPFVpNUkxOG5Nb2R1bGU+IHtcblxuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogVWk1STE4bk1vZHVsZSxcbiAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICBpMThuUm9vdFByb3ZpZGVycyhjb25maWcpXG4gICAgICBdXG4gICAgfVxuICB9XG5cbiAgc3RhdGljIGZvckNoaWxkKGNvbmZpZzogSTE4bkNvbmZpZ1snYnVuZGxlJ10gPSB7fSk6IE1vZHVsZVdpdGhQcm92aWRlcnM8VWk1STE4bk1vZHVsZT4ge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogVWk1STE4bk1vZHVsZSxcbiAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICBpMThuQ2hpbGRQcm92aWRlcnMoY29uZmlnKVxuICAgICAgXVxuICAgIH1cbiAgfVxufVxuIl19
@@ -33,14 +33,15 @@ class I18nPipe {
33
33
  this._destroyed$.complete();
34
34
  }
35
35
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: I18nPipe, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.I18nService }], target: i0.ɵɵFactoryTarget.Pipe }); }
36
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.0.0", ngImport: i0, type: I18nPipe, name: "ui5I18n", pure: false }); }
36
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.0.0", ngImport: i0, type: I18nPipe, isStandalone: true, name: "ui5I18n", pure: false }); }
37
37
  }
38
38
  export { I18nPipe };
39
39
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: I18nPipe, decorators: [{
40
40
  type: Pipe,
41
41
  args: [{
42
42
  name: 'ui5I18n',
43
- pure: false
43
+ pure: false,
44
+ standalone: true
44
45
  }]
45
46
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.I18nService }]; } });
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaTE4bi5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy91aTUtYW5ndWxhci9pMThuL2kxOG4ucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsaUJBQWlCLEVBQWEsSUFBSSxFQUFnQixNQUFNLGVBQWUsQ0FBQztBQUNoRixPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFDLG9CQUFvQixFQUFFLE9BQU8sRUFBZ0IsU0FBUyxFQUFDLE1BQU0sTUFBTSxDQUFDOzs7QUFFNUUsTUFJYSxRQUFRO0lBT25CLFlBQW9CLGlCQUFvQyxFQUNwQyxXQUF3QjtRQUR4QixzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQ3BDLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBUHBDLDBCQUFxQixHQUFHLEVBQUUsQ0FBQztRQUUzQixnQkFBVyxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7SUFNMUMsQ0FBQztJQUVELFNBQVMsQ0FBQyxLQUFhLEVBQUUsR0FBRyxNQUFhO1FBQ3ZDLE1BQU0sYUFBYSxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxLQUFLLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ2hILElBQUksS0FBSyxLQUFLLElBQUksQ0FBQyxVQUFVLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDL0MsT0FBTyxJQUFJLENBQUMscUJBQXFCLENBQUM7U0FDbkM7UUFDRCxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztRQUN4QixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsTUFBTSxDQUFDO1FBQy9CLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUN0QixJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ2pDLElBQUksQ0FBQyxhQUFhLEdBQUcsU0FBUyxDQUFDO1NBQ2hDO1FBQ0QsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsR0FBRyxNQUFNLENBQUM7YUFDNUQsSUFBSSxDQUNILG9CQUFvQixFQUFFLEVBQ3RCLFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQzVCLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDbkIsSUFBSSxDQUFDLHFCQUFxQixHQUFHLElBQUksQ0FBQztZQUNsQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDeEMsQ0FBQyxDQUFDLENBQUM7UUFDTCxPQUFPLElBQUksQ0FBQyxxQkFBcUIsQ0FBQztJQUNwQyxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM5QixDQUFDOzhHQXBDVSxRQUFROzRHQUFSLFFBQVE7O1NBQVIsUUFBUTsyRkFBUixRQUFRO2tCQUpwQixJQUFJO21CQUFDO29CQUNKLElBQUksRUFBRSxTQUFTO29CQUNmLElBQUksRUFBRSxLQUFLO2lCQUNaIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDaGFuZ2VEZXRlY3RvclJlZiwgT25EZXN0cm95LCBQaXBlLCBQaXBlVHJhbnNmb3JtfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHtJMThuU2VydmljZX0gZnJvbSBcIi4vaTE4bi5zZXJ2aWNlXCI7XG5pbXBvcnQge2Rpc3RpbmN0VW50aWxDaGFuZ2VkLCBTdWJqZWN0LCBTdWJzY3JpcHRpb24sIHRha2VVbnRpbH0gZnJvbSBcInJ4anNcIjtcblxuQFBpcGUoe1xuICBuYW1lOiAndWk1STE4bicsXG4gIHB1cmU6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIEkxOG5QaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSwgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSBfbGFzdFRyYW5zbGF0aW9uVmFsdWUgPSAnJztcbiAgcHJpdmF0ZSBfc3Vic2NyaXB0aW9uPzogU3Vic2NyaXB0aW9uO1xuICBwcml2YXRlIF9kZXN0cm95ZWQkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgcHJpdmF0ZSBfbGFzdFZhbHVlITogc3RyaW5nO1xuICBwcml2YXRlIF9sYXN0VmFsdWVQYXJhbXMhOiBzdHJpbmdbXTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgICAgICAgcHJpdmF0ZSBpMThuU2VydmljZTogSTE4blNlcnZpY2UpIHtcbiAgfVxuXG4gIHRyYW5zZm9ybSh2YWx1ZTogc3RyaW5nLCAuLi5wYXJhbXM6IGFueVtdKTogc3RyaW5nIHtcbiAgICBjb25zdCBwYXJhbXNDaGFuZ2VkID0gIXRoaXMuX2xhc3RWYWx1ZSB8fCBwYXJhbXMuc29tZSgocGFyYW0sIGluZGV4KSA9PiBwYXJhbSAhPT0gdGhpcy5fbGFzdFZhbHVlUGFyYW1zW2luZGV4XSk7XG4gICAgaWYgKHZhbHVlID09PSB0aGlzLl9sYXN0VmFsdWUgJiYgIXBhcmFtc0NoYW5nZWQpIHtcbiAgICAgIHJldHVybiB0aGlzLl9sYXN0VHJhbnNsYXRpb25WYWx1ZTtcbiAgICB9XG4gICAgdGhpcy5fbGFzdFZhbHVlID0gdmFsdWU7XG4gICAgdGhpcy5fbGFzdFZhbHVlUGFyYW1zID0gcGFyYW1zO1xuICAgIGlmICh0aGlzLl9zdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgdGhpcy5fc3Vic2NyaXB0aW9uID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgICB0aGlzLl9zdWJzY3JpcHRpb24gPSB0aGlzLmkxOG5TZXJ2aWNlLmdldFRleHQodmFsdWUsIC4uLnBhcmFtcylcbiAgICAgIC5waXBlKFxuICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5fZGVzdHJveWVkJClcbiAgICAgICkuc3Vic2NyaWJlKCh0ZXh0KSA9PiB7XG4gICAgICAgIHRoaXMuX2xhc3RUcmFuc2xhdGlvblZhbHVlID0gdGV4dDtcbiAgICAgICAgdGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIH0pO1xuICAgIHJldHVybiB0aGlzLl9sYXN0VHJhbnNsYXRpb25WYWx1ZTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX2Rlc3Ryb3llZCQubmV4dCgpO1xuICAgIHRoaXMuX2Rlc3Ryb3llZCQuY29tcGxldGUoKTtcbiAgfVxufVxuIl19
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaTE4bi5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy91aTUtYW5ndWxhci9pMThuL2kxOG4ucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsaUJBQWlCLEVBQWEsSUFBSSxFQUFnQixNQUFNLGVBQWUsQ0FBQztBQUNoRixPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFDLG9CQUFvQixFQUFFLE9BQU8sRUFBZ0IsU0FBUyxFQUFDLE1BQU0sTUFBTSxDQUFDOzs7QUFFNUUsTUFLYSxRQUFRO0lBT25CLFlBQW9CLGlCQUFvQyxFQUNwQyxXQUF3QjtRQUR4QixzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQ3BDLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBUHBDLDBCQUFxQixHQUFHLEVBQUUsQ0FBQztRQUUzQixnQkFBVyxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7SUFNMUMsQ0FBQztJQUVELFNBQVMsQ0FBQyxLQUFhLEVBQUUsR0FBRyxNQUFhO1FBQ3ZDLE1BQU0sYUFBYSxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxLQUFLLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ2hILElBQUksS0FBSyxLQUFLLElBQUksQ0FBQyxVQUFVLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDL0MsT0FBTyxJQUFJLENBQUMscUJBQXFCLENBQUM7U0FDbkM7UUFDRCxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztRQUN4QixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsTUFBTSxDQUFDO1FBQy9CLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUN0QixJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ2pDLElBQUksQ0FBQyxhQUFhLEdBQUcsU0FBUyxDQUFDO1NBQ2hDO1FBQ0QsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsR0FBRyxNQUFNLENBQUM7YUFDNUQsSUFBSSxDQUNILG9CQUFvQixFQUFFLEVBQ3RCLFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQzVCLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDbkIsSUFBSSxDQUFDLHFCQUFxQixHQUFHLElBQUksQ0FBQztZQUNsQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDeEMsQ0FBQyxDQUFDLENBQUM7UUFDTCxPQUFPLElBQUksQ0FBQyxxQkFBcUIsQ0FBQztJQUNwQyxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM5QixDQUFDOzhHQXBDVSxRQUFROzRHQUFSLFFBQVE7O1NBQVIsUUFBUTsyRkFBUixRQUFRO2tCQUxwQixJQUFJO21CQUFDO29CQUNKLElBQUksRUFBRSxTQUFTO29CQUNmLElBQUksRUFBRSxLQUFLO29CQUNYLFVBQVUsRUFBRSxJQUFJO2lCQUNqQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q2hhbmdlRGV0ZWN0b3JSZWYsIE9uRGVzdHJveSwgUGlwZSwgUGlwZVRyYW5zZm9ybX0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7STE4blNlcnZpY2V9IGZyb20gXCIuL2kxOG4uc2VydmljZVwiO1xuaW1wb3J0IHtkaXN0aW5jdFVudGlsQ2hhbmdlZCwgU3ViamVjdCwgU3Vic2NyaXB0aW9uLCB0YWtlVW50aWx9IGZyb20gXCJyeGpzXCI7XG5cbkBQaXBlKHtcbiAgbmFtZTogJ3VpNUkxOG4nLFxuICBwdXJlOiBmYWxzZSxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBJMThuUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0sIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgX2xhc3RUcmFuc2xhdGlvblZhbHVlID0gJyc7XG4gIHByaXZhdGUgX3N1YnNjcmlwdGlvbj86IFN1YnNjcmlwdGlvbjtcbiAgcHJpdmF0ZSBfZGVzdHJveWVkJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIHByaXZhdGUgX2xhc3RWYWx1ZSE6IHN0cmluZztcbiAgcHJpdmF0ZSBfbGFzdFZhbHVlUGFyYW1zITogc3RyaW5nW107XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgICAgICAgIHByaXZhdGUgaTE4blNlcnZpY2U6IEkxOG5TZXJ2aWNlKSB7XG4gIH1cblxuICB0cmFuc2Zvcm0odmFsdWU6IHN0cmluZywgLi4ucGFyYW1zOiBhbnlbXSk6IHN0cmluZyB7XG4gICAgY29uc3QgcGFyYW1zQ2hhbmdlZCA9ICF0aGlzLl9sYXN0VmFsdWUgfHwgcGFyYW1zLnNvbWUoKHBhcmFtLCBpbmRleCkgPT4gcGFyYW0gIT09IHRoaXMuX2xhc3RWYWx1ZVBhcmFtc1tpbmRleF0pO1xuICAgIGlmICh2YWx1ZSA9PT0gdGhpcy5fbGFzdFZhbHVlICYmICFwYXJhbXNDaGFuZ2VkKSB7XG4gICAgICByZXR1cm4gdGhpcy5fbGFzdFRyYW5zbGF0aW9uVmFsdWU7XG4gICAgfVxuICAgIHRoaXMuX2xhc3RWYWx1ZSA9IHZhbHVlO1xuICAgIHRoaXMuX2xhc3RWYWx1ZVBhcmFtcyA9IHBhcmFtcztcbiAgICBpZiAodGhpcy5fc3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLl9zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbiA9IHVuZGVmaW5lZDtcbiAgICB9XG4gICAgdGhpcy5fc3Vic2NyaXB0aW9uID0gdGhpcy5pMThuU2VydmljZS5nZXRUZXh0KHZhbHVlLCAuLi5wYXJhbXMpXG4gICAgICAucGlwZShcbiAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3llZCQpXG4gICAgICApLnN1YnNjcmliZSgodGV4dCkgPT4ge1xuICAgICAgICB0aGlzLl9sYXN0VHJhbnNsYXRpb25WYWx1ZSA9IHRleHQ7XG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgICB9KTtcbiAgICByZXR1cm4gdGhpcy5fbGFzdFRyYW5zbGF0aW9uVmFsdWU7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9kZXN0cm95ZWQkLm5leHQoKTtcbiAgICB0aGlzLl9kZXN0cm95ZWQkLmNvbXBsZXRlKCk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,38 @@
1
+ import { setFetchDefaultLanguage, setLanguage } from "@ui5/webcomponents-base/dist/config/Language.js";
2
+ import { I18N_NAMESPACE, I18N_ROOT_CONFIG } from "./i18n.tokens";
3
+ import { resolveTranslationsProvider } from "./i18n.utils";
4
+ import { I18nService } from "./i18n.service";
5
+ let childIds = 0;
6
+ export function i18nRootProviders(config) {
7
+ return [
8
+ {
9
+ provide: I18N_ROOT_CONFIG,
10
+ useFactory: () => {
11
+ if (config.language) {
12
+ setLanguage(config.language);
13
+ }
14
+ if (config.fetchDefaultLanguage) {
15
+ setFetchDefaultLanguage(config.fetchDefaultLanguage);
16
+ }
17
+ return config;
18
+ }
19
+ },
20
+ {
21
+ provide: I18N_NAMESPACE,
22
+ useValue: config.bundle?.name || 'root_i18n'
23
+ },
24
+ resolveTranslationsProvider(config.bundle?.translations),
25
+ I18nService
26
+ ];
27
+ }
28
+ export function i18nChildProviders(config) {
29
+ return [
30
+ {
31
+ provide: I18N_NAMESPACE,
32
+ useValue: config?.name || ++childIds + '_i18n'
33
+ },
34
+ resolveTranslationsProvider(config?.translations),
35
+ I18nService
36
+ ];
37
+ }
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaTE4bi5wcm92aWRlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3VpNS1hbmd1bGFyL2kxOG4vaTE4bi5wcm92aWRlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFdBQVcsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBRXZHLE9BQU8sRUFBRSxjQUFjLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakUsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzNELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU3QyxJQUFJLFFBQVEsR0FBRyxDQUFDLENBQUM7QUFDakIsTUFBTSxVQUFVLGlCQUFpQixDQUFDLE1BQWtCO0lBQ2xELE9BQU87UUFDTDtZQUNFLE9BQU8sRUFBRSxnQkFBZ0I7WUFDekIsVUFBVSxFQUFFLEdBQUcsRUFBRTtnQkFDZixJQUFJLE1BQU0sQ0FBQyxRQUFRLEVBQUU7b0JBQ25CLFdBQVcsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7aUJBQzlCO2dCQUNELElBQUksTUFBTSxDQUFDLG9CQUFvQixFQUFFO29CQUMvQix1QkFBdUIsQ0FBQyxNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQztpQkFDdEQ7Z0JBQ0QsT0FBTyxNQUFNLENBQUM7WUFDaEIsQ0FBQztTQUNGO1FBQ0Q7WUFDRSxPQUFPLEVBQUUsY0FBYztZQUN2QixRQUFRLEVBQUUsTUFBTSxDQUFDLE1BQU0sRUFBRSxJQUFJLElBQUksV0FBVztTQUM3QztRQUNELDJCQUEyQixDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsWUFBWSxDQUFDO1FBQ3hELFdBQVc7S0FDWixDQUFBO0FBQ0gsQ0FBQztBQUVELE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxNQUE0QjtJQUM3RCxPQUFPO1FBQ0w7WUFDRSxPQUFPLEVBQUUsY0FBYztZQUN2QixRQUFRLEVBQUUsTUFBTSxFQUFFLElBQUksSUFBSSxFQUFFLFFBQVEsR0FBRyxPQUFPO1NBQy9DO1FBQ0QsMkJBQTJCLENBQUMsTUFBTSxFQUFFLFlBQVksQ0FBQztRQUNqRCxXQUFXO0tBQ1osQ0FBQTtBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBzZXRGZXRjaERlZmF1bHRMYW5ndWFnZSwgc2V0TGFuZ3VhZ2UgfSBmcm9tIFwiQHVpNS93ZWJjb21wb25lbnRzLWJhc2UvZGlzdC9jb25maWcvTGFuZ3VhZ2UuanNcIjtcbmltcG9ydCB7IEkxOG5Db25maWcgfSBmcm9tIFwiLi9pMThuLnR5cGVzXCI7XG5pbXBvcnQgeyBJMThOX05BTUVTUEFDRSwgSTE4Tl9ST09UX0NPTkZJRyB9IGZyb20gXCIuL2kxOG4udG9rZW5zXCI7XG5pbXBvcnQgeyByZXNvbHZlVHJhbnNsYXRpb25zUHJvdmlkZXIgfSBmcm9tIFwiLi9pMThuLnV0aWxzXCI7XG5pbXBvcnQgeyBJMThuU2VydmljZSB9IGZyb20gXCIuL2kxOG4uc2VydmljZVwiO1xuXG5sZXQgY2hpbGRJZHMgPSAwO1xuZXhwb3J0IGZ1bmN0aW9uIGkxOG5Sb290UHJvdmlkZXJzKGNvbmZpZzogSTE4bkNvbmZpZykge1xuICByZXR1cm4gW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IEkxOE5fUk9PVF9DT05GSUcsXG4gICAgICB1c2VGYWN0b3J5OiAoKSA9PiB7XG4gICAgICAgIGlmIChjb25maWcubGFuZ3VhZ2UpIHtcbiAgICAgICAgICBzZXRMYW5ndWFnZShjb25maWcubGFuZ3VhZ2UpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjb25maWcuZmV0Y2hEZWZhdWx0TGFuZ3VhZ2UpIHtcbiAgICAgICAgICBzZXRGZXRjaERlZmF1bHRMYW5ndWFnZShjb25maWcuZmV0Y2hEZWZhdWx0TGFuZ3VhZ2UpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjb25maWc7XG4gICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBJMThOX05BTUVTUEFDRSxcbiAgICAgIHVzZVZhbHVlOiBjb25maWcuYnVuZGxlPy5uYW1lIHx8ICdyb290X2kxOG4nXG4gICAgfSxcbiAgICByZXNvbHZlVHJhbnNsYXRpb25zUHJvdmlkZXIoY29uZmlnLmJ1bmRsZT8udHJhbnNsYXRpb25zKSxcbiAgICBJMThuU2VydmljZVxuICBdXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpMThuQ2hpbGRQcm92aWRlcnMoY29uZmlnOiBJMThuQ29uZmlnWydidW5kbGUnXSkge1xuICByZXR1cm4gW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IEkxOE5fTkFNRVNQQUNFLFxuICAgICAgdXNlVmFsdWU6IGNvbmZpZz8ubmFtZSB8fCArK2NoaWxkSWRzICsgJ19pMThuJ1xuICAgIH0sXG4gICAgcmVzb2x2ZVRyYW5zbGF0aW9uc1Byb3ZpZGVyKGNvbmZpZz8udHJhbnNsYXRpb25zKSxcbiAgICBJMThuU2VydmljZVxuICBdXG59XG4iXX0=
@@ -1,4 +1,5 @@
1
1
  export * from './i18n.module';
2
2
  export * from './i18n.service';
3
3
  export * from './i18n.pipe';
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3VpNS1hbmd1bGFyL2kxOG4vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLGFBQWEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vaTE4bi5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9pMThuLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9pMThuLnBpcGUnO1xuIl19
4
+ export * from './i18n.providers';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3VpNS1hbmd1bGFyL2kxOG4vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLGtCQUFrQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9pMThuLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2kxOG4uc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2kxOG4ucGlwZSc7XG5leHBvcnQgKiBmcm9tICcuL2kxOG4ucHJvdmlkZXJzJztcbiJdfQ==
@@ -1,8 +1,8 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { InjectionToken, inject, Injectable, Inject, Pipe, NgModule } from '@angular/core';
3
- import { getLanguage, setLanguage, setFetchDefaultLanguage } from '@ui5/webcomponents-base/dist/config/Language.js';
4
3
  import { registerI18nLoader, getI18nBundle } from '@ui5/webcomponents-base/dist/i18nBundle.js';
5
4
  import parseProperties from '@ui5/webcomponents-base/dist/PropertiesFileFormat.js';
5
+ import { getLanguage, setLanguage, setFetchDefaultLanguage } from '@ui5/webcomponents-base/dist/config/Language.js';
6
6
  import { BehaviorSubject, isObservable, firstValueFrom, from, filter, first, tap, switchMap, map, of, Subject, distinctUntilChanged, takeUntil } from 'rxjs';
7
7
 
8
8
  const I18N_ROOT_CONFIG = new InjectionToken('rootI18nConfig');
@@ -107,13 +107,14 @@ class I18nPipe {
107
107
  this._destroyed$.complete();
108
108
  }
109
109
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: I18nPipe, deps: [{ token: i0.ChangeDetectorRef }, { token: I18nService }], target: i0.ɵɵFactoryTarget.Pipe }); }
110
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.0.0", ngImport: i0, type: I18nPipe, name: "ui5I18n", pure: false }); }
110
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.0.0", ngImport: i0, type: I18nPipe, isStandalone: true, name: "ui5I18n", pure: false }); }
111
111
  }
112
112
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: I18nPipe, decorators: [{
113
113
  type: Pipe,
114
114
  args: [{
115
115
  name: 'ui5I18n',
116
- pure: false
116
+ pure: false,
117
+ standalone: true
117
118
  }]
118
119
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: I18nService }]; } });
119
120
 
@@ -138,6 +139,39 @@ function resolveTranslationsProvider(translations) {
138
139
  }
139
140
 
140
141
  let childIds = 0;
142
+ function i18nRootProviders(config) {
143
+ return [
144
+ {
145
+ provide: I18N_ROOT_CONFIG,
146
+ useFactory: () => {
147
+ if (config.language) {
148
+ setLanguage(config.language);
149
+ }
150
+ if (config.fetchDefaultLanguage) {
151
+ setFetchDefaultLanguage(config.fetchDefaultLanguage);
152
+ }
153
+ return config;
154
+ }
155
+ },
156
+ {
157
+ provide: I18N_NAMESPACE,
158
+ useValue: config.bundle?.name || 'root_i18n'
159
+ },
160
+ resolveTranslationsProvider(config.bundle?.translations),
161
+ I18nService
162
+ ];
163
+ }
164
+ function i18nChildProviders(config) {
165
+ return [
166
+ {
167
+ provide: I18N_NAMESPACE,
168
+ useValue: config?.name || ++childIds + '_i18n'
169
+ },
170
+ resolveTranslationsProvider(config?.translations),
171
+ I18nService
172
+ ];
173
+ }
174
+
141
175
  class Ui5I18nModule {
142
176
  // eslint-disable-next-line @typescript-eslint/no-empty-function
143
177
  constructor(config) {
@@ -147,24 +181,7 @@ class Ui5I18nModule {
147
181
  return {
148
182
  ngModule: Ui5I18nModule,
149
183
  providers: [
150
- {
151
- provide: I18N_ROOT_CONFIG,
152
- useFactory: () => {
153
- if (config.language) {
154
- setLanguage(config.language);
155
- }
156
- if (config.fetchDefaultLanguage) {
157
- setFetchDefaultLanguage(config.fetchDefaultLanguage);
158
- }
159
- return config;
160
- }
161
- },
162
- {
163
- provide: I18N_NAMESPACE,
164
- useValue: config.bundle?.name || 'root_i18n'
165
- },
166
- resolveTranslationsProvider(config.bundle?.translations),
167
- I18nService
184
+ i18nRootProviders(config)
168
185
  ]
169
186
  };
170
187
  }
@@ -172,23 +189,18 @@ class Ui5I18nModule {
172
189
  return {
173
190
  ngModule: Ui5I18nModule,
174
191
  providers: [
175
- {
176
- provide: I18N_NAMESPACE,
177
- useValue: config?.name || ++childIds + '_i18n'
178
- },
179
- resolveTranslationsProvider(config?.translations),
180
- I18nService
192
+ i18nChildProviders(config)
181
193
  ]
182
194
  };
183
195
  }
184
196
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: Ui5I18nModule, deps: [{ token: I18N_ROOT_CONFIG }], target: i0.ɵɵFactoryTarget.NgModule }); }
185
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.0.0", ngImport: i0, type: Ui5I18nModule, declarations: [I18nPipe], exports: [I18nPipe] }); }
197
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.0.0", ngImport: i0, type: Ui5I18nModule, imports: [I18nPipe], exports: [I18nPipe] }); }
186
198
  static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: Ui5I18nModule }); }
187
199
  }
188
200
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImport: i0, type: Ui5I18nModule, decorators: [{
189
201
  type: NgModule,
190
202
  args: [{
191
- declarations: [I18nPipe],
203
+ imports: [I18nPipe],
192
204
  exports: [I18nPipe]
193
205
  }]
194
206
  }], ctorParameters: function () { return [{ type: undefined, decorators: [{
@@ -200,5 +212,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0", ngImpor
200
212
  * Generated bundle index. Do not edit.
201
213
  */
202
214
 
203
- export { I18nPipe, I18nService, Ui5I18nModule };
215
+ export { I18nPipe, I18nService, Ui5I18nModule, i18nChildProviders, i18nRootProviders };
204
216
  //# sourceMappingURL=ui5-webcomponents-ngx-i18n.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ui5-webcomponents-ngx-i18n.mjs","sources":["../../../../libs/ui5-angular/i18n/i18n.tokens.ts","../../../../libs/ui5-angular/i18n/i18n.service.ts","../../../../libs/ui5-angular/i18n/i18n.pipe.ts","../../../../libs/ui5-angular/i18n/i18n.utils.ts","../../../../libs/ui5-angular/i18n/i18n.module.ts","../../../../libs/ui5-angular/i18n/ui5-webcomponents-ngx-i18n.ts"],"sourcesContent":["import {InjectionToken} from \"@angular/core\";\nimport {I18nConfig, Translations} from \"./i18n.types\";\n\nexport const I18N_ROOT_CONFIG = new InjectionToken<I18nConfig>('rootI18nConfig');\nexport const I18N_NAMESPACE = new InjectionToken<string>('i18nNamespace');\nexport const I18N_TRANSLATIONS = new InjectionToken<Translations>('i18nTranslations');\n","import {Inject, inject, Injectable} from \"@angular/core\";\nimport I18nBundle, {getI18nBundle, registerI18nLoader} from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport parseProperties from \"@ui5/webcomponents-base/dist/PropertiesFileFormat.js\";\n\nimport {getLanguage, setLanguage} from \"@ui5/webcomponents-base/dist/config/Language.js\";\nimport {\n BehaviorSubject,\n filter,\n first,\n firstValueFrom,\n from,\n isObservable,\n map,\n Observable,\n of,\n switchMap,\n tap\n} from \"rxjs\";\nimport {I18N_NAMESPACE, I18N_ROOT_CONFIG, I18N_TRANSLATIONS} from \"./i18n.tokens\";\nimport {I18nConfig, Translations} from \"./i18n.types\";\n\n@Injectable()\nexport class I18nService {\n private parent: I18nService | null = inject(I18nService, {skipSelf: true, optional: true});\n private currentLanguage$ = new BehaviorSubject<string>(getLanguage() || this.config.language as string);\n private readonly i18nBundle$: Observable<I18nBundle>;\n private loadedLanguages$ = new BehaviorSubject<string[]>([]);\n\n constructor(\n @Inject(I18N_ROOT_CONFIG) private config: I18nConfig,\n @Inject(I18N_NAMESPACE) private namespace: string,\n @Inject(I18N_TRANSLATIONS) private bundles: Translations = {}\n ) {\n Object.keys(bundles).forEach((lang) => {\n registerI18nLoader(this.namespace, lang, async (localeId: string) => {\n const val = this.bundles[localeId];\n const result = isObservable(val) ? await firstValueFrom(val) : await val;\n setTimeout(() => {\n this.loadedLanguages$.next([\n ...new Set([...this.loadedLanguages$.value, localeId]).values()\n ]);\n });\n if (typeof result === 'string') {\n return parseProperties(result);\n }\n return result;\n });\n });\n this.i18nBundle$ = from(getI18nBundle(this.namespace));\n }\n\n currentLanguage(): string | undefined {\n if (this.parent) {\n return this.parent.currentLanguage();\n }\n return this.currentLanguage$.value;\n }\n\n currentLanguageEvent(): Observable<string> {\n if (this.parent) {\n return this.parent.currentLanguageEvent();\n }\n return this.currentLanguage$;\n }\n\n setLanguage(language: string): void {\n if (this.parent) {\n return this.parent.setLanguage(language);\n }\n setLanguage(language);\n this.loadedLanguages$.pipe(\n filter(langs => langs.includes(language)),\n first(),\n tap(() => this.currentLanguage$.next(language))\n ).subscribe();\n }\n\n getText(key: string, ...placeholders: any[]): Observable<string> {\n return this.currentLanguageEvent().pipe(\n switchMap(() => this.i18nBundle$),\n map((bundle) => bundle.getText({key, defaultText: key}, ...placeholders)),\n switchMap((text) => {\n if (text === key && this.parent) {\n return this.parent.getText(key, ...placeholders);\n }\n return of(text);\n })\n );\n }\n}\n","import {ChangeDetectorRef, OnDestroy, Pipe, PipeTransform} from \"@angular/core\";\nimport {I18nService} from \"./i18n.service\";\nimport {distinctUntilChanged, Subject, Subscription, takeUntil} from \"rxjs\";\n\n@Pipe({\n name: 'ui5I18n',\n pure: false\n})\nexport class I18nPipe implements PipeTransform, OnDestroy {\n private _lastTranslationValue = '';\n private _subscription?: Subscription;\n private _destroyed$ = new Subject<void>();\n private _lastValue!: string;\n private _lastValueParams!: string[];\n\n constructor(private changeDetectorRef: ChangeDetectorRef,\n private i18nService: I18nService) {\n }\n\n transform(value: string, ...params: any[]): string {\n const paramsChanged = !this._lastValue || params.some((param, index) => param !== this._lastValueParams[index]);\n if (value === this._lastValue && !paramsChanged) {\n return this._lastTranslationValue;\n }\n this._lastValue = value;\n this._lastValueParams = params;\n if (this._subscription) {\n this._subscription.unsubscribe();\n this._subscription = undefined;\n }\n this._subscription = this.i18nService.getText(value, ...params)\n .pipe(\n distinctUntilChanged(),\n takeUntil(this._destroyed$)\n ).subscribe((text) => {\n this._lastTranslationValue = text;\n this.changeDetectorRef.markForCheck();\n });\n return this._lastTranslationValue;\n }\n\n ngOnDestroy(): void {\n this._destroyed$.next();\n this._destroyed$.complete();\n }\n}\n","import {FactorySansProvider, Provider} from \"@angular/core\";\nimport {Translations} from \"./i18n.types\";\nimport {I18N_TRANSLATIONS} from \"./i18n.tokens\";\n\nexport function resolveTranslationsProvider(translations?: Translations | FactorySansProvider): Provider {\n if (!translations) {\n return {\n provide: I18N_TRANSLATIONS,\n useValue: {}\n };\n }\n if (typeof translations.useFactory === 'function') {\n return {\n provide: I18N_TRANSLATIONS,\n useFactory: (translations as FactorySansProvider).useFactory,\n deps: (translations as FactorySansProvider).deps || [],\n }\n }\n return {\n provide: I18N_TRANSLATIONS,\n useValue: translations\n };\n}\n","import {Inject, ModuleWithProviders, NgModule} from \"@angular/core\";\nimport {setFetchDefaultLanguage, setLanguage} from \"@ui5/webcomponents-base/dist/config/Language.js\";\nimport {I18nPipe} from \"./i18n.pipe\";\nimport {I18nService} from \"./i18n.service\";\nimport {I18nConfig} from \"./i18n.types\";\nimport {I18N_NAMESPACE, I18N_ROOT_CONFIG} from \"./i18n.tokens\";\nimport {resolveTranslationsProvider} from \"./i18n.utils\";\n\n\nlet childIds = 0;\n\n@NgModule({\n declarations: [I18nPipe],\n exports: [I18nPipe]\n})\nexport class Ui5I18nModule {\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n constructor(@Inject(I18N_ROOT_CONFIG) private config: I18nConfig) {\n }\n\n static forRoot(config: I18nConfig = {}): ModuleWithProviders<Ui5I18nModule> {\n\n return {\n ngModule: Ui5I18nModule,\n providers: [\n {\n provide: I18N_ROOT_CONFIG,\n useFactory: () => {\n if (config.language) {\n setLanguage(config.language);\n }\n if (config.fetchDefaultLanguage) {\n setFetchDefaultLanguage(config.fetchDefaultLanguage);\n }\n return config;\n }\n },\n {\n provide: I18N_NAMESPACE,\n useValue: config.bundle?.name || 'root_i18n'\n },\n resolveTranslationsProvider(config.bundle?.translations),\n I18nService\n ]\n }\n }\n\n static forChild(config: I18nConfig['bundle'] = {}): ModuleWithProviders<Ui5I18nModule> {\n return {\n ngModule: Ui5I18nModule,\n providers: [\n {\n provide: I18N_NAMESPACE,\n useValue: config?.name || ++childIds + '_i18n'\n },\n resolveTranslationsProvider(config?.translations),\n I18nService\n ]\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.I18nService"],"mappings":"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"}
1
+ {"version":3,"file":"ui5-webcomponents-ngx-i18n.mjs","sources":["../../../../libs/ui5-angular/i18n/i18n.tokens.ts","../../../../libs/ui5-angular/i18n/i18n.service.ts","../../../../libs/ui5-angular/i18n/i18n.pipe.ts","../../../../libs/ui5-angular/i18n/i18n.utils.ts","../../../../libs/ui5-angular/i18n/i18n.providers.ts","../../../../libs/ui5-angular/i18n/i18n.module.ts","../../../../libs/ui5-angular/i18n/ui5-webcomponents-ngx-i18n.ts"],"sourcesContent":["import {InjectionToken} from \"@angular/core\";\nimport {I18nConfig, Translations} from \"./i18n.types\";\n\nexport const I18N_ROOT_CONFIG = new InjectionToken<I18nConfig>('rootI18nConfig');\nexport const I18N_NAMESPACE = new InjectionToken<string>('i18nNamespace');\nexport const I18N_TRANSLATIONS = new InjectionToken<Translations>('i18nTranslations');\n","import {Inject, inject, Injectable} from \"@angular/core\";\nimport I18nBundle, {getI18nBundle, registerI18nLoader} from \"@ui5/webcomponents-base/dist/i18nBundle.js\";\nimport parseProperties from \"@ui5/webcomponents-base/dist/PropertiesFileFormat.js\";\n\nimport {getLanguage, setLanguage} from \"@ui5/webcomponents-base/dist/config/Language.js\";\nimport {\n BehaviorSubject,\n filter,\n first,\n firstValueFrom,\n from,\n isObservable,\n map,\n Observable,\n of,\n switchMap,\n tap\n} from \"rxjs\";\nimport {I18N_NAMESPACE, I18N_ROOT_CONFIG, I18N_TRANSLATIONS} from \"./i18n.tokens\";\nimport {I18nConfig, Translations} from \"./i18n.types\";\n\n@Injectable()\nexport class I18nService {\n private parent: I18nService | null = inject(I18nService, {skipSelf: true, optional: true});\n private currentLanguage$ = new BehaviorSubject<string>(getLanguage() || this.config.language as string);\n private readonly i18nBundle$: Observable<I18nBundle>;\n private loadedLanguages$ = new BehaviorSubject<string[]>([]);\n\n constructor(\n @Inject(I18N_ROOT_CONFIG) private config: I18nConfig,\n @Inject(I18N_NAMESPACE) private namespace: string,\n @Inject(I18N_TRANSLATIONS) private bundles: Translations = {}\n ) {\n Object.keys(bundles).forEach((lang) => {\n registerI18nLoader(this.namespace, lang, async (localeId: string) => {\n const val = this.bundles[localeId];\n const result = isObservable(val) ? await firstValueFrom(val) : await val;\n setTimeout(() => {\n this.loadedLanguages$.next([\n ...new Set([...this.loadedLanguages$.value, localeId]).values()\n ]);\n });\n if (typeof result === 'string') {\n return parseProperties(result);\n }\n return result;\n });\n });\n this.i18nBundle$ = from(getI18nBundle(this.namespace));\n }\n\n currentLanguage(): string | undefined {\n if (this.parent) {\n return this.parent.currentLanguage();\n }\n return this.currentLanguage$.value;\n }\n\n currentLanguageEvent(): Observable<string> {\n if (this.parent) {\n return this.parent.currentLanguageEvent();\n }\n return this.currentLanguage$;\n }\n\n setLanguage(language: string): void {\n if (this.parent) {\n return this.parent.setLanguage(language);\n }\n setLanguage(language);\n this.loadedLanguages$.pipe(\n filter(langs => langs.includes(language)),\n first(),\n tap(() => this.currentLanguage$.next(language))\n ).subscribe();\n }\n\n getText(key: string, ...placeholders: any[]): Observable<string> {\n return this.currentLanguageEvent().pipe(\n switchMap(() => this.i18nBundle$),\n map((bundle) => bundle.getText({key, defaultText: key}, ...placeholders)),\n switchMap((text) => {\n if (text === key && this.parent) {\n return this.parent.getText(key, ...placeholders);\n }\n return of(text);\n })\n );\n }\n}\n","import {ChangeDetectorRef, OnDestroy, Pipe, PipeTransform} from \"@angular/core\";\nimport {I18nService} from \"./i18n.service\";\nimport {distinctUntilChanged, Subject, Subscription, takeUntil} from \"rxjs\";\n\n@Pipe({\n name: 'ui5I18n',\n pure: false,\n standalone: true\n})\nexport class I18nPipe implements PipeTransform, OnDestroy {\n private _lastTranslationValue = '';\n private _subscription?: Subscription;\n private _destroyed$ = new Subject<void>();\n private _lastValue!: string;\n private _lastValueParams!: string[];\n\n constructor(private changeDetectorRef: ChangeDetectorRef,\n private i18nService: I18nService) {\n }\n\n transform(value: string, ...params: any[]): string {\n const paramsChanged = !this._lastValue || params.some((param, index) => param !== this._lastValueParams[index]);\n if (value === this._lastValue && !paramsChanged) {\n return this._lastTranslationValue;\n }\n this._lastValue = value;\n this._lastValueParams = params;\n if (this._subscription) {\n this._subscription.unsubscribe();\n this._subscription = undefined;\n }\n this._subscription = this.i18nService.getText(value, ...params)\n .pipe(\n distinctUntilChanged(),\n takeUntil(this._destroyed$)\n ).subscribe((text) => {\n this._lastTranslationValue = text;\n this.changeDetectorRef.markForCheck();\n });\n return this._lastTranslationValue;\n }\n\n ngOnDestroy(): void {\n this._destroyed$.next();\n this._destroyed$.complete();\n }\n}\n","import {FactorySansProvider, Provider} from \"@angular/core\";\nimport {Translations} from \"./i18n.types\";\nimport {I18N_TRANSLATIONS} from \"./i18n.tokens\";\n\nexport function resolveTranslationsProvider(translations?: Translations | FactorySansProvider): Provider {\n if (!translations) {\n return {\n provide: I18N_TRANSLATIONS,\n useValue: {}\n };\n }\n if (typeof translations.useFactory === 'function') {\n return {\n provide: I18N_TRANSLATIONS,\n useFactory: (translations as FactorySansProvider).useFactory,\n deps: (translations as FactorySansProvider).deps || [],\n }\n }\n return {\n provide: I18N_TRANSLATIONS,\n useValue: translations\n };\n}\n","import { setFetchDefaultLanguage, setLanguage } from \"@ui5/webcomponents-base/dist/config/Language.js\";\nimport { I18nConfig } from \"./i18n.types\";\nimport { I18N_NAMESPACE, I18N_ROOT_CONFIG } from \"./i18n.tokens\";\nimport { resolveTranslationsProvider } from \"./i18n.utils\";\nimport { I18nService } from \"./i18n.service\";\n\nlet childIds = 0;\nexport function i18nRootProviders(config: I18nConfig) {\n return [\n {\n provide: I18N_ROOT_CONFIG,\n useFactory: () => {\n if (config.language) {\n setLanguage(config.language);\n }\n if (config.fetchDefaultLanguage) {\n setFetchDefaultLanguage(config.fetchDefaultLanguage);\n }\n return config;\n }\n },\n {\n provide: I18N_NAMESPACE,\n useValue: config.bundle?.name || 'root_i18n'\n },\n resolveTranslationsProvider(config.bundle?.translations),\n I18nService\n ]\n}\n\nexport function i18nChildProviders(config: I18nConfig['bundle']) {\n return [\n {\n provide: I18N_NAMESPACE,\n useValue: config?.name || ++childIds + '_i18n'\n },\n resolveTranslationsProvider(config?.translations),\n I18nService\n ]\n}\n","import { Inject, ModuleWithProviders, NgModule } from \"@angular/core\";\nimport { I18nPipe } from \"./i18n.pipe\";\nimport { I18nConfig } from \"./i18n.types\";\nimport { I18N_ROOT_CONFIG } from \"./i18n.tokens\";\nimport { i18nChildProviders, i18nRootProviders } from \"./i18n.providers\";\n\n\n@NgModule({\n imports: [I18nPipe],\n exports: [I18nPipe]\n})\nexport class Ui5I18nModule {\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n constructor(@Inject(I18N_ROOT_CONFIG) private config: I18nConfig) {\n }\n\n static forRoot(config: I18nConfig = {}): ModuleWithProviders<Ui5I18nModule> {\n\n return {\n ngModule: Ui5I18nModule,\n providers: [\n i18nRootProviders(config)\n ]\n }\n }\n\n static forChild(config: I18nConfig['bundle'] = {}): ModuleWithProviders<Ui5I18nModule> {\n return {\n ngModule: Ui5I18nModule,\n providers: [\n i18nChildProviders(config)\n ]\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.I18nService"],"mappings":"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"}
@@ -8,6 +8,6 @@ export declare class Ui5I18nModule {
8
8
  static forRoot(config?: I18nConfig): ModuleWithProviders<Ui5I18nModule>;
9
9
  static forChild(config?: I18nConfig['bundle']): ModuleWithProviders<Ui5I18nModule>;
10
10
  static ɵfac: i0.ɵɵFactoryDeclaration<Ui5I18nModule, never>;
11
- static ɵmod: i0.ɵɵNgModuleDeclaration<Ui5I18nModule, [typeof i1.I18nPipe], never, [typeof i1.I18nPipe]>;
11
+ static ɵmod: i0.ɵɵNgModuleDeclaration<Ui5I18nModule, never, [typeof i1.I18nPipe], [typeof i1.I18nPipe]>;
12
12
  static ɵinj: i0.ɵɵInjectorDeclaration<Ui5I18nModule>;
13
13
  }
@@ -13,5 +13,5 @@ export declare class I18nPipe implements PipeTransform, OnDestroy {
13
13
  transform(value: string, ...params: any[]): string;
14
14
  ngOnDestroy(): void;
15
15
  static ɵfac: i0.ɵɵFactoryDeclaration<I18nPipe, never>;
16
- static ɵpipe: i0.ɵɵPipeDeclaration<I18nPipe, "ui5I18n", false>;
16
+ static ɵpipe: i0.ɵɵPipeDeclaration<I18nPipe, "ui5I18n", true>;
17
17
  }
@@ -0,0 +1,3 @@
1
+ import { I18nConfig } from "./i18n.types";
2
+ export declare function i18nRootProviders(config: I18nConfig): import("@angular/core").Provider[];
3
+ export declare function i18nChildProviders(config: I18nConfig['bundle']): import("@angular/core").Provider[];
package/i18n/index.d.ts CHANGED
@@ -1,3 +1,4 @@
1
1
  export * from './i18n.module';
2
2
  export * from './i18n.service';
3
3
  export * from './i18n.pipe';
4
+ export * from './i18n.providers';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ui5/webcomponents-ngx",
3
- "version": "0.2.0-rc.1",
3
+ "version": "0.2.0",
4
4
  "license": "Apache-2.0",
5
5
  "author": "SAP SE (https://www.sap.com)",
6
6
  "keywords": [
@@ -30,7 +30,7 @@
30
30
  "rxjs": "^6.5.3 || ^7.4.0",
31
31
  "lodash": "4.17.21",
32
32
  "inquirer": "8.2.4",
33
- "@ui5/theming-ngx": "0.2.0-rc.1"
33
+ "@ui5/theming-ngx": "0.2.0"
34
34
  },
35
35
  "dependencies": {
36
36
  "tslib": "^2.4.1"
@@ -0,0 +1,8 @@
1
+ import { Rule } from "@angular-devkit/schematics";
2
+ interface I18nOptions {
3
+ useI18n: boolean;
4
+ project: string;
5
+ defaultLanguage: string;
6
+ }
7
+ export declare function addI18n(options: I18nOptions): Rule;
8
+ export {};
@@ -0,0 +1,165 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
26
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27
+ return new (P || (P = Promise))(function (resolve, reject) {
28
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
29
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
30
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
31
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
32
+ });
33
+ };
34
+ Object.defineProperty(exports, "__esModule", { value: true });
35
+ exports.addI18n = void 0;
36
+ const schematics_1 = require("@angular-devkit/schematics");
37
+ const ts = __importStar(require("typescript"));
38
+ const workspace_1 = require("@schematics/angular/utility/workspace");
39
+ const change_1 = require("@schematics/angular/utility/change");
40
+ const ng_ast_utils_1 = require("@schematics/angular/utility/ng-ast-utils");
41
+ const ast_utils_1 = require("@schematics/angular/utility/ast-utils");
42
+ const standalone_1 = require("@schematics/angular/private/standalone");
43
+ const get_project_definition_1 = require("../utils/get-project-definition");
44
+ const project_main_file_1 = require("../utils/project-main-file");
45
+ const getModuleDeclaration_1 = require("../utils/getModuleDeclaration");
46
+ const getSourceFile_1 = require("../utils/getSourceFile");
47
+ const find_providers_literal_1 = require("../utils/find-providers-literal");
48
+ function addI18n(options) {
49
+ return (tree, context) => __awaiter(this, void 0, void 0, function* () {
50
+ return (0, workspace_1.updateWorkspace)((workspace) => __awaiter(this, void 0, void 0, function* () {
51
+ if (!options.useI18n) {
52
+ return;
53
+ }
54
+ const projectDefinition = (0, get_project_definition_1.getProjectDefinition)(workspace, options.project);
55
+ const update = addI18nModule(tree, projectDefinition, context, options);
56
+ const exportRecorder = tree.beginUpdate(update.file);
57
+ for (const change of update.changes) {
58
+ if (change instanceof change_1.InsertChange) {
59
+ exportRecorder.insertLeft(change.pos, change.toAdd);
60
+ }
61
+ }
62
+ tree.commitUpdate(exportRecorder);
63
+ }));
64
+ });
65
+ }
66
+ exports.addI18n = addI18n;
67
+ function addI18nModule(tree, projectDefinition, context, options) {
68
+ var _a;
69
+ try {
70
+ return addModuleToNonStandaloneApp(tree, projectDefinition, context, options);
71
+ }
72
+ catch (e) {
73
+ if ((_a = e.message) === null || _a === void 0 ? void 0 : _a.includes('Bootstrap call not found')) {
74
+ return addModuleToStandaloneApp(tree, projectDefinition, context, options);
75
+ }
76
+ else {
77
+ throw e;
78
+ }
79
+ }
80
+ }
81
+ function rootProviderConfig(options) {
82
+ return `{
83
+ language: ${JSON.stringify(options.defaultLanguage)},
84
+ fetchDefaultLanguage: true,
85
+ bundle: {
86
+ name: 'app-root-i18n-bundle',
87
+ translations: {
88
+ // You can add your translations here. For more information please refer to the documentation.
89
+ [${JSON.stringify(options.defaultLanguage)}]: {
90
+ 'app-root-title': 'Hello World!'
91
+ }
92
+ }
93
+ }
94
+ }`;
95
+ }
96
+ function addModuleToNonStandaloneApp(tree, projectDefinition, context, options) {
97
+ const appModulePath = (0, ng_ast_utils_1.getAppModulePath)(tree, (0, project_main_file_1.getProjectMainFile)(projectDefinition));
98
+ if (!appModulePath) {
99
+ throw new schematics_1.SchematicsException('Could not find root module for defined project.');
100
+ }
101
+ const appModuleSource = (0, getSourceFile_1.getSourceFile)(tree, appModulePath);
102
+ const i18nModule = (0, getModuleDeclaration_1.getModuleDeclaration)(appModuleSource, 'Ui5I18nModule');
103
+ const moduleConfig = `\nUi5I18nModule.forRoot(${rootProviderConfig(options)})`;
104
+ if (i18nModule) {
105
+ i18nModule.getChildren(appModuleSource);
106
+ const i18nModuleDecl = i18nModule.getFullText();
107
+ const appModuleContent = tree.readText(appModulePath).split(i18nModuleDecl).join(moduleConfig);
108
+ tree.overwrite(appModulePath, appModuleContent);
109
+ context.logger.info('Found previous Ui5I18nModule. Replaced with new one.');
110
+ return { changes: [], file: appModulePath };
111
+ }
112
+ const changes = [
113
+ ...(0, ast_utils_1.addImportToModule)(appModuleSource, appModulePath, moduleConfig, null),
114
+ (0, ast_utils_1.insertImport)(appModuleSource, appModulePath, 'Ui5I18nModule', '@ui5/webcomponents-ngx/i18n')
115
+ ];
116
+ return { changes, file: appModulePath };
117
+ }
118
+ function addModuleToStandaloneApp(tree, projectDefinition, context, options) {
119
+ const mainFile = (0, project_main_file_1.getProjectMainFile)(projectDefinition);
120
+ const mainFileSource = (0, getSourceFile_1.getSourceFile)(tree, mainFile);
121
+ const bootstrapCall = (0, standalone_1.findBootstrapApplicationCall)(mainFileSource);
122
+ if (!bootstrapCall) {
123
+ throw new schematics_1.SchematicsException('Could not find bootstrap call in main.ts');
124
+ }
125
+ const providersLiteral = (0, find_providers_literal_1.findProvidersLiteral)(bootstrapCall);
126
+ const recorder = tree.beginUpdate(mainFile.toString());
127
+ const printer = ts.createPrinter();
128
+ const newProviderCall = ts.factory.createCallExpression(ts.factory.createIdentifier('i18nRootProviders'), undefined, [ts.factory.createObjectLiteralExpression([
129
+ ts.factory.createPropertyAssignment('language', ts.factory.createStringLiteral(options.defaultLanguage)),
130
+ ts.factory.createPropertyAssignment('fetchDefaultLanguage', ts.factory.createTrue()),
131
+ ts.factory.createPropertyAssignment('bundle', ts.factory.createObjectLiteralExpression([
132
+ ts.factory.createPropertyAssignment('name', ts.factory.createStringLiteral('app-root-i18n-bundle')),
133
+ ts.factory.createPropertyAssignment('translations', ts.factory.createObjectLiteralExpression([
134
+ ts.factory.createPropertyAssignment(ts.factory.createStringLiteral(options.defaultLanguage), ts.factory.createObjectLiteralExpression([
135
+ ts.factory.createPropertyAssignment(ts.factory.createStringLiteral('app-root-title'), ts.factory.createStringLiteral('Hello World!')),
136
+ ])),
137
+ ])),
138
+ ])),
139
+ ], true)]);
140
+ if (!providersLiteral) {
141
+ const bootstrapCallParams = [...bootstrapCall.arguments];
142
+ bootstrapCallParams[1] = ts.factory.createObjectLiteralExpression([createProvidersAssignment([newProviderCall])], true);
143
+ const newCall = ts.factory.updateCallExpression(bootstrapCall, bootstrapCall.expression, bootstrapCall.typeArguments, bootstrapCallParams);
144
+ recorder.remove(bootstrapCall.getStart(), bootstrapCall.getWidth());
145
+ recorder.insertRight(bootstrapCall.getStart(), printer.printNode(ts.EmitHint.Unspecified, newCall, mainFileSource));
146
+ }
147
+ else {
148
+ const existingUsageIndex = providersLiteral.elements.findIndex(el => ts.isCallExpression(el) && ts.isIdentifier(el.expression) && el.expression.escapedText === 'i18nRootProviders');
149
+ const newProvidersLiteral = ts.factory.createArrayLiteralExpression(providersLiteral.elements.filter((_el, i) => i !== existingUsageIndex).concat(newProviderCall));
150
+ if (existingUsageIndex !== -1) {
151
+ context.logger.info('Found previous i18nRootProviders call. Replaced with new one.');
152
+ }
153
+ recorder.remove(providersLiteral.getStart(), providersLiteral.getWidth());
154
+ recorder.insertRight(providersLiteral.getStart(), printer.printNode(ts.EmitHint.Unspecified, newProvidersLiteral, mainFileSource));
155
+ }
156
+ const importChange = (0, ast_utils_1.insertImport)(mainFileSource, mainFile, 'i18nRootProviders', '@ui5/webcomponents-ngx/i18n');
157
+ if (importChange instanceof change_1.InsertChange) {
158
+ recorder.insertLeft(importChange.pos, importChange.toAdd);
159
+ }
160
+ tree.commitUpdate(recorder);
161
+ return { changes: [], file: mainFile };
162
+ }
163
+ function createProvidersAssignment(elements = []) {
164
+ return ts.factory.createPropertyAssignment('providers', ts.factory.createArrayLiteralExpression(elements));
165
+ }
@@ -0,0 +1,26 @@
1
+ {
2
+ "$schema": "http://json-schema.org/schema",
3
+ "$id": "I18nAdd",
4
+ "title": "",
5
+ "type": "object",
6
+ "properties": {
7
+ "project": {
8
+ "type": "string",
9
+ "description": "The name of the project.",
10
+ "$default": {
11
+ "$source": "projectName"
12
+ }
13
+ },
14
+ "useI18n": {
15
+ "type": "boolean",
16
+ "description": "Whether to use internationalization.",
17
+ "default": true
18
+ },
19
+ "defaultLanguage": {
20
+ "type": "string",
21
+ "description": "The default language to use.",
22
+ "default": "en"
23
+ }
24
+ },
25
+ "required": []
26
+ }
@@ -12,23 +12,15 @@ Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.addTheming = void 0;
13
13
  const workspace_1 = require("@schematics/angular/utility/workspace");
14
14
  const change_1 = require("@schematics/angular/utility/change");
15
- const schematics_1 = require("@angular-devkit/schematics");
16
15
  const add_theming_module_1 = require("./add-theming-module");
16
+ const get_project_definition_1 = require("../utils/get-project-definition");
17
17
  function addTheming(options) {
18
18
  return (tree, context) => (0, workspace_1.updateWorkspace)((workspace) => __awaiter(this, void 0, void 0, function* () {
19
- var _a;
20
19
  if (!options.theming) {
21
20
  return;
22
21
  }
23
- const currentWorkspace = workspace.projects.get(options.project);
24
- if (!currentWorkspace) {
25
- throw new schematics_1.SchematicsException('Project with such name not found.');
26
- }
27
- const buildTargetOptions = (_a = currentWorkspace.targets.get('build')) === null || _a === void 0 ? void 0 : _a.options;
28
- if (!buildTargetOptions) {
29
- throw new schematics_1.SchematicsException('Could not find build target options for defined project.');
30
- }
31
- const update = (0, add_theming_module_1.addThemingModule)(tree, currentWorkspace, context, options);
22
+ const projectDefinition = (0, get_project_definition_1.getProjectDefinition)(workspace, options.project);
23
+ const update = (0, add_theming_module_1.addThemingModule)(tree, projectDefinition, context, options);
32
24
  const exportRecorder = tree.beginUpdate(update.file);
33
25
  for (const change of update.changes) {
34
26
  if (change instanceof change_1.InsertChange) {
@@ -29,6 +29,11 @@
29
29
  "factory": "./add-theming/index#addTheming",
30
30
  "schema": "./add-theming/schema.json",
31
31
  "private": true
32
+ },
33
+ "add-i18n": {
34
+ "description": "Adds i18n capabilities to the angular application.",
35
+ "factory": "./add-i18n/index#addI18n",
36
+ "schema": "./add-i18n/schema.json"
32
37
  }
33
38
  }
34
39
  }
@@ -0,0 +1,4 @@
1
+ export declare function getI18nConfig(): Promise<{
2
+ useI18n: boolean;
3
+ defaultLanguage: string | undefined;
4
+ }>;
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.getI18nConfig = void 0;
13
+ const promt_1 = require("./utils/promt");
14
+ function getI18nConfig() {
15
+ return __awaiter(this, void 0, void 0, function* () {
16
+ const useI18n = yield (0, promt_1.askQuestion)({
17
+ type: 'confirm',
18
+ message: 'Would you like to add i18n capabilities into your application?',
19
+ default: false,
20
+ });
21
+ const defaultLanguage = (useI18n ? yield (0, promt_1.askQuestion)({
22
+ type: 'input',
23
+ message: 'What is the default language of your application?',
24
+ default: 'en',
25
+ }) : undefined);
26
+ return {
27
+ useI18n,
28
+ defaultLanguage
29
+ };
30
+ });
31
+ }
32
+ exports.getI18nConfig = getI18nConfig;
@@ -1,4 +1,4 @@
1
1
  import { Rule } from '@angular-devkit/schematics';
2
- import { Schema } from '../schema';
3
- export declare function ngAdd(options: Schema): Rule;
4
- export declare function proceedWithSchematics(options: Schema): Rule;
2
+ import { NgAddSchema } from './schema';
3
+ export declare function ngAdd(options: NgAddSchema): Rule;
4
+ export declare function proceedWithSchematics(options: NgAddSchema): Rule;
@@ -13,10 +13,12 @@ exports.proceedWithSchematics = exports.ngAdd = void 0;
13
13
  const schematics_1 = require("@angular-devkit/schematics");
14
14
  const tasks_1 = require("@angular-devkit/schematics/tasks");
15
15
  const get_config_1 = require("../get-config");
16
+ const get_i18n_config_1 = require("../get-i18n-config");
16
17
  function ngAdd(options) {
17
18
  return (_, context) => __awaiter(this, void 0, void 0, function* () {
18
19
  const userConfig = yield (0, get_config_1.collectConfig)();
19
- options = Object.assign(Object.assign({}, options), userConfig);
20
+ const i18nConfig = yield (0, get_i18n_config_1.getI18nConfig)();
21
+ options = Object.assign(Object.assign(Object.assign({}, options), userConfig), i18nConfig);
20
22
  // First, queue dependency installation task.
21
23
  const dependenciesTaskId = context.addTask(new tasks_1.RunSchematicTask('add-dependencies', options));
22
24
  // Wait for dependencies to be installed and proceed with main schematics.
@@ -28,7 +30,8 @@ exports.ngAdd = ngAdd;
28
30
  function proceedWithSchematics(options) {
29
31
  return (0, schematics_1.chain)([
30
32
  (0, schematics_1.schematic)('add-styles', options),
31
- (0, schematics_1.schematic)('add-theming', options)
33
+ (0, schematics_1.schematic)('add-theming', options),
34
+ (0, schematics_1.schematic)('add-i18n', options),
32
35
  ]);
33
36
  }
34
37
  exports.proceedWithSchematics = proceedWithSchematics;
@@ -0,0 +1,5 @@
1
+ import { Schema } from '../schema';
2
+ export interface NgAddSchema extends Schema {
3
+ useI18n: boolean;
4
+ defaultLanguage?: string;
5
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,2 @@
1
+ import { ProjectDefinition, WorkspaceDefinition } from "@schematics/angular/utility";
2
+ export declare function getProjectDefinition(workspace: WorkspaceDefinition, projectName: string): ProjectDefinition;
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getProjectDefinition = void 0;
4
+ const schematics_1 = require("@angular-devkit/schematics");
5
+ function getProjectDefinition(workspace, projectName) {
6
+ const projectDefinition = workspace.projects.get(projectName);
7
+ if (!projectDefinition) {
8
+ throw new schematics_1.SchematicsException('Project with such name not found.');
9
+ }
10
+ return projectDefinition;
11
+ }
12
+ exports.getProjectDefinition = getProjectDefinition;
@@ -0,0 +1,2 @@
1
+ import { ProjectDefinition, TargetDefinition } from "@schematics/angular/utility";
2
+ export declare function getProjectTarget(projectDefinition: ProjectDefinition, targetName: string, projectName?: string): TargetDefinition;
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getProjectTarget = void 0;
4
+ const schematics_1 = require("@angular-devkit/schematics");
5
+ function getProjectTarget(projectDefinition, targetName, projectName) {
6
+ const target = projectDefinition.targets.get(targetName);
7
+ if (!target) {
8
+ throw new schematics_1.SchematicsException(`Target ${targetName} not found in project ${projectName || ''}`);
9
+ }
10
+ return target;
11
+ }
12
+ exports.getProjectTarget = getProjectTarget;
Binary file