34 lines
1.6 KiB
JavaScript
34 lines
1.6 KiB
JavaScript
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();
|
|
});
|