@columbia-libraries/cul-toolkit
Version:
CUL customized Bootstrap 5 with Vite! Intended only for CUL projects and therefore unsupported.
124 lines (123 loc) • 19 kB
JavaScript
/*!
* CUL Menu v5.3.1
* (c) 2026
*/
const b = [{ href: "https://library.columbia.edu/libraries.html", value: "Libraries & Affiliates" }, { href: "https://library.columbia.edu/libraries/avery.html", value: "Avery Architectural & Fine Arts Library" }, { href: "https://library.columbia.edu/libraries/burke.html", value: "Burke Library at Union Theological Seminary" }, { href: "https://library.columbia.edu/libraries/business.html", value: "Business & Economics Library in Uris" }, { href: "https://library.columbia.edu/libraries/business-manhattanville.html", value: "Business Library at Manhattanville" }, { href: "https://library.columbia.edu/libraries/butler.html", value: "Butler Library" }, { href: "https://library.columbia.edu/libraries/eastasian.html", value: "C.V. Starr East Asian Library" }, { href: "https://library.columbia.edu/libraries/music.html", value: "Gabe M. Wiener Music & Arts Library" }, { href: "https://library.cumc.columbia.edu/", value: "Health Sciences Library" }, { href: "https://library.columbia.edu/libraries/journalism.html", value: "Journalism Library" }, { href: "https://library.columbia.edu/libraries/lehman.html", value: "Lehman Social Sciences Library" }, { href: "http://www.law.columbia.edu/library/", value: "Li Lu Law Library" }, { href: "https://library.columbia.edu/libraries/math.html", value: "Mathematics Library" }, { href: "https://library.columbia.edu/libraries/rbml.html", value: "Rare Book & Manuscript Library" }, { href: "https://library.columbia.edu/libraries/science-engineering.html", value: "Science & Engineering Library" }, { href: "https://library.columbia.edu/libraries/social-work.html", value: "Social Work Library" }], n = [{ href: "https://library.columbia.edu/collections.html", value: "About Our Collections" }, { href: "https://academiccommons.columbia.edu/", value: "Academic Commons" }, { href: "https://library.columbia.edu/collections/archives-portal.html", value: "Archival Collections" }, { href: "https://resolver.library.columbia.edu/clio", value: "CLIO: Columbia Libraries Catalog" }, { href: "https://library.columbia.edu/about/policies/collection-development.html", value: "Collection Development" }, { href: "https://dlc.library.columbia.edu", value: "Digital Collections" }, { href: "https://library.columbia.edu/collections/eresources.html", value: "E-Resources" }, { href: "https://resolver.library.columbia.edu/lweb0004", value: "Recommend a Title for Purchase" }, { href: "https://library.columbia.edu/about/policies/collection-development/repatriation-return.html", value: "Repatriation" }, { href: "https://library.columbia.edu/about/staff/subject-specialists-by-subject.html", value: "Subject Specialists" }], u = [{ href: "https://library.columbia.edu/about.html", value: "About the Libraries" }, { href: "https://library.columbia.edu/about/jobs-internships.html", value: "Jobs & Internships" }, { href: "https://library.columbia.edu/about/news/alert.html", value: "Library Status Updates" }, { href: "https://library.columbia.edu/about/news.html", value: "News" }, { href: "https://library.columbia.edu/about/values.html", value: "Our Values & Commitment in Action" }, { href: "https://library.columbia.edu/about/policies.html", value: "Policies" }, { href: "https://library.columbia.edu/about/staff.html", value: "Staff" }, { href: "https://strategicdirections.library.columbia.edu/", value: "Strategic Directions" }, { href: "https://library.columbia.edu/about/student_advisory_committee.html", value: "Student Library Advisory Committee" }], A = {
"Services & Tools": [{ href: "https://library.columbia.edu/services.html", value: "Services & Tools" }, { href: "https://library.columbia.edu/using-libraries/alumni.html", value: "For Alumni" }, { href: "https://library.columbia.edu/services/faculty.html", value: "For Faculty" }, { href: "https://library.columbia.edu/services.html#audience=student", value: "For Students" }, { href: "https://library.columbia.edu/using-libraries/visitors.html", value: "For Visitors" }],
Libraries: b,
Collections: n,
"Using the Libraries": [{ href: "https://library.columbia.edu/using-libraries.html", value: "Using the Libraries" }, { href: "https://library.columbia.edu/using-libraries/access-privileges.html", value: "Access Privileges" }, { href: "https://library.columbia.edu/using-libraries/disability.html", value: "Accessibility" }, { href: "https://library.columbia.edu/using-libraries/borrowing.html", value: "Borrow, Request, Renew" }, { href: "https://library.columbia.edu/services/reserves.html", value: "Course Reserves" }, { href: "https://hours.library.columbia.edu/", value: "Hours" }, { href: "https://library.columbia.edu/using-libraries/printing.html", value: "Print, Scan, Digitize" }],
"Research & Teaching": [{ href: "https://library.columbia.edu/research-teaching.html", value: "Research & Teaching" }, { href: "https://library.columbia.edu/research-teaching/copyright.html", value: "Copyright Information" }, { href: "https://library.columbia.edu/research-teaching/getting-started.html", value: "Getting Started with the Libraries" }, { href: "https://library.columbia.edu/research-teaching/global.html", value: "Global Studies" }, { href: "https://library.columbia.edu/research-teaching/open-scholarship.html", value: "Open Scholarship Services" }, { href: "https://library.columbia.edu/services/research-data-services.html", value: "Research Data Services" }, { href: "https://library.columbia.edu/services/subject-guides.html", value: "Subject & Course Guides" }, { href: "https://library.columbia.edu/research-teaching/workshops.html", value: "Workshops & Training" }],
About: u
}, h = "data:application/json;base64,ewogICJTZXJ2aWNlcyAmIFRvb2xzIjogWwogICAgewogICAgICAiaHJlZiI6ICJodHRwczovL2xpYnJhcnkuY29sdW1iaWEuZWR1L3NlcnZpY2VzLmh0bWwiLAogICAgICAidmFsdWUiOiAiU2VydmljZXMgJiBUb29scyIKICAgIH0sCiAgICB7CiAgICAgICJocmVmIjogImh0dHBzOi8vbGlicmFyeS5jb2x1bWJpYS5lZHUvdXNpbmctbGlicmFyaWVzL2FsdW1uaS5odG1sIiwKICAgICAgInZhbHVlIjogIkZvciBBbHVtbmkiCiAgICB9LAogICAgewogICAgICAiaHJlZiI6ICJodHRwczovL2xpYnJhcnkuY29sdW1iaWEuZWR1L3NlcnZpY2VzL2ZhY3VsdHkuaHRtbCIsCiAgICAgICJ2YWx1ZSI6ICJGb3IgRmFjdWx0eSIKICAgIH0sCiAgICB7CiAgICAgICJocmVmIjogImh0dHBzOi8vbGlicmFyeS5jb2x1bWJpYS5lZHUvc2VydmljZXMuaHRtbCNhdWRpZW5jZT1zdHVkZW50IiwKICAgICAgInZhbHVlIjogIkZvciBTdHVkZW50cyIKICAgIH0sCiAgICB7CiAgICAgICJocmVmIjogImh0dHBzOi8vbGlicmFyeS5jb2x1bWJpYS5lZHUvdXNpbmctbGlicmFyaWVzL3Zpc2l0b3JzLmh0bWwiLAogICAgICAidmFsdWUiOiAiRm9yIFZpc2l0b3JzIgogICAgfQogIF0sCiAgIkxpYnJhcmllcyI6IFsKICAgIHsKICAgICAgImhyZWYiOiAiaHR0cHM6Ly9saWJyYXJ5LmNvbHVtYmlhLmVkdS9saWJyYXJpZXMuaHRtbCIsCiAgICAgICJ2YWx1ZSI6ICJMaWJyYXJpZXMgJiBBZmZpbGlhdGVzIgogICAgfSwKICAgIHsKICAgICAgImhyZWYiOiAiaHR0cHM6Ly9saWJyYXJ5LmNvbHVtYmlhLmVkdS9saWJyYXJpZXMvYXZlcnkuaHRtbCIsCiAgICAgICJ2YWx1ZSI6ICJBdmVyeSBBcmNoaXRlY3R1cmFsICYgRmluZSBBcnRzIExpYnJhcnkiCiAgICB9LAogICAgewogICAgICAiaHJlZiI6ICJodHRwczovL2xpYnJhcnkuY29sdW1iaWEuZWR1L2xpYnJhcmllcy9idXJrZS5odG1sIiwKICAgICAgInZhbHVlIjogIkJ1cmtlIExpYnJhcnkgYXQgVW5pb24gVGhlb2xvZ2ljYWwgU2VtaW5hcnkiCiAgICB9LAogICAgewogICAgICAiaHJlZiI6ICJodHRwczovL2xpYnJhcnkuY29sdW1iaWEuZWR1L2xpYnJhcmllcy9idXNpbmVzcy5odG1sIiwKICAgICAgInZhbHVlIjogIkJ1c2luZXNzICYgRWNvbm9taWNzIExpYnJhcnkgaW4gVXJpcyIKICAgIH0sCiAgICB7CiAgICAgICJocmVmIjogImh0dHBzOi8vbGlicmFyeS5jb2x1bWJpYS5lZHUvbGlicmFyaWVzL2J1c2luZXNzLW1hbmhhdHRhbnZpbGxlLmh0bWwiLAogICAgICAidmFsdWUiOiAiQnVzaW5lc3MgTGlicmFyeSBhdCBNYW5oYXR0YW52aWxsZSIKICAgIH0sCiAgICB7CiAgICAgICJocmVmIjogImh0dHBzOi8vbGlicmFyeS5jb2x1bWJpYS5lZHUvbGlicmFyaWVzL2J1dGxlci5odG1sIiwKICAgICAgInZhbHVlIjogIkJ1dGxlciBMaWJyYXJ5IgogICAgfSwKICAgIHsKICAgICAgImhyZWYiOiAiaHR0cHM6Ly9saWJyYXJ5LmNvbHVtYmlhLmVkdS9saWJyYXJpZXMvZWFzdGFzaWFuLmh0bWwiLAogICAgICAidmFsdWUiOiAiQy5WLiBTdGFyciBFYXN0IEFzaWFuIExpYnJhcnkiCiAgICB9LAogICAgewogICAgICAiaHJlZiI6ICJodHRwczovL2xpYnJhcnkuY29sdW1iaWEuZWR1L2xpYnJhcmllcy9tdXNpYy5odG1sIiwKICAgICAgInZhbHVlIjogIkdhYmUgTS4gV2llbmVyIE11c2ljICYgQXJ0cyBMaWJyYXJ5IgogICAgfSwKICAgIHsKICAgICAgImhyZWYiOiAiaHR0cHM6Ly9saWJyYXJ5LmN1bWMuY29sdW1iaWEuZWR1LyIsCiAgICAgICJ2YWx1ZSI6ICJIZWFsdGggU2NpZW5jZXMgTGlicmFyeSIKICAgIH0sCiAgICB7CiAgICAgICJocmVmIjogImh0dHBzOi8vbGlicmFyeS5jb2x1bWJpYS5lZHUvbGlicmFyaWVzL2pvdXJuYWxpc20uaHRtbCIsCiAgICAgICJ2YWx1ZSI6ICJKb3VybmFsaXNtIExpYnJhcnkiCiAgICB9LAogICAgewogICAgICAiaHJlZiI6ICJodHRwczovL2xpYnJhcnkuY29sdW1iaWEuZWR1L2xpYnJhcmllcy9sZWhtYW4uaHRtbCIsCiAgICAgICJ2YWx1ZSI6ICJMZWhtYW4gU29jaWFsIFNjaWVuY2VzIExpYnJhcnkiCiAgICB9LAogICAgewogICAgICAiaHJlZiI6ICJodHRwOi8vd3d3Lmxhdy5jb2x1bWJpYS5lZHUvbGlicmFyeS8iLAogICAgICAidmFsdWUiOiAiTGkgTHUgTGF3IExpYnJhcnkiCiAgICB9LAogICAgewogICAgICAiaHJlZiI6ICJodHRwczovL2xpYnJhcnkuY29sdW1iaWEuZWR1L2xpYnJhcmllcy9tYXRoLmh0bWwiLAogICAgICAidmFsdWUiOiAiTWF0aGVtYXRpY3MgTGlicmFyeSIKICAgIH0sCiAgICB7CiAgICAgICJocmVmIjogImh0dHBzOi8vbGlicmFyeS5jb2x1bWJpYS5lZHUvbGlicmFyaWVzL3JibWwuaHRtbCIsCiAgICAgICJ2YWx1ZSI6ICJSYXJlIEJvb2sgJiBNYW51c2NyaXB0IExpYnJhcnkiCiAgICB9LAogICAgewogICAgICAiaHJlZiI6ICJodHRwczovL2xpYnJhcnkuY29sdW1iaWEuZWR1L2xpYnJhcmllcy9zY2llbmNlLWVuZ2luZWVyaW5nLmh0bWwiLAogICAgICAidmFsdWUiOiAiU2NpZW5jZSAmIEVuZ2luZWVyaW5nIExpYnJhcnkiCiAgICB9LAogICAgewogICAgICAiaHJlZiI6ICJodHRwczovL2xpYnJhcnkuY29sdW1iaWEuZWR1L2xpYnJhcmllcy9zb2NpYWwtd29yay5odG1sIiwKICAgICAgInZhbHVlIjogIlNvY2lhbCBXb3JrIExpYnJhcnkiCiAgICB9CiAgXSwKICAiQ29sbGVjdGlvbnMiOiBbCiAgICB7CiAgICAgICJocmVmIjogImh0dHBzOi8vbGlicmFyeS5jb2x1bWJpYS5lZHUvY29sbGVjdGlvbnMuaHRtbCIsCiAgICAgICJ2YWx1ZSI6ICJBYm91dCBPdXIgQ29sbGVjdGlvbnMiCiAgICB9LAogICAgewogICAgICAiaHJlZiI6ICJodHRwczovL2FjYWRlbWljY29tbW9ucy5jb2x1bWJpYS5lZHUvIiwKICAgICAgInZhbHVlIjogIkFjYWRlbWljIENvbW1vbnMiCiAgICB9LAogICAgewogICAgICAiaHJlZiI6ICJodHRwczovL2xpYnJhcnkuY29sdW1iaWEuZWR1L2NvbGxlY3Rpb25zL2FyY2hpdmVzLXBvcnRhbC5odG1sIiwKICAgICAgInZhbHVlIjogIkFyY2hpdmFsIENvbGxlY3Rpb25zIgogICAgfSwKICAgIHsKICAgICAgImhyZWYiOiAiaHR0cHM6Ly9yZXNvbHZlci5saWJyYXJ5LmNvbHVtYmlhLmVkdS9jbGlvIiwKICAgICAgInZhbHVlIjogIkNMSU86IENvbHVtYmlhIExpYnJhcmllcyBDYXRhbG9nIgogICAgfSwKICAgIHsKICAgICAgImhyZWYiOiAiaHR0cHM6Ly9saWJyYXJ5LmNvbHVtYmlhLmVkdS9hYm91dC9wb2xpY2llcy9jb2xsZWN0aW9uLWRldmVsb3BtZW50Lmh0bWwiLAogICAgICAidmFsdWUiOiAiQ29sbGVjdGlvbiBEZXZlbG9wbWVudCIKICAgIH0sCiAgICB7CiAgICAgICJocmVmIjogImh0dHBzOi8vZGxjLmxpYnJhcnkuY29sdW1iaWEuZWR1IiwKICAgICAgInZhbHVlIjogIkRpZ2l0YWwgQ29sbGVjdGlvbnMiCiAgICB9LAogICAgewogICAgICAiaHJlZiI6ICJodHRwczovL2xpYnJhcnkuY29sdW1iaWEuZWR1L2NvbGxlY3Rpb25zL2VyZXNvdXJjZXMuaHRtbCIsCiAgICAgICJ2YWx1ZSI6ICJFLVJlc291cmNlcyIKICAgIH0sCiAgICB7CiAgICAgICJocmVmIjogImh0dHBzOi8vcmVzb2x2ZXIubGlicmFyeS5jb2x1bWJpYS5lZHUvbHdlYjAwMDQiLAogICAgICAidmFsdWUiOiAiUmVjb21tZW5kIGEgVGl0bGUgZm9yIFB1cmNoYXNlIgogICAgfSwKICAgIHsKICAgICAgImhyZWYiOiAiaHR0cHM6Ly9saWJyYXJ5LmNvbHVtYmlhLmVkdS9hYm91dC9wb2xpY2llcy9jb2xsZWN0aW9uLWRldmVsb3BtZW50L3JlcGF0cmlhdGlvbi1yZXR1cm4uaHRtbCIsCiAgICAgICJ2YWx1ZSI6ICJSZXBhdHJpYXRpb24iCiAgICB9LAogICAgewogICAgICAiaHJlZiI6ICJodHRwczovL2xpYnJhcnkuY29sdW1iaWEuZWR1L2Fib3V0L3N0YWZmL3N1YmplY3Qtc3BlY2lhbGlzdHMtYnktc3ViamVjdC5odG1sIiwKICAgICAgInZhbHVlIjogIlN1YmplY3QgU3BlY2lhbGlzdHMiCiAgICB9CiAgXSwKICAiVXNpbmcgdGhlIExpYnJhcmllcyI6IFsKICAgIHsKICAgICAgImhyZWYiOiAiaHR0cHM6Ly9saWJyYXJ5LmNvbHVtYmlhLmVkdS91c2luZy1saWJyYXJpZXMuaHRtbCIsCiAgICAgICJ2YWx1ZSI6ICJVc2luZyB0aGUgTGlicmFyaWVzIgogICAgfSwKICAgIHsKICAgICAgImhyZWYiOiAiaHR0cHM6Ly9saWJyYXJ5LmNvbHVtYmlhLmVkdS91c2luZy1saWJyYXJpZXMvYWNjZXNzLXByaXZpbGVnZXMuaHRtbCIsCiAgICAgICJ2YWx1ZSI6ICJBY2Nlc3MgUHJpdmlsZWdlcyIKICAgIH0sCiAgICB7CiAgICAgICJocmVmIjogImh0dHBzOi8vbGlicmFyeS5jb2x1bWJpYS5lZHUvdXNpbmctbGlicmFyaWVzL2Rpc2FiaWxpdHkuaHRtbCIsCiAgICAgICJ2YWx1ZSI6ICJBY2Nlc3NpYmlsaXR5IgogICAgfSwKICAgIHsKICAgICAgImhyZWYiOiAiaHR0cHM6Ly9saWJyYXJ5LmNvbHVtYmlhLmVkdS91c2luZy1saWJyYXJpZXMvYm9ycm93aW5nLmh0bWwiLAogICAgICAidmFsdWUiOiAiQm9ycm93LCBSZXF1ZXN0LCBSZW5ldyIKICAgIH0sCiAgICB7CiAgICAgICJocmVmIjogImh0dHBzOi8vbGlicmFyeS5jb2x1bWJpYS5lZHUvc2VydmljZXMvcmVzZXJ2ZXMuaHRtbCIsCiAgICAgICJ2YWx1ZSI6ICJDb3Vyc2UgUmVzZXJ2ZXMiCiAgICB9LAogICAgewogICAgICAiaHJlZiI6ICJodHRwczovL2hvdXJzLmxpYnJhcnkuY29sdW1iaWEuZWR1LyIsCiAgICAgICJ2YWx1ZSI6ICJIb3VycyIKICAgIH0sCiAgICB7CiAgICAgICJocmVmIjogImh0dHBzOi8vbGlicmFyeS5jb2x1bWJpYS5lZHUvdXNpbmctbGlicmFyaWVzL3ByaW50aW5nLmh0bWwiLAogICAgICAidmFsdWUiOiAiUHJpbnQsIFNjYW4sIERpZ2l0aXplIgogICAgfQogIF0sCiAgIlJlc2VhcmNoICYgVGVhY2hpbmciOiBbCiAgICB7CiAgICAgICJocmVmIjogImh0dHBzOi8vbGlicmFyeS5jb2x1bWJpYS5lZHUvcmVzZWFyY2gtdGVhY2hpbmcuaHRtbCIsCiAgICAgICJ2YWx1ZSI6ICJSZXNlYXJjaCAmIFRlYWNoaW5nIgogICAgfSwKICAgIHsKICAgICAgImhyZWYiOiAiaHR0cHM6Ly9saWJyYXJ5LmNvbHVtYmlhLmVkdS9yZXNlYXJjaC10ZWFjaGluZy9jb3B5cmlnaHQuaHRtbCIsCiAgICAgICJ2YWx1ZSI6ICJDb3B5cmlnaHQgSW5mb3JtYXRpb24iCiAgICB9LAogICAgewogICAgICAiaHJlZiI6ICJodHRwczovL2xpYnJhcnkuY29sdW1iaWEuZWR1L3Jlc2VhcmNoLXRlYWNoaW5nL2dldHRpbmctc3RhcnRlZC5odG1sIiwKICAgICAgInZhbHVlIjogIkdldHRpbmcgU3RhcnRlZCB3aXRoIHRoZSBMaWJyYXJpZXMiCiAgICB9LAogICAgewogICAgICAiaHJlZiI6ICJodHRwczovL2xpYnJhcnkuY29sdW1iaWEuZWR1L3Jlc2VhcmNoLXRlYWNoaW5nL2dsb2JhbC5odG1sIiwKICAgICAgInZhbHVlIjogIkdsb2JhbCBTdHVkaWVzIgogICAgfSwKICAgIHsKICAgICAgImhyZWYiOiAiaHR0cHM6Ly9saWJyYXJ5LmNvbHVtYmlhLmVkdS9yZXNlYXJjaC10ZWFjaGluZy9vcGVuLXNjaG9sYXJzaGlwLmh0bWwiLAogICAgICAidmFsdWUiOiAiT3BlbiBTY2hvbGFyc2hpcCBTZXJ2aWNlcyIKICAgIH0sCiAgICB7CiAgICAgICJocmVmIjogImh0dHBzOi8vbGlicmFyeS5jb2x1bWJpYS5lZHUvc2VydmljZXMvcmVzZWFyY2gtZGF0YS1zZXJ2aWNlcy5odG1sIiwKICAgICAgInZhbHVlIjogIlJlc2VhcmNoIERhdGEgU2VydmljZXMiCiAgICB9LAogICAgewogICAgICAiaHJlZiI6ICJodHRwczovL2xpYnJhcnkuY29sdW1iaWEuZWR1L3NlcnZpY2VzL3N1YmplY3QtZ3VpZGVzLmh0bWwiLAogICAgICAidmFsdWUiOiAiU3ViamVjdCAmIENvdXJzZSBHdWlkZXMiCiAgICB9LAogICAgewogICAgICAiaHJlZiI6ICJodHRwczovL2xpYnJhcnkuY29sdW1iaWEuZWR1L3Jlc2VhcmNoLXRlYWNoaW5nL3dvcmtzaG9wcy5odG1sIiwKICAgICAgInZhbHVlIjogIldvcmtzaG9wcyAmIFRyYWluaW5nIgogICAgfQogIF0sCiAgIkFib3V0IjogWwogICAgewogICAgICAiaHJlZiI6ICJodHRwczovL2xpYnJhcnkuY29sdW1iaWEuZWR1L2Fib3V0Lmh0bWwiLAogICAgICAidmFsdWUiOiAiQWJvdXQgdGhlIExpYnJhcmllcyIKICAgIH0sCiAgICB7CiAgICAgICJocmVmIjogImh0dHBzOi8vbGlicmFyeS5jb2x1bWJpYS5lZHUvYWJvdXQvam9icy1pbnRlcm5zaGlwcy5odG1sIiwKICAgICAgInZhbHVlIjogIkpvYnMgJiBJbnRlcm5zaGlwcyIKICAgIH0sCiAgICB7CiAgICAgICJocmVmIjogImh0dHBzOi8vbGlicmFyeS5jb2x1bWJpYS5lZHUvYWJvdXQvbmV3cy9hbGVydC5odG1sIiwKICAgICAgInZhbHVlIjogIkxpYnJhcnkgU3RhdHVzIFVwZGF0ZXMiCiAgICB9LAogICAgewogICAgICAiaHJlZiI6ICJodHRwczovL2xpYnJhcnkuY29sdW1iaWEuZWR1L2Fib3V0L25ld3MuaHRtbCIsCiAgICAgICJ2YWx1ZSI6ICJOZXdzIgogICAgfSwKICAgIHsKICAgICAgImhyZWYiOiAiaHR0cHM6Ly9saWJyYXJ5LmNvbHVtYmlhLmVkdS9hYm91dC92YWx1ZXMuaHRtbCIsCiAgICAgICJ2YWx1ZSI6ICJPdXIgVmFsdWVzICYgQ29tbWl0bWVudCBpbiBBY3Rpb24iCiAgICB9LAogICAgICAgIHsKICAgICAgImhyZWYiOiAiaHR0cHM6Ly9saWJyYXJ5LmNvbHVtYmlhLmVkdS9hYm91dC9wb2xpY2llcy5odG1sIiwKICAgICAgInZhbHVlIjogIlBvbGljaWVzIgogICAgfSwKICAgIHsKICAgICAgImhyZWYiOiAiaHR0cHM6Ly9saWJyYXJ5LmNvbHVtYmlhLmVkdS9hYm91dC9zdGFmZi5odG1sIiwKICAgICAgInZhbHVlIjogIlN0YWZmIgogICAgfSwKICAgIHsKICAgICAgImhyZWYiOiAiaHR0cHM6Ly9zdHJhdGVnaWNkaXJlY3Rpb25zLmxpYnJhcnkuY29sdW1iaWEuZWR1LyIsCiAgICAgICJ2YWx1ZSI6ICJTdHJhdGVnaWMgRGlyZWN0aW9ucyIKICAgIH0sCiAgICB7CiAgICAgICJocmVmIjogImh0dHBzOi8vbGlicmFyeS5jb2x1bWJpYS5lZHUvYWJvdXQvc3R1ZGVudF9hZHZpc29yeV9jb21taXR0ZWUuaHRtbCIsCiAgICAgICJ2YWx1ZSI6ICJTdHVkZW50IExpYnJhcnkgQWR2aXNvcnkgQ29tbWl0dGVlIgogICAgfQogIF0KfQo=";
async function m(i) {
const e = i || h;
try {
const l = await fetch(d(e), {
cache: "no-store",
signal: AbortSignal.timeout(3e3)
// fail fast
});
if (!l.ok) throw new Error("Menu fetch failed");
return await l.json();
} catch (l) {
return console.warn(
"[CUL Menu] Remote menu unavailable, using bundled example.",
l
), A;
}
}
function d(i) {
return i.includes("?") ? i : `${i}?v=5.3.1`;
}
async function W(i) {
const e = document.querySelectorAll("[data-cul-menu]");
if (!e.length) return;
const l = await m(i);
e.forEach((a, g) => {
const t = J(a, g), I = y(l, t);
a.replaceChildren(I), p(a);
});
}
function p(i) {
i.classList.remove("cul-menu-loading"), i.classList.add("cul-menu-loaded");
}
function J(i, e) {
return {
prefix: i.dataset.menuId || `culmenu-${e}`,
toggleTag: i.dataset.toggleTag || "button",
toggleClasses: i.dataset.toggleClasses || "btn btn-toggle ps-0 d-inline-flex w-100 align-items-center rounded border-0 collapsed",
listClasses: i.dataset.listClasses || "list-unstyled w-100",
itemClasses: i.dataset.itemClasses || "d-block",
useCollapse: i.dataset.useCollapse !== "false"
};
}
function y(i, e) {
const l = document.createElement("ul");
l.className = e.listClasses;
for (const a in i) {
const g = document.createElement("li");
g.className = "mb-1";
const t = `${e.prefix}-${Y(a)}-collapse`, I = document.createElement(e.toggleTag);
I.className = e.toggleClasses, I.textContent = a, e.useCollapse && (I.setAttribute("data-bs-toggle", "collapse"), I.setAttribute("data-bs-target", `#${t}`), I.setAttribute("aria-expanded", "false")), g.appendChild(I);
const s = document.createElement("div");
s.className = e.useCollapse ? "collapse" : "", s.id = t;
const c = document.createElement("ul");
c.className = "btn-toggle-nav list-unstyled fw-normal pb-1", i[a].forEach((o) => {
const r = document.createElement("li"), C = document.createElement("a");
C.href = o.href, C.textContent = o.value, C.className = e.itemClasses, r.appendChild(C), c.appendChild(r);
}), s.appendChild(c), g.appendChild(s), l.appendChild(g);
}
return l;
}
function Y(i) {
return i.toLowerCase().replace(/\s+/g, "-");
}
async function Z(i, e) {
const l = document.querySelector(i);
if (!l) return;
const a = l.querySelector("ul");
if (!a) {
console.warn("CUL navbar menu: <ul> not found");
return;
}
const g = await m(e), t = l.dataset.menuId || "cul-navbar";
a.replaceChildren(v(g, t)), H(l);
}
function H(i) {
i.classList.remove("cul-menu-loading"), i.classList.add("cul-menu-loaded");
}
function v(i, e) {
const l = document.createDocumentFragment();
for (const a in i) {
const g = `${e}-${L(a)}`, t = document.createElement("li");
t.className = "nav-item dropdown position-static d-inline-flex";
const I = document.createElement("a");
I.href = "#", I.className = "nav-link dropdown-toggle my-2 me-3", I.setAttribute("data-bs-toggle", "dropdown"), I.setAttribute("aria-expanded", "false"), I.textContent = a, t.appendChild(I);
const s = document.createElement("div");
s.id = `${g}-dropdown`, s.className = "dropdown-menu w-100 border-top-0 border-left-0 border-right-0 rounded-0 py-0 my-0";
const c = document.createElement("div");
c.className = "py-3 bg-secondary text-white";
const o = document.createElement("div");
o.className = "container cul-cols", i[a].forEach((r) => {
const C = document.createElement("a");
C.href = r.href, C.className = "d-block py-1 text-white dropdown-item bg-secondary", C.textContent = r.value, o.appendChild(C);
}), c.appendChild(o), s.appendChild(c), t.appendChild(s), l.appendChild(t);
}
return l;
}
function L(i) {
return i.toLowerCase().replace(/\s+/g, "-");
}
function V(i) {
return W(i.url);
}
function w(i) {
return Z(i.selector, i.url);
}
export {
V as initCollapse,
w as initNavbar,
W as makeCULmenu
};
//# sourceMappingURL=cul-menu.bundle.es.js.map