document.querySelectorAll('[data-password-field]').forEach((field) => { const toggle = field.querySelector('[data-password-toggle]'); const value = field.querySelector('[data-password-value]'); const copy = field.querySelector('[data-clipboard-text]'); if (!toggle || !value || !copy) return; toggle.hidden = false; toggle.addEventListener('click', () => { const reveal = toggle.getAttribute('aria-pressed') !== 'true'; value.textContent = reveal ? copy.dataset.clipboardText : '••••••••'; value.setAttribute('aria-label', reveal ? '密码' : '密码已隐藏'); toggle.setAttribute('aria-pressed', String(reveal)); toggle.setAttribute('aria-label', `${reveal ? '隐藏' : '显示'}第${toggle.dataset.accountNumber}个账号的密码`); }); }); document.querySelectorAll('[data-apple-id-layout]').forEach((section) => { const filter = section.querySelector('[data-apple-id-filter]'); const select = filter?.querySelector('select'); const count = section.querySelector('[data-apple-id-count]'); const cards = Array.from(section.querySelectorAll('[data-apple-id-card]')); if (!select || !count || !cards.length) return; const update = () => { let shown = 0; cards.forEach((card) => { card.hidden = select.value !== '' && card.dataset.region !== select.value; if (!card.hidden) shown += 1; }); count.textContent = `${shown} 个`; }; select.addEventListener('change', update); filter.hidden = false; update(); });