"use strict"; const ANIMATION_DURATION = 300; const sidebar = document.getElementById("sidebar"); let mainContentDiv = document.querySelector(".main-content"); const slideHasSub = document.querySelectorAll(".nav > ul > .slide.has-sub"); const firstLevelItems = document.querySelectorAll( ".nav > ul > .slide.has-sub > a" ); const innerLevelItems = document.querySelectorAll( ".nav > ul > .slide.has-sub .slide.has-sub > a" ); let html = document.querySelector("html"); class PopperObject { instance = null; reference = null; popperTarget = null; constructor(reference, popperTarget) { this.init(reference, popperTarget); } init(reference, popperTarget) { this.reference = reference; this.popperTarget = popperTarget; this.instance = Popper.createPopper(this.reference, this.popperTarget, { placement: "bottom", strategy: "relative", resize: true, modifiers: [ { name: "computeStyles", options: { adaptive: false, }, }, ], }); document.addEventListener( "click", (e) => this.clicker(e, this.popperTarget, this.reference), false ); const ro = new ResizeObserver(() => { this.instance.update(); }); ro.observe(this.popperTarget); ro.observe(this.reference); } clicker(event, popperTarget, reference) { if ( sidebar.classList.contains("collapsed") && !popperTarget.contains(event.target) && !reference.contains(event.target) ) { this.hide(); } } hide() { // this.instance.state.elements.popper.style.visibility = "hidden"; } } class Poppers { subMenuPoppers = []; constructor() { this.init(); } init() { slideHasSub.forEach((element) => { this.subMenuPoppers.push( new PopperObject(element, element.lastElementChild) ); this.closePoppers(); }); } togglePopper(target) { if ( window.getComputedStyle(target).visibility === "hidden" && window.getComputedStyle(target).visibility === undefined ) target.style.visibility = "visible"; else target.style.visibility = "hidden"; } updatePoppers() { this.subMenuPoppers.forEach((element) => { element.instance.state.elements.popper.style.display = "none"; element.instance.update(); }); } closePoppers() { this.subMenuPoppers.forEach((element) => { element.hide(); }); } } const slideUp = (target, duration = ANIMATION_DURATION) => { const { parentElement } = target; parentElement.classList.remove("open"); target.style.transitionProperty = "height, margin, padding"; target.style.transitionDuration = `${duration}ms`; target.style.boxSizing = "border-box"; target.style.height = `${target.offsetHeight}px`; target.offsetHeight; target.style.overflow = "hidden"; target.style.height = 0; target.style.paddingTop = 0; target.style.paddingBottom = 0; target.style.marginTop = 0; target.style.marginBottom = 0; window.setTimeout(() => { target.style.display = "none"; target.style.removeProperty("height"); target.style.removeProperty("padding-top"); target.style.removeProperty("padding-bottom"); target.style.removeProperty("margin-top"); target.style.removeProperty("margin-bottom"); target.style.removeProperty("overflow"); target.style.removeProperty("transition-duration"); target.style.removeProperty("transition-property"); }, duration); const listItem = target.closest("li"); if (listItem) { // Find the first sibling