function updateSidebarControls(currentSidebarSize) { switch (currentSidebarSize) { case 'small': expandButton.style.display = ''; collapseButton.style.display = 'none'; break; case 'medium': expandButton.style.display = ''; collapseButton.style.display = ''; break; case 'large': expandButton.style.display = 'none'; collapseButton.style.display = ''; break; } } function setSidebarSize(size) { sidebar.classList.remove('small', 'medium', 'large'); sidebar.classList.add(size); sidebarState = size; updateSidebarControls(sidebarState); } document.addEventListener('DOMContentLoaded', () => { const categories = document.querySelectorAll('.category'); const itemCategories = document.querySelectorAll('.item-list > div'); categories.forEach(category => { category.addEventListener('click', () => { categories.forEach(cat => cat.classList.remove('selected')); itemCategories.forEach(itemCat => { itemCat.classList.add('hidden'); }); const target = category.getAttribute('data-target'); const selectedCategory = document.querySelector(target); if (target === ".painting-category" || target === ".flooring-category") { switchOnWallpaintMode(); }else{ switchOffWallpaintMode(); } if (target === ".materials-category") { requestUsedMaterials(); } else if (target === ".windows-doors-category"){ requestWindowAndDoorObjectKeys(); } else if (target === ".items-category"){ requestObjectsKeys(); } else { if (selectedCategory) { selectedCategory.classList.remove('hidden'); } } category.classList.add('selected'); }); }); }); expandButton.addEventListener('click', () => { if (sidebarState === 'small') { setSidebarSize('medium'); } else if (sidebarState === 'medium') { setSidebarSize('large'); } }); collapseButton.addEventListener('click', () => { if (sidebarState === 'large') { setSidebarSize('medium'); } else if (sidebarState === 'medium') { setSidebarSize('small'); } }); itemsWindows.forEach(item => { item.addEventListener('dragstart', (e) => { currentDraggingId = item.getAttribute('data-id'); areObjectButtonsHidden = true; hasObjectBeenCreated = false; e.dataTransfer.setData('text/plain', currentDraggingId); e.dataTransfer.setDragImage(emptyImg, 0, 0); draggedImage.style.display = ''; draggedImage.style.left = `${e.pageX - 50}px`; draggedImage.style.top = `${e.pageY - 50}px`; }); item.addEventListener('dragend', () => { hideDraggedImage(); }); item.addEventListener("click", () => { let clickedItem = item.getAttribute('data-id'); applicationInstance.SendMessage('ApplicationAPI', 'Create', `0;0;0;${clickedItem}`); }); });