Spaces:
Running
Running
// Initialize Mermaid diagrams | |
document.addEventListener('DOMContentLoaded', () => { | |
if (window.mermaid) { | |
mermaid.initialize({ | |
startOnLoad: true, | |
theme: 'neutral', | |
themeVariables: { | |
fontSize: '16px' | |
} | |
}); | |
} | |
}); | |
// Lazy loading for images | |
document.addEventListener('DOMContentLoaded', () => { | |
const images = document.querySelectorAll('img[loading="lazy"]'); | |
if ('loading' in HTMLImageElement.prototype) { | |
images.forEach(img => { | |
img.src = img.dataset.src; | |
}); | |
} else { | |
// Fallback for browsers that don't support lazy loading | |
const script = document.createElement('script'); | |
script.src = 'https://cdnjs.cloudflare.com/ajax/libs/lazysizes/5.3.2/lazysizes.min.js'; | |
document.body.appendChild(script); | |
} | |
}); | |
// Print optimization | |
const optimizePrint = () => { | |
const style = document.createElement('style'); | |
style.textContent = ` | |
@media print { | |
.no-print { display: none !important; } | |
a[href]:after { content: " (" attr(href) ")"; } | |
img { max-width: 500px !important; } | |
} | |
`; | |
document.head.appendChild(style); | |
}; | |
// Initialize all components | |
const initComponents = () => { | |
// Initialize Lottie animations if present | |
if (window.lottie) { | |
document.querySelectorAll('.lottie-player').forEach(player => { | |
if (!player.hasAttribute('data-initialized')) { | |
player.setAttribute('data-initialized', 'true'); | |
// Add any specific Lottie initialization here | |
} | |
}); | |
} | |
}; | |
// Export utilities | |
window.hospitalAI = { | |
optimizePrint, | |
initComponents | |
}; |