PageSourceSearch

https://karree-eifel.de/typo3temp/assets/t3sbootstrap_e30cd9d645.js?1722466277

js karree-eifel.de collected 2026-10-09 01:19:41 UTC 7,708 bytes, 250 lines download raw bytes

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// Link to top - Main.html
35function t3sbScrollToTop() {
36	document.addEventListener('scroll', t3sbHandleScroll);
37}
38
39function t3sbHandleScroll() {
40	var scrollToTopBtn = document.querySelector('.back-to-top'),
41		scrollTop = window.pageYOffset || document.documentElement.scrollTop;
42	if (scrollToTopBtn != null) {
43		scrollToTopBtn.addEventListener('click', t3sbScrollIt);
44		if (scrollTop > 100) {
45			scrollToTopBtn.classList.add('st-block');
46			scrollToTopBtn.classList.remove('st-none');
47		} else {
48			scrollToTopBtn.classList.add('st-none');
49			scrollToTopBtn.classList.remove('st-block');
50		}
51	}
52}
53
54function t3sbScrollIt(e) {
55	e.preventDefault();
56	window.scroll({ top: 0, behavior: 'smooth' });
57}
58	
59
60
61// Sticky footer - Page/Footer.html
62function t3sbStickyFooter(footerExtraHeight) {
63	const footer = document.getElementById('page-footer');
64	var footerHeight = footer.offsetHeight -2;
65	if ( footerExtraHeight > 0 ) {
66		footerHeight += footerExtraHeight;
67	}
68	if ( footer.classList.contains('footer-sticky') ) {
69		document.body.style.paddingBottom = footerHeight+'px';
70	}
71}
72	
73
74
75// Extra Row - Navbar/Assets.html
76function t3sbExtraRow(vw, bp) {
77	let extraRow = document.querySelector('.navbar .extra-row');
78	if (extraRow) {
79		if ( vw < bp ) {
80			extraRow.classList.add('flex-row','me-auto','mt-4','mb-0');
81			extraRow.classList.remove('ms-auto');
82		} else {
83			extraRow.classList.remove('flex-row','me-auto','mt-4','mb-0');
84			extraRow.classList.add('ms-auto');
85		}
86	}
87}
88	
89
90
91// Offcanvas - Navbar/Assets.html
92function t3sbOffcanvas(vw, bp, utilColorArr) {
93	var navbarToggler = document.getElementById('navbarToggler');
94	if ( vw > bp ) {
95		navbarToggler.classList.remove(utilColorArr[0]);
96		navbarToggler.classList.remove(utilColorArr[1]);
97	} else {
98		navbarToggler.classList.add(utilColorArr[0]);
99		navbarToggler.classList.add(utilColorArr[1]);
100	}
101	let extraRow = document.querySelector('.navbar .extra-row');
102	if (extraRow) {
103		if ( vw < bp ) {
104			extraRow.classList.add('ms-3');
105		} else {
106			extraRow.classList.remove('ms-3');
107		}
108	}
109}
110	
111
112
113// Dropdown animate - Navbar/Assets.html
114function t3sbDropdownAnimate(vw, bp, dropdownAnimateValue) {
115	if ( vw < bp ) {
116		document.querySelectorAll('.dd-animate-'+dropdownAnimateValue).forEach(function(dda) {
117			dda.classList.remove('dd-animate-'+dropdownAnimateValue);
118			dda.classList.add('removed-animate-'+dropdownAnimateValue);
119		});
120	} else {
121		document.querySelectorAll('.removed-animate-'+dropdownAnimateValue).forEach(function(dda) {
122			dda.classList.add('dd-animate-'+dropdownAnimateValue);
123			dda.classList.remove('removed-animate-'+dropdownAnimateValue);
124		});
125	}
126}	
127	
128
129
130// Collapsible - Templates/Container/CollapsibleContainer.html
131function t3sbCollapsible(fixedNavbar, navbarHeight) {
132	if ( window.location.hash ) {
133		var idArr = window.location.hash.split('#c'),
134			accordionButton = document.getElementById('c'+idArr[1]);
135		if (accordionButton !== null && accordionButton !== '') {
136			var targetElement = document.getElementById('collapse-'+idArr[1]),
137				collapseTrigger = new bootstrap.Collapse(targetElement),
138				offsetSize = accordionButton.clientHeight;
139			collapseTrigger.show();
140			if ( fixedNavbar ) {
141				offsetSize += navbarHeight;
142			}
143			var scrollTo = Math.round(t3sbOffsetTop(accordionButton)-offsetSize);
144			window.scroll({ top: scrollTo, behavior: 'smooth' });
145		}
146	} else {
147		document.querySelectorAll('.accordion').forEach( acc => {
148			var collapse = document.getElementById(acc.id);
149			collapse.addEventListener('shown.bs.collapse', function (e) {
150				if ( e.target) {
151					var offsetSize = e.target.parentNode.querySelector('.accordion-button').clientHeight;
152					if ( fixedNavbar ) {
153						offsetSize += navbarHeight;
154					}
155					var scrollTo = Math.round(t3sbOffsetTop(e.target.parentNode)-offsetSize);
156					window.scroll({ top: scrollTo, behavior: 'smooth' });
157				}
158			});
159		});
160	}
161}
162	
163
164
165function ready(fn) {
166	if (document.readyState != 'loading'){
167fn();
168	} else {
169document.addEventListener('DOMContentLoaded', fn);
170	}
171}
172ready(() => {
173	// Default - Main.html
174	const navbar = document.getElementById('main-navbar'),
175		  navbarHeight = navbar.clientHeight,
176		  navbarBreakpointWidth = document.body.getAttribute('data-navbar-breakpointwidth'),
177		  viewportWidth = parseFloat(getComputedStyle(document.querySelector('html'), null).width.replace("px", "")),
178		  onePageLayout = navbar.classList.contains('sectionMenu');
179
180	var fixedNavbar = false;
181
182	if ( navbar.classList.contains('fixed-top') || navbar.classList.contains('sticky-top') ) {
183		fixedNavbar = true;
184	}
185
186	// Scroll anchor - Main.html
187	if (window.location.hash) {
188		t3sbScrollToAnchor(29, fixedNavbar, navbarHeight);
189	}
190		
191
192	// Link to top - Main.html
193	t3sbScrollToTop();
194
195
196	// Extra row - Navbar/Assets.html
197	t3sbExtraRow(viewportWidth, navbarBreakpointWidth);
198	window.addEventListener('resize', function(event) {	
199		resizedViewportWidth = parseFloat(getComputedStyle(document.querySelector('html'), null).width.replace("px", ""));
200		t3sbExtraRow(resizedViewportWidth, navbarBreakpointWidth);
201	}, true);
202
203
204	// Dropdown animate - Navbar/Assets.html
205	t3sbDropdownAnimate(viewportWidth, navbarBreakpointWidth, 1);
206	window.addEventListener('resize', function(event) {	
207		resizedViewportWidth = parseFloat(getComputedStyle(document.querySelector('html'), null).width.replace("px", ""));
208		t3sbDropdownAnimate(resizedViewportWidth, navbarBreakpointWidth, 1);
209	}, true);	
210
211
212	// No justify on mobile - Navbar/Assets.html
213	if ( viewportWidth < navbarBreakpointWidth ) {
214		navbar.querySelector('.main-navbarnav').classList.remove('nav-fill', 'w-100');
215	} 
216
217
218	// Offcanvas - Navbar/Assets.html
219	var navbarBreakpoint = document.body.getAttribute('data-navbar-breakpoint');
220	var navbarBPWidth = navbarBreakpointWidth,
221		utilColor = 'bg-light bg-gradient',
222		utilColorArr = utilColor.split(' ');
223	if (navbarBreakpoint == 'no') {
224		navbarBPWidth = 99999;
225	}
226	t3sbOffcanvas(viewportWidth, navbarBPWidth, utilColorArr);
227	window.addEventListener('resize', function(event) {	
228		resizedViewportWidth = parseFloat(getComputedStyle(document.querySelector('html'), null).width.replace("px", ""));
229		t3sbOffcanvas(resizedViewportWidth, navbarBPWidth, utilColorArr);
230	}, true);
231
232
233	// Collapsible - CollapsibleContainer.html
234	var collapse = document.querySelectorAll('.accordion .collapse');
235	if ( collapse.length ) {
236		t3sbCollapsible(fixedNavbar, navbarHeight);
237	}
238	
239
240	// Sticky footer - Page/Footer.html
241	const footerExtraHeight = 100;
242	t3sbStickyFooter(footerExtraHeight);
243	
244});
245
246(function($){'use strict';
247const cookieConsentConfiguration = JSON.parse('{"cookieName":"cookie_consent","expiryDays":365,"hideOnInit":false,"reloadOnReeditDeny":false,"pushConsentToTagManager":false,"lazyloading":false,"lazyloadingTimeout":120,"consentMode":[],"containerId":"cookie-consent"}');
248
249
250})(jQuery);

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.