@internetarchive/ia-topnav 1.3.5-alpha6 → 1.3.6-alpha.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.
Files changed (84) hide show
  1. package/.eslintrc +16 -16
  2. package/LICENSE +661 -661
  3. package/README.md +147 -147
  4. package/index.d.ts +109 -109
  5. package/index.js +3 -3
  6. package/package.json +61 -61
  7. package/src/assets/img/hamburger.js +38 -38
  8. package/src/assets/img/ia-icon.js +33 -33
  9. package/src/assets/img/icon-audio.js +23 -23
  10. package/src/assets/img/icon-close.js +16 -16
  11. package/src/assets/img/icon-donate-unpadded.js +16 -16
  12. package/src/assets/img/icon-donate.js +15 -15
  13. package/src/assets/img/icon-ellipses.js +15 -15
  14. package/src/assets/img/icon-ia-logo.js +22 -22
  15. package/src/assets/img/icon-images.js +15 -15
  16. package/src/assets/img/icon-search.js +15 -15
  17. package/src/assets/img/icon-software.js +15 -15
  18. package/src/assets/img/icon-texts.js +15 -15
  19. package/src/assets/img/icon-upload-unpadded.js +14 -14
  20. package/src/assets/img/icon-upload.js +15 -15
  21. package/src/assets/img/icon-user.js +15 -15
  22. package/src/assets/img/icon-video.js +15 -15
  23. package/src/assets/img/icon-web.js +15 -15
  24. package/src/assets/img/icon.js +18 -18
  25. package/src/assets/img/icons.js +33 -33
  26. package/src/assets/img/wordmark-stacked.js +13 -13
  27. package/src/data/menus.js +670 -670
  28. package/src/desktop-subnav.js +45 -45
  29. package/src/dropdown-menu.js +109 -109
  30. package/src/ia-topnav.js +314 -315
  31. package/src/lib/formatUrl.js +1 -1
  32. package/src/lib/location-handler.js +5 -5
  33. package/src/lib/query-handler.js +7 -7
  34. package/src/lib/toSentenceCase.js +8 -8
  35. package/src/login-button.js +79 -79
  36. package/src/media-button.js +113 -113
  37. package/src/media-menu.js +133 -133
  38. package/src/media-slider.js +104 -104
  39. package/src/media-subnav.js +112 -112
  40. package/src/more-slider.js +33 -33
  41. package/src/nav-search.js +117 -120
  42. package/src/primary-nav.js +224 -232
  43. package/src/save-page-form.js +59 -59
  44. package/src/search-menu.js +115 -146
  45. package/src/signed-out-dropdown.js +10 -10
  46. package/src/styles/base.js +48 -48
  47. package/src/styles/desktop-subnav.js +37 -37
  48. package/src/styles/dropdown-menu.js +166 -166
  49. package/src/styles/ia-topnav.js +87 -87
  50. package/src/styles/login-button.js +79 -79
  51. package/src/styles/media-button.js +156 -156
  52. package/src/styles/media-menu.js +70 -70
  53. package/src/styles/media-slider.js +81 -81
  54. package/src/styles/media-subnav.js +156 -156
  55. package/src/styles/more-slider.js +15 -15
  56. package/src/styles/nav-search.js +136 -136
  57. package/src/styles/primary-nav.js +300 -300
  58. package/src/styles/save-page-form.js +54 -54
  59. package/src/styles/search-menu.js +99 -102
  60. package/src/styles/signed-out-dropdown.js +31 -31
  61. package/src/styles/user-menu.js +31 -31
  62. package/src/styles/wayback-search.js +48 -48
  63. package/src/styles/wayback-slider.js +30 -30
  64. package/src/tracked-element.js +27 -27
  65. package/src/user-menu.js +42 -42
  66. package/src/wayback-search.js +18 -18
  67. package/src/wayback-slider.js +87 -87
  68. package/test/assets/img/hamburger.test.js +15 -15
  69. package/test/assets/img/user.test.js +15 -15
  70. package/test/data/menus.test.js +19 -19
  71. package/test/dropdown-menu.test.js +25 -25
  72. package/test/ia-icon.test.js +13 -13
  73. package/test/ia-topnav.test.js +273 -273
  74. package/test/login-button.test.js +15 -15
  75. package/test/media-button.test.js +19 -19
  76. package/test/media-menu.test.js +40 -40
  77. package/test/media-slider.test.js +57 -57
  78. package/test/more-slider.test.js +13 -13
  79. package/test/nav-search.test.js +61 -61
  80. package/test/primary-nav.test.js +82 -82
  81. package/test/save-page-form.test.js +35 -35
  82. package/test/search-menu.test.js +49 -49
  83. package/test/user-menu.test.js +33 -33
  84. package/test/wayback-slider.test.js +80 -80
