@tolgee/ngx 2.3.2 → 2.8.1

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.
package/README.md CHANGED
@@ -1,3 +1,4 @@
1
+ # Tolgee for Angular
1
2
  ![test workflow](https://github.com/tolgee/tolgee-js/actions/workflows/test.yml/badge.svg)
2
3
  ![@tolgee/ngx version](https://img.shields.io/npm/v/@tolgee/ngx?label=%40tolgee%2Fngx)
3
4
  ![types typescript](https://img.shields.io/badge/Types-Typescript-blue)
@@ -5,8 +6,6 @@
5
6
  [![twitter](https://img.shields.io/twitter/follow/Tolgee_i18n?style=social)](https://twitter.com/Tolgee_i18n)
6
7
  [![github stars](https://img.shields.io/github/stars/tolgee/tolgee-js?style=social)](https://github.com/tolgee/tolgee-js)
7
8
 
8
- # Tolgee for Angular
9
-
10
9
  [<img src="https://raw.githubusercontent.com/tolgee/documentation/main/tolgee_logo_text.svg" alt="Tolgee" width="200" />](https://tolgee.io)
11
10
 
12
11
  Lokalize (translate) your Angular app to multiple languages with Tolgee. For more information about using Tolgee with
@@ -28,10 +28,10 @@ export class NgxTolgeeModule {
28
28
  };
29
29
  }
30
30
  }
31
- NgxTolgeeModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: NgxTolgeeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
32
- NgxTolgeeModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: NgxTolgeeModule, declarations: [TranslatePipe, STranslatePipe, TComponent], exports: [TranslatePipe, STranslatePipe, TComponent] });
33
- NgxTolgeeModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: NgxTolgeeModule, providers: [] });
34
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: NgxTolgeeModule, decorators: [{
31
+ NgxTolgeeModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: NgxTolgeeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
32
+ NgxTolgeeModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: NgxTolgeeModule, declarations: [TranslatePipe, STranslatePipe, TComponent], exports: [TranslatePipe, STranslatePipe, TComponent] });
33
+ NgxTolgeeModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: NgxTolgeeModule, providers: [] });
34
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: NgxTolgeeModule, decorators: [{
35
35
  type: NgModule,
36
36
  args: [{
37
37
  declarations: [TranslatePipe, STranslatePipe, TComponent],
@@ -10,9 +10,9 @@ export class STranslatePipe extends TranslatePipe {
10
10
  return (input, params, defaultValue) => this.translateService.getSafe(input, params, defaultValue);
11
11
  }
12
12
  }
13
- STranslatePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: STranslatePipe, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Pipe });
14
- STranslatePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: STranslatePipe, name: "stranslate", pure: false });
15
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: STranslatePipe, decorators: [{
13
+ STranslatePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: STranslatePipe, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Pipe });
14
+ STranslatePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: STranslatePipe, name: "stranslate", pure: false });
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: STranslatePipe, decorators: [{
16
16
  type: Pipe,
17
17
  args: [{
18
18
  name: 'stranslate',
@@ -7,39 +7,27 @@ export class TComponent {
7
7
  this.ref = ref;
8
8
  this.translateService = translateService;
9
9
  }
10
- get resultProvider() {
11
- return (key, params, defaultValue) => this.translateService.getSafe(key, params, defaultValue);
12
- }
13
10
  ngOnInit() {
14
11
  const element = this.ref.nativeElement;
15
12
  element.setAttribute(TOLGEE_WRAPPED_ONLY_DATA_ATTRIBUTE, this.key);
16
- //update value when language changed
17
- this.onLangChangeSubscription =
18
- this.translateService.onLangChange.subscribe(() => {
19
- this.translate(this.key, this.params, this.default);
20
- });
21
- //update value when translation changed
22
- this.onTranslationChangeSubscription =
23
- this.translateService.onTranslationChange.subscribe((data) => {
24
- if (data.key == this.key) {
25
- this.translate(this.key, this.params, this.default);
26
- }
27
- });
28
- this.translate(this.key, this.params, this.default);
13
+ // set safe at first
14
+ element.textContent = this.translateService.instantSafe(this.key, this.params, this.default);
15
+ // then do the async translation
16
+ this.subscription = this.translateService
17
+ .getSafe(this.key, this.params, this.default)
18
+ .subscribe((translated) => {
19
+ return (element.textContent = translated);
20
+ });
29
21
  }
30
22
  ngOnDestroy() {
31
- this.onLangChangeSubscription?.unsubscribe();
32
- this.onTranslationChangeSubscription?.unsubscribe();
33
- }
34
- translate(key, params, defaultValue) {
35
- this.resultProvider(key, params, defaultValue).subscribe((r) => {
36
- this.ref.nativeElement.textContent = r;
37
- });
23
+ if (this.subscription) {
24
+ this.subscription.unsubscribe();
25
+ }
38
26
  }
39
27
  }
40
- TComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: TComponent, deps: [{ token: i0.ElementRef }, { token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
41
- TComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.0", type: TComponent, selector: "[t]", inputs: { params: "params", key: "key", default: "default" }, ngImport: i0, template: ``, isInline: true });
42
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: TComponent, decorators: [{
28
+ TComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: TComponent, deps: [{ token: i0.ElementRef }, { token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
29
+ TComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: TComponent, selector: "[t]", inputs: { params: "params", key: "key", default: "default" }, ngImport: i0, template: ``, isInline: true });
30
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: TComponent, decorators: [{
43
31
  type: Component,
44
32
  args: [{
45
33
  selector: '[t]',
@@ -52,4 +40,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImpor
52
40
  }], default: [{
53
41
  type: Input
54
42
  }] } });
55
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdG9sZ2VlL3NyYy9saWIvdC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxLQUFLLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBR2hGLE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7O0FBTWxFLE1BQU0sT0FBTyxVQUFVO0lBUXJCLFlBQ1UsR0FBZSxFQUNmLGdCQUFrQztRQURsQyxRQUFHLEdBQUgsR0FBRyxDQUFZO1FBQ2YscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtJQUN6QyxDQUFDO0lBRUosSUFBYyxjQUFjO1FBSzFCLE9BQU8sQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxFQUFFLENBQ25DLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRSxZQUFZLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRUQsUUFBUTtRQUNOLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBNEIsQ0FBQztRQUV0RCxPQUFPLENBQUMsWUFBWSxDQUFDLGtDQUFrQyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUVuRSxvQ0FBb0M7UUFDcEMsSUFBSSxDQUFDLHdCQUF3QjtZQUMzQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2hELElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUN0RCxDQUFDLENBQUMsQ0FBQztRQUVMLHVDQUF1QztRQUN2QyxJQUFJLENBQUMsK0JBQStCO1lBQ2xDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxtQkFBbUIsQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtnQkFDM0QsSUFBSSxJQUFJLENBQUMsR0FBRyxJQUFJLElBQUksQ0FBQyxHQUFHLEVBQUU7b0JBQ3hCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztpQkFDckQ7WUFDSCxDQUFDLENBQUMsQ0FBQztRQUNMLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyx3QkFBd0IsRUFBRSxXQUFXLEVBQUUsQ0FBQztRQUM3QyxJQUFJLENBQUMsK0JBQStCLEVBQUUsV0FBVyxFQUFFLENBQUM7SUFDdEQsQ0FBQztJQUVPLFNBQVMsQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLFlBQW9CO1FBQ2pELElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRSxZQUFZLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUM3RCxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDO1FBQ3pDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7dUdBcERVLFVBQVU7MkZBQVYsVUFBVSx5R0FGWCxFQUFFOzJGQUVELFVBQVU7a0JBSnRCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLEtBQUs7b0JBQ2YsUUFBUSxFQUFFLEVBQUU7aUJBQ2I7Z0lBR1UsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLEdBQUc7c0JBQVgsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnLi90cmFuc2xhdGUuc2VydmljZSc7XG5pbXBvcnQgeyBUT0xHRUVfV1JBUFBFRF9PTkxZX0RBVEFfQVRUUklCVVRFIH0gZnJvbSAnQHRvbGdlZS9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnW3RdJyxcbiAgdGVtcGxhdGU6IGBgLFxufSlcbmV4cG9ydCBjbGFzcyBUQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICB2YWx1ZTogc3RyaW5nO1xuICBASW5wdXQoKSBwYXJhbXM/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuICBASW5wdXQoKSBrZXk6IHN0cmluZztcbiAgQElucHV0KCkgZGVmYXVsdD86IHN0cmluZztcbiAgb25MYW5nQ2hhbmdlU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gIG9uVHJhbnNsYXRpb25DaGFuZ2VTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlZjogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2VcbiAgKSB7fVxuXG4gIHByb3RlY3RlZCBnZXQgcmVzdWx0UHJvdmlkZXIoKTogKFxuICAgIGtleSxcbiAgICBwYXJhbXMsXG4gICAgZGVmYXVsdFZhbHVlOiBzdHJpbmdcbiAgKSA9PiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgIHJldHVybiAoa2V5LCBwYXJhbXMsIGRlZmF1bHRWYWx1ZSkgPT5cbiAgICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5nZXRTYWZlKGtleSwgcGFyYW1zLCBkZWZhdWx0VmFsdWUpO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgY29uc3QgZWxlbWVudCA9IHRoaXMucmVmLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQ7XG5cbiAgICBlbGVtZW50LnNldEF0dHJpYnV0ZShUT0xHRUVfV1JBUFBFRF9PTkxZX0RBVEFfQVRUUklCVVRFLCB0aGlzLmtleSk7XG5cbiAgICAvL3VwZGF0ZSB2YWx1ZSB3aGVuIGxhbmd1YWdlIGNoYW5nZWRcbiAgICB0aGlzLm9uTGFuZ0NoYW5nZVN1YnNjcmlwdGlvbiA9XG4gICAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2Uub25MYW5nQ2hhbmdlLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMudHJhbnNsYXRlKHRoaXMua2V5LCB0aGlzLnBhcmFtcywgdGhpcy5kZWZhdWx0KTtcbiAgICAgIH0pO1xuXG4gICAgLy91cGRhdGUgdmFsdWUgd2hlbiB0cmFuc2xhdGlvbiBjaGFuZ2VkXG4gICAgdGhpcy5vblRyYW5zbGF0aW9uQ2hhbmdlU3Vic2NyaXB0aW9uID1cbiAgICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5vblRyYW5zbGF0aW9uQ2hhbmdlLnN1YnNjcmliZSgoZGF0YSkgPT4ge1xuICAgICAgICBpZiAoZGF0YS5rZXkgPT0gdGhpcy5rZXkpIHtcbiAgICAgICAgICB0aGlzLnRyYW5zbGF0ZSh0aGlzLmtleSwgdGhpcy5wYXJhbXMsIHRoaXMuZGVmYXVsdCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIHRoaXMudHJhbnNsYXRlKHRoaXMua2V5LCB0aGlzLnBhcmFtcywgdGhpcy5kZWZhdWx0KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMub25MYW5nQ2hhbmdlU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMub25UcmFuc2xhdGlvbkNoYW5nZVN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHByaXZhdGUgdHJhbnNsYXRlKGtleSwgcGFyYW1zLCBkZWZhdWx0VmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMucmVzdWx0UHJvdmlkZXIoa2V5LCBwYXJhbXMsIGRlZmF1bHRWYWx1ZSkuc3Vic2NyaWJlKChyKSA9PiB7XG4gICAgICB0aGlzLnJlZi5uYXRpdmVFbGVtZW50LnRleHRDb250ZW50ID0gcjtcbiAgICB9KTtcbiAgfVxufVxuIl19
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdG9sZ2VlL3NyYy9saWIvdC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxLQUFLLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBR2hGLE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7O0FBTWxFLE1BQU0sT0FBTyxVQUFVO0lBTXJCLFlBQ1UsR0FBZSxFQUNmLGdCQUFrQztRQURsQyxRQUFHLEdBQUgsR0FBRyxDQUFZO1FBQ2YscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtJQUN6QyxDQUFDO0lBRUosUUFBUTtRQUNOLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBNEIsQ0FBQztRQUN0RCxPQUFPLENBQUMsWUFBWSxDQUFDLGtDQUFrQyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUVuRSxvQkFBb0I7UUFDcEIsT0FBTyxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxDQUNyRCxJQUFJLENBQUMsR0FBRyxFQUNSLElBQUksQ0FBQyxNQUFNLEVBQ1gsSUFBSSxDQUFDLE9BQU8sQ0FDYixDQUFDO1FBRUYsZ0NBQWdDO1FBQ2hDLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLGdCQUFnQjthQUN0QyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUM7YUFDNUMsU0FBUyxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUU7WUFDeEIsT0FBTyxDQUFDLE9BQU8sQ0FBQyxXQUFXLEdBQUcsVUFBVSxDQUFDLENBQUM7UUFDNUMsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtZQUNyQixJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ2pDO0lBQ0gsQ0FBQzs7dUdBbENVLFVBQVU7MkZBQVYsVUFBVSx5R0FGWCxFQUFFOzJGQUVELFVBQVU7a0JBSnRCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLEtBQUs7b0JBQ2YsUUFBUSxFQUFFLEVBQUU7aUJBQ2I7Z0lBRVUsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLEdBQUc7c0JBQVgsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnLi90cmFuc2xhdGUuc2VydmljZSc7XG5pbXBvcnQgeyBUT0xHRUVfV1JBUFBFRF9PTkxZX0RBVEFfQVRUUklCVVRFIH0gZnJvbSAnQHRvbGdlZS9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnW3RdJyxcbiAgdGVtcGxhdGU6IGBgLFxufSlcbmV4cG9ydCBjbGFzcyBUQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSBwYXJhbXM/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuICBASW5wdXQoKSBrZXk6IHN0cmluZztcbiAgQElucHV0KCkgZGVmYXVsdD86IHN0cmluZztcbiAgc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWY6IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlXG4gICkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5yZWYubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudDtcbiAgICBlbGVtZW50LnNldEF0dHJpYnV0ZShUT0xHRUVfV1JBUFBFRF9PTkxZX0RBVEFfQVRUUklCVVRFLCB0aGlzLmtleSk7XG5cbiAgICAvLyBzZXQgc2FmZSBhdCBmaXJzdFxuICAgIGVsZW1lbnQudGV4dENvbnRlbnQgPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudFNhZmUoXG4gICAgICB0aGlzLmtleSxcbiAgICAgIHRoaXMucGFyYW1zLFxuICAgICAgdGhpcy5kZWZhdWx0XG4gICAgKTtcblxuICAgIC8vIHRoZW4gZG8gdGhlIGFzeW5jIHRyYW5zbGF0aW9uXG4gICAgdGhpcy5zdWJzY3JpcHRpb24gPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2VcbiAgICAgIC5nZXRTYWZlKHRoaXMua2V5LCB0aGlzLnBhcmFtcywgdGhpcy5kZWZhdWx0KVxuICAgICAgLnN1YnNjcmliZSgodHJhbnNsYXRlZCkgPT4ge1xuICAgICAgICByZXR1cm4gKGVsZW1lbnQudGV4dENvbnRlbnQgPSB0cmFuc2xhdGVkKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -7,14 +7,14 @@ export class TranslatePipe {
7
7
  this.value = '';
8
8
  }
9
9
  get resultProvider() {
10
- return (input, params, defaultValue) => this.translateService.get(input, params, defaultValue);
10
+ return (key, params, defaultValue) => this.translateService.get(key, params, defaultValue);
11
11
  }
12
12
  ngOnDestroy() {
13
- this.langChangeSubscription.unsubscribe();
13
+ this.unsubscribe();
14
14
  }
15
- transform(input, paramsOrDefaultValue, params) {
16
- if (!input || input.length === 0) {
17
- return input;
15
+ transform(key, paramsOrDefaultValue, params) {
16
+ if (!key || key.length === 0) {
17
+ return key;
18
18
  }
19
19
  const defaultValue = typeof paramsOrDefaultValue !== 'object'
20
20
  ? paramsOrDefaultValue
@@ -22,34 +22,38 @@ export class TranslatePipe {
22
22
  if (typeof paramsOrDefaultValue === 'object') {
23
23
  params = paramsOrDefaultValue;
24
24
  }
25
- const newHash = this.getHash(input, params, this.translateService.getCurrentLang());
26
- if (newHash === this.lastHash) {
25
+ if (this.key === key &&
26
+ JSON.stringify(this.params) === JSON.stringify(params) &&
27
+ this.defaultValue === defaultValue) {
27
28
  return this.value;
28
29
  }
29
- this.langChangeSubscription?.unsubscribe();
30
- this.langChangeSubscription = this.translateService.onLangChange.subscribe(() => {
31
- this.onLangChange(input, params, defaultValue);
32
- });
33
- this.onLangChange(input, params, defaultValue);
34
- this.lastHash = newHash;
30
+ this.key = key;
31
+ this.params = params;
32
+ this.defaultValue = defaultValue;
33
+ // unsubscribe first
34
+ this.unsubscribe();
35
+ // asynchronously translate and assign subscription
36
+ this.subscription = this.translate(key, params, defaultValue);
35
37
  return this.value;
36
38
  }
37
- getHash(input, params, language) {
38
- return JSON.stringify({ input, params, language });
39
+ unsubscribe() {
40
+ if (this.subscription) {
41
+ this.subscription.unsubscribe();
42
+ }
39
43
  }
40
- onLangChange(input, params, defaultValue) {
41
- this.resultProvider(input, params, defaultValue).subscribe((r) => {
44
+ translate(key, params, defaultValue) {
45
+ return this.resultProvider(key, params, defaultValue).subscribe((r) => {
42
46
  this.value = r;
43
47
  });
44
48
  }
45
49
  }
46
- TranslatePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: TranslatePipe, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Pipe });
47
- TranslatePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: TranslatePipe, name: "translate", pure: false });
48
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: TranslatePipe, decorators: [{
50
+ TranslatePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: TranslatePipe, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Pipe });
51
+ TranslatePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: TranslatePipe, name: "translate", pure: false });
52
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: TranslatePipe, decorators: [{
49
53
  type: Pipe,
50
54
  args: [{
51
55
  name: 'translate',
52
56
  pure: false,
53
57
  }]
54
58
  }], ctorParameters: function () { return [{ type: i1.TranslateService }]; } });
55
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRlLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdG9sZ2VlL3NyYy9saWIvdHJhbnNsYXRlLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFhLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7OztBQVEvRCxNQUFNLE9BQU8sYUFBYTtJQUt4QixZQUFzQixnQkFBa0M7UUFBbEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUp4RCxVQUFLLEdBQUcsRUFBRSxDQUFDO0lBSWdELENBQUM7SUFFNUQsSUFBYyxjQUFjO1FBSzFCLE9BQU8sQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxFQUFFLENBQ3JDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUM1QyxDQUFDO0lBU0QsU0FBUyxDQUNQLEtBQVUsRUFDVixvQkFBbUQsRUFDbkQsTUFBNEI7UUFFNUIsSUFBSSxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUNoQyxPQUFPLEtBQUssQ0FBQztTQUNkO1FBRUQsTUFBTSxZQUFZLEdBQ2hCLE9BQU8sb0JBQW9CLEtBQUssUUFBUTtZQUN0QyxDQUFDLENBQUMsb0JBQW9CO1lBQ3RCLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFFaEIsSUFBSSxPQUFPLG9CQUFvQixLQUFLLFFBQVEsRUFBRTtZQUM1QyxNQUFNLEdBQUcsb0JBQW9CLENBQUM7U0FDL0I7UUFFRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUMxQixLQUFLLEVBQ0wsTUFBTSxFQUNOLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxjQUFjLEVBQUUsQ0FDdkMsQ0FBQztRQUVGLElBQUksT0FBTyxLQUFLLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDN0IsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO1NBQ25CO1FBRUQsSUFBSSxDQUFDLHNCQUFzQixFQUFFLFdBQVcsRUFBRSxDQUFDO1FBQzNDLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FDeEUsR0FBRyxFQUFFO1lBQ0gsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBQ2pELENBQUMsQ0FDRixDQUFDO1FBRUYsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBRS9DLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDO1FBRXhCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDO0lBRU8sT0FBTyxDQUFDLEtBQWEsRUFBRSxNQUFjLEVBQUUsUUFBZ0I7UUFDN0QsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFTyxZQUFZLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZO1FBQzlDLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUMvRCxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQztRQUNqQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7OzBHQTdFVSxhQUFhO3dHQUFiLGFBQWE7MkZBQWIsYUFBYTtrQkFKekIsSUFBSTttQkFBQztvQkFDSixJQUFJLEVBQUUsV0FBVztvQkFDakIsSUFBSSxFQUFFLEtBQUs7aUJBQ1oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPbkRlc3Ryb3ksIFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICcuL3RyYW5zbGF0ZS5zZXJ2aWNlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5AUGlwZSh7XG4gIG5hbWU6ICd0cmFuc2xhdGUnLFxuICBwdXJlOiBmYWxzZSxcbn0pXG5leHBvcnQgY2xhc3MgVHJhbnNsYXRlUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0sIE9uRGVzdHJveSB7XG4gIHZhbHVlID0gJyc7XG4gIGxhc3RIYXNoOiBzdHJpbmc7XG4gIHByaXZhdGUgbGFuZ0NoYW5nZVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlKSB7fVxuXG4gIHByb3RlY3RlZCBnZXQgcmVzdWx0UHJvdmlkZXIoKTogKFxuICAgIGtleSxcbiAgICBwYXJhbXMsXG4gICAgZGVmYXVsdFZhbHVlOiBzdHJpbmdcbiAgKSA9PiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgIHJldHVybiAoaW5wdXQsIHBhcmFtcywgZGVmYXVsdFZhbHVlKSA9PlxuICAgICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmdldChpbnB1dCwgcGFyYW1zLCBkZWZhdWx0VmFsdWUpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5sYW5nQ2hhbmdlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICB0cmFuc2Zvcm0oaW5wdXQ6IGFueSwgcGFyYW1zPzogUmVjb3JkPHN0cmluZywgYW55Pik6IHN0cmluZztcbiAgdHJhbnNmb3JtKFxuICAgIGlucHV0OiBhbnksXG4gICAgZGVmYXVsdFZhbHVlPzogc3RyaW5nLFxuICAgIHBhcmFtcz86IFJlY29yZDxzdHJpbmcsIGFueT5cbiAgKTogc3RyaW5nO1xuXG4gIHRyYW5zZm9ybShcbiAgICBpbnB1dDogYW55LFxuICAgIHBhcmFtc09yRGVmYXVsdFZhbHVlPzogUmVjb3JkPHN0cmluZywgYW55PiB8IHN0cmluZyxcbiAgICBwYXJhbXM/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+XG4gICk6IHN0cmluZyB7XG4gICAgaWYgKCFpbnB1dCB8fCBpbnB1dC5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiBpbnB1dDtcbiAgICB9XG5cbiAgICBjb25zdCBkZWZhdWx0VmFsdWUgPVxuICAgICAgdHlwZW9mIHBhcmFtc09yRGVmYXVsdFZhbHVlICE9PSAnb2JqZWN0J1xuICAgICAgICA/IHBhcmFtc09yRGVmYXVsdFZhbHVlXG4gICAgICAgIDogdW5kZWZpbmVkO1xuXG4gICAgaWYgKHR5cGVvZiBwYXJhbXNPckRlZmF1bHRWYWx1ZSA9PT0gJ29iamVjdCcpIHtcbiAgICAgIHBhcmFtcyA9IHBhcmFtc09yRGVmYXVsdFZhbHVlO1xuICAgIH1cblxuICAgIGNvbnN0IG5ld0hhc2ggPSB0aGlzLmdldEhhc2goXG4gICAgICBpbnB1dCxcbiAgICAgIHBhcmFtcyxcbiAgICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5nZXRDdXJyZW50TGFuZygpXG4gICAgKTtcblxuICAgIGlmIChuZXdIYXNoID09PSB0aGlzLmxhc3RIYXNoKSB7XG4gICAgICByZXR1cm4gdGhpcy52YWx1ZTtcbiAgICB9XG5cbiAgICB0aGlzLmxhbmdDaGFuZ2VTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5sYW5nQ2hhbmdlU3Vic2NyaXB0aW9uID0gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLm9uTGFuZ0NoYW5nZS5zdWJzY3JpYmUoXG4gICAgICAoKSA9PiB7XG4gICAgICAgIHRoaXMub25MYW5nQ2hhbmdlKGlucHV0LCBwYXJhbXMsIGRlZmF1bHRWYWx1ZSk7XG4gICAgICB9XG4gICAgKTtcblxuICAgIHRoaXMub25MYW5nQ2hhbmdlKGlucHV0LCBwYXJhbXMsIGRlZmF1bHRWYWx1ZSk7XG5cbiAgICB0aGlzLmxhc3RIYXNoID0gbmV3SGFzaDtcblxuICAgIHJldHVybiB0aGlzLnZhbHVlO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRIYXNoKGlucHV0OiBzdHJpbmcsIHBhcmFtczogb2JqZWN0LCBsYW5ndWFnZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoeyBpbnB1dCwgcGFyYW1zLCBsYW5ndWFnZSB9KTtcbiAgfVxuXG4gIHByaXZhdGUgb25MYW5nQ2hhbmdlKGlucHV0LCBwYXJhbXMsIGRlZmF1bHRWYWx1ZSkge1xuICAgIHRoaXMucmVzdWx0UHJvdmlkZXIoaW5wdXQsIHBhcmFtcywgZGVmYXVsdFZhbHVlKS5zdWJzY3JpYmUoKHIpID0+IHtcbiAgICAgIHRoaXMudmFsdWUgPSByO1xuICAgIH0pO1xuICB9XG59XG4iXX0=
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRlLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdG9sZ2VlL3NyYy9saWIvdHJhbnNsYXRlLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFhLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7OztBQVEvRCxNQUFNLE9BQU8sYUFBYTtJQVF4QixZQUFzQixnQkFBa0M7UUFBbEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQVB4RCxVQUFLLEdBQUcsRUFBRSxDQUFDO0lBT2dELENBQUM7SUFFNUQsSUFBYyxjQUFjO1FBSzFCLE9BQU8sQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxFQUFFLENBQ25DLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRSxZQUFZLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBVUQsU0FBUyxDQUNQLEdBQVEsRUFDUixvQkFBbUQsRUFDbkQsTUFBNEI7UUFFNUIsSUFBSSxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUM1QixPQUFPLEdBQUcsQ0FBQztTQUNaO1FBRUQsTUFBTSxZQUFZLEdBQ2hCLE9BQU8sb0JBQW9CLEtBQUssUUFBUTtZQUN0QyxDQUFDLENBQUMsb0JBQW9CO1lBQ3RCLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFFaEIsSUFBSSxPQUFPLG9CQUFvQixLQUFLLFFBQVEsRUFBRTtZQUM1QyxNQUFNLEdBQUcsb0JBQW9CLENBQUM7U0FDL0I7UUFFRCxJQUNFLElBQUksQ0FBQyxHQUFHLEtBQUssR0FBRztZQUNoQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQztZQUN0RCxJQUFJLENBQUMsWUFBWSxLQUFLLFlBQVksRUFDbEM7WUFDQSxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7U0FDbkI7UUFFRCxJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztRQUNmLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDO1FBRWpDLG9CQUFvQjtRQUNwQixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFFbkIsbURBQW1EO1FBQ25ELElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBRTlELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDO0lBRU8sV0FBVztRQUNqQixJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDckIsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUNqQztJQUNILENBQUM7SUFFTyxTQUFTLENBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRSxZQUFZO1FBQ3pDLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLFlBQVksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ3BFLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO1FBQ2pCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7MEdBaEZVLGFBQWE7d0dBQWIsYUFBYTsyRkFBYixhQUFhO2tCQUp6QixJQUFJO21CQUFDO29CQUNKLElBQUksRUFBRSxXQUFXO29CQUNqQixJQUFJLEVBQUUsS0FBSztpQkFDWiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9uRGVzdHJveSwgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJy4vdHJhbnNsYXRlLnNlcnZpY2UnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbkBQaXBlKHtcbiAgbmFtZTogJ3RyYW5zbGF0ZScsXG4gIHB1cmU6IGZhbHNlLFxufSlcbmV4cG9ydCBjbGFzcyBUcmFuc2xhdGVQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSwgT25EZXN0cm95IHtcbiAgdmFsdWUgPSAnJztcbiAga2V5OiBzdHJpbmc7XG4gIHBhcmFtczogUmVjb3JkPHN0cmluZywgYW55PjtcbiAgZGVmYXVsdFZhbHVlOiBzdHJpbmc7XG4gIHByaXZhdGU7XG4gIHByaXZhdGUgc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UpIHt9XG5cbiAgcHJvdGVjdGVkIGdldCByZXN1bHRQcm92aWRlcigpOiAoXG4gICAga2V5LFxuICAgIHBhcmFtcyxcbiAgICBkZWZhdWx0VmFsdWU6IHN0cmluZ1xuICApID0+IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgcmV0dXJuIChrZXksIHBhcmFtcywgZGVmYXVsdFZhbHVlKSA9PlxuICAgICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmdldChrZXksIHBhcmFtcywgZGVmYXVsdFZhbHVlKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMudW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHRyYW5zZm9ybShrZXk6IGFueSwgcGFyYW1zPzogUmVjb3JkPHN0cmluZywgYW55Pik6IHN0cmluZztcblxuICB0cmFuc2Zvcm0oXG4gICAga2V5OiBhbnksXG4gICAgZGVmYXVsdFZhbHVlPzogc3RyaW5nLFxuICAgIHBhcmFtcz86IFJlY29yZDxzdHJpbmcsIGFueT5cbiAgKTogc3RyaW5nO1xuXG4gIHRyYW5zZm9ybShcbiAgICBrZXk6IGFueSxcbiAgICBwYXJhbXNPckRlZmF1bHRWYWx1ZT86IFJlY29yZDxzdHJpbmcsIGFueT4gfCBzdHJpbmcsXG4gICAgcGFyYW1zPzogUmVjb3JkPHN0cmluZywgYW55PlxuICApOiBzdHJpbmcge1xuICAgIGlmICgha2V5IHx8IGtleS5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiBrZXk7XG4gICAgfVxuXG4gICAgY29uc3QgZGVmYXVsdFZhbHVlID1cbiAgICAgIHR5cGVvZiBwYXJhbXNPckRlZmF1bHRWYWx1ZSAhPT0gJ29iamVjdCdcbiAgICAgICAgPyBwYXJhbXNPckRlZmF1bHRWYWx1ZVxuICAgICAgICA6IHVuZGVmaW5lZDtcblxuICAgIGlmICh0eXBlb2YgcGFyYW1zT3JEZWZhdWx0VmFsdWUgPT09ICdvYmplY3QnKSB7XG4gICAgICBwYXJhbXMgPSBwYXJhbXNPckRlZmF1bHRWYWx1ZTtcbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICB0aGlzLmtleSA9PT0ga2V5ICYmXG4gICAgICBKU09OLnN0cmluZ2lmeSh0aGlzLnBhcmFtcykgPT09IEpTT04uc3RyaW5naWZ5KHBhcmFtcykgJiZcbiAgICAgIHRoaXMuZGVmYXVsdFZhbHVlID09PSBkZWZhdWx0VmFsdWVcbiAgICApIHtcbiAgICAgIHJldHVybiB0aGlzLnZhbHVlO1xuICAgIH1cblxuICAgIHRoaXMua2V5ID0ga2V5O1xuICAgIHRoaXMucGFyYW1zID0gcGFyYW1zO1xuICAgIHRoaXMuZGVmYXVsdFZhbHVlID0gZGVmYXVsdFZhbHVlO1xuXG4gICAgLy8gdW5zdWJzY3JpYmUgZmlyc3RcbiAgICB0aGlzLnVuc3Vic2NyaWJlKCk7XG5cbiAgICAvLyBhc3luY2hyb25vdXNseSB0cmFuc2xhdGUgYW5kIGFzc2lnbiBzdWJzY3JpcHRpb25cbiAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IHRoaXMudHJhbnNsYXRlKGtleSwgcGFyYW1zLCBkZWZhdWx0VmFsdWUpO1xuXG4gICAgcmV0dXJuIHRoaXMudmFsdWU7XG4gIH1cblxuICBwcml2YXRlIHVuc3Vic2NyaWJlKCkge1xuICAgIGlmICh0aGlzLnN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHRyYW5zbGF0ZShrZXksIHBhcmFtcywgZGVmYXVsdFZhbHVlKSB7XG4gICAgcmV0dXJuIHRoaXMucmVzdWx0UHJvdmlkZXIoa2V5LCBwYXJhbXMsIGRlZmF1bHRWYWx1ZSkuc3Vic2NyaWJlKChyKSA9PiB7XG4gICAgICB0aGlzLnZhbHVlID0gcjtcbiAgICB9KTtcbiAgfVxufVxuIl19
@@ -1,5 +1,5 @@
1
1
  import { EventEmitter, Injectable } from '@angular/core';
2
- import { from } from 'rxjs';
2
+ import { Observable } from 'rxjs';
3
3
  import { Tolgee } from '@tolgee/core';
4
4
  import * as i0 from "@angular/core";
5
5
  import * as i1 from "./tolgeeConfig";
@@ -12,10 +12,14 @@ export class TranslateService {
12
12
  get tolgee() {
13
13
  return this._tolgee;
14
14
  }
15
+ /**
16
+ * Starts Tolgee if not started and subscribes for languageChange and translationChange events
17
+ */
15
18
  async start(config) {
16
19
  if (!this.runPromise) {
17
20
  this._tolgee = new Tolgee(config);
18
21
  this.runPromise = this.tolgee.run();
22
+ // unsubscribe first, if it is subscribed for some reason
19
23
  this.unsubscribeCoreListeners();
20
24
  this.onTranslationChangeCoreSubscription =
21
25
  this._tolgee.onTranslationChange.subscribe((data) => {
@@ -28,40 +32,119 @@ export class TranslateService {
28
32
  await this.runPromise;
29
33
  }
30
34
  ngOnDestroy() {
35
+ // stop it!
31
36
  this.tolgee.stop();
37
+ // unsubscribe listeners
32
38
  this.unsubscribeCoreListeners();
33
39
  }
40
+ /**
41
+ * Changes the current language
42
+ * @param lang The new current language (e.g. en, en-US)
43
+ */
34
44
  setLang(lang) {
35
45
  this.tolgee.lang = lang;
36
46
  }
37
- get(input, params = {}, defaultValue) {
38
- return from(this.translate(input, params, false, defaultValue));
47
+ /**
48
+ * Returns the current language
49
+ */
50
+ getCurrentLang() {
51
+ return this.tolgee.lang;
39
52
  }
40
- getSafe(input, params = {}, defaultValue) {
41
- return from(this.translate(input, params, true, defaultValue));
53
+ /**
54
+ * Returns Observable providing current translated value
55
+ * Tne observable is subscribed to translation change and language change events of Tolgee
56
+ *
57
+ * In development mode, it returns string wrapped with configured
58
+ * prefix and suffix to be handled in browser by MutationObserver.
59
+ *
60
+ * You should use unsubscribe method when you are done!
61
+ *
62
+ * in onInit: this.subscription = translateService.get('aa')
63
+ * in onDestroy: this.subscription.unsubscribe()
64
+ *
65
+ * @param key The key to translate (e.g. what-a-key)
66
+ * @param params The parameters to interpolate (e.g. {name: "John"})
67
+ * @param defaultValue Value, which will be rendered, when no translated value is provided
68
+ */
69
+ get(key, params = {}, defaultValue) {
70
+ return this.translate(key, params, false, defaultValue);
42
71
  }
43
- instant(input, params = {}, defaultValue) {
44
- return this.tolgee.instant(input, params, undefined, undefined, defaultValue);
72
+ /**
73
+ * Returns Observable providing current translated value
74
+ * Tne observable is subscribed to translation change and language change events of Tolgee
75
+ *
76
+ * In development mode, it returns the translated string,
77
+ * so in-context localization is not going to work.
78
+ *
79
+ * You should use unsubscribe method when you are done!
80
+ *
81
+ * in onInit: this.subscription = translateService.get('aa')
82
+ * in onDestroy: this.subscription.unsubscribe()
83
+ *
84
+ * @param key The key to translate (e.g. what-a-key)
85
+ * @param params The parameters to interpolate (e.g. {name: "John"})
86
+ * @param defaultValue Value, which will be rendered, when no translated value is provided
87
+ */
88
+ getSafe(key, params = {}, defaultValue) {
89
+ return this.translate(key, params, true, defaultValue);
45
90
  }
91
+ /**
92
+ * Returns the translation value synchronously
93
+ *
94
+ * In development mode, it returns string wrapped with configured
95
+ * prefix and suffix to be handled in browser by MutationObserver.
96
+ *
97
+ * @param key The key to translate (e.g. what-a-key)
98
+ * @param params The parameters to interpolate (e.g. {name: "John"})
99
+ * @param defaultValue Value, which will be rendered, when no translated value is provided
100
+ */
101
+ instant(key, params = {}, defaultValue) {
102
+ return this.tolgee.instant(key, params, undefined, undefined, defaultValue);
103
+ }
104
+ /**
105
+ * Returns the translation value synchronously
106
+ *
107
+ * In development mode, it returns the translated string,
108
+ * so in-context localization is not going to work.
109
+ *
110
+ * @param key The key to translate (e.g. what-a-key)
111
+ * @param params The parameters to interpolate (e.g. {name: "John"})
112
+ * @param defaultValue Value, which will be rendered, when no translated value is provided
113
+ */
46
114
  instantSafe(input, params = {}, defaultValue) {
47
115
  return this.tolgee.instant(input, params, true, undefined, defaultValue);
48
116
  }
49
- getCurrentLang() {
50
- return this.tolgee.lang;
51
- }
52
117
  unsubscribeCoreListeners() {
53
118
  this.onTranslationChangeCoreSubscription?.unsubscribe();
54
119
  this.onLangChangeCoreSubscription?.unsubscribe();
55
120
  }
56
- async translate(input, params = {}, noWrap = false, defaultValue) {
57
- //wait for start before translating
58
- await this.start(this.config);
59
- return await this.tolgee.translate(input, params, noWrap, defaultValue);
121
+ translate(key, params = {}, noWrap = false, defaultValue) {
122
+ return new Observable((subscriber) => {
123
+ const translate = async () => {
124
+ // start if not started
125
+ await this.start(this.config);
126
+ const translated = await this.tolgee.translate(key, params, noWrap, defaultValue);
127
+ subscriber.next(translated);
128
+ };
129
+ translate();
130
+ const onTranslationChangeSubscription = this.tolgee.onTranslationChange.subscribe((data) => {
131
+ if (data.key === key) {
132
+ translate();
133
+ }
134
+ });
135
+ const onLanguageChangeSubscription = this.tolgee.onLangChange.subscribe(() => {
136
+ translate();
137
+ });
138
+ return () => {
139
+ onTranslationChangeSubscription.unsubscribe();
140
+ onLanguageChangeSubscription.unsubscribe();
141
+ };
142
+ });
60
143
  }
61
144
  }
62
- TranslateService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: TranslateService, deps: [{ token: i1.TolgeeConfig }], target: i0.ɵɵFactoryTarget.Injectable });
63
- TranslateService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: TranslateService });
64
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: TranslateService, decorators: [{
145
+ TranslateService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: TranslateService, deps: [{ token: i1.TolgeeConfig }], target: i0.ɵɵFactoryTarget.Injectable });
146
+ TranslateService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: TranslateService });
147
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: TranslateService, decorators: [{
65
148
  type: Injectable
66
149
  }], ctorParameters: function () { return [{ type: i1.TolgeeConfig }]; } });
67
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdG9sZ2VlL3NyYy9saWIvdHJhbnNsYXRlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDcEUsT0FBTyxFQUFFLElBQUksRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUN4QyxPQUFPLEVBQUUsTUFBTSxFQUFtQixNQUFNLGNBQWMsQ0FBQzs7O0FBSXZELE1BQU0sT0FBTyxnQkFBZ0I7SUFTM0IsWUFBb0IsTUFBb0I7UUFBcEIsV0FBTSxHQUFOLE1BQU0sQ0FBYztRQVJ4QixpQkFBWSxHQUF3QixJQUFJLFlBQVksRUFBUyxDQUFDO1FBQzlELHdCQUFtQixHQUNqQyxJQUFJLFlBQVksRUFBbUIsQ0FBQztJQU1LLENBQUM7SUFJNUMsSUFBVyxNQUFNO1FBQ2YsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7SUFFTSxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQW9CO1FBQ3JDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ3BCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDbEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ3BDLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO1lBQ2hDLElBQUksQ0FBQyxtQ0FBbUM7Z0JBQ3RDLElBQUksQ0FBQyxPQUFPLENBQUMsbUJBQW1CLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7b0JBQ2xELElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3RDLENBQUMsQ0FBQyxDQUFDO1lBQ0wsSUFBSSxDQUFDLDRCQUE0QixHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FDckUsR0FBRyxFQUFFO2dCQUNILElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDM0IsQ0FBQyxDQUNGLENBQUM7U0FDSDtRQUNELE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUN4QixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLHdCQUF3QixFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUVNLE9BQU8sQ0FBQyxJQUFZO1FBQ3pCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztJQUMxQixDQUFDO0lBRU0sR0FBRyxDQUNSLEtBQWEsRUFDYixNQUFNLEdBQUcsRUFBRSxFQUNYLFlBQXFCO1FBRXJCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsWUFBWSxDQUFDLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBRU0sT0FBTyxDQUNaLEtBQWEsRUFDYixNQUFNLEdBQUcsRUFBRSxFQUNYLFlBQXFCO1FBRXJCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsWUFBWSxDQUFDLENBQUMsQ0FBQztJQUNqRSxDQUFDO0lBRU0sT0FBTyxDQUFDLEtBQWEsRUFBRSxNQUFNLEdBQUcsRUFBRSxFQUFFLFlBQXFCO1FBQzlELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQ3hCLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxFQUNULFNBQVMsRUFDVCxZQUFZLENBQ2IsQ0FBQztJQUNKLENBQUM7SUFFTSxXQUFXLENBQ2hCLEtBQWEsRUFDYixNQUFNLEdBQUcsRUFBRSxFQUNYLFlBQXFCO1FBRXJCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBQzNFLENBQUM7SUFFTSxjQUFjO1FBQ25CLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7SUFDMUIsQ0FBQztJQUVPLHdCQUF3QjtRQUM5QixJQUFJLENBQUMsbUNBQW1DLEVBQUUsV0FBVyxFQUFFLENBQUM7UUFDeEQsSUFBSSxDQUFDLDRCQUE0QixFQUFFLFdBQVcsRUFBRSxDQUFDO0lBQ25ELENBQUM7SUFFTyxLQUFLLENBQUMsU0FBUyxDQUNyQixLQUFhLEVBQ2IsTUFBTSxHQUFHLEVBQUUsRUFDWCxNQUFNLEdBQUcsS0FBSyxFQUNkLFlBQW9CO1FBRXBCLG1DQUFtQztRQUNuQyxNQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzlCLE9BQU8sTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxZQUFZLENBQUMsQ0FBQztJQUMxRSxDQUFDOzs2R0FoR1UsZ0JBQWdCO2lIQUFoQixnQkFBZ0I7MkZBQWhCLGdCQUFnQjtrQkFENUIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEV2ZW50RW1pdHRlciwgSW5qZWN0YWJsZSwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBmcm9tLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBUb2xnZWUsIFRyYW5zbGF0aW9uRGF0YSB9IGZyb20gJ0B0b2xnZWUvY29yZSc7XG5pbXBvcnQgeyBUb2xnZWVDb25maWcgfSBmcm9tICcuL3RvbGdlZUNvbmZpZyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBUcmFuc2xhdGVTZXJ2aWNlIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgcHVibGljIHJlYWRvbmx5IG9uTGFuZ0NoYW5nZTogRXZlbnRFbWl0dGVyPG5ldmVyPiA9IG5ldyBFdmVudEVtaXR0ZXI8bmV2ZXI+KCk7XG4gIHB1YmxpYyByZWFkb25seSBvblRyYW5zbGF0aW9uQ2hhbmdlOiBFdmVudEVtaXR0ZXI8VHJhbnNsYXRpb25EYXRhPiA9XG4gICAgbmV3IEV2ZW50RW1pdHRlcjxUcmFuc2xhdGlvbkRhdGE+KCk7XG5cbiAgcHJpdmF0ZSBydW5Qcm9taXNlOiBQcm9taXNlPHZvaWQ+O1xuICBwcml2YXRlIG9uVHJhbnNsYXRpb25DaGFuZ2VDb3JlU3Vic2NyaXB0aW9uOiBhbnk7XG4gIHByaXZhdGUgb25MYW5nQ2hhbmdlQ29yZVN1YnNjcmlwdGlvbjogYW55O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY29uZmlnOiBUb2xnZWVDb25maWcpIHt9XG5cbiAgcHJpdmF0ZSBfdG9sZ2VlOiBUb2xnZWU7XG5cbiAgcHVibGljIGdldCB0b2xnZWUoKTogVG9sZ2VlIHtcbiAgICByZXR1cm4gdGhpcy5fdG9sZ2VlO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHN0YXJ0KGNvbmZpZzogVG9sZ2VlQ29uZmlnKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKCF0aGlzLnJ1blByb21pc2UpIHtcbiAgICAgIHRoaXMuX3RvbGdlZSA9IG5ldyBUb2xnZWUoY29uZmlnKTtcbiAgICAgIHRoaXMucnVuUHJvbWlzZSA9IHRoaXMudG9sZ2VlLnJ1bigpO1xuICAgICAgdGhpcy51bnN1YnNjcmliZUNvcmVMaXN0ZW5lcnMoKTtcbiAgICAgIHRoaXMub25UcmFuc2xhdGlvbkNoYW5nZUNvcmVTdWJzY3JpcHRpb24gPVxuICAgICAgICB0aGlzLl90b2xnZWUub25UcmFuc2xhdGlvbkNoYW5nZS5zdWJzY3JpYmUoKGRhdGEpID0+IHtcbiAgICAgICAgICB0aGlzLm9uVHJhbnNsYXRpb25DaGFuZ2UuZW1pdChkYXRhKTtcbiAgICAgICAgfSk7XG4gICAgICB0aGlzLm9uTGFuZ0NoYW5nZUNvcmVTdWJzY3JpcHRpb24gPSB0aGlzLl90b2xnZWUub25MYW5nQ2hhbmdlLnN1YnNjcmliZShcbiAgICAgICAgKCkgPT4ge1xuICAgICAgICAgIHRoaXMub25MYW5nQ2hhbmdlLmVtaXQoKTtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9XG4gICAgYXdhaXQgdGhpcy5ydW5Qcm9taXNlO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy50b2xnZWUuc3RvcCgpO1xuICAgIHRoaXMudW5zdWJzY3JpYmVDb3JlTGlzdGVuZXJzKCk7XG4gIH1cblxuICBwdWJsaWMgc2V0TGFuZyhsYW5nOiBzdHJpbmcpIHtcbiAgICB0aGlzLnRvbGdlZS5sYW5nID0gbGFuZztcbiAgfVxuXG4gIHB1YmxpYyBnZXQoXG4gICAgaW5wdXQ6IHN0cmluZyxcbiAgICBwYXJhbXMgPSB7fSxcbiAgICBkZWZhdWx0VmFsdWU/OiBzdHJpbmdcbiAgKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gZnJvbSh0aGlzLnRyYW5zbGF0ZShpbnB1dCwgcGFyYW1zLCBmYWxzZSwgZGVmYXVsdFZhbHVlKSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0U2FmZShcbiAgICBpbnB1dDogc3RyaW5nLFxuICAgIHBhcmFtcyA9IHt9LFxuICAgIGRlZmF1bHRWYWx1ZT86IHN0cmluZ1xuICApOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgIHJldHVybiBmcm9tKHRoaXMudHJhbnNsYXRlKGlucHV0LCBwYXJhbXMsIHRydWUsIGRlZmF1bHRWYWx1ZSkpO1xuICB9XG5cbiAgcHVibGljIGluc3RhbnQoaW5wdXQ6IHN0cmluZywgcGFyYW1zID0ge30sIGRlZmF1bHRWYWx1ZT86IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMudG9sZ2VlLmluc3RhbnQoXG4gICAgICBpbnB1dCxcbiAgICAgIHBhcmFtcyxcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIGRlZmF1bHRWYWx1ZVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgaW5zdGFudFNhZmUoXG4gICAgaW5wdXQ6IHN0cmluZyxcbiAgICBwYXJhbXMgPSB7fSxcbiAgICBkZWZhdWx0VmFsdWU/OiBzdHJpbmdcbiAgKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy50b2xnZWUuaW5zdGFudChpbnB1dCwgcGFyYW1zLCB0cnVlLCB1bmRlZmluZWQsIGRlZmF1bHRWYWx1ZSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0Q3VycmVudExhbmcoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy50b2xnZWUubGFuZztcbiAgfVxuXG4gIHByaXZhdGUgdW5zdWJzY3JpYmVDb3JlTGlzdGVuZXJzKCkge1xuICAgIHRoaXMub25UcmFuc2xhdGlvbkNoYW5nZUNvcmVTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5vbkxhbmdDaGFuZ2VDb3JlU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyB0cmFuc2xhdGUoXG4gICAgaW5wdXQ6IHN0cmluZyxcbiAgICBwYXJhbXMgPSB7fSxcbiAgICBub1dyYXAgPSBmYWxzZSxcbiAgICBkZWZhdWx0VmFsdWU6IHN0cmluZ1xuICApOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIC8vd2FpdCBmb3Igc3RhcnQgYmVmb3JlIHRyYW5zbGF0aW5nXG4gICAgYXdhaXQgdGhpcy5zdGFydCh0aGlzLmNvbmZpZyk7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMudG9sZ2VlLnRyYW5zbGF0ZShpbnB1dCwgcGFyYW1zLCBub1dyYXAsIGRlZmF1bHRWYWx1ZSk7XG4gIH1cbn1cbiJdfQ==
150
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdG9sZ2VlL3NyYy9saWIvdHJhbnNsYXRlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDcEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNsQyxPQUFPLEVBQUUsTUFBTSxFQUFtQixNQUFNLGNBQWMsQ0FBQzs7O0FBSXZELE1BQU0sT0FBTyxnQkFBZ0I7SUFTM0IsWUFBb0IsTUFBb0I7UUFBcEIsV0FBTSxHQUFOLE1BQU0sQ0FBYztRQVJ4QixpQkFBWSxHQUF3QixJQUFJLFlBQVksRUFBUyxDQUFDO1FBQzlELHdCQUFtQixHQUNqQyxJQUFJLFlBQVksRUFBbUIsQ0FBQztJQU1LLENBQUM7SUFJNUMsSUFBVyxNQUFNO1FBQ2YsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBb0I7UUFDckMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDcEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNsQyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDcEMseURBQXlEO1lBQ3pELElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO1lBQ2hDLElBQUksQ0FBQyxtQ0FBbUM7Z0JBQ3RDLElBQUksQ0FBQyxPQUFPLENBQUMsbUJBQW1CLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7b0JBQ2xELElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3RDLENB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QixTQUFTLEVBQUUsQ0FBQztpQkFDYjtZQUNILENBQUMsQ0FBQyxDQUFDO1lBRUwsTUFBTSw0QkFBNEIsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQ3JFLEdBQUcsRUFBRTtnQkFDSCxTQUFTLEVBQUUsQ0FBQztZQUNkLENBQUMsQ0FDRixDQUFDO1lBRUYsT0FBTyxHQUFHLEVBQUU7Z0JBQ1YsK0JBQStCLENBQUMsV0FBVyxFQUFFLENBQUM7Z0JBQzlDLDRCQUE0QixDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQzdDLENBQUMsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7NkdBMUxVLGdCQUFnQjtpSEFBaEIsZ0JBQWdCOzJGQUFoQixnQkFBZ0I7a0JBRDVCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFdmVudEVtaXR0ZXIsIEluamVjdGFibGUsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgVG9sZ2VlLCBUcmFuc2xhdGlvbkRhdGEgfSBmcm9tICdAdG9sZ2VlL2NvcmUnO1xuaW1wb3J0IHsgVG9sZ2VlQ29uZmlnIH0gZnJvbSAnLi90b2xnZWVDb25maWcnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgVHJhbnNsYXRlU2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHB1YmxpYyByZWFkb25seSBvbkxhbmdDaGFuZ2U6IEV2ZW50RW1pdHRlcjxuZXZlcj4gPSBuZXcgRXZlbnRFbWl0dGVyPG5ldmVyPigpO1xuICBwdWJsaWMgcmVhZG9ubHkgb25UcmFuc2xhdGlvbkNoYW5nZTogRXZlbnRFbWl0dGVyPFRyYW5zbGF0aW9uRGF0YT4gPVxuICAgIG5ldyBFdmVudEVtaXR0ZXI8VHJhbnNsYXRpb25EYXRhPigpO1xuXG4gIHByaXZhdGUgcnVuUHJvbWlzZTogUHJvbWlzZTx2b2lkPjtcbiAgcHJpdmF0ZSBvblRyYW5zbGF0aW9uQ2hhbmdlQ29yZVN1YnNjcmlwdGlvbjogYW55O1xuICBwcml2YXRlIG9uTGFuZ0NoYW5nZUNvcmVTdWJzY3JpcHRpb246IGFueTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNvbmZpZzogVG9sZ2VlQ29uZmlnKSB7fVxuXG4gIHByaXZhdGUgX3RvbGdlZTogVG9sZ2VlO1xuXG4gIHB1YmxpYyBnZXQgdG9sZ2VlKCk6IFRvbGdlZSB7XG4gICAgcmV0dXJuIHRoaXMuX3RvbGdlZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTdGFydHMgVG9sZ2VlIGlmIG5vdCBzdGFydGVkIGFuZCBzdWJzY3JpYmVzIGZvciBsYW5ndWFnZUNoYW5nZSBhbmQgdHJhbnNsYXRpb25DaGFuZ2UgZXZlbnRzXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgc3RhcnQoY29uZmlnOiBUb2xnZWVDb25maWcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAoIXRoaXMucnVuUHJvbWlzZSkge1xuICAgICAgdGhpcy5fdG9sZ2VlID0gbmV3IFRvbGdlZShjb25maWcpO1xuICAgICAgdGhpcy5ydW5Qcm9taXNlID0gdGhpcy50b2xnZWUucnVuKCk7XG4gICAgICAvLyB1bnN1YnNjcmliZSBmaXJzdCwgaWYgaXQgaXMgc3Vic2NyaWJlZCBmb3Igc29tZSByZWFzb25cbiAgICAgIHRoaXMudW5zdWJzY3JpYmVDb3JlTGlzdGVuZXJzKCk7XG4gICAgICB0aGlzLm9uVHJhbnNsYXRpb25DaGFuZ2VDb3JlU3Vic2NyaXB0aW9uID1cbiAgICAgICAgdGhpcy5fdG9sZ2VlLm9uVHJhbnNsYXRpb25DaGFuZ2Uuc3Vic2NyaWJlKChkYXRhKSA9PiB7XG4gICAgICAgICAgdGhpcy5vblRyYW5zbGF0aW9uQ2hhbmdlLmVtaXQoZGF0YSk7XG4gICAgICAgIH0pO1xuICAgICAgdGhpcy5vbkxhbmdDaGFuZ2VDb3JlU3Vic2NyaXB0aW9uID0gdGhpcy5fdG9sZ2VlLm9uTGFuZ0NoYW5nZS5zdWJzY3JpYmUoXG4gICAgICAgICgpID0+IHtcbiAgICAgICAgICB0aGlzLm9uTGFuZ0NoYW5nZS5lbWl0KCk7XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfVxuICAgIGF3YWl0IHRoaXMucnVuUHJvbWlzZTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIC8vIHN0b3AgaXQhXG4gICAgdGhpcy50b2xnZWUuc3RvcCgpO1xuICAgIC8vIHVuc3Vic2NyaWJlIGxpc3RlbmVyc1xuICAgIHRoaXMudW5zdWJzY3JpYmVDb3JlTGlzdGVuZXJzKCk7XG4gIH1cblxuICAvKipcbiAgICogQ2hhbmdlcyB0aGUgY3VycmVudCBsYW5ndWFnZVxuICAgKiBAcGFyYW0gbGFuZyBUaGUgbmV3IGN1cnJlbnQgbGFuZ3VhZ2UgKGUuZy4gZW4sIGVuLVVTKVxuICAgKi9cbiAgcHVibGljIHNldExhbmcobGFuZzogc3RyaW5nKSB7XG4gICAgdGhpcy50b2xnZWUubGFuZyA9IGxhbmc7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgY3VycmVudCBsYW5ndWFnZVxuICAgKi9cbiAgcHVibGljIGdldEN1cnJlbnRMYW5nKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMudG9sZ2VlLmxhbmc7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBPYnNlcnZhYmxlIHByb3ZpZGluZyBjdXJyZW50IHRyYW5zbGF0ZWQgdmFsdWVcbiAgICogVG5lIG9ic2VydmFibGUgaXMgc3Vic2NyaWJlZCB0byB0cmFuc2xhdGlvbiBjaGFuZ2UgYW5kIGxhbmd1YWdlIGNoYW5nZSBldmVudHMgb2YgVG9sZ2VlXG4gICAqXG4gICAqIEluIGRldmVsb3BtZW50IG1vZGUsIGl0IHJldHVybnMgc3RyaW5nIHdyYXBwZWQgd2l0aCBjb25maWd1cmVkXG4gICAqIHByZWZpeCBhbmQgc3VmZml4IHRvIGJlIGhhbmRsZWQgaW4gYnJvd3NlciBieSBNdXRhdGlvbk9ic2VydmVyLlxuICAgKlxuICAgKiBZb3Ugc2hvdWxkIHVzZSB1bnN1YnNjcmliZSBtZXRob2Qgd2hlbiB5b3UgYXJlIGRvbmUhXG4gICAqXG4gICAqIGluIG9uSW5pdDogdGhpcy5zdWJzY3JpcHRpb24gPSB0cmFuc2xhdGVTZXJ2aWNlLmdldCgnYWEnKVxuICAgKiBpbiBvbkRlc3Ryb3k6IHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKClcbiAgICpcbiAgICogQHBhcmFtIGtleSBUaGUga2V5IHRvIHRyYW5zbGF0ZSAoZS5nLiB3aGF0LWEta2V5KVxuICAgKiBAcGFyYW0gcGFyYW1zIFRoZSBwYXJhbWV0ZXJzIHRvIGludGVycG9sYXRlIChlLmcuIHtuYW1lOiBcIkpvaG5cIn0pXG4gICAqIEBwYXJhbSBkZWZhdWx0VmFsdWUgVmFsdWUsIHdoaWNoIHdpbGwgYmUgcmVuZGVyZWQsIHdoZW4gbm8gdHJhbnNsYXRlZCB2YWx1ZSBpcyBwcm92aWRlZFxuICAgKi9cbiAgcHVibGljIGdldChcbiAgICBrZXk6IHN0cmluZyxcbiAgICBwYXJhbXMgPSB7fSxcbiAgICBkZWZhdWx0VmFsdWU/OiBzdHJpbmdcbiAgKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gdGhpcy50cmFuc2xhdGUoa2V5LCBwYXJhbXMsIGZhbHNlLCBkZWZhdWx0VmFsdWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgT2JzZXJ2YWJsZSBwcm92aWRpbmcgY3VycmVudCB0cmFuc2xhdGVkIHZhbHVlXG4gICAqIFRuZSBvYnNlcnZhYmxlIGlzIHN1YnNjcmliZWQgdG8gdHJhbnNsYXRpb24gY2hhbmdlIGFuZCBsYW5ndWFnZSBjaGFuZ2UgZXZlbnRzIG9mIFRvbGdlZVxuICAgKlxuICAgKiBJbiBkZXZlbG9wbWVudCBtb2RlLCBpdCByZXR1cm5zIHRoZSB0cmFuc2xhdGVkIHN0cmluZyxcbiAgICogc28gaW4tY29udGV4dCBsb2NhbGl6YXRpb24gaXMgbm90IGdvaW5nIHRvIHdvcmsuXG4gICAqXG4gICAqIFlvdSBzaG91bGQgdXNlIHVuc3Vic2NyaWJlIG1ldGhvZCB3aGVuIHlvdSBhcmUgZG9uZSFcbiAgICpcbiAgICogaW4gb25Jbml0OiB0aGlzLnN1YnNjcmlwdGlvbiA9IHRyYW5zbGF0ZVNlcnZpY2UuZ2V0KCdhYScpXG4gICAqIGluIG9uRGVzdHJveTogdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKVxuICAgKlxuICAgKiBAcGFyYW0ga2V5IFRoZSBrZXkgdG8gdHJhbnNsYXRlIChlLmcuIHdoYXQtYS1rZXkpXG4gICAqIEBwYXJhbSBwYXJhbXMgVGhlIHBhcmFtZXRlcnMgdG8gaW50ZXJwb2xhdGUgKGUuZy4ge25hbWU6IFwiSm9oblwifSlcbiAgICogQHBhcmFtIGRlZmF1bHRWYWx1ZSBWYWx1ZSwgd2hpY2ggd2lsbCBiZSByZW5kZXJlZCwgd2hlbiBubyB0cmFuc2xhdGVkIHZhbHVlIGlzIHByb3ZpZGVkXG4gICAqL1xuICBwdWJsaWMgZ2V0U2FmZShcbiAgICBrZXk6IHN0cmluZyxcbiAgICBwYXJhbXMgPSB7fSxcbiAgICBkZWZhdWx0VmFsdWU/OiBzdHJpbmdcbiAgKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gdGhpcy50cmFuc2xhdGUoa2V5LCBwYXJhbXMsIHRydWUsIGRlZmF1bHRWYWx1ZSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgdHJhbnNsYXRpb24gdmFsdWUgc3luY2hyb25vdXNseVxuICAgKlxuICAgKiBJbiBkZXZlbG9wbWVudCBtb2RlLCBpdCByZXR1cm5zIHN0cmluZyB3cmFwcGVkIHdpdGggY29uZmlndXJlZFxuICAgKiBwcmVmaXggYW5kIHN1ZmZpeCB0byBiZSBoYW5kbGVkIGluIGJyb3dzZXIgYnkgTXV0YXRpb25PYnNlcnZlci5cbiAgICpcbiAgICogQHBhcmFtIGtleSBUaGUga2V5IHRvIHRyYW5zbGF0ZSAoZS5nLiB3aGF0LWEta2V5KVxuICAgKiBAcGFyYW0gcGFyYW1zIFRoZSBwYXJhbWV0ZXJzIHRvIGludGVycG9sYXRlIChlLmcuIHtuYW1lOiBcIkpvaG5cIn0pXG4gICAqIEBwYXJhbSBkZWZhdWx0VmFsdWUgVmFsdWUsIHdoaWNoIHdpbGwgYmUgcmVuZGVyZWQsIHdoZW4gbm8gdHJhbnNsYXRlZCB2YWx1ZSBpcyBwcm92aWRlZFxuICAgKi9cbiAgcHVibGljIGluc3RhbnQoa2V5OiBzdHJpbmcsIHBhcmFtcyA9IHt9LCBkZWZhdWx0VmFsdWU/OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnRvbGdlZS5pbnN0YW50KGtleSwgcGFyYW1zLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgZGVmYXVsdFZhbHVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSB0cmFuc2xhdGlvbiB2YWx1ZSBzeW5jaHJvbm91c2x5XG4gICAqXG4gICAqIEluIGRldmVsb3BtZW50IG1vZGUsIGl0IHJldHVybnMgdGhlIHRyYW5zbGF0ZWQgc3RyaW5nLFxuICAgKiBzbyBpbi1jb250ZXh0IGxvY2FsaXphdGlvbiBpcyBub3QgZ29pbmcgdG8gd29yay5cbiAgICpcbiAgICogQHBhcmFtIGtleSBUaGUga2V5IHRvIHRyYW5zbGF0ZSAoZS5nLiB3aGF0LWEta2V5KVxuICAgKiBAcGFyYW0gcGFyYW1zIFRoZSBwYXJhbWV0ZXJzIHRvIGludGVycG9sYXRlIChlLmcuIHtuYW1lOiBcIkpvaG5cIn0pXG4gICAqIEBwYXJhbSBkZWZhdWx0VmFsdWUgVmFsdWUsIHdoaWNoIHdpbGwgYmUgcmVuZGVyZWQsIHdoZW4gbm8gdHJhbnNsYXRlZCB2YWx1ZSBpcyBwcm92aWRlZFxuICAgKi9cbiAgcHVibGljIGluc3RhbnRTYWZlKFxuICAgIGlucHV0OiBzdHJpbmcsXG4gICAgcGFyYW1zID0ge30sXG4gICAgZGVmYXVsdFZhbHVlPzogc3RyaW5nXG4gICk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMudG9sZ2VlLmluc3RhbnQoaW5wdXQsIHBhcmFtcywgdHJ1ZSwgdW5kZWZpbmVkLCBkZWZhdWx0VmFsdWUpO1xuICB9XG5cbiAgcHJpdmF0ZSB1bnN1YnNjcmliZUNvcmVMaXN0ZW5lcnMoKSB7XG4gICAgdGhpcy5vblRyYW5zbGF0aW9uQ2hhbmdlQ29yZVN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLm9uTGFuZ0NoYW5nZUNvcmVTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwcml2YXRlIHRyYW5zbGF0ZShcbiAgICBrZXk6IHN0cmluZyxcbiAgICBwYXJhbXMgPSB7fSxcbiAgICBub1dyYXAgPSBmYWxzZSxcbiAgICBkZWZhdWx0VmFsdWU6IHN0cmluZ1xuICApOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZSgoc3Vic2NyaWJlcikgPT4ge1xuICAgICAgY29uc3QgdHJhbnNsYXRlID0gYXN5bmMgKCkgPT4ge1xuICAgICAgICAvLyBzdGFydCBpZiBub3Qgc3RhcnRlZFxuICAgICAgICBhd2FpdCB0aGlzLnN0YXJ0KHRoaXMuY29uZmlnKTtcbiAgICAgICAgY29uc3QgdHJhbnNsYXRlZCA9IGF3YWl0IHRoaXMudG9sZ2VlLnRyYW5zbGF0ZShcbiAgICAgICAgICBrZXksXG4gICAgICAgICAgcGFyYW1zLFxuICAgICAgICAgIG5vV3JhcCxcbiAgICAgICAgICBkZWZhdWx0VmFsdWVcbiAgICAgICAgKTtcblxuICAgICAgICBzdWJzY3JpYmVyLm5leHQodHJhbnNsYXRlZCk7XG4gICAgICB9O1xuXG4gICAgICB0cmFuc2xhdGUoKTtcblxuICAgICAgY29uc3Qgb25UcmFuc2xhdGlvbkNoYW5nZVN1YnNjcmlwdGlvbiA9XG4gICAgICAgIHRoaXMudG9sZ2VlLm9uVHJhbnNsYXRpb25DaGFuZ2Uuc3Vic2NyaWJlKChkYXRhKSA9PiB7XG4gICAgICAgICAgaWYgKGRhdGEua2V5ID09PSBrZXkpIHtcbiAgICAgICAgICAgIHRyYW5zbGF0ZSgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IG9uTGFuZ3VhZ2VDaGFuZ2VTdWJzY3JpcHRpb24gPSB0aGlzLnRvbGdlZS5vbkxhbmdDaGFuZ2Uuc3Vic2NyaWJlKFxuICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgdHJhbnNsYXRlKCk7XG4gICAgICAgIH1cbiAgICAgICk7XG5cbiAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIG9uVHJhbnNsYXRpb25DaGFuZ2VTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgb25MYW5ndWFnZUNoYW5nZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgfTtcbiAgICB9KTtcbiAgfVxufVxuIl19
@@ -9,9 +9,9 @@ export class TranslationsProvider {
9
9
  return await this.translateService.start(options);
10
10
  }
11
11
  }
12
- TranslationsProvider.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: TranslationsProvider, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Injectable });
13
- TranslationsProvider.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: TranslationsProvider });
14
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: TranslationsProvider, decorators: [{
12
+ TranslationsProvider.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: TranslationsProvider, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Injectable });
13
+ TranslationsProvider.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: TranslationsProvider });
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: TranslationsProvider, decorators: [{
15
15
  type: Injectable
16
16
  }], ctorParameters: function () { return [{ type: i1.TranslateService }]; } });
