@columbia-libraries/cul-toolkit 5.0.2

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.
@@ -0,0 +1,544 @@
1
+ <!doctype html>
2
+ <html lang="en">
3
+ <head>
4
+ <!-- BS5 and Vite! -->
5
+ <meta charset="utf-8">
6
+ <meta name="viewport" content="width=device-width, initial-scale=1">
7
+ <title>cul-toolkit</title>
8
+ <meta name="Description" content="Columbia University Libraries is a top-tier academic research library, serving one of the world's most important centers of research and learning.">
9
+ <link rel="shortcut icon" href="./assets/favicon.ico">
10
+ <script src="https://code.jquery.com/jquery-3.7.1.min.js"></script>
11
+ <script>
12
+ window.CUL = window.CUL || {};
13
+ </script>
14
+ <script type="module" crossorigin src="./assets/main.js"></script>
15
+ <link rel="stylesheet" crossorigin href="./assets/main.css">
16
+ </head>
17
+ <body>
18
+ <script>0</script>
19
+ <nav class="navbar sticky-top navbar-expand bg-body border-bottom">
20
+ <div class="container">
21
+ <div id="CULnavbar" class="flex-grow-1">
22
+ <a href="/" class="navbar-brand">
23
+ <img id="CULbrand" class="img-fluid" src="./assets/cul-text-logo.svg" alt="Columbia University Libraries">
24
+ </a>
25
+ </div>
26
+ <nav id="global-menu" class="navbar d-none d-lg-flex">
27
+ <ul class="navbar-nav">
28
+ <li class="nav-item">
29
+ <a class="nav-link text-secondary" href="https://resolver.library.columbia.edu/lweb0087">My Library Account</a>
30
+ </li>
31
+ <li class="nav-item">
32
+ <a class="nav-link text-secondary" href="https://hours.library.columbia.edu/">Hours</a>
33
+ </li>
34
+ <li class="nav-item">
35
+ <a class="nav-link text-secondary" href="/services/askalibrarian.html">Ask a Librarian</a>
36
+ </li>
37
+ </ul>
38
+ </nav>
39
+ <button type="button" class="btn btn-link text-secondary px-1" aria-label="Table of Contents Sidebar" data-bs-toggle="offcanvas" data-bs-target="#CULsidebar"><span class="fa-light fa-sidebar-flip"></span></button>
40
+ </div>
41
+ </nav>
42
+
43
+
44
+ <div class="offcanvas offcanvas-end" tabindex="-1" id="CULsidebar" aria-labelledby="CULsidebarLabel">
45
+ <div class="offcanvas-header">
46
+ <img class="me-2" style="max-height:1.3em;" src="./assets/columbia_crown_logo-square-135x135.svg"
47
+ alt="Columbia University Libraries">
48
+ <h5 class="offcanvas-title" id="CULsidebarLabel">Table of Contents</h5>
49
+ <button type="button" class="btn-close text-reset" data-bs-dismiss="offcanvas" aria-label="Close"></button>
50
+ </div>
51
+ <div class="offcanvas-body">
52
+ <div data-id="hero-search">
53
+ <form data-id="hero-search-form" style="position:relative;" class="d-flex mb-2 justify-content-between"
54
+ role="search" method="get" action="https://clio.columbia.edu/quicksearch">
55
+ <input required class="form-control border-primary tt-input" type="search"
56
+ aria-label="Search CLIO & the Libraries" placeholder="Search CLIO & the Libraries Website" name="q"
57
+ data-id="quicksearch" tabindex="0" autofocus>
58
+ <button style="position:absolute;right:0.3em;" type="reset" title="Clear the query" class="btn btn-link"
59
+ aria-label="Clear the query">
60
+ <i class="fal fa-times"></i>
61
+ </button>
62
+ </form>
63
+ </div>
64
+ <nav>
65
+ <ul class="list-unstyled">
66
+ <li class="">
67
+ <a class="ps-1 btn btn-link text-decoration-none text-secondary"
68
+ href="https://resolver.library.columbia.edu/lweb0087"><span class="far fa-user"></span> My
69
+ Library Account</a>
70
+ </li>
71
+ <li class="">
72
+ <a class="ps-1 btn btn-link text-decoration-none text-secondary"
73
+ href="https://hours.library.columbia.edu/"><span class="far fa-clock"></span> Hours</a>
74
+ </li>
75
+ <li class="">
76
+ <a class="ps-1 btn btn-link text-decoration-none text-secondary"
77
+ href="/services/askalibrarian.html"><span class="far fa-book-reader"></span> Ask a Librarian</a>
78
+ </li>
79
+ </ul>
80
+ </nav>
81
+
82
+ <hr>
83
+
84
+ <nav id="main-menu">
85
+ <ul class="list-unstyled w-100">
86
+ <li class="mb-1">
87
+ <button class="btn btn-toggle ps-0 d-inline-flex w-100 align-items-center rounded border-0 collapsed" data-bs-target="#services-&amp;amp;-tools-collapse" data-bs-toggle="collapse" aria-expanded="false">Services &amp; Tools</button>
88
+ <div id="services-&amp;amp;-tools-collapse" class="collapse">
89
+ <ul class="btn-toggle-nav list-unstyled fw-normal pb-1">
90
+ <li>
91
+ <a class="d-block" href="https://library.columbia.edu/services.html">Services &amp; Tools</a>
92
+ </li>
93
+ </ul>
94
+ </div>
95
+ <div id="services-&amp;amp;-tools-collapse" class="collapse">
96
+ <ul class="btn-toggle-nav list-unstyled fw-normal pb-1">
97
+ <li>
98
+ <a class="d-block" href="https://library.columbia.edu/services/faq.html">FAQ</a>
99
+ </li>
100
+ </ul>
101
+ </div>
102
+ <div id="services-&amp;amp;-tools-collapse" class="collapse">
103
+ <ul class="btn-toggle-nav list-unstyled fw-normal pb-1">
104
+ <li>
105
+ <a class="d-block" href="https://library.columbia.edu/using-libraries/alumni.html">For Alumni</a>
106
+ </li>
107
+ </ul>
108
+ </div>
109
+ <div id="services-&amp;amp;-tools-collapse" class="collapse">
110
+ <ul class="btn-toggle-nav list-unstyled fw-normal pb-1">
111
+ <li>
112
+ <a class="d-block" href="https://library.columbia.edu/services/faculty.html">For Faculty</a>
113
+ </li>
114
+ </ul>
115
+ </div>
116
+ <div id="services-&amp;amp;-tools-collapse" class="collapse">
117
+ <ul class="btn-toggle-nav list-unstyled fw-normal pb-1">
118
+ <li>
119
+ <a class="d-block" href="https://library.columbia.edu/services.html#audience&#x3D;student">For Students</a>
120
+ </li>
121
+ </ul>
122
+ </div>
123
+ <div id="services-&amp;amp;-tools-collapse" class="collapse">
124
+ <ul class="btn-toggle-nav list-unstyled fw-normal pb-1">
125
+ <li>
126
+ <a class="d-block" href="https://library.columbia.edu/using-libraries/visitors.html">For Visitors</a>
127
+ </li>
128
+ </ul>
129
+ </div>
130
+ </li>
131
+ <li class="mb-1">
132
+ <button class="btn btn-toggle ps-0 d-inline-flex w-100 align-items-center rounded border-0 collapsed" data-bs-target="#libraries-collapse" data-bs-toggle="collapse" aria-expanded="false">Libraries</button>
133
+ <div id="libraries-collapse" class="collapse">
134
+ <ul class="btn-toggle-nav list-unstyled fw-normal pb-1">
135
+ <li>
136
+ <a class="d-block" href="https://library.columbia.edu/libraries.html">Libraries &amp; Affiliates</a>
137
+ </li>
138
+ </ul>
139
+ </div>
140
+ <div id="libraries-collapse" class="collapse">
141
+ <ul class="btn-toggle-nav list-unstyled fw-normal pb-1">
142
+ <li>
143
+ <a class="d-block" href="https://library.columbia.edu/libraries/avery.html">Avery Architectural &amp; Fine Arts Library</a>
144
+ </li>
145
+ </ul>
146
+ </div>
147
+ <div id="libraries-collapse" class="collapse">
148
+ <ul class="btn-toggle-nav list-unstyled fw-normal pb-1">
149
+ <li>
150
+ <a class="d-block" href="https://library.columbia.edu/libraries/burke.html">Burke Library at Union Theological Seminary</a>
151
+ </li>
152
+ </ul>
153
+ </div>
154
+ <div id="libraries-collapse" class="collapse">
155
+ <ul class="btn-toggle-nav list-unstyled fw-normal pb-1">
156
+ <li>
157
+ <a class="d-block" href="https://library.columbia.edu/libraries/business.html">Business &amp; Economics Library in Uris</a>
158
+ </li>
159
+ </ul>
160
+ </div>
161
+ <div id="libraries-collapse" class="collapse">
162
+ <ul class="btn-toggle-nav list-unstyled fw-normal pb-1">
163
+ <li>
164
+ <a class="d-block" href="https://library.columbia.edu/libraries/business-manhattanville.html">Business Library at Manhattanville</a>
165
+ </li>
166
+ </ul>
167
+ </div>
168
+ <div id="libraries-collapse" class="collapse">
169
+ <ul class="btn-toggle-nav list-unstyled fw-normal pb-1">
170
+ <li>
171
+ <a class="d-block" href="https://library.columbia.edu/libraries/butler.html">Butler Library</a>
172
+ </li>
173
+ </ul>
174
+ </div>
175
+ <div id="libraries-collapse" class="collapse">
176
+ <ul class="btn-toggle-nav list-unstyled fw-normal pb-1">
177
+ <li>
178
+ <a class="d-block" href="https://library.columbia.edu/libraries/eastasian.html">C.V. Starr East Asian Library</a>
179
+ </li>
180
+ </ul>
181
+ </div>
182
+ <div id="libraries-collapse" class="collapse">
183
+ <ul class="btn-toggle-nav list-unstyled fw-normal pb-1">
184
+ <li>
185
+ <a class="d-block" href="https://library.columbia.edu/libraries/music.html">Gabe M. Wiener Music &amp; Arts Library</a>
186
+ </li>
187
+ </ul>
188
+ </div>
189
+ <div id="libraries-collapse" class="collapse">
190
+ <ul class="btn-toggle-nav list-unstyled fw-normal pb-1">
191
+ <li>
192
+ <a class="d-block" href="https://library.cumc.columbia.edu/">Health Sciences Library</a>
193
+ </li>
194
+ </ul>
195
+ </div>
196
+ <div id="libraries-collapse" class="collapse">
197
+ <ul class="btn-toggle-nav list-unstyled fw-normal pb-1">
198
+ <li>
199
+ <a class="d-block" href="https://library.columbia.edu/libraries/journalism.html">Journalism Library</a>
200
+ </li>
201
+ </ul>
202
+ </div>
203
+ <div id="libraries-collapse" class="collapse">
204
+ <ul class="btn-toggle-nav list-unstyled fw-normal pb-1">
205
+ <li>
206
+ <a class="d-block" href="http://www.law.columbia.edu/library/">Law Library</a>
207
+ </li>
208
+ </ul>
209
+ </div>
210
+ <div id="libraries-collapse" class="collapse">
211
+ <ul class="btn-toggle-nav list-unstyled fw-normal pb-1">
212
+ <li>
213
+ <a class="d-block" href="https://library.columbia.edu/libraries/lehman.html">Lehman Social Sciences Library</a>
214
+ </li>
215
+ </ul>
216
+ </div>
217
+ <div id="libraries-collapse" class="collapse">
218
+ <ul class="btn-toggle-nav list-unstyled fw-normal pb-1">
219
+ <li>
220
+ <a class="d-block" href="https://library.columbia.edu/libraries/math.html">Mathematics Library</a>
221
+ </li>
222
+ </ul>
223
+ </div>
224
+ <div id="libraries-collapse" class="collapse">
225
+ <ul class="btn-toggle-nav list-unstyled fw-normal pb-1">
226
+ <li>
227
+ <a class="d-block" href="https://library.columbia.edu/libraries/undergraduate.html">Milstein Undergraduate Library</a>
228
+ </li>
229
+ </ul>
230
+ </div>
231
+ <div id="libraries-collapse" class="collapse">
232
+ <ul class="btn-toggle-nav list-unstyled fw-normal pb-1">
233
+ <li>
234
+ <a class="d-block" href="https://library.columbia.edu/libraries/rbml.html">Rare Book &amp; Manuscript Library</a>
235
+ </li>
236
+ </ul>
237
+ </div>
238
+ <div id="libraries-collapse" class="collapse">
239
+ <ul class="btn-toggle-nav list-unstyled fw-normal pb-1">
240
+ <li>
241
+ <a class="d-block" href="https://library.columbia.edu/libraries/science-engineering.html">Science &amp; Engineering Library</a>
242
+ </li>
243
+ </ul>
244
+ </div>
245
+ <div id="libraries-collapse" class="collapse">
246
+ <ul class="btn-toggle-nav list-unstyled fw-normal pb-1">
247
+ <li>
248
+ <a class="d-block" href="https://library.columbia.edu/libraries/social-work.html">Social Work Library</a>
249
+ </li>
250
+ </ul>
251
+ </div>
252
+ </li>
253
+ <li class="mb-1">
254
+ <button class="btn btn-toggle ps-0 d-inline-flex w-100 align-items-center rounded border-0 collapsed" data-bs-target="#collections-collapse" data-bs-toggle="collapse" aria-expanded="false">Collections</button>
255
+ <div id="collections-collapse" class="collapse">
256
+ <ul class="btn-toggle-nav list-unstyled fw-normal pb-1">
257
+ <li>
258
+ <a class="d-block" href="https://library.columbia.edu/collections.html">About Our Collections</a>
259
+ </li>
260
+ </ul>
261
+ </div>
262
+ <div id="collections-collapse" class="collapse">
263
+ <ul class="btn-toggle-nav list-unstyled fw-normal pb-1">
264
+ <li>
265
+ <a class="d-block" href="https://academiccommons.columbia.edu/">Academic Commons</a>
266
+ </li>
267
+ </ul>
268
+ </div>
269
+ <div id="collections-collapse" class="collapse">
270
+ <ul class="btn-toggle-nav list-unstyled fw-normal pb-1">
271
+ <li>
272
+ <a class="d-block" href="https://library.columbia.edu/collections/archives-portal.html">Archival Collections</a>
273
+ </li>
274
+ </ul>
275
+ </div>
276
+ <div id="collections-collapse" class="collapse">
277
+ <ul class="btn-toggle-nav list-unstyled fw-normal pb-1">
278
+ <li>
279
+ <a class="d-block" href="https://resolver.library.columbia.edu/clio">CLIO: Columbia Libraries Catalog</a>
280
+ </li>
281
+ </ul>
282
+ </div>
283
+ <div id="collections-collapse" class="collapse">
284
+ <ul class="btn-toggle-nav list-unstyled fw-normal pb-1">
285
+ <li>
286
+ <a class="d-block" href="https://library.columbia.edu/about/policies/collection-development.html">Collection Development</a>
287
+ </li>
288
+ </ul>
289
+ </div>
290
+ <div id="collections-collapse" class="collapse">
291
+ <ul class="btn-toggle-nav list-unstyled fw-normal pb-1">
292
+ <li>
293
+ <a class="d-block" href="https://library.columbia.edu/collections/digital-collections.html">Digital Collections &amp; Exhibitions</a>
294
+ </li>
295
+ </ul>
296
+ </div>
297
+ <div id="collections-collapse" class="collapse">
298
+ <ul class="btn-toggle-nav list-unstyled fw-normal pb-1">
299
+ <li>
300
+ <a class="d-block" href="https://library.columbia.edu/collections/eresources.html">E-Resources</a>
301
+ </li>
302
+ </ul>
303
+ </div>
304
+ <div id="collections-collapse" class="collapse">
305
+ <ul class="btn-toggle-nav list-unstyled fw-normal pb-1">
306
+ <li>
307
+ <a class="d-block" href="https://library.columbia.edu/collections/oral-history-portal.html">Oral History Collections</a>
308
+ </li>
309
+ </ul>
310
+ </div>
311
+ <div id="collections-collapse" class="collapse">
312
+ <ul class="btn-toggle-nav list-unstyled fw-normal pb-1">
313
+ <li>
314
+ <a class="d-block" href="https://resolver.library.columbia.edu/lweb0004">Recommend a Title for Purchase</a>
315
+ </li>
316
+ </ul>
317
+ </div>
318
+ <div id="collections-collapse" class="collapse">
319
+ <ul class="btn-toggle-nav list-unstyled fw-normal pb-1">
320
+ <li>
321
+ <a class="d-block" href="https://library.columbia.edu/about/staff/subject-specialists-by-subject.html">Subject Specialists</a>
322
+ </li>
323
+ </ul>
324
+ </div>
325
+ </li>
326
+ <li class="mb-1">
327
+ <button class="btn btn-toggle ps-0 d-inline-flex w-100 align-items-center rounded border-0 collapsed" data-bs-target="#using-the-libraries-collapse" data-bs-toggle="collapse" aria-expanded="false">Using the Libraries</button>
328
+ <div id="using-the-libraries-collapse" class="collapse">
329
+ <ul class="btn-toggle-nav list-unstyled fw-normal pb-1">
330
+ <li>
331
+ <a class="d-block" href="https://library.columbia.edu/using-libraries.html">Using the Libraries</a>
332
+ </li>
333
+ </ul>
334
+ </div>
335
+ <div id="using-the-libraries-collapse" class="collapse">
336
+ <ul class="btn-toggle-nav list-unstyled fw-normal pb-1">
337
+ <li>
338
+ <a class="d-block" href="https://library.columbia.edu/using-libraries/access-privileges.html">Access Privileges</a>
339
+ </li>
340
+ </ul>
341
+ </div>
342
+ <div id="using-the-libraries-collapse" class="collapse">
343
+ <ul class="btn-toggle-nav list-unstyled fw-normal pb-1">
344
+ <li>
345
+ <a class="d-block" href="https://library.columbia.edu/using-libraries/disability.html">Accessibility</a>
346
+ </li>
347
+ </ul>
348
+ </div>
349
+ <div id="using-the-libraries-collapse" class="collapse">
350
+ <ul class="btn-toggle-nav list-unstyled fw-normal pb-1">
351
+ <li>
352
+ <a class="d-block" href="https://library.columbia.edu/using-libraries/borrowing.html">Borrow, Request, Renew</a>
353
+ </li>
354
+ </ul>
355
+ </div>
356
+ <div id="using-the-libraries-collapse" class="collapse">
357
+ <ul class="btn-toggle-nav list-unstyled fw-normal pb-1">
358
+ <li>
359
+ <a class="d-block" href="https://library.columbia.edu/services/reserves.html">Course Reserves</a>
360
+ </li>
361
+ </ul>
362
+ </div>
363
+ <div id="using-the-libraries-collapse" class="collapse">
364
+ <ul class="btn-toggle-nav list-unstyled fw-normal pb-1">
365
+ <li>
366
+ <a class="d-block" href="https://hours.library.columbia.edu/">Hours</a>
367
+ </li>
368
+ </ul>
369
+ </div>
370
+ <div id="using-the-libraries-collapse" class="collapse">
371
+ <ul class="btn-toggle-nav list-unstyled fw-normal pb-1">
372
+ <li>
373
+ <a class="d-block" href="https://library.columbia.edu/using-libraries/printing.html">Print, Scan, Digitize</a>
374
+ </li>
375
+ </ul>
376
+ </div>
377
+ <div id="using-the-libraries-collapse" class="collapse">
378
+ <ul class="btn-toggle-nav list-unstyled fw-normal pb-1">
379
+ <li>
380
+ <a class="d-block" href="https://library.columbia.eduusing-libraries/workshops.html">Workshops and Training</a>
381
+ </li>
382
+ </ul>
383
+ </div>
384
+ </li>
385
+ <li class="mb-1">
386
+ <button class="btn btn-toggle ps-0 d-inline-flex w-100 align-items-center rounded border-0 collapsed" data-bs-target="#research-&amp;amp;-teaching-collapse" data-bs-toggle="collapse" aria-expanded="false">Research &amp; Teaching</button>
387
+ <div id="research-&amp;amp;-teaching-collapse" class="collapse">
388
+ <ul class="btn-toggle-nav list-unstyled fw-normal pb-1">
389
+ <li>
390
+ <a class="d-block" href="https://library.columbia.edu/research-teaching.html">Research &amp; Teaching</a>
391
+ </li>
392
+ </ul>
393
+ </div>
394
+ <div id="research-&amp;amp;-teaching-collapse" class="collapse">
395
+ <ul class="btn-toggle-nav list-unstyled fw-normal pb-1">
396
+ <li>
397
+ <a class="d-block" href="https://copyright.columbia.edu/index.html">Copyright Advisory Services</a>
398
+ </li>
399
+ </ul>
400
+ </div>
401
+ <div id="research-&amp;amp;-teaching-collapse" class="collapse">
402
+ <ul class="btn-toggle-nav list-unstyled fw-normal pb-1">
403
+ <li>
404
+ <a class="d-block" href="https://library.columbia.edu/services/digital-scholarship.html">Digital Scholarship</a>
405
+ </li>
406
+ </ul>
407
+ </div>
408
+ <div id="research-&amp;amp;-teaching-collapse" class="collapse">
409
+ <ul class="btn-toggle-nav list-unstyled fw-normal pb-1">
410
+ <li>
411
+ <a class="d-block" href="https://library.columbia.edu/research-teaching/getting-started.html">Getting Started with the Libraries</a>
412
+ </li>
413
+ </ul>
414
+ </div>
415
+ <div id="research-&amp;amp;-teaching-collapse" class="collapse">
416
+ <ul class="btn-toggle-nav list-unstyled fw-normal pb-1">
417
+ <li>
418
+ <a class="d-block" href="https://library.columbia.edu/services/research-data-services.html">Research Data Services</a>
419
+ </li>
420
+ </ul>
421
+ </div>
422
+ <div id="research-&amp;amp;-teaching-collapse" class="collapse">
423
+ <ul class="btn-toggle-nav list-unstyled fw-normal pb-1">
424
+ <li>
425
+ <a class="d-block" href="https://library.columbia.edu/services/subject-guides.html">Subject &amp; Course Guides</a>
426
+ </li>
427
+ </ul>
428
+ </div>
429
+ <div id="research-&amp;amp;-teaching-collapse" class="collapse">
430
+ <ul class="btn-toggle-nav list-unstyled fw-normal pb-1">
431
+ <li>
432
+ <a class="d-block" href="https://library.columbia.edu/research-teaching/workshops.html">Workshops &amp; Training</a>
433
+ </li>
434
+ </ul>
435
+ </div>
436
+ </li>
437
+ <li class="mb-1">
438
+ <button class="btn btn-toggle ps-0 d-inline-flex w-100 align-items-center rounded border-0 collapsed" data-bs-target="#about-collapse" data-bs-toggle="collapse" aria-expanded="false">About</button>
439
+ <div id="about-collapse" class="collapse">
440
+ <ul class="btn-toggle-nav list-unstyled fw-normal pb-1">
441
+ <li>
442
+ <a class="d-block" href="https://library.columbia.edu/about.html">About the Libraries</a>
443
+ </li>
444
+ </ul>
445
+ </div>
446
+ <div id="about-collapse" class="collapse">
447
+ <ul class="btn-toggle-nav list-unstyled fw-normal pb-1">
448
+ <li>
449
+ <a class="d-block" href="https://library.columbia.edu/about/jobs-internships.html">Jobs &amp; Internships</a>
450
+ </li>
451
+ </ul>
452
+ </div>
453
+ <div id="about-collapse" class="collapse">
454
+ <ul class="btn-toggle-nav list-unstyled fw-normal pb-1">
455
+ <li>
456
+ <a class="d-block" href="https://library.columbia.edu/about/news/alert.html">Library Status Updates</a>
457
+ </li>
458
+ </ul>
459
+ </div>
460
+ <div id="about-collapse" class="collapse">
461
+ <ul class="btn-toggle-nav list-unstyled fw-normal pb-1">
462
+ <li>
463
+ <a class="d-block" href="https://library.columbia.edu/about/news.html">News</a>
464
+ </li>
465
+ </ul>
466
+ </div>
467
+ <div id="about-collapse" class="collapse">
468
+ <ul class="btn-toggle-nav list-unstyled fw-normal pb-1">
469
+ <li>
470
+ <a class="d-block" href="https://library.columbia.edu/about/values.html">Our Values &amp; Commitment in Action</a>
471
+ </li>
472
+ </ul>
473
+ </div>
474
+ <div id="about-collapse" class="collapse">
475
+ <ul class="btn-toggle-nav list-unstyled fw-normal pb-1">
476
+ <li>
477
+ <a class="d-block" href="https://library.columbia.edu/about/staff.html">Staff</a>
478
+ </li>
479
+ </ul>
480
+ </div>
481
+ <div id="about-collapse" class="collapse">
482
+ <ul class="btn-toggle-nav list-unstyled fw-normal pb-1">
483
+ <li>
484
+ <a class="d-block" href="https://strategicdirections.library.columbia.edu/">Strategic Directions</a>
485
+ </li>
486
+ </ul>
487
+ </div>
488
+ <div id="about-collapse" class="collapse">
489
+ <ul class="btn-toggle-nav list-unstyled fw-normal pb-1">
490
+ <li>
491
+ <a class="d-block" href="https://library.columbia.edu/about/student_advisory_committee.html">Student Library Advisory Committee</a>
492
+ </li>
493
+ </ul>
494
+ </div>
495
+ </li>
496
+ </ul>
497
+ </nav>
498
+
499
+ <p>
500
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
501
+ </p>
502
+
503
+ </div>
504
+ </div>
505
+
506
+ <div class="container col-xxl-8 px-4 py-2">
507
+ <div class="row flex-lg-row-reverse justify-content-center align-items-center g-5 py-5">
508
+ <div class="col-10 col-sm-8 col-lg-6">
509
+ <!--img src="bootstrap-themes.png" class="d-block mx-lg-auto img-fluid" alt="Bootstrap Themes" width="700" height="500" loading="lazy"-->
510
+ <img class="d-block mx-lg-auto img-fluid" width="360" height="360" loading="lazy"
511
+ src="./assets/columbia_crown_logo-square-135x135.svg" alt="Columbia University Libraries">
512
+ </div>
513
+ <div class="col-lg-6">
514
+ <h1 class="display-5 fw-bold text-body-emphasis lh-1 mb-3">cul-toolkit v5 with Bootstrap 5 &amp; Vite!</h1>
515
+ <p class="lead"><code>cul-toolkit</code> is a CUL-themed customization and extension of the Bootstrap 5
516
+ frontend framework for use with all official CUL web properties.</p>
517
+ <p>Watch this space (and our <a href="https://github.com/cul/cul-toolkit">Github</a> repository) for more
518
+ updates, examples, and documentation on implementing <code>cul-toolkit</code>, branding, assets,
519
+ widgets, and <code>quicksearch</code> into your official CUL web project.</p>
520
+ <div class="d-grid gap-2 d-md-flex justify-content-md-start">
521
+ <a href="examples/index.html" class="btn btn-info text-white btn-md px-4 me-md-2">Examples! <i
522
+ class="fa-duotone fa-solid fa-chevrons-right fa-beat"></i></a>
523
+ </div>
524
+ </div>
525
+ </div>
526
+ </div>
527
+
528
+ <script src="./js/typeahead-0.11.1.bundle.min.js"></script>
529
+ <script src="./js/quicksearch.js"></script>
530
+
531
+ <!-- FontAwesome 6 -->
532
+ <script id="fa-script" async src="https://kit.fontawesome.com/b5775b608d.js" crossorigin="anonymous"></script>
533
+ <script>
534
+ document.getElementById('fa-script').onerror = function () {
535
+ var scriptElement=document.createElement('script');
536
+ scriptElement.type = 'text/javascript';
537
+ scriptElement.src = "https://cdn.cul.columbia.edu/fontawesome/pro/v6.x/js/all.js";
538
+ document.body.appendChild(scriptElement);
539
+ }
540
+ </script>
541
+
542
+ </body>
543
+ </html>
544
+
@@ -0,0 +1,99 @@
1
+ // Strip potentially destructive character sequences from an HTML string
2
+ CUL.escapeHtml = function(html) {
3
+ return html.toString()
4
+ .replace(/javascript\:/g, '')
5
+ .replace(/&/g, '&amp;')
6
+ .replace(/\</g, '&lt;')
7
+ .replace(/\>/g, '&gt;')
8
+ .replace(/"/g, '&quot;')
9
+ .replace(/'/g, '&#039;');
10
+ }
11
+
12
+ jQuery(function($){
13
+ var bestBetsUrl = "https://key-resources.library.columbia.edu/key_resources.json?context=BestBets";
14
+
15
+ var bestBetResultTemplate = function(bestBetsResult) {
16
+ return '<div class="best-bet-result">' +
17
+ '<strong>' + CUL.escapeHtml(bestBetsResult.title) + '</strong>' +
18
+ (bestBetsResult.description.length == 0 ? '' : ' - ' + CUL.escapeHtml(bestBetsResult.description)) +
19
+ //'<br />' + '<a href="' + bestBetsResult.url + '"> + bestBetsResult.url + '</a>' +
20
+ '<br />' +
21
+ '<a href="' + bestBetsResult.url + '">' + bestBetsResult.url + '</a>' +
22
+ '</div>';
23
+ };
24
+
25
+ var dataObjectTokenizer = function(dataObject) {
26
+ return Bloodhound.tokenizers.whitespace(dataObject.haystack);
27
+ };
28
+
29
+ var queryTokenizer = function(query) {
30
+ return Bloodhound.tokenizers.whitespace(query);
31
+ };
32
+
33
+ $.ajax({
34
+ url: bestBetsUrl,
35
+ type: 'GET',
36
+ cache: false
37
+ }).done(function(bestBetsDataset) {
38
+ // Expected format of each array item in bestBetsDataset
39
+ // {
40
+ // description: "Avery Index to Architectural Periodicals",
41
+ // haystack: "Avery Index Avery Index to Architectural Periodicals Avery",
42
+ // id: 5,
43
+ // keywords: "Avery",
44
+ // tags: "BestBets",
45
+ // title: "Avery Index",
46
+ // tokens: "Avery",
47
+ // url: "http://library.columbia.edu/locations/avery/avery-index.html"
48
+ // }
49
+
50
+ var bloodhoundSearchEngine = new Bloodhound({
51
+ local: bestBetsDataset,
52
+ datumTokenizer: dataObjectTokenizer,
53
+ queryTokenizer: queryTokenizer
54
+ });
55
+
56
+ $('[data-id="quicksearch"]').typeahead({
57
+ hint: false,
58
+ highlight: false,
59
+ minLength: 3
60
+ }, {
61
+ name: 'best_bets',
62
+ source: bloodhoundSearchEngine,
63
+ templates: {
64
+ suggestion: function (data) { return bestBetResultTemplate(data); }
65
+ },
66
+ limit: 5,
67
+ display: 'title' // only put the title field in the search input
68
+ });
69
+
70
+ // Make hero search form visible by removing invisible class
71
+ $('[data-id="hero-search-form"]').removeClass('invisible');
72
+
73
+ }).fail(function (jqXHR, status, error) {
74
+ console.error("Unable to retrieve Bets Bets results for Quicksearch");
75
+ });
76
+
77
+ // When keying up and down through best bet suggestions, enter key press will send the user to the selected item url
78
+ $('[data-id="quicksearch"]').on('keydown', function(e) {
79
+ // Note: event.code is the right way to do things going forward, but isn't compatible with all browsers, so we'll use fallbacks like "which" and "keyCode".
80
+ var isEnterKey = (event.code && event.code === 'Enter') || (e.which && e.which === 13) || (e.keyCode && e.keyCode === 13);
81
+ var $selectedBestBetResult = $(this).closest('form').find('.best-bet-result.tt-cursor');
82
+ if(isEnterKey && $selectedBestBetResult.length > 0) {
83
+ // Prevent default so form isn't submitted
84
+ e.preventDefault();
85
+ // Navigate to selected best bet item url
86
+ window.location.href = $selectedBestBetResult.find('a').attr('href');
87
+ return;
88
+ }
89
+ });
90
+
91
+ // Clicking on a best bet suggestion, send the user to the selected item url
92
+ $('[data-id="hero-search"]').on('click', '.best-bet-result', function(e) {
93
+ // Prevent default so that a click on an anchor tag is ignored in favor of the javascript below
94
+ e.preventDefault();
95
+ // Navigate to clicked-on best bet item url
96
+ window.location.href = $(this).find('a').attr('href');
97
+ return;
98
+ });
99
+ });