/* eslint-disable no-useless-escape */ window.CUSDIS = {} let cusdisIframe function createIframe(targetElement) { if (!cusdisIframe) { cusdisIframe = document.createElement('iframe') setupIframe(cusdisIframe, targetElement) } cusdisIframe.srcdoc = generateIframeContent(targetElement) cusdisIframe.style.width = '100%' cusdisIframe.style.border = '0' } function setupIframe(iframe, targetElement) { const colorSchemeMediaQuery = window.matchMedia('(prefers-color-scheme: dark)') const messageHandler = event => { try { const message = JSON.parse(event.data) if (message.from === 'cusdis') { switch (message.event) { case 'onload': if (targetElement.dataset.theme === 'auto') { setTheme(colorSchemeMediaQuery.matches ? 'dark' : 'light') } break case 'resize': iframe.style.height = message.data + 'px' break } } } catch (error) {} } const colorSchemeChangeHandler = e => { const isDarkMode = e.matches if (targetElement.dataset.theme === 'auto') { setTheme(isDarkMode ? 'dark' : 'light') } } window.addEventListener('message', messageHandler) colorSchemeMediaQuery.addEventListener('change', colorSchemeChangeHandler) } function generateIframeContent(element) { const cusdisHost = element.dataset.host || 'https://cusdis.com' const iframeSrc = element.dataset.iframe || `${cusdisHost}/js/iframe.umd.js` return `