@libs-ui/services-translate 0.2.356-42 → 0.2.356-43

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,29 +1,70 @@
1
- # LibsUiTranslateService
1
+ # @libs-ui/services-translate
2
2
 
3
- Dịch vụ quản lý đa ngôn ngữ (i18n) cho project, mở rộng từ `@ngx-translate/core` với các tính năng đặc thù:
3
+ > Dịch vụ i18n cho Angular mở rộng `@ngx-translate/core` với MessageFormat, global interpolation tự động merge chuỗi dịch nội bộ.
4
4
 
5
- - **Tích hợp MessageFormat**: Hỗ trợ plural rules, select statements phức tạp.
6
- - **Global Interpolation**: Biến `{value}` dùng chung không cần truyền thủ công.
7
- - **Merge từ source**: Tự động merge chuỗi dịch nội bộ(`data-translation.ts`) khi gọi `use()`.
8
- - **Lưu ngôn ngữ**: Tích hợp `UtilsCache` để lưu lựa chọn ngôn ngữ vào localStorage.
5
+ ## Giới thiệu
6
+
7
+ `@libs-ui/services-translate` cung cấp `LibsUiTranslateService` — một lớp kế thừa từ `TranslateService` của `@ngx-translate/core`, tích hợp sẵn `TranslateMessageFormatCompiler` để xử lý cú pháp plural/select phức tạp. Service tự động merge các chuỗi dịch nội bộ của `@libs-ui` vào mọi ngôn ngữ, đồng thời cho phép thiết lập biến nội suy toàn cục áp dụng cho tất cả chuỗi dịch mà không cần truyền thủ công. Ngôn ngữ đang chọn được lưu tự động qua `UtilsCache`.
8
+
9
+ ## Tính năng
10
+
11
+ - ✅ Kế thừa toàn bộ API của `TranslateService` — inject và dùng như bình thường
12
+ - ✅ Hỗ trợ cú pháp **MessageFormat** — xử lý `plural`, `select`, `ordinal`
13
+ - ✅ **Global interpolation** — thiết lập biến dùng chung cho toàn bộ chuỗi dịch (tên thương hiệu, hotline, ...)
14
+ - ✅ Tự động merge chuỗi dịch nội bộ `@libs-ui` (hơn 100 key dùng cho các component UI)
15
+ - ✅ Load file JSON qua HTTP với `TranslateHttpLoader` (đường dẫn tùy chỉnh)
16
+ - ✅ Inject translation trực tiếp từ object (không cần file `.json`)
17
+ - ✅ Lưu ngôn ngữ hiện tại vào `UtilsCache` (localStorage) khi gọi `use()`
18
+ - ✅ Hỗ trợ hai ngôn ngữ: `'vi'` (Tiếng Việt) và `'en'` (English)
19
+ - ✅ Safe fallback — `instant()` và `get()` trả về key gốc nếu key rỗng/undefined
20
+
21
+ ## Khi nào sử dụng
22
+
23
+ - Ứng dụng cần hỗ trợ đa ngôn ngữ và chuyển đổi ngôn ngữ tại runtime
24
+ - Cần xử lý số ít/số nhiều (plural) hoặc chọn chuỗi theo giá trị (select) với cú pháp MessageFormat
25
+ - Cần thiết lập biến toàn cục (tên thương hiệu, hotline, đơn vị tiền tệ) tự động xuất hiện trong mọi chuỗi dịch
26
+ - Lib hoặc shared module cần inject chuỗi dịch từ code (object) thay vì phụ thuộc file JSON của từng app
27
+ - Muốn các component `@libs-ui` hiển thị đúng ngôn ngữ mà không cần cấu hình thêm
9
28
 
10
29
  ## Cài đặt
11
30
 
31
+ ```bash
32
+ npm install @libs-ui/services-translate
33
+ ```
34
+
35
+ ## Import
36
+
12
37
  ```typescript
13
- // app.config.ts
38
+ // Cấu hình providers (bắt buộc)
39
+ import { getConfigTranslate } from '@libs-ui/services-translate';
40
+
41
+ // Thiết lập biến nội suy toàn cục (tùy chọn)
42
+ import { setInterpolateParamDefault, getInterpolateParamDefault } from '@libs-ui/services-translate';
43
+
44
+ // Sử dụng trong component (inject qua @ngx-translate/core như bình thường)
45
+ import { TranslateService, TranslateModule } from '@ngx-translate/core';
46
+ ```
47
+
48
+ ## Ví dụ sử dụng
49
+
50
+ ### 1. Cấu hình providers trong `app.config.ts`
51
+
52
+ ```typescript
53
+ import { ApplicationConfig } from '@angular/core';
54
+ import { provideRouter } from '@angular/router';
14
55
  import { getConfigTranslate } from '@libs-ui/services-translate';
15
56
 
16
57
  export const appConfig: ApplicationConfig = {
17
58
  providers: [
18
- getConfigTranslate(), // Load từ /i18n/*.json
19
- getConfigTranslate('/assets/translations/'), // Đường dẫn tùy chỉnh
59
+ provideRouter(appRoutes),
60
+
61
+ // Load từ /i18n/*.json (mặc định)
62
+ getConfigTranslate(),
20
63
  ],
21
64
  };
22
65
  ```
23
66
 
24
- ## Cấu trúc file ngôn ngữ
25
-
26
- Đặt các file JSON tại `public/i18n/` (hoặc đường dẫn tùy chỉnh truyền vào `getConfigTranslate`):
67
+ Cấu trúc thư mục file dịch mặc định (đặt trong `public/`):
27
68
 
28
69
  ```
29
70
  public/
@@ -32,107 +73,241 @@ public/
32
73
  └── en.json
33
74
  ```
34
75
 
35
- **Ví dụ `vi.json`:**
36
-
37
- ```json
38
- {
39
- "i18n_hello": "Xin chào",
40
- "i18n_greeting": "Xin chào, {name}!",
41
- "i18n_item_count": "{value} {value,plural, =0 {mục} =1 {mục} other {mục}}"
42
- }
43
- ```
44
-
45
- ## Inject translation từ Object (không cần file .json)
46
-
47
- Phù hợp khi muốn đặt translation trực tiếp trong code (ví dụ: cho các key của thư viện dùng chung):
76
+ ### 2. Cấu hình đường dẫn tùy chỉnh
48
77
 
49
78
  ```typescript
50
- import { TranslateService } from '@ngx-translate/core';
79
+ import { ApplicationConfig } from '@angular/core';
80
+ import { getConfigTranslate } from '@libs-ui/services-translate';
51
81
 
52
- constructor() {
53
- this.translate.setTranslation('vi', {
54
- i18n_welcome: 'Chào mừng đến với hệ thống',
55
- i18n_role: 'Vai trò: {role}',
56
- }, true); // true = merge, không ghi đè keys từ file JSON
82
+ export const appConfig: ApplicationConfig = {
83
+ providers: [
84
+ // Load từ /assets/translations/*.json
85
+ getConfigTranslate('/assets/translations/'),
86
+ ],
87
+ };
88
+ ```
57
89
 
58
- this.translate.setTranslation('en', {
59
- i18n_welcome: 'Welcome to the system',
60
- i18n_role: 'Role: {role}',
61
- }, true);
90
+ ### 3. Khởi tạo ngôn ngữ và inject translation từ object
62
91
 
63
- this.translate.use('vi');
92
+ ```typescript
93
+ import { Component, inject, OnInit } from '@angular/core';
94
+ import { TranslateModule, TranslateService } from '@ngx-translate/core';
95
+
96
+ @Component({
97
+ selector: 'app-root',
98
+ standalone: true,
99
+ imports: [TranslateModule],
100
+ template: `
101
+ <span>{{ 'i18n_search' | translate }}</span>
102
+ <span>{{ 'i18n_greeting' | translate: { name: 'Admin' } }}</span>
103
+ `,
104
+ })
105
+ export class AppComponent implements OnInit {
106
+ private readonly translate = inject(TranslateService);
107
+
108
+ ngOnInit(): void {
109
+ // Inject translation từ object (không cần file .json)
110
+ this.translate.setTranslation('vi', {
111
+ i18n_greeting: 'Xin chào, {name}!',
112
+ i18n_welcome: 'Chào mừng đến với hệ thống',
113
+ }, true); // true = merge, không ghi đè key có sẵn
114
+
115
+ this.translate.setTranslation('en', {
116
+ i18n_greeting: 'Hello, {name}!',
117
+ i18n_welcome: 'Welcome to the system',
118
+ }, true);
119
+
120
+ // Đặt ngôn ngữ mặc định
121
+ this.translate.use('vi');
122
+ }
64
123
  }
65
124
  ```
66
125
 
67
- ## Sử dụng trong Template
68
-
69
- ```html
70
- <!-- Dùng pipe -->
71
- <span>{{ 'i18n_search' | translate }}</span>
72
-
73
- <!-- Có interpolation params -->
74
- <span>{{ 'i18n_greeting' | translate: { name: 'Admin' } }}</span>
126
+ ### 4. Chuyển đổi ngôn ngữ runtime
75
127
 
76
- <!-- Plural (MessageFormat) -->
77
- <span>{{ 'i18n_item_count' | translate: { value: 5 } }}</span>
128
+ ```typescript
129
+ import { Component, inject } from '@angular/core';
130
+ import { TranslateService } from '@ngx-translate/core';
131
+ import { TYPE_LANGUAGE_SUPPORT } from '@libs-ui/interfaces-types';
132
+
133
+ @Component({
134
+ selector: 'app-language-switcher',
135
+ standalone: true,
136
+ template: `
137
+ <button (click)="handlerSwitchLang('vi')">Tiếng Việt</button>
138
+ <button (click)="handlerSwitchLang('en')">English</button>
139
+ `,
140
+ })
141
+ export class LanguageSwitcherComponent {
142
+ private readonly translate = inject(TranslateService);
143
+
144
+ handlerSwitchLang(event: Event, lang: TYPE_LANGUAGE_SUPPORT): void {
145
+ event.stopPropagation();
146
+ this.translate.use(lang);
147
+ // Ngôn ngữ được tự động lưu vào UtilsCache (localStorage)
148
+ }
149
+ }
78
150
  ```
79
151
 
80
- ## Sử dụng trong Component
152
+ ### 5. Dùng `instant()` và `get()` trong TypeScript
81
153
 
82
154
  ```typescript
155
+ import { Component, inject } from '@angular/core';
83
156
  import { TranslateService } from '@ngx-translate/core';
