@internetarchive/elements 1.1.5 → 1.1.7-webdev-9378.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 (258) hide show
  1. package/README.md +33 -0
  2. package/dist/src/elements/ia-button/ia-button.d.ts.map +1 -1
  3. package/dist/src/elements/ia-button/ia-button.js +2 -2
  4. package/dist/src/elements/ia-button/ia-button.js.map +1 -1
  5. package/dist/src/elements/ia-combo-box/ia-combo-box.d.ts.map +1 -1
  6. package/dist/src/elements/ia-combo-box/ia-combo-box.js +3 -2
  7. package/dist/src/elements/ia-combo-box/ia-combo-box.js.map +1 -1
  8. package/dist/src/elements/ia-donation-form/currency-validator.d.ts +16 -0
  9. package/dist/src/elements/ia-donation-form/currency-validator.d.ts.map +1 -0
  10. package/dist/src/elements/ia-donation-form/currency-validator.js +37 -0
  11. package/dist/src/elements/ia-donation-form/currency-validator.js.map +1 -0
  12. package/dist/src/elements/ia-donation-form/form-elements/ia-donation-section.d.ts +21 -0
  13. package/dist/src/elements/ia-donation-form/form-elements/ia-donation-section.d.ts.map +1 -0
  14. package/dist/src/elements/ia-donation-form/form-elements/ia-donation-section.js +182 -0
  15. package/dist/src/elements/ia-donation-form/form-elements/ia-donation-section.js.map +1 -0
  16. package/dist/src/elements/ia-donation-form/models/donation-payment-info.d.ts +34 -0
  17. package/dist/src/elements/ia-donation-form/models/donation-payment-info.d.ts.map +1 -0
  18. package/dist/src/elements/ia-donation-form/models/donation-payment-info.js +54 -0
  19. package/dist/src/elements/ia-donation-form/models/donation-payment-info.js.map +1 -0
  20. package/dist/src/elements/ia-donation-form/models/donation-request.d.ts +62 -0
  21. package/dist/src/elements/ia-donation-form/models/donation-request.d.ts.map +1 -0
  22. package/dist/src/elements/ia-donation-form/models/donation-request.js +35 -0
  23. package/dist/src/elements/ia-donation-form/models/donation-request.js.map +1 -0
  24. package/dist/src/elements/ia-donation-form/models/donation-response.d.ts +67 -0
  25. package/dist/src/elements/ia-donation-form/models/donation-response.d.ts.map +1 -0
  26. package/dist/src/elements/ia-donation-form/models/donation-response.js +57 -0
  27. package/dist/src/elements/ia-donation-form/models/donation-response.js.map +1 -0
  28. package/dist/src/elements/ia-donation-form/models/donation-type.d.ts +8 -0
  29. package/dist/src/elements/ia-donation-form/models/donation-type.d.ts.map +1 -0
  30. package/dist/src/elements/ia-donation-form/models/donation-type.js +7 -0
  31. package/dist/src/elements/ia-donation-form/models/donation-type.js.map +1 -0
  32. package/dist/src/elements/ia-donation-form/models/donor-contact-info.d.ts +38 -0
  33. package/dist/src/elements/ia-donation-form/models/donor-contact-info.d.ts.map +1 -0
  34. package/dist/src/elements/ia-donation-form/models/donor-contact-info.js +27 -0
  35. package/dist/src/elements/ia-donation-form/models/donor-contact-info.js.map +1 -0
  36. package/dist/src/elements/ia-donation-form/models/payment-provider.d.ts +10 -0
  37. package/dist/src/elements/ia-donation-form/models/payment-provider.d.ts.map +1 -0
  38. package/dist/src/elements/ia-donation-form/models/payment-provider.js +9 -0
  39. package/dist/src/elements/ia-donation-form/models/payment-provider.js.map +1 -0
  40. package/dist/src/elements/ia-dropdown-search-bar/ia-dropdown-search-bar.d.ts +2 -2
  41. package/dist/src/elements/ia-dropdown-search-bar/ia-dropdown-search-bar.d.ts.map +1 -1
  42. package/dist/src/elements/ia-dropdown-search-bar/ia-dropdown-search-bar.js +4 -5
  43. package/dist/src/elements/ia-dropdown-search-bar/ia-dropdown-search-bar.js.map +1 -1
  44. package/dist/src/elements/ia-expandable-search-bar/ia-expandable-search-bar.d.ts +4 -4
  45. package/dist/src/elements/ia-expandable-search-bar/ia-expandable-search-bar.d.ts.map +1 -1
  46. package/dist/src/elements/ia-expandable-search-bar/ia-expandable-search-bar.js +5 -8
  47. package/dist/src/elements/ia-expandable-search-bar/ia-expandable-search-bar.js.map +1 -1
  48. package/dist/src/elements/ia-image-viewer/ia-image-viewer.d.ts.map +1 -1
  49. package/dist/src/elements/ia-image-viewer/ia-image-viewer.js +3 -2
  50. package/dist/src/elements/ia-image-viewer/ia-image-viewer.js.map +1 -1
  51. package/dist/src/elements/ia-image-viewer/ia-imgview-controls.d.ts.map +1 -1
  52. package/dist/src/elements/ia-image-viewer/ia-imgview-controls.js +3 -2
  53. package/dist/src/elements/ia-image-viewer/ia-imgview-controls.js.map +1 -1
  54. package/dist/src/elements/ia-image-viewer/ia-imgview-slide.d.ts.map +1 -1
  55. package/dist/src/elements/ia-image-viewer/ia-imgview-slide.js +3 -2
  56. package/dist/src/elements/ia-image-viewer/ia-imgview-slide.js.map +1 -1
  57. package/dist/src/elements/ia-image-viewer/image-viewer-gestures.d.ts.map +1 -1
  58. package/dist/src/elements/ia-image-viewer/image-viewer-gestures.js +4 -2
  59. package/dist/src/elements/ia-image-viewer/image-viewer-gestures.js.map +1 -1
  60. package/dist/src/elements/ia-otp-form/ia-otp-form.d.ts.map +1 -1
  61. package/dist/src/elements/ia-otp-form/ia-otp-form.js +3 -2
  62. package/dist/src/elements/ia-otp-form/ia-otp-form.js.map +1 -1
  63. package/dist/src/elements/ia-playback-controls/ia-playback-controls.d.ts.map +1 -1
  64. package/dist/src/elements/ia-playback-controls/ia-playback-controls.js +3 -2
  65. package/dist/src/elements/ia-playback-controls/ia-playback-controls.js.map +1 -1
  66. package/dist/src/elements/ia-radio-player/ia-radio-player.d.ts.map +1 -1
  67. package/dist/src/elements/ia-radio-player/ia-radio-player.js +3 -2
  68. package/dist/src/elements/ia-radio-player/ia-radio-player.js.map +1 -1
  69. package/dist/src/elements/ia-radio-player/ia-search-results-switcher.d.ts.map +1 -1
  70. package/dist/src/elements/ia-radio-player/ia-search-results-switcher.js +3 -2
  71. package/dist/src/elements/ia-radio-player/ia-search-results-switcher.js.map +1 -1
  72. package/dist/src/elements/ia-scrubber-bar/ia-scrubber-bar.d.ts +2 -2
  73. package/dist/src/elements/ia-scrubber-bar/ia-scrubber-bar.d.ts.map +1 -1
  74. package/dist/src/elements/ia-scrubber-bar/ia-scrubber-bar.js +4 -5
  75. package/dist/src/elements/ia-scrubber-bar/ia-scrubber-bar.js.map +1 -1
  76. package/dist/src/elements/ia-status-indicator/ia-status-indicator.d.ts +3 -3
  77. package/dist/src/elements/ia-status-indicator/ia-status-indicator.d.ts.map +1 -1
  78. package/dist/src/elements/ia-status-indicator/ia-status-indicator.js +7 -12
  79. package/dist/src/elements/ia-status-indicator/ia-status-indicator.js.map +1 -1
  80. package/dist/src/elements/ia-topnav/assets/img/icon-audio.d.ts +3 -0
  81. package/dist/src/elements/ia-topnav/assets/img/icon-audio.d.ts.map +1 -0
  82. package/dist/src/elements/ia-topnav/assets/img/icon-audio.js +28 -0
  83. package/dist/src/elements/ia-topnav/assets/img/icon-audio.js.map +1 -0
  84. package/dist/src/elements/ia-topnav/assets/img/icon-close.d.ts +3 -0
  85. package/dist/src/elements/ia-topnav/assets/img/icon-close.d.ts.map +1 -0
  86. package/dist/src/elements/ia-topnav/assets/img/icon-close.js +20 -0
  87. package/dist/src/elements/ia-topnav/assets/img/icon-close.js.map +1 -0
  88. package/dist/src/elements/ia-topnav/assets/img/icon-donate-unpadded.d.ts +3 -0
  89. package/dist/src/elements/ia-topnav/assets/img/icon-donate-unpadded.d.ts.map +1 -0
  90. package/dist/src/elements/ia-topnav/assets/img/icon-donate-unpadded.js +19 -0
  91. package/dist/src/elements/ia-topnav/assets/img/icon-donate-unpadded.js.map +1 -0
  92. package/dist/src/elements/ia-topnav/assets/img/icon-donate.d.ts +3 -0
  93. package/dist/src/elements/ia-topnav/assets/img/icon-donate.d.ts.map +1 -0
  94. package/dist/src/elements/ia-topnav/assets/img/icon-donate.js +18 -0
  95. package/dist/src/elements/ia-topnav/assets/img/icon-donate.js.map +1 -0
  96. package/dist/src/elements/ia-topnav/assets/img/icon-ellipses.d.ts +3 -0
  97. package/dist/src/elements/ia-topnav/assets/img/icon-ellipses.d.ts.map +1 -0
  98. package/dist/src/elements/ia-topnav/assets/img/icon-ellipses.js +19 -0
  99. package/dist/src/elements/ia-topnav/assets/img/icon-ellipses.js.map +1 -0
  100. package/dist/src/elements/ia-topnav/assets/img/icon-ia-logo.d.ts +3 -0
  101. package/dist/src/elements/ia-topnav/assets/img/icon-ia-logo.d.ts.map +1 -0
  102. package/dist/src/elements/ia-topnav/assets/img/icon-ia-logo.js +30 -0
  103. package/dist/src/elements/ia-topnav/assets/img/icon-ia-logo.js.map +1 -0
  104. package/dist/src/elements/ia-topnav/assets/img/icon-images.d.ts +3 -0
  105. package/dist/src/elements/ia-topnav/assets/img/icon-images.d.ts.map +1 -0
  106. package/dist/src/elements/ia-topnav/assets/img/icon-images.js +19 -0
  107. package/dist/src/elements/ia-topnav/assets/img/icon-images.js.map +1 -0
  108. package/dist/src/elements/ia-topnav/assets/img/icon-search.d.ts +3 -0
  109. package/dist/src/elements/ia-topnav/assets/img/icon-search.d.ts.map +1 -0
  110. package/dist/src/elements/ia-topnav/assets/img/icon-search.js +19 -0
  111. package/dist/src/elements/ia-topnav/assets/img/icon-search.js.map +1 -0
  112. package/dist/src/elements/ia-topnav/assets/img/icon-software.d.ts +3 -0
  113. package/dist/src/elements/ia-topnav/assets/img/icon-software.d.ts.map +1 -0
  114. package/dist/src/elements/ia-topnav/assets/img/icon-software.js +18 -0
  115. package/dist/src/elements/ia-topnav/assets/img/icon-software.js.map +1 -0
  116. package/dist/src/elements/ia-topnav/assets/img/icon-texts.d.ts +3 -0
  117. package/dist/src/elements/ia-topnav/assets/img/icon-texts.d.ts.map +1 -0
  118. package/dist/src/elements/ia-topnav/assets/img/icon-texts.js +18 -0
  119. package/dist/src/elements/ia-topnav/assets/img/icon-texts.js.map +1 -0
  120. package/dist/src/elements/ia-topnav/assets/img/icon-upload-unpadded.d.ts +3 -0
  121. package/dist/src/elements/ia-topnav/assets/img/icon-upload-unpadded.d.ts.map +1 -0
  122. package/dist/src/elements/ia-topnav/assets/img/icon-upload-unpadded.js +18 -0
  123. package/dist/src/elements/ia-topnav/assets/img/icon-upload-unpadded.js.map +1 -0
  124. package/dist/src/elements/ia-topnav/assets/img/icon-upload.d.ts +3 -0
  125. package/dist/src/elements/ia-topnav/assets/img/icon-upload.d.ts.map +1 -0
  126. package/dist/src/elements/ia-topnav/assets/img/icon-upload.js +21 -0
  127. package/dist/src/elements/ia-topnav/assets/img/icon-upload.js.map +1 -0
  128. package/dist/src/elements/ia-topnav/assets/img/icon-user.d.ts +3 -0
  129. package/dist/src/elements/ia-topnav/assets/img/icon-user.d.ts.map +1 -0
  130. package/dist/src/elements/ia-topnav/assets/img/icon-user.js +19 -0
  131. package/dist/src/elements/ia-topnav/assets/img/icon-user.js.map +1 -0
  132. package/dist/src/elements/ia-topnav/assets/img/icon-video.d.ts +3 -0
  133. package/dist/src/elements/ia-topnav/assets/img/icon-video.d.ts.map +1 -0
  134. package/dist/src/elements/ia-topnav/assets/img/icon-video.js +19 -0
  135. package/dist/src/elements/ia-topnav/assets/img/icon-video.js.map +1 -0
  136. package/dist/src/elements/ia-topnav/assets/img/icon-web.d.ts +3 -0
  137. package/dist/src/elements/ia-topnav/assets/img/icon-web.d.ts.map +1 -0
  138. package/dist/src/elements/ia-topnav/assets/img/icon-web.js +19 -0
  139. package/dist/src/elements/ia-topnav/assets/img/icon-web.js.map +1 -0
  140. package/dist/src/elements/ia-topnav/assets/img/icon.d.ts +6 -0
  141. package/dist/src/elements/ia-topnav/assets/img/icon.d.ts.map +1 -0
  142. package/dist/src/elements/ia-topnav/assets/img/icon.js +17 -0
  143. package/dist/src/elements/ia-topnav/assets/img/icon.js.map +1 -0
  144. package/dist/src/elements/ia-topnav/assets/img/icons.d.ts +19 -0
  145. package/dist/src/elements/ia-topnav/assets/img/icons.d.ts.map +1 -0
  146. package/dist/src/elements/ia-topnav/assets/img/icons.js +33 -0
  147. package/dist/src/elements/ia-topnav/assets/img/icons.js.map +1 -0
  148. package/dist/src/elements/ia-topnav/assets/img/wayback-logo.d.ts +3 -0
  149. package/dist/src/elements/ia-topnav/assets/img/wayback-logo.d.ts.map +1 -0
  150. package/dist/src/elements/ia-topnav/assets/img/wayback-logo.js +21 -0
  151. package/dist/src/elements/ia-topnav/assets/img/wayback-logo.js.map +1 -0
  152. package/dist/src/elements/ia-topnav/assets/img/wordmark-stacked.d.ts +3 -0
  153. package/dist/src/elements/ia-topnav/assets/img/wordmark-stacked.d.ts.map +1 -0
  154. package/dist/src/elements/ia-topnav/assets/img/wordmark-stacked.js +13 -0
  155. package/dist/src/elements/ia-topnav/assets/img/wordmark-stacked.js.map +1 -0
  156. package/dist/src/elements/ia-topnav/data/menus.d.ts +14 -0
  157. package/dist/src/elements/ia-topnav/data/menus.d.ts.map +1 -0
  158. package/dist/src/elements/ia-topnav/data/menus.js +675 -0
  159. package/dist/src/elements/ia-topnav/data/menus.js.map +1 -0
  160. package/dist/src/elements/ia-topnav/dropdown-menu.d.ts +21 -0
  161. package/dist/src/elements/ia-topnav/dropdown-menu.d.ts.map +1 -0
  162. package/dist/src/elements/ia-topnav/dropdown-menu.js +315 -0
  163. package/dist/src/elements/ia-topnav/dropdown-menu.js.map +1 -0
  164. package/dist/src/elements/ia-topnav/ia-topnav-desktop-subnav.d.ts +11 -0
  165. package/dist/src/elements/ia-topnav/ia-topnav-desktop-subnav.d.ts.map +1 -0
  166. package/dist/src/elements/ia-topnav/ia-topnav-desktop-subnav.js +89 -0
  167. package/dist/src/elements/ia-topnav/ia-topnav-desktop-subnav.js.map +1 -0
  168. package/dist/src/elements/ia-topnav/ia-topnav-icon-hamburger.d.ts +6 -0
  169. package/dist/src/elements/ia-topnav/ia-topnav-icon-hamburger.d.ts.map +1 -0
  170. package/dist/src/elements/ia-topnav/ia-topnav-icon-hamburger.js +47 -0
  171. package/dist/src/elements/ia-topnav/ia-topnav-icon-hamburger.js.map +1 -0
  172. package/dist/src/elements/ia-topnav/ia-topnav-login-button.d.ts +20 -0
  173. package/dist/src/elements/ia-topnav/ia-topnav-login-button.d.ts.map +1 -0
  174. package/dist/src/elements/ia-topnav/ia-topnav-login-button.js +183 -0
  175. package/dist/src/elements/ia-topnav/ia-topnav-login-button.js.map +1 -0
  176. package/dist/src/elements/ia-topnav/ia-topnav-media-button.d.ts +31 -0
  177. package/dist/src/elements/ia-topnav/ia-topnav-media-button.d.ts.map +1 -0
  178. package/dist/src/elements/ia-topnav/ia-topnav-media-button.js +307 -0
  179. package/dist/src/elements/ia-topnav/ia-topnav-media-button.js.map +1 -0
  180. package/dist/src/elements/ia-topnav/ia-topnav-media-menu.d.ts +21 -0
  181. package/dist/src/elements/ia-topnav/ia-topnav-media-menu.d.ts.map +1 -0
  182. package/dist/src/elements/ia-topnav/ia-topnav-media-menu.js +222 -0
  183. package/dist/src/elements/ia-topnav/ia-topnav-media-menu.js.map +1 -0
  184. package/dist/src/elements/ia-topnav/ia-topnav-media-slider.d.ts +16 -0
  185. package/dist/src/elements/ia-topnav/ia-topnav-media-slider.d.ts.map +1 -0
  186. package/dist/src/elements/ia-topnav/ia-topnav-media-slider.js +221 -0
  187. package/dist/src/elements/ia-topnav/ia-topnav-media-slider.js.map +1 -0
  188. package/dist/src/elements/ia-topnav/ia-topnav-media-subnav.d.ts +20 -0
  189. package/dist/src/elements/ia-topnav/ia-topnav-media-subnav.d.ts.map +1 -0
  190. package/dist/src/elements/ia-topnav/ia-topnav-media-subnav.js +285 -0
  191. package/dist/src/elements/ia-topnav/ia-topnav-media-subnav.js.map +1 -0
  192. package/dist/src/elements/ia-topnav/ia-topnav-more-slider.d.ts +12 -0
  193. package/dist/src/elements/ia-topnav/ia-topnav-more-slider.d.ts.map +1 -0
  194. package/dist/src/elements/ia-topnav/ia-topnav-more-slider.js +65 -0
  195. package/dist/src/elements/ia-topnav/ia-topnav-more-slider.js.map +1 -0
  196. package/dist/src/elements/ia-topnav/ia-topnav-primary-nav.d.ts +53 -0
  197. package/dist/src/elements/ia-topnav/ia-topnav-primary-nav.d.ts.map +1 -0
  198. package/dist/src/elements/ia-topnav/ia-topnav-primary-nav.js +653 -0
  199. package/dist/src/elements/ia-topnav/ia-topnav-primary-nav.js.map +1 -0
  200. package/dist/src/elements/ia-topnav/ia-topnav-save-page-form.d.ts +12 -0
  201. package/dist/src/elements/ia-topnav/ia-topnav-save-page-form.d.ts.map +1 -0
  202. package/dist/src/elements/ia-topnav/ia-topnav-save-page-form.js +128 -0
  203. package/dist/src/elements/ia-topnav/ia-topnav-save-page-form.js.map +1 -0
  204. package/dist/src/elements/ia-topnav/ia-topnav-signed-out-dropdown.d.ts +4 -0
  205. package/dist/src/elements/ia-topnav/ia-topnav-signed-out-dropdown.d.ts.map +1 -0
  206. package/dist/src/elements/ia-topnav/ia-topnav-signed-out-dropdown.js +10 -0
  207. package/dist/src/elements/ia-topnav/ia-topnav-signed-out-dropdown.js.map +1 -0
  208. package/dist/src/elements/ia-topnav/ia-topnav-user-menu.d.ts +7 -0
  209. package/dist/src/elements/ia-topnav/ia-topnav-user-menu.d.ts.map +1 -0
  210. package/dist/src/elements/ia-topnav/ia-topnav-user-menu.js +39 -0
  211. package/dist/src/elements/ia-topnav/ia-topnav-user-menu.js.map +1 -0
  212. package/dist/src/elements/ia-topnav/ia-topnav-wayback-search.d.ts +10 -0
  213. package/dist/src/elements/ia-topnav/ia-topnav-wayback-search.d.ts.map +1 -0
  214. package/dist/src/elements/ia-topnav/ia-topnav-wayback-search.js +64 -0
  215. package/dist/src/elements/ia-topnav/ia-topnav-wayback-search.js.map +1 -0
  216. package/dist/src/elements/ia-topnav/ia-topnav-wayback-slider.d.ts +20 -0
  217. package/dist/src/elements/ia-topnav/ia-topnav-wayback-slider.d.ts.map +1 -0
  218. package/dist/src/elements/ia-topnav/ia-topnav-wayback-slider.js +131 -0
  219. package/dist/src/elements/ia-topnav/ia-topnav-wayback-slider.js.map +1 -0
  220. package/dist/src/elements/ia-topnav/ia-topnav.d.ts +91 -0
  221. package/dist/src/elements/ia-topnav/ia-topnav.d.ts.map +1 -0
  222. package/dist/src/elements/ia-topnav/ia-topnav.js +445 -0
  223. package/dist/src/elements/ia-topnav/ia-topnav.js.map +1 -0
  224. package/dist/src/elements/ia-topnav/lib/helpers.d.ts +13 -0
  225. package/dist/src/elements/ia-topnav/lib/helpers.d.ts.map +1 -0
  226. package/dist/src/elements/ia-topnav/lib/helpers.js +24 -0
  227. package/dist/src/elements/ia-topnav/lib/helpers.js.map +1 -0
  228. package/dist/src/elements/ia-topnav/lib/keyboard-navigation.d.ts +46 -0
  229. package/dist/src/elements/ia-topnav/lib/keyboard-navigation.d.ts.map +1 -0
  230. package/dist/src/elements/ia-topnav/lib/keyboard-navigation.js +136 -0
  231. package/dist/src/elements/ia-topnav/lib/keyboard-navigation.js.map +1 -0
  232. package/dist/src/elements/ia-topnav/models.d.ts +59 -0
  233. package/dist/src/elements/ia-topnav/models.d.ts.map +1 -0
  234. package/dist/src/elements/ia-topnav/models.js +10 -0
  235. package/dist/src/elements/ia-topnav/models.js.map +1 -0
  236. package/dist/src/elements/ia-topnav/subnav-list-styles.d.ts +2 -0
  237. package/dist/src/elements/ia-topnav/subnav-list-styles.d.ts.map +1 -0
  238. package/dist/src/elements/ia-topnav/subnav-list-styles.js +49 -0
  239. package/dist/src/elements/ia-topnav/subnav-list-styles.js.map +1 -0
  240. package/dist/src/elements/ia-topnav/tracked-element.d.ts +6 -0
  241. package/dist/src/elements/ia-topnav/tracked-element.d.ts.map +1 -0
  242. package/dist/src/elements/ia-topnav/tracked-element.js +29 -0
  243. package/dist/src/elements/ia-topnav/tracked-element.js.map +1 -0
  244. package/dist/src/elements/ia-transcript-view/ia-transcript-entry.d.ts.map +1 -1
  245. package/dist/src/elements/ia-transcript-view/ia-transcript-entry.js +4 -0
  246. package/dist/src/elements/ia-transcript-view/ia-transcript-entry.js.map +1 -1
  247. package/dist/src/elements/ia-transcript-view/ia-transcript-view.d.ts.map +1 -1
  248. package/dist/src/elements/ia-transcript-view/ia-transcript-view.js +3 -2
  249. package/dist/src/elements/ia-transcript-view/ia-transcript-view.js.map +1 -1
  250. package/dist/src/elements/ia-wayback-search-form/ia-wayback-search-form.d.ts +24 -0
  251. package/dist/src/elements/ia-wayback-search-form/ia-wayback-search-form.d.ts.map +1 -0
  252. package/dist/src/elements/ia-wayback-search-form/ia-wayback-search-form.js +240 -0
  253. package/dist/src/elements/ia-wayback-search-form/ia-wayback-search-form.js.map +1 -0
  254. package/dist/src/locales/es.d.ts +40 -0
  255. package/dist/src/locales/es.d.ts.map +1 -0
  256. package/dist/src/locales/es.js +45 -0
  257. package/dist/src/locales/es.js.map +1 -0
  258. package/package.json +25 -3
