');
// Nur die Auswertung drucken (du kannst hier auch zusätzlich #vizCard anhängen, wenn gewünscht)
doc.write(src.outerHTML);
doc.write('');
doc.close();
// Warten bis alles geladen ist (Bilder/Schriften), dann drucken
const whenReady = () => {
const imgPromises = Array.from(doc.images).map(img =>
img.complete ? Promise.resolve() : new Promise(res => { img.onload = img.onerror = res; })
);
const fontPromise = (doc.fonts && doc.fonts.ready) ? doc.fonts.ready : Promise.resolve();
Promise.all([fontPromise, ...imgPromises]).then(() => {
win.focus();
win.print(); // Nutzer:in kann „Als PDF speichern“ wählen
});
};
if (doc.readyState === 'complete') whenReady();
else win.addEventListener('load', whenReady, { once: true });
});
shareBtn?.addEventListener('click', async () => {
const url = shareURLFromState(readState());
try{
if (navigator.share) {
await navigator.share({title:'Finanztipps', url});
} else if (navigator.clipboard?.writeText) {
await navigator.clipboard.writeText(url);
alert('Link in die Zwischenablage kopiert:\n' + url);
} else {
prompt('Link kopieren:', url);
}
}catch(e){
console.error(e);
alert('Konnte den Link nicht teilen.');
}
});
// URL-Parameter übernehmen (optional)
try{
const q = new URLSearchParams(location.search);
if (q.size){
applyState({
pg: q.get('pg') ?? undefined,
pf: q.get('pf') ?? undefined,
wer: q.get('wer') ?? undefined,
sach: q.get('sach') ?? undefined,
restEB: q.get('restEB') === 'true',
beratung373: q.get('beratung373') === 'true',
barriereBad: q.get('barriereBad') === 'true',
mobilEing: q.get('mobilEing') === 'true',
demenz: q.get('demenz') === 'true'
},
{ render: true }
);
}
}catch(_){}
});
})();