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