17
17
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRpb25zLXByb3ZpZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXRvbGdlZS9zcmMvbGliL3RyYW5zbGF0aW9ucy1wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDOzs7QUFLekMsTUFBTSxPQUFPLG9CQUFvQjtJQUUvQixZQUFvQixnQkFBa0M7UUFBbEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtJQUN0RCxDQUFDO0lBRUQsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFxQjtRQUM5QixPQUFPLE1BQU0sSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNwRCxDQUFDOztpSEFQVSxvQkFBb0I7cUhBQXBCLG9CQUFvQjsyRkFBcEIsb0JBQW9CO2tCQURoQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7VHJhbnNsYXRlU2VydmljZX0gZnJvbSBcIi4vdHJhbnNsYXRlLnNlcnZpY2VcIjtcbmltcG9ydCB7VG9sZ2VlQ29uZmlnfSBmcm9tIFwiQHRvbGdlZS9jb3JlXCI7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBUcmFuc2xhdGlvbnNQcm92aWRlciB7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlKSB7XG4gIH1cblxuICBhc3luYyBsb2FkKG9wdGlvbnM6IFRvbGdlZUNvbmZpZykge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLnRyYW5zbGF0ZVNlcnZpY2Uuc3RhcnQob3B0aW9ucyk7XG4gIH1cbn1cblxuXG4iXX0=