{"version":3,"file":"landing-D9ASR32e.js","sources":["../../../resources/js/landing.js"],"sourcesContent":["import { Tabs, Tooltip } from 'flowbite';\nimport Swiper from 'swiper';\nimport { Autoplay, EffectFade, Navigation, Pagination } from 'swiper/modules';\nimport '@dotlottie/player-component';\nimport 'swiper/css/bundle';\n\nconst scrollTrigger = 20;\nconst changeColorTrigger = screen.height - 280;\n\nconst navbar = document.getElementById('main-navbar');\nconst topbar = document.getElementById('main-topbar');\n\nwindow.makeNavbarDark = () => {\n navbar.classList.add('dark');\n navbar.classList.remove('light');\n try {\n document.getElementById('nav-left-logo').classList.add('hidden');\n document.getElementById('nav-left-logo-light').classList.remove('hidden');\n } catch (e) {}\n};\n\nwindow.makeNavbarLight = () => {\n navbar.classList.remove('dark');\n navbar.classList.add('light');\n try {\n document.getElementById('nav-left-logo').classList.remove('hidden');\n document.getElementById('nav-left-logo-light').classList.add('hidden');\n } catch (e) {}\n};\n\nwindow.makeTopbarDark = () => {\n topbar.classList.add('dark');\n topbar.classList.remove('light');\n};\n\nwindow.makeTopbarLight = () => {\n topbar.classList.remove('dark');\n topbar.classList.add('light');\n};\n\nwindow.hamburger = false;\n\nwindow.addEventListener('DOMContentLoaded', () => {\n if (window.scrollY >= scrollTrigger || window.pageYOffset >= scrollTrigger) {\n window.makeNavbarLight();\n } else if (!window.hamburger) {\n window.makeNavbarDark();\n }\n});\n\nlet mobileCounted = false;\nlet lastScrollTop;\nconst setNavbarTop = function (event) {\n const bannerWrapper = document.getElementById('message-wrapper-sticky');\n navbar.style.top = bannerWrapper ? bannerWrapper.offsetHeight + 'px' : '0';\n};\nwindow.onscroll = function () {\n let bannerWrapper = document.getElementById('message-wrapper-sticky');\n // We add pageYOffset for compatibility with IE.\n const scrollTop = window.pageYOffset || document.documentElement.scrollTop;\n if (window.scrollY >= scrollTrigger || window.pageYOffset >= scrollTrigger) {\n if (scrollTop > lastScrollTop && !window.hamburger) {\n navbar.style.top = '-80px';\n for (const dropdown of document.querySelectorAll(\n '#main-navbar .dropdown-content',\n )) {\n dropdown.classList.add('hidden');\n }\n } else {\n navbar.style.top = bannerWrapper\n ? bannerWrapper.offsetHeight + 'px'\n : '0';\n for (const dropdown of document.querySelectorAll(\n '#main-navbar .dropdown-content',\n )) {\n dropdown.classList.remove('hidden');\n }\n if (window.scrollY >= changeColorTrigger) {\n window.makeNavbarLight();\n } else {\n window.makeNavbarDark();\n }\n }\n } else {\n window.makeNavbarDark();\n }\n\n if (window.scrollY >= changeColorTrigger) {\n window.makeTopbarLight();\n } else {\n window.makeTopbarDark();\n }\n\n lastScrollTop = scrollTop;\n let mobileCounter = document.getElementById('mobile-counter');\n if (\n window.scrollY >= mobileCounter.getBoundingClientRect().top ||\n window.pageYOffset >= mobileCounter.getBoundingClientRect().top\n ) {\n if (!mobileCounted) {\n counterAnim(\n '#mobile-counter-1',\n 0,\n window['home_page_stats']['students_count'],\n 2000,\n document.dir === 'ltr' ? ',' : '٬',\n );\n counterAnim(\n '#mobile-counter-2',\n 0,\n window['home_page_stats']['teachers_count'],\n 3000,\n document.dir === 'ltr' ? ',' : '٬',\n );\n counterAnim(\n '#mobile-counter-3',\n 0,\n window['home_page_stats']['class_hours'],\n 4000,\n document.dir === 'ltr' ? ',' : '٬',\n );\n counterAnim(\n '#mobile-counter-4',\n 0,\n window['home_page_stats']['submissions_count'],\n 5000,\n document.dir === 'ltr' ? ',' : '٬',\n );\n }\n mobileCounted = true;\n }\n};\n\nnew Swiper('.review-slider-content', {\n modules: [Navigation, Pagination],\n slidesPerView: 3,\n spaceBetween: 24,\n centeredSlides: true,\n loop: true,\n fade: true,\n grabCursor: true,\n pagination: {\n el: '.review-swiper-pagination',\n clickable: 'true',\n },\n navigation: {\n nextEl: '.review-swiper-button-prev',\n prevEl: '.review-swiper-button-next',\n },\n\n breakpoints: {\n 0: {\n slidesPerView: 'auto',\n spaceBetween: 0,\n },\n 950: {\n slidesPerView: 3,\n spaceBetween: 24,\n },\n },\n});\n\nconst featuresSwiper = new Swiper('.feature-slider-content', {\n modules: [Autoplay, EffectFade],\n slidesPerView: 'auto',\n spaceBetween: 0,\n loop: 'true',\n centerSlide: false,\n effect: 'fade',\n fadeEffect: { crossFade: true },\n autoplay: {\n delay: 3000,\n disableOnInteraction: false,\n },\n});\n\nnew Swiper('.blog-swiper', {\n modules: [Navigation],\n spaceBetween: 20,\n grabCursor: true,\n navigation: {\n nextEl: '.blog-swiper-button-prev',\n prevEl: '.blog-swiper-button-next',\n },\n breakpoints: {\n 0: {\n slidesPerView: 'auto',\n spaceBetween: 0,\n },\n 950: {\n slidesPerView: 'auto',\n spaceBetween: 32,\n },\n },\n});\n\nnew IntersectionObserver((entries, observer) => {\n if (entries[0].isIntersecting) {\n featuresSwiper.slideToLoop(0);\n }\n}).observe(document.querySelector('#feature-slider'));\n\nconst enableFeature = (index) => {\n try {\n let featureComponents =\n document.getElementsByClassName('feature-component');\n for (const component of featureComponents) {\n component.classList.remove('active');\n component.getElementsByClassName('feature-progress-bar')[0].style.height =\n '0%';\n }\n let selected = featureComponents[index];\n selected.className += ' active';\n } catch (e) {}\n\n try {\n let mobileFeatureComponents = document.getElementsByClassName(\n 'mobile-feature-component',\n );\n let mobileFeatureProgresses = document.getElementsByClassName(\n 'mobile-feature-progress',\n );\n\n for (const mobileComponent of mobileFeatureComponents) {\n mobileComponent.classList.remove('block');\n mobileComponent.classList.add('hidden');\n }\n for (const progress of mobileFeatureProgresses) {\n progress.getElementsByClassName(\n 'mobile-feature-progress-bar',\n )[0].style.width = '0%';\n }\n\n let mobileSelected = mobileFeatureComponents[index];\n mobileSelected.className += 'block';\n } catch (e) {}\n\n try {\n let featureLotties = document.getElementsByClassName('feature-lottie');\n } catch (e) {}\n};\n\nwindow.setActiveFeature = (index) => {\n featuresSwiper.slideToLoop(index);\n};\nfeaturesSwiper.on('slideChange', function (swiper) {\n enableFeature(swiper.realIndex);\n});\n\nconst setFeatureProgress = (index, percentage) => {\n let featureComponents = document.getElementsByClassName('feature-component');\n let mobileFeatureComponents = document.getElementsByClassName(\n 'mobile-feature-progress',\n );\n const progressBar = featureComponents[index].querySelector(\n '.feature-progress-bar',\n );\n const mobileProgressBar = mobileFeatureComponents[index].querySelector(\n '.mobile-feature-progress-bar',\n );\n progressBar.style.height = 100 - percentage * 100 + '%';\n mobileProgressBar.style.width = 100 - percentage * 100 + '%';\n};\n\nfeaturesSwiper.on('autoplayTimeLeft', function (swiper, timeLeft, percentage) {\n setFeatureProgress(swiper.realIndex, percentage);\n});\n\nvar schoolIconsSwiper = new Swiper('.school-icon-slider-content', {\n modules: [Autoplay],\n loop: true,\n slidesPerView: 'auto',\n spaceBetween: 64,\n speed: 5000,\n autoplay: {\n delay: 1,\n disableOnInteraction: false,\n },\n breakpoints: {\n 0: {\n slidesPerView: 'auto',\n spaceBetween: 8,\n },\n 500: {\n slidesPerView: 'auto',\n spaceBetween: 8,\n },\n 720: {\n loop: true,\n slidesPerView: 'auto',\n spaceBetween: 8,\n },\n 950: {\n loop: true,\n slidesPerView: 'auto',\n spaceBetween: 64,\n },\n },\n});\n\nnew Swiper('.school-name-slider-content', {\n modules: [Autoplay],\n loop: false,\n centeredSlides: false,\n slidesPerView: 'auto',\n loopedSlides: 13,\n spaceBetween: 16,\n speed: 5000,\n autoplay: {\n delay: 1,\n reverseDirection: true,\n disableOnInteraction: false,\n },\n});\n\nString.prototype.toPersianDigit = function (e) {\n return this.replace(/\\d+/g, function (t) {\n let n = [],\n r = [];\n for (let i = 0; i < t.length; i++) {\n n.push(t.charCodeAt(i));\n }\n for (let s = 0; s < n.length; s++) {\n r.push(String.fromCharCode(n[s] + (!!e && e == true ? 1584 : 1728)));\n }\n return r.join('');\n });\n};\nconst counterAnim = (\n qSelector,\n start = 0,\n end,\n duration = 1000,\n thousandSeparator = '',\n) => {\n const target = document.querySelector(qSelector);\n let startTimestamp = null;\n const step = (timestamp) => {\n if (!startTimestamp) startTimestamp = timestamp;\n const progress = Math.min((timestamp - startTimestamp) / duration, 1);\n let newText = Math.floor(progress * (end - start) + start)\n .toString()\n .replace(/\\B(?=(\\d{3})+(?!\\d))/g, thousandSeparator);\n if (document.dir !== 'ltr') {\n newText = newText.toPersianDigit();\n }\n target.innerText = newText;\n if (progress < 1) {\n window.requestAnimationFrame(step);\n }\n };\n window.requestAnimationFrame(step);\n};\n\nwindow.addEventListener('DOMContentLoaded', () => {\n counterAnim(\n '#counter-1',\n 0,\n window['home_page_stats']['students_count'],\n 2000,\n document.dir === 'ltr' ? ',' : '٬',\n );\n\n counterAnim(\n '#counter-2',\n 0,\n window['home_page_stats']['teachers_count'],\n 3000,\n document.dir === 'ltr' ? ',' : '٬',\n );\n\n counterAnim(\n '#counter-3',\n 0,\n window['home_page_stats']['class_hours'],\n 4000,\n document.dir === 'ltr' ? ',' : '٬',\n );\n\n counterAnim(\n '#counter-4',\n 0,\n window['home_page_stats']['submissions_count'],\n 5000,\n document.dir === 'ltr' ? ',' : '٬',\n );\n});\n"],"names":["scrollTrigger","changeColorTrigger","navbar","topbar","mobileCounted","lastScrollTop","bannerWrapper","scrollTop","dropdown","mobileCounter","counterAnim","Swiper","Navigation","Pagination","featuresSwiper","Autoplay","EffectFade","entries","observer","enableFeature","index","featureComponents","component","selected","mobileFeatureComponents","mobileFeatureProgresses","mobileComponent","progress","mobileSelected","featureLotties","swiper","setFeatureProgress","percentage","progressBar","mobileProgressBar","timeLeft","n","r","i","qSelector","start","end","duration","thousandSeparator","target","startTimestamp","step","timestamp","newText"],"mappings":"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"}