@internetarchive/elements 1.1.3-webdev-9226.1 → 1.1.3-webdev-9241.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 (228) hide show
  1. package/README.md +1 -33
  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 +2 -3
  7. package/dist/src/elements/ia-combo-box/ia-combo-box.js.map +1 -1
  8. package/dist/src/elements/ia-dropdown-search-bar/ia-dropdown-search-bar.d.ts +2 -2
  9. package/dist/src/elements/ia-dropdown-search-bar/ia-dropdown-search-bar.d.ts.map +1 -1
  10. package/dist/src/elements/ia-dropdown-search-bar/ia-dropdown-search-bar.js +5 -4
  11. package/dist/src/elements/ia-dropdown-search-bar/ia-dropdown-search-bar.js.map +1 -1
  12. package/dist/src/elements/ia-expandable-search-bar/ia-expandable-search-bar.d.ts +4 -4
  13. package/dist/src/elements/ia-expandable-search-bar/ia-expandable-search-bar.d.ts.map +1 -1
  14. package/dist/src/elements/ia-expandable-search-bar/ia-expandable-search-bar.js +8 -5
  15. package/dist/src/elements/ia-expandable-search-bar/ia-expandable-search-bar.js.map +1 -1
  16. package/dist/src/elements/ia-image-viewer/ia-image-viewer.d.ts.map +1 -1
  17. package/dist/src/elements/ia-image-viewer/ia-image-viewer.js +2 -3
  18. package/dist/src/elements/ia-image-viewer/ia-image-viewer.js.map +1 -1
  19. package/dist/src/elements/ia-image-viewer/ia-imgview-controls.d.ts.map +1 -1
  20. package/dist/src/elements/ia-image-viewer/ia-imgview-controls.js +2 -3
  21. package/dist/src/elements/ia-image-viewer/ia-imgview-controls.js.map +1 -1
  22. package/dist/src/elements/ia-image-viewer/ia-imgview-slide.d.ts.map +1 -1
  23. package/dist/src/elements/ia-image-viewer/ia-imgview-slide.js +2 -3
  24. package/dist/src/elements/ia-image-viewer/ia-imgview-slide.js.map +1 -1
  25. package/dist/src/elements/ia-otp-form/ia-otp-form.d.ts.map +1 -1
  26. package/dist/src/elements/ia-otp-form/ia-otp-form.js +2 -3
  27. package/dist/src/elements/ia-otp-form/ia-otp-form.js.map +1 -1
  28. package/dist/src/elements/ia-playback-controls/ia-playback-controls.d.ts.map +1 -1
  29. package/dist/src/elements/ia-playback-controls/ia-playback-controls.js +2 -3
  30. package/dist/src/elements/ia-playback-controls/ia-playback-controls.js.map +1 -1
  31. package/dist/src/elements/ia-radio-player/ia-radio-player.d.ts +0 -2
  32. package/dist/src/elements/ia-radio-player/ia-radio-player.d.ts.map +1 -1
  33. package/dist/src/elements/ia-radio-player/ia-radio-player.js +3 -9
  34. package/dist/src/elements/ia-radio-player/ia-radio-player.js.map +1 -1
  35. package/dist/src/elements/ia-radio-player/ia-search-results-switcher.d.ts.map +1 -1
  36. package/dist/src/elements/ia-radio-player/ia-search-results-switcher.js +2 -3
  37. package/dist/src/elements/ia-radio-player/ia-search-results-switcher.js.map +1 -1
  38. package/dist/src/elements/ia-scrubber-bar/ia-scrubber-bar.d.ts +2 -2
  39. package/dist/src/elements/ia-scrubber-bar/ia-scrubber-bar.d.ts.map +1 -1
  40. package/dist/src/elements/ia-scrubber-bar/ia-scrubber-bar.js +5 -4
  41. package/dist/src/elements/ia-scrubber-bar/ia-scrubber-bar.js.map +1 -1
  42. package/dist/src/elements/ia-status-indicator/ia-status-indicator.d.ts +3 -3
  43. package/dist/src/elements/ia-status-indicator/ia-status-indicator.d.ts.map +1 -1
  44. package/dist/src/elements/ia-status-indicator/ia-status-indicator.js +12 -7
  45. package/dist/src/elements/ia-status-indicator/ia-status-indicator.js.map +1 -1
  46. package/dist/src/elements/ia-topnav/assets/img/icon-audio.d.ts +3 -0
  47. package/dist/src/elements/ia-topnav/assets/img/icon-audio.d.ts.map +1 -0
  48. package/dist/src/elements/ia-topnav/assets/img/icon-audio.js +28 -0
  49. package/dist/src/elements/ia-topnav/assets/img/icon-audio.js.map +1 -0
  50. package/dist/src/elements/ia-topnav/assets/img/icon-close.d.ts +3 -0
  51. package/dist/src/elements/ia-topnav/assets/img/icon-close.d.ts.map +1 -0
  52. package/dist/src/elements/ia-topnav/assets/img/icon-close.js +20 -0
  53. package/dist/src/elements/ia-topnav/assets/img/icon-close.js.map +1 -0
  54. package/dist/src/elements/ia-topnav/assets/img/icon-donate-unpadded.d.ts +3 -0
  55. package/dist/src/elements/ia-topnav/assets/img/icon-donate-unpadded.d.ts.map +1 -0
  56. package/dist/src/elements/ia-topnav/assets/img/icon-donate-unpadded.js +19 -0
  57. package/dist/src/elements/ia-topnav/assets/img/icon-donate-unpadded.js.map +1 -0
  58. package/dist/src/elements/ia-topnav/assets/img/icon-donate.d.ts +3 -0
  59. package/dist/src/elements/ia-topnav/assets/img/icon-donate.d.ts.map +1 -0
  60. package/dist/src/elements/ia-topnav/assets/img/icon-donate.js +18 -0
  61. package/dist/src/elements/ia-topnav/assets/img/icon-donate.js.map +1 -0
  62. package/dist/src/elements/ia-topnav/assets/img/icon-ellipses.d.ts +3 -0
  63. package/dist/src/elements/ia-topnav/assets/img/icon-ellipses.d.ts.map +1 -0
  64. package/dist/src/elements/ia-topnav/assets/img/icon-ellipses.js +19 -0
  65. package/dist/src/elements/ia-topnav/assets/img/icon-ellipses.js.map +1 -0
  66. package/dist/src/elements/ia-topnav/assets/img/icon-ia-logo.d.ts +3 -0
  67. package/dist/src/elements/ia-topnav/assets/img/icon-ia-logo.d.ts.map +1 -0
  68. package/dist/src/elements/ia-topnav/assets/img/icon-ia-logo.js +30 -0
  69. package/dist/src/elements/ia-topnav/assets/img/icon-ia-logo.js.map +1 -0
  70. package/dist/src/elements/ia-topnav/assets/img/icon-images.d.ts +3 -0
  71. package/dist/src/elements/ia-topnav/assets/img/icon-images.d.ts.map +1 -0
  72. package/dist/src/elements/ia-topnav/assets/img/icon-images.js +19 -0
  73. package/dist/src/elements/ia-topnav/assets/img/icon-images.js.map +1 -0
  74. package/dist/src/elements/ia-topnav/assets/img/icon-search.d.ts +3 -0
  75. package/dist/src/elements/ia-topnav/assets/img/icon-search.d.ts.map +1 -0
  76. package/dist/src/elements/ia-topnav/assets/img/icon-search.js +19 -0
  77. package/dist/src/elements/ia-topnav/assets/img/icon-search.js.map +1 -0
  78. package/dist/src/elements/ia-topnav/assets/img/icon-software.d.ts +3 -0
  79. package/dist/src/elements/ia-topnav/assets/img/icon-software.d.ts.map +1 -0
  80. package/dist/src/elements/ia-topnav/assets/img/icon-software.js +18 -0
  81. package/dist/src/elements/ia-topnav/assets/img/icon-software.js.map +1 -0
  82. package/dist/src/elements/ia-topnav/assets/img/icon-texts.d.ts +3 -0
  83. package/dist/src/elements/ia-topnav/assets/img/icon-texts.d.ts.map +1 -0
  84. package/dist/src/elements/ia-topnav/assets/img/icon-texts.js +18 -0
  85. package/dist/src/elements/ia-topnav/assets/img/icon-texts.js.map +1 -0
  86. package/dist/src/elements/ia-topnav/assets/img/icon-upload-unpadded.d.ts +3 -0
  87. package/dist/src/elements/ia-topnav/assets/img/icon-upload-unpadded.d.ts.map +1 -0
  88. package/dist/src/elements/ia-topnav/assets/img/icon-upload-unpadded.js +18 -0
  89. package/dist/src/elements/ia-topnav/assets/img/icon-upload-unpadded.js.map +1 -0
  90. package/dist/src/elements/ia-topnav/assets/img/icon-upload.d.ts +3 -0
  91. package/dist/src/elements/ia-topnav/assets/img/icon-upload.d.ts.map +1 -0
  92. package/dist/src/elements/ia-topnav/assets/img/icon-upload.js +21 -0
  93. package/dist/src/elements/ia-topnav/assets/img/icon-upload.js.map +1 -0
  94. package/dist/src/elements/ia-topnav/assets/img/icon-user.d.ts +3 -0
  95. package/dist/src/elements/ia-topnav/assets/img/icon-user.d.ts.map +1 -0
  96. package/dist/src/elements/ia-topnav/assets/img/icon-user.js +19 -0
  97. package/dist/src/elements/ia-topnav/assets/img/icon-user.js.map +1 -0
  98. package/dist/src/elements/ia-topnav/assets/img/icon-video.d.ts +3 -0
  99. package/dist/src/elements/ia-topnav/assets/img/icon-video.d.ts.map +1 -0
  100. package/dist/src/elements/ia-topnav/assets/img/icon-video.js +19 -0
  101. package/dist/src/elements/ia-topnav/assets/img/icon-video.js.map +1 -0
  102. package/dist/src/elements/ia-topnav/assets/img/icon-web.d.ts +3 -0
  103. package/dist/src/elements/ia-topnav/assets/img/icon-web.d.ts.map +1 -0
  104. package/dist/src/elements/ia-topnav/assets/img/icon-web.js +19 -0
  105. package/dist/src/elements/ia-topnav/assets/img/icon-web.js.map +1 -0
  106. package/dist/src/elements/ia-topnav/assets/img/icon.d.ts +6 -0
  107. package/dist/src/elements/ia-topnav/assets/img/icon.d.ts.map +1 -0
  108. package/dist/src/elements/ia-topnav/assets/img/icon.js +17 -0
  109. package/dist/src/elements/ia-topnav/assets/img/icon.js.map +1 -0
  110. package/dist/src/elements/ia-topnav/assets/img/icons.d.ts +19 -0
  111. package/dist/src/elements/ia-topnav/assets/img/icons.d.ts.map +1 -0
  112. package/dist/src/elements/ia-topnav/assets/img/icons.js +33 -0
  113. package/dist/src/elements/ia-topnav/assets/img/icons.js.map +1 -0
  114. package/dist/src/elements/ia-topnav/assets/img/wayback-logo.d.ts +3 -0
  115. package/dist/src/elements/ia-topnav/assets/img/wayback-logo.d.ts.map +1 -0
  116. package/dist/src/elements/ia-topnav/assets/img/wayback-logo.js +21 -0
  117. package/dist/src/elements/ia-topnav/assets/img/wayback-logo.js.map +1 -0
  118. package/dist/src/elements/ia-topnav/assets/img/wordmark-stacked.d.ts +3 -0
  119. package/dist/src/elements/ia-topnav/assets/img/wordmark-stacked.d.ts.map +1 -0
  120. package/dist/src/elements/ia-topnav/assets/img/wordmark-stacked.js +13 -0
  121. package/dist/src/elements/ia-topnav/assets/img/wordmark-stacked.js.map +1 -0
  122. package/dist/src/elements/ia-topnav/data/menus.d.ts +17 -0
  123. package/dist/src/elements/ia-topnav/data/menus.d.ts.map +1 -0
  124. package/dist/src/elements/ia-topnav/data/menus.js +680 -0
  125. package/dist/src/elements/ia-topnav/data/menus.js.map +1 -0
  126. package/dist/src/elements/ia-topnav/dropdown-menu.d.ts +21 -0
  127. package/dist/src/elements/ia-topnav/dropdown-menu.d.ts.map +1 -0
  128. package/dist/src/elements/ia-topnav/dropdown-menu.js +315 -0
  129. package/dist/src/elements/ia-topnav/dropdown-menu.js.map +1 -0
  130. package/dist/src/elements/ia-topnav/ia-topnav-desktop-subnav.d.ts +11 -0
  131. package/dist/src/elements/ia-topnav/ia-topnav-desktop-subnav.d.ts.map +1 -0
  132. package/dist/src/elements/ia-topnav/ia-topnav-desktop-subnav.js +89 -0
  133. package/dist/src/elements/ia-topnav/ia-topnav-desktop-subnav.js.map +1 -0
  134. package/dist/src/elements/ia-topnav/ia-topnav-icon-hamburger.d.ts +6 -0
  135. package/dist/src/elements/ia-topnav/ia-topnav-icon-hamburger.d.ts.map +1 -0
  136. package/dist/src/elements/ia-topnav/ia-topnav-icon-hamburger.js +47 -0
  137. package/dist/src/elements/ia-topnav/ia-topnav-icon-hamburger.js.map +1 -0
  138. package/dist/src/elements/ia-topnav/ia-topnav-login-button.d.ts +20 -0
  139. package/dist/src/elements/ia-topnav/ia-topnav-login-button.d.ts.map +1 -0
  140. package/dist/src/elements/ia-topnav/ia-topnav-login-button.js +183 -0
  141. package/dist/src/elements/ia-topnav/ia-topnav-login-button.js.map +1 -0
  142. package/dist/src/elements/ia-topnav/ia-topnav-media-button.d.ts +31 -0
  143. package/dist/src/elements/ia-topnav/ia-topnav-media-button.d.ts.map +1 -0
  144. package/dist/src/elements/ia-topnav/ia-topnav-media-button.js +287 -0
  145. package/dist/src/elements/ia-topnav/ia-topnav-media-button.js.map +1 -0
  146. package/dist/src/elements/ia-topnav/ia-topnav-media-menu.d.ts +21 -0
  147. package/dist/src/elements/ia-topnav/ia-topnav-media-menu.d.ts.map +1 -0
  148. package/dist/src/elements/ia-topnav/ia-topnav-media-menu.js +222 -0
  149. package/dist/src/elements/ia-topnav/ia-topnav-media-menu.js.map +1 -0
  150. package/dist/src/elements/ia-topnav/ia-topnav-media-slider.d.ts +16 -0
  151. package/dist/src/elements/ia-topnav/ia-topnav-media-slider.d.ts.map +1 -0
  152. package/dist/src/elements/ia-topnav/ia-topnav-media-slider.js +221 -0
  153. package/dist/src/elements/ia-topnav/ia-topnav-media-slider.js.map +1 -0
  154. package/dist/src/elements/ia-topnav/ia-topnav-media-subnav.d.ts +20 -0
  155. package/dist/src/elements/ia-topnav/ia-topnav-media-subnav.d.ts.map +1 -0
  156. package/dist/src/elements/ia-topnav/ia-topnav-media-subnav.js +285 -0
  157. package/dist/src/elements/ia-topnav/ia-topnav-media-subnav.js.map +1 -0
  158. package/dist/src/elements/ia-topnav/ia-topnav-more-slider.d.ts +12 -0
  159. package/dist/src/elements/ia-topnav/ia-topnav-more-slider.d.ts.map +1 -0
  160. package/dist/src/elements/ia-topnav/ia-topnav-more-slider.js +65 -0
  161. package/dist/src/elements/ia-topnav/ia-topnav-more-slider.js.map +1 -0
  162. package/dist/src/elements/ia-topnav/ia-topnav-primary-nav.d.ts +53 -0
  163. package/dist/src/elements/ia-topnav/ia-topnav-primary-nav.d.ts.map +1 -0
  164. package/dist/src/elements/ia-topnav/ia-topnav-primary-nav.js +653 -0
  165. package/dist/src/elements/ia-topnav/ia-topnav-primary-nav.js.map +1 -0
  166. package/dist/src/elements/ia-topnav/ia-topnav-save-page-form.d.ts +12 -0
  167. package/dist/src/elements/ia-topnav/ia-topnav-save-page-form.d.ts.map +1 -0
  168. package/dist/src/elements/ia-topnav/ia-topnav-save-page-form.js +128 -0
  169. package/dist/src/elements/ia-topnav/ia-topnav-save-page-form.js.map +1 -0
  170. package/dist/src/elements/ia-topnav/ia-topnav-signed-out-dropdown.d.ts +4 -0
  171. package/dist/src/elements/ia-topnav/ia-topnav-signed-out-dropdown.d.ts.map +1 -0
  172. package/dist/src/elements/ia-topnav/ia-topnav-signed-out-dropdown.js +10 -0
  173. package/dist/src/elements/ia-topnav/ia-topnav-signed-out-dropdown.js.map +1 -0
  174. package/dist/src/elements/ia-topnav/ia-topnav-user-menu.d.ts +7 -0
  175. package/dist/src/elements/ia-topnav/ia-topnav-user-menu.d.ts.map +1 -0
  176. package/dist/src/elements/ia-topnav/ia-topnav-user-menu.js +39 -0
  177. package/dist/src/elements/ia-topnav/ia-topnav-user-menu.js.map +1 -0
  178. package/dist/src/elements/ia-topnav/ia-topnav-wayback-search.d.ts +10 -0
  179. package/dist/src/elements/ia-topnav/ia-topnav-wayback-search.d.ts.map +1 -0
  180. package/dist/src/elements/ia-topnav/ia-topnav-wayback-search.js +64 -0
  181. package/dist/src/elements/ia-topnav/ia-topnav-wayback-search.js.map +1 -0
  182. package/dist/src/elements/ia-topnav/ia-topnav-wayback-slider.d.ts +20 -0
  183. package/dist/src/elements/ia-topnav/ia-topnav-wayback-slider.d.ts.map +1 -0
  184. package/dist/src/elements/ia-topnav/ia-topnav-wayback-slider.js +131 -0
  185. package/dist/src/elements/ia-topnav/ia-topnav-wayback-slider.js.map +1 -0
  186. package/dist/src/elements/ia-topnav/ia-topnav.d.ts +85 -0
  187. package/dist/src/elements/ia-topnav/ia-topnav.d.ts.map +1 -0
  188. package/dist/src/elements/ia-topnav/ia-topnav.js +434 -0
  189. package/dist/src/elements/ia-topnav/ia-topnav.js.map +1 -0
  190. package/dist/src/elements/ia-topnav/lib/helpers.d.ts +13 -0
  191. package/dist/src/elements/ia-topnav/lib/helpers.d.ts.map +1 -0
  192. package/dist/src/elements/ia-topnav/lib/helpers.js +24 -0
  193. package/dist/src/elements/ia-topnav/lib/helpers.js.map +1 -0
  194. package/dist/src/elements/ia-topnav/lib/keyboard-navigation.d.ts +46 -0
  195. package/dist/src/elements/ia-topnav/lib/keyboard-navigation.d.ts.map +1 -0
  196. package/dist/src/elements/ia-topnav/lib/keyboard-navigation.js +136 -0
  197. package/dist/src/elements/ia-topnav/lib/keyboard-navigation.js.map +1 -0
  198. package/dist/src/elements/ia-topnav/models.d.ts +59 -0
  199. package/dist/src/elements/ia-topnav/models.d.ts.map +1 -0
  200. package/dist/src/elements/ia-topnav/models.js +10 -0
  201. package/dist/src/elements/ia-topnav/models.js.map +1 -0
  202. package/dist/src/elements/ia-topnav/subnav-list-styles.d.ts +2 -0
  203. package/dist/src/elements/ia-topnav/subnav-list-styles.d.ts.map +1 -0
  204. package/dist/src/elements/ia-topnav/subnav-list-styles.js +49 -0
  205. package/dist/src/elements/ia-topnav/subnav-list-styles.js.map +1 -0
  206. package/dist/src/elements/ia-topnav/tracked-element.d.ts +6 -0
  207. package/dist/src/elements/ia-topnav/tracked-element.d.ts.map +1 -0
  208. package/dist/src/elements/ia-topnav/tracked-element.js +29 -0
  209. package/dist/src/elements/ia-topnav/tracked-element.js.map +1 -0
  210. package/dist/src/elements/ia-transcript-view/ia-transcript-entry.d.ts.map +1 -1
  211. package/dist/src/elements/ia-transcript-view/ia-transcript-entry.js +0 -4
  212. package/dist/src/elements/ia-transcript-view/ia-transcript-entry.js.map +1 -1
  213. package/dist/src/elements/ia-transcript-view/ia-transcript-view.d.ts.map +1 -1
  214. package/dist/src/elements/ia-transcript-view/ia-transcript-view.js +2 -3
  215. package/dist/src/elements/ia-transcript-view/ia-transcript-view.js.map +1 -1
  216. package/dist/src/elements/ia-wayback-search-form/ia-wayback-search-form.d.ts +24 -0
  217. package/dist/src/elements/ia-wayback-search-form/ia-wayback-search-form.d.ts.map +1 -0
  218. package/dist/src/elements/ia-wayback-search-form/ia-wayback-search-form.js +240 -0
  219. package/dist/src/elements/ia-wayback-search-form/ia-wayback-search-form.js.map +1 -0
  220. package/dist/src/elements/index.d.ts +3 -0
  221. package/dist/src/elements/index.d.ts.map +1 -1
  222. package/dist/src/elements/index.js +3 -0
  223. package/dist/src/elements/index.js.map +1 -1
  224. package/package.json +5 -27
  225. package/dist/src/locales/es.d.ts +0 -40
  226. package/dist/src/locales/es.d.ts.map +0 -1
  227. package/dist/src/locales/es.js +0 -45
  228. package/dist/src/locales/es.js.map +0 -1
