@internetarchive/ia-topnav 0.0.0-webdev7666-1

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