/** * Přednačte pdf.js do window.pdfjsLib, aby PDFlipbook nemusel dělat dynamic import(). * Nejdřív lokální soubor, při chybě Apache/MIME/CORS fallback na CDN (stejná verze 4.10.38). */ const localSrc = new URL('./pdf.min.mjs', import.meta.url).href; const localWorker = new URL('./pdf.worker.min.mjs', import.meta.url).href; const cdnSrc = 'https://cdnjs.cloudflare.com/ajax/libs/pdf.js/4.10.38/pdf.min.mjs'; const cdnWorker = 'https://cdnjs.cloudflare.com/ajax/libs/pdf.js/4.10.38/pdf.worker.min.mjs'; function unwrap(lib) { if (lib && typeof lib.getDocument === 'function') { return lib; } if (lib && lib.default && typeof lib.default.getDocument === 'function') { return lib.default; } if (globalThis.pdfjsLib && typeof globalThis.pdfjsLib.getDocument === 'function') { return globalThis.pdfjsLib; } throw new Error('pdf.js loaded but did not expose getDocument'); } async function loadFrom(src, worker) { const lib = unwrap(await import(/* @vite-ignore */ src)); lib.GlobalWorkerOptions.workerSrc = worker; globalThis.pdfjsLib = lib; } try { await loadFrom(localSrc, localWorker); } catch (localError) { console.warn('Lokální pdf.js se nepodařilo načíst, zkouším CDN.', localError); await loadFrom(cdnSrc, cdnWorker); } globalThis.dispatchEvent(new Event('pdfjs-ready'));