1"use strict";class SlideMenu{constructor(element,options){return this._slideMenu=null,this._rootUL=null,this._onExpand=()=>{},this._onNavigate=()=>{},this._currentLevel=0,this._activeUL=null,this._enabled=!0,null===element?console.error("Slide menu not found"):element.classList.contains("slideMenu")?(this._slideMenu=element,this._rootUL=this._slideMenu.querySelector("*>ul, *>.content"),0===this._rootUL.length?console.error("Main ul within .slideMenu not found"):(this._onExpand=(options=options||{}).onExpand||(()=>{}),void(this._onNavigate=options.onNavigate||(()=>{})))):console.error("Invalid slide menu selected")}init(){var activeUL=this._slideMenu.querySelector("ul.active, .content.active");if(null===activeUL)(activeUL=this._rootUL).classList.add("active");else{for(var parentUL=activeUL.parentElement,level=0;null!==parentUL.parentElement&&!parentUL.classList.contains("slideMenu");)"UL"!==parentUL.tagName&&!parentUL.classList.contains("content")||(level++,parentUL.classList.add("expanded")),parentUL=parentUL.parentElement;this._currentLevel=level}this.gotoMenu(activeUL,!1);this.backClickHandler,this.nextClickHandler;this._slideMenu.addEventListener("click",event=>{null!=event.target.closest(".back",this._slideMenu)&&this.backClickHandler(event)}),this._slideMenu.addEventListener("click",event=>{var element=event.target.closest(".next",this._slideMenu);null!=element&&this.nextClickHandler(event,element)})}enable(){this._enabled=!0}disable(){this._enabled=!1,this._slideMenu.style.height="",this._transform("")}_transform(transformStyle){this._rootUL.style.transform=transformStyle,this._rootUL.style.webkitTransform=transformStyle,this._rootUL.style.msTransform=transformStyle}gotoMenu(activeUL,animate){void 0===animate&&(animate=!0),activeUL.classList.add("expanded");activeUL=activeUL.offsetHeight,this._slideMenu.style.height=activeUL+"px",this._slideMenu.classList[animate?"remove":"add"]("noAnimation"),activeUL="translateX("+-100*this._currentLevel+"%)";this._transform(activeUL)}nextClickHandler(event,element){this._enabled&&(event.preventDefault(),this._slideMenu.querySelectorAll("ul.active .expanded, .content.active .expanded").forEach(ulElm=>ulElm.classList.remove("expanded")),event=(event=this._slideMenu.querySelector("ul.active, .content.active"))||this._rootUL,element=element.parentElement.querySelector("*>ul, *>.content"),event.classList.remove("active"),element.classList.add("active"),this._currentLevel++,this.gotoMenu(element),this._onExpand(element),this._onNavigate(element))}backClickHandler(event){var newActiveUL;this._enabled&&(event.preventDefault(),newActiveUL=(event=(event=this._slideMenu.querySelector("ul.active, .content.active"))||this._rootUL).parentElement.closest("ul.expanded, .content.expanded"),event.classList.remove("active"),newActiveUL.classList.add("active"),this._currentLevel--,this.gotoMenu(newActiveUL),this._onNavigate(newActiveUL))}}export default SlideMenu; 2//# sourceMappingURL=/resources/compiled/js/med24/modules/slide-menu.js.map
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.