/**
* @param {HTMLElement} el
*/
export function AppCollapsible(el) {
let show = true;
setTimeout(() => el.classList.add('-animated'), 200);
el.addEventListener('collapse', (e) => {
if (typeof e.detail === 'boolean') {
show = e.detail;
}
update();
});
el.querySelector('.bar > .toggle').addEventListener('click', () => {
show = !show;
update();
});
update();
function update() {
el.querySelector('.bar > .toggle > .app-icon').classList.toggle(
'-r180',
show,
);
el.querySelectorAll('.body').forEach((el) => {
el.style.height = show ? `${el.children[0].offsetHeight}px` : '0';
});
}
}