package/src/data/menus.js CHANGED
@@ -1,670 +1,670 @@
1
- // @see https://git.archive.org/www/offshoot/-/blob/main/guides/update-top-nav.md
2
-
3
- export const defaultTopNavConfig = {
4
- // Google Analytics event category
5
- eventCategory: 'TopNav',
6
- // Array of strings representing the values of options that should be hidden from search options
7
- hiddenSearchOptions: [],
8
- // Default value, if more accurate value is not passed in to `buildTopNavMenus()`
9
- waybackPagesArchived: '740 billion',
10
- };
11
-
12
-
13
- /**
14
- * Creates archive.org top navigation configuration
15
- * @param { string } userid archive.org account (immutable) userid
16
- * @param { boolean } localLinks passing in false will ensure all links begin: https://archive.org
17
- * @param { string } waybackPagesArchived label readable 'how many pages in WayBack machine?'
18
- * If you don't pass in something, you'll get the potentially
19
- * older/less accurate version. Otherwise,
20
- * @see waybackPagesArchivedFN() (below) (please cache it)
21
- * for a live service accurate count result.
22
- * @param { string } itemIdentifier The current item being viewed, to populate admin menu items
23
- * @returns { object }
24
- */
25
- export function buildTopNavMenus(userid = '___USERID___', localLinks = true, waybackPagesArchived = '', itemIdentifier = '') {
26
- if (waybackPagesArchived)
27
- defaultTopNavConfig.waybackPagesArchived = waybackPagesArchived // update to more accurate val
28
-
29
-
30
- const prefix = localLinks ? '' : 'https://archive.org'
31
- return {
32
- audio: {
33
- heading: 'Internet Archive Audio',
34
- iconLinks: [
35
- {
36
- icon: `${prefix}/services/img/etree`,
37
- title: 'Live Music Archive',
38
- url: `${prefix}/details/etree`,
39
- },
40
- {
41
- icon: `${prefix}/services/img/librivoxaudio`,
42
- title: 'Librivox Free Audio',
43
- url: `${prefix}/details/librivoxaudio`,
44
- },
45
- ],
46
- featuredLinks: [
47
- {
48
- title: 'All Audio',
49
- url: `${prefix}/details/audio`,
50
- },
51
- {
52
- title: 'This Just In',
53
- url: `${prefix}/search.php?query=mediatype:audio&sort=-publicdate`,
54
- },
55
- {
56
- title: 'Grateful Dead',
57
- url: `${prefix}/details/GratefulDead`,
58
- },
59
- {
60
- title: 'Netlabels',
61
- url: `${prefix}/details/netlabels`,
62
- },
63
- {
64
- title: 'Old Time Radio',
65
- url: `${prefix}/details/oldtimeradio`,
66
- },
67
- {
68
- title: '78 RPMs and Cylinder Recordings',
69
- url: `${prefix}/details/78rpm`,
70
- },
71
- ],
72
- links: [
73
- {
74
- title: 'Audio Books & Poetry',
75
- url: `${prefix}/details/audio_bookspoetry`,
76
- },
77
- {
78
- title: 'Computers, Technology and Science',
79
- url: `${prefix}/details/audio_tech`,
80
- },
81
- {
82
- title: 'Music, Arts & Culture',
83
- url: `${prefix}/details/audio_music`,
84
- },
85
- {
86
- title: 'News & Public Affairs',
87
- url: `${prefix}/details/audio_news`,
88
- },
89
- {
90
- title: 'Spirituality & Religion',
91
- url: `${prefix}/details/audio_religion`,
92
- },
93
- {
94
- title: 'Podcasts',
95
- url: `${prefix}/details/podcasts`,
96
- },
97
- {
98
- title: 'Radio News Archive',
99
- url: `${prefix}/details/radio`,
100
- },
101
- ],
102
- },
103
- images: {
104
- heading: 'Images',
105
- iconLinks: [
106
- {
107
- icon: `${prefix}/services/img/metropolitanmuseumofart-gallery`,
108
- title: 'Metropolitan Museum',
109
- url: `${prefix}/details/metropolitanmuseumofart-gallery`,
110
- },
111
- {
112
- icon: `${prefix}/services/img/clevelandart`,
113
- title: 'Cleveland Museum of Art',
114
- url: `${prefix}/details/clevelandart`,
115
- },
116
- ],
117
- featuredLinks: [
118
- {
119
- title: 'All Images',
120
- url: `${prefix}/details/image`,
121
- },
122
- {
123
- title: 'This Just In',
124
- url: `${prefix}/search.php?query=mediatype:image&sort=-publicdate`,
125
- },
126
- {
127
- title: 'Flickr Commons',
128
- url: `${prefix}/details/flickrcommons`,
129
- },
130
- {
131
- title: 'Occupy Wall Street Flickr',
132
- url: `${prefix}/details/flickr-ows`,
133
- },
134
- {
135
- title: 'Cover Art',
136
- url: `${prefix}/details/coverartarchive`,
137
- },
138
- {
139
- title: 'USGS Maps',
140
- url: `${prefix}/details/maps_usgs`,
141
- },
142
- ],
143
- links: [
144
- {
145
- title: 'NASA Images',
146
- url: `${prefix}/details/nasa`,
147
- },
148
- {
149
- title: 'Solar System Collection',
150
- url: `${prefix}/details/solarsystemcollection`,
151
- },
152
- {
153
- title: 'Ames Research Center',
154
- url: `${prefix}/details/amesresearchcenterimagelibrary`,
155
- },
156
- ],
157
- },
158
- more: [
159
- {
160
- title: 'About',
161
- url: `${prefix}/about/`,
162
- },
163
- {
164
- title: 'Blog',
165
- url: 'https://blog.archive.org',
166
- },
167
- {
168
- title: 'Projects',
169
- url: `${prefix}/projects/`,
170
- },
171
- {
172
- title: 'Help',
173
- url: `${prefix}/about/faqs.php`,
174
- },
175
- {
176
- title: 'Donate',
177
- url: `${prefix}/donate?origin=iawww-TopNavDonateButton`,
178
- },
179
- {
180
- title: 'Contact',
181
- url: `${prefix}/about/contact.php`,
182
- },
183
- {
184
- title: 'Jobs',
185
- url: `${prefix}/about/jobs.php`,
186
- },
187
- {
188
- title: 'Volunteer',
189
- url: `${prefix}/about/volunteerpositions.php`,
190
- },
191
- {
192
- title: 'People',
193
- url: `${prefix}/about/bios.php`,
194
- },
195
- ],
196
- software: {
197
- heading: 'Software',
198
- iconLinks: [
199
- {
200
- icon: `${prefix}/services/img/internetarcade`,
201
- title: 'Internet Arcade',
202
- url: `${prefix}/details/internetarcade`,
203
- },
204
- {
205
- icon: `${prefix}/services/img/consolelivingroom`,
206
- title: 'Console Living Room',
207
- url: `${prefix}/details/consolelivingroom`,
208
- },
209
- ],
210
- featuredLinks: [
211
- {
212
- title: 'All Software',
213
- url: `${prefix}/details/software`,
214
- },
215
- {
216
- title: 'This Just In',
217
- url: `${prefix}/search.php?query=mediatype:software&sort=-publicdate`,
218
- },
219
- {
220
- title: 'Old School Emulation',
221
- url: `${prefix}/details/tosec`,
222
- },
223
- {
224
- title: 'MS-DOS Games',
225
- url: `${prefix}/details/softwarelibrary_msdos_games`,
226
- },
227
- {
228
- title: 'Historical Software',
229
- url: `${prefix}/details/historicalsoftware`,
230
- },
231
- {
232
- title: 'Classic PC Games',
233
- url: `${prefix}/details/classicpcgames`,
234
- },
235
- {
236
- title: 'Software Library',
237
- url: `${prefix}/details/softwarelibrary`,
238
- },
239
- ],
240
- links: [
241
- {
242
- title: 'Kodi Archive and Support File',
243
- url: `${prefix}/details/kodi_archive`,
244
- },
245
- {
246
- title: 'Vintage Software',
247
- url: `${prefix}/details/vintagesoftware`,
248
- },
249
- {
250
- title: 'APK',
251
- url: `${prefix}/details/apkarchive`,
252
- },
253
- {
254
- title: 'MS-DOS',
255
- url: `${prefix}/details/softwarelibrary_msdos`,
256
- },
257
- {
258
- title: 'CD-ROM Software',
259
- url: `${prefix}/details/cd-roms`,
260
- },
261
- {
262
- title: 'CD-ROM Software Library',
263
- url: `${prefix}/details/cdromsoftware`,
264
- },
265
- {
266
- title: 'Software Sites',
267
- url: `${prefix}/details/softwaresites`,
268
- },
269
- {
270
- title: 'Tucows Software Library',
271
- url: `${prefix}/details/tucows`,
272
- },
273
- {
274
- title: 'Shareware CD-ROMs',
275
- url: `${prefix}/details/cdbbsarchive`,
276
- },
277
- {
278
- title: 'Software Capsules Compilation',
279
- url: `${prefix}/details/softwarecapsules`,
280
- },
281
- {
282
- title: 'CD-ROM Images',
283
- url: `${prefix}/details/cdromimages`,
284
- },
285
- {
286
- title: 'ZX Spectrum',
287
- url: `${prefix}/details/softwarelibrary_zx_spectrum`,
288
- },
289
- {
290
- title: 'DOOM Level CD',
291
- url: `${prefix}/details/doom-cds`,
292
- },
293
- ],
294
- },
295
- texts: {
296
- heading: 'Books',
297
- iconLinks: [
298
- {
299
- title: 'Books to Borrow',
300
- icon: `${prefix}/images/book-lend.png`,
301
- url: `${prefix}/details/inlibrary`,
302
- },
303
- {
304
- title: 'Open Library',
305
- icon: `${prefix}/images/widgetOL.png`,
306
- url: 'https://openlibrary.org/',
307
- },
308
- ],
309
- featuredLinks: [
310
- {
311
- title: 'All Books',
312
- url: `${prefix}/details/books`,
313
- },
314
- {
315
- title: 'All Texts',
316
- url: `${prefix}/details/texts`,
317
- },
318
- {
319
- title: 'This Just In',
320
- url: `${prefix}/search.php?query=mediatype:texts&sort=-publicdate`,
321
- },
322
- {
323
- title: 'Smithsonian Libraries',
324
- url: `${prefix}/details/smithsonian`,
325
- },
326
- {
327
- title: 'FEDLINK (US)',
328
- url: `${prefix}/details/fedlink`,
329
- },
330
- {
331
- title: 'Genealogy',
332
- url: `${prefix}/details/genealogy`,
333
- },
334
- {
335
- title: 'Lincoln Collection',
336
- url: `${prefix}/details/lincolncollection`,
337
- },
338
- ],
339
- links: [
340
- {
341
- title: 'American Libraries',
342
- url: `${prefix}/details/americana`,
343
- },
344
- {
345
- title: 'Canadian Libraries',
346
- url: `${prefix}/details/toronto`,
347
- },
348
- {
349
- title: 'Universal Library',
350
- url: `${prefix}/details/universallibrary`,
351
- },
352
- {
353
- title: 'Project Gutenberg',
354
- url: `${prefix}/details/gutenberg`,
355
- },
356
- {
357
- title: "Children's Library",
358
- url: `${prefix}/details/iacl`,
359
- },
360
- {
361
- title: 'Biodiversity Heritage Library',
362
- url: `${prefix}/details/biodiversity`,
363
- },
364
- {
365
- title: 'Books by Language',
366
- url: `${prefix}/details/booksbylanguage`,
367
- },
368
- {
369
- title: 'Additional Collections',
370
- url: `${prefix}/details/additional_collections`,
371
- },
372
- ],
373
- },
374
- web: {
375
- mobileAppsLinks: [
376
- {
377
- url: 'https://apps.apple.com/us/app/wayback-machine/id1201888313',
378
- title: 'Wayback Machine (iOS)',
379
- external: true,
380
- },
381
- {
382
- url: 'https://play.google.com/store/apps/details?id=com.archive.waybackmachine&hl=en_US',
383
- title: 'Wayback Machine (Android)',
384
- external: true,
385
- },
386
- ],
387
- browserExtensionsLinks: [
388
- {
389
- url: 'https://chrome.google.com/webstore/detail/wayback-machine/fpnmgdkabkmnadcjpehmlllkndpkmiak',
390
- title: 'Chrome',
391
- external: true,
392
- },
393
- {
394
- url: 'https://addons.mozilla.org/en-US/firefox/addon/wayback-machine_new/',
395
- title: 'Firefox',
396
- external: true,
397
- },
398
- {
399
- url: 'https://apps.apple.com/us/app/wayback-machine/id1472432422?mt=12',
400
- title: 'Safari',
401
- external: true,
402
- },
403
- {
404
- url: 'https://microsoftedge.microsoft.com/addons/detail/wayback-machine/kjmickeoogghaimmomagaghnogelpcpn?hl=en-US',
405
- title: 'Edge',
406
- external: true,
407
- },
408
- ],
409
- archiveItLinks: [
410
- {
411
- url: 'https://www.archive-it.org/explore',
412
- title: 'Explore the Collections',
413
- external: true,
414
- },
415
- {
416
- url: 'https://www.archive-it.org/blog/learn-more/',
417
- title: 'Learn More',
418
- external: true,
419
- },
420
- {
421
- url: 'https://www.archive-it.org/contact-us',
422
- title: 'Build Collections',
423
- external: true,
424
- },
425
- ],
426
- },
427
- video: {
428
- heading: 'Video',
429
- iconLinks: [
430
- {
431
- icon: `${prefix}/services/img/tv`,
432
- title: 'TV News',
433
- url: `${prefix}/details/tv`,
434
- },
435
- {
436
- icon: `${prefix}/services/img/911`,
437
- title: 'Understanding 9/11',
438
- url: `${prefix}/details/911`,
439
- },
440
- ],
441
- featuredLinks: [
442
- {
443
- title: 'All Video',
444
- url: `${prefix}/details/movies`,
445
- },
446
- {
447
- title: 'This Just In',
448
- url: `${prefix}/search.php?query=mediatype:movies&sort=-publicdate`,
449
- },
450
- {
451
- title: 'Prelinger Archives',
452
- url: `${prefix}/details/prelinger`,
453
- },
454
- {
455
- title: 'Democracy Now!',
456
- url: `${prefix}/details/democracy_now_vid`,
457
- },
458
- {
459
- title: 'Occupy Wall Street',
460
- url: `${prefix}/details/occupywallstreet`,
461
- },
462
- {
463
- title: 'TV NSA Clip Library',
464
- url: `${prefix}/details/nsa`,
465
- },
466
- ],
467
- links: [
468
- {
469
- title: 'Animation & Cartoons',
470
- url: `${prefix}/details/animationandcartoons`,
471
- },
472
- {
473
- title: 'Arts & Music',
474
- url: `${prefix}/details/artsandmusicvideos`,
475
- },
476
- {
477
- title: 'Computers & Technology',
478
- url: `${prefix}/details/computersandtechvideos`,
479
- },
480
- {
481
- title: 'Cultural & Academic Films',
482
- url: `${prefix}/details/culturalandacademicfilms`,
483
- },
484
- {
485
- title: 'Ephemeral Films',
486
- url: `${prefix}/details/ephemera`,
487
- },
488
- {
489
- title: 'Movies',
490
- url: `${prefix}/details/moviesandfilms`,
491
- },
492
- {
493
- title: 'News & Public Affairs',
494
- url: `${prefix}/details/newsandpublicaffairs`,
495
- },
496
- {
497
- title: 'Spirituality & Religion',
498
- url: `${prefix}/details/spiritualityandreligion`,
499
- },
500
- {
501
- title: 'Sports Videos',
502
- url: `${prefix}/details/sports`,
503
- },
504
- {
505
- title: 'Television',
506
- url: `${prefix}/details/television`,
507
- },
508
- {
509
- title: 'Videogame Videos',
510
- url: `${prefix}/details/gamevideos`,
511
- },
512
- {
513
- title: 'Vlogs',
514
- url: `${prefix}/details/vlogs`,
515
- },
516
- {
517
- title: 'Youth Media',
518
- url: `${prefix}/details/youth_media`,
519
- },
520
- ],
521
- },
522
- user: [
523
- {
524
- url: `${prefix}/create`,
525
- title: 'Upload files',
526
- analyticsEvent: 'UserUpload',
527
- class: 'mobile-upload',
528
- },
529
- {
530
- url: `${prefix}/details/@${userid}`,
531
- title: 'My uploads',
532
- analyticsEvent: 'UserLibrary',
533
- },
534
- {
535
- url: `${prefix}/details/@${userid}/loans`,
536
- title: 'My loans',
537
- analyticsEvent: 'UserLoans',
538
- },
539
- {
540
- url: `${prefix}/details/fav-${userid}`,
541
- title: 'My favorites',
542
- analyticsEvent: 'UserFavorites',
543
- },
544
- {
545
- url: `${prefix}/details/@${userid}/lists`,
546
- title: 'My lists',
547
- analyticsEvent: 'UserLists',
548
- },
549
- {
550
- url: `${prefix}/details/@${userid}/collections`,
551
- title: 'My collections',
552
- analyticsEvent: 'UserCollections',
553
- },
554
- {
555
- url: `${prefix}/details/@${userid}/web-archive`,
556
- title: 'My web archives',
557
- analyticsEvent: 'UserWebArchive',
558
- },
559
- {
560
- url: `${prefix}/account/index.php?settings=1`,
561
- title: 'Account settings',
562
- analyticsEvent: 'UserSettings',
563
- },
564
- {
565
- url: 'https://help.archive.org',
566
- title: 'Get help',
567
- analyticsEvent: 'UserHelp',
568
- },
569
- {
570
- url: `${prefix}/account/logout`,
571
- title: 'Log out',
572
- analyticsEvent: 'UserLogOut',
573
- },
574
- ],
575
- userAdmin: [
576
- {
577
- title: 'ADMINS:',
578
- },
579
- {
580
- title: 'item:',
581
- },
582
- {
583
- url: `${prefix}/editxml/${itemIdentifier}`,
584
- title: 'edit xml',
585
- analyticsEvent: 'AdminUserEditXML',
586
- },
587
- {
588
- url: `${prefix}/edit.php?redir=1&identifier=${itemIdentifier}`,
589
- title: 'edit files',
590
- analyticsEvent: 'AdminUserEditFiles',
591
- },
592
- {
593
- url: `${prefix}/download/${itemIdentifier}/`,
594
- title: 'download',
595
- analyticsEvent: 'AdminUserDownload',
596
- },
597
- {
598
- url: `${prefix}/metadata/${itemIdentifier}/`,
599
- title: 'metadata',
600
- analyticsEvent: 'AdminUserMetadata',
601
- },
602
- {
603
- url: `https://catalogd.archive.org/history/${itemIdentifier}`,
604
- title: 'history',
605
- analyticsEvent: 'AdminUserHistory',
606
- },
607
- {
608
- url: `${prefix}/manage/${itemIdentifier}`,
609
- title: 'manage',
610
- analyticsEvent: 'AdminUserManager',
611
- },
612
- {
613
- url: `${prefix}/manage/${itemIdentifier}#make_dark`,
614
- title: 'curate',
615
- analyticsEvent: 'AdminUserCurate',
616
- },
617
- {
618
- url: `${prefix}/manage/${itemIdentifier}#modify_xml`,
619
- title: 'modify xml',
620
- analyticsEvent: 'AdminUserModifyXML',
621
- },
622
- ],
623
- userAdminFlags: [
624
- {
625
- url: `${prefix}/services/flags/admin.php?identifier=${itemIdentifier}`,
626
- title: 'manage flags',
627
- analyticsEvent: 'AdminUserManageFlags',
628
- },
629
- ],
630
- signedOut: [
631
- {
632
- url: `${prefix}/account/signup`,
633
- title: 'Sign up for free',
634
- analyticsEvent: 'AvatarMenu-Signup',
635
- },
636
- {
637
- url: `${prefix}/account/login`,
638
- title: 'Log in',
639
- analyticsEvent: 'AvatarMenu-Login',
640
- },
641
- ],
642
- };
643
- };
644
-
645
-
646
- let waybackPagesArchivedCached
647
-
648
- /**
649
- * Fetches accurate count of number of pages in WayBack Machine
650
- * @returns { string }
651
- */
652
- export async function waybackPagesArchivedFN() {
653
- if (waybackPagesArchivedCached)
654
- return waybackPagesArchivedCached;
655
-
656
- const counts = await (await fetch('https://archive.org/services/offshoot/home-page/mediacounts.php')).json();
657
- if (counts.success) {
658
- let label = ''
659
- let n = parseInt(counts.value.counts.web, 10);
660
- if (n > 1000) { n /= 1000; label = 'thousand'; }
661
- if (n > 1000) { n /= 1000; label = 'million'; }
662
- if (n > 1000) { n /= 1000; label = 'billion'; }
663
- if (n > 1000) { n /= 1000; label = 'trillion'; }
664
- waybackPagesArchivedCached = `${Math.round(n)} ${label}`
665
- } else {
666
- waybackPagesArchivedCached = '741 billion';
667
- }
668
-
669
- return waybackPagesArchivedCached;
670
- }
1
+ // @see https://git.archive.org/www/offshoot/-/blob/main/guides/update-top-nav.md
2
+
3
+ export const defaultTopNavConfig = {
4
+ // Google Analytics event category
5
+ eventCategory: 'TopNav',
6
+ // Array of strings representing the values of options that should be hidden from search options
7
+ hiddenSearchOptions: [],
8
+ // Default value, if more accurate value is not passed in to `buildTopNavMenus()`
9
+ waybackPagesArchived: '740 billion',
10
+ };
11
+
12
+
13
+ /**
14
+ * Creates archive.org top navigation configuration
15
+ * @param { string } userid archive.org account (immutable) userid
16
+ * @param { boolean } localLinks passing in false will ensure all links begin: https://archive.org
17
+ * @param { string } waybackPagesArchived label readable 'how many pages in WayBack machine?'
18
+ * If you don't pass in something, you'll get the potentially
19
+ * older/less accurate version. Otherwise,
20
+ * @see waybackPagesArchivedFN() (below) (please cache it)
21
+ * for a live service accurate count result.
22
+ * @param { string } itemIdentifier The current item being viewed, to populate admin menu items
23
+ * @returns { object }
24
+ */
25
+ export function buildTopNavMenus(userid = '___USERID___', localLinks = true, waybackPagesArchived = '', itemIdentifier = '') {
26
+ if (waybackPagesArchived)
27
+ defaultTopNavConfig.waybackPagesArchived = waybackPagesArchived // update to more accurate val
28
+
29
+
30
+ const prefix = localLinks ? '' : 'https://archive.org'
31
+ return {
32
+ audio: {
33
+ heading: 'Internet Archive Audio',
34
+ iconLinks: [
35
+ {
36
+ icon: `${prefix}/services/img/etree`,
37
+ title: 'Live Music Archive',
38
+ url: `${prefix}/details/etree`,
39
+ },
40
+ {
41
+ icon: `${prefix}/services/img/librivoxaudio`,
42
+ title: 'Librivox Free Audio',
43
+ url: `${prefix}/details/librivoxaudio`,
44
+ },
45
+ ],
46
+ featuredLinks: [
47
+ {
48
+ title: 'All Audio',
49
+ url: `${prefix}/details/audio`,
50
+ },
51
+ {
52
+ title: 'This Just In',
53
+ url: `${prefix}/search?query=mediatype:audio&sort=-publicdate`,
54
+ },
55
+ {
56
+ title: 'Grateful Dead',
57
+ url: `${prefix}/details/GratefulDead`,
58
+ },
59
+ {
60
+ title: 'Netlabels',
61
+ url: `${prefix}/details/netlabels`,
62
+ },
63
+ {
64
+ title: 'Old Time Radio',
65
+ url: `${prefix}/details/oldtimeradio`,
66
+ },
67
+ {
68
+ title: '78 RPMs and Cylinder Recordings',
69
+ url: `${prefix}/details/78rpm`,
70
+ },
71
+ ],
72
+ links: [
73
+ {
74
+ title: 'Audio Books & Poetry',
75
+ url: `${prefix}/details/audio_bookspoetry`,
76
+ },
77
+ {
78
+ title: 'Computers, Technology and Science',
79
+ url: `${prefix}/details/audio_tech`,
80
+ },
81
+ {
82
+ title: 'Music, Arts & Culture',
83
+ url: `${prefix}/details/audio_music`,
84
+ },
85
+ {
86
+ title: 'News & Public Affairs',
87
+ url: `${prefix}/details/audio_news`,
88
+ },
89
+ {
90
+ title: 'Spirituality & Religion',
91
+ url: `${prefix}/details/audio_religion`,
92
+ },
93
+ {
94
+ title: 'Podcasts',
95
+ url: `${prefix}/details/podcasts`,
96
+ },
97
+ {
98
+ title: 'Radio News Archive',
99
+ url: `${prefix}/details/radio`,
100
+ },
101
+ ],
102
+ },
103
+ images: {
104
+ heading: 'Images',
105
+ iconLinks: [
106
+ {
107
+ icon: `${prefix}/services/img/metropolitanmuseumofart-gallery`,
108
+ title: 'Metropolitan Museum',
109
+ url: `${prefix}/details/metropolitanmuseumofart-gallery`,
110
+ },
111
+ {
112
+ icon: `${prefix}/services/img/clevelandart`,
113
+ title: 'Cleveland Museum of Art',
114
+ url: `${prefix}/details/clevelandart`,
115
+ },
116
+ ],
117
+ featuredLinks: [
118
+ {
119
+ title: 'All Images',
120
+ url: `${prefix}/details/image`,
121
+ },
122
+ {
123
+ title: 'This Just In',
124
+ url: `${prefix}/search?query=mediatype:image&sort=-publicdate`,
125
+ },
126
+ {
127
+ title: 'Flickr Commons',
128
+ url: `${prefix}/details/flickrcommons`,
129
+ },
130
+ {
131
+ title: 'Occupy Wall Street Flickr',
132
+ url: `${prefix}/details/flickr-ows`,
133
+ },
134
+ {
135
+ title: 'Cover Art',
136
+ url: `${prefix}/details/coverartarchive`,
137
+ },
138
+ {
139
+ title: 'USGS Maps',
140
+ url: `${prefix}/details/maps_usgs`,
141
+ },
142
+ ],
143
+ links: [
144
+ {
145
+ title: 'NASA Images',
146
+ url: `${prefix}/details/nasa`,
147
+ },
148
+ {
149
+ title: 'Solar System Collection',
150
+ url: `${prefix}/details/solarsystemcollection`,
151
+ },
152
+ {
153
+ title: 'Ames Research Center',
154
+ url: `${prefix}/details/amesresearchcenterimagelibrary`,
155
+ },
156
+ ],
157
+ },
158
+ more: [
159
+ {
160
+ title: 'About',
161
+ url: `${prefix}/about/`,
162
+ },
163
+ {
164
+ title: 'Blog',
165
+ url: 'https://blog.archive.org',
166
+ },
167
+ {
168
+ title: 'Projects',
169
+ url: `${prefix}/projects/`,
170
+ },
171
+ {
172
+ title: 'Help',
173
+ url: `${prefix}/about/faqs.php`,
174
+ },
175
+ {
176
+ title: 'Donate',
177
+ url: `${prefix}/donate?origin=iawww-TopNavDonateButton`,
178
+ },
179
+ {
180
+ title: 'Contact',
181
+ url: `${prefix}/about/contact.php`,
182
+ },
183
+ {
184
+ title: 'Jobs',
185
+ url: `${prefix}/about/jobs.php`,
186
+ },
187
+ {
188
+ title: 'Volunteer',
189
+ url: `${prefix}/about/volunteerpositions.php`,
190
+ },
191
+ {
192
+ title: 'People',
193
+ url: `${prefix}/about/bios.php`,
194
+ },
195
+ ],
196
+ software: {
197
+ heading: 'Software',
198
+ iconLinks: [
199
+ {
200
+ icon: `${prefix}/services/img/internetarcade`,
201
+ title: 'Internet Arcade',
202
+ url: `${prefix}/details/internetarcade`,
203
+ },
204
+ {
205
+ icon: `${prefix}/services/img/consolelivingroom`,
206
+ title: 'Console Living Room',
207
+ url: `${prefix}/details/consolelivingroom`,
208
+ },
209
+ ],
210
+ featuredLinks: [
211
+ {
212
+ title: 'All Software',
213
+ url: `${prefix}/details/software`,
214
+ },
215
+ {
216
+ title: 'This Just In',
217
+ url: `${prefix}/search?query=mediatype:software&sort=-publicdate`,
218
+ },
219
+ {
220
+ title: 'Old School Emulation',
221
+ url: `${prefix}/details/tosec`,
222
+ },
223
+ {
224
+ title: 'MS-DOS Games',
225
+ url: `${prefix}/details/softwarelibrary_msdos_games`,
226
+ },
227
+ {
228
+ title: 'Historical Software',
229
+ url: `${prefix}/details/historicalsoftware`,
230
+ },
231
+ {
232
+ title: 'Classic PC Games',
233
+ url: `${prefix}/details/classicpcgames`,
234
+ },
235
+ {
236
+ title: 'Software Library',
237
+ url: `${prefix}/details/softwarelibrary`,
238
+ },
239
+ ],
240
+ links: [
241
+ {
242
+ title: 'Kodi Archive and Support File',
243
+ url: `${prefix}/details/kodi_archive`,
244
+ },
245
+ {
246
+ title: 'Vintage Software',
247
+ url: `${prefix}/details/vintagesoftware`,
248
+ },
249
+ {
250
+ title: 'APK',
251
+ url: `${prefix}/details/apkarchive`,
252
+ },
253
+ {
254
+ title: 'MS-DOS',
255
+ url: `${prefix}/details/softwarelibrary_msdos`,
256
+ },
257
+ {
258
+ title: 'CD-ROM Software',
259
+ url: `${prefix}/details/cd-roms`,
260
+ },
261
+ {
262
+ title: 'CD-ROM Software Library',
263
+ url: `${prefix}/details/cdromsoftware`,
264
+ },
265
+ {
266
+ title: 'Software Sites',
267
+ url: `${prefix}/details/softwaresites`,
268
+ },
269
+ {
270
+ title: 'Tucows Software Library',
271
+ url: `${prefix}/details/tucows`,
272
+ },
273
+ {
274
+ title: 'Shareware CD-ROMs',
275
+ url: `${prefix}/details/cdbbsarchive`,
276
+ },
277
+ {
278
+ title: 'Software Capsules Compilation',
279
+ url: `${prefix}/details/softwarecapsules`,
280
+ },
281
+ {
282
+ title: 'CD-ROM Images',
283
+ url: `${prefix}/details/cdromimages`,
284
+ },
285
+ {
286
+ title: 'ZX Spectrum',
287
+ url: `${prefix}/details/softwarelibrary_zx_spectrum`,
288
+ },
289
+ {
290
+ title: 'DOOM Level CD',
291
+ url: `${prefix}/details/doom-cds`,
292
+ },
293
+ ],
294
+ },
295
+ texts: {
296
+ heading: 'Books',
297
+ iconLinks: [
298
+ {
299
+ title: 'Books to Borrow',
300
+ icon: `${prefix}/images/book-lend.png`,
301
+ url: `${prefix}/details/inlibrary`,
302
+ },
303
+ {
304
+ title: 'Open Library',
305
+ icon: `${prefix}/images/widgetOL.png`,
306
+ url: 'https://openlibrary.org/',
307
+ },
308
+ ],
309
+ featuredLinks: [
310
+ {
311
+ title: 'All Books',
312
+ url: `${prefix}/details/books`,
313
+ },
314
+ {
315
+ title: 'All Texts',
316
+ url: `${prefix}/details/texts`,
317
+ },
318
+ {
319
+ title: 'This Just In',
320
+ url: `${prefix}/search?query=mediatype:texts&sort=-publicdate`,
321
+ },
322
+ {
323
+ title: 'Smithsonian Libraries',
324
+ url: `${prefix}/details/smithsonian`,
325
+ },
326
+ {
327
+ title: 'FEDLINK (US)',
328
+ url: `${prefix}/details/fedlink`,
329
+ },
330
+ {
331
+ title: 'Genealogy',
332
+ url: `${prefix}/details/genealogy`,
333
+ },
334
+ {
335
+ title: 'Lincoln Collection',
336
+ url: `${prefix}/details/lincolncollection`,
337
+ },
338
+ ],
339
+ links: [
340
+ {
341
+ title: 'American Libraries',
342
+ url: `${prefix}/details/americana`,
343
+ },
344
+ {
345
+ title: 'Canadian Libraries',
346
+ url: `${prefix}/details/toronto`,
347
+ },
348
+ {
349
+ title: 'Universal Library',
350
+ url: `${prefix}/details/universallibrary`,
351
+ },
352
+ {
353
+ title: 'Project Gutenberg',
354
+ url: `${prefix}/details/gutenberg`,
355
+ },
356
+ {
357
+ title: "Children's Library",
358
+ url: `${prefix}/details/iacl`,
359
+ },
360
+ {
361
+ title: 'Biodiversity Heritage Library',
362
+ url: `${prefix}/details/biodiversity`,
363
+ },
364
+ {
365
+ title: 'Books by Language',
366
+ url: `${prefix}/details/booksbylanguage`,
367
+ },
368
+ {
369
+ title: 'Additional Collections',
370
+ url: `${prefix}/details/additional_collections`,
371
+ },
372
+ ],
373
+ },
374
+ web: {
375
+ mobileAppsLinks: [
376
+ {
377
+ url: 'https://apps.apple.com/us/app/wayback-machine/id1201888313',
378
+ title: 'Wayback Machine (iOS)',
379
+ external: true,
380
+ },
381
+ {
382
+ url: 'https://play.google.com/store/apps/details?id=com.archive.waybackmachine&hl=en_US',
383
+ title: 'Wayback Machine (Android)',
384
+ external: true,
385
+ },
386
+ ],
387
+ browserExtensionsLinks: [
388
+ {
389
+ url: 'https://chrome.google.com/webstore/detail/wayback-machine/fpnmgdkabkmnadcjpehmlllkndpkmiak',
390
+ title: 'Chrome',
391
+ external: true,
392
+ },
393
+ {
394
+ url: 'https://addons.mozilla.org/en-US/firefox/addon/wayback-machine_new/',
395
+ title: 'Firefox',
396
+ external: true,
397
+ },
398
+ {
399
+ url: 'https://apps.apple.com/us/app/wayback-machine/id1472432422?mt=12',
400
+ title: 'Safari',
401
+ external: true,
402
+ },
403
+ {
404
+ url: 'https://microsoftedge.microsoft.com/addons/detail/wayback-machine/kjmickeoogghaimmomagaghnogelpcpn?hl=en-US',
405
+ title: 'Edge',
406
+ external: true,
407
+ },
408
+ ],
409
+ archiveItLinks: [
410
+ {
411
+ url: 'https://www.archive-it.org/explore',
412
+ title: 'Explore the Collections',
413
+ external: true,
414
+ },
415
+ {
416
+ url: 'https://www.archive-it.org/blog/learn-more/',
417
+ title: 'Learn More',
418
+ external: true,
419
+ },
420
+ {
421
+ url: 'https://www.archive-it.org/contact-us',
422
+ title: 'Build Collections',
423
+ external: true,
424
+ },
425
+ ],
426
+ },
427
+ video: {
428
+ heading: 'Video',
429
+ iconLinks: [
430
+ {
431
+ icon: `${prefix}/services/img/tv`,
432
+ title: 'TV News',
433
+ url: `${prefix}/details/tv`,
434
+ },
435
+ {
436
+ icon: `${prefix}/services/img/911`,
437
+ title: 'Understanding 9/11',
438
+ url: `${prefix}/details/911`,
439
+ },
440
+ ],
441
+ featuredLinks: [
442
+ {
443
+ title: 'All Video',
444
+ url: `${prefix}/details/movies`,
445
+ },
446
+ {
447
+ title: 'This Just In',
448
+ url: `${prefix}/search?query=mediatype:movies&sort=-publicdate`,
449
+ },
450
+ {
451
+ title: 'Prelinger Archives',
452
+ url: `${prefix}/details/prelinger`,
453
+ },
454
+ {
455
+ title: 'Democracy Now!',
456
+ url: `${prefix}/details/democracy_now_vid`,
457
+ },
458
+ {
459
+ title: 'Occupy Wall Street',
460
+ url: `${prefix}/details/occupywallstreet`,
461
+ },
462
+ {
463
+ title: 'TV NSA Clip Library',
464
+ url: `${prefix}/details/nsa`,
465
+ },
466
+ ],
467
+ links: [
468
+ {
469
+ title: 'Animation & Cartoons',
470
+ url: `${prefix}/details/animationandcartoons`,
471
+ },
472
+ {
473
+ title: 'Arts & Music',
474
+ url: `${prefix}/details/artsandmusicvideos`,
475
+ },
476
+ {
477
+ title: 'Computers & Technology',
478
+ url: `${prefix}/details/computersandtechvideos`,
479
+ },
480
+ {
481
+ title: 'Cultural & Academic Films',
482
+ url: `${prefix}/details/culturalandacademicfilms`,
483
+ },
484
+ {
485
+ title: 'Ephemeral Films',
486
+ url: `${prefix}/details/ephemera`,
487
+ },
488
+ {
489
+ title: 'Movies',
490
+ url: `${prefix}/details/moviesandfilms`,
491
+ },
492
+ {
493
+ title: 'News & Public Affairs',
494
+ url: `${prefix}/details/newsandpublicaffairs`,
495
+ },
496
+ {
497
+ title: 'Spirituality & Religion',
498
+ url: `${prefix}/details/spiritualityandreligion`,
499
+ },
500
+ {
501
+ title: 'Sports Videos',
502
+ url: `${prefix}/details/sports`,
503
+ },
504
+ {
505
+ title: 'Television',
506
+ url: `${prefix}/details/television`,
507
+ },
508
+ {
509
+ title: 'Videogame Videos',
510
+ url: `${prefix}/details/gamevideos`,
511
+ },
512
+ {
513
+ title: 'Vlogs',
514
+ url: `${prefix}/details/vlogs`,
515
+ },
516
+ {
517
+ title: 'Youth Media',
518
+ url: `${prefix}/details/youth_media`,
519
+ },
520
+ ],
521
+ },
522
+ user: [
523
+ {
524
+ url: `${prefix}/create`,
525
+ title: 'Upload files',
526
+ analyticsEvent: 'UserUpload',
527
+ class: 'mobile-upload',
528
+ },
529
+ {
530
+ url: `${prefix}/details/@${userid}`,
531
+ title: 'My uploads',
532
+ analyticsEvent: 'UserLibrary',
533
+ },
534
+ {
535
+ url: `${prefix}/details/@${userid}/loans`,
536
+ title: 'My loans',
537
+ analyticsEvent: 'UserLoans',
538
+ },
539
+ {
540
+ url: `${prefix}/details/fav-${userid}`,
541
+ title: 'My favorites',
542
+ analyticsEvent: 'UserFavorites',
543
+ },
544
+ {
545
+ url: `${prefix}/details/@${userid}/lists`,
546
+ title: 'My lists',
547
+ analyticsEvent: 'UserLists',
548
+ },
549
+ {
550
+ url: `${prefix}/details/@${userid}/collections`,
551
+ title: 'My collections',
552
+ analyticsEvent: 'UserCollections',
553
+ },
554
+ {
555
+ url: `${prefix}/details/@${userid}/web-archive`,
556
+ title: 'My web archives',
557
+ analyticsEvent: 'UserWebArchive',
558
+ },
559
+ {
560
+ url: `${prefix}/account/index.php?settings=1`,
561
+ title: 'Account settings',
562
+ analyticsEvent: 'UserSettings',
563
+ },
564
+ {
565
+ url: 'https://help.archive.org',
566
+ title: 'Get help',
567
+ analyticsEvent: 'UserHelp',
568
+ },
569
+ {
570
+ url: `${prefix}/account/logout`,
571
+ title: 'Log out',
572
+ analyticsEvent: 'UserLogOut',
573
+ },
574
+ ],
575
+ userAdmin: [
576
+ {
577
+ title: 'ADMINS:',
578
+ },
579
+ {
580
+ title: 'item:',
581
+ },
582
+ {
583
+ url: `${prefix}/editxml/${itemIdentifier}`,
584
+ title: 'edit xml',
585
+ analyticsEvent: 'AdminUserEditXML',
586
+ },
587
+ {
588
+ url: `${prefix}/edit.php?redir=1&identifier=${itemIdentifier}`,
589
+ title: 'edit files',
590
+ analyticsEvent: 'AdminUserEditFiles',
591
+ },
592
+ {
593
+ url: `${prefix}/download/${itemIdentifier}/`,
594
+ title: 'download',
595
+ analyticsEvent: 'AdminUserDownload',
596
+ },
597
+ {
598
+ url: `${prefix}/metadata/${itemIdentifier}/`,
599
+ title: 'metadata',
600
+ analyticsEvent: 'AdminUserMetadata',
601
+ },
602
+ {
603
+ url: `https://catalogd.archive.org/history/${itemIdentifier}`,
604
+ title: 'history',
605
+ analyticsEvent: 'AdminUserHistory',
606
+ },
607
+ {
608
+ url: `${prefix}/manage/${itemIdentifier}`,
609
+ title: 'manage',
610
+ analyticsEvent: 'AdminUserManager',
611
+ },
612
+ {
613
+ url: `${prefix}/manage/${itemIdentifier}#make_dark`,
614
+ title: 'curate',
615
+ analyticsEvent: 'AdminUserCurate',
616
+ },
617
+ {
618
+ url: `${prefix}/manage/${itemIdentifier}#modify_xml`,
619
+ title: 'modify xml',
620
+ analyticsEvent: 'AdminUserModifyXML',
621
+ },
622
+ ],
623
+ userAdminFlags: [
624
+ {
625
+ url: `${prefix}/services/flags/admin.php?identifier=${itemIdentifier}`,
626
+ title: 'manage flags',
627
+ analyticsEvent: 'AdminUserManageFlags',
628
+ },
629
+ ],
630
+ signedOut: [
631
+ {
632
+ url: `${prefix}/account/signup`,
633
+ title: 'Sign up for free',
634
+ analyticsEvent: 'AvatarMenu-Signup',
635
+ },
636
+ {
637
+ url: `${prefix}/account/login`,
638
+ title: 'Log in',
639
+ analyticsEvent: 'AvatarMenu-Login',
640
+ },
641
+ ],
642
+ };
643
+ };
644
+
645
+
646
+ let waybackPagesArchivedCached
647
+
648
+ /**
649
+ * Fetches accurate count of number of pages in WayBack Machine
650
+ * @returns { string }
651
+ */
652
+ export async function waybackPagesArchivedFN() {
653
+ if (waybackPagesArchivedCached)
654
+ return waybackPagesArchivedCached;
655
+
656
+ const counts = await (await fetch('https://archive.org/services/offshoot/home-page/mediacounts.php')).json();
657
+ if (counts.success) {
658
+ let label = ''
659
+ let n = parseInt(counts.value.counts.web, 10);
660
+ if (n > 1000) { n /= 1000; label = 'thousand'; }
661
+ if (n > 1000) { n /= 1000; label = 'million'; }
662
+ if (n > 1000) { n /= 1000; label = 'billion'; }
663
+ if (n > 1000) { n /= 1000; label = 'trillion'; }
664
+ waybackPagesArchivedCached = `${Math.round(n)} ${label}`
665
+ } else {
666
+ waybackPagesArchivedCached = '741 billion';
667
+ }
668
+
669
+ return waybackPagesArchivedCached;
670
+ }