UNPKG

figma-plugin-ds

Version:

A UI library with CSS and vanilla JS that match the Figma UI for building plugins.

52 lines (34 loc) 1.24 kB
const selector = 'disclosure'; //PRIVATE const disclosureHandler = function(event) { let disclosureSet = this.parentNode.parentNode; let disclosuresInSet = disclosureSet.querySelectorAll('li'); let alreadyActive = this.parentNode.classList.contains(selector + '--expanded'); disclosuresInSet.forEach((disclosure) => { disclosure.classList.remove(selector + '--expanded'); }); this.parentNode.classList.add(selector + '--expanded'); if (alreadyActive) { this.parentNode.classList.remove(selector + '--expanded'); } } //PUBLIC const disclosure = { init: function() { let disclosures = document.querySelectorAll('.' + selector + '__label'); if (disclosures) { disclosures.forEach(disclosure => { disclosure.addEventListener('click', disclosureHandler, false); }); } }, destroy: function() { let disclosures = document.querySelectorAll('.' + selector + '__label'); if (disclosures) { disclosures.forEach((disclosure) => { disclosure.removeEventListener('click', disclosureHandler, false); }); } } }; export default disclosure;