(function () { 'use strict'; function fallbackCopy(text) { const input = document.createElement('textarea'); input.value = text; input.setAttribute('readonly', 'readonly'); input.style.position = 'fixed'; input.style.left = '-9999px'; document.body.appendChild(input); input.select(); try { document.execCommand('copy'); } finally { document.body.removeChild(input); } } function copyText(text) { if (navigator.clipboard && navigator.clipboard.writeText) { return navigator.clipboard.writeText(text); } fallbackCopy(text); return Promise.resolve(); } function showCopied(button) { const original = button.dataset.copyLabel || button.textContent; const copied = button.dataset.copiedLabel || 'Copied'; button.textContent = copied; window.setTimeout(function () { button.textContent = original; }, 1400); } document.addEventListener('DOMContentLoaded', function () { document.querySelectorAll('.js-copy-button').forEach(function (button) { button.addEventListener('click', function () { let text = button.dataset.copyText || ''; const targetId = button.dataset.copyTarget || ''; const target = targetId ? document.getElementById(targetId) : null; if (target) { text = target.value || target.textContent || ''; } copyText(text).then(function () { showCopied(button); }); }); }); }); }());