@molecule/app-angular 1.0.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/LICENSE +115 -0
- package/dist/i18n-reactive.d.ts +41 -0
- package/dist/i18n-reactive.d.ts.map +1 -0
- package/dist/i18n-reactive.js +46 -0
- package/dist/i18n-reactive.js.map +1 -0
- package/dist/index.d.ts +84 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +84 -0
- package/dist/index.js.map +1 -0
- package/dist/providers.d.ts +96 -0
- package/dist/providers.d.ts.map +1 -0
- package/dist/providers.js +144 -0
- package/dist/providers.js.map +1 -0
- package/dist/services/async-state.service.d.ts +50 -0
- package/dist/services/async-state.service.d.ts.map +1 -0
- package/dist/services/async-state.service.js +109 -0
- package/dist/services/async-state.service.js.map +1 -0
- package/dist/services/auth.service.d.ts +105 -0
- package/dist/services/auth.service.d.ts.map +1 -0
- package/dist/services/auth.service.js +124 -0
- package/dist/services/auth.service.js.map +1 -0
- package/dist/services/capacitor-app.service.d.ts +46 -0
- package/dist/services/capacitor-app.service.d.ts.map +1 -0
- package/dist/services/capacitor-app.service.js +53 -0
- package/dist/services/capacitor-app.service.js.map +1 -0
- package/dist/services/change-password.service.d.ts +37 -0
- package/dist/services/change-password.service.d.ts.map +1 -0
- package/dist/services/change-password.service.js +34 -0
- package/dist/services/change-password.service.js.map +1 -0
- package/dist/services/device.service.d.ts +35 -0
- package/dist/services/device.service.d.ts.map +1 -0
- package/dist/services/device.service.js +29 -0
- package/dist/services/device.service.js.map +1 -0
- package/dist/services/forms.service.d.ts +237 -0
- package/dist/services/forms.service.d.ts.map +1 -0
- package/dist/services/forms.service.js +280 -0
- package/dist/services/forms.service.js.map +1 -0
- package/dist/services/http.service.d.ts +118 -0
- package/dist/services/http.service.d.ts.map +1 -0
- package/dist/services/http.service.js +171 -0
- package/dist/services/http.service.js.map +1 -0
- package/dist/services/i18n.service.d.ts +111 -0
- package/dist/services/i18n.service.d.ts.map +1 -0
- package/dist/services/i18n.service.js +135 -0
- package/dist/services/i18n.service.js.map +1 -0
- package/dist/services/index.d.ts +27 -0
- package/dist/services/index.d.ts.map +1 -0
- package/dist/services/index.js +27 -0
- package/dist/services/index.js.map +1 -0
- package/dist/services/logger.service.d.ts +79 -0
- package/dist/services/logger.service.d.ts.map +1 -0
- package/dist/services/logger.service.js +110 -0
- package/dist/services/logger.service.js.map +1 -0
- package/dist/services/login.service.d.ts +37 -0
- package/dist/services/login.service.d.ts.map +1 -0
- package/dist/services/login.service.js +34 -0
- package/dist/services/login.service.js.map +1 -0
- package/dist/services/oauth.service.d.ts +110 -0
- package/dist/services/oauth.service.d.ts.map +1 -0
- package/dist/services/oauth.service.js +214 -0
- package/dist/services/oauth.service.js.map +1 -0
- package/dist/services/password-reset.service.d.ts +41 -0
- package/dist/services/password-reset.service.d.ts.map +1 -0
- package/dist/services/password-reset.service.js +45 -0
- package/dist/services/password-reset.service.js.map +1 -0
- package/dist/services/platform.service.d.ts +39 -0
- package/dist/services/platform.service.d.ts.map +1 -0
- package/dist/services/platform.service.js +33 -0
- package/dist/services/platform.service.js.map +1 -0
- package/dist/services/promise.service.d.ts +40 -0
- package/dist/services/promise.service.d.ts.map +1 -0
- package/dist/services/promise.service.js +85 -0
- package/dist/services/promise.service.js.map +1 -0
- package/dist/services/push.service.d.ts +45 -0
- package/dist/services/push.service.d.ts.map +1 -0
- package/dist/services/push.service.js +64 -0
- package/dist/services/push.service.js.map +1 -0
- package/dist/services/router.service.d.ts +114 -0
- package/dist/services/router.service.d.ts.map +1 -0
- package/dist/services/router.service.js +142 -0
- package/dist/services/router.service.js.map +1 -0
- package/dist/services/signup.service.d.ts +37 -0
- package/dist/services/signup.service.d.ts.map +1 -0
- package/dist/services/signup.service.js +34 -0
- package/dist/services/signup.service.js.map +1 -0
- package/dist/services/state.service.d.ts +82 -0
- package/dist/services/state.service.d.ts.map +1 -0
- package/dist/services/state.service.js +122 -0
- package/dist/services/state.service.js.map +1 -0
- package/dist/services/storage.service.d.ts +111 -0
- package/dist/services/storage.service.d.ts.map +1 -0
- package/dist/services/storage.service.js +167 -0
- package/dist/services/storage.service.js.map +1 -0
- package/dist/services/theme.service.d.ts +89 -0
- package/dist/services/theme.service.d.ts.map +1 -0
- package/dist/services/theme.service.js +116 -0
- package/dist/services/theme.service.js.map +1 -0
- package/dist/services/version.service.d.ts +44 -0
- package/dist/services/version.service.d.ts.map +1 -0
- package/dist/services/version.service.js +63 -0
- package/dist/services/version.service.js.map +1 -0
- package/dist/tokens.d.ts +47 -0
- package/dist/tokens.d.ts.map +1 -0
- package/dist/tokens.js +39 -0
- package/dist/tokens.js.map +1 -0
- package/dist/types.d.ts +42 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +7 -0
- package/dist/types.js.map +1 -0
- package/package.json +61 -0
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Angular service for HTTP requests.
|
|
3
|
+
*
|
|
4
|
+
* @module
|
|
5
|
+
*/
|
|
6
|
+
import { Inject, Injectable } from '@angular/core';
|
|
7
|
+
import { BehaviorSubject, from } from 'rxjs';
|
|
8
|
+
import { catchError, map, tap } from 'rxjs/operators';
|
|
9
|
+
import { HTTP_CLIENT } from '../tokens.js';
|
|
10
|
+
import * as i0 from "@angular/core";
|
|
11
|
+
/**
|
|
12
|
+
* Angular service for HTTP requests.
|
|
13
|
+
*
|
|
14
|
+
* Wraps molecule HTTP client and returns RxJS observables.
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* ```typescript
|
|
18
|
+
* @Component({
|
|
19
|
+
* selector: 'app-users',
|
|
20
|
+
* template: `
|
|
21
|
+
* <div *ngIf="loading$ | async">Loading...</div>
|
|
22
|
+
* <div *ngIf="error$ | async as error">Error: {{ error.message }}</div>
|
|
23
|
+
* <ul *ngIf="users$ | async as users">
|
|
24
|
+
* <li *ngFor="let user of users">{{ user.name }}</li>
|
|
25
|
+
* </ul>
|
|
26
|
+
* `
|
|
27
|
+
* })
|
|
28
|
+
* export class UsersComponent implements OnInit {
|
|
29
|
+
* users$ = this.httpService.get<User[]>('/api/users')
|
|
30
|
+
*
|
|
31
|
+
* // Or with state management:
|
|
32
|
+
* private state = this.httpService.createState<User[]>()
|
|
33
|
+
* loading$ = this.state.pipe(map(s => s.loading))
|
|
34
|
+
* error$ = this.state.pipe(map(s => s.error))
|
|
35
|
+
* users$ = this.state.pipe(map(s => s.data))
|
|
36
|
+
*
|
|
37
|
+
* constructor(private httpService: MoleculeHttpService) {}
|
|
38
|
+
*
|
|
39
|
+
* ngOnInit() {
|
|
40
|
+
* this.httpService.getWithState('/api/users', this.state)
|
|
41
|
+
* }
|
|
42
|
+
* }
|
|
43
|
+
* ```
|
|
44
|
+
*/
|
|
45
|
+
/**
|
|
46
|
+
* Molecule Http Service class.
|
|
47
|
+
*/
|
|
48
|
+
export class MoleculeHttpService {
|
|
49
|
+
constructor(client) {
|
|
50
|
+
this.client = client;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Make a GET request.
|
|
54
|
+
*
|
|
55
|
+
* @param url - Request URL
|
|
56
|
+
* @param config - Request configuration
|
|
57
|
+
* @returns Observable of response data
|
|
58
|
+
*/
|
|
59
|
+
get(url, config) {
|
|
60
|
+
return from(this.client.get(url, config)).pipe(map((res) => res.data));
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Make a POST request.
|
|
64
|
+
*
|
|
65
|
+
* @param url - Request URL
|
|
66
|
+
* @param data - Request body
|
|
67
|
+
* @param config - Request configuration
|
|
68
|
+
* @returns Observable of response data
|
|
69
|
+
*/
|
|
70
|
+
post(url, data, config) {
|
|
71
|
+
return from(this.client.post(url, data, config)).pipe(map((res) => res.data));
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Make a PUT request.
|
|
75
|
+
*
|
|
76
|
+
* @param url - Request URL
|
|
77
|
+
* @param data - Request body
|
|
78
|
+
* @param config - Request configuration
|
|
79
|
+
* @returns Observable of response data
|
|
80
|
+
*/
|
|
81
|
+
put(url, data, config) {
|
|
82
|
+
return from(this.client.put(url, data, config)).pipe(map((res) => res.data));
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Make a PATCH request.
|
|
86
|
+
*
|
|
87
|
+
* @param url - Request URL
|
|
88
|
+
* @param data - Request body
|
|
89
|
+
* @param config - Request configuration
|
|
90
|
+
* @returns Observable of response data
|
|
91
|
+
*/
|
|
92
|
+
patch(url, data, config) {
|
|
93
|
+
return from(this.client.patch(url, data, config)).pipe(map((res) => res.data));
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Make a DELETE request.
|
|
97
|
+
*
|
|
98
|
+
* @param url - Request URL
|
|
99
|
+
* @param config - Request configuration
|
|
100
|
+
* @returns Observable of response data
|
|
101
|
+
*/
|
|
102
|
+
delete(url, config) {
|
|
103
|
+
return from(this.client.delete(url, config)).pipe(map((res) => res.data));
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Get the full response (including headers, status, etc.).
|
|
107
|
+
*
|
|
108
|
+
* @param method - HTTP method
|
|
109
|
+
* @param url - Request URL
|
|
110
|
+
* @param config - Request configuration
|
|
111
|
+
* @returns Observable of full response
|
|
112
|
+
*/
|
|
113
|
+
request(method, url, config) {
|
|
114
|
+
const promise = (async () => {
|
|
115
|
+
switch (method) {
|
|
116
|
+
case 'GET':
|
|
117
|
+
return this.client.get(url, config);
|
|
118
|
+
case 'POST':
|
|
119
|
+
return this.client.post(url, config?.data, config);
|
|
120
|
+
case 'PUT':
|
|
121
|
+
return this.client.put(url, config?.data, config);
|
|
122
|
+
case 'PATCH':
|
|
123
|
+
return this.client.patch(url, config?.data, config);
|
|
124
|
+
case 'DELETE':
|
|
125
|
+
return this.client.delete(url, config);
|
|
126
|
+
}
|
|
127
|
+
})();
|
|
128
|
+
return from(promise);
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Create a state subject for managing request state.
|
|
132
|
+
*
|
|
133
|
+
* @returns The created instance.
|
|
134
|
+
*/
|
|
135
|
+
createState() {
|
|
136
|
+
return new BehaviorSubject({
|
|
137
|
+
data: null,
|
|
138
|
+
loading: false,
|
|
139
|
+
error: null,
|
|
140
|
+
});
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Make a GET request with state management.
|
|
144
|
+
*
|
|
145
|
+
* @param url - Request URL
|
|
146
|
+
* @param state - State subject to update
|
|
147
|
+
* @param config - Request configuration
|
|
148
|
+
*/
|
|
149
|
+
getWithState(url, state, config) {
|
|
150
|
+
state.next({ ...state.value, loading: true, error: null });
|
|
151
|
+
this.get(url, config)
|
|
152
|
+
.pipe(tap((data) => state.next({ data, loading: false, error: null })), catchError((error) => {
|
|
153
|
+
state.next({ data: null, loading: false, error });
|
|
154
|
+
throw error;
|
|
155
|
+
}))
|
|
156
|
+
.subscribe();
|
|
157
|
+
}
|
|
158
|
+
static { this.ɵfac = function MoleculeHttpService_Factory(__ngFactoryType__) { /* @ts-ignore */
|
|
159
|
+
return new (__ngFactoryType__ || MoleculeHttpService)(i0.ɵɵinject(HTTP_CLIENT)); }; }
|
|
160
|
+
static { this.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: MoleculeHttpService, factory: MoleculeHttpService.ɵfac, providedIn: 'root' }); }
|
|
161
|
+
}
|
|
162
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MoleculeHttpService, [{
|
|
163
|
+
type: Injectable,
|
|
164
|
+
args: [{
|
|
165
|
+
providedIn: 'root',
|
|
166
|
+
}]
|
|
167
|
+
}], () => [{ type: undefined, decorators: [{
|
|
168
|
+
type: Inject,
|
|
169
|
+
args: [HTTP_CLIENT]
|
|
170
|
+
}] }], null); })();
|
|
171
|
+
//# sourceMappingURL=http.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http.service.js","sourceRoot":"","sources":["../../src/services/http.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Angular service for internationalization.
|
|
3
|
+
*
|
|
4
|
+
* @module
|
|
5
|
+
*/
|
|
6
|
+
import { type OnDestroy } from '@angular/core';
|
|
7
|
+
import { type Observable } from 'rxjs';
|
|
8
|
+
import type { DateFormatOptions, I18nProvider, InterpolationValues, LocaleConfig, NumberFormatOptions } from '@molecule/app-i18n';
|
|
9
|
+
import * as i0 from "@angular/core";
|
|
10
|
+
/**
|
|
11
|
+
* Angular service for internationalization.
|
|
12
|
+
*
|
|
13
|
+
* Wraps molecule i18n provider and exposes state as RxJS observables.
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```typescript
|
|
17
|
+
* @Component({
|
|
18
|
+
* selector: 'app-header',
|
|
19
|
+
* template: `
|
|
20
|
+
* <h1>{{ t('welcome.title', { name: userName }) }}</h1>
|
|
21
|
+
* <select [value]="locale$ | async" (change)="setLocale($event.target.value)">
|
|
22
|
+
* <option *ngFor="let loc of locales$ | async" [value]="loc.code">
|
|
23
|
+
* {{ loc.name }}
|
|
24
|
+
* </option>
|
|
25
|
+
* </select>
|
|
26
|
+
* `
|
|
27
|
+
* })
|
|
28
|
+
* export class HeaderComponent {
|
|
29
|
+
* locale$ = this.i18nService.locale$
|
|
30
|
+
* locales$ = this.i18nService.locales$
|
|
31
|
+
* userName = 'User'
|
|
32
|
+
*
|
|
33
|
+
* constructor(private i18nService: MoleculeI18nService) {}
|
|
34
|
+
*
|
|
35
|
+
* t(key: string, values?: Record<string, unknown>) {
|
|
36
|
+
* return this.i18nService.t(key, values)
|
|
37
|
+
* }
|
|
38
|
+
*
|
|
39
|
+
* setLocale(code: string) {
|
|
40
|
+
* this.i18nService.setLocale(code)
|
|
41
|
+
* }
|
|
42
|
+
* }
|
|
43
|
+
* ```
|
|
44
|
+
*/
|
|
45
|
+
export declare class MoleculeI18nService implements OnDestroy {
|
|
46
|
+
private provider;
|
|
47
|
+
private localeSubject;
|
|
48
|
+
private directionSubject;
|
|
49
|
+
private localesSubject;
|
|
50
|
+
private unsubscribe;
|
|
51
|
+
/**
|
|
52
|
+
* Observable of the current locale code.
|
|
53
|
+
*/
|
|
54
|
+
locale$: Observable<string>;
|
|
55
|
+
/**
|
|
56
|
+
* Observable of the text direction.
|
|
57
|
+
*/
|
|
58
|
+
direction$: Observable<'ltr' | 'rtl'>;
|
|
59
|
+
/**
|
|
60
|
+
* Observable of available locales.
|
|
61
|
+
*/
|
|
62
|
+
locales$: Observable<LocaleConfig[]>;
|
|
63
|
+
constructor(provider: I18nProvider);
|
|
64
|
+
/**
|
|
65
|
+
* Get the current locale code snapshot.
|
|
66
|
+
* @returns The active locale code (e.g. `'en'`, `'fr'`).
|
|
67
|
+
*/
|
|
68
|
+
get locale(): string;
|
|
69
|
+
/**
|
|
70
|
+
* Get the current text direction snapshot.
|
|
71
|
+
* @returns The text direction for the active locale, either `'ltr'` or `'rtl'`.
|
|
72
|
+
*/
|
|
73
|
+
get direction(): 'ltr' | 'rtl';
|
|
74
|
+
/**
|
|
75
|
+
* Translate a key.
|
|
76
|
+
*
|
|
77
|
+
* @param key - The dot-notation translation key to look up.
|
|
78
|
+
* @param values - Optional interpolation values to substitute into the translated string.
|
|
79
|
+
* @returns The translated and interpolated string for the current locale.
|
|
80
|
+
*/
|
|
81
|
+
t(key: string, values?: InterpolationValues): string;
|
|
82
|
+
/**
|
|
83
|
+
* Set the current locale.
|
|
84
|
+
*
|
|
85
|
+
* @param code - The locale code to switch to (e.g. `'en'`, `'fr'`).
|
|
86
|
+
*/
|
|
87
|
+
setLocale(code: string): void;
|
|
88
|
+
/**
|
|
89
|
+
* Format a number.
|
|
90
|
+
*
|
|
91
|
+
* @param value - The number to format.
|
|
92
|
+
* @param options - Locale-aware formatting options such as style, currency, and precision.
|
|
93
|
+
* @returns The locale-formatted number string.
|
|
94
|
+
*/
|
|
95
|
+
formatNumber(value: number, options?: NumberFormatOptions): string;
|
|
96
|
+
/**
|
|
97
|
+
* Format a date.
|
|
98
|
+
*
|
|
99
|
+
* @param value - The date to format, as a Date object, timestamp, or ISO string.
|
|
100
|
+
* @param options - Locale-aware formatting options such as date style and time zone.
|
|
101
|
+
* @returns The locale-formatted date string.
|
|
102
|
+
*/
|
|
103
|
+
formatDate(value: Date | number | string, options?: DateFormatOptions): string;
|
|
104
|
+
/**
|
|
105
|
+
* Clean up locale change subscription and complete all subjects on service destruction.
|
|
106
|
+
*/
|
|
107
|
+
ngOnDestroy(): void;
|
|
108
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<MoleculeI18nService, never>;
|
|
109
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<MoleculeI18nService>;
|
|
110
|
+
}
|
|
111
|
+
//# sourceMappingURL=i18n.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"i18n.service.d.ts","sourceRoot":"","sources":["../../src/services/i18n.service.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAsB,KAAK,SAAS,EAAE,MAAM,eAAe,CAAA;AAClE,OAAO,EAAmB,KAAK,UAAU,EAAE,MAAM,MAAM,CAAA;AAEvD,OAAO,KAAK,EACV,iBAAiB,EACjB,YAAY,EACZ,mBAAmB,EACnB,YAAY,EACZ,mBAAmB,EACpB,MAAM,oBAAoB,CAAA;;AAI3B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,qBAGa,mBAAoB,YAAW,SAAS;IAqBhB,OAAO,CAAC,QAAQ;IApBnD,OAAO,CAAC,aAAa,CAAyB;IAC9C,OAAO,CAAC,gBAAgB,CAAgC;IACxD,OAAO,CAAC,cAAc,CAAiC;IACvD,OAAO,CAAC,WAAW,CAA4B;IAE/C;;OAEG;IACH,OAAO,EAAE,UAAU,CAAC,MAAM,CAAC,CAAA;IAE3B;;OAEG;IACH,UAAU,EAAE,UAAU,CAAC,KAAK,GAAG,KAAK,CAAC,CAAA;IAErC;;OAEG;IACH,QAAQ,EAAE,UAAU,CAAC,YAAY,EAAE,CAAC,CAAA;gBAEO,QAAQ,EAAE,YAAY;IAgBjE;;;OAGG;IACH,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED;;;OAGG;IACH,IAAI,SAAS,IAAI,KAAK,GAAG,KAAK,CAE7B;IAED;;;;;;OAMG;IACH,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,mBAAmB,GAAG,MAAM;IAIpD;;;;OAIG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAI7B;;;;;;OAMG;IACH,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,MAAM;IAIlE;;;;;;OAMG;IACH,UAAU,CAAC,KAAK,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,MAAM;IAI9E;;OAEG;IACH,WAAW,IAAI,IAAI;yCAlGR,mBAAmB;6CAAnB,mBAAmB;CAwG/B"}
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Angular service for internationalization.
|
|
3
|
+
*
|
|
4
|
+
* @module
|
|
5
|
+
*/
|
|
6
|
+
import { Inject, Injectable } from '@angular/core';
|
|
7
|
+
import { BehaviorSubject } from 'rxjs';
|
|
8
|
+
import { I18N_PROVIDER } from '../tokens.js';
|
|
9
|
+
import * as i0 from "@angular/core";
|
|
10
|
+
/**
|
|
11
|
+
* Angular service for internationalization.
|
|
12
|
+
*
|
|
13
|
+
* Wraps molecule i18n provider and exposes state as RxJS observables.
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```typescript
|
|
17
|
+
* @Component({
|
|
18
|
+
* selector: 'app-header',
|
|
19
|
+
* template: `
|
|
20
|
+
* <h1>{{ t('welcome.title', { name: userName }) }}</h1>
|
|
21
|
+
* <select [value]="locale$ | async" (change)="setLocale($event.target.value)">
|
|
22
|
+
* <option *ngFor="let loc of locales$ | async" [value]="loc.code">
|
|
23
|
+
* {{ loc.name }}
|
|
24
|
+
* </option>
|
|
25
|
+
* </select>
|
|
26
|
+
* `
|
|
27
|
+
* })
|
|
28
|
+
* export class HeaderComponent {
|
|
29
|
+
* locale$ = this.i18nService.locale$
|
|
30
|
+
* locales$ = this.i18nService.locales$
|
|
31
|
+
* userName = 'User'
|
|
32
|
+
*
|
|
33
|
+
* constructor(private i18nService: MoleculeI18nService) {}
|
|
34
|
+
*
|
|
35
|
+
* t(key: string, values?: Record<string, unknown>) {
|
|
36
|
+
* return this.i18nService.t(key, values)
|
|
37
|
+
* }
|
|
38
|
+
*
|
|
39
|
+
* setLocale(code: string) {
|
|
40
|
+
* this.i18nService.setLocale(code)
|
|
41
|
+
* }
|
|
42
|
+
* }
|
|
43
|
+
* ```
|
|
44
|
+
*/
|
|
45
|
+
export class MoleculeI18nService {
|
|
46
|
+
constructor(provider) {
|
|
47
|
+
this.provider = provider;
|
|
48
|
+
this.unsubscribe = null;
|
|
49
|
+
this.localeSubject = new BehaviorSubject(provider.getLocale());
|
|
50
|
+
this.directionSubject = new BehaviorSubject(provider.getDirection());
|
|
51
|
+
this.localesSubject = new BehaviorSubject(provider.getLocales());
|
|
52
|
+
this.unsubscribe = provider.onLocaleChange(() => {
|
|
53
|
+
this.localeSubject.next(provider.getLocale());
|
|
54
|
+
this.directionSubject.next(provider.getDirection());
|
|
55
|
+
this.localesSubject.next(provider.getLocales());
|
|
56
|
+
});
|
|
57
|
+
this.locale$ = this.localeSubject.asObservable();
|
|
58
|
+
this.direction$ = this.directionSubject.asObservable();
|
|
59
|
+
this.locales$ = this.localesSubject.asObservable();
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Get the current locale code snapshot.
|
|
63
|
+
* @returns The active locale code (e.g. `'en'`, `'fr'`).
|
|
64
|
+
*/
|
|
65
|
+
get locale() {
|
|
66
|
+
return this.provider.getLocale();
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Get the current text direction snapshot.
|
|
70
|
+
* @returns The text direction for the active locale, either `'ltr'` or `'rtl'`.
|
|
71
|
+
*/
|
|
72
|
+
get direction() {
|
|
73
|
+
return this.provider.getDirection();
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Translate a key.
|
|
77
|
+
*
|
|
78
|
+
* @param key - The dot-notation translation key to look up.
|
|
79
|
+
* @param values - Optional interpolation values to substitute into the translated string.
|
|
80
|
+
* @returns The translated and interpolated string for the current locale.
|
|
81
|
+
*/
|
|
82
|
+
t(key, values) {
|
|
83
|
+
return this.provider.t(key, values);
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Set the current locale.
|
|
87
|
+
*
|
|
88
|
+
* @param code - The locale code to switch to (e.g. `'en'`, `'fr'`).
|
|
89
|
+
*/
|
|
90
|
+
setLocale(code) {
|
|
91
|
+
this.provider.setLocale(code);
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Format a number.
|
|
95
|
+
*
|
|
96
|
+
* @param value - The number to format.
|
|
97
|
+
* @param options - Locale-aware formatting options such as style, currency, and precision.
|
|
98
|
+
* @returns The locale-formatted number string.
|
|
99
|
+
*/
|
|
100
|
+
formatNumber(value, options) {
|
|
101
|
+
return this.provider.formatNumber(value, options);
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Format a date.
|
|
105
|
+
*
|
|
106
|
+
* @param value - The date to format, as a Date object, timestamp, or ISO string.
|
|
107
|
+
* @param options - Locale-aware formatting options such as date style and time zone.
|
|
108
|
+
* @returns The locale-formatted date string.
|
|
109
|
+
*/
|
|
110
|
+
formatDate(value, options) {
|
|
111
|
+
return this.provider.formatDate(value, options);
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Clean up locale change subscription and complete all subjects on service destruction.
|
|
115
|
+
*/
|
|
116
|
+
ngOnDestroy() {
|
|
117
|
+
this.unsubscribe?.();
|
|
118
|
+
this.localeSubject.complete();
|
|
119
|
+
this.directionSubject.complete();
|
|
120
|
+
this.localesSubject.complete();
|
|
121
|
+
}
|
|
122
|
+
static { this.ɵfac = function MoleculeI18nService_Factory(__ngFactoryType__) { /* @ts-ignore */
|
|
123
|
+
return new (__ngFactoryType__ || MoleculeI18nService)(i0.ɵɵinject(I18N_PROVIDER)); }; }
|
|
124
|
+
static { this.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: MoleculeI18nService, factory: MoleculeI18nService.ɵfac, providedIn: 'root' }); }
|
|
125
|
+
}
|
|
126
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MoleculeI18nService, [{
|
|
127
|
+
type: Injectable,
|
|
128
|
+
args: [{
|
|
129
|
+
providedIn: 'root',
|
|
130
|
+
}]
|
|
131
|
+
}], () => [{ type: undefined, decorators: [{
|
|
132
|
+
type: Inject,
|
|
133
|
+
args: [I18N_PROVIDER]
|
|
134
|
+
}] }], null); })();
|
|
135
|
+
//# sourceMappingURL=i18n.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"i18n.service.js","sourceRoot":"","sources":["../../src/services/i18n.service.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,EAAE,UAAU,EAAkB,MAAM,eAAe,CAAA;AAClE,OAAO,EAAE,eAAe,EAAmB,MAAM,MAAM,CAAA;AAUvD,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;;AAE5C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAIH,MAAM,OAAO,mBAAmB;IAqB9B,YAA2C,QAAsB;QAAtB,aAAQ,GAAR,QAAQ,CAAc;QAjBzD,gBAAW,GAAwB,IAAI,CAAA;QAkB7C,IAAI,CAAC,aAAa,GAAG,IAAI,eAAe,CAAS,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAA;QACtE,IAAI,CAAC,gBAAgB,GAAG,IAAI,eAAe,CAAgB,QAAQ,CAAC,YAAY,EAAE,CAAC,CAAA;QACnF,IAAI,CAAC,cAAc,GAAG,IAAI,eAAe,CAAiB,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAA;QAEhF,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,cAAc,CAAC,GAAG,EAAE;YAC9C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAA;YAC7C,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC,CAAA;YACnD,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAA;QACjD,CAAC,CAAC,CAAA;QAEF,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,CAAA;QAChD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAA;QACtD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAA;IACpD,CAAC;IAED;;;OAGG;IACH,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAA;IAClC,CAAC;IAED;;;OAGG;IACH,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAA;IACrC,CAAC;IAED;;;;;;OAMG;IACH,CAAC,CAAC,GAAW,EAAE,MAA4B;QACzC,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;IACrC,CAAC;IAED;;;;OAIG;IACH,SAAS,CAAC,IAAY;QACpB,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;IAC/B,CAAC;IAED;;;;;;OAMG;IACH,YAAY,CAAC,KAAa,EAAE,OAA6B;QACvD,OAAO,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;IACnD,CAAC;IAED;;;;;;OAMG;IACH,UAAU,CAAC,KAA6B,EAAE,OAA2B;QACnE,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;IACjD,CAAC;IAED;;OAEG;IACH,WAAW;QACT,IAAI,CAAC,WAAW,EAAE,EAAE,CAAA;QACpB,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAA;QAC7B,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAA;QAChC,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAA;IAChC,CAAC;;qCAvGU,mBAAmB,cAqBV,aAAa;uEArBtB,mBAAmB,WAAnB,mBAAmB,mBAFlB,MAAM;;iFAEP,mBAAmB;cAH/B,UAAU;eAAC;gBACV,UAAU,EAAE,MAAM;aACnB;;sBAsBc,MAAM;uBAAC,aAAa"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Angular services for molecule.dev framework bindings.
|
|
3
|
+
*
|
|
4
|
+
* @module
|
|
5
|
+
*/
|
|
6
|
+
export * from './async-state.service.js';
|
|
7
|
+
export * from './auth.service.js';
|
|
8
|
+
export * from './capacitor-app.service.js';
|
|
9
|
+
export * from './change-password.service.js';
|
|
10
|
+
export * from './device.service.js';
|
|
11
|
+
export * from './forms.service.js';
|
|
12
|
+
export * from './http.service.js';
|
|
13
|
+
export * from './i18n.service.js';
|
|
14
|
+
export * from './logger.service.js';
|
|
15
|
+
export * from './login.service.js';
|
|
16
|
+
export * from './oauth.service.js';
|
|
17
|
+
export * from './password-reset.service.js';
|
|
18
|
+
export * from './platform.service.js';
|
|
19
|
+
export * from './promise.service.js';
|
|
20
|
+
export * from './push.service.js';
|
|
21
|
+
export * from './router.service.js';
|
|
22
|
+
export * from './signup.service.js';
|
|
23
|
+
export * from './state.service.js';
|
|
24
|
+
export * from './storage.service.js';
|
|
25
|
+
export * from './theme.service.js';
|
|
26
|
+
export * from './version.service.js';
|
|
27
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,0BAA0B,CAAA;AACxC,cAAc,mBAAmB,CAAA;AACjC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,8BAA8B,CAAA;AAC5C,cAAc,qBAAqB,CAAA;AACnC,cAAc,oBAAoB,CAAA;AAClC,cAAc,mBAAmB,CAAA;AACjC,cAAc,mBAAmB,CAAA;AACjC,cAAc,qBAAqB,CAAA;AACnC,cAAc,oBAAoB,CAAA;AAClC,cAAc,oBAAoB,CAAA;AAClC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,uBAAuB,CAAA;AACrC,cAAc,sBAAsB,CAAA;AACpC,cAAc,mBAAmB,CAAA;AACjC,cAAc,qBAAqB,CAAA;AACnC,cAAc,qBAAqB,CAAA;AACnC,cAAc,oBAAoB,CAAA;AAClC,cAAc,sBAAsB,CAAA;AACpC,cAAc,oBAAoB,CAAA;AAClC,cAAc,sBAAsB,CAAA"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Angular services for molecule.dev framework bindings.
|
|
3
|
+
*
|
|
4
|
+
* @module
|
|
5
|
+
*/
|
|
6
|
+
export * from './async-state.service.js';
|
|
7
|
+
export * from './auth.service.js';
|
|
8
|
+
export * from './capacitor-app.service.js';
|
|
9
|
+
export * from './change-password.service.js';
|
|
10
|
+
export * from './device.service.js';
|
|
11
|
+
export * from './forms.service.js';
|
|
12
|
+
export * from './http.service.js';
|
|
13
|
+
export * from './i18n.service.js';
|
|
14
|
+
export * from './logger.service.js';
|
|
15
|
+
export * from './login.service.js';
|
|
16
|
+
export * from './oauth.service.js';
|
|
17
|
+
export * from './password-reset.service.js';
|
|
18
|
+
export * from './platform.service.js';
|
|
19
|
+
export * from './promise.service.js';
|
|
20
|
+
export * from './push.service.js';
|
|
21
|
+
export * from './router.service.js';
|
|
22
|
+
export * from './signup.service.js';
|
|
23
|
+
export * from './state.service.js';
|
|
24
|
+
export * from './storage.service.js';
|
|
25
|
+
export * from './theme.service.js';
|
|
26
|
+
export * from './version.service.js';
|
|
27
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,0BAA0B,CAAA;AACxC,cAAc,mBAAmB,CAAA;AACjC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,8BAA8B,CAAA;AAC5C,cAAc,qBAAqB,CAAA;AACnC,cAAc,oBAAoB,CAAA;AAClC,cAAc,mBAAmB,CAAA;AACjC,cAAc,mBAAmB,CAAA;AACjC,cAAc,qBAAqB,CAAA;AACnC,cAAc,oBAAoB,CAAA;AAClC,cAAc,oBAAoB,CAAA;AAClC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,uBAAuB,CAAA;AACrC,cAAc,sBAAsB,CAAA;AACpC,cAAc,mBAAmB,CAAA;AACjC,cAAc,qBAAqB,CAAA;AACnC,cAAc,qBAAqB,CAAA;AACnC,cAAc,oBAAoB,CAAA;AAClC,cAAc,sBAAsB,CAAA;AACpC,cAAc,oBAAoB,CAAA;AAClC,cAAc,sBAAsB,CAAA"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import type { Logger, LoggerConfig, LoggerProvider } from '@molecule/app-logger';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
/**
|
|
4
|
+
* Angular service for logging.
|
|
5
|
+
*
|
|
6
|
+
* Wraps molecule logger provider.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```typescript
|
|
10
|
+
* @Component({
|
|
11
|
+
* selector: 'app-user-profile',
|
|
12
|
+
* template: `...`
|
|
13
|
+
* })
|
|
14
|
+
* export class UserProfileComponent implements OnInit, OnDestroy {
|
|
15
|
+
* private logger = this.loggerService.getLogger('UserProfileComponent')
|
|
16
|
+
*
|
|
17
|
+
* constructor(private loggerService: MoleculeLoggerService) {}
|
|
18
|
+
*
|
|
19
|
+
* ngOnInit() {
|
|
20
|
+
* this.logger.info('Component initialized')
|
|
21
|
+
* }
|
|
22
|
+
*
|
|
23
|
+
* ngOnDestroy() {
|
|
24
|
+
* this.logger.debug('Component destroyed')
|
|
25
|
+
* }
|
|
26
|
+
*
|
|
27
|
+
* handleError(error: Error) {
|
|
28
|
+
* this.logger.error('Operation failed', error)
|
|
29
|
+
* }
|
|
30
|
+
* }
|
|
31
|
+
* ```
|
|
32
|
+
*/
|
|
33
|
+
export declare class MoleculeLoggerService {
|
|
34
|
+
private provider;
|
|
35
|
+
constructor(provider: LoggerProvider);
|
|
36
|
+
/**
|
|
37
|
+
* Get a logger instance.
|
|
38
|
+
*
|
|
39
|
+
* @param name - Logger name (usually component/service name)
|
|
40
|
+
* @returns The result.
|
|
41
|
+
*/
|
|
42
|
+
getLogger(name?: string): Logger;
|
|
43
|
+
/**
|
|
44
|
+
* Create a logger with custom configuration.
|
|
45
|
+
*
|
|
46
|
+
* @param config - Logger configuration
|
|
47
|
+
* @returns The created instance.
|
|
48
|
+
*/
|
|
49
|
+
createLogger(config: LoggerConfig): Logger;
|
|
50
|
+
/**
|
|
51
|
+
* Set the global log level.
|
|
52
|
+
*
|
|
53
|
+
* @param level - Log level
|
|
54
|
+
*/
|
|
55
|
+
setLevel(level: 'trace' | 'debug' | 'info' | 'warn' | 'error' | 'silent'): void;
|
|
56
|
+
/**
|
|
57
|
+
* Get the current global log level.
|
|
58
|
+
*
|
|
59
|
+
* @returns The result.
|
|
60
|
+
*/
|
|
61
|
+
getLevel(): string;
|
|
62
|
+
/**
|
|
63
|
+
* Enable logging.
|
|
64
|
+
*/
|
|
65
|
+
enable(): void;
|
|
66
|
+
/**
|
|
67
|
+
* Disable logging.
|
|
68
|
+
*/
|
|
69
|
+
disable(): void;
|
|
70
|
+
/**
|
|
71
|
+
* Check if logging is enabled.
|
|
72
|
+
*
|
|
73
|
+
* @returns Whether logging is enabled
|
|
74
|
+
*/
|
|
75
|
+
isEnabled(): boolean;
|
|
76
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<MoleculeLoggerService, never>;
|
|
77
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<MoleculeLoggerService>;
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=logger.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.service.d.ts","sourceRoot":"","sources":["../../src/services/logger.service.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;;AAIhF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,qBAGa,qBAAqB;IACK,OAAO,CAAC,QAAQ;gBAAR,QAAQ,EAAE,cAAc;IAErE;;;;;OAKG;IACH,SAAS,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM;IAIhC;;;;;OAKG;IACH,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM;IAI1C;;;;OAIG;IACH,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,IAAI;IAI/E;;;;OAIG;IACH,QAAQ,IAAI,MAAM;IAIlB;;OAEG;IACH,MAAM,IAAI,IAAI;IAId;;OAEG;IACH,OAAO,IAAI,IAAI;IAIf;;;;OAIG;IACH,SAAS,IAAI,OAAO;yCA5DT,qBAAqB;6CAArB,qBAAqB;CA+DjC"}
|