@mmlogic/components 0.5.0 → 0.5.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/cell-renderer-CmaO0CZT.js +862 -0
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/mosterdcomponents.cjs.js +1 -1
- package/dist/cjs/mrd-boolean-field_23.cjs.entry.js +2506 -832
- package/dist/cjs/mrd-merge-view.cjs.entry.js +273 -0
- package/dist/collection/collection-manifest.json +1 -0
- package/dist/collection/components/documents/mrd-document-view/mrd-document-view.css +27 -24
- package/dist/collection/components/documents/mrd-document-view/mrd-document-view.js +16 -9
- package/dist/collection/components/fields/mrd-textarea-field/mrd-textarea-field.js +9 -5
- package/dist/collection/components/merge/mrd-merge-view/merge-diff.js +99 -0
- package/dist/collection/components/merge/mrd-merge-view/merge-parts.js +44 -0
- package/dist/collection/components/merge/mrd-merge-view/mrd-merge-view.css +244 -0
- package/dist/collection/components/merge/mrd-merge-view/mrd-merge-view.js +397 -0
- package/dist/collection/components/table/mrd-table/mrd-table.js +2 -4
- package/dist/collection/components/table/mrd-table/table-parts.js +2 -5
- package/dist/collection/dev/api.js +24 -0
- package/dist/collection/dev/app.js +84 -4
- package/dist/collection/dev/example-data.js +2 -1
- package/dist/collection/utils/cell-renderer.js +6 -1
- package/dist/collection/utils/i18n.js +104 -0
- package/dist/components/cell-renderer.js +1 -0
- package/dist/components/format.js +1 -1
- package/dist/components/i18n.js +1 -1
- package/dist/components/mrd-document-view2.js +1 -1
- package/dist/components/mrd-layout-section.js +1 -1
- package/dist/components/mrd-merge-view.d.ts +11 -0
- package/dist/components/mrd-merge-view.js +1 -0
- package/dist/components/mrd-table2.js +1 -1
- package/dist/components/mrd-textarea-field2.js +2 -1
- package/dist/esm/cell-renderer-D63AUZxa.js +854 -0
- package/dist/esm/loader.js +1 -1
- package/dist/esm/mosterdcomponents.js +1 -1
- package/dist/esm/mrd-boolean-field_23.entry.js +2437 -763
- package/dist/esm/mrd-merge-view.entry.js +271 -0
- package/dist/mosterdcomponents/mosterdcomponents.esm.js +1 -1
- package/dist/mosterdcomponents/p-2e16a7d0.entry.js +1 -0
- package/dist/mosterdcomponents/p-CnqDM0Gb.js +1 -0
- package/dist/mosterdcomponents/p-b5f38707.entry.js +3 -0
- package/dist/types/components/documents/mrd-document-view/mrd-document-view.d.ts +9 -5
- package/dist/types/components/fields/mrd-textarea-field/mrd-textarea-field.d.ts +1 -0
- package/dist/types/components/merge/mrd-merge-view/merge-diff.d.ts +43 -0
- package/dist/types/components/merge/mrd-merge-view/merge-parts.d.ts +37 -0
- package/dist/types/components/merge/mrd-merge-view/mrd-merge-view.d.ts +68 -0
- package/dist/types/components.d.ts +167 -12
- package/dist/types/types/client-layout.d.ts +2 -3
- package/package.json +2 -1
- package/dist/mosterdcomponents/p-b56f9802.entry.js +0 -1
|
@@ -0,0 +1,862 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var clientLayout = require('./client-layout-RZ3Ix-4a.js');
|
|
4
|
+
|
|
5
|
+
function formatNumber(value, locale, options) {
|
|
6
|
+
if (value === null || value === undefined || isNaN(value))
|
|
7
|
+
return '';
|
|
8
|
+
return new Intl.NumberFormat(locale, options).format(value);
|
|
9
|
+
}
|
|
10
|
+
function formatCurrency(amount, currency, locale) {
|
|
11
|
+
if (amount === null || amount === undefined || isNaN(amount))
|
|
12
|
+
return '';
|
|
13
|
+
return new Intl.NumberFormat(locale, {
|
|
14
|
+
style: 'currency',
|
|
15
|
+
currency,
|
|
16
|
+
minimumFractionDigits: 2,
|
|
17
|
+
maximumFractionDigits: 2,
|
|
18
|
+
}).format(amount);
|
|
19
|
+
}
|
|
20
|
+
function formatPercentage(value, locale, decimalPrecision = 2) {
|
|
21
|
+
if (value === null || value === undefined || isNaN(value))
|
|
22
|
+
return '';
|
|
23
|
+
return new Intl.NumberFormat(locale, {
|
|
24
|
+
style: 'percent',
|
|
25
|
+
minimumFractionDigits: decimalPrecision,
|
|
26
|
+
maximumFractionDigits: decimalPrecision,
|
|
27
|
+
}).format(value);
|
|
28
|
+
}
|
|
29
|
+
function formatDate(value, locale) {
|
|
30
|
+
if (!value)
|
|
31
|
+
return '';
|
|
32
|
+
const date = typeof value === 'string' ? new Date(value) : value;
|
|
33
|
+
if (isNaN(date.getTime()))
|
|
34
|
+
return '';
|
|
35
|
+
return new Intl.DateTimeFormat(locale, { year: 'numeric', month: '2-digit', day: '2-digit' }).format(date);
|
|
36
|
+
}
|
|
37
|
+
function formatDateTime(value, locale) {
|
|
38
|
+
if (!value)
|
|
39
|
+
return '';
|
|
40
|
+
const date = typeof value === 'string' ? new Date(value) : value;
|
|
41
|
+
if (isNaN(date.getTime()))
|
|
42
|
+
return '';
|
|
43
|
+
return new Intl.DateTimeFormat(locale, {
|
|
44
|
+
year: 'numeric',
|
|
45
|
+
month: '2-digit',
|
|
46
|
+
day: '2-digit',
|
|
47
|
+
hour: '2-digit',
|
|
48
|
+
minute: '2-digit',
|
|
49
|
+
}).format(date);
|
|
50
|
+
}
|
|
51
|
+
function formatTime(value, locale) {
|
|
52
|
+
if (!value)
|
|
53
|
+
return '';
|
|
54
|
+
// value is HH:MM or HH:MM:SS
|
|
55
|
+
const [hours, minutes] = value.split(':').map(Number);
|
|
56
|
+
const date = new Date();
|
|
57
|
+
date.setHours(hours, minutes, 0, 0);
|
|
58
|
+
return new Intl.DateTimeFormat(locale, { hour: '2-digit', minute: '2-digit' }).format(date);
|
|
59
|
+
}
|
|
60
|
+
function parseLocalizedNumber(str, locale) {
|
|
61
|
+
var _a, _b, _c, _d;
|
|
62
|
+
if (!str || !str.trim())
|
|
63
|
+
return null;
|
|
64
|
+
// Detect decimal and thousands separators from the locale
|
|
65
|
+
const parts = new Intl.NumberFormat(locale).formatToParts(1234567.89);
|
|
66
|
+
const groupSep = (_b = (_a = parts.find((p) => p.type === 'group')) === null || _a === void 0 ? void 0 : _a.value) !== null && _b !== void 0 ? _b : ',';
|
|
67
|
+
const decimalSep = (_d = (_c = parts.find((p) => p.type === 'decimal')) === null || _c === void 0 ? void 0 : _c.value) !== null && _d !== void 0 ? _d : '.';
|
|
68
|
+
// Remove group separators, replace decimal separator with '.'
|
|
69
|
+
const normalized = str
|
|
70
|
+
.replace(new RegExp(`\\${groupSep}`, 'g'), '')
|
|
71
|
+
.replace(new RegExp(`\\${decimalSep}`), '.')
|
|
72
|
+
.replace('%', '')
|
|
73
|
+
.trim();
|
|
74
|
+
const parsed = parseFloat(normalized);
|
|
75
|
+
return isNaN(parsed) ? null : parsed;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
const translations = {
|
|
79
|
+
nl: {
|
|
80
|
+
required: 'Dit veld is verplicht',
|
|
81
|
+
select_placeholder: 'Selecteer een optie',
|
|
82
|
+
search_placeholder: 'Zoeken...',
|
|
83
|
+
upload_file: 'Bestand uploaden',
|
|
84
|
+
choose_file: 'Bestand kiezen',
|
|
85
|
+
clear: 'Wissen',
|
|
86
|
+
today: 'Vandaag',
|
|
87
|
+
invalid_email: 'Voer een geldig e-mailadres in',
|
|
88
|
+
invalid_url: 'Voer een geldige URL in',
|
|
89
|
+
invalid_number: 'Voer een geldig getal in',
|
|
90
|
+
drop_file_here: 'Sleep bestand hierheen of',
|
|
91
|
+
browse: 'bladeren',
|
|
92
|
+
file_too_large: 'Bestand is te groot',
|
|
93
|
+
invalid_image: 'Selecteer een afbeeldingsbestand',
|
|
94
|
+
search_results: 'Zoekresultaten',
|
|
95
|
+
no_results: 'Geen resultaten gevonden',
|
|
96
|
+
load_failed_retry: 'Laden mislukt — opnieuw proberen',
|
|
97
|
+
loading: 'Laden...',
|
|
98
|
+
submit: 'Opslaan',
|
|
99
|
+
cancel: 'Annuleren',
|
|
100
|
+
remove: 'Verwijderen',
|
|
101
|
+
add: 'Toevoegen',
|
|
102
|
+
yes: 'Ja',
|
|
103
|
+
no: 'Nee',
|
|
104
|
+
// mrd-table footer
|
|
105
|
+
table_of: 'van',
|
|
106
|
+
download: 'Downloaden',
|
|
107
|
+
// mrd-table toolbar
|
|
108
|
+
table_filter: 'Filteren',
|
|
109
|
+
table_filter_hide: 'Filter verbergen',
|
|
110
|
+
table_filter_active: 'actief',
|
|
111
|
+
table_filter_clear_all: 'Alle filters wissen',
|
|
112
|
+
table_new_record: 'Nieuw record',
|
|
113
|
+
table_export_excel: 'Exporteer naar Excel',
|
|
114
|
+
doc_view_switch: 'Weergave wisselen',
|
|
115
|
+
doc_view_tree: 'Boomweergave',
|
|
116
|
+
doc_view_list: 'Lijstweergave',
|
|
117
|
+
// mrd-table filter popup
|
|
118
|
+
filter_sorting: 'Sortering',
|
|
119
|
+
filter_ascending: 'Oplopend',
|
|
120
|
+
filter_descending: 'Aflopend',
|
|
121
|
+
filter_section: 'Filter',
|
|
122
|
+
filter_apply: 'Toepassen',
|
|
123
|
+
filter_clear: 'Wissen',
|
|
124
|
+
filter_contains: 'Bevat',
|
|
125
|
+
filter_starts_with: 'Begint met',
|
|
126
|
+
filter_equals: 'Gelijk aan',
|
|
127
|
+
filter_has_value: 'Heeft waarde',
|
|
128
|
+
filter_is_empty: 'Is leeg',
|
|
129
|
+
filter_is_not_empty: 'Is niet leeg',
|
|
130
|
+
filter_exact: 'Exact',
|
|
131
|
+
filter_range: 'Bereik',
|
|
132
|
+
filter_from: 'Van',
|
|
133
|
+
filter_to: 'Tot',
|
|
134
|
+
filter_all: 'Alle',
|
|
135
|
+
filter_select_all: 'Alles',
|
|
136
|
+
filter_select_none: 'Geen',
|
|
137
|
+
filter_search_value: 'Zoekwaarde...',
|
|
138
|
+
filter_no_support: 'Geen filtering beschikbaar voor dit veldtype.',
|
|
139
|
+
// mrd-table textblock
|
|
140
|
+
textblock_show_more: 'Meer tonen',
|
|
141
|
+
close: 'Sluiten',
|
|
142
|
+
// history badge
|
|
143
|
+
history_until: 'tot',
|
|
144
|
+
history_badge_tooltip: 'Vorige waarden',
|
|
145
|
+
hyperlink_name: 'Linktekst (optioneel)',
|
|
146
|
+
// mrd-document-list
|
|
147
|
+
new_folder: 'Nieuwe folder',
|
|
148
|
+
folder_name_placeholder: 'Foldernaam',
|
|
149
|
+
folder_no_slash: "Een foldernaam mag geen '/' bevatten",
|
|
150
|
+
folder_duplicate: 'Er bestaat al een folder met deze naam',
|
|
151
|
+
doc_empty_drop: 'Nog geen documenten — sleep bestanden hierheen',
|
|
152
|
+
// mrd-merge-view
|
|
153
|
+
merge_search_hint: 'Zoek het duplicaat waarmee je wilt samenvoegen',
|
|
154
|
+
merge_select: 'Selecteer',
|
|
155
|
+
merge_compare_heading: 'Los conflicten op',
|
|
156
|
+
merge_column_a: 'Huidig (blijft behouden)',
|
|
157
|
+
merge_column_b: 'Kandidaat (wordt verwijderd)',
|
|
158
|
+
merge_auto_heading: 'Deze velden worden automatisch overgenomen van de kandidaat:',
|
|
159
|
+
merge_no_conflicts: 'Geen conflicterende velden gevonden',
|
|
160
|
+
merge_continue: 'Doorgaan',
|
|
161
|
+
merge_back: 'Terug',
|
|
162
|
+
merge_confirm_heading: 'Bevestig samenvoegen',
|
|
163
|
+
merge_confirm_warning: 'Dit kan niet ongedaan worden gemaakt: de kandidaat wordt definitief verwijderd.',
|
|
164
|
+
merge_confirm_button: 'Samenvoegen bevestigen',
|
|
165
|
+
},
|
|
166
|
+
en: {
|
|
167
|
+
required: 'This field is required',
|
|
168
|
+
select_placeholder: 'Select an option',
|
|
169
|
+
search_placeholder: 'Search...',
|
|
170
|
+
upload_file: 'Upload file',
|
|
171
|
+
choose_file: 'Choose file',
|
|
172
|
+
clear: 'Clear',
|
|
173
|
+
today: 'Today',
|
|
174
|
+
invalid_email: 'Please enter a valid email address',
|
|
175
|
+
invalid_url: 'Please enter a valid URL',
|
|
176
|
+
invalid_number: 'Please enter a valid number',
|
|
177
|
+
drop_file_here: 'Drop file here or',
|
|
178
|
+
browse: 'browse',
|
|
179
|
+
file_too_large: 'File is too large',
|
|
180
|
+
invalid_image: 'Please select an image file',
|
|
181
|
+
search_results: 'Search results',
|
|
182
|
+
no_results: 'No results found',
|
|
183
|
+
load_failed_retry: 'Failed to load — retry',
|
|
184
|
+
loading: 'Loading...',
|
|
185
|
+
submit: 'Save',
|
|
186
|
+
cancel: 'Cancel',
|
|
187
|
+
remove: 'Remove',
|
|
188
|
+
add: 'Add',
|
|
189
|
+
yes: 'Yes',
|
|
190
|
+
no: 'No',
|
|
191
|
+
// mrd-table footer
|
|
192
|
+
table_of: 'of',
|
|
193
|
+
download: 'Download',
|
|
194
|
+
// mrd-table toolbar
|
|
195
|
+
table_filter: 'Filter',
|
|
196
|
+
table_filter_hide: 'Hide filter',
|
|
197
|
+
table_filter_active: 'active',
|
|
198
|
+
table_filter_clear_all: 'Clear all filters',
|
|
199
|
+
table_new_record: 'New record',
|
|
200
|
+
table_export_excel: 'Export to Excel',
|
|
201
|
+
doc_view_switch: 'Switch view',
|
|
202
|
+
doc_view_tree: 'Tree view',
|
|
203
|
+
doc_view_list: 'List view',
|
|
204
|
+
// mrd-table filter popup
|
|
205
|
+
filter_sorting: 'Sorting',
|
|
206
|
+
filter_ascending: 'Ascending',
|
|
207
|
+
filter_descending: 'Descending',
|
|
208
|
+
filter_section: 'Filter',
|
|
209
|
+
filter_apply: 'Apply',
|
|
210
|
+
filter_clear: 'Clear',
|
|
211
|
+
filter_contains: 'Contains',
|
|
212
|
+
filter_starts_with: 'Starts with',
|
|
213
|
+
filter_equals: 'Equals',
|
|
214
|
+
filter_has_value: 'Has value',
|
|
215
|
+
filter_is_empty: 'Is empty',
|
|
216
|
+
filter_is_not_empty: 'Is not empty',
|
|
217
|
+
filter_exact: 'Exact',
|
|
218
|
+
filter_range: 'Range',
|
|
219
|
+
filter_from: 'From',
|
|
220
|
+
filter_to: 'To',
|
|
221
|
+
filter_all: 'All',
|
|
222
|
+
filter_select_all: 'All',
|
|
223
|
+
filter_select_none: 'None',
|
|
224
|
+
filter_search_value: 'Search value...',
|
|
225
|
+
filter_no_support: 'Filtering is not available for this field type.',
|
|
226
|
+
// mrd-table textblock
|
|
227
|
+
textblock_show_more: 'Show more',
|
|
228
|
+
close: 'Close',
|
|
229
|
+
// history badge
|
|
230
|
+
history_until: 'until',
|
|
231
|
+
history_badge_tooltip: 'Previous values',
|
|
232
|
+
hyperlink_name: 'Link text (optional)',
|
|
233
|
+
// mrd-document-list
|
|
234
|
+
new_folder: 'New folder',
|
|
235
|
+
folder_name_placeholder: 'Folder name',
|
|
236
|
+
folder_no_slash: "A folder name cannot contain '/'",
|
|
237
|
+
folder_duplicate: 'A folder with this name already exists',
|
|
238
|
+
doc_empty_drop: 'No documents yet — drop files here',
|
|
239
|
+
// mrd-merge-view
|
|
240
|
+
merge_search_hint: 'Search for the duplicate to merge with',
|
|
241
|
+
merge_select: 'Select',
|
|
242
|
+
merge_compare_heading: 'Resolve conflicts',
|
|
243
|
+
merge_column_a: 'Current (kept)',
|
|
244
|
+
merge_column_b: 'Candidate (will be deleted)',
|
|
245
|
+
merge_auto_heading: 'These fields will be taken from the candidate automatically:',
|
|
246
|
+
merge_no_conflicts: 'No conflicting fields found',
|
|
247
|
+
merge_continue: 'Continue',
|
|
248
|
+
merge_back: 'Back',
|
|
249
|
+
merge_confirm_heading: 'Confirm merge',
|
|
250
|
+
merge_confirm_warning: 'This cannot be undone: the candidate will be permanently deleted.',
|
|
251
|
+
merge_confirm_button: 'Confirm merge',
|
|
252
|
+
},
|
|
253
|
+
ar: {
|
|
254
|
+
required: 'هذا الحقل مطلوب',
|
|
255
|
+
select_placeholder: 'اختر خياراً',
|
|
256
|
+
search_placeholder: 'بحث...',
|
|
257
|
+
upload_file: 'رفع ملف',
|
|
258
|
+
choose_file: 'اختر ملفاً',
|
|
259
|
+
clear: 'مسح',
|
|
260
|
+
today: 'اليوم',
|
|
261
|
+
invalid_email: 'يرجى إدخال عنوان بريد إلكتروني صحيح',
|
|
262
|
+
invalid_url: 'يرجى إدخال رابط صحيح',
|
|
263
|
+
invalid_number: 'يرجى إدخال رقم صحيح',
|
|
264
|
+
drop_file_here: 'اسحب الملف هنا أو',
|
|
265
|
+
browse: 'تصفح',
|
|
266
|
+
file_too_large: 'الملف كبير جداً',
|
|
267
|
+
invalid_image: 'يرجى اختيار ملف صورة',
|
|
268
|
+
search_results: 'نتائج البحث',
|
|
269
|
+
no_results: 'لم يتم العثور على نتائج',
|
|
270
|
+
load_failed_retry: 'فشل التحميل — إعادة المحاولة',
|
|
271
|
+
loading: 'جار التحميل...',
|
|
272
|
+
submit: 'حفظ',
|
|
273
|
+
cancel: 'إلغاء',
|
|
274
|
+
remove: 'إزالة',
|
|
275
|
+
add: 'إضافة',
|
|
276
|
+
yes: 'نعم',
|
|
277
|
+
no: 'لا',
|
|
278
|
+
// mrd-table footer
|
|
279
|
+
table_of: 'من أصل',
|
|
280
|
+
download: 'تنزيل',
|
|
281
|
+
// mrd-table toolbar
|
|
282
|
+
table_filter: 'تصفية',
|
|
283
|
+
table_filter_hide: 'إخفاء التصفية',
|
|
284
|
+
table_filter_active: 'نشط',
|
|
285
|
+
table_filter_clear_all: 'مسح جميع الفلاتر',
|
|
286
|
+
table_new_record: 'سجل جديد',
|
|
287
|
+
table_export_excel: 'تصدير إلى Excel',
|
|
288
|
+
doc_view_switch: 'تبديل العرض',
|
|
289
|
+
doc_view_tree: 'عرض شجري',
|
|
290
|
+
doc_view_list: 'عرض القائمة',
|
|
291
|
+
// mrd-table filter popup
|
|
292
|
+
filter_sorting: 'الترتيب',
|
|
293
|
+
filter_ascending: 'تصاعدي',
|
|
294
|
+
filter_descending: 'تنازلي',
|
|
295
|
+
filter_section: 'تصفية',
|
|
296
|
+
filter_apply: 'تطبيق',
|
|
297
|
+
filter_clear: 'مسح',
|
|
298
|
+
filter_contains: 'يحتوي على',
|
|
299
|
+
filter_starts_with: 'يبدأ بـ',
|
|
300
|
+
filter_equals: 'يساوي',
|
|
301
|
+
filter_has_value: 'له قيمة',
|
|
302
|
+
filter_is_empty: 'فارغ',
|
|
303
|
+
filter_is_not_empty: 'ليس فارغاً',
|
|
304
|
+
filter_exact: 'دقيق',
|
|
305
|
+
filter_range: 'نطاق',
|
|
306
|
+
filter_from: 'من',
|
|
307
|
+
filter_to: 'إلى',
|
|
308
|
+
filter_all: 'الكل',
|
|
309
|
+
filter_select_all: 'الكل',
|
|
310
|
+
filter_select_none: 'لا شيء',
|
|
311
|
+
filter_search_value: 'قيمة البحث...',
|
|
312
|
+
filter_no_support: 'التصفية غير متاحة لهذا النوع من الحقول.',
|
|
313
|
+
// mrd-table textblock
|
|
314
|
+
textblock_show_more: 'عرض المزيد',
|
|
315
|
+
close: 'إغلاق',
|
|
316
|
+
// history badge
|
|
317
|
+
history_until: 'حتى',
|
|
318
|
+
history_badge_tooltip: 'القيم السابقة',
|
|
319
|
+
hyperlink_name: 'نص الرابط (اختياري)',
|
|
320
|
+
// mrd-merge-view
|
|
321
|
+
merge_search_hint: 'ابحث عن السجل المكرر للدمج معه',
|
|
322
|
+
merge_select: 'اختر',
|
|
323
|
+
merge_compare_heading: 'حل التعارضات',
|
|
324
|
+
merge_column_a: 'الحالي (سيتم الاحتفاظ به)',
|
|
325
|
+
merge_column_b: 'المرشح (سيتم حذفه)',
|
|
326
|
+
merge_auto_heading: 'سيتم أخذ هذه الحقول من المرشح تلقائياً:',
|
|
327
|
+
merge_no_conflicts: 'لم يتم العثور على حقول متعارضة',
|
|
328
|
+
merge_continue: 'متابعة',
|
|
329
|
+
merge_back: 'رجوع',
|
|
330
|
+
merge_confirm_heading: 'تأكيد الدمج',
|
|
331
|
+
merge_confirm_warning: 'لا يمكن التراجع عن هذا الإجراء: سيتم حذف المرشح نهائياً.',
|
|
332
|
+
merge_confirm_button: 'تأكيد الدمج',
|
|
333
|
+
},
|
|
334
|
+
fr: {
|
|
335
|
+
required: 'Ce champ est obligatoire',
|
|
336
|
+
select_placeholder: 'Sélectionner une option',
|
|
337
|
+
search_placeholder: 'Rechercher...',
|
|
338
|
+
upload_file: 'Télécharger un fichier',
|
|
339
|
+
choose_file: 'Choisir un fichier',
|
|
340
|
+
clear: 'Effacer',
|
|
341
|
+
today: "Aujourd'hui",
|
|
342
|
+
invalid_email: 'Veuillez saisir une adresse e-mail valide',
|
|
343
|
+
invalid_url: 'Veuillez saisir une URL valide',
|
|
344
|
+
invalid_number: 'Veuillez saisir un nombre valide',
|
|
345
|
+
drop_file_here: 'Déposez le fichier ici ou',
|
|
346
|
+
browse: 'parcourir',
|
|
347
|
+
file_too_large: 'Le fichier est trop volumineux',
|
|
348
|
+
invalid_image: 'Veuillez sélectionner un fichier image',
|
|
349
|
+
search_results: 'Résultats de recherche',
|
|
350
|
+
no_results: 'Aucun résultat trouvé',
|
|
351
|
+
load_failed_retry: 'Échec du chargement — réessayer',
|
|
352
|
+
loading: 'Chargement...',
|
|
353
|
+
submit: 'Enregistrer',
|
|
354
|
+
cancel: 'Annuler',
|
|
355
|
+
remove: 'Supprimer',
|
|
356
|
+
add: 'Ajouter',
|
|
357
|
+
yes: 'Oui',
|
|
358
|
+
no: 'Non',
|
|
359
|
+
// mrd-table footer
|
|
360
|
+
table_of: 'sur',
|
|
361
|
+
download: 'Télécharger',
|
|
362
|
+
// mrd-table toolbar
|
|
363
|
+
table_filter: 'Filtrer',
|
|
364
|
+
table_filter_hide: 'Masquer le filtre',
|
|
365
|
+
table_filter_active: 'actif',
|
|
366
|
+
table_filter_clear_all: 'Effacer tous les filtres',
|
|
367
|
+
table_new_record: 'Nouvel enregistrement',
|
|
368
|
+
table_export_excel: 'Exporter vers Excel',
|
|
369
|
+
doc_view_switch: 'Changer de vue',
|
|
370
|
+
doc_view_tree: 'Vue arborescente',
|
|
371
|
+
doc_view_list: 'Vue liste',
|
|
372
|
+
// mrd-table filter popup
|
|
373
|
+
filter_sorting: 'Tri',
|
|
374
|
+
filter_ascending: 'Croissant',
|
|
375
|
+
filter_descending: 'Décroissant',
|
|
376
|
+
filter_section: 'Filtre',
|
|
377
|
+
filter_apply: 'Appliquer',
|
|
378
|
+
filter_clear: 'Effacer',
|
|
379
|
+
filter_contains: 'Contient',
|
|
380
|
+
filter_starts_with: 'Commence par',
|
|
381
|
+
filter_equals: 'Égal à',
|
|
382
|
+
filter_has_value: 'A une valeur',
|
|
383
|
+
filter_is_empty: 'Est vide',
|
|
384
|
+
filter_is_not_empty: "N'est pas vide",
|
|
385
|
+
filter_exact: 'Exact',
|
|
386
|
+
filter_range: 'Plage',
|
|
387
|
+
filter_from: 'De',
|
|
388
|
+
filter_to: 'À',
|
|
389
|
+
filter_all: 'Tous',
|
|
390
|
+
filter_select_all: 'Tous',
|
|
391
|
+
filter_select_none: 'Aucun',
|
|
392
|
+
filter_search_value: 'Valeur de recherche...',
|
|
393
|
+
filter_no_support: "Le filtrage n'est pas disponible pour ce type de champ.",
|
|
394
|
+
// mrd-table textblock
|
|
395
|
+
textblock_show_more: 'Voir plus',
|
|
396
|
+
close: 'Fermer',
|
|
397
|
+
// history badge
|
|
398
|
+
history_until: "jusqu'au",
|
|
399
|
+
history_badge_tooltip: 'Valeurs précédentes',
|
|
400
|
+
hyperlink_name: 'Texte du lien (optionnel)',
|
|
401
|
+
// mrd-merge-view
|
|
402
|
+
merge_search_hint: 'Rechercher le doublon à fusionner',
|
|
403
|
+
merge_select: 'Sélectionner',
|
|
404
|
+
merge_compare_heading: 'Résoudre les conflits',
|
|
405
|
+
merge_column_a: 'Actuel (conservé)',
|
|
406
|
+
merge_column_b: 'Candidat (sera supprimé)',
|
|
407
|
+
merge_auto_heading: 'Ces champs seront repris automatiquement du candidat :',
|
|
408
|
+
merge_no_conflicts: 'Aucun champ en conflit trouvé',
|
|
409
|
+
merge_continue: 'Continuer',
|
|
410
|
+
merge_back: 'Retour',
|
|
411
|
+
merge_confirm_heading: 'Confirmer la fusion',
|
|
412
|
+
merge_confirm_warning: 'Cette action est irréversible : le candidat sera définitivement supprimé.',
|
|
413
|
+
merge_confirm_button: 'Confirmer la fusion',
|
|
414
|
+
},
|
|
415
|
+
de: {
|
|
416
|
+
required: 'Dieses Feld ist erforderlich',
|
|
417
|
+
select_placeholder: 'Option auswählen',
|
|
418
|
+
search_placeholder: 'Suchen...',
|
|
419
|
+
upload_file: 'Datei hochladen',
|
|
420
|
+
choose_file: 'Datei auswählen',
|
|
421
|
+
clear: 'Löschen',
|
|
422
|
+
today: 'Heute',
|
|
423
|
+
invalid_email: 'Bitte geben Sie eine gültige E-Mail-Adresse ein',
|
|
424
|
+
invalid_url: 'Bitte geben Sie eine gültige URL ein',
|
|
425
|
+
invalid_number: 'Bitte geben Sie eine gültige Zahl ein',
|
|
426
|
+
drop_file_here: 'Datei hier ablegen oder',
|
|
427
|
+
browse: 'durchsuchen',
|
|
428
|
+
file_too_large: 'Datei ist zu groß',
|
|
429
|
+
invalid_image: 'Bitte eine Bilddatei auswählen',
|
|
430
|
+
search_results: 'Suchergebnisse',
|
|
431
|
+
no_results: 'Keine Ergebnisse gefunden',
|
|
432
|
+
load_failed_retry: 'Laden fehlgeschlagen — erneut versuchen',
|
|
433
|
+
loading: 'Laden...',
|
|
434
|
+
submit: 'Speichern',
|
|
435
|
+
cancel: 'Abbrechen',
|
|
436
|
+
remove: 'Entfernen',
|
|
437
|
+
add: 'Hinzufügen',
|
|
438
|
+
yes: 'Ja',
|
|
439
|
+
no: 'Nein',
|
|
440
|
+
// mrd-table footer
|
|
441
|
+
table_of: 'von',
|
|
442
|
+
download: 'Herunterladen',
|
|
443
|
+
// mrd-table toolbar
|
|
444
|
+
table_filter: 'Filtern',
|
|
445
|
+
table_filter_hide: 'Filter ausblenden',
|
|
446
|
+
table_filter_active: 'aktiv',
|
|
447
|
+
table_filter_clear_all: 'Alle Filter löschen',
|
|
448
|
+
table_new_record: 'Neuer Eintrag',
|
|
449
|
+
table_export_excel: 'Als Excel exportieren',
|
|
450
|
+
doc_view_switch: 'Ansicht wechseln',
|
|
451
|
+
doc_view_tree: 'Baumansicht',
|
|
452
|
+
doc_view_list: 'Listenansicht',
|
|
453
|
+
// mrd-table filter popup
|
|
454
|
+
filter_sorting: 'Sortierung',
|
|
455
|
+
filter_ascending: 'Aufsteigend',
|
|
456
|
+
filter_descending: 'Absteigend',
|
|
457
|
+
filter_section: 'Filter',
|
|
458
|
+
filter_apply: 'Anwenden',
|
|
459
|
+
filter_clear: 'Löschen',
|
|
460
|
+
filter_contains: 'Enthält',
|
|
461
|
+
filter_starts_with: 'Beginnt mit',
|
|
462
|
+
filter_equals: 'Gleich',
|
|
463
|
+
filter_has_value: 'Hat Wert',
|
|
464
|
+
filter_is_empty: 'Ist leer',
|
|
465
|
+
filter_is_not_empty: 'Ist nicht leer',
|
|
466
|
+
filter_exact: 'Genau',
|
|
467
|
+
filter_range: 'Bereich',
|
|
468
|
+
filter_from: 'Von',
|
|
469
|
+
filter_to: 'Bis',
|
|
470
|
+
filter_all: 'Alle',
|
|
471
|
+
filter_select_all: 'Alle',
|
|
472
|
+
filter_select_none: 'Keine',
|
|
473
|
+
filter_search_value: 'Suchwert...',
|
|
474
|
+
filter_no_support: 'Filterung ist für diesen Feldtyp nicht verfügbar.',
|
|
475
|
+
// mrd-table textblock
|
|
476
|
+
textblock_show_more: 'Mehr anzeigen',
|
|
477
|
+
close: 'Schließen',
|
|
478
|
+
// history badge
|
|
479
|
+
history_until: 'bis',
|
|
480
|
+
history_badge_tooltip: 'Vorherige Werte',
|
|
481
|
+
hyperlink_name: 'Linktext (optional)',
|
|
482
|
+
// mrd-merge-view
|
|
483
|
+
merge_search_hint: 'Suchen Sie das Duplikat, mit dem zusammengeführt werden soll',
|
|
484
|
+
merge_select: 'Auswählen',
|
|
485
|
+
merge_compare_heading: 'Konflikte lösen',
|
|
486
|
+
merge_column_a: 'Aktuell (bleibt erhalten)',
|
|
487
|
+
merge_column_b: 'Kandidat (wird gelöscht)',
|
|
488
|
+
merge_auto_heading: 'Diese Felder werden automatisch vom Kandidaten übernommen:',
|
|
489
|
+
merge_no_conflicts: 'Keine widersprüchlichen Felder gefunden',
|
|
490
|
+
merge_continue: 'Weiter',
|
|
491
|
+
merge_back: 'Zurück',
|
|
492
|
+
merge_confirm_heading: 'Zusammenführung bestätigen',
|
|
493
|
+
merge_confirm_warning: 'Dies kann nicht rückgängig gemacht werden: der Kandidat wird endgültig gelöscht.',
|
|
494
|
+
merge_confirm_button: 'Zusammenführung bestätigen',
|
|
495
|
+
},
|
|
496
|
+
es: {
|
|
497
|
+
required: 'Este campo es obligatorio',
|
|
498
|
+
select_placeholder: 'Seleccionar una opción',
|
|
499
|
+
search_placeholder: 'Buscar...',
|
|
500
|
+
upload_file: 'Subir archivo',
|
|
501
|
+
choose_file: 'Elegir archivo',
|
|
502
|
+
clear: 'Borrar',
|
|
503
|
+
today: 'Hoy',
|
|
504
|
+
invalid_email: 'Por favor, introduzca una dirección de correo electrónico válida',
|
|
505
|
+
invalid_url: 'Por favor, introduzca una URL válida',
|
|
506
|
+
invalid_number: 'Por favor, introduzca un número válido',
|
|
507
|
+
drop_file_here: 'Suelte el archivo aquí o',
|
|
508
|
+
browse: 'explorar',
|
|
509
|
+
file_too_large: 'El archivo es demasiado grande',
|
|
510
|
+
invalid_image: 'Seleccione un archivo de imagen',
|
|
511
|
+
search_results: 'Resultados de búsqueda',
|
|
512
|
+
no_results: 'No se encontraron resultados',
|
|
513
|
+
load_failed_retry: 'Error al cargar — reintentar',
|
|
514
|
+
loading: 'Cargando...',
|
|
515
|
+
submit: 'Guardar',
|
|
516
|
+
cancel: 'Cancelar',
|
|
517
|
+
remove: 'Eliminar',
|
|
518
|
+
add: 'Añadir',
|
|
519
|
+
yes: 'Sí',
|
|
520
|
+
no: 'No',
|
|
521
|
+
// mrd-table footer
|
|
522
|
+
table_of: 'de',
|
|
523
|
+
download: 'Descargar',
|
|
524
|
+
// mrd-table toolbar
|
|
525
|
+
table_filter: 'Filtrar',
|
|
526
|
+
table_filter_hide: 'Ocultar filtro',
|
|
527
|
+
table_filter_active: 'activo',
|
|
528
|
+
table_filter_clear_all: 'Borrar todos los filtros',
|
|
529
|
+
table_new_record: 'Nuevo registro',
|
|
530
|
+
table_export_excel: 'Exportar a Excel',
|
|
531
|
+
doc_view_switch: 'Cambiar vista',
|
|
532
|
+
doc_view_tree: 'Vista de árbol',
|
|
533
|
+
doc_view_list: 'Vista de lista',
|
|
534
|
+
// mrd-table filter popup
|
|
535
|
+
filter_sorting: 'Ordenación',
|
|
536
|
+
filter_ascending: 'Ascendente',
|
|
537
|
+
filter_descending: 'Descendente',
|
|
538
|
+
filter_section: 'Filtro',
|
|
539
|
+
filter_apply: 'Aplicar',
|
|
540
|
+
filter_clear: 'Borrar',
|
|
541
|
+
filter_contains: 'Contiene',
|
|
542
|
+
filter_starts_with: 'Empieza por',
|
|
543
|
+
filter_equals: 'Igual a',
|
|
544
|
+
filter_has_value: 'Tiene valor',
|
|
545
|
+
filter_is_empty: 'Está vacío',
|
|
546
|
+
filter_is_not_empty: 'No está vacío',
|
|
547
|
+
filter_exact: 'Exacto',
|
|
548
|
+
filter_range: 'Rango',
|
|
549
|
+
filter_from: 'Desde',
|
|
550
|
+
filter_to: 'Hasta',
|
|
551
|
+
filter_all: 'Todos',
|
|
552
|
+
filter_select_all: 'Todos',
|
|
553
|
+
filter_select_none: 'Ninguno',
|
|
554
|
+
filter_search_value: 'Valor de búsqueda...',
|
|
555
|
+
filter_no_support: 'El filtrado no está disponible para este tipo de campo.',
|
|
556
|
+
// mrd-table textblock
|
|
557
|
+
textblock_show_more: 'Mostrar más',
|
|
558
|
+
close: 'Cerrar',
|
|
559
|
+
// history badge
|
|
560
|
+
history_until: 'hasta',
|
|
561
|
+
history_badge_tooltip: 'Valores anteriores',
|
|
562
|
+
hyperlink_name: 'Texto del enlace (opcional)',
|
|
563
|
+
// mrd-merge-view
|
|
564
|
+
merge_search_hint: 'Busque el duplicado con el que fusionar',
|
|
565
|
+
merge_select: 'Seleccionar',
|
|
566
|
+
merge_compare_heading: 'Resolver conflictos',
|
|
567
|
+
merge_column_a: 'Actual (se conserva)',
|
|
568
|
+
merge_column_b: 'Candidato (se eliminará)',
|
|
569
|
+
merge_auto_heading: 'Estos campos se tomarán automáticamente del candidato:',
|
|
570
|
+
merge_no_conflicts: 'No se encontraron campos en conflicto',
|
|
571
|
+
merge_continue: 'Continuar',
|
|
572
|
+
merge_back: 'Atrás',
|
|
573
|
+
merge_confirm_heading: 'Confirmar fusión',
|
|
574
|
+
merge_confirm_warning: 'Esto no se puede deshacer: el candidato se eliminará permanentemente.',
|
|
575
|
+
merge_confirm_button: 'Confirmar fusión',
|
|
576
|
+
},
|
|
577
|
+
it: {
|
|
578
|
+
required: 'Questo campo è obbligatorio',
|
|
579
|
+
select_placeholder: "Seleziona un'opzione",
|
|
580
|
+
search_placeholder: 'Cerca...',
|
|
581
|
+
upload_file: 'Carica file',
|
|
582
|
+
choose_file: 'Scegli file',
|
|
583
|
+
clear: 'Cancella',
|
|
584
|
+
today: 'Oggi',
|
|
585
|
+
invalid_email: 'Inserisci un indirizzo email valido',
|
|
586
|
+
invalid_url: 'Inserisci un URL valido',
|
|
587
|
+
invalid_number: 'Inserisci un numero valido',
|
|
588
|
+
drop_file_here: 'Trascina il file qui o',
|
|
589
|
+
browse: 'sfoglia',
|
|
590
|
+
file_too_large: 'Il file è troppo grande',
|
|
591
|
+
invalid_image: 'Seleziona un file immagine',
|
|
592
|
+
search_results: 'Risultati della ricerca',
|
|
593
|
+
no_results: 'Nessun risultato trovato',
|
|
594
|
+
load_failed_retry: 'Caricamento non riuscito — riprova',
|
|
595
|
+
loading: 'Caricamento...',
|
|
596
|
+
submit: 'Salva',
|
|
597
|
+
cancel: 'Annulla',
|
|
598
|
+
remove: 'Rimuovi',
|
|
599
|
+
add: 'Aggiungi',
|
|
600
|
+
yes: 'Sì',
|
|
601
|
+
no: 'No',
|
|
602
|
+
// mrd-table footer
|
|
603
|
+
table_of: 'di',
|
|
604
|
+
download: 'Scarica',
|
|
605
|
+
// mrd-table toolbar
|
|
606
|
+
table_filter: 'Filtra',
|
|
607
|
+
table_filter_hide: 'Nascondi filtro',
|
|
608
|
+
table_filter_active: 'attivo',
|
|
609
|
+
table_filter_clear_all: 'Cancella tutti i filtri',
|
|
610
|
+
table_new_record: 'Nuovo record',
|
|
611
|
+
table_export_excel: 'Esporta in Excel',
|
|
612
|
+
doc_view_switch: 'Cambia vista',
|
|
613
|
+
doc_view_tree: 'Vista ad albero',
|
|
614
|
+
doc_view_list: 'Vista elenco',
|
|
615
|
+
// mrd-table filter popup
|
|
616
|
+
filter_sorting: 'Ordinamento',
|
|
617
|
+
filter_ascending: 'Crescente',
|
|
618
|
+
filter_descending: 'Decrescente',
|
|
619
|
+
filter_section: 'Filtro',
|
|
620
|
+
filter_apply: 'Applica',
|
|
621
|
+
filter_clear: 'Cancella',
|
|
622
|
+
filter_contains: 'Contiene',
|
|
623
|
+
filter_starts_with: 'Inizia con',
|
|
624
|
+
filter_equals: 'Uguale a',
|
|
625
|
+
filter_has_value: 'Ha valore',
|
|
626
|
+
filter_is_empty: 'È vuoto',
|
|
627
|
+
filter_is_not_empty: 'Non è vuoto',
|
|
628
|
+
filter_exact: 'Esatto',
|
|
629
|
+
filter_range: 'Intervallo',
|
|
630
|
+
filter_from: 'Da',
|
|
631
|
+
filter_to: 'A',
|
|
632
|
+
filter_all: 'Tutti',
|
|
633
|
+
filter_select_all: 'Tutti',
|
|
634
|
+
filter_select_none: 'Nessuno',
|
|
635
|
+
filter_search_value: 'Valore di ricerca...',
|
|
636
|
+
filter_no_support: 'Il filtro non è disponibile per questo tipo di campo.',
|
|
637
|
+
// mrd-table textblock
|
|
638
|
+
textblock_show_more: 'Mostra altro',
|
|
639
|
+
close: 'Chiudi',
|
|
640
|
+
// history badge
|
|
641
|
+
history_until: 'fino a',
|
|
642
|
+
history_badge_tooltip: 'Valori precedenti',
|
|
643
|
+
hyperlink_name: 'Testo del collegamento (opzionale)',
|
|
644
|
+
// mrd-merge-view
|
|
645
|
+
merge_search_hint: 'Cerca il duplicato con cui unire',
|
|
646
|
+
merge_select: 'Seleziona',
|
|
647
|
+
merge_compare_heading: 'Risolvi i conflitti',
|
|
648
|
+
merge_column_a: 'Attuale (viene mantenuto)',
|
|
649
|
+
merge_column_b: 'Candidato (verrà eliminato)',
|
|
650
|
+
merge_auto_heading: 'Questi campi verranno ripresi automaticamente dal candidato:',
|
|
651
|
+
merge_no_conflicts: 'Nessun campo in conflitto trovato',
|
|
652
|
+
merge_continue: 'Continua',
|
|
653
|
+
merge_back: 'Indietro',
|
|
654
|
+
merge_confirm_heading: 'Conferma unione',
|
|
655
|
+
merge_confirm_warning: "Questa azione non può essere annullata: il candidato verrà eliminato definitivamente.",
|
|
656
|
+
merge_confirm_button: 'Conferma unione',
|
|
657
|
+
},
|
|
658
|
+
uk: {
|
|
659
|
+
required: "Це поле обов'язкове",
|
|
660
|
+
select_placeholder: 'Виберіть варіант',
|
|
661
|
+
search_placeholder: 'Пошук...',
|
|
662
|
+
upload_file: 'Завантажити файл',
|
|
663
|
+
choose_file: 'Вибрати файл',
|
|
664
|
+
clear: 'Очистити',
|
|
665
|
+
today: 'Сьогодні',
|
|
666
|
+
invalid_email: 'Будь ласка, введіть дійсну адресу електронної пошти',
|
|
667
|
+
invalid_url: 'Будь ласка, введіть дійсну URL-адресу',
|
|
668
|
+
invalid_number: 'Будь ласка, введіть дійсне число',
|
|
669
|
+
drop_file_here: 'Перетягніть файл сюди або',
|
|
670
|
+
browse: 'огляд',
|
|
671
|
+
file_too_large: 'Файл занадто великий',
|
|
672
|
+
invalid_image: 'Будь ласка, виберіть файл зображення',
|
|
673
|
+
search_results: 'Результати пошуку',
|
|
674
|
+
no_results: 'Результатів не знайдено',
|
|
675
|
+
load_failed_retry: 'Не вдалося завантажити — повторити',
|
|
676
|
+
loading: 'Завантаження...',
|
|
677
|
+
submit: 'Зберегти',
|
|
678
|
+
cancel: 'Скасувати',
|
|
679
|
+
remove: 'Видалити',
|
|
680
|
+
add: 'Додати',
|
|
681
|
+
yes: 'Так',
|
|
682
|
+
no: 'Ні',
|
|
683
|
+
// mrd-table footer
|
|
684
|
+
table_of: 'з',
|
|
685
|
+
download: 'Завантажити',
|
|
686
|
+
// mrd-table toolbar
|
|
687
|
+
table_filter: 'Фільтрувати',
|
|
688
|
+
table_filter_hide: 'Сховати фільтр',
|
|
689
|
+
table_filter_active: 'активний',
|
|
690
|
+
table_filter_clear_all: 'Очистити всі фільтри',
|
|
691
|
+
table_new_record: 'Новий запис',
|
|
692
|
+
table_export_excel: 'Експортувати до Excel',
|
|
693
|
+
doc_view_switch: 'Змінити вигляд',
|
|
694
|
+
doc_view_tree: 'Деревоподібний вигляд',
|
|
695
|
+
doc_view_list: 'Список',
|
|
696
|
+
// mrd-table filter popup
|
|
697
|
+
filter_sorting: 'Сортування',
|
|
698
|
+
filter_ascending: 'За зростанням',
|
|
699
|
+
filter_descending: 'За спаданням',
|
|
700
|
+
filter_section: 'Фільтр',
|
|
701
|
+
filter_apply: 'Застосувати',
|
|
702
|
+
filter_clear: 'Очистити',
|
|
703
|
+
filter_contains: 'Містить',
|
|
704
|
+
filter_starts_with: 'Починається з',
|
|
705
|
+
filter_equals: 'Дорівнює',
|
|
706
|
+
filter_has_value: 'Має значення',
|
|
707
|
+
filter_is_empty: 'Порожнє',
|
|
708
|
+
filter_is_not_empty: 'Не порожнє',
|
|
709
|
+
filter_exact: 'Точно',
|
|
710
|
+
filter_range: 'Діапазон',
|
|
711
|
+
filter_from: 'Від',
|
|
712
|
+
filter_to: 'До',
|
|
713
|
+
filter_all: 'Всі',
|
|
714
|
+
filter_select_all: 'Всі',
|
|
715
|
+
filter_select_none: 'Жодного',
|
|
716
|
+
filter_search_value: 'Значення для пошуку...',
|
|
717
|
+
filter_no_support: 'Фільтрування недоступне для цього типу поля.',
|
|
718
|
+
// mrd-table textblock
|
|
719
|
+
textblock_show_more: 'Показати більше',
|
|
720
|
+
close: 'Закрити',
|
|
721
|
+
// history badge
|
|
722
|
+
history_until: 'до',
|
|
723
|
+
history_badge_tooltip: 'Попередні значення',
|
|
724
|
+
hyperlink_name: "Текст посилання (необов'язково)",
|
|
725
|
+
// mrd-merge-view
|
|
726
|
+
merge_search_hint: 'Знайдіть дублікат для об\'єднання',
|
|
727
|
+
merge_select: 'Вибрати',
|
|
728
|
+
merge_compare_heading: 'Вирішити конфлікти',
|
|
729
|
+
merge_column_a: 'Поточний (залишається)',
|
|
730
|
+
merge_column_b: 'Кандидат (буде видалено)',
|
|
731
|
+
merge_auto_heading: 'Ці поля будуть автоматично взяті з кандидата:',
|
|
732
|
+
merge_no_conflicts: 'Конфліктних полів не знайдено',
|
|
733
|
+
merge_continue: 'Продовжити',
|
|
734
|
+
merge_back: 'Назад',
|
|
735
|
+
merge_confirm_heading: 'Підтвердити об\'єднання',
|
|
736
|
+
merge_confirm_warning: 'Цю дію не можна скасувати: кандидат буде остаточно видалено.',
|
|
737
|
+
merge_confirm_button: 'Підтвердити об\'єднання',
|
|
738
|
+
},
|
|
739
|
+
};
|
|
740
|
+
function t(key, locale) {
|
|
741
|
+
var _a, _b, _c;
|
|
742
|
+
const lang = (locale !== null && locale !== void 0 ? locale : 'en').split('-')[0].toLowerCase();
|
|
743
|
+
const dict = (_a = translations[lang]) !== null && _a !== void 0 ? _a : translations['en'];
|
|
744
|
+
return (_c = (_b = dict[key]) !== null && _b !== void 0 ? _b : translations['en'][key]) !== null && _c !== void 0 ? _c : key;
|
|
745
|
+
}
|
|
746
|
+
|
|
747
|
+
class CellRenderer {
|
|
748
|
+
static render(column, row, locale) {
|
|
749
|
+
var _a, _b, _c, _d;
|
|
750
|
+
if (column.type === clientLayout.ClientLayoutItemType.RELATION) {
|
|
751
|
+
const name = (_a = column.name) !== null && _a !== void 0 ? _a : '';
|
|
752
|
+
const link = (_b = row === null || row === void 0 ? void 0 : row._links) === null || _b === void 0 ? void 0 : _b[name];
|
|
753
|
+
if (!link)
|
|
754
|
+
return '';
|
|
755
|
+
if (Array.isArray(link))
|
|
756
|
+
return link.map((l) => { var _a; return (_a = l.name) !== null && _a !== void 0 ? _a : ''; }).filter(Boolean).join(', ');
|
|
757
|
+
return (_c = link.name) !== null && _c !== void 0 ? _c : '';
|
|
758
|
+
}
|
|
759
|
+
if (column.type !== clientLayout.ClientLayoutItemType.FIELD)
|
|
760
|
+
return '';
|
|
761
|
+
const name = (_d = column.name) !== null && _d !== void 0 ? _d : '';
|
|
762
|
+
const dataType = column.dataType;
|
|
763
|
+
const listItems = column.listItems;
|
|
764
|
+
let raw = row === null || row === void 0 ? void 0 : row[name];
|
|
765
|
+
// History-enabled fields are stored as { current, history: [...] } — render
|
|
766
|
+
// the current value, same as mrd-layout-section's field rendering.
|
|
767
|
+
if (column.historyEnabled && raw != null && typeof raw === 'object' && !Array.isArray(raw) && 'current' in raw) {
|
|
768
|
+
raw = raw.current;
|
|
769
|
+
}
|
|
770
|
+
if (raw == null || raw === '')
|
|
771
|
+
return '';
|
|
772
|
+
const values = Array.isArray(raw) ? raw : [raw];
|
|
773
|
+
return values
|
|
774
|
+
.map(v => CellRenderer.renderValue(dataType !== null && dataType !== void 0 ? dataType : 'TEXT', v, listItems !== null && listItems !== void 0 ? listItems : [], locale))
|
|
775
|
+
.filter(s => s !== '')
|
|
776
|
+
.join(', ');
|
|
777
|
+
}
|
|
778
|
+
static renderValue(dataType, value, listItems, locale) {
|
|
779
|
+
var _a, _b;
|
|
780
|
+
switch (dataType) {
|
|
781
|
+
case 'INTEGER':
|
|
782
|
+
return formatNumber(Number(value), locale, { maximumFractionDigits: 0 });
|
|
783
|
+
case 'DECIMAL':
|
|
784
|
+
return formatNumber(Number(value), locale);
|
|
785
|
+
case 'PERCENTAGE':
|
|
786
|
+
return formatPercentage(Number(value), locale);
|
|
787
|
+
case 'CURRENCY': {
|
|
788
|
+
const { amount, currency } = typeof value === 'object' && value !== null
|
|
789
|
+
? value
|
|
790
|
+
: { amount: value, currency: '' };
|
|
791
|
+
return currency
|
|
792
|
+
? formatCurrency(Number(amount), currency, locale)
|
|
793
|
+
: formatNumber(Number(amount), locale);
|
|
794
|
+
}
|
|
795
|
+
case 'DATE':
|
|
796
|
+
return formatDate(value, locale);
|
|
797
|
+
case 'DATETIME':
|
|
798
|
+
return formatDateTime(value, locale);
|
|
799
|
+
case 'TIME':
|
|
800
|
+
return formatTime(value, locale);
|
|
801
|
+
case 'BOOLEAN':
|
|
802
|
+
return value ? '✓' : '';
|
|
803
|
+
case 'FILE':
|
|
804
|
+
case 'IMAGE':
|
|
805
|
+
return typeof value === 'object' && value !== null ? ((_a = value.fileName) !== null && _a !== void 0 ? _a : '') : '';
|
|
806
|
+
case 'LIST': {
|
|
807
|
+
const item = listItems.find(li => li.key === String(value));
|
|
808
|
+
return (_b = item === null || item === void 0 ? void 0 : item.label) !== null && _b !== void 0 ? _b : String(value);
|
|
809
|
+
}
|
|
810
|
+
case 'TEXTBLOCK': {
|
|
811
|
+
const stripped = String(value).replace(/<[^>]*>/g, '');
|
|
812
|
+
const txt = document.createElement('textarea');
|
|
813
|
+
txt.innerHTML = stripped;
|
|
814
|
+
return txt.value.trim();
|
|
815
|
+
}
|
|
816
|
+
case 'LONGTEXT':
|
|
817
|
+
return String(value).replace(/[\r\n]+/g, ' ').trim();
|
|
818
|
+
case 'JSON': {
|
|
819
|
+
const str = typeof value === 'object' ? JSON.stringify(value) : String(value);
|
|
820
|
+
return str.replace(/[\r\n]+/g, ' ').trim();
|
|
821
|
+
}
|
|
822
|
+
case 'SECRET':
|
|
823
|
+
return value ? '••••••••' : '';
|
|
824
|
+
default:
|
|
825
|
+
return String(value);
|
|
826
|
+
}
|
|
827
|
+
}
|
|
828
|
+
/**
|
|
829
|
+
* Returns syntax-highlighted JSON as an HTML string with inline styles.
|
|
830
|
+
* compact=true → single line (no indentation); compact=false → pretty-printed.
|
|
831
|
+
*/
|
|
832
|
+
static formatJson(value, compact = false) {
|
|
833
|
+
try {
|
|
834
|
+
const parsed = typeof value === 'string' ? JSON.parse(value) : value;
|
|
835
|
+
const json = compact ? JSON.stringify(parsed) : JSON.stringify(parsed, null, 2);
|
|
836
|
+
return json.replace(/("(\\u[a-zA-Z0-9]{4}|\\[^u]|[^\\"])*"(\s*:)?|\b(true|false|null)\b|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?)/g, match => {
|
|
837
|
+
let style = 'color:#2aa198';
|
|
838
|
+
if (/^"/.test(match)) {
|
|
839
|
+
style = /:$/.test(match) ? 'color:#881391' : 'color:#268bd2';
|
|
840
|
+
}
|
|
841
|
+
else if (/true|false/.test(match)) {
|
|
842
|
+
style = 'color:#b58900';
|
|
843
|
+
}
|
|
844
|
+
else if (/null/.test(match)) {
|
|
845
|
+
style = 'color:#dc322f';
|
|
846
|
+
}
|
|
847
|
+
return `<span style="${style}">${match}</span>`;
|
|
848
|
+
});
|
|
849
|
+
}
|
|
850
|
+
catch (_a) {
|
|
851
|
+
return String(value);
|
|
852
|
+
}
|
|
853
|
+
}
|
|
854
|
+
}
|
|
855
|
+
|
|
856
|
+
exports.CellRenderer = CellRenderer;
|
|
857
|
+
exports.formatCurrency = formatCurrency;
|
|
858
|
+
exports.formatDate = formatDate;
|
|
859
|
+
exports.formatNumber = formatNumber;
|
|
860
|
+
exports.formatPercentage = formatPercentage;
|
|
861
|
+
exports.parseLocalizedNumber = parseLocalizedNumber;
|
|
862
|
+
exports.t = t;
|