@tolgee/ngx 4.10.0-rc.a11e1b6.0 → 5.0.0-alpha.2
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 +164 -56
- package/esm2020/lib/translate.service.mjs +56 -28
- package/esm2020/public-api.mjs +1 -2
- package/fesm2015/tolgee-ngx.mjs +59 -34
- package/fesm2015/tolgee-ngx.mjs.map +1 -1
- package/fesm2020/tolgee-ngx.mjs +57 -34
- package/fesm2020/tolgee-ngx.mjs.map +1 -1
- package/lib/tolgee-instance-token.d.ts +3 -1
- package/lib/translate.service.d.ts +40 -14
- package/package.json +2 -2
- package/public-api.d.ts +0 -1
- package/esm2020/lib/NgxPlugin.mjs +0 -6
- package/lib/NgxPlugin.d.ts +0 -2
package/README.md
CHANGED
|
@@ -1,94 +1,202 @@
|
|
|
1
|
-
|
|
1
|
+
<!-- This file was generated using pnpm generate-readmes script
|
|
2
|
+
|
|
3
|
+
Don't edit this file. Edit the README.md.njk. Macros can be found in readmeMacros/macros.njk
|
|
4
|
+
|
|
5
|
+
-->
|
|
6
|
+
|
|
7
|
+
<h1 align="center" style="border-bottom: none">
|
|
8
|
+
<b>
|
|
9
|
+
<a href="https://tolgee.io">Tolgee for Angular</a><br>
|
|
10
|
+
</b>
|
|
11
|
+
The Tolgee i18n SDK for Angular
|
|
12
|
+
<br>
|
|
13
|
+
</h1>
|
|
14
|
+
|
|
15
|
+
<div align="center">
|
|
16
|
+
|
|
17
|
+
[](https://tolgee.io)
|
|
18
|
+
|
|
19
|
+
Tolgee is an open-source alternative to Crowdin, Phrase, or Lokalise with its very own revolutionary integrations.
|
|
2
20
|
|
|
3
21
|

|
|
4
|
-
|
|
22
|
+
|
|
23
|
+

|
|
24
|
+
|
|
5
25
|

|
|
26
|
+

|
|
6
27
|

|
|
7
|
-
[](https://github.com/tolgee/tolgee-js)
|
|
29
|
+
[](https://github.com/tolgee/server)
|
|
30
|
+
[](https://github.com/tolgee/tolgee-platform/discussions)
|
|
31
|
+
</div>
|
|
9
32
|
|
|
10
|
-
|
|
33
|
+
<div align="center">
|
|
11
34
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
35
|
+
[<img src="https://img.shields.io/badge/-Facebook-424549?style=social&logo=facebook" height=25 />](https://www.facebook.com/Tolgee.i18n)
|
|
36
|
+
[<img src="https://img.shields.io/badge/-Twitter-424549?style=social&logo=twitter" height=25 />](https://twitter.com/Tolgee_i18n)
|
|
37
|
+
[<img src="https://img.shields.io/badge/-Linkedin-424549?style=social&logo=linkedin" height=25 />](https://www.linkedin.com/company/tolgee)
|
|
15
38
|
|
|
16
|
-
|
|
39
|
+
**Become part of the family. Join [slack channel <img src="https://img.shields.io/badge/-Tolgee Comunity-424549?style=social&logo=slack" height=25 />](https://join.slack.com/t/tolgeecommunity/shared_invite/zt-195isb5u8-_RcSRgVJfvgsPpOBIok~IQ)**
|
|
17
40
|
|
|
18
|
-
|
|
19
|
-
- Out of box in-context localization 🎉
|
|
20
|
-
- Automated screenshot generation 📷
|
|
21
|
-
- Translation management platform 🎈
|
|
22
|
-
- Open-source 🔥
|
|
41
|
+
</div>
|
|
23
42
|
|
|
24
|
-
## Installation
|
|
25
43
|
|
|
26
|
-
First, install the package.
|
|
27
44
|
|
|
28
|
-
|
|
45
|
+
# What's Tolgee for Angular?
|
|
46
|
+
Angular integration library of Tolgee. With this package. It's super simple to add i18n to your Angular app!
|
|
47
|
+
For more information about using Tolgee with Angular, visit the [docs 📖](https://tolgee.io/integrations/angular).
|
|
29
48
|
|
|
30
|
-
Then import `NgxTolgeeModule` in your app.
|
|
31
49
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
50
|
+
## Quick links
|
|
51
|
+
- [Tolgee for Angular docs](https://tolgee.io/js-sdk/5.0.0-alpha.1/integrations/angular/installation)
|
|
52
|
+
- [Tolgee JS SDK docs](https://tolgee.io/js-sdk)
|
|
53
|
+
- [Tolgee Website](https://tolgee.io)
|
|
54
|
+
- Product (Learn more about the great features)
|
|
55
|
+
- [Dev tools](https://tolgee.io/features/dev-tools)
|
|
56
|
+
- [Translation assistance](https://tolgee.io/features/translation-assistance)
|
|
57
|
+
- [Collaboration](https://tolgee.io/features/collaboration)
|
|
58
|
+
- [Tolgee platform docs](https://tolgee.io/platform)
|
|
59
|
+
|
|
60
|
+
|
|
36
61
|
|
|
62
|
+
## Installation
|
|
63
|
+
|
|
64
|
+
```
|
|
65
|
+
npm install @tolgee/ngx
|
|
66
|
+
```
|
|
37
67
|
|
|
68
|
+
|
|
69
|
+
Then use the library in your `app.module.ts`. You have to add `NgxTolgeeModule` to your imports section and
|
|
70
|
+
add factory provider for `TOLGEE_INSTANCE` token returning your Tolgee instance.
|
|
71
|
+
|
|
72
|
+
```typescript
|
|
73
|
+
...
|
|
74
|
+
import {
|
|
75
|
+
DevTools,
|
|
76
|
+
NgxTolgeeModule,
|
|
77
|
+
Tolgee,
|
|
78
|
+
TOLGEE_INSTANCE,
|
|
79
|
+
FormatSimple
|
|
80
|
+
} from '@tolgee/ngx';
|
|
81
|
+
...
|
|
38
82
|
@NgModule({
|
|
39
83
|
declarations: [
|
|
40
84
|
...
|
|
41
85
|
],
|
|
42
86
|
imports: [
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
87
|
+
NgxTolgeeModule,
|
|
88
|
+
...
|
|
89
|
+
],
|
|
90
|
+
providers: [
|
|
91
|
+
{
|
|
92
|
+
provide: TOLGEE_INSTANCE,
|
|
93
|
+
useFactory: () => {
|
|
94
|
+
return Tolgee()
|
|
95
|
+
.use(DevTools())
|
|
96
|
+
.use(FormatSimple())
|
|
97
|
+
.init({
|
|
98
|
+
language: 'en'
|
|
99
|
+
|
|
100
|
+
// for development
|
|
101
|
+
apiUrl: environment.tolgeeApiUrl,
|
|
102
|
+
apiKey: environment.tolgeeApiKey,
|
|
103
|
+
|
|
104
|
+
// for production
|
|
105
|
+
staticData: {
|
|
106
|
+
...
|
|
107
|
+
}
|
|
108
|
+
});
|
|
109
|
+
},
|
|
110
|
+
},
|
|
111
|
+
],
|
|
112
|
+
bootstrap: [AppComponent],
|
|
55
113
|
})
|
|
56
|
-
|
|
57
|
-
export class AppModule {
|
|
58
|
-
}
|
|
114
|
+
export class AppModule {}
|
|
59
115
|
```
|
|
60
116
|
|
|
61
117
|
## Usage
|
|
118
|
+
Translating using pipe:
|
|
119
|
+
```html
|
|
120
|
+
<h1>{{'hello_world' | translate}}</h1>
|
|
121
|
+
```
|
|
62
122
|
|
|
63
|
-
|
|
123
|
+
Or using t attribute
|
|
124
|
+
```html
|
|
125
|
+
<h1 t key="providing_default_values"></h1>
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
|
|
129
|
+
## Prerequisites
|
|
64
130
|
|
|
65
|
-
|
|
131
|
+
1. You have some Angular-based project
|
|
132
|
+
2. You have generated an API key from [Tolgee Cloud](https://app.tolgee.io) or a self-hosted Tolgee instance.
|
|
133
|
+
|
|
66
134
|
|
|
67
|
-
|
|
68
|
-
|
|
135
|
+
|
|
136
|
+
## Why to use Tolgee?
|
|
137
|
+
Because it saves a lot of time, you would spend on localization tasks without it. Because it enables you to provide perfectly translated software.
|
|
138
|
+
|
|
139
|
+
### Features
|
|
140
|
+
|
|
141
|
+
- All-in-one localization solution for your JS application 🙌
|
|
142
|
+
- Out-of-box in-context localization 🎉
|
|
143
|
+
- Automated screenshot generation 📷
|
|
144
|
+
- Translation management platform 🎈
|
|
145
|
+
- Open-source 🔥
|
|
146
|
+
|
|
147
|
+

|
|
148
|
+
Read more on the [Tolgee website](https://tolgee.io)
|
|
149
|
+
|
|
150
|
+
|
|
151
|
+
## Development
|
|
152
|
+
|
|
153
|
+
We welcome your PRs.
|
|
154
|
+
|
|
155
|
+
To develop the package locally:
|
|
156
|
+
1. Clone [the repository](https://github.com/tolgee/tolgee-js)
|
|
157
|
+
1. Install the packages in the repository root
|
|
158
|
+
```
|
|
159
|
+
pnpm install
|
|
69
160
|
```
|
|
70
161
|
|
|
71
|
-
### Using translateService
|
|
72
162
|
|
|
73
|
-
|
|
74
|
-
this.translateService
|
|
75
|
-
.get('hello_world')
|
|
76
|
-
.subscribe((r) => (this.helloWorld = r));
|
|
163
|
+
1. Run the development script
|
|
77
164
|
```
|
|
165
|
+
pnpm develop:ngx
|
|
166
|
+
```
|
|
167
|
+
This runs the development suite of this monorepo for the `ngx` integration. The changes in each dependency package are
|
|
168
|
+
automatically built and propagated to the test application, which you can open and play within the browser.
|
|
78
169
|
|
|
79
|
-
### Element with t attribute
|
|
80
170
|
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
171
|
+
|
|
172
|
+
|
|
173
|
+
### Testing
|
|
174
|
+
|
|
175
|
+
To run Jest tests of this package, execute
|
|
176
|
+
```
|
|
177
|
+
npm run test
|
|
84
178
|
```
|
|
179
|
+
In the `/packages/ngx` directory.
|
|
180
|
+
|
|
181
|
+
|
|
182
|
+
|
|
183
|
+
|
|
184
|
+
### End-to-end (e2e) testing
|
|
185
|
+
To run the e2e tests, simply execute
|
|
186
|
+
```
|
|
187
|
+
pnpm run e2e run ngx
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
To open and play with e2e tests, run:
|
|
191
|
+
```
|
|
192
|
+
pnpm run e2e open ngx
|
|
193
|
+
```
|
|
194
|
+
|
|
85
195
|
|
|
86
|
-
## Prerequisites
|
|
87
196
|
|
|
88
|
-
|
|
89
|
-
2. You have generated API key from [Tolgee Cloud](https://app.tolgee.io) or self-hosted Tolgee instance.
|
|
197
|
+
## Contributors
|
|
90
198
|
|
|
91
|
-
|
|
199
|
+
<a href="https://github.com/tolgee/tolgee-platform/graphs/contributors">
|
|
200
|
+
<img alt="contributors" src="https://contrib.rocks/image?repo=tolgee/tolgee-js"/>
|
|
201
|
+
</a>
|
|
92
202
|
|
|
93
|
-

|
|
94
|
-
Learn more at our [documentation website 📖](https://tolgee.io).
|
|
@@ -4,17 +4,9 @@ import { getTranslateProps, } from '@tolgee/web';
|
|
|
4
4
|
import { TOLGEE_INSTANCE } from './tolgee-instance-token';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
6
|
export class TranslateService {
|
|
7
|
-
constructor(_tolgee) {
|
|
7
|
+
constructor(_tolgee, _ngZone) {
|
|
8
8
|
this._tolgee = _tolgee;
|
|
9
|
-
|
|
10
|
-
* Instantly returns translated value. May return undefined or outdated value.
|
|
11
|
-
* Use only when you cannot use translate.
|
|
12
|
-
*/
|
|
13
|
-
this.instant = (...args) => {
|
|
14
|
-
// @ts-ignore
|
|
15
|
-
const params = getTranslateProps(...args);
|
|
16
|
-
return this.tolgee.t(params);
|
|
17
|
-
};
|
|
9
|
+
this._ngZone = _ngZone;
|
|
18
10
|
/**
|
|
19
11
|
* Returns translation asynchronously, this method always return
|
|
20
12
|
*/
|
|
@@ -39,29 +31,33 @@ export class TranslateService {
|
|
|
39
31
|
};
|
|
40
32
|
});
|
|
41
33
|
};
|
|
34
|
+
/**
|
|
35
|
+
* Instantly returns translated value. May return undefined or outdated value.
|
|
36
|
+
* Use only when you cannot use translate.
|
|
37
|
+
*/
|
|
38
|
+
this.instant = (...args) => {
|
|
39
|
+
// @ts-ignore
|
|
40
|
+
const params = getTranslateProps(...args);
|
|
41
|
+
return this.tolgee.t(params);
|
|
42
|
+
};
|
|
42
43
|
}
|
|
43
44
|
get tolgee() {
|
|
44
45
|
return this._tolgee;
|
|
45
46
|
}
|
|
46
47
|
/**
|
|
47
|
-
* Starts Tolgee if not started
|
|
48
|
+
* Starts Tolgee if not started.
|
|
49
|
+
*
|
|
50
|
+
* The Tolgee is run outside NgZone. The triggered events, doesn't
|
|
51
|
+
* trigger the change detection, when listening directly via Tolgee.on.
|
|
52
|
+
*
|
|
53
|
+
* However, all the emitting methods (on, translate, languageAsync)
|
|
54
|
+
* in this class are emitting back in Angular's NgZone,
|
|
55
|
+
* so the change detection works fine.
|
|
48
56
|
*/
|
|
49
57
|
async start() {
|
|
50
|
-
if (!this.
|
|
51
|
-
|
|
58
|
+
if (!this.isSSR()) {
|
|
59
|
+
await this.runIfNotRunning();
|
|
52
60
|
}
|
|
53
|
-
await this.runPromise;
|
|
54
|
-
}
|
|
55
|
-
ngOnDestroy() {
|
|
56
|
-
this.tolgee.stop();
|
|
57
|
-
}
|
|
58
|
-
on(event) {
|
|
59
|
-
return new Observable((subscriber) => {
|
|
60
|
-
const subscription = this.tolgee.on(event, (value) => {
|
|
61
|
-
subscriber.next(value);
|
|
62
|
-
});
|
|
63
|
-
return () => subscription.unsubscribe();
|
|
64
|
-
});
|
|
65
61
|
}
|
|
66
62
|
/**
|
|
67
63
|
* Returns current language
|
|
@@ -91,8 +87,40 @@ export class TranslateService {
|
|
|
91
87
|
changeLanguage(lang) {
|
|
92
88
|
return this.tolgee.changeLanguage(lang);
|
|
93
89
|
}
|
|
90
|
+
/**
|
|
91
|
+
* Returns observable emitting when specified event is triggered.
|
|
92
|
+
*
|
|
93
|
+
* It's a wrapper of Tolgee.on method. The emmit is triggered inside ngZone,
|
|
94
|
+
* so change detection should work properly.
|
|
95
|
+
*
|
|
96
|
+
* @param event the event to listen
|
|
97
|
+
*/
|
|
98
|
+
on(event) {
|
|
99
|
+
return new Observable((subscriber) => {
|
|
100
|
+
const subscription = this.tolgee.on(event, (value) => {
|
|
101
|
+
this._ngZone.run(() => {
|
|
102
|
+
subscriber.next(value);
|
|
103
|
+
});
|
|
104
|
+
});
|
|
105
|
+
return () => subscription.unsubscribe();
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
ngOnDestroy() {
|
|
109
|
+
this.tolgee.stop();
|
|
110
|
+
}
|
|
111
|
+
async runIfNotRunning() {
|
|
112
|
+
if (!this.runPromise) {
|
|
113
|
+
this.runPromise = this._ngZone.runOutsideAngular(() => {
|
|
114
|
+
return this.tolgee.run();
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
await this.runPromise;
|
|
118
|
+
}
|
|
119
|
+
isSSR() {
|
|
120
|
+
return typeof window === 'undefined';
|
|
121
|
+
}
|
|
94
122
|
}
|
|
95
|
-
TranslateService.ɵfac = function TranslateService_Factory(t) { return new (t || TranslateService)(i0.ɵɵinject(TOLGEE_INSTANCE)); };
|
|
123
|
+
TranslateService.ɵfac = function TranslateService_Factory(t) { return new (t || TranslateService)(i0.ɵɵinject(TOLGEE_INSTANCE), i0.ɵɵinject(i0.NgZone)); };
|
|
96
124
|
TranslateService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: TranslateService, factory: TranslateService.ɵfac, providedIn: 'root' });
|
|
97
125
|
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TranslateService, [{
|
|
98
126
|
type: Injectable,
|
|
@@ -100,5 +128,5 @@ TranslateService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: Transla
|
|
|
100
128
|
}], function () { return [{ type: undefined, decorators: [{
|
|
101
129
|
type: Inject,
|
|
102
130
|
args: [TOLGEE_INSTANCE]
|
|
103
|
-
}] }]; }, null); })();
|
|
104
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
131
|
+
}] }, { type: i0.NgZone }]; }, null); })();
|
|
132
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdG9sZ2VlL3NyYy9saWIvdHJhbnNsYXRlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbEMsT0FBTyxFQUdMLGlCQUFpQixHQUlsQixNQUFNLGFBQWEsQ0FBQztBQUNyQixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7O0FBRzFELE1BQU0sT0FBTyxnQkFBZ0I7SUFHM0IsWUFDbUMsT0FBdUIsRUFDaEQsT0FBZTtRQURVLFlBQU8sR0FBUCxPQUFPLENBQWdCO1FBQ2hELFlBQU8sR0FBUCxPQUFPLENBQVE7UUF1QnpCOztXQUVHO1FBQ00sY0FBUyxHQUFrRCxDQUNsRSxHQUFHLElBQUksRUFDUCxFQUFFO1lBQ0YsYUFBYTtZQUNiLE1BQU0sTUFBTSxHQUFHLGlCQUFpQixDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUM7WUFDMUMsT0FBTyxJQUFJLFVBQVUsQ0FBUyxDQUFDLFVBQVUsRUFBRSxFQUFFO2dCQUMzQyxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQ3ZELE1BQU0sU0FBUyxHQUFHLEtBQUssSUFBSSxFQUFFO29CQUMzQixNQUFNLFdBQVcsQ0FBQztvQkFDbEIsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUM7b0JBQ3pDLFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7Z0JBQzlCLENBQUMsQ0FBQztnQkFFRix3Q0FBd0M7Z0JBQ3hDLFNBQVMsRUFBRSxDQUFD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QUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUMzQixDQUFDLENBQUMsQ0FBQztTQUNKO1FBQ0QsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3hCLENBQUM7SUFFTyxLQUFLO1FBQ1gsT0FBTyxPQUFPLE1BQU0sS0FBSyxXQUFXLENBQUM7SUFDdkMsQ0FBQzs7Z0ZBdElVLGdCQUFnQixjQUlqQixlQUFlO3NFQUpkLGdCQUFnQixXQUFoQixnQkFBZ0IsbUJBREgsTUFBTTt1RkFDbkIsZ0JBQWdCO2NBRDVCLFVBQVU7ZUFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUU7O3NCQUs3QixNQUFNO3VCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIE9uRGVzdHJveSwgTmdab25lIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1xuICBEZWZhdWx0UGFyYW1UeXBlLFxuICBFdmVudFR5cGUsXG4gIGdldFRyYW5zbGF0ZVByb3BzLFxuICBMaXN0ZW5lckV2ZW50LFxuICBURm5UeXBlLFxuICBUb2xnZWVJbnN0YW5jZSxcbn0gZnJvbSAnQHRvbGdlZS93ZWInO1xuaW1wb3J0IHsgVE9MR0VFX0lOU1RBTkNFIH0gZnJvbSAnLi90b2xnZWUtaW5zdGFuY2UtdG9rZW4nO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIFRyYW5zbGF0ZVNlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBwcml2YXRlIHJ1blByb21pc2U6IFByb21pc2U8dm9pZD47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChUT0xHRUVfSU5TVEFOQ0UpIHByaXZhdGUgX3RvbGdlZTogVG9sZ2VlSW5zdGFuY2UsXG4gICAgcHJpdmF0ZSBfbmdab25lOiBOZ1pvbmVcbiAgKSB7fVxuXG4gIGdldCB0b2xnZWUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3RvbGdlZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTdGFydHMgVG9sZ2VlIGlmIG5vdCBzdGFydGVkLlxuICAgKlxuICAgKiBUaGUgVG9sZ2VlIGlzIHJ1biBvdXRzaWRlIE5nWm9uZS4gVGhlIHRyaWdnZXJlZCBldmVudHMsIGRvZXNuJ3RcbiAgICogdHJpZ2dlciB0aGUgY2hhbmdlIGRldGVjdGlvbiwgd2hlbiBsaXN0ZW5pbmcgZGlyZWN0bHkgdmlhIFRvbGdlZS5vbi5cbiAgICpcbiAgICogSG93ZXZlciwgYWxsIHRoZSBlbWl0dGluZyBtZXRob2RzIChvbiwgdHJhbnNsYXRlLCBsYW5ndWFnZUFzeW5jKVxuICAgKiBpbiB0aGlzIGNsYXNzIGFyZSBlbWl0dGluZyBiYWNrIGluIEFuZ3VsYXIncyBOZ1pvbmUsXG4gICAqIHNvIHRoZSBjaGFuZ2UgZGV0ZWN0aW9uIHdvcmtzIGZpbmUuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgc3RhcnQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKCF0aGlzLmlzU1NSKCkpIHtcbiAgICAgIGF3YWl0IHRoaXMucnVuSWZOb3RSdW5uaW5nKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdHJhbnNsYXRpb24gYXN5bmNocm9ub3VzbHksIHRoaXMgbWV0aG9kIGFsd2F5cyByZXR1cm5cbiAgICovXG4gIHJlYWRvbmx5IHRyYW5zbGF0ZTogVEZuVHlwZTxEZWZhdWx0UGFyYW1UeXBlLCBPYnNlcnZhYmxlPHN0cmluZz4+ID0gKFxuICAgIC4uLmFyZ3NcbiAgKSA9PiB7XG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIGNvbnN0IHBhcmFtcyA9IGdldFRyYW5zbGF0ZVByb3BzKC4uLmFyZ3MpO1xuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZTxzdHJpbmc+KChzdWJzY3JpYmVyKSA9PiB7XG4gICAgICBjb25zdCBsb2FkUHJvbWlzZSA9IHRoaXMudG9sZ2VlLmFkZEFjdGl2ZU5zKHBhcmFtcy5ucyk7XG4gICAgICBjb25zdCB0cmFuc2xhdGUgPSBhc3luYyAoKSA9PiB7XG4gICAgICAgIGF3YWl0IGxvYWRQcm9taXNlO1xuICAgICAgICBjb25zdCB0cmFuc2xhdGVkID0gdGhpcy50b2xnZWUudChwYXJhbXMpO1xuICAgICAgICBzdWJzY3JpYmVyLm5leHQodHJhbnNsYXRlZCk7XG4gICAgICB9O1xuXG4gICAgICAvLyBub2luc3BlY3Rpb24gSlNJZ25vcmVkUHJvbWlzZUZyb21DYWxsXG4gICAgICB0cmFuc2xhdGUoKTtcblxuICAgICAgY29uc3Qgc3Vic2NyaXB0aW9uID0gdGhpcy50b2xnZWVcbiAgICAgICAgLm9uTnNVcGRhdGUodHJhbnNsYXRlKVxuICAgICAgICAuc3Vic2NyaWJlTnMocGFyYW1zLm5zKTtcblxuICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgdGhpcy50b2xnZWUucmVtb3ZlQWN0aXZlTnMocGFyYW1zLm5zKTtcbiAgICAgICAgc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICB9O1xuICAgIH0pO1xuICB9O1xuXG4gIC8qKlxuICAgKiBJbnN0YW50bHkgcmV0dXJucyB0cmFuc2xhdGVkIHZhbHVlLiBNYXkgcmV0dXJuIHVuZGVmaW5lZCBvciBvdXRkYXRlZCB2YWx1ZS5cbiAgICogVXNlIG9ubHkgd2hlbiB5b3UgY2Fubm90IHVzZSB0cmFuc2xhdGUuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgaW5zdGFudDogVEZuVHlwZSA9ICguLi5hcmdzKSA9PiB7XG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIGNvbnN0IHBhcmFtcyA9IGdldFRyYW5zbGF0ZVByb3BzKC4uLmFyZ3MpO1xuICAgIHJldHVybiB0aGlzLnRvbGdlZS50KHBhcmFtcyk7XG4gIH07XG5cbiAgLyoqXG4gICAqIFJldHVybnMgY3VycmVudCBsYW5ndWFnZVxuICAgKi9cbiAgZ2V0IGxhbmd1YWdlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMudG9sZ2VlLmdldExhbmd1YWdlKCk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhbiBvYnNlcnZhYmxlIGVtaXR0aW5nIGN1cnJlbnQgbGFuZ3VhZ2UuXG4gICAqIEl0IGluc3RhbnRseSBlbWl0cyBjdXJyZW50IGxhbmd1YWdlXG4gICAqL1xuICBnZXQgbGFuZ3VhZ2VBc3luYygpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZSgoc3Vic2NyaWJlcikgPT4ge1xuICAgICAgc3Vic2NyaWJlci5uZXh0KHRoaXMudG9sZ2VlLmdldExhbmd1YWdlKCkpO1xuICAgICAgY29uc3Qgc3Vic2NyaXB0aW9uID0gdGhpcy5vbignbGFuZ3VhZ2UnKS5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG4gICAgICAgIHN1YnNjcmliZXIubmV4dCh2YWx1ZS52YWx1ZSk7XG4gICAgICB9KTtcblxuICAgICAgcmV0dXJuICgpID0+IHN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENoYW5nZXMgdGhlIGN1cnJlbnQgbGFuZ3VhZ2VcbiAgICogQHBhcmFtIGxhbmcgVGhlIG5ldyBjdXJyZW50IGxhbmd1YWdlIChlLmcuIGVuLCBlbi1VUylcbiAgICogQHJldHVybiBQcm9taXNlPHZvaWQ+IFJlc29sdmVzIHdoZW4gdHJhbnNsYXRpb25zXG4gICAqIGZvciBnaXZlbiBsYW5ndWFnZSBhcmUgbG9hZGVkXG4gICAqL1xuICBwdWJsaWMgY2hhbmdlTGFuZ3VhZ2UobGFuZzogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMudG9sZ2VlLmNoYW5nZUxhbmd1YWdlKGxhbmcpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgb2JzZXJ2YWJsZSBlbWl0dGluZyB3aGVuIHNwZWNpZmllZCBldmVudCBpcyB0cmlnZ2VyZWQuXG4gICAqXG4gICAqIEl0J3MgYSB3cmFwcGVyIG9mIFRvbGdlZS5vbiBtZXRob2QuIFRoZSBlbW1pdCBpcyB0cmlnZ2VyZWQgaW5zaWRlIG5nWm9uZSxcbiAgICogc28gY2hhbmdlIGRldGVjdGlvbiBzaG91bGQgd29yayBwcm9wZXJseS5cbiAgICpcbiAgICogQHBhcmFtIGV2ZW50IHRoZSBldmVudCB0byBsaXN0ZW5cbiAgICovXG4gIG9uPEV2ZW50IGV4dGVuZHMga2V5b2YgRXZlbnRUeXBlPihldmVudDogRXZlbnQpIHtcbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGU8TGlzdGVuZXJFdmVudDxFdmVudFR5cGVbRXZlbnRdPj4oKHN1YnNjcmliZXIpID0+IHtcbiAgICAgIGNvbnN0IHN1YnNjcmlwdGlvbiA9IHRoaXMudG9sZ2VlLm9uKGV2ZW50LCAodmFsdWUpID0+IHtcbiAgICAgICAgdGhpcy5fbmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgc3Vic2NyaWJlci5uZXh0KHZhbHVlIGFzIGFueSk7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgICByZXR1cm4gKCkgPT4gc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnRvbGdlZS5zdG9wKCk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHJ1bklmTm90UnVubmluZygpIHtcbiAgICBpZiAoIXRoaXMucnVuUHJvbWlzZSkge1xuICAgICAgdGhpcy5ydW5Qcm9taXNlID0gdGhpcy5fbmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMudG9sZ2VlLnJ1bigpO1xuICAgICAgfSk7XG4gICAgfVxuICAgIGF3YWl0IHRoaXMucnVuUHJvbWlzZTtcbiAgfVxuXG4gIHByaXZhdGUgaXNTU1IoKSB7XG4gICAgcmV0dXJuIHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnO1xuICB9XG59XG4iXX0=
|
package/esm2020/public-api.mjs
CHANGED
|
@@ -4,9 +4,8 @@
|
|
|
4
4
|
export * from './lib/translate.service';
|
|
5
5
|
export * from './lib/translate.pipe';
|
|
6
6
|
export * from './lib/t.component';
|
|
7
|
-
export * from './lib/NgxPlugin';
|
|
8
7
|
export * from './lib/ngx-tolgee.module';
|
|
9
8
|
export * from './lib/tolgee-instance-token';
|
|
10
9
|
export * from '@tolgee/web';
|
|
11
10
|
export * from './lib/namespace.resolver';
|
|
12
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL25neC10b2xnZWUvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFDSCxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyxtQkFBbUIsQ0FBQztBQUVsQyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsNkJBQTZCLENBQUM7QUFFNUMsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYywwQkFBMEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2Ygbmd4LXRvbGdlZVxuICovXG5leHBvcnQgKiBmcm9tICcuL2xpYi90cmFuc2xhdGUuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi90cmFuc2xhdGUucGlwZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi90LmNvbXBvbmVudCc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL25neC10b2xnZWUubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RvbGdlZS1pbnN0YW5jZS10b2tlbic7XG5cbmV4cG9ydCAqIGZyb20gJ0B0b2xnZWUvd2ViJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL25hbWVzcGFjZS5yZXNvbHZlcic7XG4iXX0=
|
package/fesm2015/tolgee-ngx.mjs
CHANGED
|
@@ -2,23 +2,15 @@ import { __awaiter } from 'tslib';
|
|
|
2
2
|
import * as i0 from '@angular/core';
|
|
3
3
|
import { InjectionToken, Injectable, Inject, Pipe, Component, Input, APP_INITIALIZER, NgModule } from '@angular/core';
|
|
4
4
|
import { Observable } from 'rxjs';
|
|
5
|
-
import { getTranslateProps
|
|
5
|
+
import { getTranslateProps } from '@tolgee/web';
|
|
6
6
|
export * from '@tolgee/web';
|
|
7
7
|
|
|
8
8
|
const TOLGEE_INSTANCE = new InjectionToken('tolgee.instance');
|
|
9
9
|
|
|
10
10
|
class TranslateService {
|
|
11
|
-
constructor(_tolgee) {
|
|
11
|
+
constructor(_tolgee, _ngZone) {
|
|
12
12
|
this._tolgee = _tolgee;
|
|
13
|
-
|
|
14
|
-
* Instantly returns translated value. May return undefined or outdated value.
|
|
15
|
-
* Use only when you cannot use translate.
|
|
16
|
-
*/
|
|
17
|
-
this.instant = (...args) => {
|
|
18
|
-
// @ts-ignore
|
|
19
|
-
const params = getTranslateProps(...args);
|
|
20
|
-
return this.tolgee.t(params);
|
|
21
|
-
};
|
|
13
|
+
this._ngZone = _ngZone;
|
|
22
14
|
/**
|
|
23
15
|
* Returns translation asynchronously, this method always return
|
|
24
16
|
*/
|
|
@@ -43,30 +35,34 @@ class TranslateService {
|
|
|
43
35
|
};
|
|
44
36
|
});
|
|
45
37
|
};
|
|
38
|
+
/**
|
|
39
|
+
* Instantly returns translated value. May return undefined or outdated value.
|
|
40
|
+
* Use only when you cannot use translate.
|
|
41
|
+
*/
|
|
42
|
+
this.instant = (...args) => {
|
|
43
|
+
// @ts-ignore
|
|
44
|
+
const params = getTranslateProps(...args);
|
|
45
|
+
return this.tolgee.t(params);
|
|
46
|
+
};
|
|
46
47
|
}
|
|
47
48
|
get tolgee() {
|
|
48
49
|
return this._tolgee;
|
|
49
50
|
}
|
|
50
51
|
/**
|
|
51
|
-
* Starts Tolgee if not started
|
|
52
|
+
* Starts Tolgee if not started.
|
|
53
|
+
*
|
|
54
|
+
* The Tolgee is run outside NgZone. The triggered events, doesn't
|
|
55
|
+
* trigger the change detection, when listening directly via Tolgee.on.
|
|
56
|
+
*
|
|
57
|
+
* However, all the emitting methods (on, translate, languageAsync)
|
|
58
|
+
* in this class are emitting back in Angular's NgZone,
|
|
59
|
+
* so the change detection works fine.
|
|
52
60
|
*/
|
|
53
61
|
start() {
|
|
54
62
|
return __awaiter(this, void 0, void 0, function* () {
|
|
55
|
-
if (!this.
|
|
56
|
-
|
|
63
|
+
if (!this.isSSR()) {
|
|
64
|
+
yield this.runIfNotRunning();
|
|
57
65
|
}
|
|
58
|
-
yield this.runPromise;
|
|
59
|
-
});
|
|
60
|
-
}
|
|
61
|
-
ngOnDestroy() {
|
|
62
|
-
this.tolgee.stop();
|
|
63
|
-
}
|
|
64
|
-
on(event) {
|
|
65
|
-
return new Observable((subscriber) => {
|
|
66
|
-
const subscription = this.tolgee.on(event, (value) => {
|
|
67
|
-
subscriber.next(value);
|
|
68
|
-
});
|
|
69
|
-
return () => subscription.unsubscribe();
|
|
70
66
|
});
|
|
71
67
|
}
|
|
72
68
|
/**
|
|
@@ -97,8 +93,42 @@ class TranslateService {
|
|
|
97
93
|
changeLanguage(lang) {
|
|
98
94
|
return this.tolgee.changeLanguage(lang);
|
|
99
95
|
}
|
|
96
|
+
/**
|
|
97
|
+
* Returns observable emitting when specified event is triggered.
|
|
98
|
+
*
|
|
99
|
+
* It's a wrapper of Tolgee.on method. The emmit is triggered inside ngZone,
|
|
100
|
+
* so change detection should work properly.
|
|
101
|
+
*
|
|
102
|
+
* @param event the event to listen
|
|
103
|
+
*/
|
|
104
|
+
on(event) {
|
|
105
|
+
return new Observable((subscriber) => {
|
|
106
|
+
const subscription = this.tolgee.on(event, (value) => {
|
|
107
|
+
this._ngZone.run(() => {
|
|
108
|
+
subscriber.next(value);
|
|
109
|
+
});
|
|
110
|
+
});
|
|
111
|
+
return () => subscription.unsubscribe();
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
ngOnDestroy() {
|
|
115
|
+
this.tolgee.stop();
|
|
116
|
+
}
|
|
117
|
+
runIfNotRunning() {
|
|
118
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
119
|
+
if (!this.runPromise) {
|
|
120
|
+
this.runPromise = this._ngZone.runOutsideAngular(() => {
|
|
121
|
+
return this.tolgee.run();
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
yield this.runPromise;
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
isSSR() {
|
|
128
|
+
return typeof window === 'undefined';
|
|
129
|
+
}
|
|
100
130
|
}
|
|
101
|
-
TranslateService.ɵfac = function TranslateService_Factory(t) { return new (t || TranslateService)(i0.ɵɵinject(TOLGEE_INSTANCE)); };
|
|
131
|
+
TranslateService.ɵfac = function TranslateService_Factory(t) { return new (t || TranslateService)(i0.ɵɵinject(TOLGEE_INSTANCE), i0.ɵɵinject(i0.NgZone)); };
|
|
102
132
|
TranslateService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: TranslateService, factory: TranslateService.ɵfac, providedIn: 'root' });
|
|
103
133
|
(function () {
|
|
104
134
|
(typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TranslateService, [{
|
|
@@ -108,7 +138,7 @@ TranslateService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: Transla
|
|
|
108
138
|
return [{ type: undefined, decorators: [{
|
|
109
139
|
type: Inject,
|
|
110
140
|
args: [TOLGEE_INSTANCE]
|
|
111
|
-
}] }];
|
|
141
|
+
}] }, { type: i0.NgZone }];
|
|
112
142
|
}, null);
|
|
113
143
|
})();
|
|
114
144
|
|
|
@@ -253,11 +283,6 @@ TComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TComponent, sele
|
|
|
253
283
|
}] });
|
|
254
284
|
})();
|
|
255
285
|
|
|
256
|
-
const NgxPlugin = () => (tolgee) => {
|
|
257
|
-
tolgee.addPlugin(DevTools());
|
|
258
|
-
return tolgee;
|
|
259
|
-
};
|
|
260
|
-
|
|
261
286
|
class LoaderComponent {
|
|
262
287
|
}
|
|
263
288
|
LoaderComponent.ɵfac = function LoaderComponent_Factory(t) { return new (t || LoaderComponent)(); };
|
|
@@ -354,5 +379,5 @@ NamespaceResolver.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: Namesp
|
|
|
354
379
|
* Generated bundle index. Do not edit.
|
|
355
380
|
*/
|
|
356
381
|
|
|
357
|
-
export { NamespaceResolver,
|
|
382
|
+
export { NamespaceResolver, NgxTolgeeModule, TComponent, TOLGEE_INSTANCE, TranslatePipe, TranslateService };
|
|
358
383
|
//# sourceMappingURL=tolgee-ngx.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tolgee-ngx.mjs","sources":["../../../projects/ngx-tolgee/src/lib/tolgee-instance-token.ts","../../../projects/ngx-tolgee/src/lib/translate.service.ts","../../../projects/ngx-tolgee/src/lib/translate.pipe.ts","../../../projects/ngx-tolgee/src/lib/t.component.ts","../../../projects/ngx-tolgee/src/lib/NgxPlugin.ts","../../../projects/ngx-tolgee/src/lib/loader.component.ts","../../../projects/ngx-tolgee/src/lib/ngx-tolgee.module.ts","../../../projects/ngx-tolgee/src/lib/namespace.resolver.ts","../../../projects/ngx-tolgee/src/public-api.ts","../../../projects/ngx-tolgee/src/tolgee-ngx.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { TolgeeInstance } from '@tolgee/web';\n\nexport const TOLGEE_INSTANCE = new InjectionToken<TolgeeInstance>(\n 'tolgee.instance'\n);\n","import { Inject, Injectable, OnDestroy } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport {\n DefaultParamType,\n EventType,\n getTranslateProps,\n ListenerEvent,\n TFnType,\n TolgeeInstance,\n} from '@tolgee/web';\nimport { TOLGEE_INSTANCE } from './tolgee-instance-token';\n\n@Injectable({ providedIn: 'root' })\nexport class TranslateService implements OnDestroy {\n private runPromise: Promise<void>;\n\n constructor(@Inject(TOLGEE_INSTANCE) private _tolgee: TolgeeInstance) {}\n\n get tolgee() {\n return this._tolgee;\n }\n\n /**\n * Starts Tolgee if not started and subscribes for languageChange and translationChange events\n */\n public async start(): Promise<void> {\n if (!this.runPromise) {\n this.runPromise = this.tolgee.run();\n }\n await this.runPromise;\n }\n\n ngOnDestroy(): void {\n this.tolgee.stop();\n }\n\n on<Event extends keyof EventType>(event: Event) {\n return new Observable<ListenerEvent<EventType[Event]>>(\n (subscriber) => {\n const subscription = this.tolgee.on(event, (value) => {\n subscriber.next(value as any);\n });\n return () => subscription.unsubscribe();\n }\n );\n }\n\n /**\n * Returns current language\n */\n get language(): string {\n return this.tolgee.getLanguage();\n }\n\n /**\n * Returns an observable emitting current language.\n * It instantly emits current language\n */\n get languageAsync(): Observable<string> {\n return new Observable((subscriber) => {\n subscriber.next(this.tolgee.getLanguage());\n const subscription = this.on('language').subscribe((value) => {\n subscriber.next(value.value);\n });\n\n return () => subscription.unsubscribe();\n });\n }\n\n /**\n * Changes the current language\n * @param lang The new current language (e.g. en, en-US)\n * @return Promise<void> Resolves when translations\n * for given language are loaded\n */\n public changeLanguage(lang: string) {\n return this.tolgee.changeLanguage(lang);\n }\n\n /**\n * Instantly returns translated value. May return undefined or outdated value.\n * Use only when you cannot use translate.\n */\n public readonly instant: TFnType = (...args) => {\n // @ts-ignore\n const params = getTranslateProps(...args);\n return this.tolgee.t(params);\n };\n\n /**\n * Returns translation asynchronously, this method always return\n */\n readonly translate: TFnType<DefaultParamType, Observable<string>> = (\n ...args\n ) => {\n // @ts-ignore\n const params = getTranslateProps(...args);\n return new Observable<string>((subscriber) => {\n const loadPromise = this.tolgee.addActiveNs(params.ns);\n const translate = async () => {\n await loadPromise;\n const translated = this.tolgee.t(params);\n subscriber.next(translated);\n };\n\n // noinspection JSIgnoredPromiseFromCall\n translate();\n\n const subscription = this.tolgee\n .onNsUpdate(translate)\n .subscribeNs(params.ns);\n\n return () => {\n this.tolgee.removeActiveNs(params.ns);\n subscription.unsubscribe();\n };\n });\n };\n}\n","import { OnDestroy, Pipe, PipeTransform } from '@angular/core';\nimport { TranslateService } from './translate.service';\nimport { Subscription } from 'rxjs';\nimport { getTranslateProps, TFnType, TranslateProps } from '@tolgee/web';\n\n@Pipe({\n name: 'translate',\n pure: false,\n})\nexport class TranslatePipe implements PipeTransform, OnDestroy {\n private value = '';\n private previousHash: string;\n\n private subscription: Subscription;\n\n constructor(protected translateService: TranslateService) {}\n\n ngOnDestroy(): void {\n this.unsubscribe();\n }\n\n readonly transform: TFnType<string> = (...args) => {\n // @ts-ignore\n const params = getTranslateProps(...args);\n const { key } = params;\n\n if (!key || key.length === 0) {\n return key;\n }\n\n const newHash = this.hash(params);\n if (this.previousHash === newHash) {\n return this.value;\n }\n\n this.previousHash = newHash;\n\n this.translate(params);\n\n return this.value;\n };\n\n private hash(props: TranslateProps) {\n return JSON.stringify([props, this.translateService.tolgee.getLanguage()]);\n }\n\n private unsubscribe() {\n this.subscription?.unsubscribe();\n }\n\n private translate(props: TranslateProps) {\n this.value = this.translateService.instant({ ...props, orEmpty: true });\n this.subscribe(props);\n }\n\n private subscribe(props: TranslateProps) {\n this.unsubscribe();\n return this.translateService.translate(props).subscribe((r) => {\n this.value = r;\n });\n }\n}\n","import {\n Component,\n ElementRef,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { TranslateService } from './translate.service';\nimport { TranslateParams } from '@tolgee/web';\n\n@Component({\n selector: '[t]',\n template: ``,\n})\nexport class TComponent implements OnInit, OnDestroy, OnChanges {\n @Input() key: string;\n @Input() ns: string;\n @Input() params?: TranslateParams<any>;\n @Input() default?: string;\n @Input() noWrap?: boolean = false;\n\n /**\n * When true, innerHTML property of element is set.\n * Use only when you're sure the HTML is sanitized.\n */\n @Input() isHtml?: boolean = false;\n\n private subscription: Subscription;\n private initialized: boolean;\n\n constructor(\n private ref: ElementRef,\n private translateService: TranslateService\n ) {}\n\n ngOnInit(): void {\n // noinspection JSIgnoredPromiseFromCall\n this.subscribe();\n this.renderInstantValue();\n }\n\n ngOnChanges(): void {\n // noinspection JSIgnoredPromiseFromCall\n this.subscribe();\n }\n\n ngOnDestroy(): void {\n this.unsubscribe();\n }\n\n private renderInstantValue() {\n // get initial value first\n const translated = this.translateService.instant({\n ...this.getTranslateProps(),\n orEmpty: true,\n });\n this.setElementContent(translated);\n }\n\n private getTranslateProps() {\n return {\n key: this.key,\n ns: this.ns,\n params: this.params,\n defaultValue: this.default,\n noWrap: this.noWrap,\n };\n }\n\n private unsubscribe() {\n this.subscription?.unsubscribe();\n }\n\n private async subscribe() {\n this.unsubscribe();\n this.subscription = this.translateService\n .translate(this.getTranslateProps())\n .subscribe((translated) => {\n this.setElementContent(translated);\n this.initialized = true;\n });\n }\n\n private setElementContent(translated: string) {\n if (this.isHtml) {\n this.getElement().innerHTML = translated;\n return;\n }\n this.getElement().textContent = translated;\n }\n\n private getElement() {\n return this.ref.nativeElement as HTMLElement;\n }\n}\n","import { TolgeePlugin, DevTools } from '@tolgee/web';\n\nexport const NgxPlugin = (): TolgeePlugin => (tolgee) => {\n tolgee.addPlugin(DevTools());\n return tolgee;\n};\n","import { Component, Input } from '@angular/core';\n\n@Component({\n template: `\n <div class=\"loader-template\" [innerHTML]=\"html\"></div>\n `,\n})\nexport class LoaderComponent {\n @Input() html: string | undefined;\n}\n","import { APP_INITIALIZER, NgModule } from '@angular/core';\nimport { TranslatePipe } from './translate.pipe';\nimport { TComponent } from './t.component';\nimport { TranslateService } from './translate.service';\nimport { LoaderComponent } from \"./loader.component\";\n\n@NgModule({\n declarations: [TranslatePipe, TComponent, LoaderComponent],\n exports: [TranslatePipe, TComponent],\n providers: [\n {\n provide: APP_INITIALIZER,\n useFactory: (service: TranslateService) => {\n return async () => await service.start();\n },\n deps: [TranslateService],\n multi: true,\n },\n ],\n})\nexport class NgxTolgeeModule {}\n","import {\n ActivatedRouteSnapshot,\n Resolve,\n} from '@angular/router';\nimport { TranslateService } from './translate.service';\nimport { Injectable } from '@angular/core';\n\n@Injectable({ providedIn: 'root' })\nexport class NamespaceResolver implements Resolve<void> {\n constructor(public service: TranslateService) {}\n\n async resolve(\n route: ActivatedRouteSnapshot,\n ): Promise<void> {\n const ns = this.getNamespace(route);\n await this.service.tolgee.addActiveNs(ns, true)\n }\n\n private getNamespace(route: ActivatedRouteSnapshot) {\n const namespace = route?.data?.tolgeeNamespace;\n if (namespace === undefined) {\n console.warn(\n 'No namespace provided. Please add tolgeeNamespace to your route data. \\n' +\n 'If you really want to lazy load default namespace set tolgeeNamespace to empty string'\n );\n }\n return namespace;\n }\n}\n","/*\n * Public API Surface of ngx-tolgee\n */\nexport * from './lib/translate.service';\nexport * from './lib/translate.pipe';\nexport * from './lib/t.component';\nexport * from './lib/NgxPlugin';\n\nexport * from './lib/ngx-tolgee.module';\nexport * from './lib/tolgee-instance-token';\n\nexport * from '@tolgee/web';\nexport * from './lib/namespace.resolver';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.TranslateService"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tolgee-ngx.mjs","sources":["../../../projects/ngx-tolgee/src/lib/tolgee-instance-token.ts","../../../projects/ngx-tolgee/src/lib/translate.service.ts","../../../projects/ngx-tolgee/src/lib/translate.pipe.ts","../../../projects/ngx-tolgee/src/lib/t.component.ts","../../../projects/ngx-tolgee/src/lib/loader.component.ts","../../../projects/ngx-tolgee/src/lib/ngx-tolgee.module.ts","../../../projects/ngx-tolgee/src/lib/namespace.resolver.ts","../../../projects/ngx-tolgee/src/public-api.ts","../../../projects/ngx-tolgee/src/tolgee-ngx.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { TolgeeInstance } from '@tolgee/web';\n\nexport const TOLGEE_INSTANCE = new InjectionToken<TolgeeInstance>(\n 'tolgee.instance'\n);\n","import { Inject, Injectable, OnDestroy, NgZone } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport {\n DefaultParamType,\n EventType,\n getTranslateProps,\n ListenerEvent,\n TFnType,\n TolgeeInstance,\n} from '@tolgee/web';\nimport { TOLGEE_INSTANCE } from './tolgee-instance-token';\n\n@Injectable({ providedIn: 'root' })\nexport class TranslateService implements OnDestroy {\n private runPromise: Promise<void>;\n\n constructor(\n @Inject(TOLGEE_INSTANCE) private _tolgee: TolgeeInstance,\n private _ngZone: NgZone\n ) {}\n\n get tolgee() {\n return this._tolgee;\n }\n\n /**\n * Starts Tolgee if not started.\n *\n * The Tolgee is run outside NgZone. The triggered events, doesn't\n * trigger the change detection, when listening directly via Tolgee.on.\n *\n * However, all the emitting methods (on, translate, languageAsync)\n * in this class are emitting back in Angular's NgZone,\n * so the change detection works fine.\n */\n public async start(): Promise<void> {\n if (!this.isSSR()) {\n await this.runIfNotRunning();\n }\n }\n\n /**\n * Returns translation asynchronously, this method always return\n */\n readonly translate: TFnType<DefaultParamType, Observable<string>> = (\n ...args\n ) => {\n // @ts-ignore\n const params = getTranslateProps(...args);\n return new Observable<string>((subscriber) => {\n const loadPromise = this.tolgee.addActiveNs(params.ns);\n const translate = async () => {\n await loadPromise;\n const translated = this.tolgee.t(params);\n subscriber.next(translated);\n };\n\n // noinspection JSIgnoredPromiseFromCall\n translate();\n\n const subscription = this.tolgee\n .onNsUpdate(translate)\n .subscribeNs(params.ns);\n\n return () => {\n this.tolgee.removeActiveNs(params.ns);\n subscription.unsubscribe();\n };\n });\n };\n\n /**\n * Instantly returns translated value. May return undefined or outdated value.\n * Use only when you cannot use translate.\n */\n public readonly instant: TFnType = (...args) => {\n // @ts-ignore\n const params = getTranslateProps(...args);\n return this.tolgee.t(params);\n };\n\n /**\n * Returns current language\n */\n get language(): string {\n return this.tolgee.getLanguage();\n }\n\n /**\n * Returns an observable emitting current language.\n * It instantly emits current language\n */\n get languageAsync(): Observable<string> {\n return new Observable((subscriber) => {\n subscriber.next(this.tolgee.getLanguage());\n const subscription = this.on('language').subscribe((value) => {\n subscriber.next(value.value);\n });\n\n return () => subscription.unsubscribe();\n });\n }\n\n /**\n * Changes the current language\n * @param lang The new current language (e.g. en, en-US)\n * @return Promise<void> Resolves when translations\n * for given language are loaded\n */\n public changeLanguage(lang: string) {\n return this.tolgee.changeLanguage(lang);\n }\n\n /**\n * Returns observable emitting when specified event is triggered.\n *\n * It's a wrapper of Tolgee.on method. The emmit is triggered inside ngZone,\n * so change detection should work properly.\n *\n * @param event the event to listen\n */\n on<Event extends keyof EventType>(event: Event) {\n return new Observable<ListenerEvent<EventType[Event]>>((subscriber) => {\n const subscription = this.tolgee.on(event, (value) => {\n this._ngZone.run(() => {\n subscriber.next(value as any);\n });\n });\n return () => subscription.unsubscribe();\n });\n }\n\n ngOnDestroy(): void {\n this.tolgee.stop();\n }\n\n private async runIfNotRunning() {\n if (!this.runPromise) {\n this.runPromise = this._ngZone.runOutsideAngular(() => {\n return this.tolgee.run();\n });\n }\n await this.runPromise;\n }\n\n private isSSR() {\n return typeof window === 'undefined';\n }\n}\n","import { OnDestroy, Pipe, PipeTransform } from '@angular/core';\nimport { TranslateService } from './translate.service';\nimport { Subscription } from 'rxjs';\nimport { getTranslateProps, TFnType, TranslateProps } from '@tolgee/web';\n\n@Pipe({\n name: 'translate',\n pure: false,\n})\nexport class TranslatePipe implements PipeTransform, OnDestroy {\n private value = '';\n private previousHash: string;\n\n private subscription: Subscription;\n\n constructor(protected translateService: TranslateService) {}\n\n ngOnDestroy(): void {\n this.unsubscribe();\n }\n\n readonly transform: TFnType<string> = (...args) => {\n // @ts-ignore\n const params = getTranslateProps(...args);\n const { key } = params;\n\n if (!key || key.length === 0) {\n return key;\n }\n\n const newHash = this.hash(params);\n if (this.previousHash === newHash) {\n return this.value;\n }\n\n this.previousHash = newHash;\n\n this.translate(params);\n\n return this.value;\n };\n\n private hash(props: TranslateProps) {\n return JSON.stringify([props, this.translateService.tolgee.getLanguage()]);\n }\n\n private unsubscribe() {\n this.subscription?.unsubscribe();\n }\n\n private translate(props: TranslateProps) {\n this.value = this.translateService.instant({ ...props, orEmpty: true });\n this.subscribe(props);\n }\n\n private subscribe(props: TranslateProps) {\n this.unsubscribe();\n return this.translateService.translate(props).subscribe((r) => {\n this.value = r;\n });\n }\n}\n","import {\n Component,\n ElementRef,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { TranslateService } from './translate.service';\nimport { TranslateParams } from '@tolgee/web';\n\n@Component({\n selector: '[t]',\n template: ``,\n})\nexport class TComponent implements OnInit, OnDestroy, OnChanges {\n @Input() key: string;\n @Input() ns: string;\n @Input() params?: TranslateParams<any>;\n @Input() default?: string;\n @Input() noWrap?: boolean = false;\n\n /**\n * When true, innerHTML property of element is set.\n * Use only when you're sure the HTML is sanitized.\n */\n @Input() isHtml?: boolean = false;\n\n private subscription: Subscription;\n private initialized: boolean;\n\n constructor(\n private ref: ElementRef,\n private translateService: TranslateService\n ) {}\n\n ngOnInit(): void {\n // noinspection JSIgnoredPromiseFromCall\n this.subscribe();\n this.renderInstantValue();\n }\n\n ngOnChanges(): void {\n // noinspection JSIgnoredPromiseFromCall\n this.subscribe();\n }\n\n ngOnDestroy(): void {\n this.unsubscribe();\n }\n\n private renderInstantValue() {\n // get initial value first\n const translated = this.translateService.instant({\n ...this.getTranslateProps(),\n orEmpty: true,\n });\n this.setElementContent(translated);\n }\n\n private getTranslateProps() {\n return {\n key: this.key,\n ns: this.ns,\n params: this.params,\n defaultValue: this.default,\n noWrap: this.noWrap,\n };\n }\n\n private unsubscribe() {\n this.subscription?.unsubscribe();\n }\n\n private async subscribe() {\n this.unsubscribe();\n this.subscription = this.translateService\n .translate(this.getTranslateProps())\n .subscribe((translated) => {\n this.setElementContent(translated);\n this.initialized = true;\n });\n }\n\n private setElementContent(translated: string) {\n if (this.isHtml) {\n this.getElement().innerHTML = translated;\n return;\n }\n this.getElement().textContent = translated;\n }\n\n private getElement() {\n return this.ref.nativeElement as HTMLElement;\n }\n}\n","import { Component, Input } from '@angular/core';\n\n@Component({\n template: `\n <div class=\"loader-template\" [innerHTML]=\"html\"></div>\n `,\n})\nexport class LoaderComponent {\n @Input() html: string | undefined;\n}\n","import { APP_INITIALIZER, NgModule } from '@angular/core';\nimport { TranslatePipe } from './translate.pipe';\nimport { TComponent } from './t.component';\nimport { TranslateService } from './translate.service';\nimport { LoaderComponent } from \"./loader.component\";\n\n@NgModule({\n declarations: [TranslatePipe, TComponent, LoaderComponent],\n exports: [TranslatePipe, TComponent],\n providers: [\n {\n provide: APP_INITIALIZER,\n useFactory: (service: TranslateService) => {\n return async () => await service.start();\n },\n deps: [TranslateService],\n multi: true,\n },\n ],\n})\nexport class NgxTolgeeModule {}\n","import {\n ActivatedRouteSnapshot,\n Resolve,\n} from '@angular/router';\nimport { TranslateService } from './translate.service';\nimport { Injectable } from '@angular/core';\n\n@Injectable({ providedIn: 'root' })\nexport class NamespaceResolver implements Resolve<void> {\n constructor(public service: TranslateService) {}\n\n async resolve(\n route: ActivatedRouteSnapshot,\n ): Promise<void> {\n const ns = this.getNamespace(route);\n await this.service.tolgee.addActiveNs(ns, true)\n }\n\n private getNamespace(route: ActivatedRouteSnapshot) {\n const namespace = route?.data?.tolgeeNamespace;\n if (namespace === undefined) {\n console.warn(\n 'No namespace provided. Please add tolgeeNamespace to your route data. \\n' +\n 'If you really want to lazy load default namespace set tolgeeNamespace to empty string'\n );\n }\n return namespace;\n }\n}\n","/*\n * Public API Surface of ngx-tolgee\n */\nexport * from './lib/translate.service';\nexport * from './lib/translate.pipe';\nexport * from './lib/t.component';\n\nexport * from './lib/ngx-tolgee.module';\nexport * from './lib/tolgee-instance-token';\n\nexport * from '@tolgee/web';\nexport * from './lib/namespace.resolver';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.TranslateService"],"mappings":";;;;;;;MAGa,eAAe,GAAG,IAAI,cAAc,CAC/C,iBAAiB;;MCSN,gBAAgB,CAAA;IAG3B,WACmC,CAAA,OAAuB,EAChD,OAAe,EAAA;AADU,QAAA,IAAO,CAAA,OAAA,GAAP,OAAO,CAAgB;AAChD,QAAA,IAAO,CAAA,OAAA,GAAP,OAAO,CAAQ;AAuBzB;;AAEG;AACM,QAAA,IAAA,CAAA,SAAS,GAAkD,CAClE,GAAG,IAAI,KACL;;AAEF,YAAA,MAAM,MAAM,GAAG,iBAAiB,CAAC,GAAG,IAAI,CAAC,CAAC;AAC1C,YAAA,OAAO,IAAI,UAAU,CAAS,CAAC,UAAU,KAAI;AAC3C,gBAAA,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBACvD,MAAM,SAAS,GAAG,MAAW,SAAA,CAAA,IAAA,EAAA,KAAA,CAAA,EAAA,KAAA,CAAA,EAAA,aAAA;AAC3B,oBAAA,MAAM,WAAW,CAAC;oBAClB,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AACzC,oBAAA,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAC9B,iBAAC,CAAA,CAAC;;AAGF,gBAAA,SAAS,EAAE,CAAC;AAEZ,gBAAA,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM;qBAC7B,UAAU,CAAC,SAAS,CAAC;AACrB,qBAAA,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAE1B,gBAAA,OAAO,MAAK;oBACV,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;oBACtC,YAAY,CAAC,WAAW,EAAE,CAAC;AAC7B,iBAAC,CAAC;AACJ,aAAC,CAAC,CAAC;AACL,SAAC,CAAC;AAEF;;;AAGG;AACa,QAAA,IAAA,CAAA,OAAO,GAAY,CAAC,GAAG,IAAI,KAAI;;AAE7C,YAAA,MAAM,MAAM,GAAG,iBAAiB,CAAC,GAAG,IAAI,CAAC,CAAC;YAC1C,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AAC/B,SAAC,CAAC;KA5DE;AAEJ,IAAA,IAAI,MAAM,GAAA;QACR,OAAO,IAAI,CAAC,OAAO,CAAC;KACrB;AAED;;;;;;;;;AASG;IACU,KAAK,GAAA;;AAChB,YAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE;AACjB,gBAAA,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;AAC9B,aAAA;SACF,CAAA,CAAA;AAAA,KAAA;AA0CD;;AAEG;AACH,IAAA,IAAI,QAAQ,GAAA;AACV,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;KAClC;AAED;;;AAGG;AACH,IAAA,IAAI,aAAa,GAAA;AACf,QAAA,OAAO,IAAI,UAAU,CAAC,CAAC,UAAU,KAAI;YACnC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;AAC3C,YAAA,MAAM,YAAY,GAAG,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,CAAC,KAAK,KAAI;AAC3D,gBAAA,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAC/B,aAAC,CAAC,CAAC;AAEH,YAAA,OAAO,MAAM,YAAY,CAAC,WAAW,EAAE,CAAC;AAC1C,SAAC,CAAC,CAAC;KACJ;AAED;;;;;AAKG;AACI,IAAA,cAAc,CAAC,IAAY,EAAA;QAChC,OAAO,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;KACzC;AAED;;;;;;;AAOG;AACH,IAAA,EAAE,CAAgC,KAAY,EAAA;AAC5C,QAAA,OAAO,IAAI,UAAU,CAAkC,CAAC,UAAU,KAAI;AACpE,YAAA,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,KAAI;AACnD,gBAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAK;AACpB,oBAAA,UAAU,CAAC,IAAI,CAAC,KAAY,CAAC,CAAC;AAChC,iBAAC,CAAC,CAAC;AACL,aAAC,CAAC,CAAC;AACH,YAAA,OAAO,MAAM,YAAY,CAAC,WAAW,EAAE,CAAC;AAC1C,SAAC,CAAC,CAAC;KACJ;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;KACpB;IAEa,eAAe,GAAA;;AAC3B,YAAA,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;gBACpB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,MAAK;AACpD,oBAAA,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;AAC3B,iBAAC,CAAC,CAAC;AACJ,aAAA;YACD,MAAM,IAAI,CAAC,UAAU,CAAC;SACvB,CAAA,CAAA;AAAA,KAAA;IAEO,KAAK,GAAA;AACX,QAAA,OAAO,OAAO,MAAM,KAAK,WAAW,CAAC;KACtC;;AAtIU,gBAAA,CAAA,IAAA,GAAA,SAAA,wBAAA,CAAA,CAAA,EAAA,EAAA,OAAA,KAAA,CAAA,IAAA,gBAAgB,cAIjB,eAAe,CAAA,EAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,MAAA,CAAA,CAAA,CAAA,EAAA,CAAA;sEAJd,gBAAgB,EAAA,OAAA,EAAhB,gBAAgB,CAAA,IAAA,EAAA,UAAA,EADH,MAAM,EAAA,CAAA,CAAA;;4EACnB,gBAAgB,EAAA,CAAA;kBAD5B,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAA;;;8BAK7B,MAAM;+BAAC,eAAe,CAAA;;;;;MCRd,aAAa,CAAA;AAMxB,IAAA,WAAA,CAAsB,gBAAkC,EAAA;AAAlC,QAAA,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;AALhD,QAAA,IAAK,CAAA,KAAA,GAAG,EAAE,CAAC;AAWV,QAAA,IAAA,CAAA,SAAS,GAAoB,CAAC,GAAG,IAAI,KAAI;;AAEhD,YAAA,MAAM,MAAM,GAAG,iBAAiB,CAAC,GAAG,IAAI,CAAC,CAAC;AAC1C,YAAA,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC;YAEvB,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE;AAC5B,gBAAA,OAAO,GAAG,CAAC;AACZ,aAAA;YAED,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAClC,YAAA,IAAI,IAAI,CAAC,YAAY,KAAK,OAAO,EAAE;gBACjC,OAAO,IAAI,CAAC,KAAK,CAAC;AACnB,aAAA;AAED,YAAA,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC;AAE5B,YAAA,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YAEvB,OAAO,IAAI,CAAC,KAAK,CAAC;AACpB,SAAC,CAAC;KAzB0D;IAE5D,WAAW,GAAA;QACT,IAAI,CAAC,WAAW,EAAE,CAAC;KACpB;AAuBO,IAAA,IAAI,CAAC,KAAqB,EAAA;AAChC,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;KAC5E;IAEO,WAAW,GAAA;;AACjB,QAAA,CAAA,EAAA,GAAA,IAAI,CAAC,YAAY,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,WAAW,EAAE,CAAC;KAClC;AAEO,IAAA,SAAS,CAAC,KAAqB,EAAA;AACrC,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAM,KAAK,CAAE,EAAA,EAAA,OAAO,EAAE,IAAI,IAAG,CAAC;AACxE,QAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;KACvB;AAEO,IAAA,SAAS,CAAC,KAAqB,EAAA;QACrC,IAAI,CAAC,WAAW,EAAE,CAAC;AACnB,QAAA,OAAO,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAI;AAC5D,YAAA,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;AACjB,SAAC,CAAC,CAAC;KACJ;;0EAnDU,aAAa,EAAA,EAAA,CAAA,iBAAA,CAAAA,gBAAA,EAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA;+EAAb,aAAa,EAAA,IAAA,EAAA,KAAA,EAAA,CAAA,CAAA;;4EAAb,aAAa,EAAA,CAAA;kBAJzB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,WAAW;AACjB,oBAAA,IAAI,EAAE,KAAK;iBACZ,CAAA;;;;;MCQY,UAAU,CAAA;IAgBrB,WACU,CAAA,GAAe,EACf,gBAAkC,EAAA;AADlC,QAAA,IAAG,CAAA,GAAA,GAAH,GAAG,CAAY;AACf,QAAA,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;AAbnC,QAAA,IAAM,CAAA,MAAA,GAAa,KAAK,CAAC;AAElC;;;AAGG;AACM,QAAA,IAAM,CAAA,MAAA,GAAa,KAAK,CAAC;KAQ9B;IAEJ,QAAQ,GAAA;;QAEN,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,IAAI,CAAC,kBAAkB,EAAE,CAAC;KAC3B;IAED,WAAW,GAAA;;QAET,IAAI,CAAC,SAAS,EAAE,CAAC;KAClB;IAED,WAAW,GAAA;QACT,IAAI,CAAC,WAAW,EAAE,CAAC;KACpB;IAEO,kBAAkB,GAAA;;AAExB,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAC3C,IAAI,CAAC,iBAAiB,EAAE,CAAA,EAAA,EAC3B,OAAO,EAAE,IAAI,IACb,CAAC;AACH,QAAA,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;KACpC;IAEO,iBAAiB,GAAA;QACvB,OAAO;YACL,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,YAAY,EAAE,IAAI,CAAC,OAAO;YAC1B,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC;KACH;IAEO,WAAW,GAAA;;AACjB,QAAA,CAAA,EAAA,GAAA,IAAI,CAAC,YAAY,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,WAAW,EAAE,CAAC;KAClC;IAEa,SAAS,GAAA;;YACrB,IAAI,CAAC,WAAW,EAAE,CAAC;AACnB,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,gBAAgB;AACtC,iBAAA,SAAS,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;AACnC,iBAAA,SAAS,CAAC,CAAC,UAAU,KAAI;AACxB,gBAAA,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;AACnC,gBAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;AAC1B,aAAC,CAAC,CAAC;SACN,CAAA,CAAA;AAAA,KAAA;AAEO,IAAA,iBAAiB,CAAC,UAAkB,EAAA;QAC1C,IAAI,IAAI,CAAC,MAAM,EAAE;AACf,YAAA,IAAI,CAAC,UAAU,EAAE,CAAC,SAAS,GAAG,UAAU,CAAC;YACzC,OAAO;AACR,SAAA;AACD,QAAA,IAAI,CAAC,UAAU,EAAE,CAAC,WAAW,GAAG,UAAU,CAAC;KAC5C;IAEO,UAAU,GAAA;AAChB,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,aAA4B,CAAC;KAC9C;;oEA/EU,UAAU,EAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAAA,gBAAA,CAAA,CAAA,CAAA,EAAA,CAAA;6DAAV,UAAU,EAAA,SAAA,EAAA,CAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,GAAA,EAAA,KAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,MAAA,EAAA,QAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,QAAA,EAAA,CAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,KAAA,EAAA,GAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,SAAA,mBAAA,CAAA,EAAA,EAAA,GAAA,EAAA,GAAA,EAAA,aAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4EAAV,UAAU,EAAA,CAAA;kBAJtB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,KAAK;AACf,oBAAA,QAAQ,EAAE,CAAE,CAAA;iBACb,CAAA;6FAEU,GAAG,EAAA,CAAA;sBAAX,KAAK;gBACG,EAAE,EAAA,CAAA;sBAAV,KAAK;gBACG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBAMG,MAAM,EAAA,CAAA;sBAAd,KAAK;;;;MCpBK,eAAe,CAAA;;8EAAf,eAAe,GAAA,CAAA,EAAA,CAAA;kEAAf,eAAe,EAAA,SAAA,EAAA,CAAA,CAAA,cAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA,EAAA,iBAAA,EAAA,CAAA,EAAA,WAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,wBAAA,CAAA,EAAA,EAAA,GAAA,EAAA;QAAA,IAAA,EAAA,GAAA,CAAA,EAAA;YAHxB,EAAsD,CAAA,SAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;;;AAAzB,YAAA,EAAkB,CAAA,UAAA,CAAA,WAAA,EAAA,GAAA,CAAA,IAAA,EAAA,EAAA,CAAA,cAAA,CAAA,CAAA;;;;4EAGtC,eAAe,EAAA,CAAA;kBAL3B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,CAAA;;AAET,EAAA,CAAA;iBACF,CAAA;oBAEU,IAAI,EAAA,CAAA;sBAAZ,KAAK;;;;MCYK,eAAe,CAAA;;8EAAf,eAAe,GAAA,CAAA,EAAA,CAAA;iEAAf,eAAe,EAAA,CAAA,CAAA;AAXf,eAAA,CAAA,IAAA,iBAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,SAAA,EAAA;AACT,QAAA;AACE,YAAA,OAAO,EAAE,eAAe;AACxB,YAAA,UAAU,EAAE,CAAC,OAAyB,KAAI;gBACxC,OAAO,MAAW,SAAA,CAAA,KAAA,CAAA,EAAA,KAAA,CAAA,EAAA,KAAA,CAAA,EAAA,aAAA,EAAC,OAAA,MAAM,OAAO,CAAC,KAAK,EAAE,CAAA,EAAA,CAAA,CAAC;aAC1C;YACD,IAAI,EAAE,CAAC,gBAAgB,CAAC;AACxB,YAAA,KAAK,EAAE,IAAI;AACZ,SAAA;AACF,KAAA,EAAA,CAAA,CAAA;;4EAEU,eAAe,EAAA,CAAA;kBAd3B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE,CAAC,aAAa,EAAE,UAAU,EAAE,eAAe,CAAC;AAC1D,oBAAA,OAAO,EAAE,CAAC,aAAa,EAAE,UAAU,CAAC;AACpC,oBAAA,SAAS,EAAE;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,eAAe;AACxB,4BAAA,UAAU,EAAE,CAAC,OAAyB,KAAI;gCACxC,OAAO,MAAW,SAAA,CAAA,IAAA,EAAA,KAAA,CAAA,EAAA,KAAA,CAAA,EAAA,aAAA,EAAC,OAAA,MAAM,OAAO,CAAC,KAAK,EAAE,CAAA,EAAA,CAAA,CAAC;6BAC1C;4BACD,IAAI,EAAE,CAAC,gBAAgB,CAAC;AACxB,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;AACF,qBAAA;iBACF,CAAA;;;wFACY,eAAe,EAAA,EAAA,YAAA,EAAA,CAbX,aAAa,EAAE,UAAU,EAAE,eAAe,CAAA,EAAA,OAAA,EAAA,CAC/C,aAAa,EAAE,UAAU,CAAA,EAAA,CAAA,CAAA,EAAA,GAAA;;MCAxB,iBAAiB,CAAA;AAC5B,IAAA,WAAA,CAAmB,OAAyB,EAAA;AAAzB,QAAA,IAAO,CAAA,OAAA,GAAP,OAAO,CAAkB;KAAI;AAE1C,IAAA,OAAO,CACX,KAA6B,EAAA;;YAE7B,MAAM,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AACpC,YAAA,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,EAAE,IAAI,CAAC,CAAA;SAChD,CAAA,CAAA;AAAA,KAAA;AAEO,IAAA,YAAY,CAAC,KAA6B,EAAA;;AAChD,QAAA,MAAM,SAAS,GAAG,CAAA,EAAA,GAAA,KAAK,KAAL,IAAA,IAAA,KAAK,KAAL,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,KAAK,CAAE,IAAI,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,eAAe,CAAC;QAC/C,IAAI,SAAS,KAAK,SAAS,EAAE;YAC3B,OAAO,CAAC,IAAI,CACV,0EAA0E;AACxE,gBAAA,uFAAuF,CAC1F,CAAC;AACH,SAAA;AACD,QAAA,OAAO,SAAS,CAAC;KAClB;;kFAnBU,iBAAiB,EAAA,EAAA,CAAA,QAAA,CAAAA,gBAAA,CAAA,CAAA,CAAA,EAAA,CAAA;uEAAjB,iBAAiB,EAAA,OAAA,EAAjB,iBAAiB,CAAA,IAAA,EAAA,UAAA,EADJ,MAAM,EAAA,CAAA,CAAA;;4EACnB,iBAAiB,EAAA,CAAA;kBAD7B,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAA;;;;ACPlC;;AAEG;;ACFH;;AAEG;;;;"}
|
package/fesm2020/tolgee-ngx.mjs
CHANGED
|
@@ -1,23 +1,15 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { InjectionToken, Injectable, Inject, Pipe, Component, Input, APP_INITIALIZER, NgModule } from '@angular/core';
|
|
3
3
|
import { Observable } from 'rxjs';
|
|
4
|
-
import { getTranslateProps
|
|
4
|
+
import { getTranslateProps } from '@tolgee/web';
|
|
5
5
|
export * from '@tolgee/web';
|
|
6
6
|
|
|
7
7
|
const TOLGEE_INSTANCE = new InjectionToken('tolgee.instance');
|
|
8
8
|
|
|
9
9
|
class TranslateService {
|
|
10
|
-
constructor(_tolgee) {
|
|
10
|
+
constructor(_tolgee, _ngZone) {
|
|
11
11
|
this._tolgee = _tolgee;
|
|
12
|
-
|
|
13
|
-
* Instantly returns translated value. May return undefined or outdated value.
|
|
14
|
-
* Use only when you cannot use translate.
|
|
15
|
-
*/
|
|
16
|
-
this.instant = (...args) => {
|
|
17
|
-
// @ts-ignore
|
|
18
|
-
const params = getTranslateProps(...args);
|
|
19
|
-
return this.tolgee.t(params);
|
|
20
|
-
};
|
|
12
|
+
this._ngZone = _ngZone;
|
|
21
13
|
/**
|
|
22
14
|
* Returns translation asynchronously, this method always return
|
|
23
15
|
*/
|
|
@@ -42,29 +34,33 @@ class TranslateService {
|
|
|
42
34
|
};
|
|
43
35
|
});
|
|
44
36
|
};
|
|
37
|
+
/**
|
|
38
|
+
* Instantly returns translated value. May return undefined or outdated value.
|
|
39
|
+
* Use only when you cannot use translate.
|
|
40
|
+
*/
|
|
41
|
+
this.instant = (...args) => {
|
|
42
|
+
// @ts-ignore
|
|
43
|
+
const params = getTranslateProps(...args);
|
|
44
|
+
return this.tolgee.t(params);
|
|
45
|
+
};
|
|
45
46
|
}
|
|
46
47
|
get tolgee() {
|
|
47
48
|
return this._tolgee;
|
|
48
49
|
}
|
|
49
50
|
/**
|
|
50
|
-
* Starts Tolgee if not started
|
|
51
|
+
* Starts Tolgee if not started.
|
|
52
|
+
*
|
|
53
|
+
* The Tolgee is run outside NgZone. The triggered events, doesn't
|
|
54
|
+
* trigger the change detection, when listening directly via Tolgee.on.
|
|
55
|
+
*
|
|
56
|
+
* However, all the emitting methods (on, translate, languageAsync)
|
|
57
|
+
* in this class are emitting back in Angular's NgZone,
|
|
58
|
+
* so the change detection works fine.
|
|
51
59
|
*/
|
|
52
60
|
async start() {
|
|
53
|
-
if (!this.
|
|
54
|
-
|
|
61
|
+
if (!this.isSSR()) {
|
|
62
|
+
await this.runIfNotRunning();
|
|
55
63
|
}
|
|
56
|
-
await this.runPromise;
|
|
57
|
-
}
|
|
58
|
-
ngOnDestroy() {
|
|
59
|
-
this.tolgee.stop();
|
|
60
|
-
}
|
|
61
|
-
on(event) {
|
|
62
|
-
return new Observable((subscriber) => {
|
|
63
|
-
const subscription = this.tolgee.on(event, (value) => {
|
|
64
|
-
subscriber.next(value);
|
|
65
|
-
});
|
|
66
|
-
return () => subscription.unsubscribe();
|
|
67
|
-
});
|
|
68
64
|
}
|
|
69
65
|
/**
|
|
70
66
|
* Returns current language
|
|
@@ -94,8 +90,40 @@ class TranslateService {
|
|
|
94
90
|
changeLanguage(lang) {
|
|
95
91
|
return this.tolgee.changeLanguage(lang);
|
|
96
92
|
}
|
|
93
|
+
/**
|
|
94
|
+
* Returns observable emitting when specified event is triggered.
|
|
95
|
+
*
|
|
96
|
+
* It's a wrapper of Tolgee.on method. The emmit is triggered inside ngZone,
|
|
97
|
+
* so change detection should work properly.
|
|
98
|
+
*
|
|
99
|
+
* @param event the event to listen
|
|
100
|
+
*/
|
|
101
|
+
on(event) {
|
|
102
|
+
return new Observable((subscriber) => {
|
|
103
|
+
const subscription = this.tolgee.on(event, (value) => {
|
|
104
|
+
this._ngZone.run(() => {
|
|
105
|
+
subscriber.next(value);
|
|
106
|
+
});
|
|
107
|
+
});
|
|
108
|
+
return () => subscription.unsubscribe();
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
ngOnDestroy() {
|
|
112
|
+
this.tolgee.stop();
|
|
113
|
+
}
|
|
114
|
+
async runIfNotRunning() {
|
|
115
|
+
if (!this.runPromise) {
|
|
116
|
+
this.runPromise = this._ngZone.runOutsideAngular(() => {
|
|
117
|
+
return this.tolgee.run();
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
await this.runPromise;
|
|
121
|
+
}
|
|
122
|
+
isSSR() {
|
|
123
|
+
return typeof window === 'undefined';
|
|
124
|
+
}
|
|
97
125
|
}
|
|
98
|
-
TranslateService.ɵfac = function TranslateService_Factory(t) { return new (t || TranslateService)(i0.ɵɵinject(TOLGEE_INSTANCE)); };
|
|
126
|
+
TranslateService.ɵfac = function TranslateService_Factory(t) { return new (t || TranslateService)(i0.ɵɵinject(TOLGEE_INSTANCE), i0.ɵɵinject(i0.NgZone)); };
|
|
99
127
|
TranslateService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: TranslateService, factory: TranslateService.ɵfac, providedIn: 'root' });
|
|
100
128
|
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TranslateService, [{
|
|
101
129
|
type: Injectable,
|
|
@@ -103,7 +131,7 @@ TranslateService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: Transla
|
|
|
103
131
|
}], function () { return [{ type: undefined, decorators: [{
|
|
104
132
|
type: Inject,
|
|
105
133
|
args: [TOLGEE_INSTANCE]
|
|
106
|
-
}] }]; }, null); })();
|
|
134
|
+
}] }, { type: i0.NgZone }]; }, null); })();
|
|
107
135
|
|
|
108
136
|
class TranslatePipe {
|
|
109
137
|
constructor(translateService) {
|
|
@@ -241,11 +269,6 @@ TComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: TComponent, sele
|
|
|
241
269
|
type: Input
|
|
242
270
|
}] }); })();
|
|
243
271
|
|
|
244
|
-
const NgxPlugin = () => (tolgee) => {
|
|
245
|
-
tolgee.addPlugin(DevTools());
|
|
246
|
-
return tolgee;
|
|
247
|
-
};
|
|
248
|
-
|
|
249
272
|
class LoaderComponent {
|
|
250
273
|
}
|
|
251
274
|
LoaderComponent.ɵfac = function LoaderComponent_Factory(t) { return new (t || LoaderComponent)(); };
|
|
@@ -330,5 +353,5 @@ NamespaceResolver.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: Namesp
|
|
|
330
353
|
* Generated bundle index. Do not edit.
|
|
331
354
|
*/
|
|
332
355
|
|
|
333
|
-
export { NamespaceResolver,
|
|
356
|
+
export { NamespaceResolver, NgxTolgeeModule, TComponent, TOLGEE_INSTANCE, TranslatePipe, TranslateService };
|
|
334
357
|
//# sourceMappingURL=tolgee-ngx.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tolgee-ngx.mjs","sources":["../../../projects/ngx-tolgee/src/lib/tolgee-instance-token.ts","../../../projects/ngx-tolgee/src/lib/translate.service.ts","../../../projects/ngx-tolgee/src/lib/translate.pipe.ts","../../../projects/ngx-tolgee/src/lib/t.component.ts","../../../projects/ngx-tolgee/src/lib/NgxPlugin.ts","../../../projects/ngx-tolgee/src/lib/loader.component.ts","../../../projects/ngx-tolgee/src/lib/ngx-tolgee.module.ts","../../../projects/ngx-tolgee/src/lib/namespace.resolver.ts","../../../projects/ngx-tolgee/src/public-api.ts","../../../projects/ngx-tolgee/src/tolgee-ngx.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { TolgeeInstance } from '@tolgee/web';\n\nexport const TOLGEE_INSTANCE = new InjectionToken<TolgeeInstance>(\n 'tolgee.instance'\n);\n","import { Inject, Injectable, OnDestroy } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport {\n DefaultParamType,\n EventType,\n getTranslateProps,\n ListenerEvent,\n TFnType,\n TolgeeInstance,\n} from '@tolgee/web';\nimport { TOLGEE_INSTANCE } from './tolgee-instance-token';\n\n@Injectable({ providedIn: 'root' })\nexport class TranslateService implements OnDestroy {\n private runPromise: Promise<void>;\n\n constructor(@Inject(TOLGEE_INSTANCE) private _tolgee: TolgeeInstance) {}\n\n get tolgee() {\n return this._tolgee;\n }\n\n /**\n * Starts Tolgee if not started and subscribes for languageChange and translationChange events\n */\n public async start(): Promise<void> {\n if (!this.runPromise) {\n this.runPromise = this.tolgee.run();\n }\n await this.runPromise;\n }\n\n ngOnDestroy(): void {\n this.tolgee.stop();\n }\n\n on<Event extends keyof EventType>(event: Event) {\n return new Observable<ListenerEvent<EventType[Event]>>(\n (subscriber) => {\n const subscription = this.tolgee.on(event, (value) => {\n subscriber.next(value as any);\n });\n return () => subscription.unsubscribe();\n }\n );\n }\n\n /**\n * Returns current language\n */\n get language(): string {\n return this.tolgee.getLanguage();\n }\n\n /**\n * Returns an observable emitting current language.\n * It instantly emits current language\n */\n get languageAsync(): Observable<string> {\n return new Observable((subscriber) => {\n subscriber.next(this.tolgee.getLanguage());\n const subscription = this.on('language').subscribe((value) => {\n subscriber.next(value.value);\n });\n\n return () => subscription.unsubscribe();\n });\n }\n\n /**\n * Changes the current language\n * @param lang The new current language (e.g. en, en-US)\n * @return Promise<void> Resolves when translations\n * for given language are loaded\n */\n public changeLanguage(lang: string) {\n return this.tolgee.changeLanguage(lang);\n }\n\n /**\n * Instantly returns translated value. May return undefined or outdated value.\n * Use only when you cannot use translate.\n */\n public readonly instant: TFnType = (...args) => {\n // @ts-ignore\n const params = getTranslateProps(...args);\n return this.tolgee.t(params);\n };\n\n /**\n * Returns translation asynchronously, this method always return\n */\n readonly translate: TFnType<DefaultParamType, Observable<string>> = (\n ...args\n ) => {\n // @ts-ignore\n const params = getTranslateProps(...args);\n return new Observable<string>((subscriber) => {\n const loadPromise = this.tolgee.addActiveNs(params.ns);\n const translate = async () => {\n await loadPromise;\n const translated = this.tolgee.t(params);\n subscriber.next(translated);\n };\n\n // noinspection JSIgnoredPromiseFromCall\n translate();\n\n const subscription = this.tolgee\n .onNsUpdate(translate)\n .subscribeNs(params.ns);\n\n return () => {\n this.tolgee.removeActiveNs(params.ns);\n subscription.unsubscribe();\n };\n });\n };\n}\n","import { OnDestroy, Pipe, PipeTransform } from '@angular/core';\nimport { TranslateService } from './translate.service';\nimport { Subscription } from 'rxjs';\nimport { getTranslateProps, TFnType, TranslateProps } from '@tolgee/web';\n\n@Pipe({\n name: 'translate',\n pure: false,\n})\nexport class TranslatePipe implements PipeTransform, OnDestroy {\n private value = '';\n private previousHash: string;\n\n private subscription: Subscription;\n\n constructor(protected translateService: TranslateService) {}\n\n ngOnDestroy(): void {\n this.unsubscribe();\n }\n\n readonly transform: TFnType<string> = (...args) => {\n // @ts-ignore\n const params = getTranslateProps(...args);\n const { key } = params;\n\n if (!key || key.length === 0) {\n return key;\n }\n\n const newHash = this.hash(params);\n if (this.previousHash === newHash) {\n return this.value;\n }\n\n this.previousHash = newHash;\n\n this.translate(params);\n\n return this.value;\n };\n\n private hash(props: TranslateProps) {\n return JSON.stringify([props, this.translateService.tolgee.getLanguage()]);\n }\n\n private unsubscribe() {\n this.subscription?.unsubscribe();\n }\n\n private translate(props: TranslateProps) {\n this.value = this.translateService.instant({ ...props, orEmpty: true });\n this.subscribe(props);\n }\n\n private subscribe(props: TranslateProps) {\n this.unsubscribe();\n return this.translateService.translate(props).subscribe((r) => {\n this.value = r;\n });\n }\n}\n","import {\n Component,\n ElementRef,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { TranslateService } from './translate.service';\nimport { TranslateParams } from '@tolgee/web';\n\n@Component({\n selector: '[t]',\n template: ``,\n})\nexport class TComponent implements OnInit, OnDestroy, OnChanges {\n @Input() key: string;\n @Input() ns: string;\n @Input() params?: TranslateParams<any>;\n @Input() default?: string;\n @Input() noWrap?: boolean = false;\n\n /**\n * When true, innerHTML property of element is set.\n * Use only when you're sure the HTML is sanitized.\n */\n @Input() isHtml?: boolean = false;\n\n private subscription: Subscription;\n private initialized: boolean;\n\n constructor(\n private ref: ElementRef,\n private translateService: TranslateService\n ) {}\n\n ngOnInit(): void {\n // noinspection JSIgnoredPromiseFromCall\n this.subscribe();\n this.renderInstantValue();\n }\n\n ngOnChanges(): void {\n // noinspection JSIgnoredPromiseFromCall\n this.subscribe();\n }\n\n ngOnDestroy(): void {\n this.unsubscribe();\n }\n\n private renderInstantValue() {\n // get initial value first\n const translated = this.translateService.instant({\n ...this.getTranslateProps(),\n orEmpty: true,\n });\n this.setElementContent(translated);\n }\n\n private getTranslateProps() {\n return {\n key: this.key,\n ns: this.ns,\n params: this.params,\n defaultValue: this.default,\n noWrap: this.noWrap,\n };\n }\n\n private unsubscribe() {\n this.subscription?.unsubscribe();\n }\n\n private async subscribe() {\n this.unsubscribe();\n this.subscription = this.translateService\n .translate(this.getTranslateProps())\n .subscribe((translated) => {\n this.setElementContent(translated);\n this.initialized = true;\n });\n }\n\n private setElementContent(translated: string) {\n if (this.isHtml) {\n this.getElement().innerHTML = translated;\n return;\n }\n this.getElement().textContent = translated;\n }\n\n private getElement() {\n return this.ref.nativeElement as HTMLElement;\n }\n}\n","import { TolgeePlugin, DevTools } from '@tolgee/web';\n\nexport const NgxPlugin = (): TolgeePlugin => (tolgee) => {\n tolgee.addPlugin(DevTools());\n return tolgee;\n};\n","import { Component, Input } from '@angular/core';\n\n@Component({\n template: `\n <div class=\"loader-template\" [innerHTML]=\"html\"></div>\n `,\n})\nexport class LoaderComponent {\n @Input() html: string | undefined;\n}\n","import { APP_INITIALIZER, NgModule } from '@angular/core';\nimport { TranslatePipe } from './translate.pipe';\nimport { TComponent } from './t.component';\nimport { TranslateService } from './translate.service';\nimport { LoaderComponent } from \"./loader.component\";\n\n@NgModule({\n declarations: [TranslatePipe, TComponent, LoaderComponent],\n exports: [TranslatePipe, TComponent],\n providers: [\n {\n provide: APP_INITIALIZER,\n useFactory: (service: TranslateService) => {\n return async () => await service.start();\n },\n deps: [TranslateService],\n multi: true,\n },\n ],\n})\nexport class NgxTolgeeModule {}\n","import {\n ActivatedRouteSnapshot,\n Resolve,\n} from '@angular/router';\nimport { TranslateService } from './translate.service';\nimport { Injectable } from '@angular/core';\n\n@Injectable({ providedIn: 'root' })\nexport class NamespaceResolver implements Resolve<void> {\n constructor(public service: TranslateService) {}\n\n async resolve(\n route: ActivatedRouteSnapshot,\n ): Promise<void> {\n const ns = this.getNamespace(route);\n await this.service.tolgee.addActiveNs(ns, true)\n }\n\n private getNamespace(route: ActivatedRouteSnapshot) {\n const namespace = route?.data?.tolgeeNamespace;\n if (namespace === undefined) {\n console.warn(\n 'No namespace provided. Please add tolgeeNamespace to your route data. \\n' +\n 'If you really want to lazy load default namespace set tolgeeNamespace to empty string'\n );\n }\n return namespace;\n }\n}\n","/*\n * Public API Surface of ngx-tolgee\n */\nexport * from './lib/translate.service';\nexport * from './lib/translate.pipe';\nexport * from './lib/t.component';\nexport * from './lib/NgxPlugin';\n\nexport * from './lib/ngx-tolgee.module';\nexport * from './lib/tolgee-instance-token';\n\nexport * from '@tolgee/web';\nexport * from './lib/namespace.resolver';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.TranslateService"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tolgee-ngx.mjs","sources":["../../../projects/ngx-tolgee/src/lib/tolgee-instance-token.ts","../../../projects/ngx-tolgee/src/lib/translate.service.ts","../../../projects/ngx-tolgee/src/lib/translate.pipe.ts","../../../projects/ngx-tolgee/src/lib/t.component.ts","../../../projects/ngx-tolgee/src/lib/loader.component.ts","../../../projects/ngx-tolgee/src/lib/ngx-tolgee.module.ts","../../../projects/ngx-tolgee/src/lib/namespace.resolver.ts","../../../projects/ngx-tolgee/src/public-api.ts","../../../projects/ngx-tolgee/src/tolgee-ngx.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { TolgeeInstance } from '@tolgee/web';\n\nexport const TOLGEE_INSTANCE = new InjectionToken<TolgeeInstance>(\n 'tolgee.instance'\n);\n","import { Inject, Injectable, OnDestroy, NgZone } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport {\n DefaultParamType,\n EventType,\n getTranslateProps,\n ListenerEvent,\n TFnType,\n TolgeeInstance,\n} from '@tolgee/web';\nimport { TOLGEE_INSTANCE } from './tolgee-instance-token';\n\n@Injectable({ providedIn: 'root' })\nexport class TranslateService implements OnDestroy {\n private runPromise: Promise<void>;\n\n constructor(\n @Inject(TOLGEE_INSTANCE) private _tolgee: TolgeeInstance,\n private _ngZone: NgZone\n ) {}\n\n get tolgee() {\n return this._tolgee;\n }\n\n /**\n * Starts Tolgee if not started.\n *\n * The Tolgee is run outside NgZone. The triggered events, doesn't\n * trigger the change detection, when listening directly via Tolgee.on.\n *\n * However, all the emitting methods (on, translate, languageAsync)\n * in this class are emitting back in Angular's NgZone,\n * so the change detection works fine.\n */\n public async start(): Promise<void> {\n if (!this.isSSR()) {\n await this.runIfNotRunning();\n }\n }\n\n /**\n * Returns translation asynchronously, this method always return\n */\n readonly translate: TFnType<DefaultParamType, Observable<string>> = (\n ...args\n ) => {\n // @ts-ignore\n const params = getTranslateProps(...args);\n return new Observable<string>((subscriber) => {\n const loadPromise = this.tolgee.addActiveNs(params.ns);\n const translate = async () => {\n await loadPromise;\n const translated = this.tolgee.t(params);\n subscriber.next(translated);\n };\n\n // noinspection JSIgnoredPromiseFromCall\n translate();\n\n const subscription = this.tolgee\n .onNsUpdate(translate)\n .subscribeNs(params.ns);\n\n return () => {\n this.tolgee.removeActiveNs(params.ns);\n subscription.unsubscribe();\n };\n });\n };\n\n /**\n * Instantly returns translated value. May return undefined or outdated value.\n * Use only when you cannot use translate.\n */\n public readonly instant: TFnType = (...args) => {\n // @ts-ignore\n const params = getTranslateProps(...args);\n return this.tolgee.t(params);\n };\n\n /**\n * Returns current language\n */\n get language(): string {\n return this.tolgee.getLanguage();\n }\n\n /**\n * Returns an observable emitting current language.\n * It instantly emits current language\n */\n get languageAsync(): Observable<string> {\n return new Observable((subscriber) => {\n subscriber.next(this.tolgee.getLanguage());\n const subscription = this.on('language').subscribe((value) => {\n subscriber.next(value.value);\n });\n\n return () => subscription.unsubscribe();\n });\n }\n\n /**\n * Changes the current language\n * @param lang The new current language (e.g. en, en-US)\n * @return Promise<void> Resolves when translations\n * for given language are loaded\n */\n public changeLanguage(lang: string) {\n return this.tolgee.changeLanguage(lang);\n }\n\n /**\n * Returns observable emitting when specified event is triggered.\n *\n * It's a wrapper of Tolgee.on method. The emmit is triggered inside ngZone,\n * so change detection should work properly.\n *\n * @param event the event to listen\n */\n on<Event extends keyof EventType>(event: Event) {\n return new Observable<ListenerEvent<EventType[Event]>>((subscriber) => {\n const subscription = this.tolgee.on(event, (value) => {\n this._ngZone.run(() => {\n subscriber.next(value as any);\n });\n });\n return () => subscription.unsubscribe();\n });\n }\n\n ngOnDestroy(): void {\n this.tolgee.stop();\n }\n\n private async runIfNotRunning() {\n if (!this.runPromise) {\n this.runPromise = this._ngZone.runOutsideAngular(() => {\n return this.tolgee.run();\n });\n }\n await this.runPromise;\n }\n\n private isSSR() {\n return typeof window === 'undefined';\n }\n}\n","import { OnDestroy, Pipe, PipeTransform } from '@angular/core';\nimport { TranslateService } from './translate.service';\nimport { Subscription } from 'rxjs';\nimport { getTranslateProps, TFnType, TranslateProps } from '@tolgee/web';\n\n@Pipe({\n name: 'translate',\n pure: false,\n})\nexport class TranslatePipe implements PipeTransform, OnDestroy {\n private value = '';\n private previousHash: string;\n\n private subscription: Subscription;\n\n constructor(protected translateService: TranslateService) {}\n\n ngOnDestroy(): void {\n this.unsubscribe();\n }\n\n readonly transform: TFnType<string> = (...args) => {\n // @ts-ignore\n const params = getTranslateProps(...args);\n const { key } = params;\n\n if (!key || key.length === 0) {\n return key;\n }\n\n const newHash = this.hash(params);\n if (this.previousHash === newHash) {\n return this.value;\n }\n\n this.previousHash = newHash;\n\n this.translate(params);\n\n return this.value;\n };\n\n private hash(props: TranslateProps) {\n return JSON.stringify([props, this.translateService.tolgee.getLanguage()]);\n }\n\n private unsubscribe() {\n this.subscription?.unsubscribe();\n }\n\n private translate(props: TranslateProps) {\n this.value = this.translateService.instant({ ...props, orEmpty: true });\n this.subscribe(props);\n }\n\n private subscribe(props: TranslateProps) {\n this.unsubscribe();\n return this.translateService.translate(props).subscribe((r) => {\n this.value = r;\n });\n }\n}\n","import {\n Component,\n ElementRef,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { TranslateService } from './translate.service';\nimport { TranslateParams } from '@tolgee/web';\n\n@Component({\n selector: '[t]',\n template: ``,\n})\nexport class TComponent implements OnInit, OnDestroy, OnChanges {\n @Input() key: string;\n @Input() ns: string;\n @Input() params?: TranslateParams<any>;\n @Input() default?: string;\n @Input() noWrap?: boolean = false;\n\n /**\n * When true, innerHTML property of element is set.\n * Use only when you're sure the HTML is sanitized.\n */\n @Input() isHtml?: boolean = false;\n\n private subscription: Subscription;\n private initialized: boolean;\n\n constructor(\n private ref: ElementRef,\n private translateService: TranslateService\n ) {}\n\n ngOnInit(): void {\n // noinspection JSIgnoredPromiseFromCall\n this.subscribe();\n this.renderInstantValue();\n }\n\n ngOnChanges(): void {\n // noinspection JSIgnoredPromiseFromCall\n this.subscribe();\n }\n\n ngOnDestroy(): void {\n this.unsubscribe();\n }\n\n private renderInstantValue() {\n // get initial value first\n const translated = this.translateService.instant({\n ...this.getTranslateProps(),\n orEmpty: true,\n });\n this.setElementContent(translated);\n }\n\n private getTranslateProps() {\n return {\n key: this.key,\n ns: this.ns,\n params: this.params,\n defaultValue: this.default,\n noWrap: this.noWrap,\n };\n }\n\n private unsubscribe() {\n this.subscription?.unsubscribe();\n }\n\n private async subscribe() {\n this.unsubscribe();\n this.subscription = this.translateService\n .translate(this.getTranslateProps())\n .subscribe((translated) => {\n this.setElementContent(translated);\n this.initialized = true;\n });\n }\n\n private setElementContent(translated: string) {\n if (this.isHtml) {\n this.getElement().innerHTML = translated;\n return;\n }\n this.getElement().textContent = translated;\n }\n\n private getElement() {\n return this.ref.nativeElement as HTMLElement;\n }\n}\n","import { Component, Input } from '@angular/core';\n\n@Component({\n template: `\n <div class=\"loader-template\" [innerHTML]=\"html\"></div>\n `,\n})\nexport class LoaderComponent {\n @Input() html: string | undefined;\n}\n","import { APP_INITIALIZER, NgModule } from '@angular/core';\nimport { TranslatePipe } from './translate.pipe';\nimport { TComponent } from './t.component';\nimport { TranslateService } from './translate.service';\nimport { LoaderComponent } from \"./loader.component\";\n\n@NgModule({\n declarations: [TranslatePipe, TComponent, LoaderComponent],\n exports: [TranslatePipe, TComponent],\n providers: [\n {\n provide: APP_INITIALIZER,\n useFactory: (service: TranslateService) => {\n return async () => await service.start();\n },\n deps: [TranslateService],\n multi: true,\n },\n ],\n})\nexport class NgxTolgeeModule {}\n","import {\n ActivatedRouteSnapshot,\n Resolve,\n} from '@angular/router';\nimport { TranslateService } from './translate.service';\nimport { Injectable } from '@angular/core';\n\n@Injectable({ providedIn: 'root' })\nexport class NamespaceResolver implements Resolve<void> {\n constructor(public service: TranslateService) {}\n\n async resolve(\n route: ActivatedRouteSnapshot,\n ): Promise<void> {\n const ns = this.getNamespace(route);\n await this.service.tolgee.addActiveNs(ns, true)\n }\n\n private getNamespace(route: ActivatedRouteSnapshot) {\n const namespace = route?.data?.tolgeeNamespace;\n if (namespace === undefined) {\n console.warn(\n 'No namespace provided. Please add tolgeeNamespace to your route data. \\n' +\n 'If you really want to lazy load default namespace set tolgeeNamespace to empty string'\n );\n }\n return namespace;\n }\n}\n","/*\n * Public API Surface of ngx-tolgee\n */\nexport * from './lib/translate.service';\nexport * from './lib/translate.pipe';\nexport * from './lib/t.component';\n\nexport * from './lib/ngx-tolgee.module';\nexport * from './lib/tolgee-instance-token';\n\nexport * from '@tolgee/web';\nexport * from './lib/namespace.resolver';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.TranslateService"],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@ import { InjectionToken } from '@angular/core';
|
|
|
2
2
|
export declare const TOLGEE_INSTANCE: InjectionToken<Readonly<{
|
|
3
3
|
on: import("@tolgee/web").TolgeeOn<keyof import("@tolgee/web").EventType>;
|
|
4
4
|
onNsUpdate: (handler: import("@tolgee/web").Listener<undefined>) => import("@tolgee/web").SubscriptionSelective;
|
|
5
|
+
setEmmiterActive: (active: boolean) => void;
|
|
5
6
|
getLanguage: () => string;
|
|
6
7
|
getPendingLanguage: () => string;
|
|
7
8
|
changeLanguage: (language: string) => Promise<void>;
|
|
@@ -40,8 +41,9 @@ export declare const TOLGEE_INSTANCE: InjectionToken<Readonly<{
|
|
|
40
41
|
fallbackNs?: import("@tolgee/web").FallbackGeneral;
|
|
41
42
|
defaultNs: string;
|
|
42
43
|
staticData?: import("@tolgee/web").TolgeeStaticData;
|
|
43
|
-
observerOptions: import("@tolgee/web").ObserverOptionsInternal;
|
|
44
44
|
observerType: "text" | "invisible";
|
|
45
|
+
observerOptions: import("@tolgee/web").ObserverOptionsInternal;
|
|
46
|
+
onFormatError: import("@tolgee/web").OnFormatError;
|
|
45
47
|
};
|
|
46
48
|
isDev: () => boolean;
|
|
47
49
|
wrap: (params: import("@tolgee/web").WrapperWrapProps) => string;
|
|
@@ -1,14 +1,16 @@
|
|
|
1
|
-
import { OnDestroy } from '@angular/core';
|
|
1
|
+
import { OnDestroy, NgZone } from '@angular/core';
|
|
2
2
|
import { Observable } from 'rxjs';
|
|
3
3
|
import { DefaultParamType, EventType, ListenerEvent, TFnType, TolgeeInstance } from '@tolgee/web';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
export declare class TranslateService implements OnDestroy {
|
|
6
6
|
private _tolgee;
|
|
7
|
+
private _ngZone;
|
|
7
8
|
private runPromise;
|
|
8
|
-
constructor(_tolgee: TolgeeInstance);
|
|
9
|
+
constructor(_tolgee: TolgeeInstance, _ngZone: NgZone);
|
|
9
10
|
get tolgee(): Readonly<{
|
|
10
11
|
on: import("@tolgee/web").TolgeeOn<keyof EventType>;
|
|
11
12
|
onNsUpdate: (handler: import("@tolgee/web").Listener<undefined>) => import("@tolgee/web").SubscriptionSelective;
|
|
13
|
+
setEmmiterActive: (active: boolean) => void;
|
|
12
14
|
getLanguage: () => string;
|
|
13
15
|
getPendingLanguage: () => string;
|
|
14
16
|
changeLanguage: (language: string) => Promise<void>;
|
|
@@ -16,7 +18,13 @@ export declare class TranslateService implements OnDestroy {
|
|
|
16
18
|
revert: () => void;
|
|
17
19
|
};
|
|
18
20
|
addActiveNs: (ns: import("@tolgee/web").NsFallback, forget?: boolean) => Promise<void>;
|
|
19
|
-
|
|
21
|
+
/**
|
|
22
|
+
* Instantly returns translated value. May return undefined or outdated value.
|
|
23
|
+
* Use only when you cannot use translate.
|
|
24
|
+
*/
|
|
25
|
+
removeActiveNs: (ns: import("@tolgee/web").NsFallback) => void; /**
|
|
26
|
+
* Returns current language
|
|
27
|
+
*/
|
|
20
28
|
loadRecords: (descriptors: import("@tolgee/web").CacheDescriptor[]) => Promise<import("@tolgee/web").TranslationsFlat[]>;
|
|
21
29
|
loadRecord: (descriptor: import("@tolgee/web").CacheDescriptor) => Promise<import("@tolgee/web").TranslationsFlat>;
|
|
22
30
|
addStaticData: (data: import("@tolgee/web").TolgeeStaticData) => void;
|
|
@@ -47,8 +55,9 @@ export declare class TranslateService implements OnDestroy {
|
|
|
47
55
|
fallbackNs?: import("@tolgee/web").FallbackGeneral;
|
|
48
56
|
defaultNs: string;
|
|
49
57
|
staticData?: import("@tolgee/web").TolgeeStaticData;
|
|
50
|
-
observerOptions: import("@tolgee/web").ObserverOptionsInternal;
|
|
51
58
|
observerType: "text" | "invisible";
|
|
59
|
+
observerOptions: import("@tolgee/web").ObserverOptionsInternal;
|
|
60
|
+
onFormatError: import("@tolgee/web").OnFormatError;
|
|
52
61
|
};
|
|
53
62
|
isDev: () => boolean;
|
|
54
63
|
wrap: (params: import("@tolgee/web").WrapperWrapProps) => string;
|
|
@@ -62,11 +71,25 @@ export declare class TranslateService implements OnDestroy {
|
|
|
62
71
|
updateOptions(options?: import("@tolgee/web").TolgeeOptions): void;
|
|
63
72
|
}>;
|
|
64
73
|
/**
|
|
65
|
-
* Starts Tolgee if not started
|
|
74
|
+
* Starts Tolgee if not started.
|
|
75
|
+
*
|
|
76
|
+
* The Tolgee is run outside NgZone. The triggered events, doesn't
|
|
77
|
+
* trigger the change detection, when listening directly via Tolgee.on.
|
|
78
|
+
*
|
|
79
|
+
* However, all the emitting methods (on, translate, languageAsync)
|
|
80
|
+
* in this class are emitting back in Angular's NgZone,
|
|
81
|
+
* so the change detection works fine.
|
|
66
82
|
*/
|
|
67
83
|
start(): Promise<void>;
|
|
68
|
-
|
|
69
|
-
|
|
84
|
+
/**
|
|
85
|
+
* Returns translation asynchronously, this method always return
|
|
86
|
+
*/
|
|
87
|
+
readonly translate: TFnType<DefaultParamType, Observable<string>>;
|
|
88
|
+
/**
|
|
89
|
+
* Instantly returns translated value. May return undefined or outdated value.
|
|
90
|
+
* Use only when you cannot use translate.
|
|
91
|
+
*/
|
|
92
|
+
readonly instant: TFnType;
|
|
70
93
|
/**
|
|
71
94
|
* Returns current language
|
|
72
95
|
*/
|
|
@@ -84,14 +107,17 @@ export declare class TranslateService implements OnDestroy {
|
|
|
84
107
|
*/
|
|
85
108
|
changeLanguage(lang: string): Promise<void>;
|
|
86
109
|
/**
|
|
87
|
-
*
|
|
88
|
-
*
|
|
110
|
+
* Returns observable emitting when specified event is triggered.
|
|
111
|
+
*
|
|
112
|
+
* It's a wrapper of Tolgee.on method. The emmit is triggered inside ngZone,
|
|
113
|
+
* so change detection should work properly.
|
|
114
|
+
*
|
|
115
|
+
* @param event the event to listen
|
|
89
116
|
*/
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
readonly translate: TFnType<DefaultParamType, Observable<string>>;
|
|
117
|
+
on<Event extends keyof EventType>(event: Event): Observable<ListenerEvent<EventType[Event]>>;
|
|
118
|
+
ngOnDestroy(): void;
|
|
119
|
+
private runIfNotRunning;
|
|
120
|
+
private isSSR;
|
|
95
121
|
static ɵfac: i0.ɵɵFactoryDeclaration<TranslateService, never>;
|
|
96
122
|
static ɵprov: i0.ɵɵInjectableDeclaration<TranslateService>;
|
|
97
123
|
}
|
package/package.json
CHANGED
|
@@ -6,10 +6,10 @@
|
|
|
6
6
|
"url": "https://github.com/tolgee/tolgee-js"
|
|
7
7
|
},
|
|
8
8
|
"dependencies": {
|
|
9
|
-
"@tolgee/web": "
|
|
9
|
+
"@tolgee/web": "^5.0.0-alpha.2",
|
|
10
10
|
"tslib": "^2.3.0"
|
|
11
11
|
},
|
|
12
|
-
"version": "
|
|
12
|
+
"version": "5.0.0-alpha.2",
|
|
13
13
|
"publishConfig": {
|
|
14
14
|
"directory": "../../dist/ngx-tolgee",
|
|
15
15
|
"access": "public"
|
package/public-api.d.ts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
export * from './lib/translate.service';
|
|
2
2
|
export * from './lib/translate.pipe';
|
|
3
3
|
export * from './lib/t.component';
|
|
4
|
-
export * from './lib/NgxPlugin';
|
|
5
4
|
export * from './lib/ngx-tolgee.module';
|
|
6
5
|
export * from './lib/tolgee-instance-token';
|
|
7
6
|
export * from '@tolgee/web';
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import { DevTools } from '@tolgee/web';
|
|
2
|
-
export const NgxPlugin = () => (tolgee) => {
|
|
3
|
-
tolgee.addPlugin(DevTools());
|
|
4
|
-
return tolgee;
|
|
5
|
-
};
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTmd4UGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXRvbGdlZS9zcmMvbGliL05neFBsdWdpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWdCLFFBQVEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUVyRCxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsR0FBaUIsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7SUFDdEQsTUFBTSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQzdCLE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRvbGdlZVBsdWdpbiwgRGV2VG9vbHMgfSBmcm9tICdAdG9sZ2VlL3dlYic7XG5cbmV4cG9ydCBjb25zdCBOZ3hQbHVnaW4gPSAoKTogVG9sZ2VlUGx1Z2luID0+ICh0b2xnZWUpID0+IHtcbiAgdG9sZ2VlLmFkZFBsdWdpbihEZXZUb29scygpKTtcbiAgcmV0dXJuIHRvbGdlZTtcbn07XG4iXX0=
|
package/lib/NgxPlugin.d.ts
DELETED