27 lines
852 B
JavaScript
27 lines
852 B
JavaScript
class DisclosuresContent extends HTMLElement {
|
|
constructor() {
|
|
super();
|
|
this.addEventListener('click', (event) => {
|
|
if (event.target.closest('.disclosures-item__content')) return;
|
|
if (
|
|
event.target.closest('.disclosures-item__header') &&
|
|
event.target !== event.target.closest('.disclosures-item__header')
|
|
)
|
|
return;
|
|
|
|
const item = event.target.closest('.disclosures-item');
|
|
if (item) {
|
|
const content = item.querySelector('.disclosures-item__content');
|
|
if (content && event.clientX <= content.getBoundingClientRect().right) return;
|
|
}
|
|
|
|
const details = this.closest('details');
|
|
if (details) details.removeAttribute('open');
|
|
});
|
|
}
|
|
}
|
|
|
|
if (!customElements.get('disclosures-content')) {
|
|
customElements.define('disclosures-content', DisclosuresContent);
|
|
}
|