pakt-api
Version:
This is a API HTML Documentation Generator
64 lines (63 loc) • 2.98 kB
JavaScript
const addEvent = (id, event) => {
const element = document.getElementById(id);
element.addEventListener(event);
element.removeAttribute('id');
};
const initCollapsible = () => {
const routeDescribers = document.getElementsByClassName('route-describer');
const collapsible = document.getElementsByClassName('collapsible');
for (let i = 0; i < routeDescribers.length; i++) {
const routeDescriber = routeDescribers[i];
const collapser = routeDescriber.getElementsByClassName('collapser')[0];
collapser.addEventListener('click', () => {
const content = routeDescriber.getElementsByClassName('collapsible')[0];
const newValue = content.style.display === 'block' ? 'none' : 'block';
for (let j = 0; j < collapsible.length; j++) {
const content = collapsible[j];
content.style.display = 'none';
}
content.style.display = newValue;
});
}
const menuContents = document.getElementsByClassName('menu-content');
Array.from(menuContents).forEach(menuContent => {
const tabs = menuContent.getElementsByTagName('li');
for (let i = 0; i < tabs.length; i++) {
const tab = tabs[i];
tab.addEventListener('click', () => {
Array.from(tabs).forEach(tabulation => tabulation.classList.remove('is-active'));
tab.classList.toggle('is-active');
const activeTab = tab.getAttribute('data-index');
const tabsPanel = menuContent.getElementsByClassName('tabs-panel')[0];
Array.from(tabsPanel.children).forEach(tabPanel => {
if (tabPanel.getAttribute('data-index') === activeTab)
tabPanel.style.display = 'block';
else
tabPanel.style.display = 'none';
});
});
}
});
const menuContainers = document.getElementsByClassName('menu-container');
Array.from(menuContainers).forEach(menuContainer => {
const menuList = menuContainer.getElementsByClassName('menu-list')[0];
const menuItems = menuList.getElementsByTagName('li');
Array.from(menuItems).forEach(menuItem => {
menuContainer.getElementsByClassName('menu-content')[0].style.display = 'block';
menuItem.addEventListener('click', () => {
const menucontents = menuContainer.getElementsByClassName('menu-content');
Array.from(menucontents).forEach(menucontent => {
if (menucontent.getAttribute('data-index') === menuItem.getAttribute('data-index'))
menucontent.style.display = 'block';
else
menucontent.display = 'none';
});
});
});
});
};
const initialize = () => {
initCollapsible();
};
window.onload = initialize;
;