PageSourceSearch

https://www.goneo.de/media/t4/optimize/js/ca5fb095af5c664501c07c53e471f999.js?16c247e864a637b2ab4df0a58487b36a

js goneo.de collected 2026-10-09 21:28:51 UTC 37,216 bytes, 92 lines download raw bytes

1(function(window){"use strict";var utils=window.utils||{};utils.classes={hiddenVisually:"u-hidden-visually",modifier:"--",isActive:"is-active",isClosed:"is-closed",isOpen:"is-open",isClicked:"is-clicked",isAnimating:"is-animating",isVisible:"is-visible",hidden:"u-hidden"};utils.keyCodes={BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38};utils.a11yclick=function(event){var code=event.charCode||event.keyCode,type=event.type;if(type==='click'){return!0}else if(type==='keydown'){if(code===utils.keyCodes.SPACE||code===utils.keyCodes.ENTER){return!0}}else{return!1}};utils.a11yclickBind=function(el,callback,name){el.on("click."+name+" keydown."+name,function(event){if(utils.a11yclick(event)){event.preventDefault(event);if(callback&&typeof callback==='function'){callback.call()}
2el.trigger('clicked.'+name)}})};utils.supportTransition=('transition' in document.documentElement.style)||('WebkitTransition' in document.documentElement.style);utils.whichTransitionEvent=function(){var el=document.createElement('fakeelement'),transitions={'transition':'transitionend','WebkitTransition':'webkitTransitionEnd'};for(var t in transitions){if(el.style[t]!==undefined){return transitions[t]}}};utils.transEndEventName=utils.whichTransitionEvent();utils.onEndTransition=function(el,callback){var onEndCallbackFn=function(ev){if(utils.supportTransition){if(ev.target!=this)return;this.removeEventListener(utils.transEndEventName,onEndCallbackFn)}
3if(callback&&typeof callback==='function'){callback.call()}};if(utils.supportTransition){el.addEventListener(utils.transEndEventName,onEndCallbackFn)}else{onEndCallbackFn()}};utils.createModifierClass=function(cl,modifier){return cl+utils.classes.modifier+modifier};
3utils.cssModifiers=function(modifiers,cssClasses,baseClass){var arr=modifiers.split(",");for(var i=0,l=arr.length;i<l;i++){cssClasses.push(utils.createModifierClass(baseClass,arr[i].trim()))}};utils.getMetaOptions=function(el,name,metadata){var dataAttr='data-'+name,dataOptionsAttr=dataAttr+'-options',attr=el.getAttribute(dataAttr)||el.getAttribute(dataOptionsAttr);try{return attr&&JSON.parse(attr)||{}}catch(error){if(console){console.error('Error parsing '+dataAttr+' on '+el.className+': '+error)}
4return}};window.utils=utils})(this);(function(w,$){"use strict";var name="trab-tab",componentName=name+"-component";w.componentNamespace=w.componentNamespace||{};var TrapTabKey=w.componentNamespace.TrapTabKey=function(element,options){if(!element){throw new Error("Element required to initialize object")}
5this.element=element;this.$element=$(element);options=options||{};this.options=$.extend({},this.defaults,options)};TrapTabKey.prototype.init=function(){if(this.$element.data(componentName)){return}
6this.$element.data(componentName,this)};TrapTabKey.prototype.bindTrap=function(){var self=this;this.$element.on('keydown.'+name,function(e){self._trapTabKey(self.$element,e)})};TrapTabKey.prototype.unbindTrap=function(){this.$element.off('keydown.'+name)};TrapTabKey.prototype.giveFocus=function(){var self=this,opts=self.options;var o=self.$element.find('*'),focusEl=self.$element.find('[data-focus]');focusEl.length?focusEl.first().focus():o.filter(opts.focusableElementsString).filter(':visible').first().focus()};TrapTabKey.prototype._trapTabKey=function(obj,evt){var self=this,opts=self.options;if(evt.which==9){var o=obj.find('*');var focusableItems;focusableItems=o.filter(opts.focusableElementsString).filter(':visible');var focusedItem;focusedItem=jQuery(':focus');var numberOfFocusableItems;numberOfFocusableItems=focusableItems.length;var focusedItemIndex;focusedItemIndex=focusableItems.index(focusedItem);if(evt.shiftKey){if(focusedItemIndex==0){focusableItems.get(numberOfFocusableItems-1).focus();evt.preventDefault()}}else{if(focusedItemIndex==numberOfFocusableItems-1){focusableItems.get(0).focus();evt.preventDefault()}}}};TrapTabKey.prototype.defaults={focusableElementsString:"a[href], area[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), iframe, object, embed, *[tabindex], *[contenteditable]"};TrapTabKey.defaults=TrapTabKey.prototype.defaults})(this,jQuery);(function(window,$){"use strict";var name="button",componentName=name+"-component",utils=window.utils,cl={iconOnly:"icon-only",withIcon:"icon",toggleState:"toggle-state",showHide:"visible-on-active"};window.componentNamespace=window.componentNamespace||{};var Button=window.componentNamespace.Button=function(element,options){if(!element){throw new Error("Element required to initialize object")}
7this.element=element;this.$element=$(element);this.options=options=options||{};this.metadata=utils.getMetaOptions(this.element,name);this.options=$.extend({},this.defaults,this.metadata,options)};Button.prototype.init=function(){if(this.$element.data(componentName)){return}
8this.$element.data(componentName,this);this.hasTitle=!!this.$element.attr("title");this.$element.trigger("beforecreate."+name);this.isPressed=!1;this.isExpanded=!1;this._create()};Button.prototype._create=function(){var options=this.options,buttonTextClasses=[options.baseClass+'__text'];this._buttonClasses=[options.baseClass];if(options.label===null){options.label=this.$element.html()}
9if(options.wrapText){this.$buttonText=$('<span></span>').html(options.label).appendTo(this.$element.empty())}
10if(options.icon){this.$buttonIcon=$("<span class='"+options.iconFamily+' '+utils.createModifierClass(options.iconFamily,options.icon)+"'></span>").prependTo(this.$element);this._buttonClasses.push(utils.createModifierClass(options.baseClass,cl.withIcon));if(options.iconActive){options.toggle=!0;this.$buttonIconActive=$("<span class='"+options.iconFamily+' '+utils.createModifierClass(options.iconFamily,options.iconActive)+' '+utils.createModifierClass(options.iconFamily,cl.showHide)+"'></span>").insertAfter(this.$buttonIcon);
10this._buttonClasses.push(utils.createModifierClass(options.baseClass,cl.toggleState))}
11if(options.hideText){buttonTextClasses.push(utils.classes.hiddenVisually);this._buttonClasses.push(utils.createModifierClass(options.baseClass,cl.iconOnly))}}
12if(options.modifiers){utils.cssModifiers(options.modifiers,this._buttonClasses,options.baseClass)}
13if(options.wrapText){this.$buttonText.addClass(buttonTextClasses.join(" "))}
14if(options.textActive&&options.wrapText){options.toggle=!0;buttonTextClasses.push(utils.createModifierClass(options.baseClass+'__text',cl.showHide));this._buttonClasses.push(utils.createModifierClass(options.baseClass,cl.toggleState));this.$buttonTextActive=$('<span></span>').addClass(buttonTextClasses.join(" ")).html(options.textActive).insertAfter(this.$buttonText);this.$element.attr('aria-live','polite')}
15this.$element.addClass(this._buttonClasses.join(" "));if(options.role){this.$element.attr("role",options.role)}
16if(options.controls){this.controls(options.controls)}
17if(options.pressed){this._isPressed(options.pressed)}
18if(options.expanded){this.isPressed=!0;this._isExpanded(options.expanded)}
19if(!this.hasTitle&&options.hideText&&!options.hideTitle){this.$element.attr('title',this.$element.text())}
20this.$element.trigger("create."+name)};Button.prototype._isPressed=function(state){this.isPressed=state;this.$element.attr("aria-pressed",state)[state?"addClass":"removeClass"](utils.classes.isActive)};Button.prototype._isExpanded=function(state){this.isExpanded=state;this.$element.attr("aria-expanded",state)[state?"addClass":"removeClass"](utils.classes.isActive)};Button.prototype.controls=function(el){this.$element.attr("aria-controls",el)};Button.prototype.destroy=function(){var options=this.options;this.$element.removeData(componentName).removeAttr('role').removeAttr('aria-pressed').removeAttr('aria-expanded').removeAttr('aria-controls').removeClass(this._buttonClasses.join(" ")).removeClass(utils.classes.isActive).off("."+name);if(this.options.icon){this.$element.find('[class^="'+this.options.iconFamily+'"]').remove()}
21if(options.wrapText){var btnHtml=this.$buttonText.html();this.$element.empty().html(btnHtml)}
22this.element=null;this.$element=null};Button.prototype.defaults={baseClass:"c-button",role:"button",label:null,modifiers:null,controls:null,textActive:null,wrapText:!0,hideText:!1,hideTitle:!1,icon:null,iconActive:null,iconFamily:"o-icon",iconPosition:null,pressed:!1,expanded:!1};Button.defaults=Button.prototype.defaults})(this,jQuery);(function(w,$){"use strict";var pluginName="jsButton",initSelector=".js-button";$.fn[pluginName]=function(){return this.each(function(){new window.componentNamespace.Button(this).init()})};$(document).bind("enhance",function(e){$($(e.target).is(initSelector)&&e.target).add(initSelector,e.target).filter(initSelector)[pluginName]()})})(this,jQuery);(function(window,$){"use strict";var name="offcanvas",componentName=name+"-component",utils=window.utils,doc=document;window.componentNamespace=window.componentNamespace||{};var Offcanvas=window.componentNamespace.Offcanvas=function(element,options){if(!element){throw new Error("Element required to initialize object")}
23this.element=element;this.$element=$(element);this.options=options=options||{};this.metadata=utils.getMetaOptions(this.element,name);this.options=$.extend({},this.defaults,this.metadata,options);this.isOpen=!1;this.onOpen=this.options.onOpen;this.onClose=this.options.onClose;this.onInit=this.options.onInit};Offcanvas.prototype.init=function(){if(this.$element.data(componentName)){return}
24this.$element.data(componentName,this);this.$element.trigger("beforecreate."+name);this._addAttributes();this._initTrigger();this._createModal();this._trapTabKey();this._closeButton();if(this.onInit&&typeof this.onInit==='function'){this.onInit.call(this.element)}
25this.$element.trigger("create."+name)};Offcanvas.prototype._addAttributes=function(){var options=this.options,panelAttr={tabindex:"-1","aria-hidden":!this.isOpen};if(options.role){panelAttr.role=options.role}
26this._panelClasses=[options.baseClass,utils.classes.isClosed];if(!window.utils.supportTransition){this._panelClasses.push(utils.createModifierClass(options.baseClass,options.supportNoTransitionsClass))}
27utils.cssModifiers(options.modifiers,this._panelClasses,options.baseClass);this.$element.attr(panelAttr).addClass(this._panelClasses.join(" "));this.$content=$('.'+options.contentClass);this._contentOpenClasses=[];utils.cssModifiers(options.modifiers,this._contentOpenClasses,options.contentClass);this._modalOpenClasses=[options.modalClass,utils.classes.isClosed];utils.cssModifiers(options.modifiers,this._modalOpenClasses,options.modalClass);this._bodyOpenClasses=[options.bodyModifierClass+"--visible"];utils.cssModifiers(options.modifiers,this._bodyOpenClasses,options.bodyModifierClass);if(options.modifiers.toLowerCase().indexOf("reveal")>=0){this.transitionElement=this.$content[0]}else{this.transitionElement=this.element}};Offcanvas.prototype._createModal=function(){var self=this,target=self.$element.parent();if(this.options.modal){this.$modal=$("<div></div>").on("mousedown."+name,function(){self.close()}).appendTo(target);this.$modal.addClass(this._modalOpenClasses.join(" "))}};Offcanvas.prototype._trapTabKey=function(){this.trapTabKey=new window.componentNamespace.TrapTabKey(this.element);this.trapTabKey.init()};Offcanvas.prototype._trapTabEscKey=function(){var self=this;$(doc).on("keyup."+name,function(ev){var keyCode=ev.keyCode||ev.which;if(keyCode===utils.keyCodes.ESCAPE&&self.isOpen){if($("input").is(":focus")){return}
28self.close()}})};Offcanvas.prototype._closeButton=function(){var self=this,options=self.options;function closeOffcanvas(){self.close()}
29this.$closeBtn=this.$element.find('.'+options.closeButtonClass);if(this.$closeBtn.length){this.closeBtn=new window.componentNamespace.Button(this.$closeBtn[0]);this.closeBtn.init();this.closeBtn.controls(this.$element.attr('id'));utils.a11yclickBind(this.$closeBtn,closeOffcanvas,name)}};Offcanvas.prototype.open=function(){var self=this,options=self.options;if(!this.isOpen){if(options.resize){this.resize()}
30if(doc.activeElement){this.lastFocus=doc.activeElement;this.lastFocusTrigger=$(this.lastFocus).data("button-component")}
31this.isOpen=!0;$('html, body').addClass(this._bodyOpenClasses.join(" "));this._addClasses(this.$element,this.isOpen,!0);this._addClasses(this.$content,this.isOpen,!0);if(options.modal){this._addClasses(this.$modal,this.isOpen,!0);this.$modal.addClass(utils.createModifierClass(options.modalClass,'opening'))}
32this.$element.attr("aria-hidden","false").addClass(utils.createModifierClass(options.baseClass,'opening')).trigger("opening."+name);this.$content.addClass(this._contentOpenClasses.join(" "));utils.onEndTransition(this.transitionElement,function(){self.trapTabKey.giveFocus();self.trapTabKey.bindTrap();self._addClasses(self.$element,self.isOpen,!1);self._addClasses(self.$content,self.isOpen,!1);if(options.modal){self._addClasses(self.$modal,self.isOpen,!1);self.$modal.removeClass(utils.createModifierClass(options.modalClass,'opening'))}
33self.$element.removeClass(utils.createModifierClass(options.baseClass,'opening'))});if(this.$trigger){this.$trigger.button._isExpanded(!0)}
34if(this.lastFocusTrigger){this.lastFocusTrigger._isExpanded(!0)}
35if(this.onOpen&&typeof this.onOpen==='function'){this.onOpen.call(this.$element)}
36this._trapTabEscKey();this.$element.trigger("open."+name)}};Offcanvas.prototype.close=function(){var self=this,options=self.options;if(!this.isOpen){return}
37this.isOpen=!1;this._addClasses(this.$element,this.isOpen,!0);this._addClasses(this.$content,this.isOpen,!0);if(this.options.modal){this._addClasses(this.$modal,this.isOpen,!0);this.$modal.addClass(utils.createModifierClass(options.modalClass,'closing'))}
38this.$element.attr("aria-hidden","true").addClass(utils.createModifierClass(options.baseClass,'closing')).trigger("closing."+name);this.trapTabKey.unbindTrap();if(self.$trigger){self.$trigger.button._isExpanded(!1)}
39if(this.lastFocusTrigger){this.lastFocusTrigger._isExpanded(!1);this.lastFocusTrigger=null}
40utils.onEndTransition(this.transitionElement,function(){self._addClasses(self.$element,self.isOpen,!1);self._addClasses(self.$content,self.isOpen,!1);if(self.options.modal){self._addClasses(self.$modal,self.isOpen,!1);self.$modal.removeClass(utils.createModifierClass(options.modalClass,'closing'))}
41self.$content.removeClass(self._contentOpenClasses.join(" "));self.$element.removeClass(utils.createModifierClass(options.baseClass,'closing'));$('html, body').removeClass(self._bodyOpenClasses.join(" "));if(self.lastFocus){self.lastFocus.focus()}});if(this.onClose&&typeof this.onClose==='function'){this.onClose.call(this.element)}
42this.$element.trigger("close."+name);$(doc).off("keyup."+name);$(window).off('.'+name)};Offcanvas.prototype._addClasses=function(el,isOpen,beforeTransition){if(isOpen){if(beforeTransition){el.removeClass(utils.classes.isClosed).addClass(utils.classes.isAnimating).addClass(utils.classes.isOpen)}else{el.removeClass(utils.classes.isAnimating)}}else{if(beforeTransition){el.removeClass(utils.classes.isOpen).addClass(utils.classes.isAnimating)}else{el.addClass(utils.classes.isClosed).removeClass(utils.classes.isAnimating)}}};
42Offcanvas.prototype.toggle=function(){this[this.isOpen?"close":"open"]()};Offcanvas.prototype.resize=function(){var self=this,ticking;var raf=(function(){return window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||function(callback){window.setTimeout(callback,1000/60)}})();function update(){ticking=!1}
43function requestTick(){if(!ticking){raf(update)}
44ticking=!0}
45function onResize(){requestTick();self.$element.trigger("resizing."+name);if(self.options.resize){self.close()}}
46$(window).on('resize.'+name+' orientationchange.'+name,onResize)};Offcanvas.prototype._initTrigger=function(){var self=this,options=self.options,offcanvasID=this.$element.attr('id');if(options.triggerButton){this.$triggerBtn=$(options.triggerButton);new window.componentNamespace.OffcanvasTrigger(this.$triggerBtn[0],{"offcanvas":offcanvasID}).init()}};Offcanvas.prototype.setButton=function(trigger){this.$element.data(componentName+"-trigger",trigger)};Offcanvas.prototype.destroy=function(){this.$element.trigger("destroy."+name);if(this.isOpen){this.close()}
47this.$element.removeData().removeClass(this._panelClasses.join(" ")).removeAttr('tabindex').removeAttr('aria-hidden');if(this.$triggerBtn){this.$triggerBtn.removeData('offcanvas-trigger-component').off(".offcanvas").off(".offcanvas-trigger").data('button-component').destroy()}
48this.$element.off("."+name);$(doc).off("."+name);$(window).off('.'+name)};Offcanvas.prototype.defaults={role:"dialog",modifiers:"left,overlay",baseClass:"c-offcanvas",modalClass:"c-offcanvas-bg",contentClass:"c-offcanvas-content-wrap",closeButtonClass:"js-offcanvas-close",bodyModifierClass:"has-offcanvas",supportNoTransitionsClass:"support-no-transitions",resize:!1,triggerButton:null,modal:!0,onOpen:null,onClose:null,onInit:null};Offcanvas.defaults=Offcanvas.prototype.defaults})(this,jQuery);(function(w,$){"use strict";var pluginName="offcanvas",initSelector=".js-"+pluginName;$.fn[pluginName]=function(options){return this.each(function(){new w.componentNamespace.Offcanvas(this,options).init()})};$(w.document).on("enhance",function(e){$($(e.target).is(initSelector)&&e.target).add(initSelector,e.target).filter(initSelector)[pluginName]()})})(this,jQuery);(function(w,$){"use strict";var name="offcanvas-trigger",componentName=name+"-component",utils=w.utils;w.componentNamespace=w.componentNamespace||{};var OffcanvasTrigger=w.componentNamespace.OffcanvasTrigger=function(element,options){if(!element){throw new Error("Element required to initialize object")}
49this.element=element;this.$element=$(element);this.options=options=options||{};this.options=$.extend({},this.defaults,options)};OffcanvasTrigger.prototype.init=function(){if(this.$element.data(componentName)){return}
50this.$element.data(componentName,this);this._create()};OffcanvasTrigger.prototype._create=function(){this.options.offcanvas=this.options.offcanvas||this.$element.attr("data-offcanvas-trigger");this.$offcanvas=$("#"+this.options.offcanvas);this.offcanvas=this.$offcanvas.data("offcanvas-component");if(!this.offcanvas){throw new Error("Offcanvas Element not found")}
51this.button=new w.componentNamespace.Button(this.element);this.button.init();this.button.controls(this.options.offcanvas);this.button._isExpanded(!1);this._bindbehavior()};OffcanvasTrigger.prototype._bindbehavior=function(){var self=this;this.offcanvas.setButton(self);function toggleOffcanvas(){self.offcanvas.toggle()}
52utils.a11yclickBind(this.$element,toggleOffcanvas,name)};OffcanvasTrigger.prototype.defaults={offcanvas:null}})(this,jQuery);(function(w,$){"use strict";var pluginName="offcanvasTrigger",initSelector="[data-offcanvas-trigger],.js-"+pluginName;$.fn[pluginName]=function(options){return this.each(function(){new w.componentNamespace.OffcanvasTrigger(this,options).init()})};$(w.document).on("enhance",function(e){$($(e.target).is(initSelector)&&e.target).add(initSelector,e.target).filter(initSelector)[pluginName]()})})(this,jQuery)
53/*bodyScrollLock.min.js*/
54!function(e,t){if("function"==typeof define&&define.amd)define(["exports"],t);
54else if("undefined"!=typeof exports)t(exports);else{var o={};t(o),e.bodyScrollLock=o}}(this,function(exports){"use strict";function r(e){if(Array.isArray(e)){for(var t=0,o=Array(e.length);t<e.length;t++)o[t]=e[t];return o}return Array.from(e)}Object.defineProperty(exports,"__esModule",{value:!0});var l=!1;if("undefined"!=typeof window){var e={get passive(){l=!0}};window.addEventListener("testPassive",null,e),window.removeEventListener("testPassive",null,e)}var d="undefined"!=typeof window&&window.navigator&&window.navigator.platform&&/iP(ad|hone|od)/.test(window.navigator.platform),c=[],u=!1,a=-1,s=void 0,v=void 0,f=function(t){return c.some(function(e){return!(!e.options.allowTouchMove||!e.options.allowTouchMove(t))})},m=function(e){var t=e||window.event;return!!f(t.target)||(1<t.touches.length||(t.preventDefault&&t.preventDefault(),!1))},o=function(){setTimeout(function(){void 0!==v&&(document.body.style.paddingRight=v,v=void 0),void 0!==s&&(document.body.style.overflow=s,s=void 0)})};exports.disableBodyScroll=function(i,e){if(d){if(!i)return void console.error("disableBodyScroll unsuccessful - targetElement must be provided when calling disableBodyScroll on IOS devices.");if(i&&!c.some(function(e){return e.targetElement===i})){var t={targetElement:i,options:e||{}};c=[].concat(r(c),[t]),i.ontouchstart=function(e){1===e.targetTouches.length&&(a=e.targetTouches[0].clientY)},i.ontouchmove=function(e){var t,o,n,r;1===e.targetTouches.length&&(o=i,r=(t=e).targetTouches[0].clientY-a,!f(t.target)&&(o&&0===o.scrollTop&&0<r?m(t):(n=o)&&n.scrollHeight-n.scrollTop<=n.clientHeight&&r<0?m(t):t.stopPropagation()))},u||(document.addEventListener("touchmove",m,l?{passive:!1}:void 0),u=!0)}}else{n=e,setTimeout(function(){if(void 0===v){var e=!!n&&!0===n.reserveScrollBarGap,t=window.innerWidth-document.documentElement.clientWidth;e&&0<t&&(v=document.body.style.paddingRight,document.body.style.paddingRight=t+"px")}void 0===s&&(s=document.body.style.overflow,document.body.style.overflow="hidden")});var o={targetElement:i,options:e||{}};c=[].concat(r(c),[o])}var n},exports.clearAllBodyScrollLocks=function(){d?(c.forEach(function(e){e.targetElement.ontouchstart=null,e.targetElement.ontouchmove=null}),u&&(document.removeEventListener("touchmove",m,l?{passive:!1}:void 0),u=!1),c=[],a=-1):(o(),c=[])},exports.enableBodyScroll=function(t){if(d){if(!t)return void console.error("enableBodyScroll unsuccessful - targetElement must be provided when calling enableBodyScroll on IOS devices.");t.ontouchstart=null,t.ontouchmove=null,c=c.filter(function(e){return e.targetElement!==t}),u&&0===c.length&&(document.removeEventListener("touchmove",m,l?{passive:!1}:void 0),u=!1)}else(c=c.filter(function(e){return e.targetElement!==t})).length||o()}});
55;
56(function(w,$){"use strict";const pluginName="T4Offcanvas",initSelector=".js-"+pluginName;$.fn[pluginName]=function(options){return this.each(function(){new w.componentNamespace.Offcanvas(this,options).init()})};$(w.document).on("enhance",function(e){$($(e.target).is(initSelector)&&e.target).add(initSelector,e.target).filter(initSelector)[pluginName]()})})(this,jQuery);jQuery(document).ready($=>{const $offcanvas=$('.t4-offcanvas');$('.t4-wrapper').addClass('c-offcanvas-content-wrap');if($('#triggerButton').length){$offcanvas.T4Offcanvas({triggerButton:'#triggerButton',onOpen:function(){$('#triggerButton').addClass('active');bodyScrollLock.disableBodyScroll('.t4-off-canvas-body')},onClose:function(){$('#triggerButton').removeClass('active');setTimeout(function(){bodyScrollLock.enableBodyScroll('.t4-off-canvas-body')},300)}});setTimeout(()=>{$offcanvas.show()},300)}else{$offcanvas.hide()}
57$offcanvas.find('[data-bs-toggle]').removeAttr('data-bs-toggle',!1);$offcanvas.find('[data-toggle]').removeAttr('data-toggle',!1);$offcanvas.find('[data-effect="drill"] ul.dropdown-menu, [data-effect="def"] ul.dropdown-menu').each((i,el)=>{const $el=$(el);const label=$el.prev().text();$el.prepend("<span class='sub-menu-back'><i class='fas fa-chevron-left'></i>"+label+"</span>");$el.before('<span class="sub-menu-toggle btn-toggle"></span>')});$offcanvas.find('[data-effect="drill"] nav.navbar').each((i,el)=>{initDrilldownMenu($(el))});$offcanvas.find('[data-effect="def"] nav.navbar').each((i,el)=>{initAccordionMenu($(el))});function initAccordionMenu($container){const toggleSelector='.sub-menu
57-toggle, .separator.dropdown-toggle, .nav-header.dropdown-toggle';$container.find(toggleSelector).on('click',e=>{const $el=$(e.currentTarget);const $dropdown=$el.siblings('.dropdown-menu');$dropdown.slideToggle(300)})}
58function initDrilldownMenu($container){$container.addClass('drilldown-effect');$container.css({overflow:'unset',transition:'transform 300ms, height 300ms',});const openerSelector='.sub-menu-toggle, .separator.dropdown-toggle, .nav-header.dropdown-toggle';$container.find(openerSelector).on('click',e=>{const $el=$(e.currentTarget);const $dropdown=$el.siblings('.dropdown-menu');const $navItem=$el.parent();const $navbar=$navItem.parent();const level=+$navItem.data('level')||0;$dropdown.css('display','block');if(!$container[0].style.height){$container.css('height',$navbar.height()+'px')}
59setTimeout(()=>{$container.css('height',$dropdown.height()+'px');$container.css('transform',`translateX(-${level * 100}%)`)})});$container.find('.sub-menu-back').on('click',e=>{const $el=$(e.currentTarget);const $dropdown=$el.parent();const currentlevel=$el.closest('li.nav-item').data('level')||0;const prevLevel=currentlevel?currentlevel-1:0;$container.one('transitionend',()=>{$dropdown.css('display','')})
60setTimeout(()=>{const $navItem=$el.closest('.nav-item');const $prevNav=$navItem.parent();$container.css('height',$prevNav.height()+'px');$container.css('transform',`translateX(-${prevLevel * 100}%)`)})})}});jQuery(document).ready(function(){jQuery('.t4-section-inview').bind('inview',function(event,visible){if(visible){jQuery(this).addClass('t4-inview');var animateClass=jQuery(this).find('.animated').data('animated-type');jQuery(this).find('.animated').addClass(animateClass)}});jQuery(document).find('.t4-megamenu').bind('inview',function(event,visible){if(visible){jQuery('body').addClass('nav-open')}else{jQuery('body').removeClass('nav-open')}})});jQuery(document).ready(function($){$(window).ready(function(){if("IntersectionObserver" in window&&"IntersectionObserverEntry" in window&&"intersectionRatio" in window.IntersectionObserverEntry.prototype){var options={root:null,rootMargin:'0px',threshold:0};var sections=document.querySelectorAll(".t4-section");var maxIdx=0;var sticky=document.querySelectorAll(".t4-sticky");function isValid(el){return el.offsetTop<window.innerHeight&&el.offsetTop+el.offsetHeight<window.innerHeight+200}
61function doChange(changes,observer){changes.forEach(function(change){var clientRect=change.boundingClientRect,target=change.target;if(clientRect.top<=-clientRect.height){document.body.setAttribute('data-top-'+target.id,'over');document.body.classList.add('top-away')}else{document.body.setAttribute('data-top-'+target.id,'under');document.body.classList.remove('top-away')}})}
62var observer=new IntersectionObserver(doChange,options);for(var i=0;i<sections.length;i++){var el=sections[i];if(isValid(el)){el.idx=i;observer.observe(el)}else{maxIdx=i-1;break}}
63var top=0;var zindex=300;for(var i=0;i<sticky.length;i++){var elSk=sticky[i];top+=elSk.offsetHeight;if(typeof sticky[i+1]!='undefined'){$(elSk).css({'z-index':zindex});zindex-=1;$(sticky[i+1]).css({top:top,'z-index':zindex})}}
64var options2={root:null,rootMargin:'0px',threshold:0};function doChange2(changes){var clientRect=changes[0].boundingClientRect;if(clientRect.top<=-100){document.body.classList.add('not-at-top')}else{document.body.classList.remove('not-at-top')}}
65var observer2=new IntersectionObserver(doChange2,options2);var anchorEl=$('<a name="top-anchor">').prependTo('.t4-content-inner');if(anchorEl.get(0))observer2.observe(anchorEl.get(0))}});$(document).on('click','a[href^="#"]',function(event){event.preventDefault();if($(this).data('slide'))return;if(['tab'].indexOf($(this).data('toggle'))>-1)return;if(['tab'].indexOf($(this).attr('data-bs-toggle'))>-1)return;var el='';if($($.attr(this,'href')).length){var el=$.attr(this,'href')}else if($('[name="'+$.attr(this,'href').substr(1)+'"]').length){var el='[name="'+$.attr(this,'href').substr(1)+'"]'}else{return}
66if($('body').hasClass('has-offcanvas--visible')){$('.js-offcanvas-close').trigger('click')}
67$('html, body').animate({scrollTop:$(el).offset().top},500)});$('li.nav-item.dropdown').on('hidden.bs.dropdown',function(e){$(this).find('.show').removeClass('show')});$('body').on('click','#back-to-top',function(){$('html').animate({scrollTop:0},{duration:500,start:()=>{$('html').css('scroll-behavior','auto')},complete:()=>{$('html').css('scroll-behavior','')}});return!1});$(document).find('.t4-content').on("scroll",function(event){var scroll=$('.t4-content').scrollTop();localStorage.setItem("page_scroll",scroll)})});(function($){$(document).ready(function(){var bootstrapLoaded=(typeof $().carousel=='function');var mootoolsLoaded=(typeof MooTools!='undefined');if(bootstrapLoaded&&mootoolsLoaded){Element.implement({hide:function(){return this},show:function(v){return this},slide:function(v){return this}})}});function refreshCurrentPage(){var page=window.location.href;var cur=localStorage.getItem('page');if(cur==page){return!0}
68return!1}
69window.onload=function(){var check=refreshCurrentPage();localStorage.setItem("page",window.location.href);if(document.getElementsByClassName("t4-content").length){if(check){var match=localStorage.getItem("page_scroll");document.getElementsByClassName("t4-content")[0].scrollTop=match}else{document.getElementsByClassName("t4-content")[0].scrollTop=0}}}
70var Joomla=window.Joomla||{};Joomla.version=$('html').hasClass('j4')?"4":"3";if(Joomla.version==3){Joomla.renderMessages=function(messages){Joomla.removeMessages();var messageContainer=document.getElementById('system-message-container'),type,typeMessages,messagesBox,title,titleWrapper,i,messageWrapper,alertClass;for(type in messages){if(!messages.hasOwnProperty(type)){continue}
71typeMessages=messages[type];messagesBox=document.createElement('div');alertClass=(type==='notice')?'alert-info':'alert-'+type;alertClass=(type==='message')?'alert-success':alertClass;alertClass=(type==='error')?'alert-error alert-danger':alertClass;messagesBox.className='alert '+alertClass;var buttonWrapper=document.createElement('button');buttonWrapper.setAttribute('type','button');if($('body').hasClass('loaded-bs5')){buttonWrapper.setAttribute('data-bs-dismiss','alert')}else{buttonWrapper.setAttribute('data-dismiss','alert')}
72buttonWrapper.className='close';buttonWrapper.innerHTML='×';messagesBox.appendChild(buttonWrapper);title=Joomla.JText._(type);if(typeof title!='undefined'){titleWrapper=document.createElement('h4');titleWrapper.className='alert-heading';titleWrapper.innerHTML=Joomla.JText._(type);messagesBox.appendChild(titleWrapper)}
73for(i=typeMessages.length-1;i>=0;i--){messageWrapper=document.createElement('div');messageWrapper.innerHTML=typeMessages[i];messagesBox.appendChild(messageWrapper)}
74messageContainer.appendChild(messagesBox)}}}})(jQuery);const T4MegaMenu={};jQuery(document).ready(function($){window.mobileCheck=function(){let check=!1;
74(function(a){if(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(a)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(a.substr(0,4)))check=!0})(navigator.userAgent||navigator.vendor||window.opera);return check};window.isTouchDevice=(('ontouchstart' in window)||(navigator.msMaxTouchPoints>0));var navitem_selector=".t4-megamenu .nav-item";var hideDropdowns=function($activeitem){$activeitem.removeClass("show");$activeitem.find(".dropdown-menu").removeClass("show");$activeitem.find(".dropdown-menu").css("visibility","hidden");endAnimating($activeitem)};const winWidth=window.innerWidth;function getDropdownWidth($el){const $parent=$el.closest('.dropdown');$parent.addClass('animating');const width=$el.outerWidth();$parent.removeClass('animating');return width}
75var pos=function($activeitem){const $dropdown=$activeitem.children(".dropdown-menu")
76const $parentDropdown=$activeitem.closest(".dropdown-menu");if($parentDropdown.length){const parentDropWidth=$parentDropdown.outerWidth();const activeElmOffset=$activeitem.offset();const activeElmWidth=$activeitem.width();const dropdownWidth=getDropdownWidth($dropdown);let marginLeft=0;if(winWidth-activeElmOffset.left-activeElmWidth<parentDropWidth){marginLeft=0-dropdownWidth-activeElmWidth}else{marginLeft=0}
77$dropdown.css("margin-left",marginLeft+"px")}else{var rtl=$("html").attr("dir")=="rtl",dw=$dropdown.outerWidth(),ww=$(window).width(),dl=$dropdown.offset().left,iw=$activeitem.width(),il=$activeitem.offset().left,ml=null,align=$activeitem.data("align");ml=align=="center"?(iw-dw)/2:align=="right"?dw-iw:align=="justify"?(iw-dw)/2:0;if(dw<ww){if(il+ml<20)ml=20-il;if(il+ml+dw>ww-20)ml=ww-20-il-dw}else{ml=(ww-dw)/2-il}
78$dropdown.css("margin-left",ml)}};var posrtl=function($activeitem){const $dropdown=$activeitem.children(".dropdown-menu");const $parentDropdown=$activeitem.closest(".dropdown-menu");$dropdown.addClass("show");$activeitem.addClass("show");if($parentDropdown.length){const parentDropWidth=$parentDropdown.outerWidth();const elmOffset=$activeitem.offset();const dropdownWidth=getDropdownWidth($dropdown);let marginRight=0;if(elmOffset.left<parentDropWidth){marginRight=0-dropdownWidth-$activeitem.width()}else{marginRight=0}
79$dropdown.css("margin-right",marginRight+"px")}else{var rtl=$("html").attr("dir")=="rtl",dw=$dropdown.width(),ww=$(window).width(),dl=$dropdown.offset().left,iw=$activeitem.width(),il=$activeitem.offset().left,ml=null,align=$activeitem.data("align");ml=align=="center"?(dw-iw)/2:align=="right"?dw-iw:align=="justify"?ww/2:0;if(dw<ww){if(il+iw+ml>ww-20)ml=ww-20-il-iw;if(il+iw+ml<dw+20)ml=dw+20-il-iw}else{ml=ww-il-iw+(dw-ww)/2}
80$dropdown.css("margin-right",-ml)}};var showDropdown=function($activeitem){$activeitem.addClass("show");$activeitem.children(".dropdown-menu").addClass("show");$activeitem.children(".dropdown-menu").css("visibility","visible");if($("html").attr("dir")=="rtl"){posrtl($activeitem)}else{pos($activeitem)}
81startAnimating($activeitem)};var startAnimating=function($item){var $menu=$item.closest(".t4-megamenu");if(!$menu.hasClass("animate"))return;$item.addClass("animating")};var endAnimating=function($item){var $menu=$item.closest(".t4-megamenu");if(!$menu.hasClass("animate"))return;$item.removeClass("animating")};$(navitem_selector).on('mouseenter',e=>{if(window.isTouchDevice){return}
82const $elm=$(e.currentTarget);const $currentDropdown=$elm.children('.dropdown-menu');if(!$currentDropdown.length){return}
83if($elm.hasClass('animating')){return}
84showDropdown($elm)}).on('mouseleave',e=>
84{if(window.isTouchDevice){return}
85const $elm=$(e.currentTarget);if(!$elm.children('.dropdown-menu').length){return}
86hideDropdowns($elm)});let activeNavId=0;$(".nav-item.dropdown > .dropdown-toggle").on('touchstart',function(e){if(!window.isTouchDevice){return}
87const $el=$(e.currentTarget);const $navItem=$el.parent();if($el.parents('.t4-offcanvas').length){return}
88const navId=$navItem.attr('data-id');if(activeNavId!==navId){e.stopPropagation();e.preventDefault();activeNavId=navId}
89showDropdown($navItem);if(window.outerWidth>990){const activeIds=[+$navItem.data('id')];$navItem.parents('.nav-item').map((i,el)=>{activeIds.push(+el.dataset.id)});$('.t4-megamenu .nav-item.dropdown').each((i,el)=>{if(activeIds.indexOf(+el.dataset.id)===-1){hideDropdowns($(el))}})}});$(document).on('click',e=>{if(window.outerWidth<990||!window.isTouchDevice){return}
90const $target=$(e.target);if($target.closest('.t4-megamenu').length){return}
91activeNavId=0;$('.t4-megamenu .nav-item.dropdown.show').each((i,el)=>{hideDropdowns($(el))})})
92$(".t4-megamenu").each(function(){$toggle=$('.navbar-toggler[data-target="#'+this.id+'"]');if($toggle.length==1)$toggle.removeAttr("style")});T4MegaMenu.showDropdown=showDropdown;T4MegaMenu.hideDropdowns=hideDropdowns})

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.