@tolgee/ngx 6.4.1-prerelease.43dd4fa5.0 → 6.5.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.
- package/esm2022/lib/loader.component.mjs +24 -0
- package/esm2022/lib/namespace.resolver.mjs +28 -0
- package/esm2022/lib/ngx-tolgee.module.mjs +39 -0
- package/esm2022/lib/t.component.mjs +103 -0
- package/esm2022/lib/tolgee-instance-token.mjs +3 -0
- package/esm2022/lib/translate.pipe.mjs +64 -0
- package/esm2022/lib/translate.service.mjs +133 -0
- package/esm2022/public-api.mjs +11 -0
- package/esm2022/tolgee-ngx.mjs +5 -0
- package/fesm2022/tolgee-ngx.mjs +204 -131
- package/fesm2022/tolgee-ngx.mjs.map +1 -1
- package/index.d.ts +5 -110
- package/lib/loader.component.d.ts +6 -0
- package/lib/namespace.resolver.d.ts +11 -0
- package/lib/ngx-tolgee.module.d.ts +9 -0
- package/lib/t.component.d.ts +33 -0
- package/lib/tolgee-instance-token.d.ts +3 -0
- package/lib/translate.pipe.d.ts +20 -0
- package/lib/translate.service.d.ts +61 -0
- package/package.json +5 -3
- package/public-api.d.ts +7 -0
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { Component, Input } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class LoaderComponent {
|
|
4
|
+
html;
|
|
5
|
+
static ɵfac = function LoaderComponent_Factory(t) { return new (t || LoaderComponent)(); };
|
|
6
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: LoaderComponent, selectors: [["ng-component"]], inputs: { html: "html" }, decls: 1, vars: 1, consts: [[1, "loader-template", 3, "innerHTML"]], template: function LoaderComponent_Template(rf, ctx) { if (rf & 1) {
|
|
7
|
+
i0.ɵɵelement(0, "div", 0);
|
|
8
|
+
} if (rf & 2) {
|
|
9
|
+
i0.ɵɵproperty("innerHTML", ctx.html, i0.ɵɵsanitizeHtml);
|
|
10
|
+
} }, encapsulation: 2 });
|
|
11
|
+
}
|
|
12
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(LoaderComponent, [{
|
|
13
|
+
type: Component,
|
|
14
|
+
args: [{
|
|
15
|
+
template: `
|
|
16
|
+
<div class="loader-template" [innerHTML]="html"></div>
|
|
17
|
+
`,
|
|
18
|
+
standalone: false,
|
|
19
|
+
}]
|
|
20
|
+
}], null, { html: [{
|
|
21
|
+
type: Input
|
|
22
|
+
}] }); })();
|
|
23
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(LoaderComponent, { className: "LoaderComponent", filePath: "lib/loader.component.ts", lineNumber: 9 }); })();
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10b2xnZWUvc3JjL2xpYi9sb2FkZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQVFqRCxNQUFNLE9BQU8sZUFBZTtJQUNqQixJQUFJLENBQXFCO3lFQUR2QixlQUFlOzZEQUFmLGVBQWU7WUFKeEIseUJBQXNEOztZQUF6Qix1REFBa0I7OztpRkFJdEMsZUFBZTtjQU4zQixTQUFTO2VBQUM7Z0JBQ1QsUUFBUSxFQUFFOztHQUVUO2dCQUNELFVBQVUsRUFBRSxLQUFLO2FBQ2xCO2dCQUVVLElBQUk7a0JBQVosS0FBSzs7a0ZBREssZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBjbGFzcz1cImxvYWRlci10ZW1wbGF0ZVwiIFtpbm5lckhUTUxdPVwiaHRtbFwiPjwvZGl2PlxuICBgLFxuICBzdGFuZGFsb25lOiBmYWxzZSxcbn0pXG5leHBvcnQgY2xhc3MgTG9hZGVyQ29tcG9uZW50IHtcbiAgQElucHV0KCkgaHRtbDogc3RyaW5nIHwgdW5kZWZpbmVkO1xufVxuIl19
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "./translate.service";
|
|
4
|
+
export class NamespaceResolver {
|
|
5
|
+
service;
|
|
6
|
+
constructor(service) {
|
|
7
|
+
this.service = service;
|
|
8
|
+
}
|
|
9
|
+
async resolve(route) {
|
|
10
|
+
const ns = this.getNamespace(route);
|
|
11
|
+
await this.service.tolgee.addActiveNs(ns, true);
|
|
12
|
+
}
|
|
13
|
+
getNamespace(route) {
|
|
14
|
+
const namespace = route?.data?.tolgeeNamespace;
|
|
15
|
+
if (namespace === undefined) {
|
|
16
|
+
console.warn('No namespace provided. Please add tolgeeNamespace to your route data. \n' +
|
|
17
|
+
'If you really want to lazy load default namespace set tolgeeNamespace to empty string');
|
|
18
|
+
}
|
|
19
|
+
return namespace;
|
|
20
|
+
}
|
|
21
|
+
static ɵfac = function NamespaceResolver_Factory(t) { return new (t || NamespaceResolver)(i0.ɵɵinject(i1.TranslateService)); };
|
|
22
|
+
static ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: NamespaceResolver, factory: NamespaceResolver.ɵfac, providedIn: 'root' });
|
|
23
|
+
}
|
|
24
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(NamespaceResolver, [{
|
|
25
|
+
type: Injectable,
|
|
26
|
+
args: [{ providedIn: 'root' }]
|
|
27
|
+
}], () => [{ type: i1.TranslateService }], null); })();
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmFtZXNwYWNlLnJlc29sdmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXRvbGdlZS9zcmMvbGliL25hbWVzcGFjZS5yZXNvbHZlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFHM0MsTUFBTSxPQUFPLGlCQUFpQjtJQUNUO0lBQW5CLFlBQW1CLE9BQXlCO1FBQXpCLFlBQU8sR0FBUCxPQUFPLENBQWtCO0lBQUcsQ0FBQztJQUVoRCxLQUFLLENBQUMsT0FBTyxDQUNYLEtBQTZCO1FBRTdCLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDcEMsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFBO0lBQ2pELENBQUM7SUFFTyxZQUFZLENBQUMsS0FBNkI7UUFDaEQsTUFBTSxTQUFTLEdBQUcsS0FBSyxFQUFFLElBQUksRUFBRSxlQUFlLENBQUM7UUFDL0MsSUFBSSxTQUFTLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDNUIsT0FBTyxDQUFDLElBQUksQ0FDViwwRUFBMEU7Z0JBQ3hFLHVGQUF1RixDQUMxRixDQUFDO1FBQ0osQ0FBQztRQUNELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7MkVBbkJVLGlCQUFpQjtnRUFBakIsaUJBQWlCLFdBQWpCLGlCQUFpQixtQkFESixNQUFNOztpRkFDbkIsaUJBQWlCO2NBRDdCLFVBQVU7ZUFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90IH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICcuL3RyYW5zbGF0ZS5zZXJ2aWNlJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBOYW1lc3BhY2VSZXNvbHZlciAge1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgc2VydmljZTogVHJhbnNsYXRlU2VydmljZSkge31cblxuICBhc3luYyByZXNvbHZlKFxuICAgIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LFxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBucyA9IHRoaXMuZ2V0TmFtZXNwYWNlKHJvdXRlKTtcbiAgICBhd2FpdCB0aGlzLnNlcnZpY2UudG9sZ2VlLmFkZEFjdGl2ZU5zKG5zLCB0cnVlKVxuICB9XG5cbiAgcHJpdmF0ZSBnZXROYW1lc3BhY2Uocm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QpIHtcbiAgICBjb25zdCBuYW1lc3BhY2UgPSByb3V0ZT8uZGF0YT8udG9sZ2VlTmFtZXNwYWNlO1xuICAgIGlmIChuYW1lc3BhY2UgPT09IHVuZGVmaW5lZCkge1xuICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAnTm8gbmFtZXNwYWNlIHByb3ZpZGVkLiBQbGVhc2UgYWRkIHRvbGdlZU5hbWVzcGFjZSB0byB5b3VyIHJvdXRlIGRhdGEuIFxcbicgK1xuICAgICAgICAgICdJZiB5b3UgcmVhbGx5IHdhbnQgdG8gbGF6eSBsb2FkIGRlZmF1bHQgbmFtZXNwYWNlIHNldCB0b2xnZWVOYW1lc3BhY2UgdG8gZW1wdHkgc3RyaW5nJ1xuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIG5hbWVzcGFjZTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { APP_INITIALIZER, NgModule } from '@angular/core';
|
|
2
|
+
import { TranslatePipe } from './translate.pipe';
|
|
3
|
+
import { TComponent } from './t.component';
|
|
4
|
+
import { TranslateService } from './translate.service';
|
|
5
|
+
import { LoaderComponent } from "./loader.component";
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
export class NgxTolgeeModule {
|
|
8
|
+
static ɵfac = function NgxTolgeeModule_Factory(t) { return new (t || NgxTolgeeModule)(); };
|
|
9
|
+
static ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: NgxTolgeeModule });
|
|
10
|
+
static ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ providers: [
|
|
11
|
+
{
|
|
12
|
+
provide: APP_INITIALIZER,
|
|
13
|
+
useFactory: (service) => {
|
|
14
|
+
return async () => await service.start();
|
|
15
|
+
},
|
|
16
|
+
deps: [TranslateService],
|
|
17
|
+
multi: true,
|
|
18
|
+
},
|
|
19
|
+
] });
|
|
20
|
+
}
|
|
21
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(NgxTolgeeModule, [{
|
|
22
|
+
type: NgModule,
|
|
23
|
+
args: [{
|
|
24
|
+
declarations: [TranslatePipe, TComponent, LoaderComponent],
|
|
25
|
+
exports: [TranslatePipe, TComponent],
|
|
26
|
+
providers: [
|
|
27
|
+
{
|
|
28
|
+
provide: APP_INITIALIZER,
|
|
29
|
+
useFactory: (service) => {
|
|
30
|
+
return async () => await service.start();
|
|
31
|
+
},
|
|
32
|
+
deps: [TranslateService],
|
|
33
|
+
multi: true,
|
|
34
|
+
},
|
|
35
|
+
],
|
|
36
|
+
}]
|
|
37
|
+
}], null, null); })();
|
|
38
|
+
(function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(NgxTolgeeModule, { declarations: [TranslatePipe, TComponent, LoaderComponent], exports: [TranslatePipe, TComponent] }); })();
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LXRvbGdlZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdG9sZ2VlL3NyYy9saWIvbmd4LXRvbGdlZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDOztBQWdCckQsTUFBTSxPQUFPLGVBQWU7eUVBQWYsZUFBZTs0REFBZixlQUFlO2lFQVhmO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLGVBQWU7Z0JBQ3hCLFVBQVUsRUFBRSxDQUFDLE9BQXlCLEVBQUUsRUFBRTtvQkFDeEMsT0FBTyxLQUFLLElBQUksRUFBRSxDQUFDLE1BQU0sT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUMzQyxDQUFDO2dCQUNELElBQUksRUFBRSxDQUFDLGdCQUFnQixDQUFDO2dCQUN4QixLQUFLLEVBQUUsSUFBSTthQUNaO1NBQ0Y7O2lGQUVVLGVBQWU7Y0FkM0IsUUFBUTtlQUFDO2dCQUNSLFlBQVksRUFBRSxDQUFDLGFBQWEsRUFBRSxVQUFVLEVBQUUsZUFBZSxDQUFDO2dCQUMxRCxPQUFPLEVBQUUsQ0FBQyxhQUFhLEVBQUUsVUFBVSxDQUFDO2dCQUNwQyxTQUFTLEVBQUU7b0JBQ1Q7d0JBQ0UsT0FBTyxFQUFFLGVBQWU7d0JBQ3hCLFVBQVUsRUFBRSxDQUFDLE9BQXlCLEVBQUUsRUFBRTs0QkFDeEMsT0FBTyxLQUFLLElBQUksRUFBRSxDQUFDLE1BQU0sT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO3dCQUMzQyxDQUFDO3dCQUNELElBQUksRUFBRSxDQUFDLGdCQUFnQixDQUFDO3dCQUN4QixLQUFLLEVBQUUsSUFBSTtxQkFDWjtpQkFDRjthQUNGOzt3RkFDWSxlQUFlLG1CQWJYLGFBQWEsRUFBRSxVQUFVLEVBQUUsZUFBZSxhQUMvQyxhQUFhLEVBQUUsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFQUF9JTklUSUFMSVpFUiwgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRyYW5zbGF0ZVBpcGUgfSBmcm9tICcuL3RyYW5zbGF0ZS5waXBlJztcbmltcG9ydCB7IFRDb21wb25lbnQgfSBmcm9tICcuL3QuY29tcG9uZW50JztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICcuL3RyYW5zbGF0ZS5zZXJ2aWNlJztcbmltcG9ydCB7IExvYWRlckNvbXBvbmVudCB9IGZyb20gXCIuL2xvYWRlci5jb21wb25lbnRcIjtcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbVHJhbnNsYXRlUGlwZSwgVENvbXBvbmVudCwgTG9hZGVyQ29tcG9uZW50XSxcbiAgZXhwb3J0czogW1RyYW5zbGF0ZVBpcGUsIFRDb21wb25lbnRdLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBBUFBfSU5JVElBTElaRVIsXG4gICAgICB1c2VGYWN0b3J5OiAoc2VydmljZTogVHJhbnNsYXRlU2VydmljZSkgPT4ge1xuICAgICAgICByZXR1cm4gYXN5bmMgKCkgPT4gYXdhaXQgc2VydmljZS5zdGFydCgpO1xuICAgICAgfSxcbiAgICAgIGRlcHM6IFtUcmFuc2xhdGVTZXJ2aWNlXSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIE5neFRvbGdlZU1vZHVsZSB7fVxuIl19
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import { Component, Input, } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "./translate.service";
|
|
4
|
+
const _c0 = ["t", ""];
|
|
5
|
+
export class TComponent {
|
|
6
|
+
ref;
|
|
7
|
+
translateService;
|
|
8
|
+
key;
|
|
9
|
+
ns;
|
|
10
|
+
params;
|
|
11
|
+
default;
|
|
12
|
+
noWrap = false;
|
|
13
|
+
language;
|
|
14
|
+
/**
|
|
15
|
+
* When true, innerHTML property of element is set.
|
|
16
|
+
* Use only when you're sure the HTML is sanitized.
|
|
17
|
+
*/
|
|
18
|
+
isHtml = false;
|
|
19
|
+
subscription;
|
|
20
|
+
initialized;
|
|
21
|
+
constructor(ref, translateService) {
|
|
22
|
+
this.ref = ref;
|
|
23
|
+
this.translateService = translateService;
|
|
24
|
+
}
|
|
25
|
+
ngOnInit() {
|
|
26
|
+
// noinspection JSIgnoredPromiseFromCall
|
|
27
|
+
this.subscribe();
|
|
28
|
+
this.renderInstantValue();
|
|
29
|
+
}
|
|
30
|
+
ngOnChanges() {
|
|
31
|
+
// noinspection JSIgnoredPromiseFromCall
|
|
32
|
+
this.subscribe();
|
|
33
|
+
}
|
|
34
|
+
ngOnDestroy() {
|
|
35
|
+
this.unsubscribe();
|
|
36
|
+
}
|
|
37
|
+
renderInstantValue() {
|
|
38
|
+
// get initial value first
|
|
39
|
+
const translated = this.translateService.instant({
|
|
40
|
+
...this.getTranslateProps(),
|
|
41
|
+
orEmpty: true,
|
|
42
|
+
});
|
|
43
|
+
this.setElementContent(translated);
|
|
44
|
+
}
|
|
45
|
+
getTranslateProps() {
|
|
46
|
+
return {
|
|
47
|
+
key: this.key,
|
|
48
|
+
ns: this.ns,
|
|
49
|
+
params: this.params,
|
|
50
|
+
defaultValue: this.default,
|
|
51
|
+
noWrap: this.noWrap,
|
|
52
|
+
language: this.language,
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
unsubscribe() {
|
|
56
|
+
this.subscription?.unsubscribe();
|
|
57
|
+
}
|
|
58
|
+
async subscribe() {
|
|
59
|
+
this.unsubscribe();
|
|
60
|
+
this.subscription = this.translateService
|
|
61
|
+
.translate(this.getTranslateProps())
|
|
62
|
+
.subscribe((translated) => {
|
|
63
|
+
this.setElementContent(translated);
|
|
64
|
+
this.initialized = true;
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
setElementContent(translated) {
|
|
68
|
+
if (this.isHtml) {
|
|
69
|
+
this.getElement().innerHTML = translated;
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
this.getElement().textContent = translated;
|
|
73
|
+
}
|
|
74
|
+
getElement() {
|
|
75
|
+
return this.ref.nativeElement;
|
|
76
|
+
}
|
|
77
|
+
static ɵfac = function TComponent_Factory(t) { return new (t || TComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1.TranslateService)); };
|
|
78
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TComponent, selectors: [["", "t", ""]], inputs: { key: "key", ns: "ns", params: "params", default: "default", noWrap: "noWrap", language: "language", isHtml: "isHtml" }, features: [i0.ɵɵNgOnChangesFeature], attrs: _c0, decls: 0, vars: 0, template: function TComponent_Template(rf, ctx) { }, encapsulation: 2 });
|
|
79
|
+
}
|
|
80
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TComponent, [{
|
|
81
|
+
type: Component,
|
|
82
|
+
args: [{
|
|
83
|
+
selector: '[t]',
|
|
84
|
+
template: ``,
|
|
85
|
+
standalone: false
|
|
86
|
+
}]
|
|
87
|
+
}], () => [{ type: i0.ElementRef }, { type: i1.TranslateService }], { key: [{
|
|
88
|
+
type: Input
|
|
89
|
+
}], ns: [{
|
|
90
|
+
type: Input
|
|
91
|
+
}], params: [{
|
|
92
|
+
type: Input
|
|
93
|
+
}], default: [{
|
|
94
|
+
type: Input
|
|
95
|
+
}], noWrap: [{
|
|
96
|
+
type: Input
|
|
97
|
+
}], language: [{
|
|
98
|
+
type: Input
|
|
99
|
+
}], isHtml: [{
|
|
100
|
+
type: Input
|
|
101
|
+
}] }); })();
|
|
102
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(TComponent, { className: "TComponent", filePath: "lib/t.component.ts", lineNumber: 18 }); })();
|
|
103
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdG9sZ2VlL3NyYy9saWIvdC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFFVCxLQUFLLEdBSU4sTUFBTSxlQUFlLENBQUM7Ozs7QUFVdkIsTUFBTSxPQUFPLFVBQVU7SUFrQlg7SUFDQTtJQWxCRCxHQUFHLENBQWlCO0lBQ3BCLEVBQUUsQ0FBUztJQUNYLE1BQU0sQ0FBd0I7SUFDOUIsT0FBTyxDQUFVO0lBQ2pCLE1BQU0sR0FBYSxLQUFLLENBQUM7SUFDekIsUUFBUSxDQUFVO0lBRTNCOzs7T0FHRztJQUNNLE1BQU0sR0FBYSxLQUFLLENBQUM7SUFFMUIsWUFBWSxDQUFlO0lBQzNCLFdBQVcsQ0FBVTtJQUU3QixZQUNVLEdBQWUsRUFDZixnQkFBa0M7UUFEbEMsUUFBRyxHQUFILEdBQUcsQ0FBWTtRQUNmLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7SUFDekMsQ0FBQztJQUVKLFFBQVE7UUFDTix3Q0FBd0M7UUFDeEMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRCxXQUFXO1FBQ1Qsd0NBQXdDO1FBQ3hDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRU8sa0JBQWtCO1FBQ3hCLDBCQUEwQjtRQUMxQixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDO1lBQy9DLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixFQUFFO1lBQzNCLE9BQU8sRUFBRSxJQUFJO1NBQ2QsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFTyxpQkFBaUI7UUFDdkIsT0FBTztZQUNMLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRztZQUNiLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRTtZQUNYLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtZQUNuQixZQUFZLEVBQUUsSUFBSSxDQUFDLE9BQU87WUFDMUIsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO1lBQ25CLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtTQUN4QixDQUFDO0lBQ0osQ0FBQztJQUVPLFdBQVc7UUFDakIsSUFBSSxDQUFDLFlBQVksRUFBRSxXQUFXLEVBQUUsQ0FBQztJQUNuQyxDQUFDO0lBRU8sS0FBSyxDQUFDLFNBQVM7UUFDckIsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ25CLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLGdCQUFnQjthQUN0QyxTQUFTLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7YUFDbkMsU0FBUyxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUU7WUFDeEIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ25DLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1FBQzFCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVPLGlCQUFpQixDQUFDLFVBQWtCO1FBQzFDLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2hCLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxTQUFTLEdBQUcsVUFBVSxDQUFDO1lBQ3pDLE9BQU87UUFDVCxDQUFDO1FBQ0QsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLFdBQVcsR0FBRyxVQUFVLENBQUM7SUFDN0MsQ0FBQztJQUVPLFVBQVU7UUFDaEIsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQTRCLENBQUM7SUFDL0MsQ0FBQztvRUFqRlUsVUFBVTs2REFBVixVQUFVOztpRkFBVixVQUFVO2NBTHRCLFNBQVM7ZUFBQztnQkFDVCxRQUFRLEVBQUUsS0FBSztnQkFDZixRQUFRLEVBQUUsRUFBRTtnQkFDWixVQUFVLEVBQUUsS0FBSzthQUNsQjswRUFFVSxHQUFHO2tCQUFYLEtBQUs7WUFDRyxFQUFFO2tCQUFWLEtBQUs7WUFDRyxNQUFNO2tCQUFkLEtBQUs7WUFDRyxPQUFPO2tCQUFmLEtBQUs7WUFDRyxNQUFNO2tCQUFkLEtBQUs7WUFDRyxRQUFRO2tCQUFoQixLQUFLO1lBTUcsTUFBTTtrQkFBZCxLQUFLOztrRkFaSyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICcuL3RyYW5zbGF0ZS5zZXJ2aWNlJztcbmltcG9ydCB7IFRyYW5zbGF0ZVBhcmFtcywgVHJhbnNsYXRpb25LZXkgfSBmcm9tICdAdG9sZ2VlL3dlYic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ1t0XScsXG4gIHRlbXBsYXRlOiBgYCxcbiAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgVENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBPbkNoYW5nZXMge1xuICBASW5wdXQoKSBrZXk6IFRyYW5zbGF0aW9uS2V5O1xuICBASW5wdXQoKSBuczogc3RyaW5nO1xuICBASW5wdXQoKSBwYXJhbXM/OiBUcmFuc2xhdGVQYXJhbXM8YW55PjtcbiAgQElucHV0KCkgZGVmYXVsdD86IHN0cmluZztcbiAgQElucHV0KCkgbm9XcmFwPzogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBsYW5ndWFnZT86IHN0cmluZztcblxuICAvKipcbiAgICogV2hlbiB0cnVlLCBpbm5lckhUTUwgcHJvcGVydHkgb2YgZWxlbWVudCBpcyBzZXQuXG4gICAqIFVzZSBvbmx5IHdoZW4geW91J3JlIHN1cmUgdGhlIEhUTUwgaXMgc2FuaXRpemVkLlxuICAgKi9cbiAgQElucHV0KCkgaXNIdG1sPzogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHByaXZhdGUgc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gIHByaXZhdGUgaW5pdGlhbGl6ZWQ6IGJvb2xlYW47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWY6IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlXG4gICkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAvLyBub2luc3BlY3Rpb24gSlNJZ25vcmVkUHJvbWlzZUZyb21DYWxsXG4gICAgdGhpcy5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLnJlbmRlckluc3RhbnRWYWx1ZSgpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoKTogdm9pZCB7XG4gICAgLy8gbm9pbnNwZWN0aW9uIEpTSWdub3JlZFByb21pc2VGcm9tQ2FsbFxuICAgIHRoaXMuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwcml2YXRlIHJlbmRlckluc3RhbnRWYWx1ZSgpIHtcbiAgICAvLyBnZXQgaW5pdGlhbCB2YWx1ZSBmaXJzdFxuICAgIGNvbnN0IHRyYW5zbGF0ZWQgPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCh7XG4gICAgICAuLi50aGlzLmdldFRyYW5zbGF0ZVByb3BzKCksXG4gICAgICBvckVtcHR5OiB0cnVlLFxuICAgIH0pO1xuICAgIHRoaXMuc2V0RWxlbWVudENvbnRlbnQodHJhbnNsYXRlZCk7XG4gIH1cblxuICBwcml2YXRlIGdldFRyYW5zbGF0ZVByb3BzKCkge1xuICAgIHJldHVybiB7XG4gICAgICBrZXk6IHRoaXMua2V5LFxuICAgICAgbnM6IHRoaXMubnMsXG4gICAgICBwYXJhbXM6IHRoaXMucGFyYW1zLFxuICAgICAgZGVmYXVsdFZhbHVlOiB0aGlzLmRlZmF1bHQsXG4gICAgICBub1dyYXA6IHRoaXMubm9XcmFwLFxuICAgICAgbGFuZ3VhZ2U6IHRoaXMubGFuZ3VhZ2UsXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgdW5zdWJzY3JpYmUoKSB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHN1YnNjcmliZSgpIHtcbiAgICB0aGlzLnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb24gPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2VcbiAgICAgIC50cmFuc2xhdGUodGhpcy5nZXRUcmFuc2xhdGVQcm9wcygpKVxuICAgICAgLnN1YnNjcmliZSgodHJhbnNsYXRlZCkgPT4ge1xuICAgICAgICB0aGlzLnNldEVsZW1lbnRDb250ZW50KHRyYW5zbGF0ZWQpO1xuICAgICAgICB0aGlzLmluaXRpYWxpemVkID0gdHJ1ZTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRFbGVtZW50Q29udGVudCh0cmFuc2xhdGVkOiBzdHJpbmcpIHtcbiAgICBpZiAodGhpcy5pc0h0bWwpIHtcbiAgICAgIHRoaXMuZ2V0RWxlbWVudCgpLmlubmVySFRNTCA9IHRyYW5zbGF0ZWQ7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuZ2V0RWxlbWVudCgpLnRleHRDb250ZW50ID0gdHJhbnNsYXRlZDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RWxlbWVudCgpIHtcbiAgICByZXR1cm4gdGhpcy5yZWYubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudDtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { InjectionToken } from '@angular/core';
|
|
2
|
+
export const TOLGEE_INSTANCE = new InjectionToken('tolgee.instance');
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9sZ2VlLWluc3RhbmNlLXRva2VuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXRvbGdlZS9zcmMvbGliL3RvbGdlZS1pbnN0YW5jZS10b2tlbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRy9DLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxJQUFJLGNBQWMsQ0FDL0MsaUJBQWlCLENBQ2xCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVG9sZ2VlSW5zdGFuY2UgfSBmcm9tICdAdG9sZ2VlL3dlYic7XG5cbmV4cG9ydCBjb25zdCBUT0xHRUVfSU5TVEFOQ0UgPSBuZXcgSW5qZWN0aW9uVG9rZW48VG9sZ2VlSW5zdGFuY2U+KFxuICAndG9sZ2VlLmluc3RhbmNlJ1xuKTtcbiJdfQ==
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { Pipe, } from '@angular/core';
|
|
2
|
+
import { getTranslateProps, } from '@tolgee/web';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "./translate.service";
|
|
5
|
+
export class TranslatePipe {
|
|
6
|
+
translateService;
|
|
7
|
+
_cdr;
|
|
8
|
+
value = '';
|
|
9
|
+
previousHash;
|
|
10
|
+
subscription;
|
|
11
|
+
constructor(translateService, _cdr) {
|
|
12
|
+
this.translateService = translateService;
|
|
13
|
+
this._cdr = _cdr;
|
|
14
|
+
}
|
|
15
|
+
ngOnDestroy() {
|
|
16
|
+
this.unsubscribe();
|
|
17
|
+
}
|
|
18
|
+
transform = (...args) => {
|
|
19
|
+
// @ts-ignore
|
|
20
|
+
const params = getTranslateProps(...args);
|
|
21
|
+
const { key } = params;
|
|
22
|
+
if (!key || key.length === 0) {
|
|
23
|
+
return key;
|
|
24
|
+
}
|
|
25
|
+
const newHash = this.hash(params);
|
|
26
|
+
if (this.previousHash === newHash) {
|
|
27
|
+
return this.value;
|
|
28
|
+
}
|
|
29
|
+
this.previousHash = newHash;
|
|
30
|
+
this.translate(params);
|
|
31
|
+
return this.value;
|
|
32
|
+
};
|
|
33
|
+
hash(props) {
|
|
34
|
+
return JSON.stringify([props, this.translateService.tolgee.getLanguage()]);
|
|
35
|
+
}
|
|
36
|
+
unsubscribe() {
|
|
37
|
+
this.subscription?.unsubscribe();
|
|
38
|
+
this.subscription = null;
|
|
39
|
+
}
|
|
40
|
+
translate(props) {
|
|
41
|
+
this.value = this.translateService.instant({ ...props, orEmpty: true });
|
|
42
|
+
this.subscribe(props);
|
|
43
|
+
}
|
|
44
|
+
subscribe(props) {
|
|
45
|
+
this.unsubscribe();
|
|
46
|
+
this.subscription = this.translateService
|
|
47
|
+
.translate(props)
|
|
48
|
+
.subscribe((r) => {
|
|
49
|
+
this.value = r;
|
|
50
|
+
this._cdr.detectChanges();
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
static ɵfac = function TranslatePipe_Factory(t) { return new (t || TranslatePipe)(i0.ɵɵdirectiveInject(i1.TranslateService, 16), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef, 16)); };
|
|
54
|
+
static ɵpipe = /*@__PURE__*/ i0.ɵɵdefinePipe({ name: "translate", type: TranslatePipe, pure: false });
|
|
55
|
+
}
|
|
56
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TranslatePipe, [{
|
|
57
|
+
type: Pipe,
|
|
58
|
+
args: [{
|
|
59
|
+
name: 'translate',
|
|
60
|
+
pure: false,
|
|
61
|
+
standalone: false,
|
|
62
|
+
}]
|
|
63
|
+
}], () => [{ type: i1.TranslateService }, { type: i0.ChangeDetectorRef }], null); })();
|
|
64
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRlLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdG9sZ2VlL3NyYy9saWIvdHJhbnNsYXRlLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdMLElBQUksR0FFTCxNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBQ0wsaUJBQWlCLEdBSWxCLE1BQU0sYUFBYSxDQUFDOzs7QUFPckIsTUFBTSxPQUFPLGFBQWE7SUFPWjtJQUNGO0lBUEYsS0FBSyxHQUFHLEVBQUUsQ0FBQztJQUNYLFlBQVksQ0FBUztJQUVyQixZQUFZLENBQWU7SUFFbkMsWUFDWSxnQkFBa0MsRUFDcEMsSUFBdUI7UUFEckIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNwQyxTQUFJLEdBQUosSUFBSSxDQUFtQjtJQUM5QixDQUFDO0lBRUosV0FBVztRQUNULElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRVEsU0FBUyxHQUE0QyxDQUFDLEdBQUcsSUFBSSxFQUFFLEVBQUU7UUFDeEUsYUFBYTtRQUNiLE1BQU0sTUFBTSxHQUFHLGlCQUFpQixDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUM7UUFDMUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLE1BQU0sQ0FBQztRQUV2QixJQUFJLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDN0IsT0FBTyxHQUFHLENBQUM7UUFDYixDQUFDO1FBRUQsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNsQyxJQUFJLElBQUksQ0FBQyxZQUFZLEtBQUssT0FBTyxFQUFFLENBQUM7WUFDbEMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQ3BCLENBQUM7UUFFRCxJQUFJLENBQUMsWUFBWSxHQUFHLE9BQU8sQ0FBQztRQUU1QixJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRXZCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDLENBQUM7SUFFTSxJQUFJLENBQUMsS0FBcUI7UUFDaEMsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzdFLENBQUM7SUFFTyxXQUFXO1FBQ2pCLElBQUksQ0FBQyxZQUFZLEVBQUUsV0FBVyxFQUFFLENBQUM7UUFDakMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7SUFDM0IsQ0FBQztJQUVPLFNBQVMsQ0FBQyxLQUFxQjtRQUNyQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxHQUFHLEtBQUssRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUN4RSxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFTyxTQUFTLENBQUMsS0FBcUI7UUFDckMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ25CLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLGdCQUFnQjthQUN0QyxTQUFTLENBQUMsS0FBSyxDQUFDO2FBQ2hCLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ2YsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUM7WUFDZixJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQzVCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzt1RUExRFUsYUFBYTs0RUFBYixhQUFhOztpRkFBYixhQUFhO2NBTHpCLElBQUk7ZUFBQztnQkFDSixJQUFJLEVBQUUsV0FBVztnQkFDakIsSUFBSSxFQUFFLEtBQUs7Z0JBQ1gsVUFBVSxFQUFFLEtBQUs7YUFDbEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgT25EZXN0cm95LFxuICBQaXBlLFxuICBQaXBlVHJhbnNmb3JtLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICcuL3RyYW5zbGF0ZS5zZXJ2aWNlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgZ2V0VHJhbnNsYXRlUHJvcHMsXG4gIFRGblR5cGUsXG4gIFRyYW5zbGF0ZVByb3BzLFxuICBUcmFuc2xhdGlvbktleSxcbn0gZnJvbSAnQHRvbGdlZS93ZWInO1xuXG5AUGlwZSh7XG4gIG5hbWU6ICd0cmFuc2xhdGUnLFxuICBwdXJlOiBmYWxzZSxcbiAgc3RhbmRhbG9uZTogZmFsc2UsXG59KVxuZXhwb3J0IGNsYXNzIFRyYW5zbGF0ZVBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtLCBPbkRlc3Ryb3kge1xuICBwcml2YXRlIHZhbHVlID0gJyc7XG4gIHByaXZhdGUgcHJldmlvdXNIYXNoOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBwcml2YXRlIF9jZHI6IENoYW5nZURldGVjdG9yUmVmXG4gICkge31cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICByZWFkb25seSB0cmFuc2Zvcm06IFRGblR5cGU8c3RyaW5nLCBzdHJpbmcsIFRyYW5zbGF0aW9uS2V5PiA9ICguLi5hcmdzKSA9PiB7XG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIGNvbnN0IHBhcmFtcyA9IGdldFRyYW5zbGF0ZVByb3BzKC4uLmFyZ3MpO1xuICAgIGNvbnN0IHsga2V5IH0gPSBwYXJhbXM7XG5cbiAgICBpZiAoIWtleSB8fCBrZXkubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4ga2V5O1xuICAgIH1cblxuICAgIGNvbnN0IG5ld0hhc2ggPSB0aGlzLmhhc2gocGFyYW1zKTtcbiAgICBpZiAodGhpcy5wcmV2aW91c0hhc2ggPT09IG5ld0hhc2gpIHtcbiAgICAgIHJldHVybiB0aGlzLnZhbHVlO1xuICAgIH1cblxuICAgIHRoaXMucHJldmlvdXNIYXNoID0gbmV3SGFzaDtcblxuICAgIHRoaXMudHJhbnNsYXRlKHBhcmFtcyk7XG5cbiAgICByZXR1cm4gdGhpcy52YWx1ZTtcbiAgfTtcblxuICBwcml2YXRlIGhhc2gocHJvcHM6IFRyYW5zbGF0ZVByb3BzKSB7XG4gICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KFtwcm9wcywgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLnRvbGdlZS5nZXRMYW5ndWFnZSgpXSk7XG4gIH1cblxuICBwcml2YXRlIHVuc3Vic2NyaWJlKCkge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gbnVsbDtcbiAgfVxuXG4gIHByaXZhdGUgdHJhbnNsYXRlKHByb3BzOiBUcmFuc2xhdGVQcm9wcykge1xuICAgIHRoaXMudmFsdWUgPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCh7IC4uLnByb3BzLCBvckVtcHR5OiB0cnVlIH0pO1xuICAgIHRoaXMuc3Vic2NyaWJlKHByb3BzKTtcbiAgfVxuXG4gIHByaXZhdGUgc3Vic2NyaWJlKHByb3BzOiBUcmFuc2xhdGVQcm9wcykge1xuICAgIHRoaXMudW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IHRoaXMudHJhbnNsYXRlU2VydmljZVxuICAgICAgLnRyYW5zbGF0ZShwcm9wcylcbiAgICAgIC5zdWJzY3JpYmUoKHIpID0+IHtcbiAgICAgICAgdGhpcy52YWx1ZSA9IHI7XG4gICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICB9KTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
import { Inject, Injectable } from '@angular/core';
|
|
2
|
+
import { Observable } from 'rxjs';
|
|
3
|
+
import { getTranslateProps, } from '@tolgee/web';
|
|
4
|
+
import { TOLGEE_INSTANCE } from './tolgee-instance-token';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export class TranslateService {
|
|
7
|
+
_tolgee;
|
|
8
|
+
_ngZone;
|
|
9
|
+
runPromise;
|
|
10
|
+
constructor(_tolgee, _ngZone) {
|
|
11
|
+
this._tolgee = _tolgee;
|
|
12
|
+
this._ngZone = _ngZone;
|
|
13
|
+
}
|
|
14
|
+
get tolgee() {
|
|
15
|
+
return this._tolgee;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Starts Tolgee if not started.
|
|
19
|
+
*
|
|
20
|
+
* The Tolgee is run outside NgZone. The triggered events, doesn't
|
|
21
|
+
* trigger the change detection, when listening directly via Tolgee.on.
|
|
22
|
+
*
|
|
23
|
+
* However, all the emitting methods (on, translate, languageAsync)
|
|
24
|
+
* in this class are emitting back in Angular's NgZone,
|
|
25
|
+
* so the change detection works fine.
|
|
26
|
+
*/
|
|
27
|
+
async start() {
|
|
28
|
+
if (!this.isSSR()) {
|
|
29
|
+
await this.runIfNotRunning();
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Returns translation asynchronously, this method always return
|
|
34
|
+
*/
|
|
35
|
+
translate = (...args) => {
|
|
36
|
+
// @ts-ignore
|
|
37
|
+
const params = getTranslateProps(...args);
|
|
38
|
+
return new Observable((subscriber) => {
|
|
39
|
+
const loadPromise = this.tolgee.addActiveNs(params.ns);
|
|
40
|
+
const translate = async () => {
|
|
41
|
+
await loadPromise;
|
|
42
|
+
const translated = this.tolgee.t(params);
|
|
43
|
+
subscriber.next(translated);
|
|
44
|
+
};
|
|
45
|
+
// noinspection JSIgnoredPromiseFromCall
|
|
46
|
+
translate();
|
|
47
|
+
const subscription = this.tolgee.on('update', translate);
|
|
48
|
+
return () => {
|
|
49
|
+
this.tolgee.removeActiveNs(params.ns);
|
|
50
|
+
subscription.unsubscribe();
|
|
51
|
+
};
|
|
52
|
+
});
|
|
53
|
+
};
|
|
54
|
+
/**
|
|
55
|
+
* Instantly returns translated value. May return undefined or outdated value.
|
|
56
|
+
* Use only when you cannot use translate.
|
|
57
|
+
*/
|
|
58
|
+
instant = (...args) => {
|
|
59
|
+
// @ts-ignore
|
|
60
|
+
const params = getTranslateProps(...args);
|
|
61
|
+
return this.tolgee.t(params);
|
|
62
|
+
};
|
|
63
|
+
/**
|
|
64
|
+
* Returns current language
|
|
65
|
+
*/
|
|
66
|
+
get language() {
|
|
67
|
+
return this.tolgee.getLanguage();
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Returns an observable emitting current language.
|
|
71
|
+
* It instantly emits current language
|
|
72
|
+
*/
|
|
73
|
+
get languageAsync() {
|
|
74
|
+
return new Observable((subscriber) => {
|
|
75
|
+
subscriber.next(this.tolgee.getLanguage());
|
|
76
|
+
const subscription = this.on('language').subscribe((value) => {
|
|
77
|
+
subscriber.next(value.value);
|
|
78
|
+
});
|
|
79
|
+
return () => subscription.unsubscribe();
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Changes the current language
|
|
84
|
+
* @param lang The new current language (e.g. en, en-US)
|
|
85
|
+
* @return Promise<void> Resolves when translations
|
|
86
|
+
* for given language are loaded
|
|
87
|
+
*/
|
|
88
|
+
changeLanguage(lang) {
|
|
89
|
+
return this.tolgee.changeLanguage(lang);
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Returns observable emitting when specified event is triggered.
|
|
93
|
+
*
|
|
94
|
+
* It's a wrapper of Tolgee.on method. The emmit is triggered inside ngZone,
|
|
95
|
+
* so change detection should work properly.
|
|
96
|
+
*
|
|
97
|
+
* @param event the event to listen
|
|
98
|
+
*/
|
|
99
|
+
on(event) {
|
|
100
|
+
return new Observable((subscriber) => {
|
|
101
|
+
const subscription = this.tolgee.on(event, (value) => {
|
|
102
|
+
this._ngZone.run(() => {
|
|
103
|
+
subscriber.next(value);
|
|
104
|
+
});
|
|
105
|
+
});
|
|
106
|
+
return () => subscription.unsubscribe();
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
ngOnDestroy() {
|
|
110
|
+
this.tolgee.stop();
|
|
111
|
+
}
|
|
112
|
+
async runIfNotRunning() {
|
|
113
|
+
if (!this.runPromise) {
|
|
114
|
+
this.runPromise = this._ngZone.runOutsideAngular(() => {
|
|
115
|
+
return this.tolgee.run();
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
await this.runPromise;
|
|
119
|
+
}
|
|
120
|
+
isSSR() {
|
|
121
|
+
return typeof window === 'undefined';
|
|
122
|
+
}
|
|
123
|
+
static ɵfac = function TranslateService_Factory(t) { return new (t || TranslateService)(i0.ɵɵinject(TOLGEE_INSTANCE), i0.ɵɵinject(i0.NgZone)); };
|
|
124
|
+
static ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: TranslateService, factory: TranslateService.ɵfac, providedIn: 'root' });
|
|
125
|
+
}
|
|
126
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TranslateService, [{
|
|
127
|
+
type: Injectable,
|
|
128
|
+
args: [{ providedIn: 'root' }]
|
|
129
|
+
}], () => [{ type: undefined, decorators: [{
|
|
130
|
+
type: Inject,
|
|
131
|
+
args: [TOLGEE_INSTANCE]
|
|
132
|
+
}] }, { type: i0.NgZone }], null); })();
|
|
133
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdG9sZ2VlL3NyYy9saWIvdHJhbnNsYXRlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbEMsT0FBTyxFQUdMLGlCQUFpQixHQUtsQixNQUFNLGFBQWEsQ0FBQztBQUNyQixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7O0FBRzFELE1BQU0sT0FBTyxnQkFBZ0I7SUFJUTtJQUN6QjtJQUpGLFVBQVUsQ0FBZ0I7SUFFbEMsWUFDbUMsT0FBdUIsRUFDaEQsT0FBZTtRQURVLFlBQU8sR0FBUCxPQUFPLENBQWdCO1FBQ2hELFlBQU8sR0FBUCxPQUFPLENBQVE7SUFDdEIsQ0FBQztJQUVKLElBQUksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDO0lBRUQ7Ozs7Ozs7OztPQVNHO0lBQ0ksS0FBSyxDQUFDLEtBQUs7UUFDaEIsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDO1lBQ2xCLE1BQU0sSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQy9CLENBQUM7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDTSxTQUFTLEdBQWtFLENBQ2xGLEdBQUcsSUFBSSxFQUNQLEVBQUU7UUFDRixhQUFhO1FBQ2IsTUFBTSxNQUFNLEdBQUcsaUJBQWlCLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztRQUMxQyxPQUFPLElBQUksVUFBVSxDQUFTLENBQUMsVUFBVSxFQUFFLEVBQUU7WUFDM0MsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLEVB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SSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUMzQixDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7UUFDRCxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDeEIsQ0FBQztJQUVPLEtBQUs7UUFDWCxPQUFPLE9BQU8sTUFBTSxLQUFLLFdBQVcsQ0FBQztJQUN2QyxDQUFDOzBFQXBJVSxnQkFBZ0IsY0FJakIsZUFBZTtnRUFKZCxnQkFBZ0IsV0FBaEIsZ0JBQWdCLG1CQURILE1BQU07O2lGQUNuQixnQkFBZ0I7Y0FENUIsVUFBVTtlQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRTs7c0JBSzdCLE1BQU07dUJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgT25EZXN0cm95LCBOZ1pvbmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gIERlZmF1bHRQYXJhbVR5cGUsXG4gIEV2ZW50VHlwZSxcbiAgZ2V0VHJhbnNsYXRlUHJvcHMsXG4gIExpc3RlbmVyRXZlbnQsXG4gIFRGblR5cGUsXG4gIFRvbGdlZUluc3RhbmNlLFxuICBUcmFuc2xhdGlvbktleSxcbn0gZnJvbSAnQHRvbGdlZS93ZWInO1xuaW1wb3J0IHsgVE9MR0VFX0lOU1RBTkNFIH0gZnJvbSAnLi90b2xnZWUtaW5zdGFuY2UtdG9rZW4nO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIFRyYW5zbGF0ZVNlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBwcml2YXRlIHJ1blByb21pc2U6IFByb21pc2U8dm9pZD47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChUT0xHRUVfSU5TVEFOQ0UpIHByaXZhdGUgX3RvbGdlZTogVG9sZ2VlSW5zdGFuY2UsXG4gICAgcHJpdmF0ZSBfbmdab25lOiBOZ1pvbmVcbiAgKSB7fVxuXG4gIGdldCB0b2xnZWUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3RvbGdlZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTdGFydHMgVG9sZ2VlIGlmIG5vdCBzdGFydGVkLlxuICAgKlxuICAgKiBUaGUgVG9sZ2VlIGlzIHJ1biBvdXRzaWRlIE5nWm9uZS4gVGhlIHRyaWdnZXJlZCBldmVudHMsIGRvZXNuJ3RcbiAgICogdHJpZ2dlciB0aGUgY2hhbmdlIGRldGVjdGlvbiwgd2hlbiBsaXN0ZW5pbmcgZGlyZWN0bHkgdmlhIFRvbGdlZS5vbi5cbiAgICpcbiAgICogSG93ZXZlciwgYWxsIHRoZSBlbWl0dGluZyBtZXRob2RzIChvbiwgdHJhbnNsYXRlLCBsYW5ndWFnZUFzeW5jKVxuICAgKiBpbiB0aGlzIGNsYXNzIGFyZSBlbWl0dGluZyBiYWNrIGluIEFuZ3VsYXIncyBOZ1pvbmUsXG4gICAqIHNvIHRoZSBjaGFuZ2UgZGV0ZWN0aW9uIHdvcmtzIGZpbmUuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgc3RhcnQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKCF0aGlzLmlzU1NSKCkpIHtcbiAgICAgIGF3YWl0IHRoaXMucnVuSWZOb3RSdW5uaW5nKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdHJhbnNsYXRpb24gYXN5bmNocm9ub3VzbHksIHRoaXMgbWV0aG9kIGFsd2F5cyByZXR1cm5cbiAgICovXG4gIHJlYWRvbmx5IHRyYW5zbGF0ZTogVEZuVHlwZTxEZWZhdWx0UGFyYW1UeXBlLCBPYnNlcnZhYmxlPHN0cmluZz4sIFRyYW5zbGF0aW9uS2V5PiA9IChcbiAgICAuLi5hcmdzXG4gICkgPT4ge1xuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBjb25zdCBwYXJhbXMgPSBnZXRUcmFuc2xhdGVQcm9wcyguLi5hcmdzKTtcbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGU8c3RyaW5nPigoc3Vic2NyaWJlcikgPT4ge1xuICAgICAgY29uc3QgbG9hZFByb21pc2UgPSB0aGlzLnRvbGdlZS5hZGRBY3RpdmVOcyhwYXJhbXMubnMpO1xuICAgICAgY29uc3QgdHJhbnNsYXRlID0gYXN5bmMgKCkgPT4ge1xuICAgICAgICBhd2FpdCBsb2FkUHJvbWlzZTtcbiAgICAgICAgY29uc3QgdHJhbnNsYXRlZCA9IHRoaXMudG9sZ2VlLnQocGFyYW1zKTtcbiAgICAgICAgc3Vic2NyaWJlci5uZXh0KHRyYW5zbGF0ZWQpO1xuICAgICAgfTtcblxuICAgICAgLy8gbm9pbnNwZWN0aW9uIEpTSWdub3JlZFByb21pc2VGcm9tQ2FsbFxuICAgICAgdHJhbnNsYXRlKCk7XG5cbiAgICAgIGNvbnN0IHN1YnNjcmlwdGlvbiA9IHRoaXMudG9sZ2VlLm9uKCd1cGRhdGUnLCB0cmFuc2xhdGUpXG5cbiAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIHRoaXMudG9sZ2VlLnJlbW92ZUFjdGl2ZU5zKHBhcmFtcy5ucyk7XG4gICAgICAgIHN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgfTtcbiAgICB9KTtcbiAgfTtcblxuICAvKipcbiAgICogSW5zdGFudGx5IHJldHVybnMgdHJhbnNsYXRlZCB2YWx1ZS4gTWF5IHJldHVybiB1bmRlZmluZWQgb3Igb3V0ZGF0ZWQgdmFsdWUuXG4gICAqIFVzZSBvbmx5IHdoZW4geW91IGNhbm5vdCB1c2UgdHJhbnNsYXRlLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGluc3RhbnQ6IFRGblR5cGU8RGVmYXVsdFBhcmFtVHlwZSwgc3RyaW5nLCBUcmFuc2xhdGlvbktleT4gPSAoLi4uYXJncykgPT4ge1xuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBjb25zdCBwYXJhbXMgPSBnZXRUcmFuc2xhdGVQcm9wcyguLi5hcmdzKTtcbiAgICByZXR1cm4gdGhpcy50b2xnZWUudChwYXJhbXMpO1xuICB9O1xuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGN1cnJlbnQgbGFuZ3VhZ2VcbiAgICovXG4gIGdldCBsYW5ndWFnZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnRvbGdlZS5nZXRMYW5ndWFnZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYW4gb2JzZXJ2YWJsZSBlbWl0dGluZyBjdXJyZW50IGxhbmd1YWdlLlxuICAgKiBJdCBpbnN0YW50bHkgZW1pdHMgY3VycmVudCBsYW5ndWFnZVxuICAgKi9cbiAgZ2V0IGxhbmd1YWdlQXN5bmMoKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGUoKHN1YnNjcmliZXIpID0+IHtcbiAgICAgIHN1YnNjcmliZXIubmV4dCh0aGlzLnRvbGdlZS5nZXRMYW5ndWFnZSgpKTtcbiAgICAgIGNvbnN0IHN1YnNjcmlwdGlvbiA9IHRoaXMub24oJ2xhbmd1YWdlJykuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xuICAgICAgICBzdWJzY3JpYmVyLm5leHQodmFsdWUudmFsdWUpO1xuICAgICAgfSk7XG5cbiAgICAgIHJldHVybiAoKSA9PiBzdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGFuZ2VzIHRoZSBjdXJyZW50IGxhbmd1YWdlXG4gICAqIEBwYXJhbSBsYW5nIFRoZSBuZXcgY3VycmVudCBsYW5ndWFnZSAoZS5nLiBlbiwgZW4tVVMpXG4gICAqIEByZXR1cm4gUHJvbWlzZTx2b2lkPiBSZXNvbHZlcyB3aGVuIHRyYW5zbGF0aW9uc1xuICAgKiBmb3IgZ2l2ZW4gbGFuZ3VhZ2UgYXJlIGxvYWRlZFxuICAgKi9cbiAgcHVibGljIGNoYW5nZUxhbmd1YWdlKGxhbmc6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLnRvbGdlZS5jaGFuZ2VMYW5ndWFnZShsYW5nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIG9ic2VydmFibGUgZW1pdHRpbmcgd2hlbiBzcGVjaWZpZWQgZXZlbnQgaXMgdHJpZ2dlcmVkLlxuICAgKlxuICAgKiBJdCdzIGEgd3JhcHBlciBvZiBUb2xnZWUub24gbWV0aG9kLiBUaGUgZW1taXQgaXMgdHJpZ2dlcmVkIGluc2lkZSBuZ1pvbmUsXG4gICAqIHNvIGNoYW5nZSBkZXRlY3Rpb24gc2hvdWxkIHdvcmsgcHJvcGVybHkuXG4gICAqXG4gICAqIEBwYXJhbSBldmVudCB0aGUgZXZlbnQgdG8gbGlzdGVuXG4gICAqL1xuICBvbjxFdmVudCBleHRlbmRzIGtleW9mIEV2ZW50VHlwZT4oZXZlbnQ6IEV2ZW50KSB7XG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlPExpc3RlbmVyRXZlbnQ8RXZlbnQsIEV2ZW50VHlwZVtFdmVudF0+Pigoc3Vic2NyaWJlcikgPT4ge1xuICAgICAgY29uc3Qgc3Vic2NyaXB0aW9uID0gdGhpcy50b2xnZWUub24oZXZlbnQsICh2YWx1ZSkgPT4ge1xuICAgICAgICB0aGlzLl9uZ1pvbmUucnVuKCgpID0+IHtcbiAgICAgICAgICBzdWJzY3JpYmVyLm5leHQodmFsdWUgYXMgYW55KTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiAoKSA9PiBzdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMudG9sZ2VlLnN0b3AoKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgcnVuSWZOb3RSdW5uaW5nKCkge1xuICAgIGlmICghdGhpcy5ydW5Qcm9taXNlKSB7XG4gICAgICB0aGlzLnJ1blByb21pc2UgPSB0aGlzLl9uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy50b2xnZWUucnVuKCk7XG4gICAgICB9KTtcbiAgICB9XG4gICAgYXdhaXQgdGhpcy5ydW5Qcm9taXNlO1xuICB9XG5cbiAgcHJpdmF0ZSBpc1NTUigpIHtcbiAgICByZXR1cm4gdHlwZW9mIHdpbmRvdyA9PT0gJ3VuZGVmaW5lZCc7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Public API Surface of ngx-tolgee
|
|
3
|
+
*/
|
|
4
|
+
export * from './lib/translate.service';
|
|
5
|
+
export * from './lib/translate.pipe';
|
|
6
|
+
export * from './lib/t.component';
|
|
7
|
+
export * from './lib/ngx-tolgee.module';
|
|
8
|
+
export * from './lib/tolgee-instance-token';
|
|
9
|
+
export * from '@tolgee/web';
|
|
10
|
+
export * from './lib/namespace.resolver';
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL25neC10b2xnZWUvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFDSCxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyxtQkFBbUIsQ0FBQztBQUVsQyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsNkJBQTZCLENBQUM7QUFFNUMsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYywwQkFBMEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2Ygbmd4LXRvbGdlZVxuICovXG5leHBvcnQgKiBmcm9tICcuL2xpYi90cmFuc2xhdGUuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi90cmFuc2xhdGUucGlwZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi90LmNvbXBvbmVudCc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL25neC10b2xnZWUubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RvbGdlZS1pbnN0YW5jZS10b2tlbic7XG5cbmV4cG9ydCAqIGZyb20gJ0B0b2xnZWUvd2ViJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL25hbWVzcGFjZS5yZXNvbHZlcic7XG4iXX0=
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './public-api';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9sZ2VlLW5neC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL25neC10b2xnZWUvc3JjL3RvbGdlZS1uZ3gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
|