1 2// Scroll anchor - Main.html 3function t3sbScrollToAnchor(sectionmenuAnchorOffset, fixedNavbar, navbarHeight, sectionhash=false) { 4 var hash = window.location.hash; 5 if (sectionhash) { 6 hash = sectionhash; 7 } 8 if (hash.length) { 9 var idArr = hash.split('#'); 10 var targetElement = document.getElementById(idArr[1]); 11 if ( targetElement === null ) { 12 idArr = hash.split('#c'); 13 targetElement = document.getElementById('tab-'+idArr[1]); 14 } 15 if ( targetElement != null ) { 16 var offsetSize = sectionmenuAnchorOffset; 17 if ( fixedNavbar ) { 18 offsetSize += navbarHeight; 19 } 20 var scrollTo = Math.round(t3sbOffsetTop(targetElement)-offsetSize); 21 window.scroll({ top: scrollTo, behavior: 'smooth' }); 22 } 23 } 24} 25 26function t3sbOffsetTop(el) { 27 var rect = el.getBoundingClientRect(), 28 scrollTop = window.pageYOffset || document.documentElement.scrollTop; 29 return rect.top + scrollTop; 30} 31 32 33 34// Loading spinner - Main.html 35function t3sbFadeOutEffect(fadeTarget) { 36 var fadeEffect = setInterval(function () { 37 if (!fadeTarget.style.opacity) { 38 fadeTarget.style.opacity = 1; 39 } 40 if (fadeTarget.style.opacity > 0) { 41 fadeTarget.style.opacity -= 0.1; 42 } else { 43 clearInterval(fadeEffect); 44 } 45 }, 60); 46 fadeTarget.classList.add('d-none'); 47} 48 49 50 51// Link to top - Main.html 52function t3sbScrollToTop() { 53 document.addEventListener('scroll', t3sbHandleScroll); 54} 55 56function t3sbHandleScroll() { 57 var scrollToTopBtn = document.querySelector('.back-to-top'), 58 scrollTop = window.pageYOffset || document.documentElement.scrollTop; 59 if (scrollToTopBtn != null) { 60 scrollToTopBtn.addEventListener('click', t3sbScrollIt); 61 if (scrollTop > 100) { 62 scrollToTopBtn.classList.add('st-block'); 63 scrollToTopBtn.classList.remove('st-none'); 64 } else { 65 scrollToTopBtn.classList.add('st-none'); 66 scrollToTopBtn.classList.remove('st-block'); 67 } 68 } 69} 70 71function t3sbScrollIt(e) { 72 e.preventDefault(); 73 window.scroll({ top: 0, behavior: 'smooth' }); 74} 75 76 77 78// Shrinking Navbar on scrolling - Navbar/Assets.html 79function t3sbShrinkingNavbar(navbar, padding) { 80 let navShrinkColorschemes = navbar.getAttribute('data-shrinkcolorschemes'), 81 navShrinkColor = 'navbar-'+navbar.getAttribute('data-shrinkcolor'), 82 navColorschemes = navbar.getAttribute('data-colorschemes'), 83 navColor = navbar.getAttribute('data-color'), 84 gradient = navShrinkColorschemes.split(' '); 85 if (gradient[1]) { 86 navShrinkColorschemes = gradient[0]; 87 } 88 window.addEventListener('scroll', function() { 89 if (navColor == navShrinkColor) { 90 if ( t3sbOffsetTop(navbar) > 100) { 91 navbar.classList.remove('py-'+padding, navColorschemes); 92 navbar.classList.add('navbar-shrink', navShrinkColorschemes); 93 } else { 94 navbar.classList.add('py-'+padding, navColorschemes); 95 navbar.classList.remove('navbar-shrink', navShrinkColorschemes); 96 } 97 } else { 98 if ( t3sbOffsetTop(navbar) > 100) { 99 navbar.classList.remove('py-'+padding, navColorschemes, navColor); 100 navbar.classList.add('navbar-shrink', navShrinkColor, navShrinkColorschemes); 101 } else { 102 navbar.classList.add('py-'+padding, navColorschemes, navColor); 103 navbar.classList.remove('navbar-shrink', navShrinkColor, navShrinkColorschemes); 104 } 105 } 106 }); 107} 108 109 110 111// Extra Row - Navbar/Assets.html 112function t3sbExtraRow(vw, bp) { 113 let extraRow = document.querySelector('.navbar .extra-row'); 114 if (extraRow) { 115 if ( vw < bp ) { 116 extraRow.classList.add('flex-row','me-auto','mt-4','mb-0'); 117 extraRow.classList.remove('ms-auto'); 118 } else { 119 extraRow.classList.remove('flex-row','me-auto','mt-4','mb-0'); 120 extraRow.classList.add('ms-auto'); 121 } 122 } 123} 124 125 126 127// Offcanvas - Navbar/Assets.html 128function t3sbOffcanvas(vw, bp, utilColorArr) { 129 var navbarToggler = document.getElementById('navbarToggler'); 130 if ( vw > bp ) { 131 navbarToggler.classList.remove(utilColorArr[0]); 132 navbarToggler.classList.remove(utilColorArr[1]); 133 } else { 134 navbarToggler.classList.add(utilColorArr[0]); 135 navbarToggler.classList.add(utilColorArr[1]); 136 } 137 let extraRow = document.querySelector('.navbar .extra-row'); 138 if (extraRow) { 139 if ( vw < bp ) { 140 extraRow.classList.add('ms-3'); 141 } else { 142 extraRow.classList.remove('ms-3'); 143 } 144 } 145} 146 147 148 149function ready(fn) { 150 if (document.readyState != 'loading'){ 151fn(); 152 } else { 153document.addEventListener('DOMContentLoaded', fn); 154 } 155} 156ready(() => { 157 // Default - Main.html 158 const navbar = document.getElementById('main-navbar'), 159 navbarHeight = navbar.clientHeight, 160 navbarBreakpointWidth = document.body.getAttribute('data-navbar-breakpointwidth'), 161 viewportWidth = parseFloat(getComputedStyle(document.querySelector('html'), null).width.replace("px", "")), 162 onePageLayout = navbar.classList.contains('sectionMenu'); 163 164 var fixedNavbar = false;
165 166 if ( navbar.classList.contains('fixed-top') ||Â navbar.classList.contains('sticky-top') ) { 167 fixedNavbar = true; 168 } 169 170 // Scroll anchor - Main.html 171 if (window.location.hash) { 172 t3sbScrollToAnchor(0, fixedNavbar, navbarHeight); 173 } 174 175 176 // Loading spinner - Main.html 177 window.onload = function() { 178 let spinner = document.getElementById('site-preloader'); 179 t3sbFadeOutEffect(spinner); 180 }; 181 182 183 // Link to top - Main.html 184 t3sbScrollToTop(); 185 186 187 // Extra row - Navbar/Assets.html 188 t3sbExtraRow(viewportWidth, navbarBreakpointWidth); 189 window.addEventListener('resize', function(event) { 190 resizedViewportWidth = parseFloat(getComputedStyle(document.querySelector('html'), null).width.replace("px", "")); 191 t3sbExtraRow(resizedViewportWidth, navbarBreakpointWidth); 192 }, true); 193 194 195 // No justify on mobile - Navbar/Assets.html 196 if ( viewportWidth < navbarBreakpointWidth ) { 197 navbar.querySelector('.main-navbarnav').classList.remove('nav-fill', 'w-100'); 198 } 199 200 201 // Offcanvas - Navbar/Assets.html 202 var navbarBreakpoint = document.body.getAttribute('data-navbar-breakpoint'); 203 var navbarBPWidth = navbarBreakpointWidth, 204 utilColor = 'bg-light', 205 utilColorArr = utilColor.split(' '); 206 if (navbarBreakpoint == 'no') { 207 navbarBPWidth = 99999; 208 } 209 t3sbOffcanvas(viewportWidth, navbarBPWidth, utilColorArr); 210 window.addEventListener('resize', function(event) { 211 resizedViewportWidth = parseFloat(getComputedStyle(document.querySelector('html'), null).width.replace("px", "")); 212 t3sbOffcanvas(resizedViewportWidth, navbarBPWidth, utilColorArr); 213 }, true); 214 215 216 // Shrinking Navbar on scrolling - Navbar/Assets.html 217 t3sbShrinkingNavbar(navbar, 1); 218 219});
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.