document.body.addEventListener('htmx:responseError', (event) => { const target = event.detail.target; if (target) { target.innerHTML = '
$1');
}
function isMarkdownTable(lines, index) {
if (index + 1 >= lines.length) {
return false;
}
return lines[index].trim().startsWith('|')
&& lines[index + 1].trim().startsWith('|')
&& /^\|?\s*:?-{3,}:?\s*(\|\s*:?-{3,}:?\s*)+\|?$/.test(lines[index + 1].trim());
}
function splitMarkdownTableRow(line) {
return line.trim()
.replace(/^\|/, '')
.replace(/\|$/, '')
.split('|')
.map((cell) => cell.trim());
}
function renderMarkdownTable(lines, start) {
const headers = splitMarkdownTableRow(lines[start]);
let cursor = start + 2;
const rows = [];
while (cursor < lines.length && lines[cursor].trim().startsWith('|')) {
rows.push(splitMarkdownTableRow(lines[cursor]));
cursor += 1;
}
const headerHtml = headers.map((cell) => `${renderInlineMarkdown(trimmed)}
`); } closeList(); return html.join(''); } function renderMarkdownViews(root = document) { root.querySelectorAll('[data-markdown-view]').forEach((view) => { if (view.dataset.rendered === 'true') { return; } view.innerHTML = renderMarkdownText(view.textContent || ''); view.dataset.rendered = 'true'; }); } function filterUserRoleDetail() { const master = document.getElementById('userRoleMaster'); const table = document.getElementById('userRoleDetail'); if (!master || !table) { return; } const selected = master.value; let shown = 0; table.querySelectorAll('tbody tr[data-user-id]').forEach((row) => { const visible = row.dataset.userId === selected; row.hidden = !visible; shown += visible ? 1 : 0; }); let empty = table.querySelector('tbody tr.empty-user-role-runtime'); if (!empty) { empty = document.createElement('tr'); empty.className = 'empty-user-role-runtime'; empty.innerHTML = '