@@ -0,0 +1,91 @@
1
+ import { CSSResultGroup, LitElement, PropertyValues, nothing } from 'lit';
2
+ import './ia-topnav-desktop-subnav.js';
3
+ import './dropdown-menu.js';
4
+ import './ia-topnav-media-slider.js';
5
+ import { IATopNavConfig, IATopNavSecondIdentitySlotMode } from './models.js';
6
+ import './ia-topnav-primary-nav.js';
7
+ import './ia-topnav-signed-out-dropdown.js';
8
+ import './ia-topnav-user-menu.js';
9
+ export declare class IATopNav extends LitElement {
10
+ localLinks: boolean;
11
+ waybackPagesArchived: string;
12
+ baseHost: string;
13
+ mediaBaseHost: string;
14
+ admin: boolean;
15
+ canManageFlags: boolean;
16
+ config: IATopNavConfig;
17
+ hideSearch: boolean;
18
+ itemIdentifier: string;
19
+ /**
20
+ * Email of the item's uploader. When set for an admin viewing an item, the
21
+ * user menu gets an "uploader:" section with user admin / user privs links.
22
+ */
23
+ uploader: string;
24
+ /**
25
+ * Biblio URL for a texts item, which must already carry a query string
26
+ * (the item identifier is appended to it as `&ignored=`). When set for an
27
+ * admin viewing an item, the user menu gets biblio / bookview / jp2 zip links.
28
+ */
29
+ biblio: string;
30
+ mediaSliderOpen: boolean;
31
+ openMenu: string;
32
+ screenName: string;
33
+ selectedMenuOption: string;
34
+ username: string;
35
+ userProfileImagePath: string;
36
+ secondIdentitySlotMode: IATopNavSecondIdentitySlotMode;
37
+ currentTab?: {
38
+ mediatype: string;
39
+ moveTo: string;
40
+ };
41
+ private primaryNav?;
42
+ /** Only one of ia-topnav-user-menu or ia-topnav-signed-out-dropdown is rendered at a time. */
43
+ private accountDropdown?;
44
+ private menus;
45
+ /**
46
+ * The config handed to the media slider: the host's `config` with the
47
+ * Wayback page count folded in. Rebuilt only when one of those changes,
48
+ * since a new object on every render would make the slider reset its scroll.
49
+ */
50
+ private sliderConfig;
51
+ private boundHandleKeydown;
52
+ private boundHandleClick;
53
+ connectedCallback(): void;
54
+ disconnectedCallback(): void;
55
+ willUpdate(props: PropertyValues): void;
56
+ render(): import("lit").TemplateResult<1>;
57
+ private get normalizedBaseHost();
58
+ private handleDocumentKeydown;
59
+ private handleDocumentClick;
60
+ menuSetup(): void;
61
+ menuToggled(e: CustomEvent): void;
62
+ openMediaSlider(): void;
63
+ closeMediaSlider(): void;
64
+ closeMenus(): void;
65
+ trackClick(e: CustomEvent): void;
66
+ trackSubmit(e: CustomEvent): void;
67
+ mediaTypeSelected(e: CustomEvent): void;
68
+ get signedOutOpened(): boolean;
69
+ get userMenuOpened(): boolean;
70
+ get userMenuTabIndex(): "" | "-1";
71
+ get signedOutTabIndex(): "" | "-1";
72
+ get closeLayerClass(): "" | "visible";
73
+ get userMenu(): import("lit").TemplateResult<1>;
74
+ get signedOutDropdown(): import("lit").TemplateResult<1>;
75
+ get signedOutMenuItems(): import("./models.js").IATopNavLink[];
76
+ /**
77
+ * Most users just get the basic menu items.
78
+ * For users with `/items` priv, additional admin menu items are included too.
79
+ * Having the `/flags` priv adds a further admin item for managing flags.
80
+ * A `biblio` URL adds a section of book-scanning links, and an `uploader`
81
+ * adds a section with the uploader's email and account admin links. Each
82
+ * section is rendered with a divider above it.
83
+ */
84
+ get userMenuItems(): import("./models.js").IATopNavLink[][];
85
+ get allowSecondaryIcon(): boolean;
86
+ get searchSlot(): import("lit").TemplateResult<1>;
87
+ get secondLogoSlot(): import("lit").TemplateResult<1> | typeof nothing;
88
+ get separatorTemplate(): import("lit").TemplateResult<1>;
89
+ static get styles(): CSSResultGroup;
90
+ }
91
+ //# sourceMappingURL=ia-topnav.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ia-topnav.d.ts","sourceRoot":"","sources":["../../../../src/elements/ia-topnav/ia-topnav.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,UAAU,EACV,cAAc,EAGd,OAAO,EACR,MAAM,KAAK,CAAC;AAKb,OAAO,4BAA4B,CAAC;AACpC,OAAO,iBAAiB,CAAC;AACzB,OAAO,0BAA0B,CAAC;AAClC,OAAO,EACL,cAAc,EAEd,8BAA8B,EAE/B,MAAM,UAAU,CAAC;AAClB,OAAO,yBAAyB,CAAC;AAEjC,OAAO,iCAAiC,CAAC;AACzC,OAAO,uBAAuB,CAAC;AAG/B,qBACa,QAAS,SAAQ,UAAU;IACT,UAAU,UAAS;IAEpB,oBAAoB,SAAM;IAE1B,QAAQ,SAAyB;IAEjC,aAAa,SAAyB;IAErC,KAAK,UAAS;IAEd,cAAc,UAAS;IAExB,MAAM,EAAE,cAAc,CAAuB;IAE5C,UAAU,UAAS;IAEpB,cAAc,SAAM;IAEhD;;;OAGG;IACyB,QAAQ,SAAM;IAE1C;;;;OAIG;IACyB,MAAM,SAAM;IAEX,eAAe,UAAS;IAEzB,QAAQ,SAAM;IAEd,UAAU,EAAE,MAAM,CAAM;IAExB,kBAAkB,SAAM;IAExB,QAAQ,EAAE,MAAM,CAAM;IAEtB,oBAAoB,SACjB;IAG/B,sBAAsB,EAAE,8BAA8B,CAAM;IAEhC,UAAU,CAAC,EAAE;QACvC,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IAE8B,OAAO,CAAC,UAAU,CAAC,CAAa;IAChE,8FAA8F;IAE9F,OAAO,CAAC,eAAe,CAAC,CAAc;IAE7B,OAAO,CAAC,KAAK,CAA0C;IAEhE;;;;OAIG;IACH,OAAO,CAAC,YAAY,CAAuC;IAE3D,OAAO,CAAC,kBAAkB,CAAyC;IAEnE,OAAO,CAAC,gBAAgB,CAAuC;IAE/D,iBAAiB;IAMjB,oBAAoB;IAMpB,UAAU,CAAC,KAAK,EAAE,cAAc;IAoBhC,MAAM;IA+CN,OAAO,KAAK,kBAAkB,GAE7B;IAED,OAAO,CAAC,qBAAqB;IAO7B,OAAO,CAAC,mBAAmB;IAQ3B,SAAS;IAWT,WAAW,CAAC,CAAC,EAAE,WAAW;IAoB1B,eAAe;IAIf,gBAAgB;IAKhB,UAAU;IAKV,UAAU,CAAC,CAAC,EAAE,WAAW;IAUzB,WAAW,CAAC,CAAC,EAAE,WAAW;IAU1B,iBAAiB,CAAC,CAAC,EAAE,WAAW;IAShC,IAAI,eAAe,YAElB;IAED,IAAI,cAAc,YAEjB;IAED,IAAI,gBAAgB,cAEnB;IAED,IAAI,iBAAiB,cAEpB;IAED,IAAI,eAAe,mBAElB;IAED,IAAI,QAAQ,oCAeX;IAED,IAAI,iBAAiB,oCAapB;IAED,IAAI,kBAAkB,sCAErB;IAED;;;;;;;OAOG;IACH,IAAI,aAAa,wCAiBhB;IAED,IAAI,kBAAkB,YAErB;IAED,IAAI,UAAU,oCAEb;IAED,IAAI,cAAc,qDAOjB;IAED,IAAI,iBAAiB,oCAEpB;IAED,MAAM,KAAK,MAAM,IAAI,cAAc,CAwFlC;CACF"}
@@ -0,0 +1,445 @@
1
+ import { __decorate } from "tslib";
2
+ import { LitElement, css, html, nothing, } from 'lit';
3
+ import { property, query, state } from 'lit/decorators.js';
4
+ import { customElement } from '../../util/custom-element.js';
5
+ import { buildTopNavMenus, defaultTopNavConfig } from './data/menus.js';
6
+ import './ia-topnav-desktop-subnav.js';
7
+ import './dropdown-menu.js';
8
+ import './ia-topnav-media-slider.js';
9
+ import { TOPNAV_MOBILE_BREAKPOINT, } from './models.js';
10
+ import './ia-topnav-primary-nav.js';
11
+ import './ia-topnav-signed-out-dropdown.js';
12
+ import './ia-topnav-user-menu.js';
13
+ import themeStyles from '../../themes/theme-styles.js';
14
+ let IATopNav = class IATopNav extends LitElement {
15
+ constructor() {
16
+ super(...arguments);
17
+ this.localLinks = false;
18
+ this.waybackPagesArchived = '';
19
+ this.baseHost = 'https://archive.org';
20
+ this.mediaBaseHost = 'https://archive.org';
21
+ this.admin = false;
22
+ this.canManageFlags = false;
23
+ this.config = defaultTopNavConfig;
24
+ this.hideSearch = false;
25
+ this.itemIdentifier = '';
26
+ /**
27
+ * Email of the item's uploader. When set for an admin viewing an item, the
28
+ * user menu gets an "uploader:" section with user admin / user privs links.
29
+ */
30
+ this.uploader = '';
31
+ /**
32
+ * Biblio URL for a texts item, which must already carry a query string
33
+ * (the item identifier is appended to it as `&ignored=`). When set for an
34
+ * admin viewing an item, the user menu gets biblio / bookview / jp2 zip links.
35
+ */
36
+ this.biblio = '';
37
+ this.mediaSliderOpen = false;
38
+ this.openMenu = '';
39
+ this.screenName = '';
40
+ this.selectedMenuOption = '';
41
+ this.username = '';
42
+ this.userProfileImagePath = '/services/img/user/profile';
43
+ this.secondIdentitySlotMode = '';
44
+ this.menus = buildTopNavMenus();
45
+ /**
46
+ * The config handed to the media slider: the host's `config` with the
47
+ * Wayback page count folded in. Rebuilt only when one of those changes,
48
+ * since a new object on every render would make the slider reset its scroll.
49
+ */
50
+ this.sliderConfig = defaultTopNavConfig;
51
+ this.boundHandleKeydown = this.handleDocumentKeydown.bind(this);
52
+ this.boundHandleClick = this.handleDocumentClick.bind(this);
53
+ }
54
+ connectedCallback() {
55
+ super.connectedCallback();
56
+ document.addEventListener('keydown', this.boundHandleKeydown);
57
+ document.addEventListener('click', this.boundHandleClick);
58
+ }
59
+ disconnectedCallback() {
60
+ super.disconnectedCallback();
61
+ document.removeEventListener('keydown', this.boundHandleKeydown);
62
+ document.removeEventListener('click', this.boundHandleClick);
63
+ }
64
+ willUpdate(props) {
65
+ if (props.has('config') || props.has('waybackPagesArchived')) {
66
+ this.sliderConfig = {
67
+ ...this.config,
68
+ waybackPagesArchived: this.waybackPagesArchived || this.config.waybackPagesArchived,
69
+ };
70
+ }
71
+ if (props.has('username') ||
72
+ props.has('itemIdentifier') ||
73
+ props.has('uploader') ||
74
+ props.has('biblio') ||
75
+ props.has('localLinks') ||
76
+ props.has('baseHost')) {
77
+ this.menuSetup();
78
+ }
79
+ }
80
+ render() {
81
+ return html `
82
+ <div class="topnav">
83
+ <ia-topnav-primary-nav
84
+ .baseHost=${this.normalizedBaseHost}
85
+ .mediaBaseHost=${this.mediaBaseHost}
86
+ .config=${this.config}
87
+ .openMenu=${this.openMenu}
88
+ .screenName=${this.screenName}
89
+ .secondIdentitySlotMode=${this.secondIdentitySlotMode}
90
+ .selectedMenuOption=${this.selectedMenuOption}
91
+ .username=${this.username}
92
+ .userProfileImagePath=${this.userProfileImagePath}
93
+ .currentTab=${this.currentTab}
94
+ ?hideSearch=${this.hideSearch}
95
+ @mediaTypeSelected=${this.mediaTypeSelected}
96
+ @trackClick=${this.trackClick}
97
+ @trackSubmit=${this.trackSubmit}
98
+ @menuToggled=${this.menuToggled}
99
+ >
100
+ ${this.secondLogoSlot} ${this.searchSlot}
101
+ </ia-topnav-primary-nav>
102
+ <ia-topnav-media-slider
103
+ .baseHost=${this.normalizedBaseHost}
104
+ .config=${this.sliderConfig}
105
+ .selectedMenuOption=${this.selectedMenuOption}
106
+ .mediaSliderOpen=${this.mediaSliderOpen}
107
+ .menus=${this.menus}
108
+ tabindex="${this.mediaSliderOpen ? '1' : '-1'}"
109
+ @focusToOtherMenuItem=${(e) => (this.currentTab = e.detail)}
110
+ ></ia-topnav-media-slider>
111
+ </div>
112
+ ${this.username ? this.userMenu : this.signedOutDropdown}
113
+ <ia-topnav-desktop-subnav
114
+ .baseHost=${this.normalizedBaseHost}
115
+ .menuItems=${this.menus.more.links}
116
+ @focus=${this.closeMenus}
117
+ ></ia-topnav-desktop-subnav>
118
+ <div
119
+ id="close-layer"
120
+ class="${this.closeLayerClass}"
121
+ @click=${this.closeMenus}
122
+ ></div>
123
+ `;
124
+ }
125
+ get normalizedBaseHost() {
126
+ return !this.localLinks ? this.baseHost : '';
127
+ }
128
+ handleDocumentKeydown(e) {
129
+ if (e.key === 'Escape') {
130
+ this.openMenu = '';
131
+ this.mediaSliderOpen = false;
132
+ }
133
+ }
134
+ handleDocumentClick(e) {
135
+ if (!this.openMenu)
136
+ return;
137
+ const path = e.composedPath();
138
+ if (!path.includes(this)) {
139
+ this.closeMenus();
140
+ }
141
+ }
142
+ menuSetup() {
143
+ // re/build the nav
144
+ this.menus = buildTopNavMenus(this.username, this.normalizedBaseHost, this.itemIdentifier, this.uploader, this.biblio);
145
+ }
146
+ menuToggled(e) {
147
+ const currentMenu = this.openMenu;
148
+ this.openMenu = currentMenu === e.detail.menuName ? '' : e.detail.menuName;
149
+ // Keeps media slider open if media menu is open
150
+ if (this.openMenu === 'media') {
151
+ return;
152
+ }
153
+ this.closeMediaSlider();
154
+ if (this.openMenu === 'user' || this.openMenu === 'login') {
155
+ if (this.primaryNav && this.accountDropdown) {
156
+ const right = this.primaryNav.getAccountDropdownOffset();
157
+ this.accountDropdown.style.setProperty('--dropdownMenuRight', `${right}px`);
158
+ }
159
+ }
160
+ }
161
+ openMediaSlider() {
162
+ this.mediaSliderOpen = true;
163
+ }
164
+ closeMediaSlider() {
165
+ this.mediaSliderOpen = false;
166
+ this.selectedMenuOption = '';
167
+ }
168
+ closeMenus() {
169
+ this.openMenu = '';
170
+ this.closeMediaSlider();
171
+ }
172
+ trackClick(e) {
173
+ this.dispatchEvent(new CustomEvent('analyticsClick', {
174
+ bubbles: true,
175
+ composed: true,
176
+ detail: e.detail,
177
+ }));
178
+ }
179
+ trackSubmit(e) {
180
+ this.dispatchEvent(new CustomEvent('analyticsSubmit', {
181
+ bubbles: true,
182
+ composed: true,
183
+ detail: e.detail,
184
+ }));
185
+ }
186
+ mediaTypeSelected(e) {
187
+ if (this.selectedMenuOption === e.detail.mediatype) {
188
+ this.closeMediaSlider();
189
+ return;
190
+ }
191
+ this.selectedMenuOption = e.detail.mediatype;
192
+ this.openMediaSlider();
193
+ }
194
+ get signedOutOpened() {
195
+ return this.openMenu === 'login';
196
+ }
197
+ get userMenuOpened() {
198
+ return this.openMenu === 'user';
199
+ }
200
+ get userMenuTabIndex() {
201
+ return this.userMenuOpened ? '' : '-1';
202
+ }
203
+ get signedOutTabIndex() {
204
+ return this.signedOutOpened ? '' : '-1';
205
+ }
206
+ get closeLayerClass() {
207
+ return !!this.openMenu || this.mediaSliderOpen ? 'visible' : '';
208
+ }
209
+ get userMenu() {
210
+ return html `
211
+ <ia-topnav-user-menu
212
+ .baseHost=${this.normalizedBaseHost}
213
+ .config=${this.config}
214
+ .menuItems=${this.userMenuItems}
215
+ ?open=${this.openMenu === 'user'}
216
+ .username=${this.username}
217
+ tabindex="${this.userMenuTabIndex}"
218
+ @menuToggled=${this.menuToggled}
219
+ @trackClick=${this.trackClick}
220
+ @focusToOtherMenuItem=${(e) => (this.currentTab = e.detail)}
221
+ ></ia-topnav-user-menu>
222
+ `;
223
+ }
224
+ get signedOutDropdown() {
225
+ return html `
226
+ <ia-topnav-signed-out-dropdown
227
+ .baseHost=${this.normalizedBaseHost}
228
+ .config=${this.config}
229
+ .open=${this.signedOutOpened}
230
+ tabindex="${this.signedOutTabIndex}"
231
+ .menuItems=${this.signedOutMenuItems}
232
+ @focusToOtherMenuItem=${(e) => {
233
+ this.currentTab = e.detail;
234
+ }}
235
+ ></ia-topnav-signed-out-dropdown>
236
+ `;
237
+ }
238
+ get signedOutMenuItems() {
239
+ return this.menus.signedOut;
240
+ }
241
+ /**
242
+ * Most users just get the basic menu items.
243
+ * For users with `/items` priv, additional admin menu items are included too.
244
+ * Having the `/flags` priv adds a further admin item for managing flags.
245
+ * A `biblio` URL adds a section of book-scanning links, and an `uploader`
246
+ * adds a section with the uploader's email and account admin links. Each
247
+ * section is rendered with a divider above it.
248
+ */
249
+ get userMenuItems() {
250
+ const basicItems = this.menus.user;
251
+ if (!this.itemIdentifier || !this.admin)
252
+ return [basicItems];
253
+ let adminItems = this.menus.userAdmin;
254
+ if (this.canManageFlags) {
255
+ adminItems = adminItems.concat(this.menus.userAdminFlags);
256
+ }
257
+ // The built sections are empty until the matching prop is set and the
258
+ // menus have been rebuilt, so gating on them keeps a divider from ever
259
+ // rendering above an empty section.
260
+ const { userAdminBiblio, userAdminUploader } = this.menus;
261
+ const sections = [basicItems, adminItems];
262
+ if (userAdminBiblio.length)
263
+ sections.push(userAdminBiblio);
264
+ if (userAdminUploader.length)
265
+ sections.push(userAdminUploader);
266
+ return sections;
267
+ }
268
+ get allowSecondaryIcon() {
269
+ return this.secondIdentitySlotMode === 'allow';
270
+ }
271
+ get searchSlot() {
272
+ return html `<slot name="search" slot="search"></slot>`;
273
+ }
274
+ get secondLogoSlot() {
275
+ return this.allowSecondaryIcon
276
+ ? html `
277
+ <slot name="opt-sec-logo" slot="opt-sec-logo"></slot>
278
+ <slot name="opt-sec-logo-mobile" slot="opt-sec-logo-mobile"></slot>
279
+ `
280
+ : nothing;
281
+ }
282
+ get separatorTemplate() {
283
+ return html `<li class="divider" role="presentation"></li>`;
284
+ }
285
+ static get styles() {
286
+ return [
287
+ themeStyles,
288
+ css `
289
+ :host {
290
+ --white: #fff;
291
+ --grey13: #222;
292
+ --grey20: #333;
293
+ --grey40: #666;
294
+ --grey28: #474747;
295
+ --grey60: #999;
296
+ --grey66: #aaa;
297
+ --grey80: #ccc;
298
+ --greya0: #a0a0a0;
299
+ --grey6f: #6f6f6f;
300
+ --errorYellow: #ffcd27;
301
+
302
+ --linkColor: #4b64ff;
303
+ --linkHoverColor: var(--white);
304
+ --subnavLinkColor: var(--grey66);
305
+ --primaryTextColor: var(--white);
306
+ --inverseTextColor: var(--grey20);
307
+ --lightTextColor: var(--grey60);
308
+ --activeColor: var(--white);
309
+ --activeButtonBg: var(--grey20);
310
+ --iconFill: var(--grey60);
311
+ --desktopSearchIconFill: var(--grey20);
312
+
313
+ --mediaMenuBg: var(--grey13);
314
+ --mediaLabelDesktopColor: var(--grey60);
315
+ --activeDesktopMenuIcon: var(--grey28);
316
+
317
+ --mediaSliderBg: var(--grey20);
318
+ --mediaSliderDesktopBg: var(--grey28);
319
+
320
+ --primaryNavBg: var(--grey13);
321
+ --primaryNavBottomBorder: var(--grey20);
322
+
323
+ --desktopSubnavBg: var(--grey20);
324
+
325
+ --dropdownMenuBg: var(--grey20);
326
+ --dropdownMenuInfoItem: var(--greya0);
327
+ --dropdownMenuDivider: var(--grey40);
328
+ --inverseDropdownMenuInfoItem: var(--grey6f);
329
+
330
+ --loginTextColor: var(--grey60);
331
+
332
+ --themeFontFamily: 'Helvetica Neue', Helvetica, Arial, sans-serif;
333
+ --logoWidthTablet: 263px;
334
+
335
+ --savePageSubmitBg: var(--grey13);
336
+ --savePageSubmitText: var(--white);
337
+ --savePageInputBorder: var(--grey60);
338
+ --savePageErrorText: var(--errorYellow);
339
+
340
+ color: var(--primaryTextColor);
341
+ font-family: var(--themeFontFamily);
342
+ }
343
+
344
+ ia-topnav-primary-nav:focus {
345
+ outline: none !important;
346
+ }
347
+
348
+ #close-layer {
349
+ display: none;
350
+ position: fixed;
351
+ top: 0;
352
+ right: 0;
353
+ bottom: 0;
354
+ left: 0;
355
+ z-index: 3;
356
+ }
357
+ #close-layer.visible {
358
+ display: block;
359
+ }
360
+
361
+ .topnav {
362
+ position: relative;
363
+ z-index: 4;
364
+ }
365
+
366
+ @media (max-width: ${TOPNAV_MOBILE_BREAKPOINT - 1}px) {
367
+ ia-topnav-desktop-subnav {
368
+ display: none;
369
+ }
370
+ }
371
+ `,
372
+ ];
373
+ }
374
+ };
375
+ __decorate([
376
+ property({ type: Boolean })
377
+ ], IATopNav.prototype, "localLinks", void 0);
378
+ __decorate([
379
+ property({ type: String })
380
+ ], IATopNav.prototype, "waybackPagesArchived", void 0);
381
+ __decorate([
382
+ property({ type: String })
383
+ ], IATopNav.prototype, "baseHost", void 0);
384
+ __decorate([
385
+ property({ type: String })
386
+ ], IATopNav.prototype, "mediaBaseHost", void 0);
387
+ __decorate([
388
+ property({ type: Boolean })
389
+ ], IATopNav.prototype, "admin", void 0);
390
+ __decorate([
391
+ property({ type: Boolean })
392
+ ], IATopNav.prototype, "canManageFlags", void 0);
393
+ __decorate([
394
+ property({ type: Object })
395
+ ], IATopNav.prototype, "config", void 0);
396
+ __decorate([
397
+ property({ type: Boolean })
398
+ ], IATopNav.prototype, "hideSearch", void 0);
399
+ __decorate([
400
+ property({ type: String })
401
+ ], IATopNav.prototype, "itemIdentifier", void 0);
402
+ __decorate([
403
+ property({ type: String })
404
+ ], IATopNav.prototype, "uploader", void 0);
405
+ __decorate([
406
+ property({ type: String })
407
+ ], IATopNav.prototype, "biblio", void 0);
408
+ __decorate([
409
+ property({ type: Boolean })
410
+ ], IATopNav.prototype, "mediaSliderOpen", void 0);
411
+ __decorate([
412
+ property({ type: String })
413
+ ], IATopNav.prototype, "openMenu", void 0);
414
+ __decorate([
415
+ property({ type: String })
416
+ ], IATopNav.prototype, "screenName", void 0);
417
+ __decorate([
418
+ property({ type: String })
419
+ ], IATopNav.prototype, "selectedMenuOption", void 0);
420
+ __decorate([
421
+ property({ type: String })
422
+ ], IATopNav.prototype, "username", void 0);
423
+ __decorate([
424
+ property({ type: String })
425
+ ], IATopNav.prototype, "userProfileImagePath", void 0);
426
+ __decorate([
427
+ property({ type: String })
428
+ ], IATopNav.prototype, "secondIdentitySlotMode", void 0);
429
+ __decorate([
430
+ property({ type: Object })
431
+ ], IATopNav.prototype, "currentTab", void 0);
432
+ __decorate([
433
+ query('ia-topnav-primary-nav')
434
+ ], IATopNav.prototype, "primaryNav", void 0);
435
+ __decorate([
436
+ query('ia-topnav-user-menu, ia-topnav-signed-out-dropdown')
437
+ ], IATopNav.prototype, "accountDropdown", void 0);
438
+ __decorate([
439
+ state()
440
+ ], IATopNav.prototype, "menus", void 0);
441
+ IATopNav = __decorate([
442
+ customElement('ia-topnav')
443
+ ], IATopNav);
444
+ export { IATopNav };
445
+ //# sourceMappingURL=ia-topnav.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ia-topnav.js","sourceRoot":"","sources":["../../../../src/elements/ia-topnav/ia-topnav.ts"],"names":[],"mappings":";AAAA,OAAO,EAEL,UAAU,EAEV,GAAG,EACH,IAAI,EACJ,OAAO,GACR,MAAM,KAAK,CAAC;AACb,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEzD,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACrE,OAAO,4BAA4B,CAAC;AACpC,OAAO,iBAAiB,CAAC;AACzB,OAAO,0BAA0B,CAAC;AAClC,OAAO,EAIL,wBAAwB,GACzB,MAAM,UAAU,CAAC;AAClB,OAAO,yBAAyB,CAAC;AAEjC,OAAO,iCAAiC,CAAC;AACzC,OAAO,uBAAuB,CAAC;AAC/B,OAAO,WAAW,MAAM,0BAA0B,CAAC;AAG5C,IAAM,QAAQ,GAAd,MAAM,QAAS,SAAQ,UAAU;IAAjC;;QACwB,eAAU,GAAG,KAAK,CAAC;QAEpB,yBAAoB,GAAG,EAAE,CAAC;QAE1B,aAAQ,GAAG,qBAAqB,CAAC;QAEjC,kBAAa,GAAG,qBAAqB,CAAC;QAErC,UAAK,GAAG,KAAK,CAAC;QAEd,mBAAc,GAAG,KAAK,CAAC;QAExB,WAAM,GAAmB,mBAAmB,CAAC;QAE5C,eAAU,GAAG,KAAK,CAAC;QAEpB,mBAAc,GAAG,EAAE,CAAC;QAEhD;;;WAGG;QACyB,aAAQ,GAAG,EAAE,CAAC;QAE1C;;;;WAIG;QACyB,WAAM,GAAG,EAAE,CAAC;QAEX,oBAAe,GAAG,KAAK,CAAC;QAEzB,aAAQ,GAAG,EAAE,CAAC;QAEd,eAAU,GAAW,EAAE,CAAC;QAExB,uBAAkB,GAAG,EAAE,CAAC;QAExB,aAAQ,GAAW,EAAE,CAAC;QAEtB,yBAAoB,GAC9C,4BAA4B,CAAC;QAG/B,2BAAsB,GAAmC,EAAE,CAAC;QAY3C,UAAK,GAAuB,gBAAgB,EAAE,CAAC;QAEhE;;;;WAIG;QACK,iBAAY,GAAmB,mBAAmB,CAAC;QAEnD,uBAAkB,GAAG,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE3D,qBAAgB,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IA+WjE,CAAC;IA7WC,iBAAiB;QACf,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAC1B,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAC9D,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAC5D,CAAC;IAED,oBAAoB;QAClB,KAAK,CAAC,oBAAoB,EAAE,CAAC;QAC7B,QAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACjE,QAAQ,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAC/D,CAAC;IAED,UAAU,CAAC,KAAqB;QAC9B,IAAI,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,sBAAsB,CAAC,EAAE,CAAC;YAC7D,IAAI,CAAC,YAAY,GAAG;gBAClB,GAAG,IAAI,CAAC,MAAM;gBACd,oBAAoB,EAClB,IAAI,CAAC,oBAAoB,IAAI,IAAI,CAAC,MAAM,CAAC,oBAAoB;aAChE,CAAC;QACJ,CAAC;QACD,IACE,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC;YACrB,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC;YAC3B,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC;YACrB,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;YACnB,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC;YACvB,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,EACrB,CAAC;YACD,IAAI,CAAC,SAAS,EAAE,CAAC;QACnB,CAAC;IACH,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAA;;;sBAGO,IAAI,CAAC,kBAAkB;2BAClB,IAAI,CAAC,aAAa;oBACzB,IAAI,CAAC,MAAM;sBACT,IAAI,CAAC,QAAQ;wBACX,IAAI,CAAC,UAAU;oCACH,IAAI,CAAC,sBAAsB;gCAC/B,IAAI,CAAC,kBAAkB;sBACjC,IAAI,CAAC,QAAQ;kCACD,IAAI,CAAC,oBAAoB;wBACnC,IAAI,CAAC,UAAU;wBACf,IAAI,CAAC,UAAU;+BACR,IAAI,CAAC,iBAAiB;wBAC7B,IAAI,CAAC,UAAU;yBACd,IAAI,CAAC,WAAW;yBAChB,IAAI,CAAC,WAAW;;YAE7B,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,UAAU;;;sBAG5B,IAAI,CAAC,kBAAkB;oBACzB,IAAI,CAAC,YAAY;gCACL,IAAI,CAAC,kBAAkB;6BAC1B,IAAI,CAAC,eAAe;mBAC9B,IAAI,CAAC,KAAK;sBACP,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI;kCACrB,CAAC,CAAc,EAAE,EAAE,CACzC,CAAC,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC;;;QAGhC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB;;oBAE1C,IAAI,CAAC,kBAAkB;qBACtB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK;iBACzB,IAAI,CAAC,UAAU;;;;iBAIf,IAAI,CAAC,eAAe;iBACpB,IAAI,CAAC,UAAU;;KAE3B,CAAC;IACJ,CAAC;IAED,IAAY,kBAAkB;QAC5B,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/C,CAAC;IAEO,qBAAqB,CAAC,CAAgB;QAC5C,IAAI,CAAC,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;YACvB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;YACnB,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;QAC/B,CAAC;IACH,CAAC;IAEO,mBAAmB,CAAC,CAAa;QACvC,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,OAAO;QAC3B,MAAM,IAAI,GAAG,CAAC,CAAC,YAAY,EAAE,CAAC;QAC9B,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YACzB,IAAI,CAAC,UAAU,EAAE,CAAC;QACpB,CAAC;IACH,CAAC;IAED,SAAS;QACP,mBAAmB;QACnB,IAAI,CAAC,KAAK,GAAG,gBAAgB,CAC3B,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,kBAAkB,EACvB,IAAI,CAAC,cAAc,EACnB,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,MAAM,CACZ,CAAC;IACJ,CAAC;IAED,WAAW,CAAC,CAAc;QACxB,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC;QAClC,IAAI,CAAC,QAAQ,GAAG,WAAW,KAAK,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;QAC3E,gDAAgD;QAChD,IAAI,IAAI,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;YAC9B,OAAO;QACT,CAAC;QACD,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAExB,IAAI,IAAI,CAAC,QAAQ,KAAK,MAAM,IAAI,IAAI,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;YAC1D,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;gBAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,wBAAwB,EAAE,CAAC;gBACzD,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CACpC,qBAAqB,EACrB,GAAG,KAAK,IAAI,CACb,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED,eAAe;QACb,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;IAC9B,CAAC;IAED,gBAAgB;QACd,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;QAC7B,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAC;IAC/B,CAAC;IAED,UAAU;QACR,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC1B,CAAC;IAED,UAAU,CAAC,CAAc;QACvB,IAAI,CAAC,aAAa,CAChB,IAAI,WAAW,CAAC,gBAAgB,EAAE;YAChC,OAAO,EAAE,IAAI;YACb,QAAQ,EAAE,IAAI;YACd,MAAM,EAAE,CAAC,CAAC,MAAM;SACjB,CAAC,CACH,CAAC;IACJ,CAAC;IAED,WAAW,CAAC,CAAc;QACxB,IAAI,CAAC,aAAa,CAChB,IAAI,WAAW,CAAC,iBAAiB,EAAE;YACjC,OAAO,EAAE,IAAI;YACb,QAAQ,EAAE,IAAI;YACd,MAAM,EAAE,CAAC,CAAC,MAAM;SACjB,CAAC,CACH,CAAC;IACJ,CAAC;IAED,iBAAiB,CAAC,CAAc;QAC9B,IAAI,IAAI,CAAC,kBAAkB,KAAK,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;YACnD,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACxB,OAAO;QACT,CAAC;QACD,IAAI,CAAC,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC;QAC7C,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IAED,IAAI,eAAe;QACjB,OAAO,IAAI,CAAC,QAAQ,KAAK,OAAO,CAAC;IACnC,CAAC;IAED,IAAI,cAAc;QAChB,OAAO,IAAI,CAAC,QAAQ,KAAK,MAAM,CAAC;IAClC,CAAC;IAED,IAAI,gBAAgB;QAClB,OAAO,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACzC,CAAC;IAED,IAAI,iBAAiB;QACnB,OAAO,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAC1C,CAAC;IAED,IAAI,eAAe;QACjB,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;IAClE,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAA;;oBAEK,IAAI,CAAC,kBAAkB;kBACzB,IAAI,CAAC,MAAM;qBACR,IAAI,CAAC,aAAa;gBACvB,IAAI,CAAC,QAAQ,KAAK,MAAM;oBACpB,IAAI,CAAC,QAAQ;oBACb,IAAI,CAAC,gBAAgB;uBAClB,IAAI,CAAC,WAAW;sBACjB,IAAI,CAAC,UAAU;gCACL,CAAC,CAAc,EAAE,EAAE,CACzC,CAAC,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC;;KAEjC,CAAC;IACJ,CAAC;IAED,IAAI,iBAAiB;QACnB,OAAO,IAAI,CAAA;;oBAEK,IAAI,CAAC,kBAAkB;kBACzB,IAAI,CAAC,MAAM;gBACb,IAAI,CAAC,eAAe;oBAChB,IAAI,CAAC,iBAAiB;qBACrB,IAAI,CAAC,kBAAkB;gCACZ,CAAC,CAAc,EAAE,EAAE;YACzC,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC;QAC7B,CAAC;;KAEJ,CAAC;IACJ,CAAC;IAED,IAAI,kBAAkB;QACpB,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;IAC9B,CAAC;IAED;;;;;;;OAOG;IACH,IAAI,aAAa;QACf,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;QACnC,IAAI,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,OAAO,CAAC,UAAU,CAAC,CAAC;QAE7D,IAAI,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;QACtC,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QAC5D,CAAC;QAED,sEAAsE;QACtE,uEAAuE;QACvE,oCAAoC;QACpC,MAAM,EAAE,eAAe,EAAE,iBAAiB,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAC1D,MAAM,QAAQ,GAAG,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;QAC1C,IAAI,eAAe,CAAC,MAAM;YAAE,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAC3D,IAAI,iBAAiB,CAAC,MAAM;YAAE,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC/D,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,IAAI,kBAAkB;QACpB,OAAO,IAAI,CAAC,sBAAsB,KAAK,OAAO,CAAC;IACjD,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,IAAI,CAAA,2CAA2C,CAAC;IACzD,CAAC;IAED,IAAI,cAAc;QAChB,OAAO,IAAI,CAAC,kBAAkB;YAC5B,CAAC,CAAC,IAAI,CAAA;;;SAGH;YACH,CAAC,CAAC,OAAO,CAAC;IACd,CAAC;IAED,IAAI,iBAAiB;QACnB,OAAO,IAAI,CAAA,+CAA+C,CAAC;IAC7D,CAAC;IAED,MAAM,KAAK,MAAM;QACf,OAAO;YACL,WAAW;YACX,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6BA8EoB,wBAAwB,GAAG,CAAC;;;;;OAKlD;SACF,CAAC;IACJ,CAAC;CACF,CAAA;AAnb8B;IAA5B,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;4CAAoB;AAEpB;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;sDAA2B;AAE1B;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;0CAAkC;AAEjC;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;+CAAuC;AAErC;IAA5B,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;uCAAe;AAEd;IAA5B,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;gDAAwB;AAExB;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;wCAA8C;AAE5C;IAA5B,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;4CAAoB;AAEpB;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;gDAAqB;AAMpB;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;0CAAe;AAOd;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;wCAAa;AAEX;IAA5B,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;iDAAyB;AAEzB;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;0CAAe;AAEd;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;4CAAyB;AAExB;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;oDAAyB;AAExB;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;0CAAuB;AAEtB;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;sDACI;AAG/B;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;wDACiC;AAEhC;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;4CAGzB;AAEsC;IAAvC,KAAK,CAAC,uBAAuB,CAAC;4CAAiC;AAGxD;IADP,KAAK,CAAC,oDAAoD,CAAC;iDACtB;AAErB;IAAhB,KAAK,EAAE;uCAAwD;AA1DrD,QAAQ;IADpB,aAAa,CAAC,WAAW,CAAC;GACd,QAAQ,CAobpB","sourcesContent":["import {\n CSSResultGroup,\n LitElement,\n PropertyValues,\n css,\n html,\n nothing,\n} from 'lit';\nimport { property, query, state } from 'lit/decorators.js';\nimport { customElement } from '@src/util/custom-element';\n\nimport { buildTopNavMenus, defaultTopNavConfig } from './data/menus';\nimport './ia-topnav-desktop-subnav';\nimport './dropdown-menu';\nimport './ia-topnav-media-slider';\nimport {\n IATopNavConfig,\n IATopNavMenuConfig,\n IATopNavSecondIdentitySlotMode,\n TOPNAV_MOBILE_BREAKPOINT,\n} from './models';\nimport './ia-topnav-primary-nav';\nimport type { PrimaryNav } from './ia-topnav-primary-nav';\nimport './ia-topnav-signed-out-dropdown';\nimport './ia-topnav-user-menu';\nimport themeStyles from '@src/themes/theme-styles';\n\n@customElement('ia-topnav')\nexport class IATopNav extends LitElement {\n @property({ type: Boolean }) localLinks = false;\n\n @property({ type: String }) waybackPagesArchived = '';\n\n @property({ type: String }) baseHost = 'https://archive.org';\n\n @property({ type: String }) mediaBaseHost = 'https://archive.org';\n\n @property({ type: Boolean }) admin = false;\n\n @property({ type: Boolean }) canManageFlags = false;\n\n @property({ type: Object }) config: IATopNavConfig = defaultTopNavConfig;\n\n @property({ type: Boolean }) hideSearch = false;\n\n @property({ type: String }) itemIdentifier = '';\n\n /**\n * Email of the item's uploader. When set for an admin viewing an item, the\n * user menu gets an \"uploader:\" section with user admin / user privs links.\n */\n @property({ type: String }) uploader = '';\n\n /**\n * Biblio URL for a texts item, which must already carry a query string\n * (the item identifier is appended to it as `&ignored=`). When set for an\n * admin viewing an item, the user menu gets biblio / bookview / jp2 zip links.\n */\n @property({ type: String }) biblio = '';\n\n @property({ type: Boolean }) mediaSliderOpen = false;\n\n @property({ type: String }) openMenu = '';\n\n @property({ type: String }) screenName: string = '';\n\n @property({ type: String }) selectedMenuOption = '';\n\n @property({ type: String }) username: string = '';\n\n @property({ type: String }) userProfileImagePath =\n '/services/img/user/profile';\n\n @property({ type: String })\n secondIdentitySlotMode: IATopNavSecondIdentitySlotMode = '';\n\n @property({ type: Object }) currentTab?: {\n mediatype: string;\n moveTo: string;\n };\n\n @query('ia-topnav-primary-nav') private primaryNav?: PrimaryNav;\n /** Only one of ia-topnav-user-menu or ia-topnav-signed-out-dropdown is rendered at a time. */\n @query('ia-topnav-user-menu, ia-topnav-signed-out-dropdown')\n private accountDropdown?: HTMLElement;\n\n @state() private menus: IATopNavMenuConfig = buildTopNavMenus();\n\n /**\n * The config handed to the media slider: the host's `config` with the\n * Wayback page count folded in. Rebuilt only when one of those changes,\n * since a new object on every render would make the slider reset its scroll.\n */\n private sliderConfig: IATopNavConfig = defaultTopNavConfig;\n\n private boundHandleKeydown = this.handleDocumentKeydown.bind(this);\n\n private boundHandleClick = this.handleDocumentClick.bind(this);\n\n connectedCallback() {\n super.connectedCallback();\n document.addEventListener('keydown', this.boundHandleKeydown);\n document.addEventListener('click', this.boundHandleClick);\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n document.removeEventListener('keydown', this.boundHandleKeydown);\n document.removeEventListener('click', this.boundHandleClick);\n }\n\n willUpdate(props: PropertyValues) {\n if (props.has('config') || props.has('waybackPagesArchived')) {\n this.sliderConfig = {\n ...this.config,\n waybackPagesArchived:\n this.waybackPagesArchived || this.config.waybackPagesArchived,\n };\n }\n if (\n props.has('username') ||\n props.has('itemIdentifier') ||\n props.has('uploader') ||\n props.has('biblio') ||\n props.has('localLinks') ||\n props.has('baseHost')\n ) {\n this.menuSetup();\n }\n }\n\n render() {\n return html`\n <div class=\"topnav\">\n <ia-topnav-primary-nav\n .baseHost=${this.normalizedBaseHost}\n .mediaBaseHost=${this.mediaBaseHost}\n .config=${this.config}\n .openMenu=${this.openMenu}\n .screenName=${this.screenName}\n .secondIdentitySlotMode=${this.secondIdentitySlotMode}\n .selectedMenuOption=${this.selectedMenuOption}\n .username=${this.username}\n .userProfileImagePath=${this.userProfileImagePath}\n .currentTab=${this.currentTab}\n ?hideSearch=${this.hideSearch}\n @mediaTypeSelected=${this.mediaTypeSelected}\n @trackClick=${this.trackClick}\n @trackSubmit=${this.trackSubmit}\n @menuToggled=${this.menuToggled}\n >\n ${this.secondLogoSlot} ${this.searchSlot}\n </ia-topnav-primary-nav>\n <ia-topnav-media-slider\n .baseHost=${this.normalizedBaseHost}\n .config=${this.sliderConfig}\n .selectedMenuOption=${this.selectedMenuOption}\n .mediaSliderOpen=${this.mediaSliderOpen}\n .menus=${this.menus}\n tabindex=\"${this.mediaSliderOpen ? '1' : '-1'}\"\n @focusToOtherMenuItem=${(e: CustomEvent) =>\n (this.currentTab = e.detail)}\n ></ia-topnav-media-slider>\n </div>\n ${this.username ? this.userMenu : this.signedOutDropdown}\n <ia-topnav-desktop-subnav\n .baseHost=${this.normalizedBaseHost}\n .menuItems=${this.menus.more.links}\n @focus=${this.closeMenus}\n ></ia-topnav-desktop-subnav>\n <div\n id=\"close-layer\"\n class=\"${this.closeLayerClass}\"\n @click=${this.closeMenus}\n ></div>\n `;\n }\n\n private get normalizedBaseHost() {\n return !this.localLinks ? this.baseHost : '';\n }\n\n private handleDocumentKeydown(e: KeyboardEvent) {\n if (e.key === 'Escape') {\n this.openMenu = '';\n this.mediaSliderOpen = false;\n }\n }\n\n private handleDocumentClick(e: MouseEvent) {\n if (!this.openMenu) return;\n const path = e.composedPath();\n if (!path.includes(this)) {\n this.closeMenus();\n }\n }\n\n menuSetup() {\n // re/build the nav\n this.menus = buildTopNavMenus(\n this.username,\n this.normalizedBaseHost,\n this.itemIdentifier,\n this.uploader,\n this.biblio,\n );\n }\n\n menuToggled(e: CustomEvent) {\n const currentMenu = this.openMenu;\n this.openMenu = currentMenu === e.detail.menuName ? '' : e.detail.menuName;\n // Keeps media slider open if media menu is open\n if (this.openMenu === 'media') {\n return;\n }\n this.closeMediaSlider();\n\n if (this.openMenu === 'user' || this.openMenu === 'login') {\n if (this.primaryNav && this.accountDropdown) {\n const right = this.primaryNav.getAccountDropdownOffset();\n this.accountDropdown.style.setProperty(\n '--dropdownMenuRight',\n `${right}px`,\n );\n }\n }\n }\n\n openMediaSlider() {\n this.mediaSliderOpen = true;\n }\n\n closeMediaSlider() {\n this.mediaSliderOpen = false;\n this.selectedMenuOption = '';\n }\n\n closeMenus() {\n this.openMenu = '';\n this.closeMediaSlider();\n }\n\n trackClick(e: CustomEvent) {\n this.dispatchEvent(\n new CustomEvent('analyticsClick', {\n bubbles: true,\n composed: true,\n detail: e.detail,\n }),\n );\n }\n\n trackSubmit(e: CustomEvent) {\n this.dispatchEvent(\n new CustomEvent('analyticsSubmit', {\n bubbles: true,\n composed: true,\n detail: e.detail,\n }),\n );\n }\n\n mediaTypeSelected(e: CustomEvent) {\n if (this.selectedMenuOption === e.detail.mediatype) {\n this.closeMediaSlider();\n return;\n }\n this.selectedMenuOption = e.detail.mediatype;\n this.openMediaSlider();\n }\n\n get signedOutOpened() {\n return this.openMenu === 'login';\n }\n\n get userMenuOpened() {\n return this.openMenu === 'user';\n }\n\n get userMenuTabIndex() {\n return this.userMenuOpened ? '' : '-1';\n }\n\n get signedOutTabIndex() {\n return this.signedOutOpened ? '' : '-1';\n }\n\n get closeLayerClass() {\n return !!this.openMenu || this.mediaSliderOpen ? 'visible' : '';\n }\n\n get userMenu() {\n return html`\n <ia-topnav-user-menu\n .baseHost=${this.normalizedBaseHost}\n .config=${this.config}\n .menuItems=${this.userMenuItems}\n ?open=${this.openMenu === 'user'}\n .username=${this.username}\n tabindex=\"${this.userMenuTabIndex}\"\n @menuToggled=${this.menuToggled}\n @trackClick=${this.trackClick}\n @focusToOtherMenuItem=${(e: CustomEvent) =>\n (this.currentTab = e.detail)}\n ></ia-topnav-user-menu>\n `;\n }\n\n get signedOutDropdown() {\n return html`\n <ia-topnav-signed-out-dropdown\n .baseHost=${this.normalizedBaseHost}\n .config=${this.config}\n .open=${this.signedOutOpened}\n tabindex=\"${this.signedOutTabIndex}\"\n .menuItems=${this.signedOutMenuItems}\n @focusToOtherMenuItem=${(e: CustomEvent) => {\n this.currentTab = e.detail;\n }}\n ></ia-topnav-signed-out-dropdown>\n `;\n }\n\n get signedOutMenuItems() {\n return this.menus.signedOut;\n }\n\n /**\n * Most users just get the basic menu items.\n * For users with `/items` priv, additional admin menu items are included too.\n * Having the `/flags` priv adds a further admin item for managing flags.\n * A `biblio` URL adds a section of book-scanning links, and an `uploader`\n * adds a section with the uploader's email and account admin links. Each\n * section is rendered with a divider above it.\n */\n get userMenuItems() {\n const basicItems = this.menus.user;\n if (!this.itemIdentifier || !this.admin) return [basicItems];\n\n let adminItems = this.menus.userAdmin;\n if (this.canManageFlags) {\n adminItems = adminItems.concat(this.menus.userAdminFlags);\n }\n\n // The built sections are empty until the matching prop is set and the\n // menus have been rebuilt, so gating on them keeps a divider from ever\n // rendering above an empty section.\n const { userAdminBiblio, userAdminUploader } = this.menus;\n const sections = [basicItems, adminItems];\n if (userAdminBiblio.length) sections.push(userAdminBiblio);\n if (userAdminUploader.length) sections.push(userAdminUploader);\n return sections;\n }\n\n get allowSecondaryIcon() {\n return this.secondIdentitySlotMode === 'allow';\n }\n\n get searchSlot() {\n return html`<slot name=\"search\" slot=\"search\"></slot>`;\n }\n\n get secondLogoSlot() {\n return this.allowSecondaryIcon\n ? html`\n <slot name=\"opt-sec-logo\" slot=\"opt-sec-logo\"></slot>\n <slot name=\"opt-sec-logo-mobile\" slot=\"opt-sec-logo-mobile\"></slot>\n `\n : nothing;\n }\n\n get separatorTemplate() {\n return html`<li class=\"divider\" role=\"presentation\"></li>`;\n }\n\n static get styles(): CSSResultGroup {\n return [\n themeStyles,\n css`\n :host {\n --white: #fff;\n --grey13: #222;\n --grey20: #333;\n --grey40: #666;\n --grey28: #474747;\n --grey60: #999;\n --grey66: #aaa;\n --grey80: #ccc;\n --greya0: #a0a0a0;\n --grey6f: #6f6f6f;\n --errorYellow: #ffcd27;\n\n --linkColor: #4b64ff;\n --linkHoverColor: var(--white);\n --subnavLinkColor: var(--grey66);\n --primaryTextColor: var(--white);\n --inverseTextColor: var(--grey20);\n --lightTextColor: var(--grey60);\n --activeColor: var(--white);\n --activeButtonBg: var(--grey20);\n --iconFill: var(--grey60);\n --desktopSearchIconFill: var(--grey20);\n\n --mediaMenuBg: var(--grey13);\n --mediaLabelDesktopColor: var(--grey60);\n --activeDesktopMenuIcon: var(--grey28);\n\n --mediaSliderBg: var(--grey20);\n --mediaSliderDesktopBg: var(--grey28);\n\n --primaryNavBg: var(--grey13);\n --primaryNavBottomBorder: var(--grey20);\n\n --desktopSubnavBg: var(--grey20);\n\n --dropdownMenuBg: var(--grey20);\n --dropdownMenuInfoItem: var(--greya0);\n --dropdownMenuDivider: var(--grey40);\n --inverseDropdownMenuInfoItem: var(--grey6f);\n\n --loginTextColor: var(--grey60);\n\n --themeFontFamily: 'Helvetica Neue', Helvetica, Arial, sans-serif;\n --logoWidthTablet: 263px;\n\n --savePageSubmitBg: var(--grey13);\n --savePageSubmitText: var(--white);\n --savePageInputBorder: var(--grey60);\n --savePageErrorText: var(--errorYellow);\n\n color: var(--primaryTextColor);\n font-family: var(--themeFontFamily);\n }\n\n ia-topnav-primary-nav:focus {\n outline: none !important;\n }\n\n #close-layer {\n display: none;\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 3;\n }\n #close-layer.visible {\n display: block;\n }\n\n .topnav {\n position: relative;\n z-index: 4;\n }\n\n @media (max-width: ${TOPNAV_MOBILE_BREAKPOINT - 1}px) {\n ia-topnav-desktop-subnav {\n display: none;\n }\n }\n `,\n ];\n }\n}\n"]}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Resolves a menu link against the topnav's base host. Absolute `http(s)`
3
+ * URLs pass through untouched, anything else is prefixed with `baseHost`.
4
+ */
5
+ export declare function formatUrl(url: string | undefined, baseHost: string): string;
6
+ /** The string form an `aria-*` boolean attribute expects. */
7
+ export declare function makeBooleanString(value: boolean): 'true' | 'false';
8
+ /**
9
+ * Joins a space-separated phrase into one capitalized word, e.g.
10
+ * `'mobile apps'` becomes `'MobileApps'`. Used to build analytics event names.
11
+ */
12
+ export declare function toSentenceCase(phrase: string): string;
13
+ //# sourceMappingURL=helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../../../src/elements/ia-topnav/lib/helpers.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,YAAK,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEpE;AAED,6DAA6D;AAC7D,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,CAElE;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAOrD"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Resolves a menu link against the topnav's base host. Absolute `http(s)`
3
+ * URLs pass through untouched, anything else is prefixed with `baseHost`.
4
+ */
5
+ export function formatUrl(url = '', baseHost) {
6
+ return /^https?:/.test(url) ? url : `${baseHost}${url}`;
7
+ }
8
+ /** The string form an `aria-*` boolean attribute expects. */
9
+ export function makeBooleanString(value) {
10
+ return value ? 'true' : 'false';
11
+ }
12
+ /**
13
+ * Joins a space-separated phrase into one capitalized word, e.g.
14
+ * `'mobile apps'` becomes `'MobileApps'`. Used to build analytics event names.
15
+ */
16
+ export function toSentenceCase(phrase) {
17
+ const words = phrase.split(' ');
18
+ const lastWord = words.pop() ?? '';
19
+ const capitalizedWord = `${lastWord.slice(0, 1).toUpperCase()}${lastWord.slice(1)}`;
20
+ return words.length
21
+ ? toSentenceCase(`${words.join(' ')}${capitalizedWord}`)
22
+ : capitalizedWord;
23
+ }
24
+ //# sourceMappingURL=helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../../../src/elements/ia-topnav/lib/helpers.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAC,MAAc,EAAE,EAAE,QAAgB;IAC1D,OAAO,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,QAAQ,GAAG,GAAG,EAAE,CAAC;AAC1D,CAAC;AAED,6DAA6D;AAC7D,MAAM,UAAU,iBAAiB,CAAC,KAAc;IAC9C,OAAO,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;AAClC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,MAAc;IAC3C,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAChC,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;IACnC,MAAM,eAAe,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IACpF,OAAO,KAAK,CAAC,MAAM;QACjB,CAAC,CAAC,cAAc,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,eAAe,EAAE,CAAC;QACxD,CAAC,CAAC,eAAe,CAAC;AACtB,CAAC","sourcesContent":["/**\n * Resolves a menu link against the topnav's base host. Absolute `http(s)`\n * URLs pass through untouched, anything else is prefixed with `baseHost`.\n */\nexport function formatUrl(url: string = '', baseHost: string): string {\n return /^https?:/.test(url) ? url : `${baseHost}${url}`;\n}\n\n/** The string form an `aria-*` boolean attribute expects. */\nexport function makeBooleanString(value: boolean): 'true' | 'false' {\n return value ? 'true' : 'false';\n}\n\n/**\n * Joins a space-separated phrase into one capitalized word, e.g.\n * `'mobile apps'` becomes `'MobileApps'`. Used to build analytics event names.\n */\nexport function toSentenceCase(phrase: string): string {\n const words = phrase.split(' ');\n const lastWord = words.pop() ?? '';\n const capitalizedWord = `${lastWord.slice(0, 1).toUpperCase()}${lastWord.slice(1)}`;\n return words.length\n ? toSentenceCase(`${words.join(' ')}${capitalizedWord}`)\n : capitalizedWord;\n}\n"]}