You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
docuseal/app/javascript/elements/toggle_visible.js

30 lines
1.0 KiB

import { actionable } from '@github/catalyst/lib/actionable'
export default actionable(class extends HTMLElement {
trigger (event) {
const elementIds = JSON.parse(this.dataset.elementIds)
if (event.target.type === 'checkbox') {
elementIds.forEach((elementId) => {
const el = document.getElementById(elementId)
if (!el) return
el.classList.toggle('hidden')
el.setAttribute('aria-hidden', el.classList.contains('hidden') ? 'true' : 'false')
})
event.target.setAttribute('aria-expanded', event.target.checked ? 'true' : 'false')
} else {
elementIds.forEach((elementId) => {
const el = document.getElementById(elementId)
if (!el) return
const hide = (event.target.dataset.toggleId || event.target.value) !== elementId
el.classList.toggle('hidden', hide)
el.setAttribute('aria-hidden', hide ? 'true' : 'false')
})
}
if (this.dataset.focusId) {
document.getElementById(this.dataset.focusId)?.focus()
}
}
})