63 lines
1.7 KiB
JavaScript
63 lines
1.7 KiB
JavaScript
(() => {
|
|
const header = document.querySelector("#header");
|
|
|
|
// Extract Logo
|
|
const logoEl = header.querySelector(".vc-headerlogo img");
|
|
const logo = {
|
|
src: logoEl ? logoEl.src : '',
|
|
alt: logoEl ? logoEl.alt : '',
|
|
};
|
|
|
|
const customContentBlock = header.querySelector(".custom-content-block.custom-content-header-1 > .content");
|
|
const customContentHeader = customContentBlock ? customContentBlock.innerHTML : '';
|
|
|
|
function extractMenuTree(ulElement) {
|
|
if (!ulElement) return [];
|
|
|
|
const listItems = Array.from(ulElement.children).filter(el => el.tagName === 'LI');
|
|
|
|
return listItems.map(li => {
|
|
const link = li.querySelector(":scope > a");
|
|
|
|
const itemData = {
|
|
text: link ? link.textContent.trim() : '',
|
|
href: link ? link.href : ''
|
|
};
|
|
|
|
const subMenu = li.querySelector(":scope > ul[role='menu']");
|
|
if (subMenu) {
|
|
itemData.sublinks = extractMenuTree(subMenu);
|
|
}
|
|
|
|
return itemData;
|
|
});
|
|
}
|
|
|
|
const rootMenu = header.querySelector("#menu #menucategories nav ul[role='menu']");
|
|
const menuData = extractMenuTree(rootMenu);
|
|
|
|
const menuTop = header.querySelector("#menutop ul[role='menu']");
|
|
const menuTopLinks = menuTop.querySelectorAll("li > a");
|
|
const menuTopData = Array.from(menuTopLinks).map(link => ({
|
|
text: link.textContent.trim(),
|
|
href: link.href
|
|
}));
|
|
|
|
const itemCountBasket = parseInt(header.querySelector("#basketinfo .vc-basketinfoextended-numberofitems").textContent) || 0;
|
|
|
|
const basket = {
|
|
itemCount: itemCountBasket,
|
|
link: header.querySelector("#basketinfo .vc-basketinfoextended-header").href || '/kosik'
|
|
}
|
|
|
|
return {
|
|
logo,
|
|
customContentHeader,
|
|
menu: {
|
|
top: menuTopData,
|
|
main: menuData
|
|
},
|
|
basket,
|
|
};
|
|
})();
|