OUR SECTORS

INVESTOR RELATIONS

"Pushing boundaries beyond the possible by collectively inspiring, innovating and pioneering pathways that shape the country’s business space."

―• Mr Harsha Amarasekara
Co-Chairman

Annual Report Cover
Key Icon

0

KEY SECTORS

Employees Icon

0

EMPLOYEES

Income Icon

0

INCOME OPPORTUNITIES

PAT Icon

0

PAT

TPM Saving Icon

0

TPM SAVING

Turnover Icon

0

TURNOVER

OUR BRANDS

Brand 1
Brand 2
Brand 3
Brand 4
Brand 4
Brand 5
Brand 6
Brand 7
Brand 8
Brand 8

LATEST STORIES

Story 1
LANKA TILES

LANKA TILES

Discover our stunning designs and exclusive collections at our brand-new showroom in the Maldives.

Story 2
ROCELL TILES

ROYAL CERAMICS

Royal Ceramics Lanka PLC (Rocell) has collaborated with Hansgrohe & AXOR, the world-renowned German brands, synonymous with premium...

Story 3
LB FINANCE

LB FINANCE

Industry giant LB Finance PLC on Wednesday acquired 65% stake in Multi Finance PLC for Rs. 400 million...

${sector.title}

${sector.description}

VIEW BRAND View All Openings Icon
${sector.images.map((image, idx) => `
${image.alt}
`).join('')}
`; // Insert the content into the container sectorContainer.innerHTML = sectorHTML; // Update the progress bar const progress = ((index + 1) / totalSectors) * 100; progressBar.style.width = progress + '%'; // Update navigation buttons updateNavigationButtons(); // Initialize the image slider for the new sector initializeImageSlider(sector.images.length); } function initializeImageSlider(totalImages) { const imageSlider = document.getElementById('imageSlider'); let currentImageIndex = 0; // Clear any existing intervals if (imageSlideInterval) { clearInterval(imageSlideInterval); } // Duplicate the first slide and append it to the end const firstSlideClone = imageSlider.children[0].cloneNode(true); imageSlider.appendChild(firstSlideClone); // Update the total number of slides after adding the clone const totalSlides = totalImages + 1; // Get the width of the slides after they have been rendered const slide = imageSlider.children[0]; const slideStyle = getComputedStyle(slide); const slideWidth = slide.offsetWidth + parseInt(slideStyle.marginRight); // Reset the slider position when initializing imageSlider.style.transform = 'translateX(0px)'; // Function to slide to the next image function slideToNextImage() { currentImageIndex++; const translateX = -currentImageIndex * slideWidth; imageSlider.style.transition = 'transform 0.5s ease-in-out'; imageSlider.style.transform = `translateX(${translateX}px)`; // When reaching the clone, reset to the original slide instantly if (currentImageIndex === totalSlides - 1) { setTimeout(() => { imageSlider.style.transition = 'none'; imageSlider.style.transform = 'translateX(0px)'; currentImageIndex = 0; }, 500); // Match the duration in the CSS transition } } // Start the interval to auto-slide images every 3 seconds imageSlideInterval = setInterval(slideToNextImage, 3000); } function updateNavigationButtons() { const prevBtn = document.getElementById('prevBtn'); const nextBtn = document.getElementById('nextBtn'); // Enable or disable the Previous button prevBtn.disabled = currentSectorIndex === 0; prevBtn.classList.toggle('opacity-50', currentSectorIndex === 0); prevBtn.classList.toggle('cursor-not-allowed', currentSectorIndex === 0); // Enable or disable the Next button nextBtn.disabled = currentSectorIndex === totalSectors - 1; nextBtn.classList.toggle('opacity-50', currentSectorIndex === totalSectors - 1); nextBtn.classList.toggle('cursor-not-allowed', currentSectorIndex === totalSectors - 1); } function renderSectorWithFade(index) { if (isTransitioning) return; isTransitioning = true; const prevBtn = document.getElementById('prevBtn'); const nextBtn = document.getElementById('nextBtn'); // Disable navigation buttons during transition prevBtn.disabled = true; nextBtn.disabled = true; // Add fade-out class to initiate fade-out animation sectorContainer.classList.add('animate-fadeOut'); // Listen for the end of the fade-out animation sectorContainer.addEventListener('animationend', function handler(event) { if (event.target !== sectorContainer) return; // Remove the fade-out class sectorContainer.classList.remove('animate-fadeOut'); // Render the new sector content renderSector(index); // Add fade-in class to initiate fade-in animation sectorContainer.classList.add('animate-fadeIn'); // Listen for the end of the fade-in animation sectorContainer.addEventListener('animationend', function handlerIn(event) { if (event.target !== sectorContainer) return; // Remove the fade-in class sectorContainer.classList.remove('animate-fadeIn'); // Re-enable navigation buttons after transition updateNavigationButtons(); isTransitioning = false; }, { once: true }); }, { once: true }); } // Event listeners for navigation buttons document.getElementById('prevBtn').addEventListener('click', function() { if (currentSectorIndex > 0) { currentSectorIndex--; renderSectorWithFade(currentSectorIndex); } }); document.getElementById('nextBtn').addEventListener('click', function() { if (currentSectorIndex < totalSectors - 1) { currentSectorIndex++; renderSectorWithFade(currentSectorIndex); } }); // Initial render if (totalSectors > 0) { renderSector(currentSectorIndex); } else { sectorContainer.innerHTML = '

No sectors available at this time.

'; } -->