@abpjs/language-management 0.7.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,476 @@
1
+ import { ABP, RestService } from '@abpjs/core';
2
+ import React from 'react';
3
+
4
+ /**
5
+ * Language Management Models
6
+ * Translated from @volo/abp.ng.language-management v0.7.2
7
+ */
8
+
9
+ /**
10
+ * Language Management namespace containing all models
11
+ * for language and language text management.
12
+ */
13
+ declare namespace LanguageManagement {
14
+ /**
15
+ * State interface for language management
16
+ */
17
+ interface State {
18
+ languageResponse: LanguageResponse;
19
+ languageTextsResponse: LanguageTextResponse;
20
+ selectedItem: Language | null;
21
+ cultures: Culture[];
22
+ resources: Resource[];
23
+ }
24
+ /**
25
+ * Paginated response of languages
26
+ */
27
+ type LanguageResponse = ABP.PagedResponse<Language>;
28
+ /**
29
+ * Paginated response of language texts
30
+ */
31
+ type LanguageTextResponse = ABP.PagedResponse<LanguageText>;
32
+ /**
33
+ * Culture information for localization
34
+ */
35
+ interface Culture {
36
+ displayName: string;
37
+ name: string;
38
+ }
39
+ /**
40
+ * Resource containing localization strings
41
+ */
42
+ interface Resource {
43
+ name: string;
44
+ }
45
+ /**
46
+ * Language entity
47
+ */
48
+ interface Language {
49
+ id: string;
50
+ cultureName: string;
51
+ uiCultureName: string;
52
+ displayName: string;
53
+ flagIcon: string;
54
+ isEnabled: boolean;
55
+ isDefaultLanguage: boolean;
56
+ creationTime: string;
57
+ creatorId: string;
58
+ }
59
+ /**
60
+ * Input for updating a language
61
+ */
62
+ interface UpdateLanguageInput {
63
+ isEnabled: boolean;
64
+ flagIcon: string;
65
+ displayName: string;
66
+ }
67
+ /**
68
+ * Input for creating a new language
69
+ */
70
+ interface CreateLanguageInput extends UpdateLanguageInput {
71
+ cultureName: string;
72
+ uiCultureName: string;
73
+ }
74
+ /**
75
+ * Language text (localization string) entity
76
+ */
77
+ interface LanguageText {
78
+ resourceName: string;
79
+ cultureName: string;
80
+ baseCultureName: string;
81
+ baseValue: string;
82
+ name: string;
83
+ value: string;
84
+ }
85
+ /**
86
+ * Query parameters for fetching language texts
87
+ */
88
+ interface LanguageTextQueryParams extends ABP.PageQueryParams {
89
+ resourceName?: string;
90
+ baseCultureName: string;
91
+ targetCultureName: string;
92
+ getOnlyEmptyValues: boolean;
93
+ }
94
+ /**
95
+ * Parameters for requesting a language text by name
96
+ */
97
+ interface LanguageTextRequestByNameParams {
98
+ resourceName: string;
99
+ cultureName: string;
100
+ name: string;
101
+ }
102
+ /**
103
+ * Parameters for updating a language text by name
104
+ */
105
+ interface LanguageTextUpdateByNameParams extends LanguageTextRequestByNameParams {
106
+ value?: string;
107
+ }
108
+ }
109
+
110
+ /**
111
+ * Language Management Routes
112
+ * Translated from @volo/abp.ng.language-management v0.7.2
113
+ */
114
+
115
+ /**
116
+ * Default routes for language management module
117
+ */
118
+ declare const LANGUAGE_MANAGEMENT_ROUTES: {
119
+ routes: ABP.FullRoute[];
120
+ };
121
+
122
+ /**
123
+ * Language Management Service
124
+ * Translated from @volo/abp.ng.language-management v0.7.2
125
+ *
126
+ * Provides API operations for managing languages and language texts (localization).
127
+ */
128
+
129
+ /**
130
+ * Service for managing language-related API operations.
131
+ * Handles languages, cultures, resources, and language texts CRUD operations.
132
+ *
133
+ * @since 0.7.2
134
+ */
135
+ declare class LanguageManagementService {
136
+ private rest;
137
+ constructor(rest: RestService);
138
+ /**
139
+ * Get all languages with optional pagination
140
+ * @param params - Optional query parameters for pagination and filtering
141
+ * @returns Promise with paginated language response
142
+ */
143
+ getLanguages(params?: ABP.PageQueryParams): Promise<LanguageManagement.LanguageResponse>;
144
+ /**
145
+ * Get a language by ID
146
+ * @param id - The language ID
147
+ * @returns Promise with the language
148
+ */
149
+ getLanguageById(id: string): Promise<LanguageManagement.Language>;
150
+ /**
151
+ * Create a new language
152
+ * @param body - The language data to create
153
+ * @returns Promise with the created language
154
+ */
155
+ createLanguage(body: LanguageManagement.CreateLanguageInput): Promise<LanguageManagement.Language>;
156
+ /**
157
+ * Update an existing language
158
+ * @param id - The language ID to update
159
+ * @param body - The updated language data
160
+ * @returns Promise with the updated language
161
+ */
162
+ updateLanguage(id: string, body: LanguageManagement.UpdateLanguageInput): Promise<LanguageManagement.Language>;
163
+ /**
164
+ * Delete a language
165
+ * @param id - The language ID to delete
166
+ * @returns Promise resolving when complete
167
+ */
168
+ deleteLanguage(id: string): Promise<void>;
169
+ /**
170
+ * Set a language as the default language
171
+ * @param id - The language ID to set as default
172
+ * @returns Promise resolving when complete
173
+ */
174
+ setAsDefaultLanguage(id: string): Promise<void>;
175
+ /**
176
+ * Get all available cultures
177
+ * @returns Promise with list of cultures
178
+ */
179
+ getCultures(): Promise<LanguageManagement.Culture[]>;
180
+ /**
181
+ * Get all available localization resources
182
+ * @returns Promise with list of resources
183
+ */
184
+ getResources(): Promise<LanguageManagement.Resource[]>;
185
+ /**
186
+ * Get language texts with pagination and filtering
187
+ * @param params - Query parameters including resource name, cultures, and filter options
188
+ * @returns Promise with paginated language text response
189
+ */
190
+ getLanguageTexts(params: LanguageManagement.LanguageTextQueryParams): Promise<LanguageManagement.LanguageTextResponse>;
191
+ /**
192
+ * Get a language text by name
193
+ * @param params - Parameters identifying the language text
194
+ * @returns Promise with the language text
195
+ */
196
+ getLanguageTextByName(params: LanguageManagement.LanguageTextRequestByNameParams): Promise<LanguageManagement.LanguageText>;
197
+ /**
198
+ * Update a language text by name
199
+ * @param params - Parameters including the new value
200
+ * @returns Promise with the updated language text
201
+ */
202
+ updateLanguageTextByName(params: LanguageManagement.LanguageTextUpdateByNameParams): Promise<LanguageManagement.LanguageText>;
203
+ /**
204
+ * Restore a language text to its default value
205
+ * @param params - Parameters identifying the language text
206
+ * @returns Promise resolving when complete
207
+ */
208
+ restoreLanguageTextByName(params: LanguageManagement.LanguageTextRequestByNameParams): Promise<void>;
209
+ }
210
+
211
+ /**
212
+ * Sort order type for language lists
213
+ */
214
+ type SortOrder$1 = '' | 'asc' | 'desc';
215
+ /**
216
+ * Result from language operations
217
+ * @since 0.7.2
218
+ */
219
+ interface LanguageOperationResult {
220
+ success: boolean;
221
+ error?: string;
222
+ }
223
+ /**
224
+ * Return type for useLanguages hook
225
+ * @since 0.7.2
226
+ */
227
+ interface UseLanguagesReturn {
228
+ /** List of languages */
229
+ languages: LanguageManagement.Language[];
230
+ /** Total count of languages */
231
+ totalCount: number;
232
+ /** Available cultures for creating languages */
233
+ cultures: LanguageManagement.Culture[];
234
+ /** Currently selected language for editing */
235
+ selectedLanguage: LanguageManagement.Language | null;
236
+ /** Loading state */
237
+ isLoading: boolean;
238
+ /** Error message if any */
239
+ error: string | null;
240
+ /** Current sort key */
241
+ sortKey: string;
242
+ /** Current sort order */
243
+ sortOrder: SortOrder$1;
244
+ /** Fetch all languages with optional pagination/filtering */
245
+ fetchLanguages: (params?: ABP.PageQueryParams) => Promise<LanguageOperationResult>;
246
+ /** Fetch all available cultures */
247
+ fetchCultures: () => Promise<LanguageOperationResult>;
248
+ /** Get a language by ID and set it as selected */
249
+ getLanguageById: (id: string) => Promise<LanguageOperationResult>;
250
+ /** Create a new language */
251
+ createLanguage: (language: LanguageManagement.CreateLanguageInput) => Promise<LanguageOperationResult>;
252
+ /** Update an existing language */
253
+ updateLanguage: (id: string, language: LanguageManagement.UpdateLanguageInput) => Promise<LanguageOperationResult>;
254
+ /** Delete a language */
255
+ deleteLanguage: (id: string) => Promise<LanguageOperationResult>;
256
+ /** Set a language as default */
257
+ setAsDefaultLanguage: (id: string) => Promise<LanguageOperationResult>;
258
+ /** Set the selected language */
259
+ setSelectedLanguage: (language: LanguageManagement.Language | null) => void;
260
+ /** Set sort key */
261
+ setSortKey: (key: string) => void;
262
+ /** Set sort order */
263
+ setSortOrder: (order: SortOrder$1) => void;
264
+ /** Reset state */
265
+ reset: () => void;
266
+ }
267
+ /**
268
+ * Hook for managing languages
269
+ *
270
+ * This hook provides all the state and actions needed for language management.
271
+ * It handles fetching, creating, updating, and deleting languages.
272
+ *
273
+ * @since 0.7.2
274
+ *
275
+ * @example
276
+ * ```tsx
277
+ * function LanguagesPage() {
278
+ * const {
279
+ * languages,
280
+ * isLoading,
281
+ * fetchLanguages,
282
+ * createLanguage,
283
+ * deleteLanguage,
284
+ * } = useLanguages();
285
+ *
286
+ * useEffect(() => {
287
+ * fetchLanguages();
288
+ * }, [fetchLanguages]);
289
+ *
290
+ * const handleCreate = async (data: LanguageManagement.CreateLanguageInput) => {
291
+ * const result = await createLanguage(data);
292
+ * if (result.success) {
293
+ * // Handle success
294
+ * }
295
+ * };
296
+ *
297
+ * return (
298
+ * <div>
299
+ * {languages.map(lang => (
300
+ * <div key={lang.id}>{lang.displayName}</div>
301
+ * ))}
302
+ * </div>
303
+ * );
304
+ * }
305
+ * ```
306
+ */
307
+ declare function useLanguages(): UseLanguagesReturn;
308
+
309
+ /**
310
+ * Sort order type for language text lists
311
+ */
312
+ type SortOrder = '' | 'asc' | 'desc';
313
+ /**
314
+ * Result from language text operations
315
+ * @since 0.7.2
316
+ */
317
+ interface LanguageTextOperationResult {
318
+ success: boolean;
319
+ error?: string;
320
+ }
321
+ /**
322
+ * Return type for useLanguageTexts hook
323
+ * @since 0.7.2
324
+ */
325
+ interface UseLanguageTextsReturn {
326
+ /** List of language texts */
327
+ languageTexts: LanguageManagement.LanguageText[];
328
+ /** Total count of language texts */
329
+ totalCount: number;
330
+ /** Available localization resources */
331
+ resources: LanguageManagement.Resource[];
332
+ /** Currently selected language text for editing */
333
+ selectedLanguageText: LanguageManagement.LanguageText | null;
334
+ /** Loading state */
335
+ isLoading: boolean;
336
+ /** Error message if any */
337
+ error: string | null;
338
+ /** Current sort key */
339
+ sortKey: string;
340
+ /** Current sort order */
341
+ sortOrder: SortOrder;
342
+ /** Fetch language texts with filtering */
343
+ fetchLanguageTexts: (params: LanguageManagement.LanguageTextQueryParams) => Promise<LanguageTextOperationResult>;
344
+ /** Fetch all available resources */
345
+ fetchResources: () => Promise<LanguageTextOperationResult>;
346
+ /** Get a language text by name */
347
+ getLanguageTextByName: (params: LanguageManagement.LanguageTextRequestByNameParams) => Promise<LanguageTextOperationResult>;
348
+ /** Update a language text by name */
349
+ updateLanguageTextByName: (params: LanguageManagement.LanguageTextUpdateByNameParams) => Promise<LanguageTextOperationResult>;
350
+ /** Restore a language text to its default value */
351
+ restoreLanguageTextByName: (params: LanguageManagement.LanguageTextRequestByNameParams) => Promise<LanguageTextOperationResult>;
352
+ /** Set the selected language text */
353
+ setSelectedLanguageText: (languageText: LanguageManagement.LanguageText | null) => void;
354
+ /** Set sort key */
355
+ setSortKey: (key: string) => void;
356
+ /** Set sort order */
357
+ setSortOrder: (order: SortOrder) => void;
358
+ /** Reset state */
359
+ reset: () => void;
360
+ }
361
+ /**
362
+ * Hook for managing language texts (localization strings)
363
+ *
364
+ * This hook provides all the state and actions needed for language text management.
365
+ * It handles fetching, updating, and restoring language texts.
366
+ *
367
+ * @since 0.7.2
368
+ *
369
+ * @example
370
+ * ```tsx
371
+ * function LanguageTextsPage() {
372
+ * const {
373
+ * languageTexts,
374
+ * isLoading,
375
+ * fetchLanguageTexts,
376
+ * updateLanguageTextByName,
377
+ * } = useLanguageTexts();
378
+ *
379
+ * useEffect(() => {
380
+ * fetchLanguageTexts({
381
+ * baseCultureName: 'en',
382
+ * targetCultureName: 'tr',
383
+ * getOnlyEmptyValues: false,
384
+ * });
385
+ * }, [fetchLanguageTexts]);
386
+ *
387
+ * const handleUpdate = async (name: string, value: string) => {
388
+ * const result = await updateLanguageTextByName({
389
+ * resourceName: 'MyResource',
390
+ * cultureName: 'tr',
391
+ * name,
392
+ * value,
393
+ * });
394
+ * if (result.success) {
395
+ * // Handle success
396
+ * }
397
+ * };
398
+ *
399
+ * return (
400
+ * <div>
401
+ * {languageTexts.map(text => (
402
+ * <div key={text.name}>{text.name}: {text.value}</div>
403
+ * ))}
404
+ * </div>
405
+ * );
406
+ * }
407
+ * ```
408
+ */
409
+ declare function useLanguageTexts(): UseLanguageTextsReturn;
410
+
411
+ /**
412
+ * Props for LanguagesComponent
413
+ * @since 0.7.2
414
+ */
415
+ interface LanguagesComponentProps {
416
+ /** Optional callback when a language is created */
417
+ onLanguageCreated?: (language: LanguageManagement.Language) => void;
418
+ /** Optional callback when a language is updated */
419
+ onLanguageUpdated?: (language: LanguageManagement.Language) => void;
420
+ /** Optional callback when a language is deleted */
421
+ onLanguageDeleted?: (id: string) => void;
422
+ }
423
+ /**
424
+ * LanguagesComponent - Component for managing languages
425
+ *
426
+ * This is the React equivalent of Angular's LanguagesComponent.
427
+ * It displays a table of languages with CRUD operations.
428
+ *
429
+ * @since 0.7.2
430
+ *
431
+ * @example
432
+ * ```tsx
433
+ * function LanguageManagementPage() {
434
+ * return (
435
+ * <LanguagesComponent
436
+ * onLanguageCreated={(lang) => console.log('Language created:', lang)}
437
+ * onLanguageDeleted={(id) => console.log('Language deleted:', id)}
438
+ * />
439
+ * );
440
+ * }
441
+ * ```
442
+ */
443
+ declare function LanguagesComponent({ onLanguageCreated, onLanguageUpdated, onLanguageDeleted, }: LanguagesComponentProps): React.ReactElement;
444
+
445
+ /**
446
+ * Props for LanguageTextsComponent
447
+ * @since 0.7.2
448
+ */
449
+ interface LanguageTextsComponentProps {
450
+ /** Optional callback when a language text is updated */
451
+ onLanguageTextUpdated?: (params: LanguageManagement.LanguageTextUpdateByNameParams) => void;
452
+ /** Optional callback when a language text is restored */
453
+ onLanguageTextRestored?: (params: LanguageManagement.LanguageTextRequestByNameParams) => void;
454
+ }
455
+ /**
456
+ * LanguageTextsComponent - Component for managing language texts (localization strings)
457
+ *
458
+ * This is the React equivalent of Angular's LanguageTextsComponent.
459
+ * It displays a table of language texts with editing capabilities.
460
+ *
461
+ * @since 0.7.2
462
+ *
463
+ * @example
464
+ * ```tsx
465
+ * function LanguageManagementPage() {
466
+ * return (
467
+ * <LanguageTextsComponent
468
+ * onLanguageTextUpdated={(params) => console.log('Language text updated:', params)}
469
+ * />
470
+ * );
471
+ * }
472
+ * ```
473
+ */
474
+ declare function LanguageTextsComponent({ onLanguageTextUpdated, onLanguageTextRestored, }: LanguageTextsComponentProps): React.ReactElement;
475
+
476
+ export { LANGUAGE_MANAGEMENT_ROUTES, LanguageManagement, LanguageManagementService, type LanguageOperationResult, type LanguageTextOperationResult, LanguageTextsComponent, type LanguageTextsComponentProps, LanguagesComponent, type LanguagesComponentProps, type SortOrder$1 as SortOrder, type UseLanguageTextsReturn, type UseLanguagesReturn, useLanguageTexts, useLanguages };