From 755703bc962c6970356a3ab6c7f5bc676c573cc9 Mon Sep 17 00:00:00 2001 From: Kjell Tore Guttormsen Date: Mon, 4 May 2026 06:05:02 +0200 Subject: [PATCH] feat(ms-ai-architect): renderer A.3 transparency adopt page-header + read-more - renderTransparency wrapped med renderPageShell (eyebrow APENHET, lede ref AI Act Art. 13/50 og GDPR Art. 13/14) - E8 read-more for klausuler over 240 tegn (details/summary, "Les hele klausulen") - Bevarer report-doc body-styling --- .../ms-ai-architect-playground.html | 24 +++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/plugins/ms-ai-architect/playground/ms-ai-architect-playground.html b/plugins/ms-ai-architect/playground/ms-ai-architect-playground.html index 4e566ad..fd4ef2f 100644 --- a/plugins/ms-ai-architect/playground/ms-ai-architect-playground.html +++ b/plugins/ms-ai-architect/playground/ms-ai-architect-playground.html @@ -3103,10 +3103,30 @@ } function renderTransparency(data, slot) { + const READ_MORE_THRESHOLD = 240; const sectionsHtml = (data.sections || []).map(function (s) { - return '

' + escapeHtml(s.heading) + '

' + escapeHtml(s.body).replace(/\n/g, '
') + '

'; + const body = (s.body || '').trim(); + if (body.length > READ_MORE_THRESHOLD) { + const head = body.slice(0, READ_MORE_THRESHOLD); + const rest = body.slice(READ_MORE_THRESHOLD); + return '

' + escapeHtml(s.heading) + '

' + + '

' + escapeHtml(head).replace(/\n/g, '
') + '…

' + + '
' + + 'Les hele klausulen' + + '

' + escapeHtml(rest).replace(/\n/g, '
') + '

' + + '
' + + '
'; + } + return '

' + escapeHtml(s.heading) + '

' + escapeHtml(body).replace(/\n/g, '
') + '

'; }).join(''); - slot.innerHTML = '
' + sectionsHtml + '
'; + const body = '
' + sectionsHtml + '
'; + slot.innerHTML = renderPageShell({ + eyebrow: 'ÅPENHET', + title: data.title || 'Transparensnotis', + lede: data.lede || 'Generert basert på EU AI Act Art. 13/50 og GDPR Art. 13/14.', + verdict: data.verdict || inferVerdict(data, 'text-document'), + keyStats: data.keyStats || inferKeyStats(data, 'text-document') + }, body); } function renderFria(data, slot) {