@mmlogic/components 0.4.0 → 0.4.1

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.
@@ -4,7 +4,9 @@ import { buildListPath } from "../../../utils/query-params";
4
4
  import { TEXT_TYPES, NON_INTERACTIVE_TYPES, parseDefaultSort, buildSortParam, buildTableQueryParams, buildAggregationQs, filterHasValue, normalizeDatetimeFilter, datetimeFilterToDisplay, } from "./table-query";
5
5
  import { FilterIcon, TableCell, TotalsRow, TextblockModal, JsonModal, Toolbar } from "./table-parts";
6
6
  import { FilterPopup } from "./table-filter-popup";
7
- import { REQUEST_DEBOUNCE_MS, visibleCount, computeWindow, pageRange, getRowFromPages, computeEffectiveTotal, isTotalKnownFromPages, } from "./virtual-scroll";
7
+ import { REQUEST_DEBOUNCE_MS, REQUEST_TIMEOUT_MS, MAX_RETRY_ATTEMPTS, visibleCount, computeWindow, pageRange, getRowFromPages, computeEffectiveTotal, isTotalKnownFromPages, getStalePages, } from "./virtual-scroll";
8
+ /** How often (ms) to scan outstanding page requests for staleness. */
9
+ const STALE_CHECK_INTERVAL_MS = 2000;
8
10
  /** Breedte van de filterpopup in px — voor overflow-correctie. */
9
11
  const POPUP_WIDTH = 280;
