Merge branch 'module/spreadsheet' into dev
All checks were successful
Build Docker Image / Docker-Build (push) Successful in 3m39s
Build Docker Image / Clean-Registry (push) Successful in -11s

This commit is contained in:
2026-03-25 09:11:28 +01:00

View File

@@ -1,5 +1,7 @@
<script> <script>
import { onMount, onDestroy } from 'svelte'; import { onMount, onDestroy } from 'svelte';
import { t } from '../translations.svelte';
let { classes='markdown', markdown=$bindable({source:'',rendered:''}), onclick = null, oncontextmenu = null, title='', wrapper = 'div' } = $props(); let { classes='markdown', markdown=$bindable({source:'',rendered:''}), onclick = null, oncontextmenu = null, title='', wrapper = 'div' } = $props();
let jspreadsheet = null; let jspreadsheet = null;
const regex = /@startsheet[\s\S]*?@endsheet/g; const regex = /@startsheet[\s\S]*?@endsheet/g;
@@ -29,15 +31,17 @@
if (!markdown.rendered) return; if (!markdown.rendered) return;
let sheets = document.getElementsByClassName('spreadsheet'); let sheets = document.getElementsByClassName('spreadsheet');
for (let i = 0; i < sheets.length; i++) { for (let i = 0; i < sheets.length; i++) {
let sheet = sheets[i];
let raw = sheet.innerHTML.trim();
if (!jspreadsheet) { if (!jspreadsheet) {
sheet.innerHTML = t('Loading spreadsheet library…');
let module = await import('jspreadsheet-ce'); // path or package name let module = await import('jspreadsheet-ce'); // path or package name
await import('jspreadsheet-ce/dist/jspreadsheet.css'); await import('jspreadsheet-ce/dist/jspreadsheet.css');
jspreadsheet = module.default ?? module; jspreadsheet = module.default ?? module;
} }
if (!jspreadsheet) break; // break loop if library fails to load if (!jspreadsheet) break; // break loop if library fails to load
sheet.innerHTML = t('Processing spreadsheet data…');
let sheet = sheets[i];
let raw = sheet.innerHTML.trim();
// Use parseCSV from the helpers // Use parseCSV from the helpers
const parsed = jspreadsheet.helpers.parseCSV(raw, '|'); const parsed = jspreadsheet.helpers.parseCSV(raw, '|');