@@ -0,0 +1,653 @@
1
+ import { __decorate } from "tslib";
2
+ import { css, html, nothing } from 'lit';
3
+ import TrackedElement from './tracked-element.js';
4
+ import icons from './assets/img/icons.js';
5
+ import './ia-topnav-icon-hamburger.js';
6
+ import './ia-topnav-login-button.js';
7
+ import './ia-topnav-media-menu.js';
8
+ import '../../elements/ia-sr-only-text/ia-sr-only-text.js';
9
+ import logoWordmarkStacked from './assets/img/wordmark-stacked.js';
10
+ import { formatUrl } from './lib/helpers.js';
11
+ import { property, query } from 'lit/decorators.js';
12
+ import { customElement } from '../../util/custom-element.js';
13
+ import { TOPNAV_MOBILE_BREAKPOINT, } from './models.js';
14
+ import { defaultTopNavConfig } from './data/menus.js';
15
+ import themeStyles from '../../themes/theme-styles.js';
16
+ import { localized, msg, str } from '@lit/localize';
17
+ let PrimaryNav = class PrimaryNav extends TrackedElement {
18
+ constructor() {
19
+ super(...arguments);
20
+ this.mediaBaseHost = 'https://archive.org';
21
+ this.baseHost = '';
22
+ this.hideSearch = false;
23
+ this.config = defaultTopNavConfig;
24
+ this.openMenu = '';
25
+ this.screenName = '';
26
+ this.secondIdentitySlotMode = '';
27
+ this.selectedMenuOption = '';
28
+ this.signedOutMenuOpen = false;
29
+ this.userMenuOpen = false;
30
+ this.mediaMenuAnimate = false;
31
+ this.username = '';
32
+ this.userProfileImagePath = '';
33
+ }
34
+ updated(props) {
35
+ if (props.has('currentTab')) {
36
+ // early return
37
+ if (!this.currentTab || Object.keys(this.currentTab).length === 0)
38
+ return nothing;
39
+ const isUserMenuTab = this.currentTab && this.currentTab.mediatype === 'usermenu';
40
+ if (isUserMenuTab) {
41
+ const mediaButtons = Array.from(this.shadowRoot
42
+ ?.querySelector('ia-topnav-media-menu')
43
+ ?.shadowRoot?.querySelectorAll('ia-topnav-media-button') ?? []);
44
+ const lastMediaButton = mediaButtons.filter((element) => {
45
+ return element.shadowRoot
46
+ ?.querySelector('a')
47
+ ?.classList.contains('images');
48
+ });
49
+ let nextElement;
50
+ if (this.username) {
51
+ nextElement = this.shadowRoot?.querySelector('a.upload');
52
+ }
53
+ else {
54
+ nextElement = this.shadowRoot
55
+ ?.querySelector('ia-topnav-login-button')
56
+ ?.shadowRoot?.querySelector('span a');
57
+ }
58
+ const menuItemElement = lastMediaButton[0]?.shadowRoot?.querySelector('a.menu-item');
59
+ const focusElement = this.currentTab.moveTo === 'next' ? nextElement : menuItemElement;
60
+ if (focusElement) {
61
+ focusElement.focus();
62
+ }
63
+ }
64
+ else if (this.currentTab.moveTo === 'next') {
65
+ if (this.shadowRoot?.querySelector('.user-menu')) {
66
+ (this.shadowRoot?.querySelector('.user-menu')).focus();
67
+ }
68
+ else {
69
+ this.shadowRoot
70
+ ?.querySelector('ia-topnav-login-button')
71
+ ?.shadowRoot?.querySelectorAll('span a')[0]?.focus();
72
+ }
73
+ }
74
+ }
75
+ }
76
+ render() {
77
+ // const mediaMenuTabIndex = this.openMenu === 'media' ? '' : '-1';
78
+ return html `
79
+ <nav class=${this.hideSearch ? 'hide-search' : ''}>
80
+ <button
81
+ class="hamburger"
82
+ @click="${this.toggleMediaMenu}"
83
+ data-event-click-tracking="${this.config?.eventCategory}|NavHamburger"
84
+ title=${msg('Open main menu')}
85
+ >
86
+ <ia-topnav-icon-hamburger
87
+ ?active=${this.openMenu === 'media'}
88
+ ></ia-topnav-icon-hamburger>
89
+ </button>
90
+
91
+ <div class=${`branding ${this.secondLogoClass}`}>
92
+ <a
93
+ .href=${formatUrl('/', this.baseHost)}
94
+ @click=${this.trackClick}
95
+ data-event-click-tracking="${this.config?.eventCategory}|NavHome"
96
+ title=${msg('Go home')}
97
+ class="link-home"
98
+ >${icons.iaLogo}${logoWordmarkStacked}</a
99
+ >
100
+ ${this.secondLogoSlot}
101
+ </div>
102
+ <ia-topnav-media-menu
103
+ .baseHost=${this.baseHost}
104
+ .config=${this.config}
105
+ ?mediaMenuAnimate=${this.mediaMenuAnimate}
106
+ .selectedMenuOption=${this.selectedMenuOption}
107
+ .openMenu=${this.openMenu}
108
+ .currentTab=${this.currentTab}
109
+ ></ia-topnav-media-menu>
110
+ ${this.searchSlotContainer}
111
+ <div class="right-side-section">
112
+ ${this.mobileDonateHeart} ${this.userStateTemplate}
113
+ ${this.uploadButtonTemplate} ${this.searchMenu}
114
+ </div>
115
+ </nav>
116
+ `;
117
+ }
118
+ /** Distance (px) from this element's right edge to the right edge of the account dropdown toggle. */
119
+ getAccountDropdownOffset() {
120
+ const hostRect = this.getBoundingClientRect();
121
+ if (this.userMenuButton) {
122
+ return hostRect.right - this.userMenuButton.getBoundingClientRect().right;
123
+ }
124
+ if (this.loginButton) {
125
+ const loginRect = this.loginButton.getBoundingClientRect();
126
+ const innerOffset = this.loginButton.getDropdownToggleOffset();
127
+ return hostRect.right - loginRect.right + innerOffset;
128
+ }
129
+ return 0;
130
+ }
131
+ toggleMediaMenu(e) {
132
+ this.trackClick(e);
133
+ this.dispatchEvent(new CustomEvent('menuToggled', {
134
+ detail: {
135
+ menuName: 'media',
136
+ },
137
+ }));
138
+ }
139
+ toggleSearchMenu(e) {
140
+ this.trackClick(e);
141
+ this.dispatchEvent(new CustomEvent('menuToggled', {
142
+ detail: {
143
+ menuName: 'search',
144
+ },
145
+ }));
146
+ }
147
+ toggleUserMenu(e) {
148
+ this.trackClick(e);
149
+ this.dispatchEvent(new CustomEvent('menuToggled', {
150
+ detail: {
151
+ menuName: 'user',
152
+ },
153
+ }));
154
+ }
155
+ get userIcon() {
156
+ const userMenuClass = this.openMenu === 'user' ? 'active' : '';
157
+ const userMenuToolTip = this.openMenu === 'user'
158
+ ? msg('Close user menu')
159
+ : msg('Expand user menu');
160
+ return html `
161
+ <button
162
+ class="user-menu ${userMenuClass}"
163
+ title="${userMenuToolTip}"
164
+ @click="${this.toggleUserMenu}"
165
+ data-event-click-tracking="${this.config?.eventCategory}|NavUserMenu"
166
+ >
167
+ <img
168
+ src="${this.mediaBaseHost}${this.userProfileImagePath}"
169
+ alt=${msg(str `Profile picture for ${this.screenName}`)}
170
+ />
171
+ <span class="screen-name" dir="auto">${this.screenName}</span>
172
+ </button>
173
+ `;
174
+ }
175
+ get loginIcon() {
176
+ return html `
177
+ <ia-topnav-login-button
178
+ .baseHost=${this.baseHost}
179
+ .config=${this.config}
180
+ .dropdownOpen=${this.signedOutMenuOpen}
181
+ .openMenu=${this.openMenu}
182
+ @signedOutMenuToggled=${this.signedOutMenuToggled}
183
+ ></ia-topnav-login-button>
184
+ `;
185
+ }
186
+ get searchMenuOpen() {
187
+ return this.openMenu === 'search';
188
+ }
189
+ get allowSecondaryIcon() {
190
+ return this.secondIdentitySlotMode === 'allow';
191
+ }
192
+ /**
193
+ * The search slot container, rendered between ia-topnav-media-menu and
194
+ * right-side-section so it sits left of the Upload button on desktop.
195
+ */
196
+ get searchSlotContainer() {
197
+ if (this.hideSearch)
198
+ return nothing;
199
+ return html `
200
+ <div class="search-container ${this.searchMenuOpen ? 'open' : ''}">
201
+ <slot name="search"></slot>
202
+ </div>
203
+ `;
204
+ }
205
+ get searchMenu() {
206
+ if (this.hideSearch)
207
+ return nothing;
208
+ return html `
209
+ <button
210
+ class="search-trigger"
211
+ @click="${this.toggleSearchMenu}"
212
+ data-event-click-tracking="${this.config?.eventCategory}|NavSearchOpen"
213
+ >
214
+ ${icons.search}
215
+ </button>
216
+ `;
217
+ }
218
+ get mobileDonateHeart() {
219
+ return html `
220
+ <a
221
+ class="mobile-donate-link"
222
+ .href=${formatUrl('/donate/?origin=iawww-mbhrt', this.baseHost)}
223
+ >
224
+ ${icons.donateUnpadded}
225
+ <ia-sr-only-text>${msg('Donate to the archive')}</ia-sr-only-text>
226
+ </a>
227
+ `;
228
+ }
229
+ get uploadButtonTemplate() {
230
+ return html ` <a
231
+ .href="${formatUrl('/upload', this.baseHost)}"
232
+ class="upload"
233
+ @focus=${this.toggleMediaMenu}
234
+ >
235
+ ${icons.upload}
236
+ <span>${msg('Upload')}</span>
237
+ </a>`;
238
+ }
239
+ get userStateTemplate() {
240
+ return html `<div class="user-info">
241
+ ${this.username ? this.userIcon : this.loginIcon}
242
+ </div>`;
243
+ }
244
+ get secondLogoSlot() {
245
+ return this.allowSecondaryIcon
246
+ ? html `
247
+ <slot name="opt-sec-logo"></slot>
248
+ <slot name="opt-sec-logo-mobile"></slot>
249
+ `
250
+ : nothing;
251
+ }
252
+ get secondLogoClass() {
253
+ return this.allowSecondaryIcon ? 'second-logo' : '';
254
+ }
255
+ static get styles() {
256
+ return [
257
+ themeStyles,
258
+ css `
259
+ button:focus,
260
+ input:focus {
261
+ outline: none;
262
+ }
263
+
264
+ nav {
265
+ position: relative;
266
+ display: flex;
267
+ height: 4rem;
268
+ grid-template-areas: 'hamburger empty heart search user';
269
+ -ms-grid-columns: 4rem minmax(1rem, 100%) 4rem 4rem 4rem;
270
+ grid-template-columns: 4rem auto 4rem 4rem 4rem;
271
+ -ms-grid-rows: 100%;
272
+ grid-template-rows: 100%;
273
+ background: var(--primaryNavBg);
274
+ border-bottom: 1px solid var(--primaryNavBottomBorder);
275
+ }
276
+
277
+ nav.hide-search {
278
+ grid-template-areas: 'hamburger empty heart user';
279
+ -ms-grid-columns: 4rem minmax(1rem, 100%) 4rem 4rem;
280
+ grid-template-columns: 4rem auto 4rem 4rem;
281
+ }
282
+
283
+ .right-side-section {
284
+ display: flex;
285
+ margin-left: auto;
286
+ user-select: none;
287
+ }
288
+ button {
289
+ background: none;
290
+ color: inherit;
291
+ border: none;
292
+ font: inherit;
293
+ cursor: pointer;
294
+ }
295
+
296
+ .branding {
297
+ position: static;
298
+ float: left;
299
+ margin: 0 !important;
300
+ padding: 0 5px 0 10px;
301
+ -webkit-transform: translate(0, 0);
302
+ -ms-transform: translate(0, 0);
303
+ transform: translate(0, 0);
304
+ }
305
+
306
+ slot,
307
+ .branding {
308
+ display: flex;
309
+ justify-content: left;
310
+ align-items: center;
311
+ }
312
+
313
+ ia-topnav-media-menu {
314
+ flex: 1;
315
+ justify-self: stretch;
316
+ }
317
+
318
+ .ia-logo {
319
+ height: 3rem;
320
+ width: 2.7rem;
321
+ display: inline-block;
322
+ }
323
+ .ia-wordmark {
324
+ height: 3rem;
325
+ width: 9.5rem;
326
+ }
327
+ .ia-logo,
328
+ .ia-wordmark {
329
+ margin-right: 5px;
330
+ }
331
+
332
+ .hamburger {
333
+ -ms-grid-row: 1;
334
+ -ms-grid-column: 1;
335
+ grid-area: hamburger;
336
+ padding: 0;
337
+ }
338
+ .hamburger svg {
339
+ height: 4rem;
340
+ width: 4rem;
341
+ fill: var(--activeColor);
342
+ }
343
+
344
+ .mobile-donate-link {
345
+ display: inline-block;
346
+ }
347
+ .mobile-donate-link svg {
348
+ height: 4rem;
349
+ width: 4rem;
350
+ }
351
+ .mobile-donate-link .fill-color {
352
+ fill: rgb(255, 0, 0);
353
+ }
354
+
355
+ .search-trigger {
356
+ padding: 0;
357
+ }
358
+ .search-trigger svg {
359
+ height: 4rem;
360
+ width: 4rem;
361
+ }
362
+ .search-trigger .fill-color {
363
+ fill: var(--iconFill);
364
+ }
365
+
366
+ .search-container {
367
+ display: none;
368
+ }
369
+
370
+ .search-container.open {
371
+ display: flex;
372
+ position: absolute;
373
+ top: 0;
374
+ right: 4rem;
375
+ bottom: 0;
376
+ left: 4rem;
377
+ z-index: 3;
378
+ padding: 0.5rem;
379
+ border-radius: 1rem 1rem 0 0;
380
+ background: var(--primaryNavBg);
381
+ align-items: center;
382
+ animation: fade-in 0.2s forwards;
383
+ }
384
+
385
+ .search-container ::slotted(*) {
386
+ display: block;
387
+ }
388
+
389
+ .search-container slot {
390
+ width: 100%;
391
+ }
392
+
393
+ @keyframes fade-in {
394
+ 0% {
395
+ opacity: 0;
396
+ }
397
+ 100% {
398
+ opacity: 1;
399
+ }
400
+ }
401
+
402
+ .upload {
403
+ display: none;
404
+ }
405
+
406
+ .upload span {
407
+ display: none;
408
+ }
409
+
410
+ .upload svg {
411
+ height: 3rem;
412
+ width: 3rem;
413
+ }
414
+
415
+ .screen-name {
416
+ display: none;
417
+ font-size: 1.3rem;
418
+ vertical-align: middle;
419
+ text-transform: uppercase;
420
+ }
421
+
422
+ .user-menu {
423
+ color: var(--lightTextColor);
424
+ padding: 0.5rem;
425
+ height: 100%;
426
+ }
427
+
428
+ button.user-menu:hover,
429
+ button.user-menu:focus {
430
+ color: var(--linkHoverColor);
431
+ outline: none;
432
+ }
433
+
434
+ .user-menu.active {
435
+ border-radius: 1rem 1rem 0 0;
436
+ background: var(--activeButtonBg);
437
+ }
438
+
439
+ .user-menu img {
440
+ display: block;
441
+ width: 3rem;
442
+ height: 3rem;
443
+ }
444
+
445
+ .link-home {
446
+ text-decoration: none;
447
+ display: inline-flex;
448
+ }
449
+ a.link-home:focus,
450
+ a.link-home:focus-visible {
451
+ outline-offset: 1px;
452
+ }
453
+
454
+ @media only screen and (min-width: ${TOPNAV_MOBILE_BREAKPOINT}px) and (max-device-width: 905px) {
455
+ .branding.second-logo {
456
+ padding-right: 0;
457
+ }
458
+ }
459
+
460
+ @media (min-width: 906px) {
461
+ .branding.second-logo {
462
+ padding-right: 20px;
463
+ }
464
+ }
465
+
466
+ @media (max-width: ${TOPNAV_MOBILE_BREAKPOINT - 1}px) {
467
+ slot[name='opt-sec-logo'] {
468
+ display: none;
469
+ }
470
+
471
+ .right-side-section {
472
+ display: initial;
473
+ }
474
+ .right-side-section .user-info {
475
+ float: right;
476
+ }
477
+ }
478
+
479
+ @media (min-width: ${TOPNAV_MOBILE_BREAKPOINT}px) {
480
+ :host {
481
+ --userIconWidth: 3.2rem;
482
+ --userIconHeight: 3.2rem;
483
+ }
484
+
485
+ nav {
486
+ display: flex;
487
+ z-index: 4;
488
+ height: 5rem;
489
+ padding-right: 1.5rem;
490
+ }
491
+
492
+ slot[name='opt-sec-logo-mobile'] {
493
+ display: none;
494
+ }
495
+
496
+ .ia-logo,
497
+ .ia-wordmark {
498
+ margin-right: 10px;
499
+ }
500
+
501
+ .hamburger,
502
+ .search-trigger,
503
+ .mobile-donate-link {
504
+ display: none;
505
+ }
506
+
507
+ .user-info {
508
+ display: block;
509
+ float: right;
510
+ vertical-align: middle;
511
+ height: 100%;
512
+ }
513
+
514
+ .user-info .user-menu img {
515
+ height: 3rem;
516
+ width: 3rem;
517
+ margin-right: 0.5rem;
518
+ }
519
+
520
+ .user-menu {
521
+ padding: 1rem 0.5rem;
522
+ }
523
+ .user-menu.active {
524
+ background: transparent;
525
+ }
526
+
527
+ .user-menu img {
528
+ display: inline-block;
529
+ vertical-align: middle;
530
+ margin-right: 0.5rem;
531
+ }
532
+
533
+ .upload {
534
+ display: block;
535
+ padding: 1rem 0.5rem;
536
+ float: right;
537
+ font-size: 1.4rem;
538
+ text-transform: uppercase;
539
+ text-decoration: none;
540
+ color: var(--lightTextColor);
541
+ }
542
+ .upload:active,
543
+ .upload:focus,
544
+ .upload:hover {
545
+ color: var(--linkHoverColor);
546
+ }
547
+ .upload:focus-visible {
548
+ outline: none;
549
+ }
550
+
551
+ .upload svg {
552
+ vertical-align: middle;
553
+ fill: var(--iconFill);
554
+ }
555
+
556
+ .upload:hover svg,
557
+ .upload:focus svg,
558
+ .upload:active svg {
559
+ fill: var(--linkHoverColor);
560
+ }
561
+
562
+ .search-container,
563
+ .search-container.open {
564
+ display: flex;
565
+ position: static;
566
+ top: auto;
567
+ right: auto;
568
+ bottom: auto;
569
+ left: auto;
570
+ align-items: center;
571
+ padding: 0 0 0 1rem;
572
+ background: transparent;
573
+ border-radius: 0;
574
+ z-index: auto;
575
+ }
576
+
577
+ .search-container slot {
578
+ width: auto;
579
+ }
580
+ }
581
+
582
+ @media (min-width: 990px) {
583
+ .screen-name {
584
+ display: inline-block;
585
+ text-overflow: ellipsis;
586
+ overflow: hidden;
587
+ white-space: nowrap;
588
+ max-width: 165px;
589
+ }
590
+
591
+ .upload span {
592
+ display: inline-block;
593
+ vertical-align: middle;
594
+ }
595
+ }
596
+ `,
597
+ ];
598
+ }
599
+ };
600
+ __decorate([
601
+ property({ type: String })
602
+ ], PrimaryNav.prototype, "mediaBaseHost", void 0);
603
+ __decorate([
604
+ property({ type: String })
605
+ ], PrimaryNav.prototype, "baseHost", void 0);
606
+ __decorate([
607
+ property({ type: Boolean })
608
+ ], PrimaryNav.prototype, "hideSearch", void 0);
609
+ __decorate([
610
+ property({ type: Object })
611
+ ], PrimaryNav.prototype, "config", void 0);
612
+ __decorate([
613
+ property({ type: String })
614
+ ], PrimaryNav.prototype, "openMenu", void 0);
615
+ __decorate([
616
+ property({ type: String })
617
+ ], PrimaryNav.prototype, "screenName", void 0);
618
+ __decorate([
619
+ property({ type: String })
620
+ ], PrimaryNav.prototype, "secondIdentitySlotMode", void 0);
621
+ __decorate([
622
+ property({ type: String })
623
+ ], PrimaryNav.prototype, "selectedMenuOption", void 0);
624
+ __decorate([
625
+ property({ type: Boolean })
626
+ ], PrimaryNav.prototype, "signedOutMenuOpen", void 0);
627
+ __decorate([
628
+ property({ type: Boolean })
629
+ ], PrimaryNav.prototype, "userMenuOpen", void 0);
630
+ __decorate([
631
+ property({ type: Boolean })
632
+ ], PrimaryNav.prototype, "mediaMenuAnimate", void 0);
633
+ __decorate([
634
+ property({ type: String })
635
+ ], PrimaryNav.prototype, "username", void 0);
636
+ __decorate([
637
+ property({ type: String })
638
+ ], PrimaryNav.prototype, "userProfileImagePath", void 0);
639
+ __decorate([
640
+ property({ type: Object })
641
+ ], PrimaryNav.prototype, "currentTab", void 0);
642
+ __decorate([
643
+ query('button.user-menu')
644
+ ], PrimaryNav.prototype, "userMenuButton", void 0);
645
+ __decorate([
646
+ query('ia-topnav-login-button')
647
+ ], PrimaryNav.prototype, "loginButton", void 0);
648
+ PrimaryNav = __decorate([
649
+ customElement('ia-topnav-primary-nav'),
650
+ localized()
651
+ ], PrimaryNav);
652
+ export { PrimaryNav };
653
+ //# sourceMappingURL=ia-topnav-primary-nav.js.map