// Kopiowanie do schowka dla przycisków [data-copy="#selektor"]. // clipboard API wymaga secure context (https/localhost), a aplikacja bywa serwowana // po http:// — dlatego jest awaryjne przejście na zaznaczenie + execCommand. document.addEventListener('click', function (e) { const btn = e.target.closest('[data-copy]'); if (!btn) return; const src = document.querySelector(btn.getAttribute('data-copy')); if (!src) return; const done = ok => { const label = btn.textContent; btn.textContent = ok ? 'Skopiowano ✓' : 'Nie udało się — zaznacz i skopiuj ręcznie'; setTimeout(() => { btn.textContent = label; }, 2500); }; const text = src.value !== undefined ? src.value : src.textContent; if (navigator.clipboard && window.isSecureContext) { navigator.clipboard.writeText(text).then(() => done(true), () => done(false)); return; } // awaryjnie: zaznacz zawartość i spróbuj starym poleceniem try { src.focus(); if (src.select) src.select(); done(document.execCommand('copy')); } catch (err) { done(false); } });