@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.
Files changed (47) hide show
  1. package/dist/cjs/cell-renderer-CmaO0CZT.js +862 -0
  2. package/dist/cjs/loader.cjs.js +1 -1
  3. package/dist/cjs/mosterdcomponents.cjs.js +1 -1
  4. package/dist/cjs/mrd-boolean-field_23.cjs.entry.js +2506 -832
  5. package/dist/cjs/mrd-merge-view.cjs.entry.js +273 -0
  6. package/dist/collection/collection-manifest.json +1 -0
  7. package/dist/collection/components/documents/mrd-document-view/mrd-document-view.css +27 -24
  8. package/dist/collection/components/documents/mrd-document-view/mrd-document-view.js +16 -9
  9. package/dist/collection/components/fields/mrd-textarea-field/mrd-textarea-field.js +9 -5
  10. package/dist/collection/components/merge/mrd-merge-view/merge-diff.js +99 -0
  11. package/dist/collection/components/merge/mrd-merge-view/merge-parts.js +44 -0
  12. package/dist/collection/components/merge/mrd-merge-view/mrd-merge-view.css +244 -0
  13. package/dist/collection/components/merge/mrd-merge-view/mrd-merge-view.js +397 -0
  14. package/dist/collection/components/table/mrd-table/mrd-table.js +2 -4
  15. package/dist/collection/components/table/mrd-table/table-parts.js +2 -5
  16. package/dist/collection/dev/api.js +24 -0
  17. package/dist/collection/dev/app.js +84 -4
  18. package/dist/collection/dev/example-data.js +2 -1
  19. package/dist/collection/utils/cell-renderer.js +6 -1
  20. package/dist/collection/utils/i18n.js +104 -0
  21. package/dist/components/cell-renderer.js +1 -0
  22. package/dist/components/format.js +1 -1
  23. package/dist/components/i18n.js +1 -1
  24. package/dist/components/mrd-document-view2.js +1 -1
  25. package/dist/components/mrd-layout-section.js +1 -1
  26. package/dist/components/mrd-merge-view.d.ts +11 -0
  27. package/dist/components/mrd-merge-view.js +1 -0
  28. package/dist/components/mrd-table2.js +1 -1
  29. package/dist/components/mrd-textarea-field2.js +2 -1
  30. package/dist/esm/cell-renderer-D63AUZxa.js +854 -0
  31. package/dist/esm/loader.js +1 -1
  32. package/dist/esm/mosterdcomponents.js +1 -1
  33. package/dist/esm/mrd-boolean-field_23.entry.js +2437 -763
  34. package/dist/esm/mrd-merge-view.entry.js +271 -0
  35. package/dist/mosterdcomponents/mosterdcomponents.esm.js +1 -1
  36. package/dist/mosterdcomponents/p-2e16a7d0.entry.js +1 -0
  37. package/dist/mosterdcomponents/p-CnqDM0Gb.js +1 -0
  38. package/dist/mosterdcomponents/p-b5f38707.entry.js +3 -0
  39. package/dist/types/components/documents/mrd-document-view/mrd-document-view.d.ts +9 -5
  40. package/dist/types/components/fields/mrd-textarea-field/mrd-textarea-field.d.ts +1 -0
  41. package/dist/types/components/merge/mrd-merge-view/merge-diff.d.ts +43 -0
  42. package/dist/types/components/merge/mrd-merge-view/merge-parts.d.ts +37 -0
  43. package/dist/types/components/merge/mrd-merge-view/mrd-merge-view.d.ts +68 -0
  44. package/dist/types/components.d.ts +167 -12
  45. package/dist/types/types/client-layout.d.ts +2 -3
  46. package/package.json +2 -1
  47. package/dist/mosterdcomponents/p-b56f9802.entry.js +0 -1
@@ -135,6 +135,30 @@ async function apiSearchRelation(token, tenantCode, mostSignificantClass, query)
135
135
  }));
136
136
  }
137
137
 