10
12
  export class MrdTable {
@@ -12,6 +14,11 @@ export class MrdTable {
12
14
  // ── Non-state internals ────────────────────────────────────────────────────
13
15
  this.pendingPages = new Set();
14
16
  this.debounceTimer = null;
17
+ /** Timestamp of the last mrdLoadPage emission per outstanding page — drives stale-request detection. */
18
+ this.requestedAt = new Map();
19
+ /** Retry count per page since it first became stale. */
20
+ this.retryAttempts = new Map();
21
+ this.staleCheckTimer = null;
15
22
  this.outsideClickHandler = null;
16
23
  this.keydownHandler = null;
17
24
  this.createPickerClickHandler = null;
@@ -34,11 +41,16 @@ export class MrdTable {
34
41
  this.rowHeight = 36;
35
42
  /** Height of the scroll container in px. */
36
43
  this.tableHeight = 500;
44
+ /** Time (ms) to wait for setPage() before retrying a page request; after
45
+ * MAX_RETRY_ATTEMPTS retries the page is marked failed (see failedPages). */
46
+ this.requestTimeoutMs = REQUEST_TIMEOUT_MS;
37
47
  // ── Internal state ─────────────────────────────────────────────────────────
38
48
  /** Index into allViews[] for the currently displayed view. 0 = primary, 1+ = alternatives. */
39
49
  this.activeViewIdx = 0;
40
50
  this.loadedPages = new Map();
41
51
  this.requestedPages = new Set();
52
+ /** Pages that timed out MAX_RETRY_ATTEMPTS times — rendered as a retry row instead of shimmer. */
53
+ this.failedPages = new Set();
42
54
  this.renderStart = 0;
43
55
  this.renderEnd = 0;
44
56
  this.colWidths = [];
@@ -97,6 +109,9 @@ export class MrdTable {
97
109
  var _a, _b, _c;
98
110
  this.applyDefaultSort((_c = (_b = (_a = this.item) === null || _a === void 0 ? void 0 : _a.view) === null || _b === void 0 ? void 0 : _b.defaultSort) !== null && _c !== void 0 ? _c : '');
99
111
  }
112
+ componentDidLoad() {
113
+ this.staleCheckTimer = setInterval(() => this.checkStalePages(), STALE_CHECK_INTERVAL_MS);
114
+ }
100
115
  // ── Helpers ────────────────────────────────────────────────────────────────
101
116
  applyDefaultSort(defaultSort) {
102
117
  const { field, dir } = parseDefaultSort(defaultSort);
@@ -117,6 +132,9 @@ export class MrdTable {
117
132
  this.pendingPages.clear();
118
133
  this.loadedPages = new Map();
119
134
  this.requestedPages = new Set();
135
+ this.failedPages = new Set();
136
+ this.requestedAt.clear();
137
+ this.retryAttempts.clear();
120
138
  this.colWidths = [];
121
139
  this.colWidthMeasureScheduled = false;
122
140
  this.scrollTop = 0;
@@ -132,7 +150,7 @@ export class MrdTable {
132
150
  this.aggregationsPending = true;
133
151
  this.minKnownTotal = 0;
134
152
  // Always request page 0 — totalElements may be unknown (0) on first load.
135
- this.mrdLoadPage.emit({ page: 0, sort: this.sortParam(), path: this.buildDataPath(), qs: this.buildQueryParams(0) });
153
+ this.emitLoadPage(0);
136
154
  this.requestedPages = new Set([0]);
137
155
  }
138
156
  /**
@@ -163,6 +181,13 @@ export class MrdTable {
163
181
  const next = new Map(this.loadedPages);
164
182
  next.set(pageNumber, rows);
165
183
  this.loadedPages = next;
184
+ this.requestedAt.delete(pageNumber);
185
+ this.retryAttempts.delete(pageNumber);
186
+ if (this.failedPages.has(pageNumber)) {
187
+ const nextFailed = new Set(this.failedPages);
188
+ nextFailed.delete(pageNumber);
189
+ this.failedPages = nextFailed;
190
+ }
166
191
  if (pageNumber === 0 && this.aggregationsPending) {
167
192
  this.aggregationsPending = false;
168
193
  const hasAggColumns = this.columns.some(c => c.type === 'FIELD' && c.aggregate);
@@ -181,6 +206,10 @@ export class MrdTable {
181
206
  }
182
207
  // ── Lifecycle ──────────────────────────────────────────────────────────────
183
208
  disconnectedCallback() {
209
+ if (this.staleCheckTimer !== null) {
210
+ clearInterval(this.staleCheckTimer);
211
+ this.staleCheckTimer = null;
212
+ }
184
213
  if (this.outsideClickHandler) {
185
214
  document.removeEventListener('click', this.outsideClickHandler);
186
215
  this.outsideClickHandler = null;
@@ -382,6 +411,9 @@ export class MrdTable {
382
411
  this.pendingPages.clear();
383
412
  this.loadedPages = new Map();
384
413
  this.requestedPages = new Set();
414
+ this.failedPages = new Set();
415
+ this.requestedAt.clear();
416
+ this.retryAttempts.clear();
385
417
  this.colWidths = [];
386
418
  this.colWidthMeasureScheduled = false;
387
419
  this.scrollTop = 0;
@@ -412,6 +444,11 @@ export class MrdTable {
412
444
  this.resetPages();
413
445
  this.emitPagesForWindow(this.renderStart, this.renderEnd);
414
446
  }
447
+ /** Emits mrdLoadPage for a page and records the request timestamp for stale-request detection. */
448
+ emitLoadPage(page) {
449
+ this.mrdLoadPage.emit({ page, sort: this.sortParam(), path: this.buildDataPath(), qs: this.buildQueryParams(page) });
450
+ this.requestedAt.set(page, Date.now());
451
+ }
415
452
  emitPagesForWindow(start, end) {
416
453
  const { firstPage, lastPage } = pageRange(start, end, this.pageSize);
417
454
  const next = new Set(this.requestedPages);
@@ -419,7 +456,7 @@ export class MrdTable {
419
456
  for (let p = firstPage; p <= lastPage; p++) {
420
457
  if (!this.loadedPages.has(p) && !next.has(p)) {
421
458
  next.add(p);
422
- this.mrdLoadPage.emit({ page: p, sort: this.sortParam(), path: this.buildDataPath(), qs: this.buildQueryParams(p) });
459
+ this.emitLoadPage(p);
423
460
  changed = true;
424
461
  }
425
462
  }
@@ -458,13 +495,53 @@ export class MrdTable {
458
495
  if (pageEnd < this.renderStart || pageStart > this.renderEnd)
459
496
  continue;
460
497
  next.add(page);
461
- this.mrdLoadPage.emit({ page, sort: this.sortParam(), path: this.buildDataPath(), qs: this.buildQueryParams(page) });
498
+ this.emitLoadPage(page);
462
499
  changed = true;
463
500
  }
464
501
  this.pendingPages.clear();
465
502
  if (changed)
466
503
  this.requestedPages = next;
467
504
  }
505
+ /** Scans outstanding requests for staleness: retries up to MAX_RETRY_ATTEMPTS times,
506
+ * then gives up and marks the page as failed (rendered as a retry row). */
507
+ checkStalePages() {
508
+ var _a;
509
+ if (this.requestedAt.size === 0)
510
+ return;
511
+ const stale = getStalePages(this.requestedAt, Date.now(), this.requestTimeoutMs)
512
+ .filter(p => !this.loadedPages.has(p));
513
+ if (stale.length === 0)
514
+ return;
515
+ let nextFailed = null;
516
+ for (const page of stale) {
517
+ const attempts = (_a = this.retryAttempts.get(page)) !== null && _a !== void 0 ? _a : 0;
518
+ if (attempts < MAX_RETRY_ATTEMPTS) {
519
+ this.retryAttempts.set(page, attempts + 1);
520
+ this.emitLoadPage(page);
521
+ }
522
+ else {
523
+ this.requestedAt.delete(page);
524
+ this.retryAttempts.delete(page);
525
+ if (!nextFailed)
526
+ nextFailed = new Set(this.failedPages);
527
+ nextFailed.add(page);
528
+ this.mrdPageError.emit({ page });
529
+ }
530
+ }
531
+ if (nextFailed)
532
+ this.failedPages = nextFailed;
533
+ }
534
+ /** Manually retry a page the user gave up on (clicked the retry row). */
535
+ retryPage(page) {
536
+ const next = new Set(this.failedPages);
537
+ next.delete(page);
538
+ this.failedPages = next;
539
+ this.retryAttempts.delete(page);
540
+ this.emitLoadPage(page);
541
+ const requested = new Set(this.requestedPages);
542
+ requested.add(page);
543
+ this.requestedPages = requested;
544
+ }
468
545
  // ── Filter helpers ─────────────────────────────────────────────────────────
469
546
  handleFilterToggle() {
470
547
  this.filterMode = !this.filterMode;
@@ -737,7 +814,13 @@ export class MrdTable {
737
814
  for (let i = this.renderStart; i <= clampedEnd; i++) {
738
815
  const row = this.getRow(i);
739
816
  if (row === null) {
740
- renderedRows.push(h("tr", { class: "mrd-table__row mrd-table__row--loading" }, h("td", { class: "mrd-table__cell--placeholder", colSpan: colCount }, h("span", { class: "mrd-table__placeholder-bar" }))));
817
+ const page = Math.floor(i / this.pageSize);
818
+ if (this.failedPages.has(page)) {
819
+ renderedRows.push(h("tr", { class: "mrd-table__row mrd-table__row--failed" }, h("td", { class: "mrd-table__cell--failed", colSpan: colCount }, h("button", { type: "button", class: "mrd-table__retry-button", onClick: () => this.retryPage(page) }, t('load_failed_retry', this.locale)))));
820
+ }
821
+ else {
822
+ renderedRows.push(h("tr", { class: "mrd-table__row mrd-table__row--loading" }, h("td", { class: "mrd-table__cell--placeholder", colSpan: colCount }, h("span", { class: "mrd-table__placeholder-bar" }))));
823
+ }
741
824
  }
742
825
  else {
743
826
  renderedRows.push(h("tr", { class: "mrd-table__row mrd-table__row--clickable", style: { background: i % 2 === 0 ? '' : 'var(--mrd-color-neutral-100)' }, onClick: () => this.mrdRowClick.emit(row) }, this.columns.map(col => this.renderCell(col, row))));
@@ -945,6 +1028,26 @@ export class MrdTable {
945
1028
  "reflect": false,
946
1029
  "attribute": "table-height",
947
1030
  "defaultValue": "500"
1031
+ },
1032
+ "requestTimeoutMs": {
1033
+ "type": "number",
1034
+ "mutable": false,
1035
+ "complexType": {
1036
+ "original": "number",
1037
+ "resolved": "number",
1038
+ "references": {}
1039
+ },
1040
+ "required": false,
1041
+ "optional": false,
1042
+ "docs": {
1043
+ "tags": [],
1044
+ "text": "Time (ms) to wait for setPage() before retrying a page request; after\nMAX_RETRY_ATTEMPTS retries the page is marked failed (see failedPages)."
1045
+ },
1046
+ "getter": false,
1047
+ "setter": false,
1048
+ "reflect": false,
1049
+ "attribute": "request-timeout-ms",
1050
+ "defaultValue": "REQUEST_TIMEOUT_MS"
948
1051
  }
949
1052
  };
950
1053
  }
@@ -953,6 +1056,7 @@ export class MrdTable {
953
1056
  "activeViewIdx": {},
954
1057
  "loadedPages": {},
955
1058
  "requestedPages": {},
1059
+ "failedPages": {},
956
1060
  "renderStart": {},
957
1061
  "renderEnd": {},
958
1062
  "colWidths": {},
@@ -989,6 +1093,21 @@ export class MrdTable {
989
1093
  "resolved": "{ page: number; sort: string; path: string; qs: string; }",
990
1094
  "references": {}
991
1095
  }
1096
+ }, {
1097
+ "method": "mrdPageError",
1098
+ "name": "mrdPageError",
1099
+ "bubbles": true,
1100
+ "cancelable": true,
1101
+ "composed": true,
1102
+ "docs": {
1103
+ "tags": [],
1104
+ "text": "Fired when a page request timed out MAX_RETRY_ATTEMPTS times without setPage() being called.\nPurely informational \u2014 the table shows its own retry row regardless of whether a host listens."
1105
+ },
1106
+ "complexType": {
1107
+ "original": "{ page: number }",
1108
+ "resolved": "{ page: number; }",
1109
+ "references": {}
1110
+ }
992
1111
  }, {
993
1112
  "method": "mrdRowClick",
994
1113
  "name": "mrdRowClick",
@@ -7,6 +7,10 @@ export const BUFFER = 10;
7
7
  /** Wait this long (ms) after the last scroll event before requesting pages,
8
8
  * so pages the user quickly scrolls past are skipped. */
9
9
  export const REQUEST_DEBOUNCE_MS = 150;
10
+ /** Default time (ms) to wait for setPage() before treating a request as stale and retrying. */
11
+ export const REQUEST_TIMEOUT_MS = 15000;
12
+ /** Max retries for a stale page request before giving up and showing a retry row. */
13
+ export const MAX_RETRY_ATTEMPTS = 3;
10
14
  export function visibleCount(tableHeight, rowHeight) {
11
15
  return Math.ceil(tableHeight / rowHeight);
12
16
  }
@@ -47,3 +51,13 @@ export function isTotalKnownFromPages(loadedPages, pageSize) {
47
51
  }
48
52
  return false;
49
53
  }
54
+ /** Pages whose request timestamp is older than timeoutMs — candidates for retry or failure.
55
+ * Caller is expected to already exclude pages present in loadedPages. */
56
+ export function getStalePages(requestedAt, now, timeoutMs) {
57
+ const stale = [];
58
+ for (const [page, ts] of requestedAt) {
59
+ if (now - ts >= timeoutMs)
60
+ stale.push(page);
61
+ }
62
+ return stale;
63
+ }
@@ -16,6 +16,7 @@ const translations = {
16
16
  invalid_image: 'Selecteer een afbeeldingsbestand',
17
17
  search_results: 'Zoekresultaten',
18
18
  no_results: 'Geen resultaten gevonden',
19
+ load_failed_retry: 'Laden mislukt — opnieuw proberen',
19
20
  loading: 'Laden...',
20
21
  submit: 'Opslaan',
21
22
  cancel: 'Annuleren',
@@ -89,6 +90,7 @@ const translations = {
89
90
  invalid_image: 'Please select an image file',
90
91
  search_results: 'Search results',
91
92
  no_results: 'No results found',
93
+ load_failed_retry: 'Failed to load — retry',
92
94
  loading: 'Loading...',
93
95
  submit: 'Save',
94
96
  cancel: 'Cancel',
@@ -162,6 +164,7 @@ const translations = {
162
164
  invalid_image: 'يرجى اختيار ملف صورة',
163
165
  search_results: 'نتائج البحث',
164
166
  no_results: 'لم يتم العثور على نتائج',
167
+ load_failed_retry: 'فشل التحميل — إعادة المحاولة',
165
168
  loading: 'جار التحميل...',
166
169
  submit: 'حفظ',
167
170
  cancel: 'إلغاء',
@@ -229,6 +232,7 @@ const translations = {
229
232
  invalid_image: 'Veuillez sélectionner un fichier image',
230
233
  search_results: 'Résultats de recherche',
231
234
  no_results: 'Aucun résultat trouvé',
235
+ load_failed_retry: 'Échec du chargement — réessayer',
232
236
  loading: 'Chargement...',
233
237
  submit: 'Enregistrer',
234
238
  cancel: 'Annuler',
@@ -296,6 +300,7 @@ const translations = {
296
300
  invalid_image: 'Bitte eine Bilddatei auswählen',
297
301
  search_results: 'Suchergebnisse',
298
302
  no_results: 'Keine Ergebnisse gefunden',
303
+ load_failed_retry: 'Laden fehlgeschlagen — erneut versuchen',
299
304
  loading: 'Laden...',
300
305
  submit: 'Speichern',
301
306
  cancel: 'Abbrechen',
@@ -363,6 +368,7 @@ const translations = {
363
368
  invalid_image: 'Seleccione un archivo de imagen',
364
369
  search_results: 'Resultados de búsqueda',
365
370
  no_results: 'No se encontraron resultados',
371
+ load_failed_retry: 'Error al cargar — reintentar',
366
372
  loading: 'Cargando...',
367
373
  submit: 'Guardar',
368
374
  cancel: 'Cancelar',
@@ -430,6 +436,7 @@ const translations = {
430
436
  invalid_image: 'Seleziona un file immagine',
431
437
  search_results: 'Risultati della ricerca',
432
438
  no_results: 'Nessun risultato trovato',
439
+ load_failed_retry: 'Caricamento non riuscito — riprova',
433
440
  loading: 'Caricamento...',
434
441
  submit: 'Salva',
435
442
  cancel: 'Annulla',
@@ -497,6 +504,7 @@ const translations = {
497
504
  invalid_image: 'Будь ласка, виберіть файл зображення',
498
505
  search_results: 'Результати пошуку',
499
506
  no_results: 'Результатів не знайдено',
507
+ load_failed_retry: 'Не вдалося завантажити — повторити',
500
508
  loading: 'Завантаження...',
501
509
  submit: 'Зберегти',
502
510
  cancel: 'Скасувати',
@@ -1 +1 @@
1
- const e={nl:{required:"Dit veld is verplicht",select_placeholder:"Selecteer een optie",search_placeholder:"Zoeken...",upload_file:"Bestand uploaden",choose_file:"Bestand kiezen",clear:"Wissen",today:"Vandaag",invalid_email:"Voer een geldig e-mailadres in",invalid_url:"Voer een geldige URL in",invalid_number:"Voer een geldig getal in",drop_file_here:"Sleep bestand hierheen of",browse:"bladeren",file_too_large:"Bestand is te groot",invalid_image:"Selecteer een afbeeldingsbestand",search_results:"Zoekresultaten",no_results:"Geen resultaten gevonden",loading:"Laden...",submit:"Opslaan",cancel:"Annuleren",remove:"Verwijderen",add:"Toevoegen",yes:"Ja",no:"Nee",table_of:"van",download:"Downloaden",table_filter:"Filteren",table_filter_hide:"Filter verbergen",table_filter_active:"actief",table_filter_clear_all:"Alle filters wissen",table_new_record:"Nieuw record",table_export_excel:"Exporteer naar Excel",doc_view_switch:"Weergave wisselen",doc_view_tree:"Boomweergave",doc_view_list:"Lijstweergave",filter_sorting:"Sortering",filter_ascending:"Oplopend",filter_descending:"Aflopend",filter_section:"Filter",filter_apply:"Toepassen",filter_clear:"Wissen",filter_contains:"Bevat",filter_starts_with:"Begint met",filter_equals:"Gelijk aan",filter_has_value:"Heeft waarde",filter_is_empty:"Is leeg",filter_is_not_empty:"Is niet leeg",filter_exact:"Exact",filter_range:"Bereik",filter_from:"Van",filter_to:"Tot",filter_all:"Alle",filter_select_all:"Alles",filter_select_none:"Geen",filter_search_value:"Zoekwaarde...",filter_no_support:"Geen filtering beschikbaar voor dit veldtype.",textblock_show_more:"Meer tonen",close:"Sluiten",history_until:"tot",history_badge_tooltip:"Vorige waarden",hyperlink_name:"Linktekst (optioneel)",new_folder:"Nieuwe folder",folder_name_placeholder:"Foldernaam",folder_no_slash:"Een foldernaam mag geen '/' bevatten",folder_duplicate:"Er bestaat al een folder met deze naam",doc_empty_drop:"Nog geen documenten — sleep bestanden hierheen"},en:{required:"This field is required",select_placeholder:"Select an option",search_placeholder:"Search...",upload_file:"Upload file",choose_file:"Choose file",clear:"Clear",today:"Today",invalid_email:"Please enter a valid email address",invalid_url:"Please enter a valid URL",invalid_number:"Please enter a valid number",drop_file_here:"Drop file here or",browse:"browse",file_too_large:"File is too large",invalid_image:"Please select an image file",search_results:"Search results",no_results:"No results found",loading:"Loading...",submit:"Save",cancel:"Cancel",remove:"Remove",add:"Add",yes:"Yes",no:"No",table_of:"of",download:"Download",table_filter:"Filter",table_filter_hide:"Hide filter",table_filter_active:"active",table_filter_clear_all:"Clear all filters",table_new_record:"New record",table_export_excel:"Export to Excel",doc_view_switch:"Switch view",doc_view_tree:"Tree view",doc_view_list:"List view",filter_sorting:"Sorting",filter_ascending:"Ascending",filter_descending:"Descending",filter_section:"Filter",filter_apply:"Apply",filter_clear:"Clear",filter_contains:"Contains",filter_starts_with:"Starts with",filter_equals:"Equals",filter_has_value:"Has value",filter_is_empty:"Is empty",filter_is_not_empty:"Is not empty",filter_exact:"Exact",filter_range:"Range",filter_from:"From",filter_to:"To",filter_all:"All",filter_select_all:"All",filter_select_none:"None",filter_search_value:"Search value...",filter_no_support:"Filtering is not available for this field type.",textblock_show_more:"Show more",close:"Close",history_until:"until",history_badge_tooltip:"Previous values",hyperlink_name:"Link text (optional)",new_folder:"New folder",folder_name_placeholder:"Folder name",folder_no_slash:"A folder name cannot contain '/'",folder_duplicate:"A folder with this name already exists",doc_empty_drop:"No documents yet — drop files here"},ar:{required:"هذا الحقل مطلوب",select_placeholder:"اختر خياراً",search_placeholder:"بحث...",upload_file:"رفع ملف",choose_file:"اختر ملفاً",clear:"مسح",today:"اليوم",invalid_email:"يرجى إدخال عنوان بريد إلكتروني صحيح",invalid_url:"يرجى إدخال رابط صحيح",invalid_number:"يرجى إدخال رقم صحيح",drop_file_here:"اسحب الملف هنا أو",browse:"تصفح",file_too_large:"الملف كبير جداً",invalid_image:"يرجى اختيار ملف صورة",search_results:"نتائج البحث",no_results:"لم يتم العثور على نتائج",loading:"جار التحميل...",submit:"حفظ",cancel:"إلغاء",remove:"إزالة",add:"إضافة",yes:"نعم",no:"لا",table_of:"من أصل",download:"تنزيل",table_filter:"تصفية",table_filter_hide:"إخفاء التصفية",table_filter_active:"نشط",table_filter_clear_all:"مسح جميع الفلاتر",table_new_record:"سجل جديد",table_export_excel:"تصدير إلى Excel",doc_view_switch:"تبديل العرض",doc_view_tree:"عرض شجري",doc_view_list:"عرض القائمة",filter_sorting:"الترتيب",filter_ascending:"تصاعدي",filter_descending:"تنازلي",filter_section:"تصفية",filter_apply:"تطبيق",filter_clear:"مسح",filter_contains:"يحتوي على",filter_starts_with:"يبدأ بـ",filter_equals:"يساوي",filter_has_value:"له قيمة",filter_is_empty:"فارغ",filter_is_not_empty:"ليس فارغاً",filter_exact:"دقيق",filter_range:"نطاق",filter_from:"من",filter_to:"إلى",filter_all:"الكل",filter_select_all:"الكل",filter_select_none:"لا شيء",filter_search_value:"قيمة البحث...",filter_no_support:"التصفية غير متاحة لهذا النوع من الحقول.",textblock_show_more:"عرض المزيد",close:"إغلاق",history_until:"حتى",history_badge_tooltip:"القيم السابقة",hyperlink_name:"نص الرابط (اختياري)"},fr:{required:"Ce champ est obligatoire",select_placeholder:"Sélectionner une option",search_placeholder:"Rechercher...",upload_file:"Télécharger un fichier",choose_file:"Choisir un fichier",clear:"Effacer",today:"Aujourd'hui",invalid_email:"Veuillez saisir une adresse e-mail valide",invalid_url:"Veuillez saisir une URL valide",invalid_number:"Veuillez saisir un nombre valide",drop_file_here:"Déposez le fichier ici ou",browse:"parcourir",file_too_large:"Le fichier est trop volumineux",invalid_image:"Veuillez sélectionner un fichier image",search_results:"Résultats de recherche",no_results:"Aucun résultat trouvé",loading:"Chargement...",submit:"Enregistrer",cancel:"Annuler",remove:"Supprimer",add:"Ajouter",yes:"Oui",no:"Non",table_of:"sur",download:"Télécharger",table_filter:"Filtrer",table_filter_hide:"Masquer le filtre",table_filter_active:"actif",table_filter_clear_all:"Effacer tous les filtres",table_new_record:"Nouvel enregistrement",table_export_excel:"Exporter vers Excel",doc_view_switch:"Changer de vue",doc_view_tree:"Vue arborescente",doc_view_list:"Vue liste",filter_sorting:"Tri",filter_ascending:"Croissant",filter_descending:"Décroissant",filter_section:"Filtre",filter_apply:"Appliquer",filter_clear:"Effacer",filter_contains:"Contient",filter_starts_with:"Commence par",filter_equals:"Égal à",filter_has_value:"A une valeur",filter_is_empty:"Est vide",filter_is_not_empty:"N'est pas vide",filter_exact:"Exact",filter_range:"Plage",filter_from:"De",filter_to:"À",filter_all:"Tous",filter_select_all:"Tous",filter_select_none:"Aucun",filter_search_value:"Valeur de recherche...",filter_no_support:"Le filtrage n'est pas disponible pour ce type de champ.",textblock_show_more:"Voir plus",close:"Fermer",history_until:"jusqu'au",history_badge_tooltip:"Valeurs précédentes",hyperlink_name:"Texte du lien (optionnel)"},de:{required:"Dieses Feld ist erforderlich",select_placeholder:"Option auswählen",search_placeholder:"Suchen...",upload_file:"Datei hochladen",choose_file:"Datei auswählen",clear:"Löschen",today:"Heute",invalid_email:"Bitte geben Sie eine gültige E-Mail-Adresse ein",invalid_url:"Bitte geben Sie eine gültige URL ein",invalid_number:"Bitte geben Sie eine gültige Zahl ein",drop_file_here:"Datei hier ablegen oder",browse:"durchsuchen",file_too_large:"Datei ist zu groß",invalid_image:"Bitte eine Bilddatei auswählen",search_results:"Suchergebnisse",no_results:"Keine Ergebnisse gefunden",loading:"Laden...",submit:"Speichern",cancel:"Abbrechen",remove:"Entfernen",add:"Hinzufügen",yes:"Ja",no:"Nein",table_of:"von",download:"Herunterladen",table_filter:"Filtern",table_filter_hide:"Filter ausblenden",table_filter_active:"aktiv",table_filter_clear_all:"Alle Filter löschen",table_new_record:"Neuer Eintrag",table_export_excel:"Als Excel exportieren",doc_view_switch:"Ansicht wechseln",doc_view_tree:"Baumansicht",doc_view_list:"Listenansicht",filter_sorting:"Sortierung",filter_ascending:"Aufsteigend",filter_descending:"Absteigend",filter_section:"Filter",filter_apply:"Anwenden",filter_clear:"Löschen",filter_contains:"Enthält",filter_starts_with:"Beginnt mit",filter_equals:"Gleich",filter_has_value:"Hat Wert",filter_is_empty:"Ist leer",filter_is_not_empty:"Ist nicht leer",filter_exact:"Genau",filter_range:"Bereich",filter_from:"Von",filter_to:"Bis",filter_all:"Alle",filter_select_all:"Alle",filter_select_none:"Keine",filter_search_value:"Suchwert...",filter_no_support:"Filterung ist für diesen Feldtyp nicht verfügbar.",textblock_show_more:"Mehr anzeigen",close:"Schließen",history_until:"bis",history_badge_tooltip:"Vorherige Werte",hyperlink_name:"Linktext (optional)"},es:{required:"Este campo es obligatorio",select_placeholder:"Seleccionar una opción",search_placeholder:"Buscar...",upload_file:"Subir archivo",choose_file:"Elegir archivo",clear:"Borrar",today:"Hoy",invalid_email:"Por favor, introduzca una dirección de correo electrónico válida",invalid_url:"Por favor, introduzca una URL válida",invalid_number:"Por favor, introduzca un número válido",drop_file_here:"Suelte el archivo aquí o",browse:"explorar",file_too_large:"El archivo es demasiado grande",invalid_image:"Seleccione un archivo de imagen",search_results:"Resultados de búsqueda",no_results:"No se encontraron resultados",loading:"Cargando...",submit:"Guardar",cancel:"Cancelar",remove:"Eliminar",add:"Añadir",yes:"Sí",no:"No",table_of:"de",download:"Descargar",table_filter:"Filtrar",table_filter_hide:"Ocultar filtro",table_filter_active:"activo",table_filter_clear_all:"Borrar todos los filtros",table_new_record:"Nuevo registro",table_export_excel:"Exportar a Excel",doc_view_switch:"Cambiar vista",doc_view_tree:"Vista de árbol",doc_view_list:"Vista de lista",filter_sorting:"Ordenación",filter_ascending:"Ascendente",filter_descending:"Descendente",filter_section:"Filtro",filter_apply:"Aplicar",filter_clear:"Borrar",filter_contains:"Contiene",filter_starts_with:"Empieza por",filter_equals:"Igual a",filter_has_value:"Tiene valor",filter_is_empty:"Está vacío",filter_is_not_empty:"No está vacío",filter_exact:"Exacto",filter_range:"Rango",filter_from:"Desde",filter_to:"Hasta",filter_all:"Todos",filter_select_all:"Todos",filter_select_none:"Ninguno",filter_search_value:"Valor de búsqueda...",filter_no_support:"El filtrado no está disponible para este tipo de campo.",textblock_show_more:"Mostrar más",close:"Cerrar",history_until:"hasta",history_badge_tooltip:"Valores anteriores",hyperlink_name:"Texto del enlace (opcional)"},it:{required:"Questo campo è obbligatorio",select_placeholder:"Seleziona un'opzione",search_placeholder:"Cerca...",upload_file:"Carica file",choose_file:"Scegli file",clear:"Cancella",today:"Oggi",invalid_email:"Inserisci un indirizzo email valido",invalid_url:"Inserisci un URL valido",invalid_number:"Inserisci un numero valido",drop_file_here:"Trascina il file qui o",browse:"sfoglia",file_too_large:"Il file è troppo grande",invalid_image:"Seleziona un file immagine",search_results:"Risultati della ricerca",no_results:"Nessun risultato trovato",loading:"Caricamento...",submit:"Salva",cancel:"Annulla",remove:"Rimuovi",add:"Aggiungi",yes:"Sì",no:"No",table_of:"di",download:"Scarica",table_filter:"Filtra",table_filter_hide:"Nascondi filtro",table_filter_active:"attivo",table_filter_clear_all:"Cancella tutti i filtri",table_new_record:"Nuovo record",table_export_excel:"Esporta in Excel",doc_view_switch:"Cambia vista",doc_view_tree:"Vista ad albero",doc_view_list:"Vista elenco",filter_sorting:"Ordinamento",filter_ascending:"Crescente",filter_descending:"Decrescente",filter_section:"Filtro",filter_apply:"Applica",filter_clear:"Cancella",filter_contains:"Contiene",filter_starts_with:"Inizia con",filter_equals:"Uguale a",filter_has_value:"Ha valore",filter_is_empty:"È vuoto",filter_is_not_empty:"Non è vuoto",filter_exact:"Esatto",filter_range:"Intervallo",filter_from:"Da",filter_to:"A",filter_all:"Tutti",filter_select_all:"Tutti",filter_select_none:"Nessuno",filter_search_value:"Valore di ricerca...",filter_no_support:"Il filtro non è disponibile per questo tipo di campo.",textblock_show_more:"Mostra altro",close:"Chiudi",history_until:"fino a",history_badge_tooltip:"Valori precedenti",hyperlink_name:"Testo del collegamento (opzionale)"},uk:{required:"Це поле обов'язкове",select_placeholder:"Виберіть варіант",search_placeholder:"Пошук...",upload_file:"Завантажити файл",choose_file:"Вибрати файл",clear:"Очистити",today:"Сьогодні",invalid_email:"Будь ласка, введіть дійсну адресу електронної пошти",invalid_url:"Будь ласка, введіть дійсну URL-адресу",invalid_number:"Будь ласка, введіть дійсне число",drop_file_here:"Перетягніть файл сюди або",browse:"огляд",file_too_large:"Файл занадто великий",invalid_image:"Будь ласка, виберіть файл зображення",search_results:"Результати пошуку",no_results:"Результатів не знайдено",loading:"Завантаження...",submit:"Зберегти",cancel:"Скасувати",remove:"Видалити",add:"Додати",yes:"Так",no:"Ні",table_of:"з",download:"Завантажити",table_filter:"Фільтрувати",table_filter_hide:"Сховати фільтр",table_filter_active:"активний",table_filter_clear_all:"Очистити всі фільтри",table_new_record:"Новий запис",table_export_excel:"Експортувати до Excel",doc_view_switch:"Змінити вигляд",doc_view_tree:"Деревоподібний вигляд",doc_view_list:"Список",filter_sorting:"Сортування",filter_ascending:"За зростанням",filter_descending:"За спаданням",filter_section:"Фільтр",filter_apply:"Застосувати",filter_clear:"Очистити",filter_contains:"Містить",filter_starts_with:"Починається з",filter_equals:"Дорівнює",filter_has_value:"Має значення",filter_is_empty:"Порожнє",filter_is_not_empty:"Не порожнє",filter_exact:"Точно",filter_range:"Діапазон",filter_from:"Від",filter_to:"До",filter_all:"Всі",filter_select_all:"Всі",filter_select_none:"Жодного",filter_search_value:"Значення для пошуку...",filter_no_support:"Фільтрування недоступне для цього типу поля.",textblock_show_more:"Показати більше",close:"Закрити",history_until:"до",history_badge_tooltip:"Попередні значення",hyperlink_name:"Текст посилання (необов'язково)"}};function l(l,i){var t,r,a;const o=(null!=i?i:"en").split("-")[0].toLowerCase();return null!==(a=null!==(r=(null!==(t=e[o])&&void 0!==t?t:e.en)[l])&&void 0!==r?r:e.en[l])&&void 0!==a?a:l}export{l as t}
1
+ const e={nl:{required:"Dit veld is verplicht",select_placeholder:"Selecteer een optie",search_placeholder:"Zoeken...",upload_file:"Bestand uploaden",choose_file:"Bestand kiezen",clear:"Wissen",today:"Vandaag",invalid_email:"Voer een geldig e-mailadres in",invalid_url:"Voer een geldige URL in",invalid_number:"Voer een geldig getal in",drop_file_here:"Sleep bestand hierheen of",browse:"bladeren",file_too_large:"Bestand is te groot",invalid_image:"Selecteer een afbeeldingsbestand",search_results:"Zoekresultaten",no_results:"Geen resultaten gevonden",load_failed_retry:"Laden mislukt — opnieuw proberen",loading:"Laden...",submit:"Opslaan",cancel:"Annuleren",remove:"Verwijderen",add:"Toevoegen",yes:"Ja",no:"Nee",table_of:"van",download:"Downloaden",table_filter:"Filteren",table_filter_hide:"Filter verbergen",table_filter_active:"actief",table_filter_clear_all:"Alle filters wissen",table_new_record:"Nieuw record",table_export_excel:"Exporteer naar Excel",doc_view_switch:"Weergave wisselen",doc_view_tree:"Boomweergave",doc_view_list:"Lijstweergave",filter_sorting:"Sortering",filter_ascending:"Oplopend",filter_descending:"Aflopend",filter_section:"Filter",filter_apply:"Toepassen",filter_clear:"Wissen",filter_contains:"Bevat",filter_starts_with:"Begint met",filter_equals:"Gelijk aan",filter_has_value:"Heeft waarde",filter_is_empty:"Is leeg",filter_is_not_empty:"Is niet leeg",filter_exact:"Exact",filter_range:"Bereik",filter_from:"Van",filter_to:"Tot",filter_all:"Alle",filter_select_all:"Alles",filter_select_none:"Geen",filter_search_value:"Zoekwaarde...",filter_no_support:"Geen filtering beschikbaar voor dit veldtype.",textblock_show_more:"Meer tonen",close:"Sluiten",history_until:"tot",history_badge_tooltip:"Vorige waarden",hyperlink_name:"Linktekst (optioneel)",new_folder:"Nieuwe folder",folder_name_placeholder:"Foldernaam",folder_no_slash:"Een foldernaam mag geen '/' bevatten",folder_duplicate:"Er bestaat al een folder met deze naam",doc_empty_drop:"Nog geen documenten — sleep bestanden hierheen"},en:{required:"This field is required",select_placeholder:"Select an option",search_placeholder:"Search...",upload_file:"Upload file",choose_file:"Choose file",clear:"Clear",today:"Today",invalid_email:"Please enter a valid email address",invalid_url:"Please enter a valid URL",invalid_number:"Please enter a valid number",drop_file_here:"Drop file here or",browse:"browse",file_too_large:"File is too large",invalid_image:"Please select an image file",search_results:"Search results",no_results:"No results found",load_failed_retry:"Failed to load — retry",loading:"Loading...",submit:"Save",cancel:"Cancel",remove:"Remove",add:"Add",yes:"Yes",no:"No",table_of:"of",download:"Download",table_filter:"Filter",table_filter_hide:"Hide filter",table_filter_active:"active",table_filter_clear_all:"Clear all filters",table_new_record:"New record",table_export_excel:"Export to Excel",doc_view_switch:"Switch view",doc_view_tree:"Tree view",doc_view_list:"List view",filter_sorting:"Sorting",filter_ascending:"Ascending",filter_descending:"Descending",filter_section:"Filter",filter_apply:"Apply",filter_clear:"Clear",filter_contains:"Contains",filter_starts_with:"Starts with",filter_equals:"Equals",filter_has_value:"Has value",filter_is_empty:"Is empty",filter_is_not_empty:"Is not empty",filter_exact:"Exact",filter_range:"Range",filter_from:"From",filter_to:"To",filter_all:"All",filter_select_all:"All",filter_select_none:"None",filter_search_value:"Search value...",filter_no_support:"Filtering is not available for this field type.",textblock_show_more:"Show more",close:"Close",history_until:"until",history_badge_tooltip:"Previous values",hyperlink_name:"Link text (optional)",new_folder:"New folder",folder_name_placeholder:"Folder name",folder_no_slash:"A folder name cannot contain '/'",folder_duplicate:"A folder with this name already exists",doc_empty_drop:"No documents yet — drop files here"},ar:{required:"هذا الحقل مطلوب",select_placeholder:"اختر خياراً",search_placeholder:"بحث...",upload_file:"رفع ملف",choose_file:"اختر ملفاً",clear:"مسح",today:"اليوم",invalid_email:"يرجى إدخال عنوان بريد إلكتروني صحيح",invalid_url:"يرجى إدخال رابط صحيح",invalid_number:"يرجى إدخال رقم صحيح",drop_file_here:"اسحب الملف هنا أو",browse:"تصفح",file_too_large:"الملف كبير جداً",invalid_image:"يرجى اختيار ملف صورة",search_results:"نتائج البحث",no_results:"لم يتم العثور على نتائج",load_failed_retry:"فشل التحميل — إعادة المحاولة",loading:"جار التحميل...",submit:"حفظ",cancel:"إلغاء",remove:"إزالة",add:"إضافة",yes:"نعم",no:"لا",table_of:"من أصل",download:"تنزيل",table_filter:"تصفية",table_filter_hide:"إخفاء التصفية",table_filter_active:"نشط",table_filter_clear_all:"مسح جميع الفلاتر",table_new_record:"سجل جديد",table_export_excel:"تصدير إلى Excel",doc_view_switch:"تبديل العرض",doc_view_tree:"عرض شجري",doc_view_list:"عرض القائمة",filter_sorting:"الترتيب",filter_ascending:"تصاعدي",filter_descending:"تنازلي",filter_section:"تصفية",filter_apply:"تطبيق",filter_clear:"مسح",filter_contains:"يحتوي على",filter_starts_with:"يبدأ بـ",filter_equals:"يساوي",filter_has_value:"له قيمة",filter_is_empty:"فارغ",filter_is_not_empty:"ليس فارغاً",filter_exact:"دقيق",filter_range:"نطاق",filter_from:"من",filter_to:"إلى",filter_all:"الكل",filter_select_all:"الكل",filter_select_none:"لا شيء",filter_search_value:"قيمة البحث...",filter_no_support:"التصفية غير متاحة لهذا النوع من الحقول.",textblock_show_more:"عرض المزيد",close:"إغلاق",history_until:"حتى",history_badge_tooltip:"القيم السابقة",hyperlink_name:"نص الرابط (اختياري)"},fr:{required:"Ce champ est obligatoire",select_placeholder:"Sélectionner une option",search_placeholder:"Rechercher...",upload_file:"Télécharger un fichier",choose_file:"Choisir un fichier",clear:"Effacer",today:"Aujourd'hui",invalid_email:"Veuillez saisir une adresse e-mail valide",invalid_url:"Veuillez saisir une URL valide",invalid_number:"Veuillez saisir un nombre valide",drop_file_here:"Déposez le fichier ici ou",browse:"parcourir",file_too_large:"Le fichier est trop volumineux",invalid_image:"Veuillez sélectionner un fichier image",search_results:"Résultats de recherche",no_results:"Aucun résultat trouvé",load_failed_retry:"Échec du chargement — réessayer",loading:"Chargement...",submit:"Enregistrer",cancel:"Annuler",remove:"Supprimer",add:"Ajouter",yes:"Oui",no:"Non",table_of:"sur",download:"Télécharger",table_filter:"Filtrer",table_filter_hide:"Masquer le filtre",table_filter_active:"actif",table_filter_clear_all:"Effacer tous les filtres",table_new_record:"Nouvel enregistrement",table_export_excel:"Exporter vers Excel",doc_view_switch:"Changer de vue",doc_view_tree:"Vue arborescente",doc_view_list:"Vue liste",filter_sorting:"Tri",filter_ascending:"Croissant",filter_descending:"Décroissant",filter_section:"Filtre",filter_apply:"Appliquer",filter_clear:"Effacer",filter_contains:"Contient",filter_starts_with:"Commence par",filter_equals:"Égal à",filter_has_value:"A une valeur",filter_is_empty:"Est vide",filter_is_not_empty:"N'est pas vide",filter_exact:"Exact",filter_range:"Plage",filter_from:"De",filter_to:"À",filter_all:"Tous",filter_select_all:"Tous",filter_select_none:"Aucun",filter_search_value:"Valeur de recherche...",filter_no_support:"Le filtrage n'est pas disponible pour ce type de champ.",textblock_show_more:"Voir plus",close:"Fermer",history_until:"jusqu'au",history_badge_tooltip:"Valeurs précédentes",hyperlink_name:"Texte du lien (optionnel)"},de:{required:"Dieses Feld ist erforderlich",select_placeholder:"Option auswählen",search_placeholder:"Suchen...",upload_file:"Datei hochladen",choose_file:"Datei auswählen",clear:"Löschen",today:"Heute",invalid_email:"Bitte geben Sie eine gültige E-Mail-Adresse ein",invalid_url:"Bitte geben Sie eine gültige URL ein",invalid_number:"Bitte geben Sie eine gültige Zahl ein",drop_file_here:"Datei hier ablegen oder",browse:"durchsuchen",file_too_large:"Datei ist zu groß",invalid_image:"Bitte eine Bilddatei auswählen",search_results:"Suchergebnisse",no_results:"Keine Ergebnisse gefunden",load_failed_retry:"Laden fehlgeschlagen — erneut versuchen",loading:"Laden...",submit:"Speichern",cancel:"Abbrechen",remove:"Entfernen",add:"Hinzufügen",yes:"Ja",no:"Nein",table_of:"von",download:"Herunterladen",table_filter:"Filtern",table_filter_hide:"Filter ausblenden",table_filter_active:"aktiv",table_filter_clear_all:"Alle Filter löschen",table_new_record:"Neuer Eintrag",table_export_excel:"Als Excel exportieren",doc_view_switch:"Ansicht wechseln",doc_view_tree:"Baumansicht",doc_view_list:"Listenansicht",filter_sorting:"Sortierung",filter_ascending:"Aufsteigend",filter_descending:"Absteigend",filter_section:"Filter",filter_apply:"Anwenden",filter_clear:"Löschen",filter_contains:"Enthält",filter_starts_with:"Beginnt mit",filter_equals:"Gleich",filter_has_value:"Hat Wert",filter_is_empty:"Ist leer",filter_is_not_empty:"Ist nicht leer",filter_exact:"Genau",filter_range:"Bereich",filter_from:"Von",filter_to:"Bis",filter_all:"Alle",filter_select_all:"Alle",filter_select_none:"Keine",filter_search_value:"Suchwert...",filter_no_support:"Filterung ist für diesen Feldtyp nicht verfügbar.",textblock_show_more:"Mehr anzeigen",close:"Schließen",history_until:"bis",history_badge_tooltip:"Vorherige Werte",hyperlink_name:"Linktext (optional)"},es:{required:"Este campo es obligatorio",select_placeholder:"Seleccionar una opción",search_placeholder:"Buscar...",upload_file:"Subir archivo",choose_file:"Elegir archivo",clear:"Borrar",today:"Hoy",invalid_email:"Por favor, introduzca una dirección de correo electrónico válida",invalid_url:"Por favor, introduzca una URL válida",invalid_number:"Por favor, introduzca un número válido",drop_file_here:"Suelte el archivo aquí o",browse:"explorar",file_too_large:"El archivo es demasiado grande",invalid_image:"Seleccione un archivo de imagen",search_results:"Resultados de búsqueda",no_results:"No se encontraron resultados",load_failed_retry:"Error al cargar — reintentar",loading:"Cargando...",submit:"Guardar",cancel:"Cancelar",remove:"Eliminar",add:"Añadir",yes:"Sí",no:"No",table_of:"de",download:"Descargar",table_filter:"Filtrar",table_filter_hide:"Ocultar filtro",table_filter_active:"activo",table_filter_clear_all:"Borrar todos los filtros",table_new_record:"Nuevo registro",table_export_excel:"Exportar a Excel",doc_view_switch:"Cambiar vista",doc_view_tree:"Vista de árbol",doc_view_list:"Vista de lista",filter_sorting:"Ordenación",filter_ascending:"Ascendente",filter_descending:"Descendente",filter_section:"Filtro",filter_apply:"Aplicar",filter_clear:"Borrar",filter_contains:"Contiene",filter_starts_with:"Empieza por",filter_equals:"Igual a",filter_has_value:"Tiene valor",filter_is_empty:"Está vacío",filter_is_not_empty:"No está vacío",filter_exact:"Exacto",filter_range:"Rango",filter_from:"Desde",filter_to:"Hasta",filter_all:"Todos",filter_select_all:"Todos",filter_select_none:"Ninguno",filter_search_value:"Valor de búsqueda...",filter_no_support:"El filtrado no está disponible para este tipo de campo.",textblock_show_more:"Mostrar más",close:"Cerrar",history_until:"hasta",history_badge_tooltip:"Valores anteriores",hyperlink_name:"Texto del enlace (opcional)"},it:{required:"Questo campo è obbligatorio",select_placeholder:"Seleziona un'opzione",search_placeholder:"Cerca...",upload_file:"Carica file",choose_file:"Scegli file",clear:"Cancella",today:"Oggi",invalid_email:"Inserisci un indirizzo email valido",invalid_url:"Inserisci un URL valido",invalid_number:"Inserisci un numero valido",drop_file_here:"Trascina il file qui o",browse:"sfoglia",file_too_large:"Il file è troppo grande",invalid_image:"Seleziona un file immagine",search_results:"Risultati della ricerca",no_results:"Nessun risultato trovato",load_failed_retry:"Caricamento non riuscito — riprova",loading:"Caricamento...",submit:"Salva",cancel:"Annulla",remove:"Rimuovi",add:"Aggiungi",yes:"Sì",no:"No",table_of:"di",download:"Scarica",table_filter:"Filtra",table_filter_hide:"Nascondi filtro",table_filter_active:"attivo",table_filter_clear_all:"Cancella tutti i filtri",table_new_record:"Nuovo record",table_export_excel:"Esporta in Excel",doc_view_switch:"Cambia vista",doc_view_tree:"Vista ad albero",doc_view_list:"Vista elenco",filter_sorting:"Ordinamento",filter_ascending:"Crescente",filter_descending:"Decrescente",filter_section:"Filtro",filter_apply:"Applica",filter_clear:"Cancella",filter_contains:"Contiene",filter_starts_with:"Inizia con",filter_equals:"Uguale a",filter_has_value:"Ha valore",filter_is_empty:"È vuoto",filter_is_not_empty:"Non è vuoto",filter_exact:"Esatto",filter_range:"Intervallo",filter_from:"Da",filter_to:"A",filter_all:"Tutti",filter_select_all:"Tutti",filter_select_none:"Nessuno",filter_search_value:"Valore di ricerca...",filter_no_support:"Il filtro non è disponibile per questo tipo di campo.",textblock_show_more:"Mostra altro",close:"Chiudi",history_until:"fino a",history_badge_tooltip:"Valori precedenti",hyperlink_name:"Testo del collegamento (opzionale)"},uk:{required:"Це поле обов'язкове",select_placeholder:"Виберіть варіант",search_placeholder:"Пошук...",upload_file:"Завантажити файл",choose_file:"Вибрати файл",clear:"Очистити",today:"Сьогодні",invalid_email:"Будь ласка, введіть дійсну адресу електронної пошти",invalid_url:"Будь ласка, введіть дійсну URL-адресу",invalid_number:"Будь ласка, введіть дійсне число",drop_file_here:"Перетягніть файл сюди або",browse:"огляд",file_too_large:"Файл занадто великий",invalid_image:"Будь ласка, виберіть файл зображення",search_results:"Результати пошуку",no_results:"Результатів не знайдено",load_failed_retry:"Не вдалося завантажити — повторити",loading:"Завантаження...",submit:"Зберегти",cancel:"Скасувати",remove:"Видалити",add:"Додати",yes:"Так",no:"Ні",table_of:"з",download:"Завантажити",table_filter:"Фільтрувати",table_filter_hide:"Сховати фільтр",table_filter_active:"активний",table_filter_clear_all:"Очистити всі фільтри",table_new_record:"Новий запис",table_export_excel:"Експортувати до Excel",doc_view_switch:"Змінити вигляд",doc_view_tree:"Деревоподібний вигляд",doc_view_list:"Список",filter_sorting:"Сортування",filter_ascending:"За зростанням",filter_descending:"За спаданням",filter_section:"Фільтр",filter_apply:"Застосувати",filter_clear:"Очистити",filter_contains:"Містить",filter_starts_with:"Починається з",filter_equals:"Дорівнює",filter_has_value:"Має значення",filter_is_empty:"Порожнє",filter_is_not_empty:"Не порожнє",filter_exact:"Точно",filter_range:"Діапазон",filter_from:"Від",filter_to:"До",filter_all:"Всі",filter_select_all:"Всі",filter_select_none:"Жодного",filter_search_value:"Значення для пошуку...",filter_no_support:"Фільтрування недоступне для цього типу поля.",textblock_show_more:"Показати більше",close:"Закрити",history_until:"до",history_badge_tooltip:"Попередні значення",hyperlink_name:"Текст посилання (необов'язково)"}};function l(l,i){var r,t,a;const o=(null!=i?i:"en").split("-")[0].toLowerCase();return null!==(a=null!==(t=(null!==(r=e[o])&&void 0!==r?r:e.en)[l])&&void 0!==t?t:e.en[l])&&void 0!==a?a:l}export{l as t}