1 import {slideDown, slideUp} from "../services/animations";
5 * Provides some simple logic to allow collapsible sections.
11 this.trigger = elem.querySelector('[collapsible-trigger]');
12 this.content = elem.querySelector('[collapsible-content]');
14 if (!this.trigger) return;
15 this.trigger.addEventListener('click', this.toggle.bind(this));
16 this.openIfContainsError();
20 this.elem.classList.add('open');
21 this.trigger.setAttribute('aria-expanded', 'true');
22 slideDown(this.content, 300);
26 this.elem.classList.remove('open');
27 this.trigger.setAttribute('aria-expanded', 'false');
28 slideUp(this.content, 300);
32 if (this.elem.classList.contains('open')) {
39 openIfContainsError() {
40 const error = this.content.querySelector('.text-neg');
48 export default Collapsible;