138
+ /**
139
+ * Search for merge candidates. Unlike apiSearchRelation, this does NOT map
140
+ * results down to {id, label} — mrd-merge-view needs the full raw records
141
+ * (fields + _links) up front so it can diff without a second fetch per
142
+ * candidate once one is selected.
143
+ */
144
+ async function apiSearchMergeCandidates(token, tenantCode, mostSignificantClass, query) {
145
+ const q = encodeURIComponent(query);
146
+ const { ok, status, body } = await apiRequest('GET', `/data/${tenantCode}/${mostSignificantClass}?q=${q}`, token);
147
+ if (!ok) throw new Error(`${status}: ${typeof body === 'string' ? body : JSON.stringify(body)}`);
148
+ return (body._embedded && body._embedded[mostSignificantClass]) || [];
149
+ }
150
+
151
+ /**
152
+ * Merge two DataObjects of the same basic type. Mirrors DataController.merge():
153
+ * POST {winnerHref}/merge with { loser: loserHref, patch }. Returns the
154
+ * patched winner record on success.
155
+ */
156
+ async function apiMerge(token, winnerHref, loserHref, patch) {
157
+ const { ok, status, body } = await apiRequest('POST', `${winnerHref}/merge`, token, { loser: loserHref, patch });
158
+ if (!ok) throw new Error(`${status}: ${typeof body === 'string' ? body : JSON.stringify(body)}`);
159
+ return body;
160
+ }
161
+
138
162
  /* =====================================================================
139
163
  LAYOUT MAPPERS
140
164
  mrd-form and mrd-field now accept the flat API format directly.
@@ -10,7 +10,7 @@ let _locale = navigator.language || 'nl-NL';
10
10
  let _dashboardData = null; // full dashboard response
11
11
  let _dashboardRecord = null; // data-object voor object/form dashboards
12
12
  let _activeLayoutIndex = 0;
13
- let _dashboardType = 'class'; // 'class' | 'general' | 'navigation' | 'object' | 'form'
13
+ let _dashboardType = 'class'; // 'class' | 'general' | 'navigation' | 'object' | 'form' | 'merge'
14
14
  let _sectionGeneration = 0; // incremented on each renderSection(); prevents stale fetches
15
15
  let _navHistory = []; // stack van { dashboardData, dashboardRecord, activeLayoutIndex }
16
16
  let _meUser = null; // { id: href, label: name } — resolved once after login via /accounts/me
@@ -337,7 +337,7 @@ async function loadCompactTypes(tenantCode) {
337
337
  function onDashboardTypeChange(type) {
338
338
  _dashboardType = type;
339
339
  const needsClass = type === 'class' || type === 'create';
340
- const needsObject = type === 'object' || type === 'form';
340
+ const needsObject = type === 'object' || type === 'form' || type === 'merge';
341
341
  document.getElementById('controls-class-group').classList.toggle('hidden', !needsClass);
342
342
  document.getElementById('controls-object-group').classList.toggle('hidden', !needsObject);
343
343
  if (needsClass && _selectedTenant) loadCompactTypes(_selectedTenant);
@@ -384,14 +384,17 @@ async function loadDashboard() {
384
384
  dashboard = await apiFetchNavigationPane(token, _selectedTenant, name);
385
385
 
386
386
  } else {
387
- // 'object' of 'form': fetch record → gebruik _links.metadata.href of _links.form.href
387
+ // 'object', 'form' of 'merge': fetch record → gebruik _links.metadata.href of _links.form.href
388
388
  const objectHref = document.getElementById('object-href-input').value.trim();
389
389
  if (!objectHref) throw new Error('Vul een Object URL in');
390
390
  const recResp = await apiRequest('GET', objectHref, token);
391
391
  if (!recResp.ok) throw new Error(`${recResp.status}: kon object niet ophalen`);
392
392
  recordData = recResp.body;
393
393
 
394
- const linkKey = _dashboardType === 'form' ? 'form' : 'metadata';
394
+ // 'merge' reuses the form layout too: it lists real editable fields
395
+ // (firstName, lastName, ...) and already excludes hard formula fields
396
+ // like `name` — see LayoutHelper.buildDefaultObjectFormDashboard().
397
+ const linkKey = (_dashboardType === 'form' || _dashboardType === 'merge') ? 'form' : 'metadata';
395
398
  const dashHref = recordData._links?.[linkKey]?.href;
396
399
  if (!dashHref) throw new Error(`Geen _links.${linkKey} gevonden in object`);
397
400
 
@@ -447,6 +450,11 @@ async function renderSection(index) {
447
450
  return;
448
451
  }
449
452
 
453
+ if (_dashboardType === 'merge') {
454
+ await renderMergeView(layout, _dashboardRecord, container);
455
+ return;
456
+ }
457
+
450
458
  const section = document.createElement('mrd-layout-section');
451
459
  section.items = layout.items;
452
460
  section.data = _dashboardRecord ?? { _links: _dashboardData._links ?? {} };
@@ -973,6 +981,78 @@ async function renderForm(layout, record = null, selfHref = null, containerEl =
973
981
  });
974
982
  }
975
983
 
984
+ /* =====================================================================
985
+ MERGE — LOAD & RENDER (TASK-0177)
986
+ ===================================================================== */
987
+
988
+ /** Flatten SECTION/GROUP → FIELD/RELATION, same tree shape mrd-form flattens internally. */
989
+ function flattenLayoutItems(items) {
990
+ const result = [];
991
+ (items ?? []).forEach(item => {
992
+ if (item.type === 'SECTION' || item.type === 'GROUP') {
993
+ result.push(...flattenLayoutItems(item.items));
994
+ } else if (item.type === 'FIELD' || item.type === 'RELATION') {
995
+ result.push(item);
996
+ }
997
+ });
998
+ return result;
999
+ }
1000
+
1001
+ /**
1002
+ * Mount mrd-merge-view for the record loaded via the 'merge' dashboard type.
1003
+ * The record itself is object A (winner); the user searches for B inside
1004
+ * the component. mrd-merge-view never does network I/O itself — this wires
1005
+ * mrdSearch/mrdMerge to the real merge endpoint. Has no exit affordance of
1006
+ * its own — a host embedding this in an overlay page provides its own close
1007
+ * button, same as elsewhere in this dev preview.
1008
+ */
1009
+ async function renderMergeView(layout, record, containerEl) {
1010
+ const fields = flattenLayoutItems(layout.items);
1011
+ const selfHref = record?._links?.self?.href ?? '';
1012
+ // /data/{tenant}/{mostSignificantClass}/{id} → segment right before the id.
1013
+ const segments = selfHref.split('/').filter(Boolean);
1014
+ const mostSignificantClass = segments.length >= 2 ? segments[segments.length - 2] : '';
1015
+
1016
+ containerEl.innerHTML = `<mrd-merge-view id="live-merge" locale="${escHtml(_locale)}"></mrd-merge-view>`;
1017
+ const mergeEl = containerEl.querySelector('#live-merge');
1018
+ if (typeof mergeEl.componentOnReady === 'function') {
1019
+ await mergeEl.componentOnReady();
1020
+ } else {
1021
+ await customElements.whenDefined('mrd-merge-view');
1022
+ }
1023
+
1024
+ mergeEl.fields = fields;
1025
+ mergeEl.currentHref = selfHref;
1026
+ mergeEl.currentRecord = record ?? {};
1027
+ mergeEl.currentLabel = record?.name ?? '';
1028
+ mergeEl.basicType = mostSignificantClass;
1029
+ mergeEl.mostSignificantClass = mostSignificantClass;
1030
+
1031
+ mergeEl.addEventListener('mrdSearch', async (e) => {
1032
+ logEvent('mrdSearch (merge)', e.detail);
1033
+ const { query } = e.detail;
1034
+ try {
1035
+ const results = await apiSearchMergeCandidates(authGetToken(), _selectedTenant, mostSignificantClass, query);
1036
+ await mergeEl.setSearchResults(results);
1037
+ } catch (err) {
1038
+ console.error('[mrdSearch/merge] mislukt:', err);
1039
+ await mergeEl.setSearchResults([]);
1040
+ }
1041
+ });
1042
+
1043
+ mergeEl.addEventListener('mrdMerge', async (e) => {
1044
+ logEvent('mrdMerge', e.detail);
1045
+ const { winnerHref, loserHref, patch } = e.detail;
1046
+ try {
1047
+ const result = await apiMerge(authGetToken(), winnerHref, loserHref, patch);
1048
+ renderResponse(200, result);
1049
+ _dashboardRecord = result; // reflect the patched winner if the same layout is reloaded
1050
+ } catch (err) {
1051
+ renderResponse(500, err.message);
1052
+ }
1053
+ });
1054
+ }
1055
+
976
1056
  /* =====================================================================
977
1057
  RESPONSE RENDERING
978
1058
  ===================================================================== */
