@columbia-libraries/cul-toolkit 5.1.3 → 5.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +52 -23
- package/dist/assets/cul-main-menu.json +8 -16
- package/dist/assets/main.css +1 -1
- package/dist/assets/main.js +1 -1
- package/dist/bundles/cul-menu.bundle.es.js +64 -298
- package/dist/bundles/cul-menu.bundle.es.js.map +1 -1
- package/dist/bundles/cul-menu.bundle.js +3 -3
- package/dist/bundles/cul-menu.bundle.js.map +1 -1
- package/package.json +4 -3
- package/src/scss/_cul.scss +122 -0
- package/src/scss/_sidebars.scss +40 -0
- package/src/scss/_variables.scss +3 -0
- package/src/scss/styles.scss +5 -0
|
@@ -1,284 +1,50 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* CUL Menu v5.
|
|
2
|
+
* CUL Menu v5.3.0
|
|
3
3
|
* (c) 2026
|
|
4
4
|
*/
|
|
5
|
-
const b = [
|
|
6
|
-
{
|
|
7
|
-
href: "https://library.columbia.edu/libraries.html",
|
|
8
|
-
value: "Libraries & Affiliates"
|
|
9
|
-
},
|
|
10
|
-
{
|
|
11
|
-
href: "https://library.columbia.edu/libraries/avery.html",
|
|
12
|
-
value: "Avery Architectural & Fine Arts Library"
|
|
13
|
-
},
|
|
14
|
-
{
|
|
15
|
-
href: "https://library.columbia.edu/libraries/burke.html",
|
|
16
|
-
value: "Burke Library at Union Theological Seminary"
|
|
17
|
-
},
|
|
18
|
-
{
|
|
19
|
-
href: "https://library.columbia.edu/libraries/business.html",
|
|
20
|
-
value: "Business & Economics Library in Uris"
|
|
21
|
-
},
|
|
22
|
-
{
|
|
23
|
-
href: "https://library.columbia.edu/libraries/business-manhattanville.html",
|
|
24
|
-
value: "Business Library at Manhattanville"
|
|
25
|
-
},
|
|
26
|
-
{
|
|
27
|
-
href: "https://library.columbia.edu/libraries/butler.html",
|
|
28
|
-
value: "Butler Library"
|
|
29
|
-
},
|
|
30
|
-
{
|
|
31
|
-
href: "https://library.columbia.edu/libraries/eastasian.html",
|
|
32
|
-
value: "C.V. Starr East Asian Library"
|
|
33
|
-
},
|
|
34
|
-
{
|
|
35
|
-
href: "https://library.columbia.edu/libraries/music.html",
|
|
36
|
-
value: "Gabe M. Wiener Music & Arts Library"
|
|
37
|
-
},
|
|
38
|
-
{
|
|
39
|
-
href: "https://library.cumc.columbia.edu/",
|
|
40
|
-
value: "Health Sciences Library"
|
|
41
|
-
},
|
|
42
|
-
{
|
|
43
|
-
href: "https://library.columbia.edu/libraries/journalism.html",
|
|
44
|
-
value: "Journalism Library"
|
|
45
|
-
},
|
|
46
|
-
{
|
|
47
|
-
href: "https://library.columbia.edu/libraries/lehman.html",
|
|
48
|
-
value: "Lehman Social Sciences Library"
|
|
49
|
-
},
|
|
50
|
-
{
|
|
51
|
-
href: "http://www.law.columbia.edu/library/",
|
|
52
|
-
value: "Li Lu Law Library"
|
|
53
|
-
},
|
|
54
|
-
{
|
|
55
|
-
href: "https://library.columbia.edu/libraries/math.html",
|
|
56
|
-
value: "Mathematics Library"
|
|
57
|
-
},
|
|
58
|
-
{
|
|
59
|
-
href: "https://library.columbia.edu/libraries/undergraduate.html",
|
|
60
|
-
value: "Milstein Undergraduate Library"
|
|
61
|
-
},
|
|
62
|
-
{
|
|
63
|
-
href: "https://library.columbia.edu/libraries/rbml.html",
|
|
64
|
-
value: "Rare Book & Manuscript Library"
|
|
65
|
-
},
|
|
66
|
-
{
|
|
67
|
-
href: "https://library.columbia.edu/libraries/science-engineering.html",
|
|
68
|
-
value: "Science & Engineering Library"
|
|
69
|
-
},
|
|
70
|
-
{
|
|
71
|
-
href: "https://library.columbia.edu/libraries/social-work.html",
|
|
72
|
-
value: "Social Work Library"
|
|
73
|
-
}
|
|
74
|
-
], A = [
|
|
75
|
-
{
|
|
76
|
-
href: "https://library.columbia.edu/collections.html",
|
|
77
|
-
value: "About Our Collections"
|
|
78
|
-
},
|
|
79
|
-
{
|
|
80
|
-
href: "https://academiccommons.columbia.edu/",
|
|
81
|
-
value: "Academic Commons"
|
|
82
|
-
},
|
|
83
|
-
{
|
|
84
|
-
href: "https://library.columbia.edu/collections/archives-portal.html",
|
|
85
|
-
value: "Archival Collections"
|
|
86
|
-
},
|
|
87
|
-
{
|
|
88
|
-
href: "https://resolver.library.columbia.edu/clio",
|
|
89
|
-
value: "CLIO: Columbia Libraries Catalog"
|
|
90
|
-
},
|
|
91
|
-
{
|
|
92
|
-
href: "https://library.columbia.edu/about/policies/collection-development.html",
|
|
93
|
-
value: "Collection Development"
|
|
94
|
-
},
|
|
95
|
-
{
|
|
96
|
-
href: "https://library.columbia.edu/collections/digital-collections.html",
|
|
97
|
-
value: "Digital Collections & Exhibitions"
|
|
98
|
-
},
|
|
99
|
-
{
|
|
100
|
-
href: "https://library.columbia.edu/collections/eresources.html",
|
|
101
|
-
value: "E-Resources"
|
|
102
|
-
},
|
|
103
|
-
{
|
|
104
|
-
href: "https://library.columbia.edu/collections/oral-history-portal.html",
|
|
105
|
-
value: "Oral History Collections"
|
|
106
|
-
},
|
|
107
|
-
{
|
|
108
|
-
href: "https://resolver.library.columbia.edu/lweb0004",
|
|
109
|
-
value: "Recommend a Title for Purchase"
|
|
110
|
-
},
|
|
111
|
-
{
|
|
112
|
-
href: "https://library.columbia.edu/about/policies/collection-development/repatriation-return.html",
|
|
113
|
-
value: "Repatriation"
|
|
114
|
-
},
|
|
115
|
-
{
|
|
116
|
-
href: "https://library.columbia.edu/about/staff/subject-specialists-by-subject.html",
|
|
117
|
-
value: "Subject Specialists"
|
|
118
|
-
}
|
|
119
|
-
], n = [
|
|
120
|
-
{
|
|
121
|
-
href: "https://library.columbia.edu/about.html",
|
|
122
|
-
value: "About the Libraries"
|
|
123
|
-
},
|
|
124
|
-
{
|
|
125
|
-
href: "https://library.columbia.edu/about/jobs-internships.html",
|
|
126
|
-
value: "Jobs & Internships"
|
|
127
|
-
},
|
|
128
|
-
{
|
|
129
|
-
href: "https://library.columbia.edu/about/news/alert.html",
|
|
130
|
-
value: "Library Status Updates"
|
|
131
|
-
},
|
|
132
|
-
{
|
|
133
|
-
href: "https://library.columbia.edu/about/news.html",
|
|
134
|
-
value: "News"
|
|
135
|
-
},
|
|
136
|
-
{
|
|
137
|
-
href: "https://library.columbia.edu/about/values.html",
|
|
138
|
-
value: "Our Values & Commitment in Action"
|
|
139
|
-
},
|
|
140
|
-
{
|
|
141
|
-
href: "https://library.columbia.edu/about/policies.html",
|
|
142
|
-
value: "Policies"
|
|
143
|
-
},
|
|
144
|
-
{
|
|
145
|
-
href: "https://library.columbia.edu/about/staff.html",
|
|
146
|
-
value: "Staff"
|
|
147
|
-
},
|
|
148
|
-
{
|
|
149
|
-
href: "https://strategicdirections.library.columbia.edu/",
|
|
150
|
-
value: "Strategic Directions"
|
|
151
|
-
},
|
|
152
|
-
{
|
|
153
|
-
href: "https://library.columbia.edu/about/student_advisory_committee.html",
|
|
154
|
-
value: "Student Library Advisory Committee"
|
|
155
|
-
}
|
|
156
|
-
], u = {
|
|
157
|
-
"Services & Tools": [
|
|
158
|
-
{
|
|
159
|
-
href: "https://library.columbia.edu/services.html",
|
|
160
|
-
value: "Services & Tools"
|
|
161
|
-
},
|
|
162
|
-
{
|
|
163
|
-
href: "https://library.columbia.edu/services/faq.html",
|
|
164
|
-
value: "FAQ"
|
|
165
|
-
},
|
|
166
|
-
{
|
|
167
|
-
href: "https://library.columbia.edu/using-libraries/alumni.html",
|
|
168
|
-
value: "For Alumni"
|
|
169
|
-
},
|
|
170
|
-
{
|
|
171
|
-
href: "https://library.columbia.edu/services/faculty.html",
|
|
172
|
-
value: "For Faculty"
|
|
173
|
-
},
|
|
174
|
-
{
|
|
175
|
-
href: "https://library.columbia.edu/services.html#audience=student",
|
|
176
|
-
value: "For Students"
|
|
177
|
-
},
|
|
178
|
-
{
|
|
179
|
-
href: "https://library.columbia.edu/using-libraries/visitors.html",
|
|
180
|
-
value: "For Visitors"
|
|
181
|
-
}
|
|
182
|
-
],
|
|
5
|
+
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 = {
|
|
6
|
+
"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" }],
|
|
183
7
|
Libraries: b,
|
|
184
|
-
Collections:
|
|
185
|
-
"Using the Libraries": [
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
href: "https://library.columbia.edu/using-libraries/access-privileges.html",
|
|
192
|
-
value: "Access Privileges"
|
|
193
|
-
},
|
|
194
|
-
{
|
|
195
|
-
href: "https://library.columbia.edu/using-libraries/disability.html",
|
|
196
|
-
value: "Accessibility"
|
|
197
|
-
},
|
|
198
|
-
{
|
|
199
|
-
href: "https://library.columbia.edu/using-libraries/borrowing.html",
|
|
200
|
-
value: "Borrow, Request, Renew"
|
|
201
|
-
},
|
|
202
|
-
{
|
|
203
|
-
href: "https://library.columbia.edu/services/reserves.html",
|
|
204
|
-
value: "Course Reserves"
|
|
205
|
-
},
|
|
206
|
-
{
|
|
207
|
-
href: "https://hours.library.columbia.edu/",
|
|
208
|
-
value: "Hours"
|
|
209
|
-
},
|
|
210
|
-
{
|
|
211
|
-
href: "https://library.columbia.edu/using-libraries/printing.html",
|
|
212
|
-
value: "Print, Scan, Digitize"
|
|
213
|
-
}
|
|
214
|
-
],
|
|
215
|
-
"Research & Teaching": [
|
|
216
|
-
{
|
|
217
|
-
href: "https://library.columbia.edu/research-teaching.html",
|
|
218
|
-
value: "Research & Teaching"
|
|
219
|
-
},
|
|
220
|
-
{
|
|
221
|
-
href: "https://copyright.columbia.edu/index.html",
|
|
222
|
-
value: "Copyright Advisory Services"
|
|
223
|
-
},
|
|
224
|
-
{
|
|
225
|
-
href: "https://library.columbia.edu/research-teaching/getting-started.html",
|
|
226
|
-
value: "Getting Started with the Libraries"
|
|
227
|
-
},
|
|
228
|
-
{
|
|
229
|
-
href: "https://library.columbia.edu/research-teaching/open-scholarship.html",
|
|
230
|
-
value: "Open Scholarship Services"
|
|
231
|
-
},
|
|
232
|
-
{
|
|
233
|
-
href: "https://library.columbia.edu/services/research-data-services.html",
|
|
234
|
-
value: "Research Data Services"
|
|
235
|
-
},
|
|
236
|
-
{
|
|
237
|
-
href: "https://library.columbia.edu/services/subject-guides.html",
|
|
238
|
-
value: "Subject & Course Guides"
|
|
239
|
-
},
|
|
240
|
-
{
|
|
241
|
-
href: "https://library.columbia.edu/research-teaching/workshops.html",
|
|
242
|
-
value: "Workshops & Training"
|
|
243
|
-
}
|
|
244
|
-
],
|
|
245
|
-
About: n
|
|
246
|
-
}, d = "data:application/json;base64,ewogICJTZXJ2aWNlcyAmIFRvb2xzIjogWwogICAgewogICAgICAiaHJlZiI6ICJodHRwczovL2xpYnJhcnkuY29sdW1iaWEuZWR1L3NlcnZpY2VzLmh0bWwiLAogICAgICAidmFsdWUiOiAiU2VydmljZXMgJiBUb29scyIKICAgIH0sCiAgICB7CiAgICAgICJocmVmIjogImh0dHBzOi8vbGlicmFyeS5jb2x1bWJpYS5lZHUvc2VydmljZXMvZmFxLmh0bWwiLAogICAgICAidmFsdWUiOiAiRkFRIgogICAgfSwKICAgIHsKICAgICAgImhyZWYiOiAiaHR0cHM6Ly9saWJyYXJ5LmNvbHVtYmlhLmVkdS91c2luZy1saWJyYXJpZXMvYWx1bW5pLmh0bWwiLAogICAgICAidmFsdWUiOiAiRm9yIEFsdW1uaSIKICAgIH0sCiAgICB7CiAgICAgICJocmVmIjogImh0dHBzOi8vbGlicmFyeS5jb2x1bWJpYS5lZHUvc2VydmljZXMvZmFjdWx0eS5odG1sIiwKICAgICAgInZhbHVlIjogIkZvciBGYWN1bHR5IgogICAgfSwKICAgIHsKICAgICAgImhyZWYiOiAiaHR0cHM6Ly9saWJyYXJ5LmNvbHVtYmlhLmVkdS9zZXJ2aWNlcy5odG1sI2F1ZGllbmNlPXN0dWRlbnQiLAogICAgICAidmFsdWUiOiAiRm9yIFN0dWRlbnRzIgogICAgfSwKICAgIHsKICAgICAgImhyZWYiOiAiaHR0cHM6Ly9saWJyYXJ5LmNvbHVtYmlhLmVkdS91c2luZy1saWJyYXJpZXMvdmlzaXRvcnMuaHRtbCIsCiAgICAgICJ2YWx1ZSI6ICJGb3IgVmlzaXRvcnMiCiAgICB9CiAgXSwKICAiTGlicmFyaWVzIjogWwogICAgewogICAgICAiaHJlZiI6ICJodHRwczovL2xpYnJhcnkuY29sdW1iaWEuZWR1L2xpYnJhcmllcy5odG1sIiwKICAgICAgInZhbHVlIjogIkxpYnJhcmllcyAmIEFmZmlsaWF0ZXMiCiAgICB9LAogICAgewogICAgICAiaHJlZiI6ICJodHRwczovL2xpYnJhcnkuY29sdW1iaWEuZWR1L2xpYnJhcmllcy9hdmVyeS5odG1sIiwKICAgICAgInZhbHVlIjogIkF2ZXJ5IEFyY2hpdGVjdHVyYWwgJiBGaW5lIEFydHMgTGlicmFyeSIKICAgIH0sCiAgICB7CiAgICAgICJocmVmIjogImh0dHBzOi8vbGlicmFyeS5jb2x1bWJpYS5lZHUvbGlicmFyaWVzL2J1cmtlLmh0bWwiLAogICAgICAidmFsdWUiOiAiQnVya2UgTGlicmFyeSBhdCBVbmlvbiBUaGVvbG9naWNhbCBTZW1pbmFyeSIKICAgIH0sCiAgICB7CiAgICAgICJocmVmIjogImh0dHBzOi8vbGlicmFyeS5jb2x1bWJpYS5lZHUvbGlicmFyaWVzL2J1c2luZXNzLmh0bWwiLAogICAgICAidmFsdWUiOiAiQnVzaW5lc3MgJiBFY29ub21pY3MgTGlicmFyeSBpbiBVcmlzIgogICAgfSwKICAgIHsKICAgICAgImhyZWYiOiAiaHR0cHM6Ly9saWJyYXJ5LmNvbHVtYmlhLmVkdS9saWJyYXJpZXMvYnVzaW5lc3MtbWFuaGF0dGFudmlsbGUuaHRtbCIsCiAgICAgICJ2YWx1ZSI6ICJCdXNpbmVzcyBMaWJyYXJ5IGF0IE1hbmhhdHRhbnZpbGxlIgogICAgfSwKICAgIHsKICAgICAgImhyZWYiOiAiaHR0cHM6Ly9saWJyYXJ5LmNvbHVtYmlhLmVkdS9saWJyYXJpZXMvYnV0bGVyLmh0bWwiLAogICAgICAidmFsdWUiOiAiQnV0bGVyIExpYnJhcnkiCiAgICB9LAogICAgewogICAgICAiaHJlZiI6ICJodHRwczovL2xpYnJhcnkuY29sdW1iaWEuZWR1L2xpYnJhcmllcy9lYXN0YXNpYW4uaHRtbCIsCiAgICAgICJ2YWx1ZSI6ICJDLlYuIFN0YXJyIEVhc3QgQXNpYW4gTGlicmFyeSIKICAgIH0sCiAgICB7CiAgICAgICJocmVmIjogImh0dHBzOi8vbGlicmFyeS5jb2x1bWJpYS5lZHUvbGlicmFyaWVzL211c2ljLmh0bWwiLAogICAgICAidmFsdWUiOiAiR2FiZSBNLiBXaWVuZXIgTXVzaWMgJiBBcnRzIExpYnJhcnkiCiAgICB9LAogICAgewogICAgICAiaHJlZiI6ICJodHRwczovL2xpYnJhcnkuY3VtYy5jb2x1bWJpYS5lZHUvIiwKICAgICAgInZhbHVlIjogIkhlYWx0aCBTY2llbmNlcyBMaWJyYXJ5IgogICAgfSwKICAgIHsKICAgICAgImhyZWYiOiAiaHR0cHM6Ly9saWJyYXJ5LmNvbHVtYmlhLmVkdS9saWJyYXJpZXMvam91cm5hbGlzbS5odG1sIiwKICAgICAgInZhbHVlIjogIkpvdXJuYWxpc20gTGlicmFyeSIKICAgIH0sCiAgICB7CiAgICAgICJocmVmIjogImh0dHBzOi8vbGlicmFyeS5jb2x1bWJpYS5lZHUvbGlicmFyaWVzL2xlaG1hbi5odG1sIiwKICAgICAgInZhbHVlIjogIkxlaG1hbiBTb2NpYWwgU2NpZW5jZXMgTGlicmFyeSIKICAgIH0sCiAgICB7CiAgICAgICJocmVmIjogImh0dHA6Ly93d3cubGF3LmNvbHVtYmlhLmVkdS9saWJyYXJ5LyIsCiAgICAgICJ2YWx1ZSI6ICJMaSBMdSBMYXcgTGlicmFyeSIKICAgIH0sCiAgICB7CiAgICAgICJocmVmIjogImh0dHBzOi8vbGlicmFyeS5jb2x1bWJpYS5lZHUvbGlicmFyaWVzL21hdGguaHRtbCIsCiAgICAgICJ2YWx1ZSI6ICJNYXRoZW1hdGljcyBMaWJyYXJ5IgogICAgfSwKICAgIHsKICAgICAgImhyZWYiOiAiaHR0cHM6Ly9saWJyYXJ5LmNvbHVtYmlhLmVkdS9saWJyYXJpZXMvdW5kZXJncmFkdWF0ZS5odG1sIiwKICAgICAgInZhbHVlIjogIk1pbHN0ZWluIFVuZGVyZ3JhZHVhdGUgTGlicmFyeSIKICAgIH0sCiAgICB7CiAgICAgICJocmVmIjogImh0dHBzOi8vbGlicmFyeS5jb2x1bWJpYS5lZHUvbGlicmFyaWVzL3JibWwuaHRtbCIsCiAgICAgICJ2YWx1ZSI6ICJSYXJlIEJvb2sgJiBNYW51c2NyaXB0IExpYnJhcnkiCiAgICB9LAogICAgewogICAgICAiaHJlZiI6ICJodHRwczovL2xpYnJhcnkuY29sdW1iaWEuZWR1L2xpYnJhcmllcy9zY2llbmNlLWVuZ2luZWVyaW5nLmh0bWwiLAogICAgICAidmFsdWUiOiAiU2NpZW5jZSAmIEVuZ2luZWVyaW5nIExpYnJhcnkiCiAgICB9LAogICAgewogICAgICAiaHJlZiI6ICJodHRwczovL2xpYnJhcnkuY29sdW1iaWEuZWR1L2xpYnJhcmllcy9zb2NpYWwtd29yay5odG1sIiwKICAgICAgInZhbHVlIjogIlNvY2lhbCBXb3JrIExpYnJhcnkiCiAgICB9CiAgXSwKICAiQ29sbGVjdGlvbnMiOiBbCiAgICB7CiAgICAgICJocmVmIjogImh0dHBzOi8vbGlicmFyeS5jb2x1bWJpYS5lZHUvY29sbGVjdGlvbnMuaHRtbCIsCiAgICAgICJ2YWx1ZSI6ICJBYm91dCBPdXIgQ29sbGVjdGlvbnMiCiAgICB9LAogICAgewogICAgICAiaHJlZiI6ICJodHRwczovL2FjYWRlbWljY29tbW9ucy5jb2x1bWJpYS5lZHUvIiwKICAgICAgInZhbHVlIjogIkFjYWRlbWljIENvbW1vbnMiCiAgICB9LAogICAgewogICAgICAiaHJlZiI6ICJodHRwczovL2xpYnJhcnkuY29sdW1iaWEuZWR1L2NvbGxlY3Rpb25zL2FyY2hpdmVzLXBvcnRhbC5odG1sIiwKICAgICAgInZhbHVlIjogIkFyY2hpdmFsIENvbGxlY3Rpb25zIgogICAgfSwKICAgIHsKICAgICAgImhyZWYiOiAiaHR0cHM6Ly9yZXNvbHZlci5saWJyYXJ5LmNvbHVtYmlhLmVkdS9jbGlvIiwKICAgICAgInZhbHVlIjogIkNMSU86IENvbHVtYmlhIExpYnJhcmllcyBDYXRhbG9nIgogICAgfSwKICAgIHsKICAgICAgImhyZWYiOiAiaHR0cHM6Ly9saWJyYXJ5LmNvbHVtYmlhLmVkdS9hYm91dC9wb2xpY2llcy9jb2xsZWN0aW9uLWRldmVsb3BtZW50Lmh0bWwiLAogICAgICAidmFsdWUiOiAiQ29sbGVjdGlvbiBEZXZlbG9wbWVudCIKICAgIH0sCiAgICB7CiAgICAgICJocmVmIjogImh0dHBzOi8vbGlicmFyeS5jb2x1bWJpYS5lZHUvY29sbGVjdGlvbnMvZGlnaXRhbC1jb2xsZWN0aW9ucy5odG1sIiwKICAgICAgInZhbHVlIjogIkRpZ2l0YWwgQ29sbGVjdGlvbnMgJiBFeGhpYml0aW9ucyIKICAgIH0sCiAgICB7CiAgICAgICJocmVmIjogImh0dHBzOi8vbGlicmFyeS5jb2x1bWJpYS5lZHUvY29sbGVjdGlvbnMvZXJlc291cmNlcy5odG1sIiwKICAgICAgInZhbHVlIjogIkUtUmVzb3VyY2VzIgogICAgfSwKICAgIHsKICAgICAgImhyZWYiOiAiaHR0cHM6Ly9saWJyYXJ5LmNvbHVtYmlhLmVkdS9jb2xsZWN0aW9ucy9vcmFsLWhpc3RvcnktcG9ydGFsLmh0bWwiLAogICAgICAidmFsdWUiOiAiT3JhbCBIaXN0b3J5IENvbGxlY3Rpb25zIgogICAgfSwKICAgIHsKICAgICAgImhyZWYiOiAiaHR0cHM6Ly9yZXNvbHZlci5saWJyYXJ5LmNvbHVtYmlhLmVkdS9sd2ViMDAwNCIsCiAgICAgICJ2YWx1ZSI6ICJSZWNvbW1lbmQgYSBUaXRsZSBmb3IgUHVyY2hhc2UiCiAgICB9LAogICAgewogICAgICAiaHJlZiI6ICJodHRwczovL2xpYnJhcnkuY29sdW1iaWEuZWR1L2Fib3V0L3BvbGljaWVzL2NvbGxlY3Rpb24tZGV2ZWxvcG1lbnQvcmVwYXRyaWF0aW9uLXJldHVybi5odG1sIiwKICAgICAgInZhbHVlIjogIlJlcGF0cmlhdGlvbiIKICAgIH0sCiAgICB7CiAgICAgICJocmVmIjogImh0dHBzOi8vbGlicmFyeS5jb2x1bWJpYS5lZHUvYWJvdXQvc3RhZmYvc3ViamVjdC1zcGVjaWFsaXN0cy1ieS1zdWJqZWN0Lmh0bWwiLAogICAgICAidmFsdWUiOiAiU3ViamVjdCBTcGVjaWFsaXN0cyIKICAgIH0KICBdLAogICJVc2luZyB0aGUgTGlicmFyaWVzIjogWwogICAgewogICAgICAiaHJlZiI6ICJodHRwczovL2xpYnJhcnkuY29sdW1iaWEuZWR1L3VzaW5nLWxpYnJhcmllcy5odG1sIiwKICAgICAgInZhbHVlIjogIlVzaW5nIHRoZSBMaWJyYXJpZXMiCiAgICB9LAogICAgewogICAgICAiaHJlZiI6ICJodHRwczovL2xpYnJhcnkuY29sdW1iaWEuZWR1L3VzaW5nLWxpYnJhcmllcy9hY2Nlc3MtcHJpdmlsZWdlcy5odG1sIiwKICAgICAgInZhbHVlIjogIkFjY2VzcyBQcml2aWxlZ2VzIgogICAgfSwKICAgIHsKICAgICAgImhyZWYiOiAiaHR0cHM6Ly9saWJyYXJ5LmNvbHVtYmlhLmVkdS91c2luZy1saWJyYXJpZXMvZGlzYWJpbGl0eS5odG1sIiwKICAgICAgInZhbHVlIjogIkFjY2Vzc2liaWxpdHkiCiAgICB9LAogICAgewogICAgICAiaHJlZiI6ICJodHRwczovL2xpYnJhcnkuY29sdW1iaWEuZWR1L3VzaW5nLWxpYnJhcmllcy9ib3Jyb3dpbmcuaHRtbCIsCiAgICAgICJ2YWx1ZSI6ICJCb3Jyb3csIFJlcXVlc3QsIFJlbmV3IgogICAgfSwKICAgIHsKICAgICAgImhyZWYiOiAiaHR0cHM6Ly9saWJyYXJ5LmNvbHVtYmlhLmVkdS9zZXJ2aWNlcy9yZXNlcnZlcy5odG1sIiwKICAgICAgInZhbHVlIjogIkNvdXJzZSBSZXNlcnZlcyIKICAgIH0sCiAgICB7CiAgICAgICJocmVmIjogImh0dHBzOi8vaG91cnMubGlicmFyeS5jb2x1bWJpYS5lZHUvIiwKICAgICAgInZhbHVlIjogIkhvdXJzIgogICAgfSwKICAgIHsKICAgICAgImhyZWYiOiAiaHR0cHM6Ly9saWJyYXJ5LmNvbHVtYmlhLmVkdS91c2luZy1saWJyYXJpZXMvcHJpbnRpbmcuaHRtbCIsCiAgICAgICJ2YWx1ZSI6ICJQcmludCwgU2NhbiwgRGlnaXRpemUiCiAgICB9CiAgXSwKICAiUmVzZWFyY2ggJiBUZWFjaGluZyI6IFsKICAgIHsKICAgICAgImhyZWYiOiAiaHR0cHM6Ly9saWJyYXJ5LmNvbHVtYmlhLmVkdS9yZXNlYXJjaC10ZWFjaGluZy5odG1sIiwKICAgICAgInZhbHVlIjogIlJlc2VhcmNoICYgVGVhY2hpbmciCiAgICB9LAogICAgewogICAgICAiaHJlZiI6ICJodHRwczovL2NvcHlyaWdodC5jb2x1bWJpYS5lZHUvaW5kZXguaHRtbCIsCiAgICAgICJ2YWx1ZSI6ICJDb3B5cmlnaHQgQWR2aXNvcnkgU2VydmljZXMiCiAgICB9LAogICAgewogICAgICAiaHJlZiI6ICJodHRwczovL2xpYnJhcnkuY29sdW1iaWEuZWR1L3Jlc2VhcmNoLXRlYWNoaW5nL2dldHRpbmctc3RhcnRlZC5odG1sIiwKICAgICAgInZhbHVlIjogIkdldHRpbmcgU3RhcnRlZCB3aXRoIHRoZSBMaWJyYXJpZXMiCiAgICB9LAogICAgewogICAgICAiaHJlZiI6ICJodHRwczovL2xpYnJhcnkuY29sdW1iaWEuZWR1L3Jlc2VhcmNoLXRlYWNoaW5nL29wZW4tc2Nob2xhcnNoaXAuaHRtbCIsCiAgICAgICJ2YWx1ZSI6ICJPcGVuIFNjaG9sYXJzaGlwIFNlcnZpY2VzIgogICAgfSwKICAgIHsKICAgICAgImhyZWYiOiAiaHR0cHM6Ly9saWJyYXJ5LmNvbHVtYmlhLmVkdS9zZXJ2aWNlcy9yZXNlYXJjaC1kYXRhLXNlcnZpY2VzLmh0bWwiLAogICAgICAidmFsdWUiOiAiUmVzZWFyY2ggRGF0YSBTZXJ2aWNlcyIKICAgIH0sCiAgICB7CiAgICAgICJocmVmIjogImh0dHBzOi8vbGlicmFyeS5jb2x1bWJpYS5lZHUvc2VydmljZXMvc3ViamVjdC1ndWlkZXMuaHRtbCIsCiAgICAgICJ2YWx1ZSI6ICJTdWJqZWN0ICYgQ291cnNlIEd1aWRlcyIKICAgIH0sCiAgICB7CiAgICAgICJocmVmIjogImh0dHBzOi8vbGlicmFyeS5jb2x1bWJpYS5lZHUvcmVzZWFyY2gtdGVhY2hpbmcvd29ya3Nob3BzLmh0bWwiLAogICAgICAidmFsdWUiOiAiV29ya3Nob3BzICYgVHJhaW5pbmciCiAgICB9CiAgXSwKICAiQWJvdXQiOiBbCiAgICB7CiAgICAgICJocmVmIjogImh0dHBzOi8vbGlicmFyeS5jb2x1bWJpYS5lZHUvYWJvdXQuaHRtbCIsCiAgICAgICJ2YWx1ZSI6ICJBYm91dCB0aGUgTGlicmFyaWVzIgogICAgfSwKICAgIHsKICAgICAgImhyZWYiOiAiaHR0cHM6Ly9saWJyYXJ5LmNvbHVtYmlhLmVkdS9hYm91dC9qb2JzLWludGVybnNoaXBzLmh0bWwiLAogICAgICAidmFsdWUiOiAiSm9icyAmIEludGVybnNoaXBzIgogICAgfSwKICAgIHsKICAgICAgImhyZWYiOiAiaHR0cHM6Ly9saWJyYXJ5LmNvbHVtYmlhLmVkdS9hYm91dC9uZXdzL2FsZXJ0Lmh0bWwiLAogICAgICAidmFsdWUiOiAiTGlicmFyeSBTdGF0dXMgVXBkYXRlcyIKICAgIH0sCiAgICB7CiAgICAgICJocmVmIjogImh0dHBzOi8vbGlicmFyeS5jb2x1bWJpYS5lZHUvYWJvdXQvbmV3cy5odG1sIiwKICAgICAgInZhbHVlIjogIk5ld3MiCiAgICB9LAogICAgewogICAgICAiaHJlZiI6ICJodHRwczovL2xpYnJhcnkuY29sdW1iaWEuZWR1L2Fib3V0L3ZhbHVlcy5odG1sIiwKICAgICAgInZhbHVlIjogIk91ciBWYWx1ZXMgJiBDb21taXRtZW50IGluIEFjdGlvbiIKICAgIH0sCiAgICAgICAgewogICAgICAiaHJlZiI6ICJodHRwczovL2xpYnJhcnkuY29sdW1iaWEuZWR1L2Fib3V0L3BvbGljaWVzLmh0bWwiLAogICAgICAidmFsdWUiOiAiUG9saWNpZXMiCiAgICB9LAogICAgewogICAgICAiaHJlZiI6ICJodHRwczovL2xpYnJhcnkuY29sdW1iaWEuZWR1L2Fib3V0L3N0YWZmLmh0bWwiLAogICAgICAidmFsdWUiOiAiU3RhZmYiCiAgICB9LAogICAgewogICAgICAiaHJlZiI6ICJodHRwczovL3N0cmF0ZWdpY2RpcmVjdGlvbnMubGlicmFyeS5jb2x1bWJpYS5lZHUvIiwKICAgICAgInZhbHVlIjogIlN0cmF0ZWdpYyBEaXJlY3Rpb25zIgogICAgfSwKICAgIHsKICAgICAgImhyZWYiOiAiaHR0cHM6Ly9saWJyYXJ5LmNvbHVtYmlhLmVkdS9hYm91dC9zdHVkZW50X2Fkdmlzb3J5X2NvbW1pdHRlZS5odG1sIiwKICAgICAgInZhbHVlIjogIlN0dWRlbnQgTGlicmFyeSBBZHZpc29yeSBDb21taXR0ZWUiCiAgICB9CiAgXQp9Cg==";
|
|
247
|
-
async function r(i) {
|
|
248
|
-
const l = i || d;
|
|
8
|
+
Collections: n,
|
|
9
|
+
"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" }],
|
|
10
|
+
"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" }],
|
|
11
|
+
About: u
|
|
12
|
+
}, h = "data:application/json;base64,ewogICJTZXJ2aWNlcyAmIFRvb2xzIjogWwogICAgewogICAgICAiaHJlZiI6ICJodHRwczovL2xpYnJhcnkuY29sdW1iaWEuZWR1L3NlcnZpY2VzLmh0bWwiLAogICAgICAidmFsdWUiOiAiU2VydmljZXMgJiBUb29scyIKICAgIH0sCiAgICB7CiAgICAgICJocmVmIjogImh0dHBzOi8vbGlicmFyeS5jb2x1bWJpYS5lZHUvdXNpbmctbGlicmFyaWVzL2FsdW1uaS5odG1sIiwKICAgICAgInZhbHVlIjogIkZvciBBbHVtbmkiCiAgICB9LAogICAgewogICAgICAiaHJlZiI6ICJodHRwczovL2xpYnJhcnkuY29sdW1iaWEuZWR1L3NlcnZpY2VzL2ZhY3VsdHkuaHRtbCIsCiAgICAgICJ2YWx1ZSI6ICJGb3IgRmFjdWx0eSIKICAgIH0sCiAgICB7CiAgICAgICJocmVmIjogImh0dHBzOi8vbGlicmFyeS5jb2x1bWJpYS5lZHUvc2VydmljZXMuaHRtbCNhdWRpZW5jZT1zdHVkZW50IiwKICAgICAgInZhbHVlIjogIkZvciBTdHVkZW50cyIKICAgIH0sCiAgICB7CiAgICAgICJocmVmIjogImh0dHBzOi8vbGlicmFyeS5jb2x1bWJpYS5lZHUvdXNpbmctbGlicmFyaWVzL3Zpc2l0b3JzLmh0bWwiLAogICAgICAidmFsdWUiOiAiRm9yIFZpc2l0b3JzIgogICAgfQogIF0sCiAgIkxpYnJhcmllcyI6IFsKICAgIHsKICAgICAgImhyZWYiOiAiaHR0cHM6Ly9saWJyYXJ5LmNvbHVtYmlhLmVkdS9saWJyYXJpZXMuaHRtbCIsCiAgICAgICJ2YWx1ZSI6ICJMaWJyYXJpZXMgJiBBZmZpbGlhdGVzIgogICAgfSwKICAgIHsKICAgICAgImhyZWYiOiAiaHR0cHM6Ly9saWJyYXJ5LmNvbHVtYmlhLmVkdS9saWJyYXJpZXMvYXZlcnkuaHRtbCIsCiAgICAgICJ2YWx1ZSI6ICJBdmVyeSBBcmNoaXRlY3R1cmFsICYgRmluZSBBcnRzIExpYnJhcnkiCiAgICB9LAogICAgewogICAgICAiaHJlZiI6ICJodHRwczovL2xpYnJhcnkuY29sdW1iaWEuZWR1L2xpYnJhcmllcy9idXJrZS5odG1sIiwKICAgICAgInZhbHVlIjogIkJ1cmtlIExpYnJhcnkgYXQgVW5pb24gVGhlb2xvZ2ljYWwgU2VtaW5hcnkiCiAgICB9LAogICAgewogICAgICAiaHJlZiI6ICJodHRwczovL2xpYnJhcnkuY29sdW1iaWEuZWR1L2xpYnJhcmllcy9idXNpbmVzcy5odG1sIiwKICAgICAgInZhbHVlIjogIkJ1c2luZXNzICYgRWNvbm9taWNzIExpYnJhcnkgaW4gVXJpcyIKICAgIH0sCiAgICB7CiAgICAgICJocmVmIjogImh0dHBzOi8vbGlicmFyeS5jb2x1bWJpYS5lZHUvbGlicmFyaWVzL2J1c2luZXNzLW1hbmhhdHRhbnZpbGxlLmh0bWwiLAogICAgICAidmFsdWUiOiAiQnVzaW5lc3MgTGlicmFyeSBhdCBNYW5oYXR0YW52aWxsZSIKICAgIH0sCiAgICB7CiAgICAgICJocmVmIjogImh0dHBzOi8vbGlicmFyeS5jb2x1bWJpYS5lZHUvbGlicmFyaWVzL2J1dGxlci5odG1sIiwKICAgICAgInZhbHVlIjogIkJ1dGxlciBMaWJyYXJ5IgogICAgfSwKICAgIHsKICAgICAgImhyZWYiOiAiaHR0cHM6Ly9saWJyYXJ5LmNvbHVtYmlhLmVkdS9saWJyYXJpZXMvZWFzdGFzaWFuLmh0bWwiLAogICAgICAidmFsdWUiOiAiQy5WLiBTdGFyciBFYXN0IEFzaWFuIExpYnJhcnkiCiAgICB9LAogICAgewogICAgICAiaHJlZiI6ICJodHRwczovL2xpYnJhcnkuY29sdW1iaWEuZWR1L2xpYnJhcmllcy9tdXNpYy5odG1sIiwKICAgICAgInZhbHVlIjogIkdhYmUgTS4gV2llbmVyIE11c2ljICYgQXJ0cyBMaWJyYXJ5IgogICAgfSwKICAgIHsKICAgICAgImhyZWYiOiAiaHR0cHM6Ly9saWJyYXJ5LmN1bWMuY29sdW1iaWEuZWR1LyIsCiAgICAgICJ2YWx1ZSI6ICJIZWFsdGggU2NpZW5jZXMgTGlicmFyeSIKICAgIH0sCiAgICB7CiAgICAgICJocmVmIjogImh0dHBzOi8vbGlicmFyeS5jb2x1bWJpYS5lZHUvbGlicmFyaWVzL2pvdXJuYWxpc20uaHRtbCIsCiAgICAgICJ2YWx1ZSI6ICJKb3VybmFsaXNtIExpYnJhcnkiCiAgICB9LAogICAgewogICAgICAiaHJlZiI6ICJodHRwczovL2xpYnJhcnkuY29sdW1iaWEuZWR1L2xpYnJhcmllcy9sZWhtYW4uaHRtbCIsCiAgICAgICJ2YWx1ZSI6ICJMZWhtYW4gU29jaWFsIFNjaWVuY2VzIExpYnJhcnkiCiAgICB9LAogICAgewogICAgICAiaHJlZiI6ICJodHRwOi8vd3d3Lmxhdy5jb2x1bWJpYS5lZHUvbGlicmFyeS8iLAogICAgICAidmFsdWUiOiAiTGkgTHUgTGF3IExpYnJhcnkiCiAgICB9LAogICAgewogICAgICAiaHJlZiI6ICJodHRwczovL2xpYnJhcnkuY29sdW1iaWEuZWR1L2xpYnJhcmllcy9tYXRoLmh0bWwiLAogICAgICAidmFsdWUiOiAiTWF0aGVtYXRpY3MgTGlicmFyeSIKICAgIH0sCiAgICB7CiAgICAgICJocmVmIjogImh0dHBzOi8vbGlicmFyeS5jb2x1bWJpYS5lZHUvbGlicmFyaWVzL3JibWwuaHRtbCIsCiAgICAgICJ2YWx1ZSI6ICJSYXJlIEJvb2sgJiBNYW51c2NyaXB0IExpYnJhcnkiCiAgICB9LAogICAgewogICAgICAiaHJlZiI6ICJodHRwczovL2xpYnJhcnkuY29sdW1iaWEuZWR1L2xpYnJhcmllcy9zY2llbmNlLWVuZ2luZWVyaW5nLmh0bWwiLAogICAgICAidmFsdWUiOiAiU2NpZW5jZSAmIEVuZ2luZWVyaW5nIExpYnJhcnkiCiAgICB9LAogICAgewogICAgICAiaHJlZiI6ICJodHRwczovL2xpYnJhcnkuY29sdW1iaWEuZWR1L2xpYnJhcmllcy9zb2NpYWwtd29yay5odG1sIiwKICAgICAgInZhbHVlIjogIlNvY2lhbCBXb3JrIExpYnJhcnkiCiAgICB9CiAgXSwKICAiQ29sbGVjdGlvbnMiOiBbCiAgICB7CiAgICAgICJocmVmIjogImh0dHBzOi8vbGlicmFyeS5jb2x1bWJpYS5lZHUvY29sbGVjdGlvbnMuaHRtbCIsCiAgICAgICJ2YWx1ZSI6ICJBYm91dCBPdXIgQ29sbGVjdGlvbnMiCiAgICB9LAogICAgewogICAgICAiaHJlZiI6ICJodHRwczovL2FjYWRlbWljY29tbW9ucy5jb2x1bWJpYS5lZHUvIiwKICAgICAgInZhbHVlIjogIkFjYWRlbWljIENvbW1vbnMiCiAgICB9LAogICAgewogICAgICAiaHJlZiI6ICJodHRwczovL2xpYnJhcnkuY29sdW1iaWEuZWR1L2NvbGxlY3Rpb25zL2FyY2hpdmVzLXBvcnRhbC5odG1sIiwKICAgICAgInZhbHVlIjogIkFyY2hpdmFsIENvbGxlY3Rpb25zIgogICAgfSwKICAgIHsKICAgICAgImhyZWYiOiAiaHR0cHM6Ly9yZXNvbHZlci5saWJyYXJ5LmNvbHVtYmlhLmVkdS9jbGlvIiwKICAgICAgInZhbHVlIjogIkNMSU86IENvbHVtYmlhIExpYnJhcmllcyBDYXRhbG9nIgogICAgfSwKICAgIHsKICAgICAgImhyZWYiOiAiaHR0cHM6Ly9saWJyYXJ5LmNvbHVtYmlhLmVkdS9hYm91dC9wb2xpY2llcy9jb2xsZWN0aW9uLWRldmVsb3BtZW50Lmh0bWwiLAogICAgICAidmFsdWUiOiAiQ29sbGVjdGlvbiBEZXZlbG9wbWVudCIKICAgIH0sCiAgICB7CiAgICAgICJocmVmIjogImh0dHBzOi8vZGxjLmxpYnJhcnkuY29sdW1iaWEuZWR1IiwKICAgICAgInZhbHVlIjogIkRpZ2l0YWwgQ29sbGVjdGlvbnMiCiAgICB9LAogICAgewogICAgICAiaHJlZiI6ICJodHRwczovL2xpYnJhcnkuY29sdW1iaWEuZWR1L2NvbGxlY3Rpb25zL2VyZXNvdXJjZXMuaHRtbCIsCiAgICAgICJ2YWx1ZSI6ICJFLVJlc291cmNlcyIKICAgIH0sCiAgICB7CiAgICAgICJocmVmIjogImh0dHBzOi8vcmVzb2x2ZXIubGlicmFyeS5jb2x1bWJpYS5lZHUvbHdlYjAwMDQiLAogICAgICAidmFsdWUiOiAiUmVjb21tZW5kIGEgVGl0bGUgZm9yIFB1cmNoYXNlIgogICAgfSwKICAgIHsKICAgICAgImhyZWYiOiAiaHR0cHM6Ly9saWJyYXJ5LmNvbHVtYmlhLmVkdS9hYm91dC9wb2xpY2llcy9jb2xsZWN0aW9uLWRldmVsb3BtZW50L3JlcGF0cmlhdGlvbi1yZXR1cm4uaHRtbCIsCiAgICAgICJ2YWx1ZSI6ICJSZXBhdHJpYXRpb24iCiAgICB9LAogICAgewogICAgICAiaHJlZiI6ICJodHRwczovL2xpYnJhcnkuY29sdW1iaWEuZWR1L2Fib3V0L3N0YWZmL3N1YmplY3Qtc3BlY2lhbGlzdHMtYnktc3ViamVjdC5odG1sIiwKICAgICAgInZhbHVlIjogIlN1YmplY3QgU3BlY2lhbGlzdHMiCiAgICB9CiAgXSwKICAiVXNpbmcgdGhlIExpYnJhcmllcyI6IFsKICAgIHsKICAgICAgImhyZWYiOiAiaHR0cHM6Ly9saWJyYXJ5LmNvbHVtYmlhLmVkdS91c2luZy1saWJyYXJpZXMuaHRtbCIsCiAgICAgICJ2YWx1ZSI6ICJVc2luZyB0aGUgTGlicmFyaWVzIgogICAgfSwKICAgIHsKICAgICAgImhyZWYiOiAiaHR0cHM6Ly9saWJyYXJ5LmNvbHVtYmlhLmVkdS91c2luZy1saWJyYXJpZXMvYWNjZXNzLXByaXZpbGVnZXMuaHRtbCIsCiAgICAgICJ2YWx1ZSI6ICJBY2Nlc3MgUHJpdmlsZWdlcyIKICAgIH0sCiAgICB7CiAgICAgICJocmVmIjogImh0dHBzOi8vbGlicmFyeS5jb2x1bWJpYS5lZHUvdXNpbmctbGlicmFyaWVzL2Rpc2FiaWxpdHkuaHRtbCIsCiAgICAgICJ2YWx1ZSI6ICJBY2Nlc3NpYmlsaXR5IgogICAgfSwKICAgIHsKICAgICAgImhyZWYiOiAiaHR0cHM6Ly9saWJyYXJ5LmNvbHVtYmlhLmVkdS91c2luZy1saWJyYXJpZXMvYm9ycm93aW5nLmh0bWwiLAogICAgICAidmFsdWUiOiAiQm9ycm93LCBSZXF1ZXN0LCBSZW5ldyIKICAgIH0sCiAgICB7CiAgICAgICJocmVmIjogImh0dHBzOi8vbGlicmFyeS5jb2x1bWJpYS5lZHUvc2VydmljZXMvcmVzZXJ2ZXMuaHRtbCIsCiAgICAgICJ2YWx1ZSI6ICJDb3Vyc2UgUmVzZXJ2ZXMiCiAgICB9LAogICAgewogICAgICAiaHJlZiI6ICJodHRwczovL2hvdXJzLmxpYnJhcnkuY29sdW1iaWEuZWR1LyIsCiAgICAgICJ2YWx1ZSI6ICJIb3VycyIKICAgIH0sCiAgICB7CiAgICAgICJocmVmIjogImh0dHBzOi8vbGlicmFyeS5jb2x1bWJpYS5lZHUvdXNpbmctbGlicmFyaWVzL3ByaW50aW5nLmh0bWwiLAogICAgICAidmFsdWUiOiAiUHJpbnQsIFNjYW4sIERpZ2l0aXplIgogICAgfQogIF0sCiAgIlJlc2VhcmNoICYgVGVhY2hpbmciOiBbCiAgICB7CiAgICAgICJocmVmIjogImh0dHBzOi8vbGlicmFyeS5jb2x1bWJpYS5lZHUvcmVzZWFyY2gtdGVhY2hpbmcuaHRtbCIsCiAgICAgICJ2YWx1ZSI6ICJSZXNlYXJjaCAmIFRlYWNoaW5nIgogICAgfSwKICAgIHsKICAgICAgImhyZWYiOiAiaHR0cHM6Ly9saWJyYXJ5LmNvbHVtYmlhLmVkdS9yZXNlYXJjaC10ZWFjaGluZy9jb3B5cmlnaHQuaHRtbCIsCiAgICAgICJ2YWx1ZSI6ICJDb3B5cmlnaHQgSW5mb3JtYXRpb24iCiAgICB9LAogICAgewogICAgICAiaHJlZiI6ICJodHRwczovL2xpYnJhcnkuY29sdW1iaWEuZWR1L3Jlc2VhcmNoLXRlYWNoaW5nL2dldHRpbmctc3RhcnRlZC5odG1sIiwKICAgICAgInZhbHVlIjogIkdldHRpbmcgU3RhcnRlZCB3aXRoIHRoZSBMaWJyYXJpZXMiCiAgICB9LAogICAgewogICAgICAiaHJlZiI6ICJodHRwczovL2xpYnJhcnkuY29sdW1iaWEuZWR1L3Jlc2VhcmNoLXRlYWNoaW5nL2dsb2JhbC5odG1sIiwKICAgICAgInZhbHVlIjogIkdsb2JhbCBTdHVkaWVzIgogICAgfSwKICAgIHsKICAgICAgImhyZWYiOiAiaHR0cHM6Ly9saWJyYXJ5LmNvbHVtYmlhLmVkdS9yZXNlYXJjaC10ZWFjaGluZy9vcGVuLXNjaG9sYXJzaGlwLmh0bWwiLAogICAgICAidmFsdWUiOiAiT3BlbiBTY2hvbGFyc2hpcCBTZXJ2aWNlcyIKICAgIH0sCiAgICB7CiAgICAgICJocmVmIjogImh0dHBzOi8vbGlicmFyeS5jb2x1bWJpYS5lZHUvc2VydmljZXMvcmVzZWFyY2gtZGF0YS1zZXJ2aWNlcy5odG1sIiwKICAgICAgInZhbHVlIjogIlJlc2VhcmNoIERhdGEgU2VydmljZXMiCiAgICB9LAogICAgewogICAgICAiaHJlZiI6ICJodHRwczovL2xpYnJhcnkuY29sdW1iaWEuZWR1L3NlcnZpY2VzL3N1YmplY3QtZ3VpZGVzLmh0bWwiLAogICAgICAidmFsdWUiOiAiU3ViamVjdCAmIENvdXJzZSBHdWlkZXMiCiAgICB9LAogICAgewogICAgICAiaHJlZiI6ICJodHRwczovL2xpYnJhcnkuY29sdW1iaWEuZWR1L3Jlc2VhcmNoLXRlYWNoaW5nL3dvcmtzaG9wcy5odG1sIiwKICAgICAgInZhbHVlIjogIldvcmtzaG9wcyAmIFRyYWluaW5nIgogICAgfQogIF0sCiAgIkFib3V0IjogWwogICAgewogICAgICAiaHJlZiI6ICJodHRwczovL2xpYnJhcnkuY29sdW1iaWEuZWR1L2Fib3V0Lmh0bWwiLAogICAgICAidmFsdWUiOiAiQWJvdXQgdGhlIExpYnJhcmllcyIKICAgIH0sCiAgICB7CiAgICAgICJocmVmIjogImh0dHBzOi8vbGlicmFyeS5jb2x1bWJpYS5lZHUvYWJvdXQvam9icy1pbnRlcm5zaGlwcy5odG1sIiwKICAgICAgInZhbHVlIjogIkpvYnMgJiBJbnRlcm5zaGlwcyIKICAgIH0sCiAgICB7CiAgICAgICJocmVmIjogImh0dHBzOi8vbGlicmFyeS5jb2x1bWJpYS5lZHUvYWJvdXQvbmV3cy9hbGVydC5odG1sIiwKICAgICAgInZhbHVlIjogIkxpYnJhcnkgU3RhdHVzIFVwZGF0ZXMiCiAgICB9LAogICAgewogICAgICAiaHJlZiI6ICJodHRwczovL2xpYnJhcnkuY29sdW1iaWEuZWR1L2Fib3V0L25ld3MuaHRtbCIsCiAgICAgICJ2YWx1ZSI6ICJOZXdzIgogICAgfSwKICAgIHsKICAgICAgImhyZWYiOiAiaHR0cHM6Ly9saWJyYXJ5LmNvbHVtYmlhLmVkdS9hYm91dC92YWx1ZXMuaHRtbCIsCiAgICAgICJ2YWx1ZSI6ICJPdXIgVmFsdWVzICYgQ29tbWl0bWVudCBpbiBBY3Rpb24iCiAgICB9LAogICAgICAgIHsKICAgICAgImhyZWYiOiAiaHR0cHM6Ly9saWJyYXJ5LmNvbHVtYmlhLmVkdS9hYm91dC9wb2xpY2llcy5odG1sIiwKICAgICAgInZhbHVlIjogIlBvbGljaWVzIgogICAgfSwKICAgIHsKICAgICAgImhyZWYiOiAiaHR0cHM6Ly9saWJyYXJ5LmNvbHVtYmlhLmVkdS9hYm91dC9zdGFmZi5odG1sIiwKICAgICAgInZhbHVlIjogIlN0YWZmIgogICAgfSwKICAgIHsKICAgICAgImhyZWYiOiAiaHR0cHM6Ly9zdHJhdGVnaWNkaXJlY3Rpb25zLmxpYnJhcnkuY29sdW1iaWEuZWR1LyIsCiAgICAgICJ2YWx1ZSI6ICJTdHJhdGVnaWMgRGlyZWN0aW9ucyIKICAgIH0sCiAgICB7CiAgICAgICJocmVmIjogImh0dHBzOi8vbGlicmFyeS5jb2x1bWJpYS5lZHUvYWJvdXQvc3R1ZGVudF9hZHZpc29yeV9jb21taXR0ZWUuaHRtbCIsCiAgICAgICJ2YWx1ZSI6ICJTdHVkZW50IExpYnJhcnkgQWR2aXNvcnkgQ29tbWl0dGVlIgogICAgfQogIF0KfQo=";
|
|
13
|
+
async function m(i) {
|
|
14
|
+
const e = i || h;
|
|
249
15
|
try {
|
|
250
|
-
const
|
|
16
|
+
const l = await fetch(d(e), {
|
|
251
17
|
cache: "no-store",
|
|
252
18
|
signal: AbortSignal.timeout(3e3)
|
|
253
19
|
// fail fast
|
|
254
20
|
});
|
|
255
|
-
if (!
|
|
256
|
-
return await
|
|
257
|
-
} catch (
|
|
21
|
+
if (!l.ok) throw new Error("Menu fetch failed");
|
|
22
|
+
return await l.json();
|
|
23
|
+
} catch (l) {
|
|
258
24
|
return console.warn(
|
|
259
25
|
"[CUL Menu] Remote menu unavailable, using bundled example.",
|
|
260
|
-
|
|
261
|
-
),
|
|
26
|
+
l
|
|
27
|
+
), A;
|
|
262
28
|
}
|
|
263
29
|
}
|
|
264
|
-
function
|
|
265
|
-
return i.includes("?") ? i : `${i}?v=5.
|
|
30
|
+
function d(i) {
|
|
31
|
+
return i.includes("?") ? i : `${i}?v=5.3.0`;
|
|
266
32
|
}
|
|
267
|
-
async function
|
|
268
|
-
const
|
|
269
|
-
if (!
|
|
270
|
-
const
|
|
271
|
-
|
|
272
|
-
const t = J(a,
|
|
273
|
-
a.replaceChildren(I),
|
|
33
|
+
async function W(i) {
|
|
34
|
+
const e = document.querySelectorAll("[data-cul-menu]");
|
|
35
|
+
if (!e.length) return;
|
|
36
|
+
const l = await m(i);
|
|
37
|
+
e.forEach((a, g) => {
|
|
38
|
+
const t = J(a, g), I = y(l, t);
|
|
39
|
+
a.replaceChildren(I), p(a);
|
|
274
40
|
});
|
|
275
41
|
}
|
|
276
|
-
function
|
|
42
|
+
function p(i) {
|
|
277
43
|
i.classList.remove("cul-menu-loading"), i.classList.add("cul-menu-loaded");
|
|
278
44
|
}
|
|
279
|
-
function J(i,
|
|
45
|
+
function J(i, e) {
|
|
280
46
|
return {
|
|
281
|
-
prefix: i.dataset.menuId || `culmenu-${
|
|
47
|
+
prefix: i.dataset.menuId || `culmenu-${e}`,
|
|
282
48
|
toggleTag: i.dataset.toggleTag || "button",
|
|
283
49
|
toggleClasses: i.dataset.toggleClasses || "btn btn-toggle ps-0 d-inline-flex w-100 align-items-center rounded border-0 collapsed",
|
|
284
50
|
listClasses: i.dataset.listClasses || "list-unstyled w-100",
|
|
@@ -286,72 +52,72 @@ function J(i, l) {
|
|
|
286
52
|
useCollapse: i.dataset.useCollapse !== "false"
|
|
287
53
|
};
|
|
288
54
|
}
|
|
289
|
-
function
|
|
290
|
-
const
|
|
291
|
-
|
|
55
|
+
function y(i, e) {
|
|
56
|
+
const l = document.createElement("ul");
|
|
57
|
+
l.className = e.listClasses;
|
|
292
58
|
for (const a in i) {
|
|
293
|
-
const
|
|
294
|
-
|
|
295
|
-
const t = `${
|
|
296
|
-
I.className =
|
|
297
|
-
const
|
|
298
|
-
|
|
299
|
-
const
|
|
300
|
-
|
|
301
|
-
const
|
|
302
|
-
C.href =
|
|
303
|
-
}),
|
|
59
|
+
const g = document.createElement("li");
|
|
60
|
+
g.className = "mb-1";
|
|
61
|
+
const t = `${e.prefix}-${Y(a)}-collapse`, I = document.createElement(e.toggleTag);
|
|
62
|
+
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);
|
|
63
|
+
const s = document.createElement("div");
|
|
64
|
+
s.className = e.useCollapse ? "collapse" : "", s.id = t;
|
|
65
|
+
const c = document.createElement("ul");
|
|
66
|
+
c.className = "btn-toggle-nav list-unstyled fw-normal pb-1", i[a].forEach((o) => {
|
|
67
|
+
const r = document.createElement("li"), C = document.createElement("a");
|
|
68
|
+
C.href = o.href, C.textContent = o.value, C.className = e.itemClasses, r.appendChild(C), c.appendChild(r);
|
|
69
|
+
}), s.appendChild(c), g.appendChild(s), l.appendChild(g);
|
|
304
70
|
}
|
|
305
|
-
return
|
|
71
|
+
return l;
|
|
306
72
|
}
|
|
307
|
-
function
|
|
73
|
+
function Y(i) {
|
|
308
74
|
return i.toLowerCase().replace(/\s+/g, "-");
|
|
309
75
|
}
|
|
310
|
-
async function
|
|
311
|
-
const
|
|
312
|
-
if (!
|
|
313
|
-
const a =
|
|
76
|
+
async function Z(i, e) {
|
|
77
|
+
const l = document.querySelector(i);
|
|
78
|
+
if (!l) return;
|
|
79
|
+
const a = l.querySelector("ul");
|
|
314
80
|
if (!a) {
|
|
315
81
|
console.warn("CUL navbar menu: <ul> not found");
|
|
316
82
|
return;
|
|
317
83
|
}
|
|
318
|
-
const
|
|
319
|
-
a.replaceChildren(
|
|
84
|
+
const g = await m(e), t = l.dataset.menuId || "cul-navbar";
|
|
85
|
+
a.replaceChildren(v(g, t)), H(l);
|
|
320
86
|
}
|
|
321
87
|
function H(i) {
|
|
322
88
|
i.classList.remove("cul-menu-loading"), i.classList.add("cul-menu-loaded");
|
|
323
89
|
}
|
|
324
|
-
function
|
|
325
|
-
const
|
|
90
|
+
function v(i, e) {
|
|
91
|
+
const l = document.createDocumentFragment();
|
|
326
92
|
for (const a in i) {
|
|
327
|
-
const
|
|
93
|
+
const g = `${e}-${L(a)}`, t = document.createElement("li");
|
|
328
94
|
t.className = "nav-item dropdown position-static d-inline-flex";
|
|
329
95
|
const I = document.createElement("a");
|
|
330
96
|
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);
|
|
331
|
-
const
|
|
332
|
-
|
|
333
|
-
const o = document.createElement("div");
|
|
334
|
-
o.className = "py-3 bg-secondary text-white";
|
|
97
|
+
const s = document.createElement("div");
|
|
98
|
+
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";
|
|
335
99
|
const c = document.createElement("div");
|
|
336
|
-
c.className = "
|
|
100
|
+
c.className = "py-3 bg-secondary text-white";
|
|
101
|
+
const o = document.createElement("div");
|
|
102
|
+
o.className = "container cul-cols", i[a].forEach((r) => {
|
|
337
103
|
const C = document.createElement("a");
|
|
338
|
-
C.href =
|
|
339
|
-
}),
|
|
104
|
+
C.href = r.href, C.className = "d-block py-1 text-white dropdown-item bg-secondary", C.textContent = r.value, o.appendChild(C);
|
|
105
|
+
}), c.appendChild(o), s.appendChild(c), t.appendChild(s), l.appendChild(t);
|
|
340
106
|
}
|
|
341
|
-
return
|
|
107
|
+
return l;
|
|
342
108
|
}
|
|
343
109
|
function L(i) {
|
|
344
110
|
return i.toLowerCase().replace(/\s+/g, "-");
|
|
345
111
|
}
|
|
346
112
|
function V(i) {
|
|
347
|
-
return
|
|
113
|
+
return W(i.url);
|
|
348
114
|
}
|
|
349
115
|
function w(i) {
|
|
350
|
-
return
|
|
116
|
+
return Z(i.selector, i.url);
|
|
351
117
|
}
|
|
352
118
|
export {
|
|
353
119
|
V as initCollapse,
|
|
354
120
|
w as initNavbar,
|
|
355
|
-
|
|
121
|
+
W as makeCULmenu
|
|
356
122
|
};
|
|
357
123
|
//# sourceMappingURL=cul-menu.bundle.es.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cul-menu.bundle.es.js","sources":["../../src/js/cul-main-menu.json?url","../../src/js/culmenu-fetch.js","../../src/js/culmenu.js","../../src/js/culmenu-navbar.js","../../src/js/cul-menu-bundle.js"],"sourcesContent":["export default \"data:application/json;base64,ewogICJTZXJ2aWNlcyAmIFRvb2xzIjogWwogICAgewogICAgICAiaHJlZiI6ICJodHRwczovL2xpYnJhcnkuY29sdW1iaWEuZWR1L3NlcnZpY2VzLmh0bWwiLAogICAgICAidmFsdWUiOiAiU2VydmljZXMgJiBUb29scyIKICAgIH0sCiAgICB7CiAgICAgICJocmVmIjogImh0dHBzOi8vbGlicmFyeS5jb2x1bWJpYS5lZHUvc2VydmljZXMvZmFxLmh0bWwiLAogICAgICAidmFsdWUiOiAiRkFRIgogICAgfSwKICAgIHsKICAgICAgImhyZWYiOiAiaHR0cHM6Ly9saWJyYXJ5LmNvbHVtYmlhLmVkdS91c2luZy1saWJyYXJpZXMvYWx1bW5pLmh0bWwiLAogICAgICAidmFsdWUiOiAiRm9yIEFsdW1uaSIKICAgIH0sCiAgICB7CiAgICAgICJocmVmIjogImh0dHBzOi8vbGlicmFyeS5jb2x1bWJpYS5lZHUvc2VydmljZXMvZmFjdWx0eS5odG1sIiwKICAgICAgInZhbHVlIjogIkZvciBGYWN1bHR5IgogICAgfSwKICAgIHsKICAgICAgImhyZWYiOiAiaHR0cHM6Ly9saWJyYXJ5LmNvbHVtYmlhLmVkdS9zZXJ2aWNlcy5odG1sI2F1ZGllbmNlPXN0dWRlbnQiLAogICAgICAidmFsdWUiOiAiRm9yIFN0dWRlbnRzIgogICAgfSwKICAgIHsKICAgICAgImhyZWYiOiAiaHR0cHM6Ly9saWJyYXJ5LmNvbHVtYmlhLmVkdS91c2luZy1saWJyYXJpZXMvdmlzaXRvcnMuaHRtbCIsCiAgICAgICJ2YWx1ZSI6ICJGb3IgVmlzaXRvcnMiCiAgICB9CiAgXSwKICAiTGlicmFyaWVzIjogWwogICAgewogICAgICAiaHJlZiI6ICJodHRwczovL2xpYnJhcnkuY29sdW1iaWEuZWR1L2xpYnJhcmllcy5odG1sIiwKICAgICAgInZhbHVlIjogIkxpYnJhcmllcyAmIEFmZmlsaWF0ZXMiCiAgICB9LAogICAgewogICAgICAiaHJlZiI6ICJodHRwczovL2xpYnJhcnkuY29sdW1iaWEuZWR1L2xpYnJhcmllcy9hdmVyeS5odG1sIiwKICAgICAgInZhbHVlIjogIkF2ZXJ5IEFyY2hpdGVjdHVyYWwgJiBGaW5lIEFydHMgTGlicmFyeSIKICAgIH0sCiAgICB7CiAgICAgICJocmVmIjogImh0dHBzOi8vbGlicmFyeS5jb2x1bWJpYS5lZHUvbGlicmFyaWVzL2J1cmtlLmh0bWwiLAogICAgICAidmFsdWUiOiAiQnVya2UgTGlicmFyeSBhdCBVbmlvbiBUaGVvbG9naWNhbCBTZW1pbmFyeSIKICAgIH0sCiAgICB7CiAgICAgICJocmVmIjogImh0dHBzOi8vbGlicmFyeS5jb2x1bWJpYS5lZHUvbGlicmFyaWVzL2J1c2luZXNzLmh0bWwiLAogICAgICAidmFsdWUiOiAiQnVzaW5lc3MgJiBFY29ub21pY3MgTGlicmFyeSBpbiBVcmlzIgogICAgfSwKICAgIHsKICAgICAgImhyZWYiOiAiaHR0cHM6Ly9saWJyYXJ5LmNvbHVtYmlhLmVkdS9saWJyYXJpZXMvYnVzaW5lc3MtbWFuaGF0dGFudmlsbGUuaHRtbCIsCiAgICAgICJ2YWx1ZSI6ICJCdXNpbmVzcyBMaWJyYXJ5IGF0IE1hbmhhdHRhbnZpbGxlIgogICAgfSwKICAgIHsKICAgICAgImhyZWYiOiAiaHR0cHM6Ly9saWJyYXJ5LmNvbHVtYmlhLmVkdS9saWJyYXJpZXMvYnV0bGVyLmh0bWwiLAogICAgICAidmFsdWUiOiAiQnV0bGVyIExpYnJhcnkiCiAgICB9LAogICAgewogICAgICAiaHJlZiI6ICJodHRwczovL2xpYnJhcnkuY29sdW1iaWEuZWR1L2xpYnJhcmllcy9lYXN0YXNpYW4uaHRtbCIsCiAgICAgICJ2YWx1ZSI6ICJDLlYuIFN0YXJyIEVhc3QgQXNpYW4gTGlicmFyeSIKICAgIH0sCiAgICB7CiAgICAgICJocmVmIjogImh0dHBzOi8vbGlicmFyeS5jb2x1bWJpYS5lZHUvbGlicmFyaWVzL211c2ljLmh0bWwiLAogICAgICAidmFsdWUiOiAiR2FiZSBNLiBXaWVuZXIgTXVzaWMgJiBBcnRzIExpYnJhcnkiCiAgICB9LAogICAgewogICAgICAiaHJlZiI6ICJodHRwczovL2xpYnJhcnkuY3VtYy5jb2x1bWJpYS5lZHUvIiwKICAgICAgInZhbHVlIjogIkhlYWx0aCBTY2llbmNlcyBMaWJyYXJ5IgogICAgfSwKICAgIHsKICAgICAgImhyZWYiOiAiaHR0cHM6Ly9saWJyYXJ5LmNvbHVtYmlhLmVkdS9saWJyYXJpZXMvam91cm5hbGlzbS5odG1sIiwKICAgICAgInZhbHVlIjogIkpvdXJuYWxpc20gTGlicmFyeSIKICAgIH0sCiAgICB7CiAgICAgICJocmVmIjogImh0dHBzOi8vbGlicmFyeS5jb2x1bWJpYS5lZHUvbGlicmFyaWVzL2xlaG1hbi5odG1sIiwKICAgICAgInZhbHVlIjogIkxlaG1hbiBTb2NpYWwgU2NpZW5jZXMgTGlicmFyeSIKICAgIH0sCiAgICB7CiAgICAgICJocmVmIjogImh0dHA6Ly93d3cubGF3LmNvbHVtYmlhLmVkdS9saWJyYXJ5LyIsCiAgICAgICJ2YWx1ZSI6ICJMaSBMdSBMYXcgTGlicmFyeSIKICAgIH0sCiAgICB7CiAgICAgICJocmVmIjogImh0dHBzOi8vbGlicmFyeS5jb2x1bWJpYS5lZHUvbGlicmFyaWVzL21hdGguaHRtbCIsCiAgICAgICJ2YWx1ZSI6ICJNYXRoZW1hdGljcyBMaWJyYXJ5IgogICAgfSwKICAgIHsKICAgICAgImhyZWYiOiAiaHR0cHM6Ly9saWJyYXJ5LmNvbHVtYmlhLmVkdS9saWJyYXJpZXMvdW5kZXJncmFkdWF0ZS5odG1sIiwKICAgICAgInZhbHVlIjogIk1pbHN0ZWluIFVuZGVyZ3JhZHVhdGUgTGlicmFyeSIKICAgIH0sCiAgICB7CiAgICAgICJocmVmIjogImh0dHBzOi8vbGlicmFyeS5jb2x1bWJpYS5lZHUvbGlicmFyaWVzL3JibWwuaHRtbCIsCiAgICAgICJ2YWx1ZSI6ICJSYXJlIEJvb2sgJiBNYW51c2NyaXB0IExpYnJhcnkiCiAgICB9LAogICAgewogICAgICAiaHJlZiI6ICJodHRwczovL2xpYnJhcnkuY29sdW1iaWEuZWR1L2xpYnJhcmllcy9zY2llbmNlLWVuZ2luZWVyaW5nLmh0bWwiLAogICAgICAidmFsdWUiOiAiU2NpZW5jZSAmIEVuZ2luZWVyaW5nIExpYnJhcnkiCiAgICB9LAogICAgewogICAgICAiaHJlZiI6ICJodHRwczovL2xpYnJhcnkuY29sdW1iaWEuZWR1L2xpYnJhcmllcy9zb2NpYWwtd29yay5odG1sIiwKICAgICAgInZhbHVlIjogIlNvY2lhbCBXb3JrIExpYnJhcnkiCiAgICB9CiAgXSwKICAiQ29sbGVjdGlvbnMiOiBbCiAgICB7CiAgICAgICJocmVmIjogImh0dHBzOi8vbGlicmFyeS5jb2x1bWJpYS5lZHUvY29sbGVjdGlvbnMuaHRtbCIsCiAgICAgICJ2YWx1ZSI6ICJBYm91dCBPdXIgQ29sbGVjdGlvbnMiCiAgICB9LAogICAgewogICAgICAiaHJlZiI6ICJodHRwczovL2FjYWRlbWljY29tbW9ucy5jb2x1bWJpYS5lZHUvIiwKICAgICAgInZhbHVlIjogIkFjYWRlbWljIENvbW1vbnMiCiAgICB9LAogICAgewogICAgICAiaHJlZiI6ICJodHRwczovL2xpYnJhcnkuY29sdW1iaWEuZWR1L2NvbGxlY3Rpb25zL2FyY2hpdmVzLXBvcnRhbC5odG1sIiwKICAgICAgInZhbHVlIjogIkFyY2hpdmFsIENvbGxlY3Rpb25zIgogICAgfSwKICAgIHsKICAgICAgImhyZWYiOiAiaHR0cHM6Ly9yZXNvbHZlci5saWJyYXJ5LmNvbHVtYmlhLmVkdS9jbGlvIiwKICAgICAgInZhbHVlIjogIkNMSU86IENvbHVtYmlhIExpYnJhcmllcyBDYXRhbG9nIgogICAgfSwKICAgIHsKICAgICAgImhyZWYiOiAiaHR0cHM6Ly9saWJyYXJ5LmNvbHVtYmlhLmVkdS9hYm91dC9wb2xpY2llcy9jb2xsZWN0aW9uLWRldmVsb3BtZW50Lmh0bWwiLAogICAgICAidmFsdWUiOiAiQ29sbGVjdGlvbiBEZXZlbG9wbWVudCIKICAgIH0sCiAgICB7CiAgICAgICJocmVmIjogImh0dHBzOi8vbGlicmFyeS5jb2x1bWJpYS5lZHUvY29sbGVjdGlvbnMvZGlnaXRhbC1jb2xsZWN0aW9ucy5odG1sIiwKICAgICAgInZhbHVlIjogIkRpZ2l0YWwgQ29sbGVjdGlvbnMgJiBFeGhpYml0aW9ucyIKICAgIH0sCiAgICB7CiAgICAgICJocmVmIjogImh0dHBzOi8vbGlicmFyeS5jb2x1bWJpYS5lZHUvY29sbGVjdGlvbnMvZXJlc291cmNlcy5odG1sIiwKICAgICAgInZhbHVlIjogIkUtUmVzb3VyY2VzIgogICAgfSwKICAgIHsKICAgICAgImhyZWYiOiAiaHR0cHM6Ly9saWJyYXJ5LmNvbHVtYmlhLmVkdS9jb2xsZWN0aW9ucy9vcmFsLWhpc3RvcnktcG9ydGFsLmh0bWwiLAogICAgICAidmFsdWUiOiAiT3JhbCBIaXN0b3J5IENvbGxlY3Rpb25zIgogICAgfSwKICAgIHsKICAgICAgImhyZWYiOiAiaHR0cHM6Ly9yZXNvbHZlci5saWJyYXJ5LmNvbHVtYmlhLmVkdS9sd2ViMDAwNCIsCiAgICAgICJ2YWx1ZSI6ICJSZWNvbW1lbmQgYSBUaXRsZSBmb3IgUHVyY2hhc2UiCiAgICB9LAogICAgewogICAgICAiaHJlZiI6ICJodHRwczovL2xpYnJhcnkuY29sdW1iaWEuZWR1L2Fib3V0L3BvbGljaWVzL2NvbGxlY3Rpb24tZGV2ZWxvcG1lbnQvcmVwYXRyaWF0aW9uLXJldHVybi5odG1sIiwKICAgICAgInZhbHVlIjogIlJlcGF0cmlhdGlvbiIKICAgIH0sCiAgICB7CiAgICAgICJocmVmIjogImh0dHBzOi8vbGlicmFyeS5jb2x1bWJpYS5lZHUvYWJvdXQvc3RhZmYvc3ViamVjdC1zcGVjaWFsaXN0cy1ieS1zdWJqZWN0Lmh0bWwiLAogICAgICAidmFsdWUiOiAiU3ViamVjdCBTcGVjaWFsaXN0cyIKICAgIH0KICBdLAogICJVc2luZyB0aGUgTGlicmFyaWVzIjogWwogICAgewogICAgICAiaHJlZiI6ICJodHRwczovL2xpYnJhcnkuY29sdW1iaWEuZWR1L3VzaW5nLWxpYnJhcmllcy5odG1sIiwKICAgICAgInZhbHVlIjogIlVzaW5nIHRoZSBMaWJyYXJpZXMiCiAgICB9LAogICAgewogICAgICAiaHJlZiI6ICJodHRwczovL2xpYnJhcnkuY29sdW1iaWEuZWR1L3VzaW5nLWxpYnJhcmllcy9hY2Nlc3MtcHJpdmlsZWdlcy5odG1sIiwKICAgICAgInZhbHVlIjogIkFjY2VzcyBQcml2aWxlZ2VzIgogICAgfSwKICAgIHsKICAgICAgImhyZWYiOiAiaHR0cHM6Ly9saWJyYXJ5LmNvbHVtYmlhLmVkdS91c2luZy1saWJyYXJpZXMvZGlzYWJpbGl0eS5odG1sIiwKICAgICAgInZhbHVlIjogIkFjY2Vzc2liaWxpdHkiCiAgICB9LAogICAgewogICAgICAiaHJlZiI6ICJodHRwczovL2xpYnJhcnkuY29sdW1iaWEuZWR1L3VzaW5nLWxpYnJhcmllcy9ib3Jyb3dpbmcuaHRtbCIsCiAgICAgICJ2YWx1ZSI6ICJCb3Jyb3csIFJlcXVlc3QsIFJlbmV3IgogICAgfSwKICAgIHsKICAgICAgImhyZWYiOiAiaHR0cHM6Ly9saWJyYXJ5LmNvbHVtYmlhLmVkdS9zZXJ2aWNlcy9yZXNlcnZlcy5odG1sIiwKICAgICAgInZhbHVlIjogIkNvdXJzZSBSZXNlcnZlcyIKICAgIH0sCiAgICB7CiAgICAgICJocmVmIjogImh0dHBzOi8vaG91cnMubGlicmFyeS5jb2x1bWJpYS5lZHUvIiwKICAgICAgInZhbHVlIjogIkhvdXJzIgogICAgfSwKICAgIHsKICAgICAgImhyZWYiOiAiaHR0cHM6Ly9saWJyYXJ5LmNvbHVtYmlhLmVkdS91c2luZy1saWJyYXJpZXMvcHJpbnRpbmcuaHRtbCIsCiAgICAgICJ2YWx1ZSI6ICJQcmludCwgU2NhbiwgRGlnaXRpemUiCiAgICB9CiAgXSwKICAiUmVzZWFyY2ggJiBUZWFjaGluZyI6IFsKICAgIHsKICAgICAgImhyZWYiOiAiaHR0cHM6Ly9saWJyYXJ5LmNvbHVtYmlhLmVkdS9yZXNlYXJjaC10ZWFjaGluZy5odG1sIiwKICAgICAgInZhbHVlIjogIlJlc2VhcmNoICYgVGVhY2hpbmciCiAgICB9LAogICAgewogICAgICAiaHJlZiI6ICJodHRwczovL2NvcHlyaWdodC5jb2x1bWJpYS5lZHUvaW5kZXguaHRtbCIsCiAgICAgICJ2YWx1ZSI6ICJDb3B5cmlnaHQgQWR2aXNvcnkgU2VydmljZXMiCiAgICB9LAogICAgewogICAgICAiaHJlZiI6ICJodHRwczovL2xpYnJhcnkuY29sdW1iaWEuZWR1L3Jlc2VhcmNoLXRlYWNoaW5nL2dldHRpbmctc3RhcnRlZC5odG1sIiwKICAgICAgInZhbHVlIjogIkdldHRpbmcgU3RhcnRlZCB3aXRoIHRoZSBMaWJyYXJpZXMiCiAgICB9LAogICAgewogICAgICAiaHJlZiI6ICJodHRwczovL2xpYnJhcnkuY29sdW1iaWEuZWR1L3Jlc2VhcmNoLXRlYWNoaW5nL29wZW4tc2Nob2xhcnNoaXAuaHRtbCIsCiAgICAgICJ2YWx1ZSI6ICJPcGVuIFNjaG9sYXJzaGlwIFNlcnZpY2VzIgogICAgfSwKICAgIHsKICAgICAgImhyZWYiOiAiaHR0cHM6Ly9saWJyYXJ5LmNvbHVtYmlhLmVkdS9zZXJ2aWNlcy9yZXNlYXJjaC1kYXRhLXNlcnZpY2VzLmh0bWwiLAogICAgICAidmFsdWUiOiAiUmVzZWFyY2ggRGF0YSBTZXJ2aWNlcyIKICAgIH0sCiAgICB7CiAgICAgICJocmVmIjogImh0dHBzOi8vbGlicmFyeS5jb2x1bWJpYS5lZHUvc2VydmljZXMvc3ViamVjdC1ndWlkZXMuaHRtbCIsCiAgICAgICJ2YWx1ZSI6ICJTdWJqZWN0ICYgQ291cnNlIEd1aWRlcyIKICAgIH0sCiAgICB7CiAgICAgICJocmVmIjogImh0dHBzOi8vbGlicmFyeS5jb2x1bWJpYS5lZHUvcmVzZWFyY2gtdGVhY2hpbmcvd29ya3Nob3BzLmh0bWwiLAogICAgICAidmFsdWUiOiAiV29ya3Nob3BzICYgVHJhaW5pbmciCiAgICB9CiAgXSwKICAiQWJvdXQiOiBbCiAgICB7CiAgICAgICJocmVmIjogImh0dHBzOi8vbGlicmFyeS5jb2x1bWJpYS5lZHUvYWJvdXQuaHRtbCIsCiAgICAgICJ2YWx1ZSI6ICJBYm91dCB0aGUgTGlicmFyaWVzIgogICAgfSwKICAgIHsKICAgICAgImhyZWYiOiAiaHR0cHM6Ly9saWJyYXJ5LmNvbHVtYmlhLmVkdS9hYm91dC9qb2JzLWludGVybnNoaXBzLmh0bWwiLAogICAgICAidmFsdWUiOiAiSm9icyAmIEludGVybnNoaXBzIgogICAgfSwKICAgIHsKICAgICAgImhyZWYiOiAiaHR0cHM6Ly9saWJyYXJ5LmNvbHVtYmlhLmVkdS9hYm91dC9uZXdzL2FsZXJ0Lmh0bWwiLAogICAgICAidmFsdWUiOiAiTGlicmFyeSBTdGF0dXMgVXBkYXRlcyIKICAgIH0sCiAgICB7CiAgICAgICJocmVmIjogImh0dHBzOi8vbGlicmFyeS5jb2x1bWJpYS5lZHUvYWJvdXQvbmV3cy5odG1sIiwKICAgICAgInZhbHVlIjogIk5ld3MiCiAgICB9LAogICAgewogICAgICAiaHJlZiI6ICJodHRwczovL2xpYnJhcnkuY29sdW1iaWEuZWR1L2Fib3V0L3ZhbHVlcy5odG1sIiwKICAgICAgInZhbHVlIjogIk91ciBWYWx1ZXMgJiBDb21taXRtZW50IGluIEFjdGlvbiIKICAgIH0sCiAgICAgICAgewogICAgICAiaHJlZiI6ICJodHRwczovL2xpYnJhcnkuY29sdW1iaWEuZWR1L2Fib3V0L3BvbGljaWVzLmh0bWwiLAogICAgICAidmFsdWUiOiAiUG9saWNpZXMiCiAgICB9LAogICAgewogICAgICAiaHJlZiI6ICJodHRwczovL2xpYnJhcnkuY29sdW1iaWEuZWR1L2Fib3V0L3N0YWZmLmh0bWwiLAogICAgICAidmFsdWUiOiAiU3RhZmYiCiAgICB9LAogICAgewogICAgICAiaHJlZiI6ICJodHRwczovL3N0cmF0ZWdpY2RpcmVjdGlvbnMubGlicmFyeS5jb2x1bWJpYS5lZHUvIiwKICAgICAgInZhbHVlIjogIlN0cmF0ZWdpYyBEaXJlY3Rpb25zIgogICAgfSwKICAgIHsKICAgICAgImhyZWYiOiAiaHR0cHM6Ly9saWJyYXJ5LmNvbHVtYmlhLmVkdS9hYm91dC9zdHVkZW50X2Fkdmlzb3J5X2NvbW1pdHRlZS5odG1sIiwKICAgICAgInZhbHVlIjogIlN0dWRlbnQgTGlicmFyeSBBZHZpc29yeSBDb21taXR0ZWUiCiAgICB9CiAgXQp9Cg==\"","// handles fetching menu json with fallback and cache-busting\n\n// culmenu-fetch.js\nimport exampleMenu from './cul-main-menu.json';\nimport exampleMenuUrl from './cul-main-menu.json?url';\n\nexport async function fetchCULmenu(url) {\n const runtimeUrl = url || exampleMenuUrl;\n\n try {\n const res = await fetch(addCacheBusting(runtimeUrl), {\n cache: 'no-store',\n signal: AbortSignal.timeout(3000) // fail fast\n });\n\n if (!res.ok) throw new Error('Menu fetch failed');\n return await res.json();\n\n } catch (err) {\n console.warn(\n '[CUL Menu] Remote menu unavailable, using bundled example.',\n err\n );\n return exampleMenu;\n }\n}\n\nfunction addCacheBusting(url) {\n if (url.includes('?')) return url;\n return `${url}?v=${__VERSION__}`;\n}\n\n","/**\n * culmenu.js\n *\n * vertical / collapse-style cul menu renderer.\n * bootstrap 5 dependent.\n */\n\nimport { fetchCULmenu } from './culmenu-fetch.js';\n\n/**\n * initialize all collapse-style menus\n * @param {string} jsonUrl - optional runtime json url\n */\nexport async function makeCULmenu(jsonUrl) {\n const targets = document.querySelectorAll('[data-cul-menu]');\n if (!targets.length) return;\n\n const menuData = await fetchCULmenu(jsonUrl);\n\n targets.forEach((el, index) => {\n const config = getConfig(el, index);\n const menu = buildCollapseMenu(menuData, config);\n el.replaceChildren(menu);\n\n markLoaded(el);\n });\n}\n\n/** mark container as loaded */\nfunction markLoaded(el) {\n el.classList.remove('cul-menu-loading');\n el.classList.add('cul-menu-loaded');\n}\n\n/** read config from data attributes with safe defaults */\nfunction getConfig(el, index) {\n return {\n prefix: el.dataset.menuId || `culmenu-${index}`,\n toggleTag: el.dataset.toggleTag || 'button',\n toggleClasses:\n el.dataset.toggleClasses ||\n 'btn btn-toggle ps-0 d-inline-flex w-100 align-items-center rounded border-0 collapsed',\n listClasses: el.dataset.listClasses || 'list-unstyled w-100',\n itemClasses: el.dataset.itemClasses || 'd-block',\n useCollapse: el.dataset.useCollapse !== 'false'\n };\n}\n\n/** build collapse menu dom */\nfunction buildCollapseMenu(data, config) {\n const ul = document.createElement('ul');\n ul.className = config.listClasses;\n\n for (const section in data) {\n const li = document.createElement('li');\n li.className = 'mb-1';\n\n const collapseId = `${config.prefix}-${slug(section)}-collapse`;\n\n // toggle element\n const toggle = document.createElement(config.toggleTag);\n toggle.className = config.toggleClasses;\n toggle.textContent = section;\n\n if (config.useCollapse) {\n toggle.setAttribute('data-bs-toggle', 'collapse');\n toggle.setAttribute('data-bs-target', `#${collapseId}`);\n toggle.setAttribute('aria-expanded', 'false');\n }\n\n li.appendChild(toggle);\n\n // collapsible content\n const collapseDiv = document.createElement('div');\n collapseDiv.className = config.useCollapse ? 'collapse' : '';\n collapseDiv.id = collapseId;\n\n const subUl = document.createElement('ul');\n subUl.className = 'btn-toggle-nav list-unstyled fw-normal pb-1';\n\n data[section].forEach(item => {\n const li2 = document.createElement('li');\n const a = document.createElement('a');\n a.href = item.href;\n a.textContent = item.value;\n a.className = config.itemClasses;\n li2.appendChild(a);\n subUl.appendChild(li2);\n });\n\n collapseDiv.appendChild(subUl);\n li.appendChild(collapseDiv);\n ul.appendChild(li);\n }\n\n return ul;\n}\n\n/** utility slugify */\nfunction slug(str) {\n return str.toLowerCase().replace(/\\s+/g, '-');\n}\n\n","/**\n * culmenu-navbar.js\n *\n * navbar / dropdown-style cul menu renderer.\n * matches bootstrap 5 navbar + dropdown + mega-menu pattern.\n */\n\nimport { fetchCULmenu } from './culmenu-fetch.js';\n\n/**\n * initialize navbar menus\n * @param {string} selector - container element\n * @param {string} jsonUrl - optional runtime json url\n */\nexport async function makeCULNavbarMenu(selector, jsonUrl) {\n const root = document.querySelector(selector);\n if (!root) return;\n\n const ul = root.querySelector('ul');\n if (!ul) {\n console.warn('CUL navbar menu: <ul> not found');\n return;\n }\n\n const menuData = await fetchCULmenu(jsonUrl);\n const prefix = root.dataset.menuId || 'cul-navbar';\n\n ul.replaceChildren(buildNavbarItems(menuData, prefix));\n markLoaded(root);\n}\n\nfunction markLoaded(el) {\n el.classList.remove('cul-menu-loading');\n el.classList.add('cul-menu-loaded');\n}\n\nfunction buildNavbarItems(data, prefix) {\n const fragment = document.createDocumentFragment();\n\n for (const section in data) {\n const slug = `${prefix}-${slugify(section)}`;\n\n const li = document.createElement('li');\n li.className = 'nav-item dropdown position-static d-inline-flex';\n\n const toggle = document.createElement('a');\n toggle.href = '#';\n toggle.className = 'nav-link dropdown-toggle my-2 me-3';\n toggle.setAttribute('data-bs-toggle', 'dropdown');\n toggle.setAttribute('aria-expanded', 'false');\n toggle.textContent = section;\n\n li.appendChild(toggle);\n\n const dropdown = document.createElement('div');\n dropdown.id = `${slug}-dropdown`;\n dropdown.className =\n 'dropdown-menu w-100 border-top-0 border-left-0 border-right-0 rounded-0 py-0 my-0';\n\n const innerBg = document.createElement('div');\n innerBg.className = 'py-3 bg-secondary text-white';\n\n const container = document.createElement('div');\n container.className = 'container cul-cols';\n\n data[section].forEach(item => {\n const a = document.createElement('a');\n a.href = item.href;\n a.className = 'd-block py-1 text-white dropdown-item bg-secondary';\n a.textContent = item.value;\n container.appendChild(a);\n });\n\n innerBg.appendChild(container);\n dropdown.appendChild(innerBg);\n li.appendChild(dropdown);\n fragment.appendChild(li);\n }\n\n return fragment;\n}\n\nfunction slugify(str) {\n return str.toLowerCase().replace(/\\s+/g, '-');\n}\n\n","/**\n * cul-menu-bundle.js\n *\n * public bundle entry for cul menu.\n * exposed as global `culmenu` (iife) and es module.\n */\n\n// bundled version for external usage via <script>\n\nimport { makeCULmenu } from './culmenu.js';\nimport { makeCULNavbarMenu } from './culmenu-navbar.js';\n\nfunction initCollapse(options) {\n return makeCULmenu(options.url);\n}\n\nfunction initNavbar(options) {\n return makeCULNavbarMenu(options.selector, options.url);\n}\n\nexport { makeCULmenu, initCollapse, initNavbar };\n\n"],"names":["exampleMenuUrl","fetchCULmenu","url","runtimeUrl","res","addCacheBusting","err","exampleMenu","makeCULmenu","jsonUrl","targets","menuData","el","index","config","getConfig","menu","buildCollapseMenu","markLoaded","data","ul","section","li","collapseId","slug","toggle","collapseDiv","subUl","item","li2","a","str","makeCULNavbarMenu","selector","root","prefix","buildNavbarItems","fragment","slugify","dropdown","innerBg","container","initCollapse","options","initNavbar"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cul-menu.bundle.es.js","sources":["../../src/js/cul-main-menu.json?url","../../src/js/culmenu-fetch.js","../../src/js/culmenu.js","../../src/js/culmenu-navbar.js","../../src/js/cul-menu-bundle.js"],"sourcesContent":["export default \"data:application/json;base64,ewogICJTZXJ2aWNlcyAmIFRvb2xzIjogWwogICAgewogICAgICAiaHJlZiI6ICJodHRwczovL2xpYnJhcnkuY29sdW1iaWEuZWR1L3NlcnZpY2VzLmh0bWwiLAogICAgICAidmFsdWUiOiAiU2VydmljZXMgJiBUb29scyIKICAgIH0sCiAgICB7CiAgICAgICJocmVmIjogImh0dHBzOi8vbGlicmFyeS5jb2x1bWJpYS5lZHUvdXNpbmctbGlicmFyaWVzL2FsdW1uaS5odG1sIiwKICAgICAgInZhbHVlIjogIkZvciBBbHVtbmkiCiAgICB9LAogICAgewogICAgICAiaHJlZiI6ICJodHRwczovL2xpYnJhcnkuY29sdW1iaWEuZWR1L3NlcnZpY2VzL2ZhY3VsdHkuaHRtbCIsCiAgICAgICJ2YWx1ZSI6ICJGb3IgRmFjdWx0eSIKICAgIH0sCiAgICB7CiAgICAgICJocmVmIjogImh0dHBzOi8vbGlicmFyeS5jb2x1bWJpYS5lZHUvc2VydmljZXMuaHRtbCNhdWRpZW5jZT1zdHVkZW50IiwKICAgICAgInZhbHVlIjogIkZvciBTdHVkZW50cyIKICAgIH0sCiAgICB7CiAgICAgICJocmVmIjogImh0dHBzOi8vbGlicmFyeS5jb2x1bWJpYS5lZHUvdXNpbmctbGlicmFyaWVzL3Zpc2l0b3JzLmh0bWwiLAogICAgICAidmFsdWUiOiAiRm9yIFZpc2l0b3JzIgogICAgfQogIF0sCiAgIkxpYnJhcmllcyI6IFsKICAgIHsKICAgICAgImhyZWYiOiAiaHR0cHM6Ly9saWJyYXJ5LmNvbHVtYmlhLmVkdS9saWJyYXJpZXMuaHRtbCIsCiAgICAgICJ2YWx1ZSI6ICJMaWJyYXJpZXMgJiBBZmZpbGlhdGVzIgogICAgfSwKICAgIHsKICAgICAgImhyZWYiOiAiaHR0cHM6Ly9saWJyYXJ5LmNvbHVtYmlhLmVkdS9saWJyYXJpZXMvYXZlcnkuaHRtbCIsCiAgICAgICJ2YWx1ZSI6ICJBdmVyeSBBcmNoaXRlY3R1cmFsICYgRmluZSBBcnRzIExpYnJhcnkiCiAgICB9LAogICAgewogICAgICAiaHJlZiI6ICJodHRwczovL2xpYnJhcnkuY29sdW1iaWEuZWR1L2xpYnJhcmllcy9idXJrZS5odG1sIiwKICAgICAgInZhbHVlIjogIkJ1cmtlIExpYnJhcnkgYXQgVW5pb24gVGhlb2xvZ2ljYWwgU2VtaW5hcnkiCiAgICB9LAogICAgewogICAgICAiaHJlZiI6ICJodHRwczovL2xpYnJhcnkuY29sdW1iaWEuZWR1L2xpYnJhcmllcy9idXNpbmVzcy5odG1sIiwKICAgICAgInZhbHVlIjogIkJ1c2luZXNzICYgRWNvbm9taWNzIExpYnJhcnkgaW4gVXJpcyIKICAgIH0sCiAgICB7CiAgICAgICJocmVmIjogImh0dHBzOi8vbGlicmFyeS5jb2x1bWJpYS5lZHUvbGlicmFyaWVzL2J1c2luZXNzLW1hbmhhdHRhbnZpbGxlLmh0bWwiLAogICAgICAidmFsdWUiOiAiQnVzaW5lc3MgTGlicmFyeSBhdCBNYW5oYXR0YW52aWxsZSIKICAgIH0sCiAgICB7CiAgICAgICJocmVmIjogImh0dHBzOi8vbGlicmFyeS5jb2x1bWJpYS5lZHUvbGlicmFyaWVzL2J1dGxlci5odG1sIiwKICAgICAgInZhbHVlIjogIkJ1dGxlciBMaWJyYXJ5IgogICAgfSwKICAgIHsKICAgICAgImhyZWYiOiAiaHR0cHM6Ly9saWJyYXJ5LmNvbHVtYmlhLmVkdS9saWJyYXJpZXMvZWFzdGFzaWFuLmh0bWwiLAogICAgICAidmFsdWUiOiAiQy5WLiBTdGFyciBFYXN0IEFzaWFuIExpYnJhcnkiCiAgICB9LAogICAgewogICAgICAiaHJlZiI6ICJodHRwczovL2xpYnJhcnkuY29sdW1iaWEuZWR1L2xpYnJhcmllcy9tdXNpYy5odG1sIiwKICAgICAgInZhbHVlIjogIkdhYmUgTS4gV2llbmVyIE11c2ljICYgQXJ0cyBMaWJyYXJ5IgogICAgfSwKICAgIHsKICAgICAgImhyZWYiOiAiaHR0cHM6Ly9saWJyYXJ5LmN1bWMuY29sdW1iaWEuZWR1LyIsCiAgICAgICJ2YWx1ZSI6ICJIZWFsdGggU2NpZW5jZXMgTGlicmFyeSIKICAgIH0sCiAgICB7CiAgICAgICJocmVmIjogImh0dHBzOi8vbGlicmFyeS5jb2x1bWJpYS5lZHUvbGlicmFyaWVzL2pvdXJuYWxpc20uaHRtbCIsCiAgICAgICJ2YWx1ZSI6ICJKb3VybmFsaXNtIExpYnJhcnkiCiAgICB9LAogICAgewogICAgICAiaHJlZiI6ICJodHRwczovL2xpYnJhcnkuY29sdW1iaWEuZWR1L2xpYnJhcmllcy9sZWhtYW4uaHRtbCIsCiAgICAgICJ2YWx1ZSI6ICJMZWhtYW4gU29jaWFsIFNjaWVuY2VzIExpYnJhcnkiCiAgICB9LAogICAgewogICAgICAiaHJlZiI6ICJodHRwOi8vd3d3Lmxhdy5jb2x1bWJpYS5lZHUvbGlicmFyeS8iLAogICAgICAidmFsdWUiOiAiTGkgTHUgTGF3IExpYnJhcnkiCiAgICB9LAogICAgewogICAgICAiaHJlZiI6ICJodHRwczovL2xpYnJhcnkuY29sdW1iaWEuZWR1L2xpYnJhcmllcy9tYXRoLmh0bWwiLAogICAgICAidmFsdWUiOiAiTWF0aGVtYXRpY3MgTGlicmFyeSIKICAgIH0sCiAgICB7CiAgICAgICJocmVmIjogImh0dHBzOi8vbGlicmFyeS5jb2x1bWJpYS5lZHUvbGlicmFyaWVzL3JibWwuaHRtbCIsCiAgICAgICJ2YWx1ZSI6ICJSYXJlIEJvb2sgJiBNYW51c2NyaXB0IExpYnJhcnkiCiAgICB9LAogICAgewogICAgICAiaHJlZiI6ICJodHRwczovL2xpYnJhcnkuY29sdW1iaWEuZWR1L2xpYnJhcmllcy9zY2llbmNlLWVuZ2luZWVyaW5nLmh0bWwiLAogICAgICAidmFsdWUiOiAiU2NpZW5jZSAmIEVuZ2luZWVyaW5nIExpYnJhcnkiCiAgICB9LAogICAgewogICAgICAiaHJlZiI6ICJodHRwczovL2xpYnJhcnkuY29sdW1iaWEuZWR1L2xpYnJhcmllcy9zb2NpYWwtd29yay5odG1sIiwKICAgICAgInZhbHVlIjogIlNvY2lhbCBXb3JrIExpYnJhcnkiCiAgICB9CiAgXSwKICAiQ29sbGVjdGlvbnMiOiBbCiAgICB7CiAgICAgICJocmVmIjogImh0dHBzOi8vbGlicmFyeS5jb2x1bWJpYS5lZHUvY29sbGVjdGlvbnMuaHRtbCIsCiAgICAgICJ2YWx1ZSI6ICJBYm91dCBPdXIgQ29sbGVjdGlvbnMiCiAgICB9LAogICAgewogICAgICAiaHJlZiI6ICJodHRwczovL2FjYWRlbWljY29tbW9ucy5jb2x1bWJpYS5lZHUvIiwKICAgICAgInZhbHVlIjogIkFjYWRlbWljIENvbW1vbnMiCiAgICB9LAogICAgewogICAgICAiaHJlZiI6ICJodHRwczovL2xpYnJhcnkuY29sdW1iaWEuZWR1L2NvbGxlY3Rpb25zL2FyY2hpdmVzLXBvcnRhbC5odG1sIiwKICAgICAgInZhbHVlIjogIkFyY2hpdmFsIENvbGxlY3Rpb25zIgogICAgfSwKICAgIHsKICAgICAgImhyZWYiOiAiaHR0cHM6Ly9yZXNvbHZlci5saWJyYXJ5LmNvbHVtYmlhLmVkdS9jbGlvIiwKICAgICAgInZhbHVlIjogIkNMSU86IENvbHVtYmlhIExpYnJhcmllcyBDYXRhbG9nIgogICAgfSwKICAgIHsKICAgICAgImhyZWYiOiAiaHR0cHM6Ly9saWJyYXJ5LmNvbHVtYmlhLmVkdS9hYm91dC9wb2xpY2llcy9jb2xsZWN0aW9uLWRldmVsb3BtZW50Lmh0bWwiLAogICAgICAidmFsdWUiOiAiQ29sbGVjdGlvbiBEZXZlbG9wbWVudCIKICAgIH0sCiAgICB7CiAgICAgICJocmVmIjogImh0dHBzOi8vZGxjLmxpYnJhcnkuY29sdW1iaWEuZWR1IiwKICAgICAgInZhbHVlIjogIkRpZ2l0YWwgQ29sbGVjdGlvbnMiCiAgICB9LAogICAgewogICAgICAiaHJlZiI6ICJodHRwczovL2xpYnJhcnkuY29sdW1iaWEuZWR1L2NvbGxlY3Rpb25zL2VyZXNvdXJjZXMuaHRtbCIsCiAgICAgICJ2YWx1ZSI6ICJFLVJlc291cmNlcyIKICAgIH0sCiAgICB7CiAgICAgICJocmVmIjogImh0dHBzOi8vcmVzb2x2ZXIubGlicmFyeS5jb2x1bWJpYS5lZHUvbHdlYjAwMDQiLAogICAgICAidmFsdWUiOiAiUmVjb21tZW5kIGEgVGl0bGUgZm9yIFB1cmNoYXNlIgogICAgfSwKICAgIHsKICAgICAgImhyZWYiOiAiaHR0cHM6Ly9saWJyYXJ5LmNvbHVtYmlhLmVkdS9hYm91dC9wb2xpY2llcy9jb2xsZWN0aW9uLWRldmVsb3BtZW50L3JlcGF0cmlhdGlvbi1yZXR1cm4uaHRtbCIsCiAgICAgICJ2YWx1ZSI6ICJSZXBhdHJpYXRpb24iCiAgICB9LAogICAgewogICAgICAiaHJlZiI6ICJodHRwczovL2xpYnJhcnkuY29sdW1iaWEuZWR1L2Fib3V0L3N0YWZmL3N1YmplY3Qtc3BlY2lhbGlzdHMtYnktc3ViamVjdC5odG1sIiwKICAgICAgInZhbHVlIjogIlN1YmplY3QgU3BlY2lhbGlzdHMiCiAgICB9CiAgXSwKICAiVXNpbmcgdGhlIExpYnJhcmllcyI6IFsKICAgIHsKICAgICAgImhyZWYiOiAiaHR0cHM6Ly9saWJyYXJ5LmNvbHVtYmlhLmVkdS91c2luZy1saWJyYXJpZXMuaHRtbCIsCiAgICAgICJ2YWx1ZSI6ICJVc2luZyB0aGUgTGlicmFyaWVzIgogICAgfSwKICAgIHsKICAgICAgImhyZWYiOiAiaHR0cHM6Ly9saWJyYXJ5LmNvbHVtYmlhLmVkdS91c2luZy1saWJyYXJpZXMvYWNjZXNzLXByaXZpbGVnZXMuaHRtbCIsCiAgICAgICJ2YWx1ZSI6ICJBY2Nlc3MgUHJpdmlsZWdlcyIKICAgIH0sCiAgICB7CiAgICAgICJocmVmIjogImh0dHBzOi8vbGlicmFyeS5jb2x1bWJpYS5lZHUvdXNpbmctbGlicmFyaWVzL2Rpc2FiaWxpdHkuaHRtbCIsCiAgICAgICJ2YWx1ZSI6ICJBY2Nlc3NpYmlsaXR5IgogICAgfSwKICAgIHsKICAgICAgImhyZWYiOiAiaHR0cHM6Ly9saWJyYXJ5LmNvbHVtYmlhLmVkdS91c2luZy1saWJyYXJpZXMvYm9ycm93aW5nLmh0bWwiLAogICAgICAidmFsdWUiOiAiQm9ycm93LCBSZXF1ZXN0LCBSZW5ldyIKICAgIH0sCiAgICB7CiAgICAgICJocmVmIjogImh0dHBzOi8vbGlicmFyeS5jb2x1bWJpYS5lZHUvc2VydmljZXMvcmVzZXJ2ZXMuaHRtbCIsCiAgICAgICJ2YWx1ZSI6ICJDb3Vyc2UgUmVzZXJ2ZXMiCiAgICB9LAogICAgewogICAgICAiaHJlZiI6ICJodHRwczovL2hvdXJzLmxpYnJhcnkuY29sdW1iaWEuZWR1LyIsCiAgICAgICJ2YWx1ZSI6ICJIb3VycyIKICAgIH0sCiAgICB7CiAgICAgICJocmVmIjogImh0dHBzOi8vbGlicmFyeS5jb2x1bWJpYS5lZHUvdXNpbmctbGlicmFyaWVzL3ByaW50aW5nLmh0bWwiLAogICAgICAidmFsdWUiOiAiUHJpbnQsIFNjYW4sIERpZ2l0aXplIgogICAgfQogIF0sCiAgIlJlc2VhcmNoICYgVGVhY2hpbmciOiBbCiAgICB7CiAgICAgICJocmVmIjogImh0dHBzOi8vbGlicmFyeS5jb2x1bWJpYS5lZHUvcmVzZWFyY2gtdGVhY2hpbmcuaHRtbCIsCiAgICAgICJ2YWx1ZSI6ICJSZXNlYXJjaCAmIFRlYWNoaW5nIgogICAgfSwKICAgIHsKICAgICAgImhyZWYiOiAiaHR0cHM6Ly9saWJyYXJ5LmNvbHVtYmlhLmVkdS9yZXNlYXJjaC10ZWFjaGluZy9jb3B5cmlnaHQuaHRtbCIsCiAgICAgICJ2YWx1ZSI6ICJDb3B5cmlnaHQgSW5mb3JtYXRpb24iCiAgICB9LAogICAgewogICAgICAiaHJlZiI6ICJodHRwczovL2xpYnJhcnkuY29sdW1iaWEuZWR1L3Jlc2VhcmNoLXRlYWNoaW5nL2dldHRpbmctc3RhcnRlZC5odG1sIiwKICAgICAgInZhbHVlIjogIkdldHRpbmcgU3RhcnRlZCB3aXRoIHRoZSBMaWJyYXJpZXMiCiAgICB9LAogICAgewogICAgICAiaHJlZiI6ICJodHRwczovL2xpYnJhcnkuY29sdW1iaWEuZWR1L3Jlc2VhcmNoLXRlYWNoaW5nL2dsb2JhbC5odG1sIiwKICAgICAgInZhbHVlIjogIkdsb2JhbCBTdHVkaWVzIgogICAgfSwKICAgIHsKICAgICAgImhyZWYiOiAiaHR0cHM6Ly9saWJyYXJ5LmNvbHVtYmlhLmVkdS9yZXNlYXJjaC10ZWFjaGluZy9vcGVuLXNjaG9sYXJzaGlwLmh0bWwiLAogICAgICAidmFsdWUiOiAiT3BlbiBTY2hvbGFyc2hpcCBTZXJ2aWNlcyIKICAgIH0sCiAgICB7CiAgICAgICJocmVmIjogImh0dHBzOi8vbGlicmFyeS5jb2x1bWJpYS5lZHUvc2VydmljZXMvcmVzZWFyY2gtZGF0YS1zZXJ2aWNlcy5odG1sIiwKICAgICAgInZhbHVlIjogIlJlc2VhcmNoIERhdGEgU2VydmljZXMiCiAgICB9LAogICAgewogICAgICAiaHJlZiI6ICJodHRwczovL2xpYnJhcnkuY29sdW1iaWEuZWR1L3NlcnZpY2VzL3N1YmplY3QtZ3VpZGVzLmh0bWwiLAogICAgICAidmFsdWUiOiAiU3ViamVjdCAmIENvdXJzZSBHdWlkZXMiCiAgICB9LAogICAgewogICAgICAiaHJlZiI6ICJodHRwczovL2xpYnJhcnkuY29sdW1iaWEuZWR1L3Jlc2VhcmNoLXRlYWNoaW5nL3dvcmtzaG9wcy5odG1sIiwKICAgICAgInZhbHVlIjogIldvcmtzaG9wcyAmIFRyYWluaW5nIgogICAgfQogIF0sCiAgIkFib3V0IjogWwogICAgewogICAgICAiaHJlZiI6ICJodHRwczovL2xpYnJhcnkuY29sdW1iaWEuZWR1L2Fib3V0Lmh0bWwiLAogICAgICAidmFsdWUiOiAiQWJvdXQgdGhlIExpYnJhcmllcyIKICAgIH0sCiAgICB7CiAgICAgICJocmVmIjogImh0dHBzOi8vbGlicmFyeS5jb2x1bWJpYS5lZHUvYWJvdXQvam9icy1pbnRlcm5zaGlwcy5odG1sIiwKICAgICAgInZhbHVlIjogIkpvYnMgJiBJbnRlcm5zaGlwcyIKICAgIH0sCiAgICB7CiAgICAgICJocmVmIjogImh0dHBzOi8vbGlicmFyeS5jb2x1bWJpYS5lZHUvYWJvdXQvbmV3cy9hbGVydC5odG1sIiwKICAgICAgInZhbHVlIjogIkxpYnJhcnkgU3RhdHVzIFVwZGF0ZXMiCiAgICB9LAogICAgewogICAgICAiaHJlZiI6ICJodHRwczovL2xpYnJhcnkuY29sdW1iaWEuZWR1L2Fib3V0L25ld3MuaHRtbCIsCiAgICAgICJ2YWx1ZSI6ICJOZXdzIgogICAgfSwKICAgIHsKICAgICAgImhyZWYiOiAiaHR0cHM6Ly9saWJyYXJ5LmNvbHVtYmlhLmVkdS9hYm91dC92YWx1ZXMuaHRtbCIsCiAgICAgICJ2YWx1ZSI6ICJPdXIgVmFsdWVzICYgQ29tbWl0bWVudCBpbiBBY3Rpb24iCiAgICB9LAogICAgICAgIHsKICAgICAgImhyZWYiOiAiaHR0cHM6Ly9saWJyYXJ5LmNvbHVtYmlhLmVkdS9hYm91dC9wb2xpY2llcy5odG1sIiwKICAgICAgInZhbHVlIjogIlBvbGljaWVzIgogICAgfSwKICAgIHsKICAgICAgImhyZWYiOiAiaHR0cHM6Ly9saWJyYXJ5LmNvbHVtYmlhLmVkdS9hYm91dC9zdGFmZi5odG1sIiwKICAgICAgInZhbHVlIjogIlN0YWZmIgogICAgfSwKICAgIHsKICAgICAgImhyZWYiOiAiaHR0cHM6Ly9zdHJhdGVnaWNkaXJlY3Rpb25zLmxpYnJhcnkuY29sdW1iaWEuZWR1LyIsCiAgICAgICJ2YWx1ZSI6ICJTdHJhdGVnaWMgRGlyZWN0aW9ucyIKICAgIH0sCiAgICB7CiAgICAgICJocmVmIjogImh0dHBzOi8vbGlicmFyeS5jb2x1bWJpYS5lZHUvYWJvdXQvc3R1ZGVudF9hZHZpc29yeV9jb21taXR0ZWUuaHRtbCIsCiAgICAgICJ2YWx1ZSI6ICJTdHVkZW50IExpYnJhcnkgQWR2aXNvcnkgQ29tbWl0dGVlIgogICAgfQogIF0KfQo=\"","// handles fetching menu json with fallback and cache-busting\n\n// culmenu-fetch.js\nimport exampleMenu from './cul-main-menu.json';\nimport exampleMenuUrl from './cul-main-menu.json?url';\n\nexport async function fetchCULmenu(url) {\n const runtimeUrl = url || exampleMenuUrl;\n\n try {\n const res = await fetch(addCacheBusting(runtimeUrl), {\n cache: 'no-store',\n signal: AbortSignal.timeout(3000) // fail fast\n });\n\n if (!res.ok) throw new Error('Menu fetch failed');\n return await res.json();\n\n } catch (err) {\n console.warn(\n '[CUL Menu] Remote menu unavailable, using bundled example.',\n err\n );\n return exampleMenu;\n }\n}\n\nfunction addCacheBusting(url) {\n if (url.includes('?')) return url;\n return `${url}?v=${__VERSION__}`;\n}\n\n","/**\n * culmenu.js\n *\n * vertical / collapse-style cul menu renderer.\n * bootstrap 5 dependent.\n */\n\nimport { fetchCULmenu } from './culmenu-fetch.js';\n\n/**\n * initialize all collapse-style menus\n * @param {string} jsonUrl - optional runtime json url\n */\nexport async function makeCULmenu(jsonUrl) {\n const targets = document.querySelectorAll('[data-cul-menu]');\n if (!targets.length) return;\n\n const menuData = await fetchCULmenu(jsonUrl);\n\n targets.forEach((el, index) => {\n const config = getConfig(el, index);\n const menu = buildCollapseMenu(menuData, config);\n el.replaceChildren(menu);\n\n markLoaded(el);\n });\n}\n\n/** mark container as loaded */\nfunction markLoaded(el) {\n el.classList.remove('cul-menu-loading');\n el.classList.add('cul-menu-loaded');\n}\n\n/** read config from data attributes with safe defaults */\nfunction getConfig(el, index) {\n return {\n prefix: el.dataset.menuId || `culmenu-${index}`,\n toggleTag: el.dataset.toggleTag || 'button',\n toggleClasses:\n el.dataset.toggleClasses ||\n 'btn btn-toggle ps-0 d-inline-flex w-100 align-items-center rounded border-0 collapsed',\n listClasses: el.dataset.listClasses || 'list-unstyled w-100',\n itemClasses: el.dataset.itemClasses || 'd-block',\n useCollapse: el.dataset.useCollapse !== 'false'\n };\n}\n\n/** build collapse menu dom */\nfunction buildCollapseMenu(data, config) {\n const ul = document.createElement('ul');\n ul.className = config.listClasses;\n\n for (const section in data) {\n const li = document.createElement('li');\n li.className = 'mb-1';\n\n const collapseId = `${config.prefix}-${slug(section)}-collapse`;\n\n // toggle element\n const toggle = document.createElement(config.toggleTag);\n toggle.className = config.toggleClasses;\n toggle.textContent = section;\n\n if (config.useCollapse) {\n toggle.setAttribute('data-bs-toggle', 'collapse');\n toggle.setAttribute('data-bs-target', `#${collapseId}`);\n toggle.setAttribute('aria-expanded', 'false');\n }\n\n li.appendChild(toggle);\n\n // collapsible content\n const collapseDiv = document.createElement('div');\n collapseDiv.className = config.useCollapse ? 'collapse' : '';\n collapseDiv.id = collapseId;\n\n const subUl = document.createElement('ul');\n subUl.className = 'btn-toggle-nav list-unstyled fw-normal pb-1';\n\n data[section].forEach(item => {\n const li2 = document.createElement('li');\n const a = document.createElement('a');\n a.href = item.href;\n a.textContent = item.value;\n a.className = config.itemClasses;\n li2.appendChild(a);\n subUl.appendChild(li2);\n });\n\n collapseDiv.appendChild(subUl);\n li.appendChild(collapseDiv);\n ul.appendChild(li);\n }\n\n return ul;\n}\n\n/** utility slugify */\nfunction slug(str) {\n return str.toLowerCase().replace(/\\s+/g, '-');\n}\n\n","/**\n * culmenu-navbar.js\n *\n * navbar / dropdown-style cul menu renderer.\n * matches bootstrap 5 navbar + dropdown + mega-menu pattern.\n */\n\nimport { fetchCULmenu } from './culmenu-fetch.js';\n\n/**\n * initialize navbar menus\n * @param {string} selector - container element\n * @param {string} jsonUrl - optional runtime json url\n */\nexport async function makeCULNavbarMenu(selector, jsonUrl) {\n const root = document.querySelector(selector);\n if (!root) return;\n\n const ul = root.querySelector('ul');\n if (!ul) {\n console.warn('CUL navbar menu: <ul> not found');\n return;\n }\n\n const menuData = await fetchCULmenu(jsonUrl);\n const prefix = root.dataset.menuId || 'cul-navbar';\n\n ul.replaceChildren(buildNavbarItems(menuData, prefix));\n markLoaded(root);\n}\n\nfunction markLoaded(el) {\n el.classList.remove('cul-menu-loading');\n el.classList.add('cul-menu-loaded');\n}\n\nfunction buildNavbarItems(data, prefix) {\n const fragment = document.createDocumentFragment();\n\n for (const section in data) {\n const slug = `${prefix}-${slugify(section)}`;\n\n const li = document.createElement('li');\n li.className = 'nav-item dropdown position-static d-inline-flex';\n\n const toggle = document.createElement('a');\n toggle.href = '#';\n toggle.className = 'nav-link dropdown-toggle my-2 me-3';\n toggle.setAttribute('data-bs-toggle', 'dropdown');\n toggle.setAttribute('aria-expanded', 'false');\n toggle.textContent = section;\n\n li.appendChild(toggle);\n\n const dropdown = document.createElement('div');\n dropdown.id = `${slug}-dropdown`;\n dropdown.className =\n 'dropdown-menu w-100 border-top-0 border-left-0 border-right-0 rounded-0 py-0 my-0';\n\n const innerBg = document.createElement('div');\n innerBg.className = 'py-3 bg-secondary text-white';\n\n const container = document.createElement('div');\n container.className = 'container cul-cols';\n\n data[section].forEach(item => {\n const a = document.createElement('a');\n a.href = item.href;\n a.className = 'd-block py-1 text-white dropdown-item bg-secondary';\n a.textContent = item.value;\n container.appendChild(a);\n });\n\n innerBg.appendChild(container);\n dropdown.appendChild(innerBg);\n li.appendChild(dropdown);\n fragment.appendChild(li);\n }\n\n return fragment;\n}\n\nfunction slugify(str) {\n return str.toLowerCase().replace(/\\s+/g, '-');\n}\n\n","/**\n * cul-menu-bundle.js\n *\n * public bundle entry for cul menu.\n * exposed as global `culmenu` (iife) and es module.\n */\n\n// bundled version for external usage via <script>\n\nimport { makeCULmenu } from './culmenu.js';\nimport { makeCULNavbarMenu } from './culmenu-navbar.js';\n\nfunction initCollapse(options) {\n return makeCULmenu(options.url);\n}\n\nfunction initNavbar(options) {\n return makeCULNavbarMenu(options.selector, options.url);\n}\n\nexport { makeCULmenu, initCollapse, initNavbar };\n\n"],"names":["exampleMenuUrl","fetchCULmenu","url","runtimeUrl","res","addCacheBusting","err","exampleMenu","makeCULmenu","jsonUrl","targets","menuData","el","index","config","getConfig","menu","buildCollapseMenu","markLoaded","data","ul","section","li","collapseId","slug","toggle","collapseDiv","subUl","item","li2","a","str","makeCULNavbarMenu","selector","root","prefix","buildNavbarItems","fragment","slugify","dropdown","innerBg","container","initCollapse","options","initNavbar"],"mappings":"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"}
|