PageSourceSearch

https://biermann-medizin.de/content/themes/biermann-medizin/js/bmm-navigation.min.js?ver=1.0.14

js biermann-medizin.de collected 2026-10-02 05:46:13 UTC 18,011 bytes, 1 lines download raw bytes

1(function($,window,document){"use strict";let pluginName="accessibleMegaMenu",defaults={uuidPrefix:"primary-menu",menuClass:"primary-menu",itemHasChildren:"menu-item-has-children",topItemClass:"top-nav-element",panelClass:"sub-nav-container",panelGroupClass:"sub-nav-element",ignoreItemClass:"menu-element",hoverClass:"menu-hover",focusClass:"menu-focus",openClass:"menu-open",toggleButtonID:"primary-menu-toggle",openDelay:200,closeDelay:200,openOnMouseover:false},Keyboard={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,keyMap:{48:"0",49:"1",50:"2",51:"3",52:"4",53:"5",54:"6",55:"7",56:"8",57:"9",59:";",65:"a",66:"b",67:"c",68:"d",69:"e",70:"f",71:"g",72:"h",73:"i",74:"j",75:"k",76:"l",77:"m",78:"n",79:"o",80:"p",81:"q",82:"r",83:"s",84:"t",85:"u",86:"v",87:"w",88:"x",89:"y",90:"z",96:"0",97:"1",98:"2",99:"3",100:"4",101:"5",102:"6",103:"7",104:"8",105:"9",190:"."}},clearTimeout=window.clearTimeout,setTimeout=window.setTimeout,isOpera=window.opera&&window.opera.toString()==="[object Opera]";function AccessibleMegaMenu(element,options){this.element=element;this.settings=$.extend({},defaults,options);this.mouseTimeoutID=null;this.focusTimeoutID=null;this.mouseFocused=false;this.justFocused=false;this._defaults=defaults;this._name=pluginName;this.init()}AccessibleMegaMenu.prototype=function(){let uuid=0,keydownTimeoutDuration=1e3,keydownSearchString="",isTouch="ontouchstart"in window||window.navigator.msMaxTouchPoints,_getPlugin,_addUniqueId,_togglePanel,_clickHandler,_touchmoveHandler,_clickOutsideHandler,_DOMAttrModifiedHandler,_focusInHandler,_focusOutHandler,_keyDownHandler,_mouseDownHandler,_mouseOverHandler,_mouseOutHandler,_clickToggleHandler,_toggleExpandedEventHandlers,_addEventHandlers,_removeEventHandlers;_getPlugin=function(element){return $(element).closest(":data(plugin_"+pluginName+")").data("plugin_"+pluginName)};_addUniqueId=function(element){element=$(element);let settings=this.settings;if(!element.attr("id")){element.attr("id",settings.uuidPrefix+"-"+(new Date).getTime()+"-"+ ++uuid)}};_togglePanel=function(event,hide){let targetA=$(event.target),targetLi=targetA.closest("li"),html=$("html"),that=this,settings=that.settings,menu=that.menu,isTop=targetLi.hasClass(settings.topItemClass),hasChild=targetLi.hasClass(settings.itemHasChildren),panel=targetA.hasClass(settings.panelClass)?targetA:targetA.closest("."+settings.panelClass),newfocus;_toggleExpandedEventHandlers.call(that,true);if(hide){if(!(targetLi.is(event.relatedTarget)||targetLi.has(event.relatedTarget).length>0)){if((event.type==="mouseout"||event.type==="focusout")&&targetLi.has(document.activeElement).length>0){return}targetLi.find("a[aria-expanded]").attr("aria-expanded","false").removeClass(settings.openClass);targetLi.children("."+settings.panelClass).attr("aria-expanded","false").removeClass(settings.openClass).attr("aria-hidden","true");if(event.type==="keydown"&&event.keyCode===Keyboard.ESCAPE||event.type==="DOMAttrModified"){newfocus=targetLi.find(":tabbable").first();setTimeout(function(){menu.find("[aria-expanded]."+that.settings.panelClass).off("DOMAttrModified.accessible-megamenu");newfocus.focus();that.justFocused=false},99)}}else if(!hasChild){menu.find("[aria-expanded=true]").attr("aria-expanded","false").removeClass(settings.openClass).filter("."+settings.panelClass).attr("aria-hidden","true")}}else{if(hasChild){clearTimeout(that.focusTimeoutID);targetLi.find("a[aria-expanded]").first().attr("aria-expanded","true").addClass(settings.openClass);targetLi.children("."+settings.panelClass).attr("aria-expanded","true").addClass(settings.openClass).attr("aria-hidden","false")}else if(isTop){}else if(!hasChild){}let pageScrollPosition=html[0].scrollTop;let openPanelTopPosition=$("."+settings.panelClass+"."+settings.openClass).parent().offset().top;if(pageScrollPosition>openPanelTopPosition){html[0].scrollTop=openPanelTopPosition}if(event.type==="mouseover"&&targetA.is(":tabbable")&&hasChild&&panel.length===0&&menu.has(document.activeElement).length>0){targetA.focus();that.justFocused=false}_toggleExpandedEventHandlers.call(that)}};_clickHandler=function(event){let target=$(event.target).closest("a[aria-expanded]"),hasChild=target.closest("."+this.settings.itemHasChildren);this.mouseFocused=true;if(hasChild.length===1&&hasChild.find("."+this.settings.panelClass).length>=1){if(!target.hasClass(this.settings.openClass)){event.preventDefault();event.stopPropagation();_togglePanel.call(this,event);this.justFocused=false}else{event.preventDefault();event.stopPropagation();_togglePanel.call(this,event,target.hasClass(this.settings.openClass))}}};_touchmoveHandler=function(){this.justMoved=true};_clickOutsideHandler=function(event){if($(event.target).closest(this.menu).length===0){event.preventDefault();event.stopPropagation();_togglePanel.call(this,event,true)}};_DOMAttrModifiedHandler=function(event){if(event.originalEvent.attrName==="aria-expanded"&&event.originalEvent.newValue==="false"&&$(event.target).hasClass(this.settings.openClass)){event.preventDefault();event.stopPropagation();_togglePanel.call(this,event,true)}};_focusInHandler=function(event){clearTimeout(this.focusTimeoutID);let target=$(event.target),panel=target.closest("."+this.settings.panelClass);if(this.mouseFocused===false){target.addClass(this.settings.focusClass);this.justFocused=!this.mouseFocused||!this.settings.openOnMouseover&&this.mouseFocused;this.mouseFocused=false;if(this.justFocused&&this.panels.not(panel).filter("."+this.settings.openClass).length){_togglePanel.call(this,event)}}};_focusOutHandler=function(event){this.justFocused=false;let that=this,target=$(event.target),hasChild=target.closest("."+this.settings.itemHasChildren);target.removeClass(this.settings.focusClass);if(window.cvox){that.focusTimeoutID=setTimeout(function(){window.cvox.Api.getCurrentNode(function(node){if(hasChild.has(node).length){clearTimeout(that.focusTimeoutID)}else{that.focusTimeoutID=setTimeout(function(scope,event,hide){_togglePanel.call(scope,event,hide)},275,that,event,true)}})},25)}else{that.focusTimeoutID=setTimeout(function(){if(that.mouseFocused&&event.relatedTarget===null){return}_togglePanel.call(that,event,true)},300)}};_keyDownHandler=function(event){let that=this.constructor===AccessibleMegaMenu?this:_getPlugin(this),settings=that.settings,targetA=$($(this).is("."+settings.hoverClass+":tabbable")?this:event.target),targetLi=targetA.closest("li"),menu=that.menu,isSingleTop=targetLi.hasClass(settings.topItemClass),isSubNavEl=targetLi.hasClass(settings.panelGroupClass),hasChildItems=that.hasChildItems,hasChild=targetLi.hasClass(settings.itemHasChildren),tabbables=menu.find(":tabbable"),panel=targetA.hasClass(settings.panelClass)?targetA:targetA.closest("."+settings.panelClass),panelGroups=panel.find("."+settings.panelGroupClass),currentPanelGroup=targetA.closest("."+settings.panelGroupClass),next,keycode=event.keyCode||event.which,start,i,o,label,foun
1d=false,newString=Keyboard.keyMap[event.keyCode]||"",regex;if(targetA.is("input:focus, select:focus, textarea:focus, button:focus")){return}if(targetA.is("."+settings.hoverClass+":tabbable")){$("html").off("keydown.accessible-megamenu")}switch(keycode){case Keyboard.ESCAPE:this.mouseFocused=false;_togglePanel.call(that,event,true);break;case Keyboard.DOWN:event.preventDefault();this.mouseFocused=false;if(hasChild){_togglePanel.call(that,event);found=targetLi.find("."+settings.panelClass+" :tabbable").first().focus().length===1}else{found=tabbables.filter(":gt("+tabbables.index(targetA)+")").first().focus().length===1}if(!found&&isOpera&&(event.ctrlKey||event.metaKey)){i=tabbables.index(targetA);found=$(":tabbable:gt("+tabbables.index(targetA)+")").first().focus().length===1}break;case Keyboard.UP:event.preventDefault();this.mouseFocused=false;if(hasChild){_togglePanel.call(that,event,true);if(isSingleTop||isSubNavEl){next=tabbables.filter(":lt("+tabbables.index(targetA)+")").last().focus()}else{next=targetA.closest("."+settings.topItemClass).siblings("."+settings.topItemClass).last().focus()}if(next.children("."+settings.panelClass).length){found=next.find("[aria-expanded]").attr("aria-expanded","true").addClass(settings.openClass).filter("."+settings.panelClass).attr("aria-hidden","false").find(":tabbable").last().focus()===1}}else if(!hasChild){found=tabbables.filter(":lt("+tabbables.index(targetA)+")").last().focus().length===1}if(!found&&isOpera&&(event.ctrlKey||event.metaKey)){i=tabbables.index(targetA);found=$(":tabbable:lt("+tabbables.index(targetA)+")").first().focus().length===1}break;case Keyboard.RIGHT:event.preventDefault();this.mouseFocused=false;i=tabbables.index(targetA);if(hasChild||isSingleTop){found=tabbables.filter(":gt("+i+")").first().focus().length===1}else{if(panelGroups.length&&currentPanelGroup.length){found=panelGroups.filter(":gt("+panelGroups.index(currentPanelGroup)+")").first().find(":tabbable").first().focus().length===1}if(!found){found=targetLi.find(":tabbable").first().focus().length===1}}break;case Keyboard.LEFT:event.preventDefault();this.mouseFocused=false;i=tabbables.index(targetA);if(hasChild||isSingleTop){found=tabbables.filter(":lt("+i+")").last().focus().length===1}else{if(panelGroups.length&&currentPanelGroup.length){found=panelGroups.filter(":lt("+panelGroups.index(currentPanelGroup)+")").last().find(":tabbable").first().focus().length===1}if(!found){found=targetLi.find(":tabbable").first().focus().length===1}}break;case Keyboard.TAB:this.mouseFocused=false;i=tabbables.index(targetA);if(event.shiftKey&&hasChild&&targetA.hasClass(settings.openClass)){_togglePanel.call(that,event,true);next=hasChildItems.filter(":lt("+hasChildItems.index(targetLi)+")").last();if(next.children("."+settings.panelClass).length){found=next.children().attr("aria-expanded","true").addClass(settings.openClass).filter("."+settings.panelClass).attr("aria-hidden","false").find(":tabbable").last().focus()}}else if(event.shiftKey&&i>0){found=tabbables.filter(":lt("+i+")").last().focus().length===1}else if(!event.shiftKey&&i<tabbables.length-1){found=tabbables.filter(":gt("+i+")").first().focus().length===1}else if(isOpera){i=tabbables.index(targetA);if(event.shiftKey){found=$(":tabbable:lt("+$(":tabbable").index(targetA)+")").last().focus().length===1}else{found=$(":tabbable:gt("+$(":tabbable").index(targetA)+")").first().focus().length===1}}if(found){event.preventDefault()}break;case Keyboard.SPACE:case Keyboard.ENTER:if(hasChild){event.preventDefault();_clickHandler.call(that,event)}else{return true}break;default:clearTimeout(this.keydownTimeoutID);keydownSearchString+=newString!==keydownSearchString?newString:"";if(keydownSearchString.length===0){return}this.keydownTimeoutID=setTimeout(function(){keydownSearchString=""},keydownTimeoutDuration);if(hasChild&&!targetA.hasClass(settings.openClass)){tabbables=tabbables.filter(":not(."+settings.panelClass+" :tabbable)")}else{tabbables=targetLi.find(":tabbable")}if(event.shiftKey){tabbables=$(tabbables.get().reverse())}for(i=0;i<tabbables.length;i++){o=tabbables.eq(i);if(o.is(targetA)){start=keydownSearchString.length===1?i+1:i;break}}regex=new RegExp("^"+keydownSearchString.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&"),"i");for(i=start;i<tabbables.length;i++){o=tabbables.eq(i);label=$.trim(o.text());if(regex.test(label)){found=true;o.focus();break}}if(!found){for(i=0;i<start;i++){o=tabbables.eq(i);label=$.trim(o.text());if(regex.test(label)){o.focus();break}}}break}that.justFocused=false};_mouseDownHandler=function(event){if($(event.target).closest(this.settings.panelClass)||$(event.target).closest(":focusable").length){this.mouseFocused=true;if($(event.target).closest(this.settings.menuClass)){$("html").on("keydown.accessible-megamenu",$.proxy(_keyDownHandler,event.target))}}clearTimeout(this.mouseTimeoutID);this.mouseTimeoutID=setTimeout(function(){clearTimeout(this.focusTimeoutID)},1)};_mouseOverHandler=function(event){clearTimeout(this.mouseTimeoutID);let that=this;this.mouseFocused=true;if(!that.settings.openOnMouseover){return}this.mouseTimeoutID=setTimeout(function(){$(event.target).addClass(that.settings.hoverClass);_togglePanel.call(that,event);if($(event.target).closest(that.settings.menuClass)){$("html").on("keydown.accessible-megamenu",$.proxy(_keyDownHandler,event.target))}},this.settings.openDelay)};_mouseOutHandler=function(event){clearTimeout(this.mouseTimeoutID);let that=this;if(!that.settings.openOnMouseover){return}$(event.target).removeClass(that.settings.hoverClass);that.mouseTimeoutID=setTimeout(function(){_togglePanel.call(that,event,true)},this.settings.closeDelay);if($(event.target).is(":tabbable")){$("html").off("keydown.accessible-megamenu")}};_clickToggleHandler=function(){let isExpanded=this.toggleButton.attr("aria-expanded")==="true";let mainMenu=$("#"+this.settings.menuClass);let siteHeader=mainMenu.closest(".site-header");if(isExpanded){siteHeader.removeClass("expanded-nav")}else{siteHeader.addClass("expanded-nav")}this.toggleButton.attr({"aria-expanded":!isExpanded,"aria-pressed":!isExpanded});mainMenu.attr("aria-expanded",!isExpanded)};_toggleExpandedEventHandlers=function(hide){let menu=this.menu;if(hide){$("html").off("mouseup.outside-accessible-megamenu, touchend.outside-accessible-megamenu, mspointerup.outside-accessible-megamenu,  pointerup.outside-accessible-megamenu");menu.find("[aria-expanded]."+this.settings.panelClass).off("DOMAttrModified.accessible-megamenu")}else{$("html").on("mouseup.outside-accessible-megamenu, touchend.outside-accessible-megamenu, mspointerup.outside-accessible-megamenu,  pointerup.outside-accessible-megamenu",$.proxy(_clickOutsideHandler,this));menu.find("[aria-expanded=true]."+this.settings.panelClass).on("DOMAttrModified.accessible-megamenu",$.proxy(_DOMAttrModifiedHandler,this))}};_addEventHandlers=function(){let menu=this.menu,toggleButton=this.toggleButton;menu.on("focusin.accessible-megamenu",":focusable, ."+this.settings.panelClass,$.proxy(_focusInHandler,this)).on("focusout.accessible-megamenu",":focusable, ."+this.settings.panelClass,$.proxy(_focusOutHandler,this)).on("keydown.accessible-megamenu",$.proxy(_keyDownHandler,this)).on("mouseover.accessible-megamenu",$.proxy(_mouseOverHandler,this)).on("mouseout.accessible-megamenu",$.proxy(_mouseOutHandler,this)).on("mousedown.accessible-megamenu",$.proxy(_mouseDownHandler,this)).on("click.accessible-megamenu",$.proxy(_clickHandler,this));toggleButton.on("click.accessible-megamenu",$.proxy(_clickToggleHandler,this));if(isTouch){menu.on("touchmove.accessible-megamenu",$.proxy(_touchmoveHandler,this))}if($(document.activeElement).closest(menu).length){$(document.activeElement).trigger("focusin.accessible-megamenu")}};_removeEventHandlers=function(){let menu=this.menu,toggleButton=this.toggleButton;menu.off(".accessible-megamenu");if(menu.find("[aria-expanded=true]."+this.settings.panelClass).length){_toggleExpandedEventHandlers.call(this,true)}toggleButton.off(".accessible-megamenu")};return{constructor:AccessibleMegaMenu,init:function(){let settings=this.settings,nav=$(this.element),menu=nav.children("ol,ul").first(),hasChildItems=menu.find("."+settings.itemHasChildren),toggleButton=$("#"+settings.toggleButtonID);this.start(settings,menu,hasChildItems,toggleButton)},start:function(settings,menu,hasChildItems,toggleButton){let that=this;this.settings=settings;this.menu=menu;this.hasChildItems=hasChildItems;this.toggleButton=toggleButton;_addUniqueId.call(that,menu);menu.addClass(settings.menuClass);menu.addClass(["js",settings.menuClass].join("-"));hasChildItems.each(function(i,childItem){let childItemLink,childItemPanel;childItem=$(childItem);childItemLink=childItem.find("a").first();childItemPanel=childItem.children(":not(:tabbable)").last();_addUniqueId.call(that,childItemLink);if(childItemPanel.length&&!childItem.hasClass(settings.ignoreItemClass)){_addUniqueId.call(that,childItemPanel);childItemLink.attr("aria-controls",childItemPanel.attr("id"));childItemPanel.not("[aria-labelledby]").attr("aria-labelledby",childItemLink.attr("id"))}});this.panels=menu.find("."+settings.panelClass);_addEventHandlers.call(this)},destroy:function(){this.menu.removeClass(["js",this.settings.menuClass].join("-"));_removeEventHandlers.call(this,true)},getOption:function(opt){return this.settings[opt]},setOption:function(opt,value,reinitialize){this.settings[opt]=value;if(reinitialize){this.init()}}}}();$.fn[pluginName]=function(options){return this.each(function(){let pluginInstance=$.data(this,"plugin_"+pluginName);if(!pluginInstance){$.data(this,"plugin_"+pluginName,new $.fn[pluginName].Acce
1ssibleMegaMenu(this,options))}else if(typeof pluginInstance[options]==="function"){pluginInstance[options].apply(pluginInstance,Array.prototype.slice.call(arguments,1))}})};$.fn[pluginName].AccessibleMegaMenu=AccessibleMegaMenu;function visible(element){return $.expr.filters.visible(element)&&!$(element).parents().addBack().filter(function(){return $.css(this,"visibility")==="hidden"}).length}function focusable(element,isTabIndexNotNaN){let map,mapName,img,nodeName=element.nodeName.toLowerCase();if("area"===nodeName){map=element.parentNode;mapName=map.name;if(!element.href||!mapName||map.nodeName.toLowerCase()!=="map"){return false}img=$("img[usemap=#"+mapName+"]")[0];return!!img&&visible(img)}return(/input|select|textarea|button|object/.test(nodeName)?!element.disabled:"a"===nodeName?element.href||isTabIndexNotNaN:isTabIndexNotNaN)&&visible(element)}$.extend($.expr[":"],{data:$.expr.createPseudo?$.expr.createPseudo(function(dataName){return function(elem){return!!$.data(elem,dataName)}}):function(elem,i,match){return!!$.data(elem,match[3])},focusable:function(element){return focusable(element,!isNaN($.attr(element,"tabindex")))},tabbable:function(element){let tabIndex=$.attr(element,"tabindex"),isTabIndexNaN=isNaN(tabIndex);return(isTabIndexNaN||tabIndex>=0)&&focusable(element,!isTabIndexNaN)}})})(jQuery,window,document);

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.