84
-
85
- export class MyComponent {
86
- private translate = inject(TranslateService);
87
-
88
- // Sync
89
- get label() {
90
- return this.translate.instant('i18n_search');
157
+ import { DestroyRef } from '@angular/core';
158
+ import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
159
+
160
+ @Component({
161
+ selector: 'app-notification',
162
+ standalone: true,
163
+ template: '',
164
+ })
165
+ export class NotificationComponent {
166
+ private readonly translate = inject(TranslateService);
167
+ private readonly destroyRef = inject(DestroyRef);
168
+
169
+ // Đồng bộ (sync) — dùng khi translations đã được load xong
170
+ getLabel(): string {
171
+ return this.translate.instant('i18n_save');
172
+ // Kết quả: 'Lưu' (vi) hoặc 'Save' (en)
91
173
  }
92
174
 
93
- // Async (reactive)
94
- label$ = this.translate.get('i18n_search');
175
+ // Với interpolation params
176
+ getErrorMessage(maxLength: number): string {
177
+ return this.translate.instant('i18n_message_error_input_max_length', { number: maxLength });
178
+ // Kết quả: 'Độ dài tối đa 100 kí tự'
179
+ }
95
180
 
96
- // Chuyển ngôn ngữ
97
- switchLang(lang: string) {
98
- this.translate.use(lang);
181
+ // Bất đồng bộ (async) — tự động cập nhật khi đổi ngôn ngữ
182
+ getReactiveLabel(): void {
183
+ this.translate.get('i18n_search')
184
+ .pipe(takeUntilDestroyed(this.destroyRef))
185
+ .subscribe((label: string) => {
186
+ console.log(label);
187
+ });
99
188
  }
100
189
  }
101
190
  ```
102
191
 
103
- ## Global Interpolation
104
-
105
- Dùng để inject biến dùng chung (tên thương hiệu, hotline...) vào **tất cả** chuỗi dịch:
192
+ ### 6. Global Interpolation — biến dùng chung cho toàn bộ chuỗi dịch
106
193
 
107
194
  ```typescript
195
+ // app.component.ts hoặc main.ts
108
196
  import { setInterpolateParamDefault } from '@libs-ui/services-translate';
109
197
 
110
- // Thường đặt app.component.ts
198
+ // Đặt một lần — áp dụng tự động cho TẤT CẢ chuỗi dịch
111
199
  setInterpolateParamDefault({
112
- brand: 'Example CRM',
200
+ brand: 'Mobio CRM',
113
201
  hotline: '1900 1234',
202
+ currency: 'VNĐ',
114
203
  });
115
204
  ```
116
205
 
117
- Trong file dịch:
206
+ Trong file dịch JSON, dùng biến global trực tiếp:
118
207
 
119
208
  ```json
120
209
  {
121
- "i18n_contact": "Liên hệ {brand} qua hotline {hotline}"
210
+ "i18n_contact_us": "Liên hệ {brand} qua hotline {hotline}",
211
+ "i18n_price_unit": "Đơn vị: {currency}"
122
212
  }
123
213
  ```
124
214
 
125
- Kết quả: `"Liên hệ Example CRM qua hotline 1900 1234"` — không cần `| translate: { brand: '...', hotline: '...' }`.
215
+ Trong template — không cần truyền params:
126
216
 
127
- ## MessageFormat — Plural & Select
217
+ ```html
218
+ <span>{{ 'i18n_contact_us' | translate }}</span>
219
+ <!-- Kết quả: "Liên hệ Mobio CRM qua hotline 1900 1234" -->
220
+ ```
221
+
222
+ ### 7. MessageFormat — Plural và Select
223
+
224
+ File dịch `vi.json`:
128
225
 
129
226
  ```json
130
227
  {
131
- "i18n_items": "{value} {value,plural, =0 {mục} =1 {mục} other {mục}}",
132
- "i18n_status": "Trạng thái: {status,select, active {Hoạt động} inactive {Không hoạt động} other {Không xác định}}"
228
+ "i18n_user_count": "{value} {value,plural, =0 {người dùng} =1 {người dùng} other {người dùng}}",
229
+ "i18n_status_display": "Trạng thái: {status,select, active {Đang hoạt động} inactive {Không hoạt động} other {Không xác định}}"
133
230
  }
134
231
  ```
135
232
 
233
+ File dịch `en.json`:
234
+
235
+ ```json
236
+ {
237
+ "i18n_user_count": "{value} {value,plural, =0 {user} =1 {user} other {users}} total",
238
+ "i18n_status_display": "Status: {status,select, active {Active} inactive {Inactive} other {Unknown}}"
239
+ }
240
+ ```
241
+
242
+ Trong template:
243
+
244
+ ```html
245
+ <!-- Plural -->
246
+ <span>{{ 'i18n_user_count' | translate: { value: 5 } }}</span>
247
+ <!-- Kết quả (vi): "Có 5 người dùng" -->
248
+
249
+ <!-- Select -->
250
+ <span>{{ 'i18n_status_display' | translate: { status: 'active' } }}</span>
251
+ <!-- Kết quả (vi): "Trạng thái: Đang hoạt động" -->
252
+ ```
253
+
254
+ ## Methods
255
+
256
+ | Method | Signature | Mô tả |
257
+ |---|---|---|
258
+ | `getConfigTranslate` | `(linkFileI18n?: string) => Provider[]` | Trả về mảng providers để cấu hình i18n toàn app. `linkFileI18n` là đường dẫn thư mục chứa file dịch (mặc định `/i18n/`). |
259
+ | `setInterpolateParamDefault` | `(interpolate: Record<string, string>) => void` | Thiết lập biến nội suy toàn cục áp dụng tự động cho mọi chuỗi dịch khi gọi `instant()`, `get()`, `getParsedResult()`. |
260
+ | `getInterpolateParamDefault` | `() => Record<string, string>` | Lấy giá trị biến nội suy toàn cục hiện tại. |
261
+ | `instant` | `(key: string \| string[], params?) => string \| any` | Dịch đồng bộ. Trả về `key` nếu key rỗng (thay vì throw lỗi). Tự động merge `interpolateParamDefault`. |
262
+ | `get` | `(key: string \| string[], params?) => Observable<string \| any>` | Dịch bất đồng bộ, tự cập nhật khi đổi ngôn ngữ. Trả về `of(key)` nếu key rỗng. |
263
+ | `use` | `(lang: TYPE_LANGUAGE_SUPPORT) => Observable<any>` | Chuyển ngôn ngữ, tự động merge chuỗi dịch nội bộ `@libs-ui` và lưu vào `UtilsCache`. |
264
+
265
+ ## Types
266
+
267
+ ```typescript
268
+ import { TYPE_LANGUAGE_SUPPORT } from '@libs-ui/interfaces-types';
269
+ // TYPE_LANGUAGE_SUPPORT = 'vi' | 'en'
270
+ ```
271
+
272
+ `TranslateProviderConfig` — DI token config, được xuất để sử dụng khi cần override provider thủ công:
273
+
274
+ ```typescript
275
+ import { TranslateProviderConfig } from '@libs-ui/services-translate';
276
+ ```
277
+
278
+ ## Chuỗi dịch nội bộ @libs-ui
279
+
280
+ `LibsUiTranslateService` tự động merge hơn 100 key i18n nội bộ dành cho các component `@libs-ui` (bảng phân trang, upload file, date picker, rich text editor, ...). Các key này được inject khi gọi `use()` và chỉ điền vào nếu app chưa có sẵn key đó (merge, không ghi đè).
281
+
282
+ Một số key tiêu biểu:
283
+
284
+ | Key | vi | en |
285
+ |---|---|---|
286
+ | `i18n_search` | Tìm kiếm | Search |
287
+ | `i18n_save` | Lưu | Save |
288
+ | `i18n_cancel` | Hủy bỏ | Cancel |
289
+ | `i18n_no_data` | Không có dữ liệu | No data |
290
+ | `i18n_add_new` | Thêm mới | Add new |
291
+ | `i18n_delete` | Xoá | Delete |
292
+ | `i18n_valid_empty_message` | Trường thông tin không được phép để trống | This field is required |
293
+ | `i18n_no_result` | Không có kết quả | No result |
294
+
295
+ ## Lưu ý quan trọng
296
+
297
+ ⚠️ **Gọi `getConfigTranslate()` trong `app.config.ts`**: Bắt buộc cấu hình provider ở cấp app root. KHÔNG gọi trong `@NgModule` hay lazy feature module.
298
+
299
+ ⚠️ **`setInterpolateParamDefault()` phải gọi trước `use()`**: Biến global chỉ có hiệu lực với các lần dịch sau khi được thiết lập. Nên gọi trong `AppComponent.ngOnInit()` hoặc `main.ts`.
300
+
301
+ ⚠️ **`instant()` chỉ hoạt động sau khi translations đã load**: Nếu gọi quá sớm (trước khi file JSON load xong), `instant()` trả về key gốc. Dùng `get()` (Observable) để đảm bảo luôn có giá trị đúng.
302
+
303
+ ⚠️ **Không cần inject `LibsUiTranslateService` trực tiếp**: Service được cung cấp qua DI token của `TranslateService`. Inject bình thường bằng `inject(TranslateService)` — Angular sẽ resolve ra `LibsUiTranslateService`.
304
+
305
+ ⚠️ **`setTranslation(lang, data, true)` — tham số `true` bắt buộc khi merge**: Không truyền `true` sẽ ghi đè toàn bộ translations đã có cho ngôn ngữ đó, bao gồm cả các key nội bộ của `@libs-ui`.
306
+
136
307
  ## Demo
137
308
 
138
- Xem chi tiết và test interactive tại: [http://localhost:4500/services/translate](http://localhost:4500/services/translate)
309
+ ```bash
310
+ npx nx serve core-ui
311
+ ```
312
+
313
+ Truy cập: [http://localhost:4500/services/translate](http://localhost:4500/services/translate)
@@ -1,5 +1,5 @@
1
1
  import { HttpClient, provideHttpClient, withInterceptorsFromDi } from '@angular/common/http';
2
- import { TranslateService, TranslateCompiler, TranslateLoader, TranslateStore, TranslateParser, MissingTranslationHandler, TranslateModule } from '@ngx-translate/core';
2
+ import { TranslateService, TranslateLoader, TranslateCompiler, TranslateStore, TranslateParser, MissingTranslationHandler, TranslateModule } from '@ngx-translate/core';
3
3
  import { TranslateMessageFormatCompiler } from 'ngx-translate-messageformat-compiler';
4
4
  import { TranslateHttpLoader } from '@ngx-translate/http-loader';
5
5
  import { importProvidersFrom, signal } from '@angular/core';
@@ -1 +1 @@
1
- {"version":3,"file":"libs-ui-services-translate.mjs","sources":["../../../../../libs-ui/services/translate/src/data-translation.ts","../../../../../libs-ui/services/translate/src/translate.service.ts","../../../../../libs-ui/services/translate/src/config-translate.ts","../../../../../libs-ui/services/translate/src/libs-ui-services-translate.ts"],"sourcesContent":["export const dataTranslation = () => {\n return {\n vi: {\n i18n_select_information: 'Chọn thông tin',\n i18n_go_to: 'Đi tới',\n i18n_value_sum_page: 'Tổng {value} trang',\n i18n_message_error_input_max_length: 'Độ dài tối đa {{number}} kí tự',\n i18n_message_error_input_min_length: 'Độ dài tối thiểu {{number}} kí tự',\n i18n_preview: 'Xem trước',\n i18n_file_size_compare_when_resize: '{current_size} (ban đầu: {original_size})',\n i18n_size_photo: 'Kích thước ảnh',\n i18n_ratio_size: 'Tỷ lệ size',\n i18n_resize: 'Resize',\n i18n_horizontal_flip: 'Lật ngang',\n i18n_vertical_flip: 'Lật dọc',\n i18n_rotate_ninety_degrees: 'Xoay 90°',\n i18n_rotate_photos: 'Xoay ảnh',\n i18n_width: 'Chiều rộng',\n i18n_length: 'Chiều dài',\n i18n_custom: 'Tuỳ chỉnh',\n i18n_restore_the_original_state: 'Khôi phục trạng thái ban đầu',\n i18n_cutting_ratio: 'Tỉ lệ cắt',\n i18n_exit_edit_mode: 'Thoát chế độ sửa',\n i18n_save_to_new_file: 'Lưu thành file mới',\n i18n_edit_file_name: 'Sửa {file_name}',\n i18n_file_size_exceeds_the_allowed_limit: 'Dung lượng file vượt quá giới hạn cho phép',\n i18n_the_file_support_format_is_not_correct: 'File không đúng định dạng hỗ trợ',\n i18n_invalid_file_upload: 'File tải lên không hợp lệ',\n i18n_file_number_exceeds_the_allowed_limit_please_delete_the_file: 'Bạn chỉ được phép chọn tối đa {value} files trong một lần tải lên. Vui lòng xoá bớt file.',\n i18n_size_not_number_mb: 'Dung lượng không vượt quá {number}MB.',\n i18n_edit: 'Sửa',\n i18n_choose_as_your_avatar: 'Chọn làm ảnh đại diện',\n i18n_avatar: 'Ảnh đại diện',\n i18n_note_upload_file_volume: 'Định dạng .doc, .docx, .xls, .xlsx, .ppt, .pptx, .pdf. Dung lượng mỗi file tối đa {value}.',\n i18n_note_upload_video_volume: 'Định dạng .mp4, .mov, .mpg, .avi, .wmv. Dung lượng mỗi file tối đa {value}.',\n i18n_note_upload_image_volume: 'Định dạng .gif, .jpg, .jpeg, .png. Dung lượng mỗi file tối đa {value}.',\n i18n_note_upload_audio_volume: 'Định dạng .mp3, .wav, .ogg, .aac, .m4a, .flac, .wma. Dung lượng mỗi file tối đa {value}.',\n i18n_drag_file_here_to_upload_or_select_file: 'Kéo file vào đây để tải lên hoặc <span>Chọn file</span>',\n i18n_back_to_list: 'Quay lại danh sách',\n i18n_4x_other_operations: 'Thao tác khác',\n i18n_add_currency: 'Thêm tiền tệ',\n i18n_add_language: 'Thêm ngôn ngữ',\n i18n_unselect_option: 'Bỏ giá trị đang chọn',\n i18n_notification_manipulation_not_success: 'Thao tác không thành công.',\n i18n_all: 'Tất cả',\n i18n_have_no_selection: 'Chưa có lựa chọn nào trong danh sách',\n i18n_more_select: 'Chọn thêm',\n i18n_no_result: 'Không có kết quả',\n i18n_alert_connect_server_error: 'Có lỗi trong quá trình kết nối đến server.',\n i18n_valid_duplicate_msg: 'Trường thông tin không được phép trùng nhau',\n i18n_select: 'Chọn',\n i18n_date_compare_start_end_message_error: 'Thời gian kết thúc phải sau thời gian bắt đầu',\n i18n_invalid_end_date_selected: 'Thời gian kết thúc phải lớn hơn thời gian bắt đầu.',\n i18n_no_data: 'Không có dữ liệu',\n i18n_upload_image: 'Tải ảnh lên',\n i18n_content: 'Nội dung',\n i18n_save: 'Lưu',\n i18n_image: 'Hình ảnh',\n i18n_unlink: 'Hủy liên kết',\n i18n_insert_link: 'Chèn liên kết',\n i18n_quote: 'Trích dẫn',\n i18n_list_numbered: 'Đánh số đầu dòng',\n i18n_list_bulleted: 'Đánh dấu đầu dòng',\n i18n_indent_decrease: 'Giảm thụt lề',\n i18n_indent_increase: 'Tăng thụt lề',\n i18n_adjust: 'Căn chỉnh',\n i18n_text_decoration_underline: 'Gạch chân',\n i18n_text_line_through: 'Gạch ngang',\n i18n_font_style_italic: 'In nghiêng',\n i18n_font_weight_bold: 'In đậm',\n i18n_background_color: 'Màu nền',\n i18n_text_color: 'Màu chữ',\n i18n_redo: 'Làm lại thay đổi',\n i18n_undo: 'Hoàn tác',\n i18n_text_emoji: 'Emoji',\n i18n_collapse: 'Thu gọn',\n i18n_total_quantity: \"<span class='text-[#9ca2ad] libs-ui-font-h5s'>Số lượng: </span> <span class='libs-ui-font-h5s'>{value}</span>\",\n i18n_number_item_selected: '{value} {value, plural, =0 {item} =1 {item} other {items} } selected',\n i18n_character: 'Ký tự',\n i18n_search: 'Tìm kiếm',\n i18n_color_custom: 'Màu tuỳ chỉnh',\n i18n_add_new: 'Thêm mới',\n i18n_cancel: 'Hủy bỏ',\n i18n_apply: 'Áp dụng',\n i18n_copy_successfully: 'Sao chép thành công',\n i18n_restore: 'Khôi phục',\n i18n_zoom_in: 'Phóng to',\n i18n_zoom_out: 'Thu nhỏ',\n i18n_action_view_full_screen: 'Xem toàn màn hình',\n i18n_action_exit_full_screen: 'Thoát khỏi chế độ toàn màn hình',\n i18n_agree: 'Đồng ý',\n i18n_view_more: 'Xem thêm',\n i18n_delete: 'Xoá',\n i18n_select_value: 'Chọn giá trị',\n i18n_selecting_options: 'Đang chọn {value} lựa chọn',\n i18n_select_all_searched_results: 'Chọn tất cả kết quả',\n i18n_unselect_all_searched_results: 'Bỏ chọn tất cả kết quả',\n i18n_import_content: 'Nhập nội dung',\n i18n_valid_empty_message: 'Trường thông tin không được phép để trống',\n i18n_valid_pattern_message: 'Trường thông tin không đúng định dạng',\n i18n_message_error_input_max_value: 'Giá trị tối đa là { value }',\n i18n_message_error_input_min_value: 'Giá trị tối thiểu là { value }',\n i18n_show: 'Hiện',\n i18n_hidden: 'Ẩn',\n i18n_password_is_required: 'Mật khẩu không được phép để trống.', // NOSONAR\n i18n_password_min_length: 'Mật khẩu không được phép ít hơn {length} kí tự.', // NOSONAR\n i18n_minimum_length_number: 'Độ dài tối thiểu {number} kí tự',\n i18n_maximum_length_number: 'Độ dài tối đa {number} kí tự',\n i18n_contains_all_types_of_characters_below: 'Chứa tất cả các loại kí tự dưới đây:',\n i18n_contains_number_types_of_characters_below: 'Chứa ít nhất {number} trong số các loại kí tự dưới đây:',\n i18n_uppercase_minimum: 'In hoa: tối thiểu {number} kí tự',\n i18n_lowercase_minimum: 'In thường: tối thiểu {number} kí tự',\n i18n_number_minimum: 'Số: tối thiểu {number} kí tự',\n i18n_symbol_minimum: 'Kí tự đặc biệt: tối thiểu {number} kí tự',\n i18n_no_data_yet: 'Chưa có dữ liệu',\n i18n_no_results: 'Chưa có kết quả',\n i18n_january: 'Tháng 1{year}',\n i18n_february: 'Tháng 2{year}',\n i18n_march: 'Tháng 3{year}',\n i18n_april: 'Tháng 4{year}',\n i18n_may: 'Tháng 5{year}',\n i18n_june: 'Tháng 6{year}',\n i18n_july: 'Tháng 7{year}',\n i18n_august: 'Tháng 8{year}',\n i18n_september: 'Tháng 9{year}',\n i18n_october: 'Tháng 10{year}',\n i18n_november: 'Tháng 11{year}',\n i18n_december: 'Tháng 12{year}',\n i18n_enter_value: 'Nhập giá trị',\n i18n_select_day: 'Chọn ngày',\n i18n_select_month: 'Chọn tháng',\n i18n_select_year: 'Chọn năm',\n i18n_select_quarter: 'Chọn quý',\n i18n_day_param: 'Ngày { day }',\n i18n_year_param: 'Năm { year }',\n i18n_quarter: 'Quý {quarter}',\n i18n_label_from: 'Từ',\n i18n_to: 'đến',\n i18n_select_field: 'Chọn field',\n i18n_enter_params: 'Nhập tham số',\n i18n_save_calculation: 'Lưu phép tính',\n i18n_field_error: 'Lỗi trường thông tin',\n i18n_table: 'Bảng',\n i18n_add_new_column_left: 'Thêm cột bên trái',\n i18n_add_new_column_right: 'Thêm cột bên phải',\n i18n_add_new_row_above: 'Thêm hàng bên trên',\n i18n_add_new_row_below: 'Thêm hàng bên dưới',\n i18n_merge_cells: 'Gộp ô',\n i18n_split_cells: 'Tách ô',\n i18n_delete_row: 'Xóa hàng',\n i18n_delete_column: 'Xóa cột',\n i18n_delete_table: 'Xóa bảng',\n i18n_select_cell: 'Chọn kích thước (hàng × cột)',\n i18n_script_sub: 'Chỉ số dưới',\n i18n_script_super: 'Chỉ số trên',\n i18n_video: 'Video',\n i18n_list_checked: 'Danh sách đánh dấu',\n i18n_keep_alt_key_to_change_the_ratio_when_changing_the_size: 'Giữ phím alt để thay đổi tỉ lệ khi thay đổi kích thước',\n i18n_press_enter_to_confirm: 'Nhấn phím Enter để xác nhận',\n i18n_left_align: 'Căn trái',\n i18n_right_align: 'Căn phải',\n i18n_center_align: 'Căn giữa',\n i18n_restore_to_default: 'Khôi phục',\n i18n_copy: 'Sao chép',\n i18n_copied: 'Đã sao chép',\n i18n_line_wrap: 'Xuống dòng',\n i18n_remove_line_wrap: 'Bỏ xuống dòng',\n i18n_pls_enter_info_results_will_show_here: 'Vui lòng nhập thông tin. Kết quả sẽ được hiển thị tại đây.',\n },\n en: {\n i18n_select_information: 'Select information',\n i18n_go_to: 'Jump to page',\n i18n_value_sum_page: '{value} {value, plural, =0 {page} =1 {page} other {pages} } in total',\n i18n_message_error_input_max_length: 'Maximum length {{number}} characters',\n i18n_message_error_input_min_length: 'Minimum length {{number}} characters',\n i18n_preview: 'Preview',\n i18n_file_size_compare_when_resize: '{current_size} (Original: {original_size})',\n i18n_size_photo: 'Photo size',\n i18n_ratio_size: 'Ratio',\n i18n_resize: 'Resize',\n i18n_horizontal_flip: 'Horizontal Flip',\n i18n_vertical_flip: 'Vertical Flip',\n i18n_rotate_ninety_degrees: 'Rotate 90 degrees',\n i18n_rotate_photos: 'Rotate',\n i18n_width: 'Width',\n i18n_length: 'Length',\n i18n_custom: 'Custom',\n i18n_restore_the_original_state: 'Reset',\n i18n_cutting_ratio: 'Aspect Ratio',\n i18n_exit_edit_mode: 'Exit edit mode',\n i18n_save_to_new_file: 'Save as new file',\n i18n_edit_file_name: 'Edit {file_name}',\n i18n_file_size_exceeds_the_allowed_limit: 'The import file is too large to upload',\n i18n_the_file_support_format_is_not_correct: 'This file type is not allowed',\n i18n_invalid_file_upload: 'Invalid file format',\n i18n_file_number_exceeds_the_allowed_limit_please_delete_the_file: 'You can only upload a maximum of {value} files. Please delete and try again.',\n i18n_size_not_number_mb: 'Maximum size is {number}MB.',\n i18n_edit: 'Edit',\n i18n_choose_as_your_avatar: 'Choose your avatar',\n i18n_avatar: 'Avatar',\n i18n_note_upload_file_volume: 'Format: .doc, .docx, .xls, .xlsx, .ppt, .pptx, .pdf. Max size for each file: {value}.',\n i18n_note_upload_video_volume: 'Format: .mp4, .mov, .mpg, .avi, .wmv. Max size for each file: {value}.',\n i18n_note_upload_image_volume: 'Format: .gif, .jpg, .jpeg, .png. Max size for each file: {value}.',\n i18n_note_upload_audio_volume: 'Format: .mp3, .wav, .ogg, .aac, .m4a, .flac, .wma. Max size for each file: {value}.',\n i18n_drag_file_here_to_upload_or_select_file: 'Drag and drop or <span>Choose a file<span> to upload',\n i18n_back_to_list: 'Back to list',\n i18n_4x_other_operations: 'Other',\n i18n_add_currency: 'Add currency',\n i18n_add_language: 'Add language',\n i18n_unselect_option: 'Remove the selected value',\n i18n_notification_manipulation_not_success: 'Unsuccessful',\n i18n_all: 'All',\n i18n_have_no_selection: 'There are no options in the list.',\n i18n_more_select: 'Select more',\n i18n_no_result: 'No result',\n i18n_alert_connect_server_error: 'Cannot connect to Server.',\n i18n_valid_duplicate_msg: 'Fields cannot be duplicated',\n i18n_select: 'Select',\n i18n_date_compare_start_end_message_error: 'The end time must be greater than the start time.',\n i18n_invalid_end_date_selected: 'The end time must be greater than the start time.',\n i18n_no_data: 'No data',\n i18n_upload_image: 'Upload image',\n i18n_content: 'Content',\n i18n_save: 'Save',\n i18n_image: 'Photo',\n i18n_unlink: 'Unlink',\n i18n_insert_link: 'Insert link',\n i18n_quote: 'Quote',\n i18n_list_numbered: 'Numbered list',\n i18n_list_bulleted: 'Bullet',\n i18n_indent_decrease: 'Decrease indent',\n i18n_indent_increase: 'Increase indent',\n i18n_adjust: 'Alignment',\n i18n_text_decoration_underline: 'Underline',\n i18n_text_line_through: 'Strikethrough',\n i18n_font_style_italic: 'Italic',\n i18n_font_weight_bold: 'Bold',\n i18n_background_color: 'background color',\n i18n_text_color: 'Text color',\n i18n_redo: 'Redo',\n i18n_undo: 'Undo',\n i18n_text_emoji: 'Emoji',\n i18n_collapse: 'Collapse',\n i18n_total_quantity: \"<span class='text-[#9ca2ad] libs-ui-font-h5s'>Total: </span> <span class='libs-ui-font-h5s'>{value}</span>\",\n i18n_number_item_selected: '{value} item được chọn',\n i18n_character: 'character',\n i18n_search: 'Search',\n i18n_color_custom: 'Custom theme color',\n i18n_add_new: 'Add new',\n i18n_cancel: 'Cancel',\n i18n_apply: 'Apply',\n i18n_copy_successfully: 'Copied',\n i18n_restore: 'Recover',\n i18n_zoom_in: 'Zoom in',\n i18n_zoom_out: 'Zoom out',\n i18n_action_view_full_screen: 'View full screen',\n i18n_action_exit_full_screen: 'Exit full screen mode',\n i18n_agree: 'Agree',\n i18n_view_more: 'See more',\n i18n_delete: 'Delete',\n i18n_select_value: 'Select value',\n i18n_selecting_options: 'Selecting {value} {value, plural, =1 {selection} other {selections} }',\n i18n_select_all_searched_results: 'Select all results',\n i18n_unselect_all_searched_results: 'Deselect all results',\n i18n_import_content: 'Enter value',\n i18n_valid_empty_message: 'This field is required',\n i18n_valid_pattern_message: 'The information field is not in the correct format',\n i18n_message_error_input_max_value: 'Maximum value is { value }',\n i18n_message_error_input_min_value: 'Minimum value is { value }',\n i18n_show: 'Show',\n i18n_hidden: 'Hide',\n i18n_password_is_required: 'Password is required.',\n i18n_password_min_length: 'Passwords cannot be less than {length} characters.',\n i18n_minimum_length_number: 'Minimum length {number} characters',\n i18n_maximum_length_number: 'Maximum length {number} characters',\n i18n_contains_all_types_of_characters_below: 'Contains all of the following character types:',\n i18n_contains_number_types_of_characters_below: 'Contains at least {number} of the following character types:',\n i18n_uppercase_minimum: 'Uppercase: at least {number} characters',\n i18n_lowercase_minimum: 'Lowercase: at least {number} characters',\n i18n_number_minimum: 'Number: at least {number} characters',\n i18n_symbol_minimum: 'Special characters: at least {number} characters',\n i18n_no_data_yet: 'No data available',\n i18n_no_results: 'There are no outcomes',\n i18n_january: 'January{year}',\n i18n_february: 'February{year}',\n i18n_march: 'March{year}',\n i18n_april: 'April{year}',\n i18n_may: 'May{year}',\n i18n_june: 'June{year}',\n i18n_july: 'July{year}',\n i18n_august: 'August{year}',\n i18n_september: 'September{year}',\n i18n_october: 'October{year}',\n i18n_november: 'November{year}',\n i18n_december: 'December{year}',\n i18n_enter_value: 'Enter value',\n i18n_select_day: 'Date',\n i18n_select_month: 'Select month',\n i18n_select_year: 'Select year',\n i18n_select_quarter: 'Choose quarter',\n i18n_day_param: 'Day { day }',\n i18n_year_param: 'Year { year }',\n i18n_quarter: 'Quarter {quarter}',\n i18n_label_from: 'from',\n i18n_to: 'to',\n i18n_select_field: 'Choose a field',\n i18n_enter_params: 'Insert value here',\n i18n_save_calculation: 'Save',\n i18n_field_error: 'Field error',\n i18n_table: 'Table',\n i18n_add_new_column_left: 'Add column left',\n i18n_add_new_column_right: 'Add column right',\n i18n_add_new_row_above: 'Add row above',\n i18n_add_new_row_below: 'Add row below',\n i18n_merge_cells: 'Merge cells',\n i18n_split_cells: 'Split cells',\n i18n_delete_row: 'Delete row',\n i18n_delete_column: 'Delete column',\n i18n_delete_table: 'Delete table',\n i18n_select_cell: 'Select (row × column)',\n i18n_script_sub: 'Subscript',\n i18n_script_super: 'Superscript',\n i18n_video: 'Video',\n i18n_list_checked: 'List checked',\n i18n_keep_alt_key_to_change_the_ratio_when_changing_the_size: 'Keep the Alt key to change the ratio when changing the size',\n i18n_press_enter_to_confirm: 'Press Enter to confirm',\n i18n_left_align: 'Left align',\n i18n_right_align: 'Right align',\n i18n_center_align: 'Center align',\n i18n_restore_to_default: 'Restore to default',\n i18n_copy: 'Copy',\n i18n_copied: 'Copied',\n i18n_line_wrap: 'Wrap',\n i18n_remove_line_wrap: 'Unwrap',\n i18n_pls_enter_info_results_will_show_here: 'Please enter information. Results will show here',\n },\n };\n};\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { UtilsCache, get, isEmpty } from '@libs-ui/utils';\nimport { MissingTranslationHandler, TranslateCompiler, TranslateLoader, TranslateParser, TranslateService, TranslateStore } from '@ngx-translate/core';\nimport { Observable, of, take } from 'rxjs';\nimport { getInterpolateParamDefault } from './config-translate';\nimport { dataTranslation } from './data-translation';\nimport { TYPE_LANGUAGE_SUPPORT } from '@libs-ui/interfaces-types';\n\nexport class LibsUiTranslateService extends TranslateService {\n constructor(\n store: TranslateStore,\n currentLoader: TranslateLoader,\n compiler: TranslateCompiler,\n parser: TranslateParser,\n missingTranslationHandler: MissingTranslationHandler,\n useDefaultLang: boolean,\n isolate: boolean,\n extend: boolean,\n defaultLanguage: string\n ) {\n super(store, currentLoader, compiler, parser, missingTranslationHandler, useDefaultLang, isolate, extend, defaultLanguage);\n }\n public override instant(key: string | Array<string>, interpolateParams?: NonNullable<unknown>): string | any {\n if (isEmpty(key)) {\n return key;\n }\n const val = super.instant(key, { ...getInterpolateParamDefault(), ...(interpolateParams || {}) });\n return val;\n }\n\n public override get(key: string | Array<string>, interpolateParams?: NonNullable<unknown>): Observable<string | any> {\n if (isEmpty(key)) {\n return of(key);\n }\n return super.get(key, { ...getInterpolateParamDefault(), ...(interpolateParams || {}) });\n }\n\n public override getParsedResult(translations: any, key: any, interpolateParams?: NonNullable<unknown>): any {\n return super.getParsedResult(translations, isEmpty(key) ? ' ' : key, { ...getInterpolateParamDefault(), ...(interpolateParams || {}) });\n }\n\n public override use(lang: TYPE_LANGUAGE_SUPPORT): Observable<any> {\n const event = super.use(lang);\n this.get(lang)\n .pipe(take(1))\n .subscribe((e) => {\n const i18n = get<Record<string, Record<string, string>>>(dataTranslation(), e);\n Object.keys(i18n).forEach((key: string) => {\n if (super.instant(key) === key) {\n super.set(key, i18n[key], e);\n }\n });\n });\n UtilsCache.setLang(lang);\n return event;\n }\n}\n","import { HttpClient, provideHttpClient, withInterceptorsFromDi } from '@angular/common/http';\nimport { TranslateService, TranslateStore, TranslateLoader, TranslateCompiler, TranslateParser, MissingTranslationHandler, TranslateModule } from '@ngx-translate/core';\nimport { TranslateMessageFormatCompiler } from 'ngx-translate-messageformat-compiler';\nimport { TranslateHttpLoader } from '@ngx-translate/http-loader';\nimport { importProvidersFrom, signal } from '@angular/core';\nimport { LibsUiTranslateService } from './translate.service';\nlet link = '/i18n/';\nconst httpLoaderFactory = (http: HttpClient): TranslateHttpLoader => {\n return new TranslateHttpLoader(http, link, '.json');\n};\n\nconst TranslateForRootConfig = {\n loader: {\n provide: TranslateLoader,\n useFactory: httpLoaderFactory,\n deps: [HttpClient],\n },\n compiler: {\n provide: TranslateCompiler,\n useClass: TranslateMessageFormatCompiler,\n },\n};\n\nexport const TranslateProviderConfig = {\n provide: TranslateService,\n useFactory: (\n store: TranslateStore,\n currentLoader: TranslateLoader,\n compiler: TranslateCompiler,\n parser: TranslateParser,\n missingTranslationHandler: MissingTranslationHandler,\n useDefaultLang: boolean,\n isolate: boolean,\n extend: boolean,\n defaultLanguage: string\n ) => {\n return new LibsUiTranslateService(store, currentLoader, compiler, parser, missingTranslationHandler, useDefaultLang, isolate, extend, defaultLanguage);\n },\n deps: [TranslateStore, TranslateLoader, TranslateCompiler, TranslateParser, MissingTranslationHandler],\n};\n\nexport const getConfigTranslate = (linkFileI18n?: string) => {\n if (linkFileI18n !== undefined) {\n link = linkFileI18n;\n }\n return [provideHttpClient(withInterceptorsFromDi()), importProvidersFrom(TranslateModule.forRoot(TranslateForRootConfig)), TranslateProviderConfig];\n};\n\nconst interpolateStore = signal<Record<string, string>>({});\n\nexport const setInterpolateParamDefault = (interpolate: Record<string, string>) => {\n interpolateStore.set(interpolate);\n};\n\nexport const getInterpolateParamDefault = (): Record<string, string> => {\n return interpolateStore();\n};\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;AAAO,MAAM,eAAe,GAAG,MAAK;IAClC,OAAO;AACL,QAAA,EAAE,EAAE;AACF,YAAA,uBAAuB,EAAE,gBAAgB;AACzC,YAAA,UAAU,EAAE,QAAQ;AACpB,YAAA,mBAAmB,EAAE,oBAAoB;AACzC,YAAA,mCAAmC,EAAE,gCAAgC;AACrE,YAAA,mCAAmC,EAAE,mCAAmC;AACxE,YAAA,YAAY,EAAE,WAAW;AACzB,YAAA,kCAAkC,EAAE,2CAA2C;AAC/E,YAAA,eAAe,EAAE,gBAAgB;AACjC,YAAA,eAAe,EAAE,YAAY;AAC7B,YAAA,WAAW,EAAE,QAAQ;AACrB,YAAA,oBAAoB,EAAE,WAAW;AACjC,YAAA,kBAAkB,EAAE,SAAS;AAC7B,YAAA,0BAA0B,EAAE,UAAU;AACtC,YAAA,kBAAkB,EAAE,UAAU;AAC9B,YAAA,UAAU,EAAE,YAAY;AACxB,YAAA,WAAW,EAAE,WAAW;AACxB,YAAA,WAAW,EAAE,WAAW;AACxB,YAAA,+BAA+B,EAAE,8BAA8B;AAC/D,YAAA,kBAAkB,EAAE,WAAW;AAC/B,YAAA,mBAAmB,EAAE,kBAAkB;AACvC,YAAA,qBAAqB,EAAE,oBAAoB;AAC3C,YAAA,mBAAmB,EAAE,iBAAiB;AACtC,YAAA,wCAAwC,EAAE,4CAA4C;AACtF,YAAA,2CAA2C,EAAE,kCAAkC;AAC/E,YAAA,wBAAwB,EAAE,2BAA2B;AACrD,YAAA,iEAAiE,EAAE,2FAA2F;AAC9J,YAAA,uBAAuB,EAAE,uCAAuC;AAChE,YAAA,SAAS,EAAE,KAAK;AAChB,YAAA,0BAA0B,EAAE,uBAAuB;AACnD,YAAA,WAAW,EAAE,cAAc;AAC3B,YAAA,4BAA4B,EAAE,4FAA4F;AAC1H,YAAA,6BAA6B,EAAE,6EAA6E;AAC5G,YAAA,6BAA6B,EAAE,wEAAwE;AACvG,YAAA,6BAA6B,EAAE,0FAA0F;AACzH,YAAA,4CAA4C,EAAE,yDAAyD;AACvG,YAAA,iBAAiB,EAAE,oBAAoB;AACvC,YAAA,wBAAwB,EAAE,eAAe;AACzC,YAAA,iBAAiB,EAAE,cAAc;AACjC,YAAA,iBAAiB,EAAE,eAAe;AAClC,YAAA,oBAAoB,EAAE,sBAAsB;AAC5C,YAAA,0CAA0C,EAAE,4BAA4B;AACxE,YAAA,QAAQ,EAAE,QAAQ;AAClB,YAAA,sBAAsB,EAAE,sCAAsC;AAC9D,YAAA,gBAAgB,EAAE,WAAW;AAC7B,YAAA,cAAc,EAAE,kBAAkB;AAClC,YAAA,+BAA+B,EAAE,4CAA4C;AAC7E,YAAA,wBAAwB,EAAE,6CAA6C;AACvE,YAAA,WAAW,EAAE,MAAM;AACnB,YAAA,yCAAyC,EAAE,+CAA+C;AAC1F,YAAA,8BAA8B,EAAE,oDAAoD;AACpF,YAAA,YAAY,EAAE,kBAAkB;AAChC,YAAA,iBAAiB,EAAE,aAAa;AAChC,YAAA,YAAY,EAAE,UAAU;AACxB,YAAA,SAAS,EAAE,KAAK;AAChB,YAAA,UAAU,EAAE,UAAU;AACtB,YAAA,WAAW,EAAE,cAAc;AAC3B,YAAA,gBAAgB,EAAE,eAAe;AACjC,YAAA,UAAU,EAAE,WAAW;AACvB,YAAA,kBAAkB,EAAE,kBAAkB;AACtC,YAAA,kBAAkB,EAAE,mBAAmB;AACvC,YAAA,oBAAoB,EAAE,cAAc;AACpC,YAAA,oBAAoB,EAAE,cAAc;AACpC,YAAA,WAAW,EAAE,WAAW;AACxB,YAAA,8BAA8B,EAAE,WAAW;AAC3C,YAAA,sBAAsB,EAAE,YAAY;AACpC,YAAA,sBAAsB,EAAE,YAAY;AACpC,YAAA,qBAAqB,EAAE,QAAQ;AAC/B,YAAA,qBAAqB,EAAE,SAAS;AAChC,YAAA,eAAe,EAAE,SAAS;AAC1B,YAAA,SAAS,EAAE,kBAAkB;AAC7B,YAAA,SAAS,EAAE,UAAU;AACrB,YAAA,eAAe,EAAE,OAAO;AACxB,YAAA,aAAa,EAAE,SAAS;AACxB,YAAA,mBAAmB,EAAE,+GAA+G;AACpI,YAAA,yBAAyB,EAAE,uEAAuE;AAClG,YAAA,cAAc,EAAE,OAAO;AACvB,YAAA,WAAW,EAAE,UAAU;AACvB,YAAA,iBAAiB,EAAE,eAAe;AAClC,YAAA,YAAY,EAAE,UAAU;AACxB,YAAA,WAAW,EAAE,QAAQ;AACrB,YAAA,UAAU,EAAE,SAAS;AACrB,YAAA,sBAAsB,EAAE,qBAAqB;AAC7C,YAAA,YAAY,EAAE,WAAW;AACzB,YAAA,YAAY,EAAE,UAAU;AACxB,YAAA,aAAa,EAAE,SAAS;AACxB,YAAA,4BAA4B,EAAE,mBAAmB;AACjD,YAAA,4BAA4B,EAAE,iCAAiC;AAC/D,YAAA,UAAU,EAAE,QAAQ;AACpB,YAAA,cAAc,EAAE,UAAU;AAC1B,YAAA,WAAW,EAAE,KAAK;AAClB,YAAA,iBAAiB,EAAE,cAAc;AACjC,YAAA,sBAAsB,EAAE,4BAA4B;AACpD,YAAA,gCAAgC,EAAE,qBAAqB;AACvD,YAAA,kCAAkC,EAAE,wBAAwB;AAC5D,YAAA,mBAAmB,EAAE,eAAe;AACpC,YAAA,wBAAwB,EAAE,2CAA2C;AACrE,YAAA,0BAA0B,EAAE,uCAAuC;AACnE,YAAA,kCAAkC,EAAE,6BAA6B;AACjE,YAAA,kCAAkC,EAAE,gCAAgC;AACpE,YAAA,SAAS,EAAE,MAAM;AACjB,YAAA,WAAW,EAAE,IAAI;YACjB,yBAAyB,EAAE,oCAAoC;YAC/D,wBAAwB,EAAE,iDAAiD;AAC3E,YAAA,0BAA0B,EAAE,iCAAiC;AAC7D,YAAA,0BAA0B,EAAE,8BAA8B;AAC1D,YAAA,2CAA2C,EAAE,sCAAsC;AACnF,YAAA,8CAA8C,EAAE,yDAAyD;AACzG,YAAA,sBAAsB,EAAE,kCAAkC;AAC1D,YAAA,sBAAsB,EAAE,qCAAqC;AAC7D,YAAA,mBAAmB,EAAE,8BAA8B;AACnD,YAAA,mBAAmB,EAAE,0CAA0C;AAC/D,YAAA,gBAAgB,EAAE,iBAAiB;AACnC,YAAA,eAAe,EAAE,iBAAiB;AAClC,YAAA,YAAY,EAAE,eAAe;AAC7B,YAAA,aAAa,EAAE,eAAe;AAC9B,YAAA,UAAU,EAAE,eAAe;AAC3B,YAAA,UAAU,EAAE,eAAe;AAC3B,YAAA,QAAQ,EAAE,eAAe;AACzB,YAAA,SAAS,EAAE,eAAe;AAC1B,YAAA,SAAS,EAAE,eAAe;AAC1B,YAAA,WAAW,EAAE,eAAe;AAC5B,YAAA,cAAc,EAAE,eAAe;AAC/B,YAAA,YAAY,EAAE,gBAAgB;AAC9B,YAAA,aAAa,EAAE,gBAAgB;AAC/B,YAAA,aAAa,EAAE,gBAAgB;AAC/B,YAAA,gBAAgB,EAAE,cAAc;AAChC,YAAA,eAAe,EAAE,WAAW;AAC5B,YAAA,iBAAiB,EAAE,YAAY;AAC/B,YAAA,gBAAgB,EAAE,UAAU;AAC5B,YAAA,mBAAmB,EAAE,UAAU;AAC/B,YAAA,cAAc,EAAE,cAAc;AAC9B,YAAA,eAAe,EAAE,cAAc;AAC/B,YAAA,YAAY,EAAE,eAAe;AAC7B,YAAA,eAAe,EAAE,IAAI;AACrB,YAAA,OAAO,EAAE,KAAK;AACd,YAAA,iBAAiB,EAAE,YAAY;AAC/B,YAAA,iBAAiB,EAAE,cAAc;AACjC,YAAA,qBAAqB,EAAE,eAAe;AACtC,YAAA,gBAAgB,EAAE,sBAAsB;AACxC,YAAA,UAAU,EAAE,MAAM;AAClB,YAAA,wBAAwB,EAAE,mBAAmB;AAC7C,YAAA,yBAAyB,EAAE,mBAAmB;AAC9C,YAAA,sBAAsB,EAAE,oBAAoB;AAC5C,YAAA,sBAAsB,EAAE,oBAAoB;AAC5C,YAAA,gBAAgB,EAAE,OAAO;AACzB,YAAA,gBAAgB,EAAE,QAAQ;AAC1B,YAAA,eAAe,EAAE,UAAU;AAC3B,YAAA,kBAAkB,EAAE,SAAS;AAC7B,YAAA,iBAAiB,EAAE,UAAU;AAC7B,YAAA,gBAAgB,EAAE,8BAA8B;AAChD,YAAA,eAAe,EAAE,aAAa;AAC9B,YAAA,iBAAiB,EAAE,aAAa;AAChC,YAAA,UAAU,EAAE,OAAO;AACnB,YAAA,iBAAiB,EAAE,oBAAoB;AACvC,YAAA,4DAA4D,EAAE,wDAAwD;AACtH,YAAA,2BAA2B,EAAE,6BAA6B;AAC1D,YAAA,eAAe,EAAE,UAAU;AAC3B,YAAA,gBAAgB,EAAE,UAAU;AAC5B,YAAA,iBAAiB,EAAE,UAAU;AAC7B,YAAA,uBAAuB,EAAE,WAAW;AACpC,YAAA,SAAS,EAAE,UAAU;AACrB,YAAA,WAAW,EAAE,aAAa;AAC1B,YAAA,cAAc,EAAE,YAAY;AAC5B,YAAA,qBAAqB,EAAE,eAAe;AACtC,YAAA,0CAA0C,EAAE,4DAA4D;AACzG,SAAA;AACD,QAAA,EAAE,EAAE;AACF,YAAA,uBAAuB,EAAE,oBAAoB;AAC7C,YAAA,UAAU,EAAE,cAAc;AAC1B,YAAA,mBAAmB,EAAE,sEAAsE;AAC3F,YAAA,mCAAmC,EAAE,sCAAsC;AAC3E,YAAA,mCAAmC,EAAE,sCAAsC;AAC3E,YAAA,YAAY,EAAE,SAAS;AACvB,YAAA,kCAAkC,EAAE,4CAA4C;AAChF,YAAA,eAAe,EAAE,YAAY;AAC7B,YAAA,eAAe,EAAE,OAAO;AACxB,YAAA,WAAW,EAAE,QAAQ;AACrB,YAAA,oBAAoB,EAAE,iBAAiB;AACvC,YAAA,kBAAkB,EAAE,eAAe;AACnC,YAAA,0BAA0B,EAAE,mBAAmB;AAC/C,YAAA,kBAAkB,EAAE,QAAQ;AAC5B,YAAA,UAAU,EAAE,OAAO;AACnB,YAAA,WAAW,EAAE,QAAQ;AACrB,YAAA,WAAW,EAAE,QAAQ;AACrB,YAAA,+BAA+B,EAAE,OAAO;AACxC,YAAA,kBAAkB,EAAE,cAAc;AAClC,YAAA,mBAAmB,EAAE,gBAAgB;AACrC,YAAA,qBAAqB,EAAE,kBAAkB;AACzC,YAAA,mBAAmB,EAAE,kBAAkB;AACvC,YAAA,wCAAwC,EAAE,wCAAwC;AAClF,YAAA,2CAA2C,EAAE,+BAA+B;AAC5E,YAAA,wBAAwB,EAAE,qBAAqB;AAC/C,YAAA,iEAAiE,EAAE,8EAA8E;AACjJ,YAAA,uBAAuB,EAAE,6BAA6B;AACtD,YAAA,SAAS,EAAE,MAAM;AACjB,YAAA,0BAA0B,EAAE,oBAAoB;AAChD,YAAA,WAAW,EAAE,QAAQ;AACrB,YAAA,4BAA4B,EAAE,uFAAuF;AACrH,YAAA,6BAA6B,EAAE,wEAAwE;AACvG,YAAA,6BAA6B,EAAE,mEAAmE;AAClG,YAAA,6BAA6B,EAAE,qFAAqF;AACpH,YAAA,4CAA4C,EAAE,sDAAsD;AACpG,YAAA,iBAAiB,EAAE,cAAc;AACjC,YAAA,wBAAwB,EAAE,OAAO;AACjC,YAAA,iBAAiB,EAAE,cAAc;AACjC,YAAA,iBAAiB,EAAE,cAAc;AACjC,YAAA,oBAAoB,EAAE,2BAA2B;AACjD,YAAA,0CAA0C,EAAE,cAAc;AAC1D,YAAA,QAAQ,EAAE,KAAK;AACf,YAAA,sBAAsB,EAAE,mCAAmC;AAC3D,YAAA,gBAAgB,EAAE,aAAa;AAC/B,YAAA,cAAc,EAAE,WAAW;AAC3B,YAAA,+BAA+B,EAAE,2BAA2B;AAC5D,YAAA,wBAAwB,EAAE,6BAA6B;AACvD,YAAA,WAAW,EAAE,QAAQ;AACrB,YAAA,yCAAyC,EAAE,mDAAmD;AAC9F,YAAA,8BAA8B,EAAE,mDAAmD;AACnF,YAAA,YAAY,EAAE,SAAS;AACvB,YAAA,iBAAiB,EAAE,cAAc;AACjC,YAAA,YAAY,EAAE,SAAS;AACvB,YAAA,SAAS,EAAE,MAAM;AACjB,YAAA,UAAU,EAAE,OAAO;AACnB,YAAA,WAAW,EAAE,QAAQ;AACrB,YAAA,gBAAgB,EAAE,aAAa;AAC/B,YAAA,UAAU,EAAE,OAAO;AACnB,YAAA,kBAAkB,EAAE,eAAe;AACnC,YAAA,kBAAkB,EAAE,QAAQ;AAC5B,YAAA,oBAAoB,EAAE,iBAAiB;AACvC,YAAA,oBAAoB,EAAE,iBAAiB;AACvC,YAAA,WAAW,EAAE,WAAW;AACxB,YAAA,8BAA8B,EAAE,WAAW;AAC3C,YAAA,sBAAsB,EAAE,eAAe;AACvC,YAAA,sBAAsB,EAAE,QAAQ;AAChC,YAAA,qBAAqB,EAAE,MAAM;AAC7B,YAAA,qBAAqB,EAAE,kBAAkB;AACzC,YAAA,eAAe,EAAE,YAAY;AAC7B,YAAA,SAAS,EAAE,MAAM;AACjB,YAAA,SAAS,EAAE,MAAM;AACjB,YAAA,eAAe,EAAE,OAAO;AACxB,YAAA,aAAa,EAAE,UAAU;AACzB,YAAA,mBAAmB,EAAE,4GAA4G;AACjI,YAAA,yBAAyB,EAAE,wBAAwB;AACnD,YAAA,cAAc,EAAE,WAAW;AAC3B,YAAA,WAAW,EAAE,QAAQ;AACrB,YAAA,iBAAiB,EAAE,oBAAoB;AACvC,YAAA,YAAY,EAAE,SAAS;AACvB,YAAA,WAAW,EAAE,QAAQ;AACrB,YAAA,UAAU,EAAE,OAAO;AACnB,YAAA,sBAAsB,EAAE,QAAQ;AAChC,YAAA,YAAY,EAAE,SAAS;AACvB,YAAA,YAAY,EAAE,SAAS;AACvB,YAAA,aAAa,EAAE,UAAU;AACzB,YAAA,4BAA4B,EAAE,kBAAkB;AAChD,YAAA,4BAA4B,EAAE,uBAAuB;AACrD,YAAA,UAAU,EAAE,OAAO;AACnB,YAAA,cAAc,EAAE,UAAU;AAC1B,YAAA,WAAW,EAAE,QAAQ;AACrB,YAAA,iBAAiB,EAAE,cAAc;AACjC,YAAA,sBAAsB,EAAE,uEAAuE;AAC/F,YAAA,gCAAgC,EAAE,oBAAoB;AACtD,YAAA,kCAAkC,EAAE,sBAAsB;AAC1D,YAAA,mBAAmB,EAAE,aAAa;AAClC,YAAA,wBAAwB,EAAE,wBAAwB;AAClD,YAAA,0BAA0B,EAAE,oDAAoD;AAChF,YAAA,kCAAkC,EAAE,4BAA4B;AAChE,YAAA,kCAAkC,EAAE,4BAA4B;AAChE,YAAA,SAAS,EAAE,MAAM;AACjB,YAAA,WAAW,EAAE,MAAM;AACnB,YAAA,yBAAyB,EAAE,uBAAuB;AAClD,YAAA,wBAAwB,EAAE,oDAAoD;AAC9E,YAAA,0BAA0B,EAAE,oCAAoC;AAChE,YAAA,0BAA0B,EAAE,oCAAoC;AAChE,YAAA,2CAA2C,EAAE,gDAAgD;AAC7F,YAAA,8CAA8C,EAAE,8DAA8D;AAC9G,YAAA,sBAAsB,EAAE,yCAAyC;AACjE,YAAA,sBAAsB,EAAE,yCAAyC;AACjE,YAAA,mBAAmB,EAAE,sCAAsC;AAC3D,YAAA,mBAAmB,EAAE,kDAAkD;AACvE,YAAA,gBAAgB,EAAE,mBAAmB;AACrC,YAAA,eAAe,EAAE,uBAAuB;AACxC,YAAA,YAAY,EAAE,eAAe;AAC7B,YAAA,aAAa,EAAE,gBAAgB;AAC/B,YAAA,UAAU,EAAE,aAAa;AACzB,YAAA,UAAU,EAAE,aAAa;AACzB,YAAA,QAAQ,EAAE,WAAW;AACrB,YAAA,SAAS,EAAE,YAAY;AACvB,YAAA,SAAS,EAAE,YAAY;AACvB,YAAA,WAAW,EAAE,cAAc;AAC3B,YAAA,cAAc,EAAE,iBAAiB;AACjC,YAAA,YAAY,EAAE,eAAe;AAC7B,YAAA,aAAa,EAAE,gBAAgB;AAC/B,YAAA,aAAa,EAAE,gBAAgB;AAC/B,YAAA,gBAAgB,EAAE,aAAa;AAC/B,YAAA,eAAe,EAAE,MAAM;AACvB,YAAA,iBAAiB,EAAE,cAAc;AACjC,YAAA,gBAAgB,EAAE,aAAa;AAC/B,YAAA,mBAAmB,EAAE,gBAAgB;AACrC,YAAA,cAAc,EAAE,aAAa;AAC7B,YAAA,eAAe,EAAE,eAAe;AAChC,YAAA,YAAY,EAAE,mBAAmB;AACjC,YAAA,eAAe,EAAE,MAAM;AACvB,YAAA,OAAO,EAAE,IAAI;AACb,YAAA,iBAAiB,EAAE,gBAAgB;AACnC,YAAA,iBAAiB,EAAE,mBAAmB;AACtC,YAAA,qBAAqB,EAAE,MAAM;AAC7B,YAAA,gBAAgB,EAAE,aAAa;AAC/B,YAAA,UAAU,EAAE,OAAO;AACnB,YAAA,wBAAwB,EAAE,iBAAiB;AAC3C,YAAA,yBAAyB,EAAE,kBAAkB;AAC7C,YAAA,sBAAsB,EAAE,eAAe;AACvC,YAAA,sBAAsB,EAAE,eAAe;AACvC,YAAA,gBAAgB,EAAE,aAAa;AAC/B,YAAA,gBAAgB,EAAE,aAAa;AAC/B,YAAA,eAAe,EAAE,YAAY;AAC7B,YAAA,kBAAkB,EAAE,eAAe;AACnC,YAAA,iBAAiB,EAAE,cAAc;AACjC,YAAA,gBAAgB,EAAE,uBAAuB;AACzC,YAAA,eAAe,EAAE,WAAW;AAC5B,YAAA,iBAAiB,EAAE,aAAa;AAChC,YAAA,UAAU,EAAE,OAAO;AACnB,YAAA,iBAAiB,EAAE,cAAc;AACjC,YAAA,4DAA4D,EAAE,6DAA6D;AAC3H,YAAA,2BAA2B,EAAE,wBAAwB;AACrD,YAAA,eAAe,EAAE,YAAY;AAC7B,YAAA,gBAAgB,EAAE,aAAa;AAC/B,YAAA,iBAAiB,EAAE,cAAc;AACjC,YAAA,uBAAuB,EAAE,oBAAoB;AAC7C,YAAA,SAAS,EAAE,MAAM;AACjB,YAAA,WAAW,EAAE,QAAQ;AACrB,YAAA,cAAc,EAAE,MAAM;AACtB,YAAA,qBAAqB,EAAE,QAAQ;AAC/B,YAAA,0CAA0C,EAAE,kDAAkD;AAC/F,SAAA;KACF;AACH,CAAC;;ACjVD;AAQM,MAAO,sBAAuB,SAAQ,gBAAgB,CAAA;AAC1D,IAAA,WAAA,CACE,KAAqB,EACrB,aAA8B,EAC9B,QAA2B,EAC3B,MAAuB,EACvB,yBAAoD,EACpD,cAAuB,EACvB,OAAgB,EAChB,MAAe,EACf,eAAuB,EAAA;AAEvB,QAAA,KAAK,CAAC,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,EAAE,yBAAyB,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,EAAE,eAAe,CAAC;IAC5H;IACgB,OAAO,CAAC,GAA2B,EAAE,iBAAwC,EAAA;AAC3F,QAAA,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE;AAChB,YAAA,OAAO,GAAG;QACZ;QACA,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,GAAG,0BAA0B,EAAE,EAAE,IAAI,iBAAiB,IAAI,EAAE,CAAC,EAAE,CAAC;AACjG,QAAA,OAAO,GAAG;IACZ;IAEgB,GAAG,CAAC,GAA2B,EAAE,iBAAwC,EAAA;AACvF,QAAA,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE;AAChB,YAAA,OAAO,EAAE,CAAC,GAAG,CAAC;QAChB;AACA,QAAA,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,GAAG,0BAA0B,EAAE,EAAE,IAAI,iBAAiB,IAAI,EAAE,CAAC,EAAE,CAAC;IAC1F;AAEgB,IAAA,eAAe,CAAC,YAAiB,EAAE,GAAQ,EAAE,iBAAwC,EAAA;AACnG,QAAA,OAAO,KAAK,CAAC,eAAe,CAAC,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,0BAA0B,EAAE,EAAE,IAAI,iBAAiB,IAAI,EAAE,CAAC,EAAE,CAAC;IACzI;AAEgB,IAAA,GAAG,CAAC,IAA2B,EAAA;QAC7C,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;AAC7B,QAAA,IAAI,CAAC,GAAG,CAAC,IAAI;AACV,aAAA,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACZ,aAAA,SAAS,CAAC,CAAC,CAAC,KAAI;YACf,MAAM,IAAI,GAAG,GAAG,CAAyC,eAAe,EAAE,EAAE,CAAC,CAAC;YAC9E,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,GAAW,KAAI;gBACxC,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,EAAE;AAC9B,oBAAA,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAC9B;AACF,YAAA,CAAC,CAAC;AACJ,QAAA,CAAC,CAAC;AACJ,QAAA,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC;AACxB,QAAA,OAAO,KAAK;IACd;AACD;;AClDD,IAAI,IAAI,GAAG,QAAQ;AACnB,MAAM,iBAAiB,GAAG,CAAC,IAAgB,KAAyB;IAClE,OAAO,IAAI,mBAAmB,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC;AACrD,CAAC;AAED,MAAM,sBAAsB,GAAG;AAC7B,IAAA,MAAM,EAAE;AACN,QAAA,OAAO,EAAE,eAAe;AACxB,QAAA,UAAU,EAAE,iBAAiB;QAC7B,IAAI,EAAE,CAAC,UAAU,CAAC;AACnB,KAAA;AACD,IAAA,QAAQ,EAAE;AACR,QAAA,OAAO,EAAE,iBAAiB;AAC1B,QAAA,QAAQ,EAAE,8BAA8B;AACzC,KAAA;CACF;AAEM,MAAM,uBAAuB,GAAG;AACrC,IAAA,OAAO,EAAE,gBAAgB;IACzB,UAAU,EAAE,CACV,KAAqB,EACrB,aAA8B,EAC9B,QAA2B,EAC3B,MAAuB,EACvB,yBAAoD,EACpD,cAAuB,EACvB,OAAgB,EAChB,MAAe,EACf,eAAuB,KACrB;QACF,OAAO,IAAI,sBAAsB,CAAC,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,EAAE,yBAAyB,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,EAAE,eAAe,CAAC;IACxJ,CAAC;IACD,IAAI,EAAE,CAAC,cAAc,EAAE,eAAe,EAAE,iBAAiB,EAAE,eAAe,EAAE,yBAAyB,CAAC;;AAGjG,MAAM,kBAAkB,GAAG,CAAC,YAAqB,KAAI;AAC1D,IAAA,IAAI,YAAY,KAAK,SAAS,EAAE;QAC9B,IAAI,GAAG,YAAY;IACrB;AACA,IAAA,OAAO,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,CAAC,EAAE,mBAAmB,CAAC,eAAe,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC,EAAE,uBAAuB,CAAC;AACrJ;AAEA,MAAM,gBAAgB,GAAG,MAAM,CAAyB,EAAE,CAAC;AAEpD,MAAM,0BAA0B,GAAG,CAAC,WAAmC,KAAI;AAChF,IAAA,gBAAgB,CAAC,GAAG,CAAC,WAAW,CAAC;AACnC;AAEO,MAAM,0BAA0B,GAAG,MAA6B;IACrE,OAAO,gBAAgB,EAAE;AAC3B;;ACxDA;;AAEG;;;;"}
1
+ {"version":3,"file":"libs-ui-services-translate.mjs","sources":["../../../../../libs-ui/services/translate/src/data-translation.ts","../../../../../libs-ui/services/translate/src/translate.service.ts","../../../../../libs-ui/services/translate/src/config-translate.ts","../../../../../libs-ui/services/translate/src/libs-ui-services-translate.ts"],"sourcesContent":["export const dataTranslation = () => {\n return {\n vi: {\n i18n_select_information: 'Chọn thông tin',\n i18n_go_to: 'Đi tới',\n i18n_value_sum_page: 'Tổng {value} trang',\n i18n_message_error_input_max_length: 'Độ dài tối đa {{number}} kí tự',\n i18n_message_error_input_min_length: 'Độ dài tối thiểu {{number}} kí tự',\n i18n_preview: 'Xem trước',\n i18n_file_size_compare_when_resize: '{current_size} (ban đầu: {original_size})',\n i18n_size_photo: 'Kích thước ảnh',\n i18n_ratio_size: 'Tỷ lệ size',\n i18n_resize: 'Resize',\n i18n_horizontal_flip: 'Lật ngang',\n i18n_vertical_flip: 'Lật dọc',\n i18n_rotate_ninety_degrees: 'Xoay 90°',\n i18n_rotate_photos: 'Xoay ảnh',\n i18n_width: 'Chiều rộng',\n i18n_length: 'Chiều dài',\n i18n_custom: 'Tuỳ chỉnh',\n i18n_restore_the_original_state: 'Khôi phục trạng thái ban đầu',\n i18n_cutting_ratio: 'Tỉ lệ cắt',\n i18n_exit_edit_mode: 'Thoát chế độ sửa',\n i18n_save_to_new_file: 'Lưu thành file mới',\n i18n_edit_file_name: 'Sửa {file_name}',\n i18n_file_size_exceeds_the_allowed_limit: 'Dung lượng file vượt quá giới hạn cho phép',\n i18n_the_file_support_format_is_not_correct: 'File không đúng định dạng hỗ trợ',\n i18n_invalid_file_upload: 'File tải lên không hợp lệ',\n i18n_file_number_exceeds_the_allowed_limit_please_delete_the_file: 'Bạn chỉ được phép chọn tối đa {value} files trong một lần tải lên. Vui lòng xoá bớt file.',\n i18n_size_not_number_mb: 'Dung lượng không vượt quá {number}MB.',\n i18n_edit: 'Sửa',\n i18n_choose_as_your_avatar: 'Chọn làm ảnh đại diện',\n i18n_avatar: 'Ảnh đại diện',\n i18n_note_upload_file_volume: 'Định dạng .doc, .docx, .xls, .xlsx, .ppt, .pptx, .pdf. Dung lượng mỗi file tối đa {value}.',\n i18n_note_upload_video_volume: 'Định dạng .mp4, .mov, .mpg, .avi, .wmv. Dung lượng mỗi file tối đa {value}.',\n i18n_note_upload_image_volume: 'Định dạng .gif, .jpg, .jpeg, .png. Dung lượng mỗi file tối đa {value}.',\n i18n_note_upload_audio_volume: 'Định dạng .mp3, .wav, .ogg, .aac, .m4a, .flac, .wma. Dung lượng mỗi file tối đa {value}.',\n i18n_drag_file_here_to_upload_or_select_file: 'Kéo file vào đây để tải lên hoặc <span>Chọn file</span>',\n i18n_back_to_list: 'Quay lại danh sách',\n i18n_4x_other_operations: 'Thao tác khác',\n i18n_add_currency: 'Thêm tiền tệ',\n i18n_add_language: 'Thêm ngôn ngữ',\n i18n_unselect_option: 'Bỏ giá trị đang chọn',\n i18n_notification_manipulation_not_success: 'Thao tác không thành công.',\n i18n_all: 'Tất cả',\n i18n_have_no_selection: 'Chưa có lựa chọn nào trong danh sách',\n i18n_more_select: 'Chọn thêm',\n i18n_no_result: 'Không có kết quả',\n i18n_alert_connect_server_error: 'Có lỗi trong quá trình kết nối đến server.',\n i18n_valid_duplicate_msg: 'Trường thông tin không được phép trùng nhau',\n i18n_select: 'Chọn',\n i18n_date_compare_start_end_message_error: 'Thời gian kết thúc phải sau thời gian bắt đầu',\n i18n_invalid_end_date_selected: 'Thời gian kết thúc phải lớn hơn thời gian bắt đầu.',\n i18n_no_data: 'Không có dữ liệu',\n i18n_upload_image: 'Tải ảnh lên',\n i18n_content: 'Nội dung',\n i18n_save: 'Lưu',\n i18n_image: 'Hình ảnh',\n i18n_unlink: 'Hủy liên kết',\n i18n_insert_link: 'Chèn liên kết',\n i18n_quote: 'Trích dẫn',\n i18n_list_numbered: 'Đánh số đầu dòng',\n i18n_list_bulleted: 'Đánh dấu đầu dòng',\n i18n_indent_decrease: 'Giảm thụt lề',\n i18n_indent_increase: 'Tăng thụt lề',\n i18n_adjust: 'Căn chỉnh',\n i18n_text_decoration_underline: 'Gạch chân',\n i18n_text_line_through: 'Gạch ngang',\n i18n_font_style_italic: 'In nghiêng',\n i18n_font_weight_bold: 'In đậm',\n i18n_background_color: 'Màu nền',\n i18n_text_color: 'Màu chữ',\n i18n_redo: 'Làm lại thay đổi',\n i18n_undo: 'Hoàn tác',\n i18n_text_emoji: 'Emoji',\n i18n_collapse: 'Thu gọn',\n i18n_total_quantity: \"<span class='text-[#9ca2ad] libs-ui-font-h5s'>Số lượng: </span> <span class='libs-ui-font-h5s'>{value}</span>\",\n i18n_number_item_selected: '{value} {value, plural, =0 {item} =1 {item} other {items} } selected',\n i18n_character: 'Ký tự',\n i18n_search: 'Tìm kiếm',\n i18n_color_custom: 'Màu tuỳ chỉnh',\n i18n_add_new: 'Thêm mới',\n i18n_cancel: 'Hủy bỏ',\n i18n_apply: 'Áp dụng',\n i18n_copy_successfully: 'Sao chép thành công',\n i18n_restore: 'Khôi phục',\n i18n_zoom_in: 'Phóng to',\n i18n_zoom_out: 'Thu nhỏ',\n i18n_action_view_full_screen: 'Xem toàn màn hình',\n i18n_action_exit_full_screen: 'Thoát khỏi chế độ toàn màn hình',\n i18n_agree: 'Đồng ý',\n i18n_view_more: 'Xem thêm',\n i18n_delete: 'Xoá',\n i18n_select_value: 'Chọn giá trị',\n i18n_selecting_options: 'Đang chọn {value} lựa chọn',\n i18n_select_all_searched_results: 'Chọn tất cả kết quả',\n i18n_unselect_all_searched_results: 'Bỏ chọn tất cả kết quả',\n i18n_import_content: 'Nhập nội dung',\n i18n_valid_empty_message: 'Trường thông tin không được phép để trống',\n i18n_valid_pattern_message: 'Trường thông tin không đúng định dạng',\n i18n_message_error_input_max_value: 'Giá trị tối đa là { value }',\n i18n_message_error_input_min_value: 'Giá trị tối thiểu là { value }',\n i18n_show: 'Hiện',\n i18n_hidden: 'Ẩn',\n i18n_password_is_required: 'Mật khẩu không được phép để trống.', // NOSONAR\n i18n_password_min_length: 'Mật khẩu không được phép ít hơn {length} kí tự.', // NOSONAR\n i18n_minimum_length_number: 'Độ dài tối thiểu {number} kí tự',\n i18n_maximum_length_number: 'Độ dài tối đa {number} kí tự',\n i18n_contains_all_types_of_characters_below: 'Chứa tất cả các loại kí tự dưới đây:',\n i18n_contains_number_types_of_characters_below: 'Chứa ít nhất {number} trong số các loại kí tự dưới đây:',\n i18n_uppercase_minimum: 'In hoa: tối thiểu {number} kí tự',\n i18n_lowercase_minimum: 'In thường: tối thiểu {number} kí tự',\n i18n_number_minimum: 'Số: tối thiểu {number} kí tự',\n i18n_symbol_minimum: 'Kí tự đặc biệt: tối thiểu {number} kí tự',\n i18n_no_data_yet: 'Chưa có dữ liệu',\n i18n_no_results: 'Chưa có kết quả',\n i18n_january: 'Tháng 1{year}',\n i18n_february: 'Tháng 2{year}',\n i18n_march: 'Tháng 3{year}',\n i18n_april: 'Tháng 4{year}',\n i18n_may: 'Tháng 5{year}',\n i18n_june: 'Tháng 6{year}',\n i18n_july: 'Tháng 7{year}',\n i18n_august: 'Tháng 8{year}',\n i18n_september: 'Tháng 9{year}',\n i18n_october: 'Tháng 10{year}',\n i18n_november: 'Tháng 11{year}',\n i18n_december: 'Tháng 12{year}',\n i18n_enter_value: 'Nhập giá trị',\n i18n_select_day: 'Chọn ngày',\n i18n_select_month: 'Chọn tháng',\n i18n_select_year: 'Chọn năm',\n i18n_select_quarter: 'Chọn quý',\n i18n_day_param: 'Ngày { day }',\n i18n_year_param: 'Năm { year }',\n i18n_quarter: 'Quý {quarter}',\n i18n_label_from: 'Từ',\n i18n_to: 'đến',\n i18n_select_field: 'Chọn field',\n i18n_enter_params: 'Nhập tham số',\n i18n_save_calculation: 'Lưu phép tính',\n i18n_field_error: 'Lỗi trường thông tin',\n i18n_table: 'Bảng',\n i18n_add_new_column_left: 'Thêm cột bên trái',\n i18n_add_new_column_right: 'Thêm cột bên phải',\n i18n_add_new_row_above: 'Thêm hàng bên trên',\n i18n_add_new_row_below: 'Thêm hàng bên dưới',\n i18n_merge_cells: 'Gộp ô',\n i18n_split_cells: 'Tách ô',\n i18n_delete_row: 'Xóa hàng',\n i18n_delete_column: 'Xóa cột',\n i18n_delete_table: 'Xóa bảng',\n i18n_select_cell: 'Chọn kích thước (hàng × cột)',\n i18n_script_sub: 'Chỉ số dưới',\n i18n_script_super: 'Chỉ số trên',\n i18n_video: 'Video',\n i18n_list_checked: 'Danh sách đánh dấu',\n i18n_keep_alt_key_to_change_the_ratio_when_changing_the_size: 'Giữ phím alt để thay đổi tỉ lệ khi thay đổi kích thước',\n i18n_press_enter_to_confirm: 'Nhấn phím Enter để xác nhận',\n i18n_left_align: 'Căn trái',\n i18n_right_align: 'Căn phải',\n i18n_center_align: 'Căn giữa',\n i18n_restore_to_default: 'Khôi phục',\n i18n_copy: 'Sao chép',\n i18n_copied: 'Đã sao chép',\n i18n_line_wrap: 'Xuống dòng',\n i18n_remove_line_wrap: 'Bỏ xuống dòng',\n i18n_pls_enter_info_results_will_show_here: 'Vui lòng nhập thông tin. Kết quả sẽ được hiển thị tại đây.',\n },\n en: {\n i18n_select_information: 'Select information',\n i18n_go_to: 'Jump to page',\n i18n_value_sum_page: '{value} {value, plural, =0 {page} =1 {page} other {pages} } in total',\n i18n_message_error_input_max_length: 'Maximum length {{number}} characters',\n i18n_message_error_input_min_length: 'Minimum length {{number}} characters',\n i18n_preview: 'Preview',\n i18n_file_size_compare_when_resize: '{current_size} (Original: {original_size})',\n i18n_size_photo: 'Photo size',\n i18n_ratio_size: 'Ratio',\n i18n_resize: 'Resize',\n i18n_horizontal_flip: 'Horizontal Flip',\n i18n_vertical_flip: 'Vertical Flip',\n i18n_rotate_ninety_degrees: 'Rotate 90 degrees',\n i18n_rotate_photos: 'Rotate',\n i18n_width: 'Width',\n i18n_length: 'Length',\n i18n_custom: 'Custom',\n i18n_restore_the_original_state: 'Reset',\n i18n_cutting_ratio: 'Aspect Ratio',\n i18n_exit_edit_mode: 'Exit edit mode',\n i18n_save_to_new_file: 'Save as new file',\n i18n_edit_file_name: 'Edit {file_name}',\n i18n_file_size_exceeds_the_allowed_limit: 'The import file is too large to upload',\n i18n_the_file_support_format_is_not_correct: 'This file type is not allowed',\n i18n_invalid_file_upload: 'Invalid file format',\n i18n_file_number_exceeds_the_allowed_limit_please_delete_the_file: 'You can only upload a maximum of {value} files. Please delete and try again.',\n i18n_size_not_number_mb: 'Maximum size is {number}MB.',\n i18n_edit: 'Edit',\n i18n_choose_as_your_avatar: 'Choose your avatar',\n i18n_avatar: 'Avatar',\n i18n_note_upload_file_volume: 'Format: .doc, .docx, .xls, .xlsx, .ppt, .pptx, .pdf. Max size for each file: {value}.',\n i18n_note_upload_video_volume: 'Format: .mp4, .mov, .mpg, .avi, .wmv. Max size for each file: {value}.',\n i18n_note_upload_image_volume: 'Format: .gif, .jpg, .jpeg, .png. Max size for each file: {value}.',\n i18n_note_upload_audio_volume: 'Format: .mp3, .wav, .ogg, .aac, .m4a, .flac, .wma. Max size for each file: {value}.',\n i18n_drag_file_here_to_upload_or_select_file: 'Drag and drop or <span>Choose a file<span> to upload',\n i18n_back_to_list: 'Back to list',\n i18n_4x_other_operations: 'Other',\n i18n_add_currency: 'Add currency',\n i18n_add_language: 'Add language',\n i18n_unselect_option: 'Remove the selected value',\n i18n_notification_manipulation_not_success: 'Unsuccessful',\n i18n_all: 'All',\n i18n_have_no_selection: 'There are no options in the list.',\n i18n_more_select: 'Select more',\n i18n_no_result: 'No result',\n i18n_alert_connect_server_error: 'Cannot connect to Server.',\n i18n_valid_duplicate_msg: 'Fields cannot be duplicated',\n i18n_select: 'Select',\n i18n_date_compare_start_end_message_error: 'The end time must be greater than the start time.',\n i18n_invalid_end_date_selected: 'The end time must be greater than the start time.',\n i18n_no_data: 'No data',\n i18n_upload_image: 'Upload image',\n i18n_content: 'Content',\n i18n_save: 'Save',\n i18n_image: 'Photo',\n i18n_unlink: 'Unlink',\n i18n_insert_link: 'Insert link',\n i18n_quote: 'Quote',\n i18n_list_numbered: 'Numbered list',\n i18n_list_bulleted: 'Bullet',\n i18n_indent_decrease: 'Decrease indent',\n i18n_indent_increase: 'Increase indent',\n i18n_adjust: 'Alignment',\n i18n_text_decoration_underline: 'Underline',\n i18n_text_line_through: 'Strikethrough',\n i18n_font_style_italic: 'Italic',\n i18n_font_weight_bold: 'Bold',\n i18n_background_color: 'background color',\n i18n_text_color: 'Text color',\n i18n_redo: 'Redo',\n i18n_undo: 'Undo',\n i18n_text_emoji: 'Emoji',\n i18n_collapse: 'Collapse',\n i18n_total_quantity: \"<span class='text-[#9ca2ad] libs-ui-font-h5s'>Total: </span> <span class='libs-ui-font-h5s'>{value}</span>\",\n i18n_number_item_selected: '{value} item được chọn',\n i18n_character: 'character',\n i18n_search: 'Search',\n i18n_color_custom: 'Custom theme color',\n i18n_add_new: 'Add new',\n i18n_cancel: 'Cancel',\n i18n_apply: 'Apply',\n i18n_copy_successfully: 'Copied',\n i18n_restore: 'Recover',\n i18n_zoom_in: 'Zoom in',\n i18n_zoom_out: 'Zoom out',\n i18n_action_view_full_screen: 'View full screen',\n i18n_action_exit_full_screen: 'Exit full screen mode',\n i18n_agree: 'Agree',\n i18n_view_more: 'See more',\n i18n_delete: 'Delete',\n i18n_select_value: 'Select value',\n i18n_selecting_options: 'Selecting {value} {value, plural, =1 {selection} other {selections} }',\n i18n_select_all_searched_results: 'Select all results',\n i18n_unselect_all_searched_results: 'Deselect all results',\n i18n_import_content: 'Enter value',\n i18n_valid_empty_message: 'This field is required',\n i18n_valid_pattern_message: 'The information field is not in the correct format',\n i18n_message_error_input_max_value: 'Maximum value is { value }',\n i18n_message_error_input_min_value: 'Minimum value is { value }',\n i18n_show: 'Show',\n i18n_hidden: 'Hide',\n i18n_password_is_required: 'Password is required.',\n i18n_password_min_length: 'Passwords cannot be less than {length} characters.',\n i18n_minimum_length_number: 'Minimum length {number} characters',\n i18n_maximum_length_number: 'Maximum length {number} characters',\n i18n_contains_all_types_of_characters_below: 'Contains all of the following character types:',\n i18n_contains_number_types_of_characters_below: 'Contains at least {number} of the following character types:',\n i18n_uppercase_minimum: 'Uppercase: at least {number} characters',\n i18n_lowercase_minimum: 'Lowercase: at least {number} characters',\n i18n_number_minimum: 'Number: at least {number} characters',\n i18n_symbol_minimum: 'Special characters: at least {number} characters',\n i18n_no_data_yet: 'No data available',\n i18n_no_results: 'There are no outcomes',\n i18n_january: 'January{year}',\n i18n_february: 'February{year}',\n i18n_march: 'March{year}',\n i18n_april: 'April{year}',\n i18n_may: 'May{year}',\n i18n_june: 'June{year}',\n i18n_july: 'July{year}',\n i18n_august: 'August{year}',\n i18n_september: 'September{year}',\n i18n_october: 'October{year}',\n i18n_november: 'November{year}',\n i18n_december: 'December{year}',\n i18n_enter_value: 'Enter value',\n i18n_select_day: 'Date',\n i18n_select_month: 'Select month',\n i18n_select_year: 'Select year',\n i18n_select_quarter: 'Choose quarter',\n i18n_day_param: 'Day { day }',\n i18n_year_param: 'Year { year }',\n i18n_quarter: 'Quarter {quarter}',\n i18n_label_from: 'from',\n i18n_to: 'to',\n i18n_select_field: 'Choose a field',\n i18n_enter_params: 'Insert value here',\n i18n_save_calculation: 'Save',\n i18n_field_error: 'Field error',\n i18n_table: 'Table',\n i18n_add_new_column_left: 'Add column left',\n i18n_add_new_column_right: 'Add column right',\n i18n_add_new_row_above: 'Add row above',\n i18n_add_new_row_below: 'Add row below',\n i18n_merge_cells: 'Merge cells',\n i18n_split_cells: 'Split cells',\n i18n_delete_row: 'Delete row',\n i18n_delete_column: 'Delete column',\n i18n_delete_table: 'Delete table',\n i18n_select_cell: 'Select (row × column)',\n i18n_script_sub: 'Subscript',\n i18n_script_super: 'Superscript',\n i18n_video: 'Video',\n i18n_list_checked: 'List checked',\n i18n_keep_alt_key_to_change_the_ratio_when_changing_the_size: 'Keep the Alt key to change the ratio when changing the size',\n i18n_press_enter_to_confirm: 'Press Enter to confirm',\n i18n_left_align: 'Left align',\n i18n_right_align: 'Right align',\n i18n_center_align: 'Center align',\n i18n_restore_to_default: 'Restore to default',\n i18n_copy: 'Copy',\n i18n_copied: 'Copied',\n i18n_line_wrap: 'Wrap',\n i18n_remove_line_wrap: 'Unwrap',\n i18n_pls_enter_info_results_will_show_here: 'Please enter information. Results will show here',\n },\n };\n};\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { UtilsCache, get, isEmpty } from '@libs-ui/utils';\nimport { MissingTranslationHandler, TranslateCompiler, TranslateLoader, TranslateParser, TranslateService, TranslateStore } from '@ngx-translate/core';\nimport { Observable, of, take } from 'rxjs';\nimport { getInterpolateParamDefault } from './config-translate';\nimport { dataTranslation } from './data-translation';\nimport { TYPE_LANGUAGE_SUPPORT } from '@libs-ui/interfaces-types';\n\nexport class LibsUiTranslateService extends TranslateService {\n constructor(\n store: TranslateStore,\n currentLoader: TranslateLoader,\n compiler: TranslateCompiler,\n parser: TranslateParser,\n missingTranslationHandler: MissingTranslationHandler,\n useDefaultLang: boolean,\n isolate: boolean,\n extend: boolean,\n defaultLanguage: string\n ) {\n super(store, currentLoader, compiler, parser, missingTranslationHandler, useDefaultLang, isolate, extend, defaultLanguage);\n }\n public override instant(key: string | Array<string>, interpolateParams?: NonNullable<unknown>): string | any {\n if (isEmpty(key)) {\n return key;\n }\n const val = super.instant(key, { ...getInterpolateParamDefault(), ...(interpolateParams || {}) });\n return val;\n }\n\n public override get(key: string | Array<string>, interpolateParams?: NonNullable<unknown>): Observable<string | any> {\n if (isEmpty(key)) {\n return of(key);\n }\n return super.get(key, { ...getInterpolateParamDefault(), ...(interpolateParams || {}) });\n }\n\n public override getParsedResult(translations: any, key: any, interpolateParams?: NonNullable<unknown>): any {\n return super.getParsedResult(translations, isEmpty(key) ? ' ' : key, { ...getInterpolateParamDefault(), ...(interpolateParams || {}) });\n }\n\n public override use(lang: TYPE_LANGUAGE_SUPPORT): Observable<any> {\n const event = super.use(lang);\n this.get(lang)\n .pipe(take(1))\n .subscribe((e) => {\n const i18n = get<Record<string, Record<string, string>>>(dataTranslation(), e);\n Object.keys(i18n).forEach((key: string) => {\n if (super.instant(key) === key) {\n super.set(key, i18n[key], e);\n }\n });\n });\n UtilsCache.setLang(lang);\n return event;\n }\n}\n","import { HttpClient, provideHttpClient, withInterceptorsFromDi } from '@angular/common/http';\nimport { TranslateService, TranslateStore, TranslateLoader, TranslateCompiler, TranslateParser, MissingTranslationHandler, TranslateModule } from '@ngx-translate/core';\nimport { TranslateMessageFormatCompiler } from 'ngx-translate-messageformat-compiler';\nimport { TranslateHttpLoader } from '@ngx-translate/http-loader';\nimport { importProvidersFrom, signal } from '@angular/core';\nimport { LibsUiTranslateService } from './translate.service';\nlet link = '/i18n/';\nconst httpLoaderFactory = (http: HttpClient): TranslateHttpLoader => {\n return new TranslateHttpLoader(http, link, '.json');\n};\n\nconst TranslateForRootConfig = {\n loader: {\n provide: TranslateLoader,\n useFactory: httpLoaderFactory,\n deps: [HttpClient],\n },\n compiler: {\n provide: TranslateCompiler,\n useClass: TranslateMessageFormatCompiler,\n },\n};\n\nexport const TranslateProviderConfig = {\n provide: TranslateService,\n useFactory: (\n store: TranslateStore,\n currentLoader: TranslateLoader,\n compiler: TranslateCompiler,\n parser: TranslateParser,\n missingTranslationHandler: MissingTranslationHandler,\n useDefaultLang: boolean,\n isolate: boolean,\n extend: boolean,\n defaultLanguage: string\n ) => {\n return new LibsUiTranslateService(store, currentLoader, compiler, parser, missingTranslationHandler, useDefaultLang, isolate, extend, defaultLanguage);\n },\n deps: [TranslateStore, TranslateLoader, TranslateCompiler, TranslateParser, MissingTranslationHandler],\n};\n\nexport const getConfigTranslate = (linkFileI18n?: string) => {\n if (linkFileI18n !== undefined) {\n link = linkFileI18n;\n }\n return [provideHttpClient(withInterceptorsFromDi()), importProvidersFrom(TranslateModule.forRoot(TranslateForRootConfig)), TranslateProviderConfig];\n};\n\nconst interpolateStore = signal<Record<string, string>>({});\n\nexport const setInterpolateParamDefault = (interpolate: Record<string, string>) => {\n interpolateStore.set(interpolate);\n};\n\nexport const getInterpolateParamDefault = (): Record<string, string> => {\n return interpolateStore();\n};\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,15 +1,15 @@
1
1
  {
2
2
  "name": "@libs-ui/services-translate",
3
- "version": "0.2.356-42",
3
+ "version": "0.2.356-43",
4
4
  "peerDependencies": {
5
5
  "@angular/common": ">=18.0.0",
6
6
  "@angular/core": ">=18.0.0",
7
7
  "@ngx-translate/core": "^15.0.0",
8
8
  "ngx-translate-messageformat-compiler": "^7.0.0",
9
9
  "@ngx-translate/http-loader": "^8.0.0",
10
- "@libs-ui/utils": "0.2.356-42",
10
+ "@libs-ui/utils": "0.2.356-43",
11
11
  "rxjs": "~7.8.0",
12
- "@libs-ui/interfaces-types": "0.2.356-42"
12
+ "@libs-ui/interfaces-types": "0.2.356-43"
13
13
  },
14
14
  "sideEffects": false,
15
15
  "module": "fesm2022/libs-ui-services-translate.mjs",