mirror of https://github.com/docusealco/docuseal
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.
30 lines
1.0 KiB
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()
|
|
}
|
|
}
|
|
})
|