import { assertNotNull } from './utils/assert'; import { delegate, leftClick } from './utils/events'; import { clearEl, makeEl } from './utils/dom'; function insertCaptcha(_event: Event, target: HTMLInputElement) { const parentElement = assertNotNull(target.parentElement); const script = makeEl('script', { src: 'https://hcaptcha.com/1/api.js', async: true, defer: true }); const frame = makeEl('div', { className: 'h-captcha' }); frame.dataset.sitekey = target.dataset.sitekey; clearEl(parentElement); parentElement.insertAdjacentElement('beforeend', frame); parentElement.insertAdjacentElement('beforeend', script); } export function bindCaptchaLinks() { delegate(document, 'click', { '.js-captcha': leftClick(insertCaptcha) }); }