class MudElementReference{constructor(){this.listenerId=0;this.eventListeners={}}focus(element){element&&element.focus()}focusFirst(element,skip=0,min=0){if(element){let tabbables=getTabbableElements(element);tabbables.length<=min?element.focus():tabbables[skip].focus()}}focusLast(element,skip=0,min=0){if(element){let tabbables=getTabbableElements(element);tabbables.length<=min?element.focus():tabbables[tabbables.length-skip-1].focus()}}saveFocus(element){element&&(element.mudblazor_savedFocus=document.activeElement)}restoreFocus(element){if(element){let previous=element.mudblazor_savedFocus;delete element.mudblazor_savedFocus;previous&&previous.focus()}}selectRange(element,pos1,pos2){if(element){if(element.createTextRange){let selRange=element.createTextRange();selRange.collapse(!0);selRange.moveStart("character",pos1);selRange.moveEnd("character",pos2);selRange.select()}else element.setSelectionRange?element.setSelectionRange(pos1,pos2):element.selectionStart&&(element.selectionStart=pos1,element.selectionEnd=pos2);element.focus()}}select(element){element&&element.select()}getClientRectFromParent(element){if(element){let parent=element.parentElement;if(parent)return this.getBoundingClientRect(parent)}}getClientRectFromFirstChild(element){if(element){let child=element.children&&element.children[0];if(child)return this.getBoundingClientRect(child)}}getBoundingClientRect(element){if(element){var rect=JSON.parse(JSON.stringify(element.getBoundingClientRect()));return rect.scrollY=window.scrollY||document.documentElement.scrollTop,rect.scrollX=window.scrollX||document.documentElement.scrollLeft,rect.windowHeight=window.innerHeight,rect.windowWidth=window.innerWidth,rect}}hasFixedAncestors(element){for(;element&&element!==document;element=element.parentNode)if(window.getComputedStyle(element).getPropertyValue("position")==="fixed")return!0;return!1}changeCss(element,css){element&&(element.className=css)}changeCssVariable(element,name,newValue){element&&element.style.setProperty(name,newValue)}addEventListener(element,dotnet,event,callback,spec,stopPropagation){let listener=function(e){const args=Array.from(spec,x=>serializeParameter(e,x));dotnet.invokeMethodAsync(callback,...args);stopPropagation&&e.stopPropagation()};return element.addEventListener(event,listener),this.eventListeners[++this.listenerId]=listener,this.listenerId}removeEventListener(element,event,eventId){element.removeEventListener(event,this.eventListeners[eventId]);delete this.eventListeners[eventId]}}window.mudElementRef=new MudElementReference;class MudThrottledEventManager{constructor(){this.mapper={}}subscribe(eventName,elementId,projection,throotleInterval,key,properties,dotnetReference){const handlerRef=this.throttleEventHandler.bind(this,key);let elem=document.getElementById(elementId);if(elem){elem.addEventListener(eventName,handlerRef,!1);let projector=null;if(projection){const parts=projection.split(".");let functionPointer=window,functionReferenceFound=!0;if(parts.length==0||parts.length==1)functionPointer=functionPointer[projection];else for(let i=0;ielement.querySelectorAll("a[href]:not([tabindex='-1']),area[href]:not([tabindex='-1']),button:not([disabled]):not([tabindex='-1']),input:not([disabled]):not([tabindex='-1']):not([type='hidden']),select:not([disabled]):not([tabindex='-1']),textarea:not([disabled]):not([tabindex='-1']),iframe:not([tabindex='-1']),details:not([tabindex='-1']),[tabindex]:not([tabindex='-1']),[contentEditable=true]:not([tabindex='-1']");window.serializeParameter=(data,spec)=>{if(typeof data=="undefined"||data===null)return null;if(typeof data=="number"||typeof data=="string"||typeof data=="boolean")return data;let res=Array.isArray(data)?[]:{};spec||(spec="*");for(let i in data){let currentMember=data[i];if(typeof currentMember!="function"&¤tMember!==null){let currentMemberSpec;if(spec!="*"){if(currentMemberSpec=Array.isArray(data)?spec:spec[i],!currentMemberSpec)continue}else currentMemberSpec="*";if(typeof currentMember=="object")if(Array.isArray(currentMember)||currentMember.length){res[i]=[];for(let j=0;j{};this.logger("[MudBlazor | KeyInterceptor] Interceptor initialized",{options})}connect(element){var targetClass,whitespace;if(this._options){if(!this._options.keys)throw"_options.keys: array of KeyOptions expected";if(!this._options.targetClass)throw"_options.targetClass: css class name expected";if(!this._observer){targetClass=this._options.targetClass;this.logger("[MudBlazor | KeyInterceptor] Start observing DOM of element for changes to child with class ",{element,targetClass});this._element=element;this._observer=new MutationObserver(this.onDomChanged);this._observer.mudKeyInterceptor=this;this._observer.observe(this._element,{attributes:!1,childList:!0,subtree:!0});this._observedChildren=[];this._keyOptions={};this._regexOptions=[];for(const keyOption of this._options.keys){if(!keyOption||!keyOption.key){this.logger("[MudBlazor | KeyInterceptor] got invalid key options: ",keyOption);continue}keyOption.key.length>2&&keyOption.key.startsWith("/")&&keyOption.key.endsWith("/")?(keyOption.regex=new RegExp(keyOption.key.substring(1,keyOption.key.length-1)),this._regexOptions.push(keyOption)):this._keyOptions[keyOption.key.toLowerCase()]=keyOption;whitespace=new RegExp("\\s","g");keyOption.preventDown=(keyOption.preventDown||"none").replaceAll(whitespace,"").toLowerCase();keyOption.preventUp=(keyOption.preventUp||"none").replaceAll(whitespace,"").toLowerCase();keyOption.stopDown=(keyOption.stopDown||"none").replaceAll(whitespace,"").toLowerCase();keyOption.stopUp=(keyOption.stopUp||"none").replaceAll(whitespace,"").toLowerCase()}this.logger("[MudBlazor | KeyInterceptor] key options: ",this._keyOptions);this._regexOptions.size>0&&this.logger("[MudBlazor | KeyInterceptor] regex options: ",this._regexOptions);for(const child of this._element.getElementsByClassName(targetClass))this.attachHandlers(child)}}}disconnect(){if(this._observer){this.logger("[MudBlazor | KeyInterceptor] disconnect mutation observer and event handlers");this._observer.disconnect();this._observer=null;for(const child of this._observedChildren)this.detachHandlers(child)}}attachHandlers(child){(this.logger("[MudBlazor | KeyInterceptor] attaching handlers ",{child}),this._observedChildren.indexOf(child)>-1)||(child.mudKeyInterceptor=this,child.addEventListener("keydown",this.onKeyDown),child.addEventListener("keyup",this.onKeyUp),this._observedChildren.push(child))}detachHandlers(child){this.logger("[MudBlazor | KeyInterceptor] detaching handlers ",{child});child.removeEventListener("keydown",this.onKeyDown);child.removeEventListener("keyup",this.onKeyUp);this._observedChildren=this._observedChildren.filter(x=>x!==child)}onDomChanged(mutationsList){var self=this.mudKeyInterceptor,targetClass=self._options.targetClass;for(const mutation of mutationsList){for(const element of mutation.addedNodes)element.classList&&element.classList.contains(targetClass)&&self.attachHandlers(element);for(const element of mutation.removedNodes)element.classList&&element.classList.contains(targetClass)&&self.detachHandlers(element)}}matchesKeyCombination(option,args){var combi;if(!option||option==="none")return!1;if(option==="any")return!0;var shift=args.shiftKey,ctrl=args.ctrlKey,alt=args.altKey,meta=args.metaKey,any=shift||ctrl||alt||meta;return any&&option==="key+any"?!0:!any&&option.includes("key+none")?!0:any?(combi=`key${shift?"+shift":""}${ctrl?"+ctrl":""}${alt?"+alt":""}${meta?"+meta":""}`,option.includes(combi)):!1}onKeyDown(args){var self=this.mudKeyInterceptor,key=args.key.toLowerCase(),invoke,keyOptions,eventArgs;self.logger('[MudBlazor | KeyInterceptor] down "'+key+'"',args);invoke=!1;self._keyOptions.hasOwnProperty(key)&&(keyOptions=self._keyOptions[key],self.logger('[MudBlazor | KeyInterceptor] options for "'+key+'"',keyOptions),self.processKeyDown(args,keyOptions),keyOptions.subscribeDown&&(invoke=!0));for(const keyOptions of self._regexOptions)keyOptions.regex.test(key)&&(self.logger('[MudBlazor | KeyInterceptor] regex options for "'+key+'"',keyOptions),self.processKeyDown(args,keyOptions),keyOptions.subscribeDown&&(invoke=!0));invoke&&(eventArgs=self.toKeyboardEventArgs(args),eventArgs.Type="keydown",self._dotNetRef.invokeMethodAsync("OnKeyDown",eventArgs))}processKeyDown(args,keyOptions){this.matchesKeyCombination(keyOptions.preventDown,args)&&args.preventDefault();this.matchesKeyCombination(keyOptions.stopDown,args)&&args.stopPropagation()}onKeyUp(args){var self=this.mudKeyInterceptor,key=args.key.toLowerCase(),invoke,keyOptions,eventArgs;self.logger('[MudBlazor | KeyInterceptor] up "'+key+'"',args);invoke=!1;self._keyOptions.hasOwnProperty(key)&&(keyOptions=self._keyOptions[key],self.processKeyUp(args,keyOptions),keyOptions.subscribeUp&&(invoke=!0));for(const keyOptions of self._regexOptions)keyOptions.regex.test(key)&&(self.processKeyUp(args,keyOptions),keyOptions.subscribeUp&&(invoke=!0));invoke&&(eventArgs=self.toKeyboardEventArgs(args),eventArgs.Type="keyup",self._dotNetRef.invokeMethodAsync("OnKeyUp",eventArgs))}processKeyUp(args,keyOptions){this.matchesKeyCombination(keyOptions.preventUp,args)&&args.preventDefault();this.matchesKeyCombination(keyOptions.stopUp,args)&&args.stopPropagation()}toKeyboardEventArgs(args){return{Key:args.key,Code:args.code,Location:args.location,Repeat:args.repeat,CtrlKey:args.ctrlKey,ShiftKey:args.shiftKey,AltKey:args.altKey,MetaKey:args.metaKey}}}window.mudpopoverHelper={calculatePopoverPosition:function(list,boundingRect,selfRect){let top=0,left=0;list.indexOf("mud-popover-anchor-top-left")>=0?(left=boundingRect.left,top=boundingRect.top):list.indexOf("mud-popover-anchor-top-center")>=0?(left=boundingRect.left+boundingRect.width/2,top=boundingRect.top):list.indexOf("mud-popover-anchor-top-right")>=0?(left=boundingRect.left+boundingRect.width,top=boundingRect.top):list.indexOf("mud-popover-anchor-center-left")>=0?(left=boundingRect.left,top=boundingRect.top+boundingRect.height/2):list.indexOf("mud-popover-anchor-center-center")>=0?(left=boundingRect.left+boundingRect.width/2,top=boundingRect.top+boundingRect.height/2):list.indexOf("mud-popover-anchor-center-right")>=0?(left=boundingRect.left+boundingRect.width,top=boundingRect.top+boundingRect.height/2):list.indexOf("mud-popover-anchor-bottom-left")>=0?(left=boundingRect.left,top=boundingRect.top+boundingRect.height):list.indexOf("mud-popover-anchor-bottom-center")>=0?(left=boundingRect.left+boundingRect.width/2,top=boundingRect.top+boundingRect.height):list.indexOf("mud-popover-anchor-bottom-right")>=0&&(left=boundingRect.left+boundingRect.width,top=boundingRect.top+boundingRect.height);let offsetX=0,offsetY=0;return list.indexOf("mud-popover-top-left")>=0?(offsetX=0,offsetY=0):list.indexOf("mud-popover-top-center")>=0?(offsetX=-selfRect.width/2,offsetY=0):list.indexOf("mud-popover-top-right")>=0?(offsetX=-selfRect.width,offsetY=0):list.indexOf("mud-popover-center-left")>=0?(offsetX=0,offsetY=-selfRect.height/2):list.indexOf("mud-popover-center-center")>=0?(offsetX=-selfRect.width/2,offsetY=-selfRect.height/2):list.indexOf("mud-popover-center-right")>=0?(offsetX=-selfRect.width,offsetY=-selfRect.height/2):list.indexOf("mud-popover-bottom-left")>=0?(offsetX=0,offsetY=-selfRect.height):list.indexOf("mud-popover-bottom-center")>=0?(offsetX=-selfRect.width/2,offsetY=-selfRect.height):list.indexOf("mud-popover-bottom-right")>=0&&(offsetX=-selfRect.width,offsetY=-selfRect.height),{top:top,left:left,offsetX:offsetX,offsetY:offsetY}},flipClassReplacements:{top:{"mud-popover-top-left":"mud-popover-bottom-left","mud-popover-top-center":"mud-popover-bottom-center","mud-popover-anchor-bottom-center":"mud-popover-anchor-top-center","mud-popover-top-right":"mud-popover-bottom-right"},left:{"mud-popover-top-left":"mud-popover-top-right","mud-popover-center-left":"mud-popover-center-right","mud-popover-anchor-center-right":"mud-popover-anchor-center-left","mud-popover-bottom-left":"mud-popover-bottom-right"},right:{"mud-popover-top-right":"mud-popover-top-left","mud-popover-center-right":"mud-popover-center-left","mud-popover-anchor-center-left":"mud-popover-anchor-center-right","mud-popover-bottom-right":"mud-popover-bottom-left"},bottom:{"mud-popover-bottom-left":"mud-popover-top-left","mud-popover-bottom-center":"mud-popover-top-center","mud-popover-anchor-top-center":"mud-popover-anchor-bottom-center","mud-popover-bottom-right":"mud-popover-top-right"},"top-and-left":{"mud-popover-top-left":"mud-popover-bottom-right"},"top-and-right":{"mud-popover-top-right":"mud-popover-bottom-left"},"bottom-and-left":{"mud-popover-bottom-left":"mud-popover-top-right"},"bottom-and-right":{"mud-popover-bottom-right":"mud-popover-top-left"}},flipMargin:0,getPositionForFlippedPopver:function(inputArray,selector,boundingRect,selfRect){const classList=[];for(var i=0;i0&&(appBarOffset=appBarElements[0].getBoundingClientRect().height);const graceMargin=window.mudpopoverHelper.flipMargin,deltaToLeft=left+offsetX,deltaToRight=window.innerWidth-left-selfRect.width,deltaTop=top-selfRect.height-appBarOffset,spaceToTop=top-appBarOffset,deltaBottom=window.innerHeight-top-selfRect.height;let selector=popoverContentNode.mudPopoverFliped;if(selector||(classList.contains("mud-popover-top-left")?deltaBottom=selfRect.height&&deltaToLeft>=selfRect.width?selector="top-and-left":deltaBottom=selfRect.height?selector="top":deltaToRight=selfRect.width&&(selector="left"):classList.contains("mud-popover-top-center")?deltaBottom=selfRect.height&&(selector="top"):classList.contains("mud-popover-top-right")?deltaBottom=selfRect.height&&deltaToRight>=selfRect.width?selector="top-and-right":deltaBottom=selfRect.height?selector="top":deltaToLeft=selfRect.width&&(selector="right"):classList.contains("mud-popover-center-left")?deltaToRight=selfRect.width&&(selector="left"):classList.contains("mud-popover-center-right")?deltaToLeft=selfRect.width&&(selector="right"):classList.contains("mud-popover-bottom-left")?deltaTop=0&&deltaToLeft>=selfRect.width?selector="bottom-and-left":deltaTop=0?selector="bottom":deltaToRight=selfRect.width&&(selector="left"):classList.contains("mud-popover-bottom-center")?deltaTop=0&&(selector="bottom"):classList.contains("mud-popover-bottom-right")&&(deltaTop=0&&deltaToRight>=selfRect.width?selector="bottom-and-right":deltaTop=0?selector="bottom":deltaToLeft=selfRect.width&&(selector="right"))),selector&&selector!="none"){const newPosition=window.mudpopoverHelper.getPositionForFlippedPopver(classListArray,selector,boundingRect,selfRect);left=newPosition.left;top=newPosition.top;offsetX=newPosition.offsetX;offsetY=newPosition.offsetY;popoverContentNode.setAttribute("data-mudpopover-flip","flipped")}else popoverContentNode.removeAttribute("data-mudpopover-flip");classList.contains("mud-popover-overflow-flip-onopen")&&(popoverContentNode.mudPopoverFliped||(popoverContentNode.mudPopoverFliped=selector??"none"))}popoverContentNode.classList.contains("mud-popover-fixed")||(window.getComputedStyle(popoverNode).position=="fixed"?popoverContentNode.style.position="fixed":(offsetX+=window.scrollX,offsetY+=window.scrollY));popoverContentNode.style.left=left+offsetX+"px";popoverContentNode.style.top=top+offsetY+"px";window.getComputedStyle(popoverNode).getPropertyValue("z-index")!="auto"&&(popoverContentNode.style["z-index"]=window.getComputedStyle(popoverNode).getPropertyValue("z-index"))}},placePopoverByClassSelector:function(classSelector=null){var items=window.mudPopover.getAllObservedContainers();for(let i=0;i{window.mudpopoverHelper.placePopoverByClassSelector()}),this.contentObserver.observe(mainContent[0])))}connect(id){this.initilize(this.mainContainerClass);const popoverNode=document.getElementById("popover-"+id),popoverContentNode=document.getElementById("popovercontent-"+id);if(popoverNode&&popoverNode.parentNode&&popoverContentNode){window.mudpopoverHelper.placePopover(popoverNode);const observer=new MutationObserver(this.callback.bind(this,id));observer.observe(popoverContentNode,{attributeFilter:["class"]});const resizeObserver=new ResizeObserver(entries=>{for(let entry of entries){const target=entry.target;for(var i=0;i{for(let entry of entries){var target=entry.target;window.mudpopoverHelper.placePopoverByNode(target)}});contentNodeObserver.observe(popoverContentNode);this.map[id]={mutationObserver:observer,resizeObserver:resizeObserver,contentNodeObserver:contentNodeObserver}}}disconnect(id){if(this.map[id]){const item=this.map[id];item.mutationObserver.disconnect();item.resizeObserver.disconnect();item.contentNodeObserver.disconnect();delete this.map[id]}}dispose(){for(var i in this.map)disconnect(i);this.contentObserver.disconnect();this.contentObserver=null}getAllObservedContainers(){const result=[];for(var i in this.map)result.push(i);return result}}window.mudPopover=new MudPopover;window.addEventListener("scroll",()=>{window.mudpopoverHelper.placePopoverByClassSelector("mud-popover-fixed"),window.mudpopoverHelper.placePopoverByClassSelector("mud-popover-overflow-flip-always")});window.addEventListener("resize",()=>{window.mudpopoverHelper.placePopoverByClassSelector()});class MudResizeListener{constructor(id){this.logger=function(){};this.options={};this.throttleResizeHandlerId=-1;this.dotnet=undefined;this.breakpoint=-1;this.id=id}listenForResize(dotnetRef,options){if(this.dotnet){this.options=options;return}this.options=options;this.dotnet=dotnetRef;this.logger=options.enableLogging?console.log:()=>{};this.logger(`[MudBlazor] Reporting resize events at rate of: ${(this.options||{}).reportRate||100}ms`);window.addEventListener("resize",this.throttleResizeHandler.bind(this),!1);this.options.suppressInitEvent||this.resizeHandler();this.breakpoint=this.getBreakpoint(window.innerWidth)}throttleResizeHandler(){clearTimeout(this.throttleResizeHandlerId);this.throttleResizeHandlerId=window.setTimeout(this.resizeHandler.bind(this),(this.options||{}).reportRate||100)}resizeHandler(){if(this.options.notifyOnBreakpointOnly){let bp=this.getBreakpoint(window.innerWidth);if(bp==this.breakpoint)return;this.breakpoint=bp}try{this.id?this.dotnet.invokeMethodAsync("RaiseOnResized",{height:window.innerHeight,width:window.innerWidth},this.getBreakpoint(window.innerWidth),this.id):this.dotnet.invokeMethodAsync("RaiseOnResized",{height:window.innerHeight,width:window.innerWidth},this.getBreakpoint(window.innerWidth))}catch(error){this.logger("[MudBlazor] Error in resizeHandler:",{error})}}cancelListener(){this.dotnet=undefined;window.removeEventListener("resize",this.throttleResizeHandler)}matchMedia(query){return window.matchMedia(query).matches}getBrowserWindowSize(){return{height:window.innerHeight,width:window.innerWidth}}getBreakpoint(width){return width>=this.options.breakpointDefinitions.Xl?4:width>=this.options.breakpointDefinitions.Lg?3:width>=this.options.breakpointDefinitions.Md?2:width>=this.options.breakpointDefinitions.Sm?1:0}}window.mudResizeListener=new MudResizeListener;window.mudResizeListenerFactory={mapping:{},listenForResize:(dotnetRef,options,id)=>{var map=window.mudResizeListenerFactory.mapping,listener;map[id]||(listener=new MudResizeListener(id),listener.listenForResize(dotnetRef,options),map[id]=listener)},cancelListener:id=>{var map=window.mudResizeListenerFactory.mapping,listener;map[id]&&(listener=map[id],listener.cancelListener(),delete map[id])},cancelListeners:ids=>{for(let i=0;i{};this.options=options;this._dotNetRef=dotNetRef;delay=(this.options||{}).reportRate||200;this.throttleResizeHandlerId=-1;observervedElements=[];this._observervedElements=observervedElements;this.logger("[MudBlazor | ResizeObserver] Observer initilized");this._resizeObserver=new ResizeObserver(entries=>{var changes=[],target,affectedObservedElement,size;this.logger("[MudBlazor | ResizeObserver] changes detected");for(let entry of entries)target=entry.target,affectedObservedElement=observervedElements.find(x=>x.element==target),affectedObservedElement&&(size=entry.target.getBoundingClientRect(),affectedObservedElement.isInitilized==!0?changes.push({id:affectedObservedElement.id,size:size}):affectedObservedElement.isInitilized=!0);changes.length>0&&(this.throttleResizeHandlerId>=0&&clearTimeout(this.throttleResizeHandlerId),this.throttleResizeHandlerId=window.setTimeout(this.resizeHandler.bind(this,changes),delay))})}resizeHandler(changes){try{this.logger("[MudBlazor | ResizeObserver] OnSizeChanged handler invoked");this._dotNetRef.invokeMethodAsync("OnSizeChanged",changes)}catch(error){this.logger("[MudBlazor | ResizeObserver] Error in OnSizeChanged handler:",{error})}}connect(elements,ids){var result=[],i,newEntry;for(this.logger("[MudBlazor | ResizeObserver] Start observing elements..."),i=0;ix.id==elementId);affectedObservedElement&&(element=affectedObservedElement.element,this._resizeObserver.unobserve(element),this.logger("[MudBlazor | ResizeObserver] Element found. Ubobserving size changes of element",{element}),index=this._observervedElements.indexOf(affectedObservedElement),this._observervedElements.splice(index,1))}cancelListener(){this.logger("[MudBlazor | ResizeObserver] Closing ResizeObserver. Detaching all observed elements");this._resizeObserver.disconnect();this._dotNetRef=undefined}}window.mudResizeObserver=new MudResizeObserverFactory;class MudScrollListener{constructor(){this.throttleScrollHandlerId=-1}listenForScroll(dotnetReference,selector){let element=selector?document.querySelector(selector):document;element.addEventListener("scroll",this.throttleScrollHandler.bind(this,dotnetReference),!1)}throttleScrollHandler(dotnetReference,event){clearTimeout(this.throttleScrollHandlerId);this.throttleScrollHandlerId=window.setTimeout(this.scrollHandler.bind(this,dotnetReference,event),100)}scrollHandler(dotnetReference,event){try{let element=event.target,scrollTop=element.scrollTop,scrollHeight=element.scrollHeight,scrollWidth=element.scrollWidth,scrollLeft=element.scrollLeft,nodeName=element.nodeName,firstChild=element.firstElementChild,firstChildBoundingClientRect=firstChild.getBoundingClientRect();dotnetReference.invokeMethodAsync("RaiseOnScroll",{firstChildBoundingClientRect,scrollLeft,scrollTop,scrollHeight,scrollWidth,nodeName})}catch(error){console.log("[MudBlazor] Error in scrollHandler:",{error})}}cancelListener(selector){let element=selector?document.querySelector(selector):document.documentElement;element.removeEventListener("scroll",this.throttleScrollHandler)}}window.mudScrollListener=new MudScrollListener;class MudScrollManager{scrollToFragment(elementId,behavior){let element=document.getElementById(elementId);element&&element.scrollIntoView({behavior,block:"center",inline:"start"})}scrollToYear(elementId){let element=document.getElementById(elementId);element&&(element.parentNode.scrollTop=element.offsetTop-element.parentNode.offsetTop-element.scrollHeight*3)}scrollToListItem(elementId,increment,onEdges){let element=document.getElementById(elementId);if(element){let parent=element.parentElement;if(increment==0){parent.scrollTop=0;return}let{bottom:eBottom,height:eHeight,top:eTop}=element.getBoundingClientRect(),{bottom:pBottom,top:pTop}=parent.getBoundingClientRect(),dHeight=eHeight;const absIncrement=Math.abs(increment);if(absIncrement>1&&(dHeight=parent.querySelector(".mud-list-item-disabled")?.getBoundingClientRect().height??eHeight),pBottom-eBottom<=0&&increment>0||eTop-pTop<=0&&increment<0||!onEdges){const multiplicator=increment/absIncrement;parent.scrollTop+=(eHeight+(absIncrement-1)*dHeight)*multiplicator}}}scrollTo(selector,left,top,behavior){let element=document.querySelector(selector)||document.documentElement;element.scrollTo({left,top,behavior})}scrollToBottom(selector){let element=document.querySelector(selector);element?element.scrollTop=element.scrollHeight:window.scrollTo(0,document.body.scrollHeight)}lockScroll(selector,lockclass){let element=document.querySelector(selector)||document.body,hasScrollBar=window.innerWidth>document.body.clientWidth;hasScrollBar&&element.classList.add(lockclass)}unlockScroll(selector,lockclass){let element=document.querySelector(selector)||document.body;element.classList.remove(lockclass)}}window.mudScrollManager=new MudScrollManager;class MudScrollSpy{constructor(){this.scrollToSectionRequested=null;this.lastKnowElement=null;this.handlerRef=null}spying(dotnetReference,selector){this.scrollToSectionRequested=null;this.lastKnowElement=null;this.handlerRef=this.handleScroll.bind(this,selector,dotnetReference);document.addEventListener("scroll",this.handlerRef,!0);window.addEventListener("resize",this.handlerRef,!0)}handleScroll(dotnetReference,selector){const elements=document.getElementsByClassName(selector);if(elements.length!==0){const center=window.innerHeight/2;let minDifference=Number.MAX_SAFE_INTEGER,elementId="";for(let i=0;i