1// *** T3SB identifier: bootstrap5-dropdown-ml-hack 2 3 4(function($bs) { 5 const CLASS_NAME = 'has-child-dropdown-show'; 6 $bs.Dropdown.prototype.toggle = function(_orginal) { 7 return function() { 8 document.querySelectorAll('.' + CLASS_NAME).forEach(function(e) { 9 e.classList.remove(CLASS_NAME); 10 }); 11 if (this._element.closest('.dropdown') != null) { 12 let dd = this._element.closest('.dropdown').parentNode.closest('.dropdown'); 13 for (; dd && dd !== document; dd = dd.parentNode.closest('.dropdown')) { 14 dd.classList.add(CLASS_NAME); 15 } 16 } 17 18 return _orginal.call(this); 19 }; 20 }($bs.Dropdown.prototype.toggle); 21 22 document.querySelectorAll('.dropdown').forEach(function(dd) { 23 dd.addEventListener('hide.bs.dropdown', function(e) { 24 if(this.classList.contains(CLASS_NAME)) { 25 this.classList.remove(CLASS_NAME); 26 e.preventDefault(); 27 } 28 e.stopPropagation(); 29 }); 30 }); 31 32 document.querySelectorAll('.dropdown [data-bs-toggle="dropdown"]').forEach(function(dd) { 33 dd.addEventListener('click', function(e) { 34 var navbar = document.getElementById('main-navbar'), 35 clickableparent = navbar.classList.contains('clickableparent') ? 1 : 0, 36 isHover = navbar.classList.contains('navbarHover') ? 1 : 0, 37 href = e.currentTarget.getAttribute('href'); 38 if ( clickableparent && !e.currentTarget.classList.contains('show') ) { 39 if (isHover) { 40 e.preventDefault(); 41 } 42 if(href != '#') { 43 location.href = href; 44 } 45 } 46 }); 47 }); 48 49 function getDropdown(element) {
50 return $bs.Dropdown.getInstance(element) || new $bs.Dropdown(element); 51 } 52 53 document.querySelectorAll('.dropdown-hover, .dropdown-hover-all .dropdown').forEach(function(dd) { 54 dd.addEventListener('mouseenter', function(e) { 55 let toggle = e.target.querySelector(':scope>[data-bs-toggle="dropdown"]'); 56 if (!toggle.classList.contains('show')) { 57 getDropdown(toggle).toggle(); 58 } 59 }); 60 dd.addEventListener('mouseleave', function(e) { 61 let toggle = e.target.querySelector(':scope>[data-bs-toggle="dropdown"]'); 62 if (toggle.classList.contains('show')) { 63 getDropdown(toggle).toggle(); 64 } 65 }); 66 }); 67 68})(bootstrap); 69 70 71// *** T3SB identifier: t3sbootstrapjs 72 73 74// Scroll anchor - Main.html 75function t3sbScrollToAnchor(sectionmenuAnchorOffset, fixedNavbar, navbarHeight, sectionhash=false) { 76 var hash = window.location.hash; 77 if (sectionhash) { 78 hash = sectionhash; 79 } 80 if (hash.length) { 81 var idArr = hash.split('#'); 82 var targetElement = document.getElementById(idArr[1]); 83 if ( targetElement === null ) { 84 idArr = hash.split('#c'); 85 targetElement = document.getElementById('tab-'+idArr[1]); 86 } 87 if ( targetElement != null ) { 88 var offsetSize = sectionmenuAnchorOffset; 89 if ( fixedNavbar ) { 90 offsetSize += navbarHeight; 91 } 92 var scrollTo = Math.round(t3sbOffsetTop(targetElement)-offsetSize); 93 window.scroll({ top: scrollTo, behavior: 'smooth' }); 94 } 95 } 96} 97 98function t3sbOffsetTop(el) { 99 var rect = el.getBoundingClientRect(), 100 scrollTop = window.pageYOffset || document.documentElement.scrollTop; 101 return rect.top + scrollTop; 102} 103 104 105 106// Offcanvas - Navbar/Assets.html 107function t3sbOffcanvas(vw, bp, utilColorArr) { 108 var navbarToggler = document.getElementById('navbarToggler'); 109 if ( vw > bp ) { 110 navbarToggler.classList.remove(utilColorArr[0]); 111 navbarToggler.classList.remove(utilColorArr[1]); 112 } else { 113 navbarToggler.classList.add(utilColorArr[0]); 114 navbarToggler.classList.add(utilColorArr[1]); 115 } 116 let extraRow = document.querySelector('.navbar .extra-row'); 117 if (extraRow) { 118 if ( vw < bp ) { 119 extraRow.classList.add('ms-3'); 120 } else { 121 extraRow.classList.remove('ms-3'); 122 } 123 } 124} 125 126 127 128// Dropdown animate - Navbar/Assets.html 129function t3sbDropdownAnimate(vw, bp, dropdownAnimateValue) { 130 if ( vw < bp ) { 131 document.querySelectorAll('.dd-animate-'+dropdownAnimateValue).forEach(function(dda) { 132 dda.classList.remove('dd-animate-'+dropdownAnimateValue); 133 dda.classList.add('removed-animate-'+dropdownAnimateValue); 134 }); 135 } else { 136 document.querySelectorAll('.removed-animate-'+dropdownAnimateValue).forEach(function(dda) { 137 dda.classList.add('dd-animate-'+dropdownAnimateValue); 138 dda.classList.remove('removed-animate-'+dropdownAnimateValue); 139 }); 140 } 141} 142 143 144 145// Collapsible - Templates/Container/CollapsibleContainer.html 146function t3sbCollapsible(fixedNavbar, navbarHeight) { 147 if ( window.location.hash ) { 148 var idArr = window.location.hash.split('#c'), 149 accordionButton = document.getElementById('c'+idArr[1]); 150 if (accordionButton !== null && accordionButton !== '') { 151 var targetElement = document.getElementById('collapse-'+idArr[1]), 152 collapseTrigger = new bootstrap.Collapse(targetElement), 153 offsetSize = accordionButton.clientHeight; 154 collapseTrigger.show(); 155 if ( fixedNavbar ) { 156 offsetSize += navbarHeight; 157 } 158 var scrollTo = Math.round(t3sbOffsetTop(accordionButton)-offsetSize); 159 window.scroll({ top: scrollTo, behavior: 'smooth' }); 160 } 161 } else { 162 document.querySelectorAll('.accordion').forEach( acc => { 163 var collapse = document.getElementById(acc.id); 164 collapse.addEventListener('shown.bs.collapse', function (e) { 165 if ( e.target) { 166 var offsetSize = e.target.parentNode.querySelector('.accordion-button').clientHeight; 167 if ( fixedNavbar ) { 168 offsetSize += navbarHeight; 169 } 170 var scrollTo = Math.round(t3sbOffsetTop(e.target.parentNode)-offsetSize); 171 window.scroll({ top: scrollTo, behavior: 'smooth' }); 172 } 173 }); 174 }); 175 } 176} 177 178 179 180function ready(fn) { 181 if (document.readyState != 'loading'){ 182fn(); 183 } else { 184document.addEventListener('DOMContentLoaded', fn); 185 } 186} 187ready(() => { 188 // Default - Main.html 189 const navbar = document.getElementById('main-navbar'), 190 navbarHeight = navbar.clientHeight, 191 navbarBreakpointWidth = document.body.getAttribute('data-navbar-breakpointwidth'), 192 viewportWidth = parseFloat(getComputedStyle(document.querySelector('html'), null).width.replace("px", "")), 193 onePageLayout = navbar.classList.contains('sectionMenu'); 194 195 var fixedNavbar = false; 196 if ( navbar.classList.contains('fixed-top') ||Â navbar.classList.contains('sticky-top') ) { 197 fixedNavbar = true; 198 } 199 200 // Scroll anchor - Main.html 201 if (window.location.hash) { 202 t3sbScrollToAnchor(198, fixedNavbar, navbarHeight); 203 } 204 205 206 // Dropdown animate - Navbar/Assets.html 207 t3sbDropdownAnimate(viewportWidth, navbarBreakpointWidth, 1); 208 window.addEventListener('resize', function(event) { 209 resizedViewportWidth = parseFloat(getComputedStyle(document.querySelector('html'), null).width.replace("px", "")); 210 t3sbDropdownAnimate(resizedViewportWidth, navbarBreakpointWidth, 1); 211 }, true); 212 213 214 // Offcanvas - Navbar/Assets.html 215 var navbarBreakpoint = document.body.getAttribute('data-navbar-breakpoint'); 216 var navbarBPWidth = navbarBreakpointWidth, 217 utilColor = 'bg-white', 218 utilColorArr = utilColor.split(' '); 219 if (navbarBreakpoint == 'no') { 220 navbarBPWidth = 99999; 221 } 222 t3sbOffcanvas(viewportWidth, navbarBPWidth, utilColorArr); 223 window.addEventListener('resize', function(event) { 224 resizedViewportWidth = parseFloat(getComputedStyle(document.querySelector('html'), null).width.replace("px", "")); 225 t3sbOffcanvas(resizedViewportWidth, navbarBPWidth, utilColorArr); 226 }, true); 227 228 229 // Navbar mega-menu - Navbar/Assets.html 230 var megaDropdown = document.querySelectorAll('.mega-dropdown'), 231 navbarBreakpointToggler = ''; 232 if ( viewportWidth < navbarBreakpointWidth ) { 233 navbarBreakpointToggler = document.querySelectorAll('.remove-no'); 234 navbarBreakpointToggler.forEach( nbt => { 235 nbt.remove(); 236 }); 237 } else { 238 navbarBreakpointToggler = document.querySelectorAll('.show-no'); 239 navbarBreakpointToggler.forEach( nbt => { 240 nbt.remove(); 241 }); 242 } 243 244 245 // Collapsible - CollapsibleContainer.html 246 var collapse = document.querySelectorAll('.accordion .collapse'); 247 if ( collapse.length ) { 248 t3sbCollapsible(fixedNavbar, navbarHeight); 249 } 250 251}); 252 253
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.