PageSourceSearch

https://sau.edu/media/developer-assets/js/navigation/submenu-height.js

js sau.edu collected 2026-10-02 04:06:54 UTC 1,747 bytes, 52 lines download raw bytes

1const setUniformSubmenuHeightForAcademicPrograms = () => {
2  let maxHeight = 0;
3
4  // Find the "Academic Programs" top-level menu item
5  const academicProgramsMenuItem = Array.from(document.querySelectorAll('.top-level > a')).find(anchor => anchor.textContent.trim() === "Academic Programs");
6
7  // If "Academic Programs" is found, select its submenus; otherwise, select none
8  const submenus = academicProgramsMenuItem ? academicProgramsMenuItem.closest('.top-level').querySelectorAll('.multilevel-linkul-0, .multilevel-linkul-1, .multilevel-linkul-2') : [];
9
10  // Temporarily make submenus visible for height calculation
11  submenus.forEach(submenu => {
12    submenu.style.cssText = `
13		height: unset;
14		visibility: hidden;
15		display:block;
16	`;// reset the dynamically generated height
17
18    maxHeight = Math.max(maxHeight, submenu.offsetHeight);
19  });
20
21  submenus.forEach(submenu => {
22    // Apply the maximum height to "Academic Programs" submenus
23	submenu.style.cssText = `
24		height: ${maxHeight}px;
25		visibility: unset;
26		display:none;
27	`;
28
29  });
30};
31
32document.addEventListener('DOMContentLoaded', function () {
33  // Timeout to ensure dynamic content is loaded
34  setTimeout(() => {
35      setUniformSubmenuHeightForAcademicPrograms();
36  }, 15); // Adjust timeout as needed
37});
38
39
40let bottomNavigationResizeTimeoutId = null;
41
42// Recalculate heights on window resize
43window.addEventListener('resize', () => {
44    if (bottomNavigationResizeTimeoutId !== null) {
45        clearTimeout(bottomNavigationResizeTimeoutId);
46    }
47
48    bottomNavigationResizeTimeoutId = setTimeout(() => {
49		setUniformSubmenuHeightForAcademicPrograms()
50        console.log('fires once when resizing stops');
51    }, 300);
52});

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.