@@ -428,7 +428,7 @@ window.EXAMPLE_FIELD_TYPES_DATA = {
428
428
 
429
429
  window.EXAMPLE_DOCUMENT_ARCHETYPE = {
430
430
  archetype: 'commons.document',
431
- slots: { title: 'name', date: 'createdDate', summary: 'description', file: 'file', container: 'dossier' },
431
+ slots: { title: 'name', date: 'createdDate', summary: 'description', file: 'file', container: 'dossier', folder: 'folder' },
432
432
  };
433
433
 
434
434
  window.EXAMPLE_DOCUMENT_DATA = {
@@ -436,6 +436,7 @@ window.EXAMPLE_DOCUMENT_DATA = {
436
436
  createdDate: '2026-03-14',
437
437
  description: '<p>Signed engagement contract for the FY2026 period. Reviewed and countersigned by both parties.</p>',
438
438
  file: { href: '/data/demo/documents/1/file', fileName: 'contract-2026-acme.pdf' },
439
+ folder: 'correspondence/2026',
439
440
  _links: {
440
441
  dossier: { href: '/data/demo/dossiers/42', name: 'Acme Corp — Dossier 2026' },
441
442
  },
@@ -17,7 +17,12 @@ export class CellRenderer {
17
17
  const name = (_d = column.name) !== null && _d !== void 0 ? _d : '';
18
18
  const dataType = column.dataType;
19
19
  const listItems = column.listItems;
20
- const raw = row === null || row === void 0 ? void 0 : row[name];
20
+ let raw = row === null || row === void 0 ? void 0 : row[name];
21
+ // History-enabled fields are stored as { current, history: [...] } — render
22
+ // the current value, same as mrd-layout-section's field rendering.
23
+ if (column.historyEnabled && raw != null && typeof raw === 'object' && !Array.isArray(raw) && 'current' in raw) {
24
+ raw = raw.current;
25
+ }
21
26
  if (raw == null || raw === '')
22
27
  return '';
23
28
  const values = Array.isArray(raw) ? raw : [raw];
@@ -72,6 +72,19 @@ const translations = {
72
72
  folder_no_slash: "Een foldernaam mag geen '/' bevatten",
73
73
  folder_duplicate: 'Er bestaat al een folder met deze naam',
74
74
  doc_empty_drop: 'Nog geen documenten — sleep bestanden hierheen',
75
+ // mrd-merge-view
76
+ merge_search_hint: 'Zoek het duplicaat waarmee je wilt samenvoegen',
77
+ merge_select: 'Selecteer',
78
+ merge_compare_heading: 'Los conflicten op',
79
+ merge_column_a: 'Huidig (blijft behouden)',
80
+ merge_column_b: 'Kandidaat (wordt verwijderd)',
81
+ merge_auto_heading: 'Deze velden worden automatisch overgenomen van de kandidaat:',
82
+ merge_no_conflicts: 'Geen conflicterende velden gevonden',
83
+ merge_continue: 'Doorgaan',
84
+ merge_back: 'Terug',
85
+ merge_confirm_heading: 'Bevestig samenvoegen',
86
+ merge_confirm_warning: 'Dit kan niet ongedaan worden gemaakt: de kandidaat wordt definitief verwijderd.',
87
+ merge_confirm_button: 'Samenvoegen bevestigen',
75
88
  },
76
89
  en: {
77
90
  required: 'This field is required',
@@ -146,6 +159,19 @@ const translations = {
146
159
  folder_no_slash: "A folder name cannot contain '/'",
147
160
  folder_duplicate: 'A folder with this name already exists',
148
161
  doc_empty_drop: 'No documents yet — drop files here',
162
+ // mrd-merge-view
163
+ merge_search_hint: 'Search for the duplicate to merge with',
164
+ merge_select: 'Select',
165
+ merge_compare_heading: 'Resolve conflicts',
166
+ merge_column_a: 'Current (kept)',
167
+ merge_column_b: 'Candidate (will be deleted)',
168
+ merge_auto_heading: 'These fields will be taken from the candidate automatically:',
169
+ merge_no_conflicts: 'No conflicting fields found',
170
+ merge_continue: 'Continue',
171
+ merge_back: 'Back',
172
+ merge_confirm_heading: 'Confirm merge',
173
+ merge_confirm_warning: 'This cannot be undone: the candidate will be permanently deleted.',
174
+ merge_confirm_button: 'Confirm merge',
149
175
  },
150
176
  ar: {
151
177
  required: 'هذا الحقل مطلوب',
@@ -214,6 +240,19 @@ const translations = {
214
240
  history_until: 'حتى',
215
241
  history_badge_tooltip: 'القيم السابقة',
216
242
  hyperlink_name: 'نص الرابط (اختياري)',
243
+ // mrd-merge-view
244
+ merge_search_hint: 'ابحث عن السجل المكرر للدمج معه',
245
+ merge_select: 'اختر',
246
+ merge_compare_heading: 'حل التعارضات',
247
+ merge_column_a: 'الحالي (سيتم الاحتفاظ به)',
248
+ merge_column_b: 'المرشح (سيتم حذفه)',
249
+ merge_auto_heading: 'سيتم أخذ هذه الحقول من المرشح تلقائياً:',
250
+ merge_no_conflicts: 'لم يتم العثور على حقول متعارضة',
251
+ merge_continue: 'متابعة',
252
+ merge_back: 'رجوع',
253
+ merge_confirm_heading: 'تأكيد الدمج',
254
+ merge_confirm_warning: 'لا يمكن التراجع عن هذا الإجراء: سيتم حذف المرشح نهائياً.',
255
+ merge_confirm_button: 'تأكيد الدمج',
217
256
  },
218
257
  fr: {
219
258
  required: 'Ce champ est obligatoire',
@@ -282,6 +321,19 @@ const translations = {
282
321
  history_until: "jusqu'au",
283
322
  history_badge_tooltip: 'Valeurs précédentes',
284
323
  hyperlink_name: 'Texte du lien (optionnel)',
324
+ // mrd-merge-view
325
+ merge_search_hint: 'Rechercher le doublon à fusionner',
326
+ merge_select: 'Sélectionner',
327
+ merge_compare_heading: 'Résoudre les conflits',
328
+ merge_column_a: 'Actuel (conservé)',
329
+ merge_column_b: 'Candidat (sera supprimé)',
330
+ merge_auto_heading: 'Ces champs seront repris automatiquement du candidat :',
331
+ merge_no_conflicts: 'Aucun champ en conflit trouvé',
332
+ merge_continue: 'Continuer',
333
+ merge_back: 'Retour',
334
+ merge_confirm_heading: 'Confirmer la fusion',
335
+ merge_confirm_warning: 'Cette action est irréversible : le candidat sera définitivement supprimé.',
336
+ merge_confirm_button: 'Confirmer la fusion',
285
337
  },
286
338
  de: {
287
339
  required: 'Dieses Feld ist erforderlich',
@@ -350,6 +402,19 @@ const translations = {
350
402
  history_until: 'bis',
351
403
  history_badge_tooltip: 'Vorherige Werte',
352
404
  hyperlink_name: 'Linktext (optional)',
405
+ // mrd-merge-view
406
+ merge_search_hint: 'Suchen Sie das Duplikat, mit dem zusammengeführt werden soll',
407
+ merge_select: 'Auswählen',
408
+ merge_compare_heading: 'Konflikte lösen',
409
+ merge_column_a: 'Aktuell (bleibt erhalten)',
410
+ merge_column_b: 'Kandidat (wird gelöscht)',
411
+ merge_auto_heading: 'Diese Felder werden automatisch vom Kandidaten übernommen:',
412
+ merge_no_conflicts: 'Keine widersprüchlichen Felder gefunden',
413
+ merge_continue: 'Weiter',
414
+ merge_back: 'Zurück',
415
+ merge_confirm_heading: 'Zusammenführung bestätigen',
416
+ merge_confirm_warning: 'Dies kann nicht rückgängig gemacht werden: der Kandidat wird endgültig gelöscht.',
417
+ merge_confirm_button: 'Zusammenführung bestätigen',
353
418
  },
354
419
  es: {
355
420
  required: 'Este campo es obligatorio',
@@ -418,6 +483,19 @@ const translations = {
418
483
  history_until: 'hasta',
419
484
  history_badge_tooltip: 'Valores anteriores',
420
485
  hyperlink_name: 'Texto del enlace (opcional)',
486
+ // mrd-merge-view
487
+ merge_search_hint: 'Busque el duplicado con el que fusionar',
488
+ merge_select: 'Seleccionar',
489
+ merge_compare_heading: 'Resolver conflictos',
490
+ merge_column_a: 'Actual (se conserva)',
491
+ merge_column_b: 'Candidato (se eliminará)',
492
+ merge_auto_heading: 'Estos campos se tomarán automáticamente del candidato:',
493
+ merge_no_conflicts: 'No se encontraron campos en conflicto',
494
+ merge_continue: 'Continuar',
495
+ merge_back: 'Atrás',
496
+ merge_confirm_heading: 'Confirmar fusión',
497
+ merge_confirm_warning: 'Esto no se puede deshacer: el candidato se eliminará permanentemente.',
498
+ merge_confirm_button: 'Confirmar fusión',
421
499
  },
422
500
  it: {
423
501
  required: 'Questo campo è obbligatorio',
@@ -486,6 +564,19 @@ const translations = {
486
564
  history_until: 'fino a',
487
565
  history_badge_tooltip: 'Valori precedenti',
488
566
  hyperlink_name: 'Testo del collegamento (opzionale)',
567
+ // mrd-merge-view
568
+ merge_search_hint: 'Cerca il duplicato con cui unire',
569
+ merge_select: 'Seleziona',
570
+ merge_compare_heading: 'Risolvi i conflitti',
571
+ merge_column_a: 'Attuale (viene mantenuto)',
572
+ merge_column_b: 'Candidato (verrà eliminato)',
573
+ merge_auto_heading: 'Questi campi verranno ripresi automaticamente dal candidato:',
574
+ merge_no_conflicts: 'Nessun campo in conflitto trovato',
575
+ merge_continue: 'Continua',
576
+ merge_back: 'Indietro',
577
+ merge_confirm_heading: 'Conferma unione',
578
+ merge_confirm_warning: "Questa azione non può essere annullata: il candidato verrà eliminato definitivamente.",
579
+ merge_confirm_button: 'Conferma unione',
489
580
  },
490
581
  uk: {
491
582
  required: "Це поле обов'язкове",
@@ -554,6 +645,19 @@ const translations = {
554
645
  history_until: 'до',
555
646
  history_badge_tooltip: 'Попередні значення',
556
647
  hyperlink_name: "Текст посилання (необов'язково)",
648
+ // mrd-merge-view
649
+ merge_search_hint: 'Знайдіть дублікат для об\'єднання',
650
+ merge_select: 'Вибрати',
651
+ merge_compare_heading: 'Вирішити конфлікти',
652
+ merge_column_a: 'Поточний (залишається)',
653
+ merge_column_b: 'Кандидат (буде видалено)',
654
+ merge_auto_heading: 'Ці поля будуть автоматично взяті з кандидата:',
655
+ merge_no_conflicts: 'Конфліктних полів не знайдено',
656
+ merge_continue: 'Продовжити',
657
+ merge_back: 'Назад',
658
+ merge_confirm_heading: 'Підтвердити об\'єднання',
659
+ merge_confirm_warning: 'Цю дію не можна скасувати: кандидат буде остаточно видалено.',
660
+ merge_confirm_button: 'Підтвердити об\'єднання',
557
661
  },
558
662
  };
559
663
  export function t(key, locale) {
@@ -0,0 +1 @@
1
+ import{d as r,e,f as t,c as n,a as u,b as a}from"./format.js";import{a as l}from"./client-layout.js";class o{static render(r,e,t){var n,u,a,c;if(r.type===l.RELATION){const t=null!==(n=r.name)&&void 0!==n?n:"",l=null===(u=null==e?void 0:e._links)||void 0===u?void 0:u[t];return l?Array.isArray(l)?l.map((r=>{var e;return null!==(e=r.name)&&void 0!==e?e:""})).filter(Boolean).join(", "):null!==(a=l.name)&&void 0!==a?a:"":""}if(r.type!==l.FIELD)return"";const s=null!==(c=r.name)&&void 0!==c?c:"",i=r.dataType,d=r.listItems;let E=null==e?void 0:e[s];return r.historyEnabled&&null!=E&&"object"==typeof E&&!Array.isArray(E)&&"current"in E&&(E=E.current),null==E||""===E?"":(Array.isArray(E)?E:[E]).map((r=>o.renderValue(null!=i?i:"TEXT",r,null!=d?d:[],t))).filter((r=>""!==r)).join(", ")}static renderValue(l,o,c,s){var i,d;switch(l){case"INTEGER":return u(Number(o),s,{maximumFractionDigits:0});case"DECIMAL":return u(Number(o),s);case"PERCENTAGE":return a(Number(o),s);case"CURRENCY":{const{amount:r,currency:e}="object"==typeof o&&null!==o?o:{amount:o,currency:""};return e?n(Number(r),e,s):u(Number(r),s)}case"DATE":return t(o,s);case"DATETIME":return e(o,s);case"TIME":return r(o,s);case"BOOLEAN":return o?"✓":"";case"FILE":case"IMAGE":return"object"==typeof o&&null!==o&&null!==(i=o.fileName)&&void 0!==i?i:"";case"LIST":{const r=c.find((r=>r.key===String(o)));return null!==(d=null==r?void 0:r.label)&&void 0!==d?d:String(o)}case"TEXTBLOCK":{const r=String(o).replace(/<[^>]*>/g,""),e=document.createElement("textarea");return e.innerHTML=r,e.value.trim()}case"LONGTEXT":return String(o).replace(/[\r\n]+/g," ").trim();case"JSON":return("object"==typeof o?JSON.stringify(o):String(o)).replace(/[\r\n]+/g," ").trim();case"SECRET":return o?"••••••••":"";default:return String(o)}}static formatJson(r,e=!1){try{const t="string"==typeof r?JSON.parse(r):r;return(e?JSON.stringify(t):JSON.stringify(t,null,2)).replace(/("(\\u[a-zA-Z0-9]{4}|\\[^u]|[^\\"])*"(\s*:)?|\b(true|false|null)\b|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?)/g,(r=>{let e="color:#2aa198";return/^"/.test(r)?e=/:$/.test(r)?"color:#881391":"color:#268bd2":/true|false/.test(r)?e="color:#b58900":/null/.test(r)&&(e="color:#dc322f"),`<span style="${e}">${r}</span>`}))}catch(e){return String(r)}}}export{o as C}
@@ -1 +1 @@
1
- function n(n,i,t){return null==n||isNaN(n)?"":new Intl.NumberFormat(i,t).format(n)}function i(n,i,t){return null==n||isNaN(n)?"":new Intl.NumberFormat(t,{style:"currency",currency:i,minimumFractionDigits:2,maximumFractionDigits:2}).format(n)}function t(n,i,t=2){return null==n||isNaN(n)?"":new Intl.NumberFormat(i,{style:"percent",minimumFractionDigits:t,maximumFractionDigits:t}).format(n)}function e(n,i){if(!n)return"";const t="string"==typeof n?new Date(n):n;return isNaN(t.getTime())?"":new Intl.DateTimeFormat(i,{year:"numeric",month:"2-digit",day:"2-digit"}).format(t)}function r(n,i){if(!n)return"";const t="string"==typeof n?new Date(n):n;return isNaN(t.getTime())?"":new Intl.DateTimeFormat(i,{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"}).format(t)}function u(n,i){if(!n)return"";const[t,e]=n.split(":").map(Number),r=new Date;return r.setHours(t,e,0,0),new Intl.DateTimeFormat(i,{hour:"2-digit",minute:"2-digit"}).format(r)}function a(n,i){var t,e,r,u;if(!n||!n.trim())return null;const a=new Intl.NumberFormat(i).formatToParts(1234567.89),o=null!==(e=null===(t=a.find((n=>"group"===n.type)))||void 0===t?void 0:t.value)&&void 0!==e?e:",",l=null!==(u=null===(r=a.find((n=>"decimal"===n.type)))||void 0===r?void 0:r.value)&&void 0!==u?u:".",s=n.replace(new RegExp(`\\${o}`,"g"),"").replace(new RegExp(`\\${l}`),".").replace("%","").trim(),c=parseFloat(s);return isNaN(c)?null:c}export{n as a,u as b,r as c,i as d,t as e,e as f,a as p}
1
+ function n(n,i,t){return null==n||isNaN(n)?"":new Intl.NumberFormat(i,t).format(n)}function i(n,i,t){return null==n||isNaN(n)?"":new Intl.NumberFormat(t,{style:"currency",currency:i,minimumFractionDigits:2,maximumFractionDigits:2}).format(n)}function t(n,i,t=2){return null==n||isNaN(n)?"":new Intl.NumberFormat(i,{style:"percent",minimumFractionDigits:t,maximumFractionDigits:t}).format(n)}function e(n,i){if(!n)return"";const t="string"==typeof n?new Date(n):n;return isNaN(t.getTime())?"":new Intl.DateTimeFormat(i,{year:"numeric",month:"2-digit",day:"2-digit"}).format(t)}function r(n,i){if(!n)return"";const t="string"==typeof n?new Date(n):n;return isNaN(t.getTime())?"":new Intl.DateTimeFormat(i,{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"}).format(t)}function u(n,i){if(!n)return"";const[t,e]=n.split(":").map(Number),r=new Date;return r.setHours(t,e,0,0),new Intl.DateTimeFormat(i,{hour:"2-digit",minute:"2-digit"}).format(r)}function a(n,i){var t,e,r,u;if(!n||!n.trim())return null;const a=new Intl.NumberFormat(i).formatToParts(1234567.89),o=null!==(e=null===(t=a.find((n=>"group"===n.type)))||void 0===t?void 0:t.value)&&void 0!==e?e:",",l=null!==(u=null===(r=a.find((n=>"decimal"===n.type)))||void 0===r?void 0:r.value)&&void 0!==u?u:".",s=n.replace(new RegExp(`\\${o}`,"g"),"").replace(new RegExp(`\\${l}`),".").replace("%","").trim(),c=parseFloat(s);return isNaN(c)?null:c}export{n as a,t as b,i as c,u as d,r as e,e as f,a as p}
@@ -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",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}
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",merge_search_hint:"Zoek het duplicaat waarmee je wilt samenvoegen",merge_select:"Selecteer",merge_compare_heading:"Los conflicten op",merge_column_a:"Huidig (blijft behouden)",merge_column_b:"Kandidaat (wordt verwijderd)",merge_auto_heading:"Deze velden worden automatisch overgenomen van de kandidaat:",merge_no_conflicts:"Geen conflicterende velden gevonden",merge_continue:"Doorgaan",merge_back:"Terug",merge_confirm_heading:"Bevestig samenvoegen",merge_confirm_warning:"Dit kan niet ongedaan worden gemaakt: de kandidaat wordt definitief verwijderd.",merge_confirm_button:"Samenvoegen bevestigen"},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",merge_search_hint:"Search for the duplicate to merge with",merge_select:"Select",merge_compare_heading:"Resolve conflicts",merge_column_a:"Current (kept)",merge_column_b:"Candidate (will be deleted)",merge_auto_heading:"These fields will be taken from the candidate automatically:",merge_no_conflicts:"No conflicting fields found",merge_continue:"Continue",merge_back:"Back",merge_confirm_heading:"Confirm merge",merge_confirm_warning:"This cannot be undone: the candidate will be permanently deleted.",merge_confirm_button:"Confirm merge"},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:"نص الرابط (اختياري)",merge_search_hint:"ابحث عن السجل المكرر للدمج معه",merge_select:"اختر",merge_compare_heading:"حل التعارضات",merge_column_a:"الحالي (سيتم الاحتفاظ به)",merge_column_b:"المرشح (سيتم حذفه)",merge_auto_heading:"سيتم أخذ هذه الحقول من المرشح تلقائياً:",merge_no_conflicts:"لم يتم العثور على حقول متعارضة",merge_continue:"متابعة",merge_back:"رجوع",merge_confirm_heading:"تأكيد الدمج",merge_confirm_warning:"لا يمكن التراجع عن هذا الإجراء: سيتم حذف المرشح نهائياً.",merge_confirm_button:"تأكيد الدمج"},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)",merge_search_hint:"Rechercher le doublon à fusionner",merge_select:"Sélectionner",merge_compare_heading:"Résoudre les conflits",merge_column_a:"Actuel (conservé)",merge_column_b:"Candidat (sera supprimé)",merge_auto_heading:"Ces champs seront repris automatiquement du candidat :",merge_no_conflicts:"Aucun champ en conflit trouvé",merge_continue:"Continuer",merge_back:"Retour",merge_confirm_heading:"Confirmer la fusion",merge_confirm_warning:"Cette action est irréversible : le candidat sera définitivement supprimé.",merge_confirm_button:"Confirmer la fusion"},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)",merge_search_hint:"Suchen Sie das Duplikat, mit dem zusammengeführt werden soll",merge_select:"Auswählen",merge_compare_heading:"Konflikte lösen",merge_column_a:"Aktuell (bleibt erhalten)",merge_column_b:"Kandidat (wird gelöscht)",merge_auto_heading:"Diese Felder werden automatisch vom Kandidaten übernommen:",merge_no_conflicts:"Keine widersprüchlichen Felder gefunden",merge_continue:"Weiter",merge_back:"Zurück",merge_confirm_heading:"Zusammenführung bestätigen",merge_confirm_warning:"Dies kann nicht rückgängig gemacht werden: der Kandidat wird endgültig gelöscht.",merge_confirm_button:"Zusammenführung bestätigen"},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)",merge_search_hint:"Busque el duplicado con el que fusionar",merge_select:"Seleccionar",merge_compare_heading:"Resolver conflictos",merge_column_a:"Actual (se conserva)",merge_column_b:"Candidato (se eliminará)",merge_auto_heading:"Estos campos se tomarán automáticamente del candidato:",merge_no_conflicts:"No se encontraron campos en conflicto",merge_continue:"Continuar",merge_back:"Atrás",merge_confirm_heading:"Confirmar fusión",merge_confirm_warning:"Esto no se puede deshacer: el candidato se eliminará permanentemente.",merge_confirm_button:"Confirmar fusión"},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)",merge_search_hint:"Cerca il duplicato con cui unire",merge_select:"Seleziona",merge_compare_heading:"Risolvi i conflitti",merge_column_a:"Attuale (viene mantenuto)",merge_column_b:"Candidato (verrà eliminato)",merge_auto_heading:"Questi campi verranno ripresi automaticamente dal candidato:",merge_no_conflicts:"Nessun campo in conflitto trovato",merge_continue:"Continua",merge_back:"Indietro",merge_confirm_heading:"Conferma unione",merge_confirm_warning:"Questa azione non può essere annullata: il candidato verrà eliminato definitivamente.",merge_confirm_button:"Conferma unione"},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:"Текст посилання (необов'язково)",merge_search_hint:"Знайдіть дублікат для об'єднання",merge_select:"Вибрати",merge_compare_heading:"Вирішити конфлікти",merge_column_a:"Поточний (залишається)",merge_column_b:"Кандидат (буде видалено)",merge_auto_heading:"Ці поля будуть автоматично взяті з кандидата:",merge_no_conflicts:"Конфліктних полів не знайдено",merge_continue:"Продовжити",merge_back:"Назад",merge_confirm_heading:"Підтвердити об'єднання",merge_confirm_warning:"Цю дію не можна скасувати: кандидат буде остаточно видалено.",merge_confirm_button:"Підтвердити об'єднання"}};function i(i,r){var l,t,a;const n=(null!=r?r:"en").split("-")[0].toLowerCase();return null!==(a=null!==(t=(null!==(l=e[n])&&void 0!==l?l:e.en)[i])&&void 0!==t?t:e.en[i])&&void 0!==a?a:i}export{i as t}
@@ -1 +1 @@
1
- import{proxyCustomElement as e,HTMLElement as r,createEvent as d,h as t,Host as o,transformTag as i}from"@stencil/core/internal/client";import{t as n}from"./i18n.js";import{f as a}from"./format.js";import{a as m}from"./document-attachments.js";const c=e(class extends r{constructor(e){super(),!1!==e&&this.__registerHost(),this.mrdNavigate=d(this,"mrdNavigate",7),this.mrdDownload=d(this,"mrdDownload",7),this.mrdAttachments=d(this,"mrdAttachments",7),this.data={},this.locale=navigator.language,this.lastAttachmentHref=null}componentDidLoad(){this.emitAttachmentsIfNeeded()}dataChanged(){this.emitAttachmentsIfNeeded()}emitAttachmentsIfNeeded(){var e,r;const d=m(this.archetype,this.data),t=null!==(r=null===(e=d[0])||void 0===e?void 0:e.href)&&void 0!==r?r:null;t!==this.lastAttachmentHref&&(this.lastAttachmentHref=t,this.mrdAttachments.emit({attachments:d}))}slotValue(e){var r,d;const t=null===(d=null===(r=this.archetype)||void 0===r?void 0:r.slots)||void 0===d?void 0:d[e];if(t)return this.data[t]}slotLink(e){var r,d,t,o;const i=null===(d=null===(r=this.archetype)||void 0===r?void 0:r.slots)||void 0===d?void 0:d[e];if(i)return(null!==(o=null===(t=this.data)||void 0===t?void 0:t._links)&&void 0!==o?o:{})[i]}renderContainer(){const e=this.slotLink("container");return(null==e?void 0:e.href)&&e.name?t("button",{class:"mrd-document-view__crumb",onClick:()=>this.mrdNavigate.emit({href:e.href,label:e.name})},t("svg",{class:"mrd-document-view__crumb-icon",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true"},t("path",{d:"M19 12H5M12 19l-7-7 7-7"})),e.name):null}renderFileMeta(e,r){return t("div",{class:"mrd-document-view__file-meta"},t("span",{class:"mrd-document-view__file-name"},e),r&&t("button",{type:"button",class:"mrd-document-view__download",onClick:()=>this.mrdDownload.emit({href:r,fileName:e})},t("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true"},t("path",{d:"M12 3v12m0 0l-4-4m4 4l4-4M4 21h16"})),n("download",this.locale)))}render(){var e,r;const d=this.slotValue("title"),i=null!=d&&""!==d?String(d):null,n=this.slotValue("date"),m=null!=n&&""!==n?a(n,this.locale):null,c=this.slotValue("summary"),s=null!=c&&""!==c?String(c):null,l=this.slotValue("file"),u=null!==(e=null==l?void 0:l.href)&&void 0!==e?e:"",v=null!==(r=null==l?void 0:l.fileName)&&void 0!==r?r:l?String(l):"";return t(o,{key:"e25995d61813ad0d285497c0abe74de0c1624cea"},t("div",{key:"1d8e6c12c5db53bffd28b4bcff84a950c22cc8d8",class:"mrd-document-view"},t("div",{key:"b583648e524acd8156f92989b685b6343164738c",class:"mrd-document-view__body"},t("div",{key:"8992b15a52edd64e2f0fd3269213302ab3989a20",class:"mrd-document-view__meta"},this.renderContainer(),i&&t("h1",{key:"0742816ed6ac927fa12410d723c9b0b8470800c7",class:"mrd-document-view__title"},i),m&&t("p",{key:"4803d2773ef904e3788a865db8e4653e5cb9d8df",class:"mrd-document-view__date"},m),l&&this.renderFileMeta(v,u),s&&t("div",{key:"502e9e844d474b692246e36c96245ba5321d2a9e",class:"mrd-document-view__summary"},t("div",{key:"b37d4c9cb9bc65c5abb0a4e1809e285032868e2c",class:"mrd-document-view__summary-body",innerHTML:s}))))))}static get watchers(){return{data:[{dataChanged:0}]}}static get style(){return".sc-mrd-document-view-h{display:block}.mrd-document-view.sc-mrd-document-view{max-width:640px}.mrd-document-view__body.sc-mrd-document-view{display:flex;flex-direction:column;gap:var(--mrd-space-6)}.mrd-document-view__crumb.sc-mrd-document-view{display:inline-flex;align-items:center;gap:var(--mrd-space-2);margin-bottom:var(--mrd-space-4);padding:var(--mrd-space-1) var(--mrd-space-3);background:var(--mrd-color-primary-light);border:1px solid transparent;border-radius:var(--mrd-border-radius);font-family:var(--mrd-font-family);font-size:var(--mrd-font-size-sm);color:var(--mrd-color-primary-dark);cursor:pointer}.mrd-document-view__crumb.sc-mrd-document-view:hover{border-color:var(--mrd-color-primary)}.mrd-document-view__crumb-icon.sc-mrd-document-view{width:0.875rem;height:0.875rem;flex-shrink:0}.mrd-document-view__title.sc-mrd-document-view{font-size:var(--mrd-font-size-2xl);font-weight:var(--mrd-font-weight-bold);color:var(--mrd-color-neutral-900);letter-spacing:-0.02em;margin:0 0 var(--mrd-space-1) 0}.mrd-document-view__date.sc-mrd-document-view{font-size:var(--mrd-font-size-sm);color:var(--mrd-color-neutral-400);font-variant-numeric:tabular-nums;margin:0 0 var(--mrd-space-6) 0}.mrd-document-view__file-meta.sc-mrd-document-view{display:flex;align-items:center;gap:var(--mrd-space-4);margin-bottom:var(--mrd-space-2)}.mrd-document-view__file-name.sc-mrd-document-view{flex:1;min-width:0;font-weight:var(--mrd-font-weight-semibold);font-size:var(--mrd-font-size-sm);color:var(--mrd-color-neutral-800);word-break:break-word}.mrd-document-view__download.sc-mrd-document-view{display:inline-flex;align-items:center;gap:var(--mrd-space-2);flex-shrink:0;height:2rem;padding:0 var(--mrd-space-3);background:var(--mrd-color-white);border:1px solid var(--mrd-color-neutral-300);border-radius:var(--mrd-border-radius);font-family:var(--mrd-font-family);font-size:var(--mrd-font-size-sm);font-weight:var(--mrd-font-weight-medium);color:var(--mrd-color-neutral-700);cursor:pointer}.mrd-document-view__download.sc-mrd-document-view:hover{background:var(--mrd-color-neutral-100);color:var(--mrd-color-neutral-900)}.mrd-document-view__download.sc-mrd-document-view svg.sc-mrd-document-view{width:0.9375rem;height:0.9375rem}.mrd-document-view__summary-body.sc-mrd-document-view{font-size:var(--mrd-font-size-base);color:var(--mrd-color-neutral-700);line-height:var(--mrd-line-height-relaxed)}"}},[2,"mrd-document-view",{archetype:[16],data:[16],locale:[1]},void 0,{data:[{dataChanged:0}]}]);function s(){"undefined"!=typeof customElements&&["mrd-document-view"].forEach((e=>{"mrd-document-view"===e&&(customElements.get(i(e))||customElements.define(i(e),c))}))}export{c as M,s as d}
1
+ import{proxyCustomElement as e,HTMLElement as r,createEvent as d,h as t,Host as i,transformTag as o}from"@stencil/core/internal/client";import{t as n}from"./i18n.js";import{f as a}from"./format.js";import{a as m}from"./document-attachments.js";const c=e(class extends r{constructor(e){super(),!1!==e&&this.__registerHost(),this.mrdNavigate=d(this,"mrdNavigate",7),this.mrdDownload=d(this,"mrdDownload",7),this.mrdAttachments=d(this,"mrdAttachments",7),this.data={},this.locale=navigator.language,this.lastAttachmentHref=null}componentDidLoad(){this.emitAttachmentsIfNeeded()}dataChanged(){this.emitAttachmentsIfNeeded()}emitAttachmentsIfNeeded(){var e,r;const d=m(this.archetype,this.data),t=null!==(r=null===(e=d[0])||void 0===e?void 0:e.href)&&void 0!==r?r:null;t!==this.lastAttachmentHref&&(this.lastAttachmentHref=t,this.mrdAttachments.emit({attachments:d}))}slotValue(e){var r,d;const t=null===(d=null===(r=this.archetype)||void 0===r?void 0:r.slots)||void 0===d?void 0:d[e];if(t)return this.data[t]}slotLink(e){var r,d,t,i;const o=null===(d=null===(r=this.archetype)||void 0===r?void 0:r.slots)||void 0===d?void 0:d[e];if(o)return(null!==(i=null===(t=this.data)||void 0===t?void 0:t._links)&&void 0!==i?i:{})[o]}renderContainer(){const e=this.slotLink("container"),r=!(!(null==e?void 0:e.href)||!e.name),d=this.slotValue("folder"),i=null!=d&&""!==d?String(d):null;return r||i?t("div",{class:"mrd-document-view__container"},r&&t("button",{type:"button",class:"mrd-document-view__container-link",onClick:()=>this.mrdNavigate.emit({href:e.href,label:e.name})},e.name),i&&t("span",{class:"mrd-document-view__folder"},t("svg",{class:"mrd-document-view__folder-icon",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true"},t("path",{d:"M3 7a2 2 0 0 1 2-2h4l2 2h8a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"})),i)):null}renderFileMeta(e,r){return t("div",{class:"mrd-document-view__file-meta"},r&&t("button",{type:"button",class:"mrd-document-view__download",onClick:()=>this.mrdDownload.emit({href:r,fileName:e})},t("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true"},t("path",{d:"M12 3v12m0 0l-4-4m4 4l4-4M4 21h16"})),n("download",this.locale)))}render(){var e,r;const d=this.slotValue("title"),o=null!=d&&""!==d?String(d):null,n=this.slotValue("date"),m=null!=n&&""!==n?a(n,this.locale):null,c=this.slotValue("summary"),l=null!=c&&""!==c?String(c):null,s=this.slotValue("file"),u=null!==(e=null==s?void 0:s.href)&&void 0!==e?e:"",v=null!==(r=null==s?void 0:s.fileName)&&void 0!==r?r:s?String(s):"";return t(i,{key:"d4e8d4a6c5c66677df3d4e80943fc4538d9a2be7"},t("div",{key:"c67bb1742590dc3ab3cec959f20dfa9030268411",class:"mrd-document-view"},t("div",{key:"5da6e15d1f67990a9ee06bc07b717e5fa17a2ee7",class:"mrd-document-view__body"},t("div",{key:"0fc38933add3fff48096c48d2fb6cd06fb5d1eac",class:"mrd-document-view__meta"},o&&t("h1",{key:"e9ac8d99f9afae6b64dd7e6bd461c54b92a6ea39",class:"mrd-document-view__title"},o),m&&t("p",{key:"8591d77b300ed3c021cfa64b8e9564dee98199cd",class:"mrd-document-view__date"},m),this.renderContainer(),s&&this.renderFileMeta(v,u),l&&t("div",{key:"8a6d630afcf187fa86c9bab77d06d93695fd5c9f",class:"mrd-document-view__summary"},t("div",{key:"bd98e2cf740d08837accd8d260973d4e51cd24f7",class:"mrd-document-view__summary-body",innerHTML:l}))))))}static get watchers(){return{data:[{dataChanged:0}]}}static get style(){return".sc-mrd-document-view-h{display:block}.mrd-document-view.sc-mrd-document-view{max-width:640px}.mrd-document-view__body.sc-mrd-document-view{display:flex;flex-direction:column;gap:var(--mrd-space-6)}.mrd-document-view__container.sc-mrd-document-view{display:flex;flex-direction:column;align-items:flex-start;gap:var(--mrd-space-1);margin-bottom:var(--mrd-space-6)}.mrd-document-view__container-link.sc-mrd-document-view{background:none;border:none;padding:0;font-family:var(--mrd-font-family);font-size:var(--mrd-font-size-sm);font-weight:var(--mrd-font-weight-semibold);color:var(--mrd-color-primary);cursor:pointer;text-align:left}.mrd-document-view__container-link.sc-mrd-document-view:hover{text-decoration:underline}.mrd-document-view__folder.sc-mrd-document-view{display:inline-flex;align-items:center;gap:var(--mrd-space-1);font-size:var(--mrd-font-size-xs);color:var(--mrd-color-neutral-400);word-break:break-word}.mrd-document-view__folder-icon.sc-mrd-document-view{width:0.75rem;height:0.75rem;flex-shrink:0}.mrd-document-view__title.sc-mrd-document-view{font-size:var(--mrd-font-size-2xl);font-weight:var(--mrd-font-weight-bold);color:var(--mrd-color-neutral-900);letter-spacing:-0.02em;margin:0 0 var(--mrd-space-1) 0}.mrd-document-view__date.sc-mrd-document-view{font-size:var(--mrd-font-size-sm);color:var(--mrd-color-neutral-400);font-variant-numeric:tabular-nums;margin:0 0 var(--mrd-space-6) 0}.mrd-document-view__file-meta.sc-mrd-document-view{display:flex;align-items:center;margin-bottom:var(--mrd-space-2)}.mrd-document-view__download.sc-mrd-document-view{display:inline-flex;align-items:center;gap:var(--mrd-space-2);flex-shrink:0;height:2rem;padding:0 var(--mrd-space-3);background:var(--mrd-color-white);border:1px solid var(--mrd-color-neutral-300);border-radius:var(--mrd-border-radius);font-family:var(--mrd-font-family);font-size:var(--mrd-font-size-sm);font-weight:var(--mrd-font-weight-medium);color:var(--mrd-color-neutral-700);cursor:pointer}.mrd-document-view__download.sc-mrd-document-view:hover{background:var(--mrd-color-neutral-100);color:var(--mrd-color-neutral-900)}.mrd-document-view__download.sc-mrd-document-view svg.sc-mrd-document-view{width:0.9375rem;height:0.9375rem}.mrd-document-view__summary-body.sc-mrd-document-view{font-size:var(--mrd-font-size-base);color:var(--mrd-color-neutral-700);line-height:var(--mrd-line-height-relaxed)}"}},[2,"mrd-document-view",{archetype:[16],data:[16],locale:[1]},void 0,{data:[{dataChanged:0}]}]);function l(){"undefined"!=typeof customElements&&["mrd-document-view"].forEach((e=>{"mrd-document-view"===e&&(customElements.get(o(e))||customElements.define(o(e),c))}))}export{c as M,l as d}