@internetarchive/elements 1.1.3-webdev-9241.0 → 1.1.3

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 (182) hide show
  1. package/README.md +2 -2
  2. package/dist/src/elements/ia-radio-player/ia-radio-player.d.ts +2 -0
  3. package/dist/src/elements/ia-radio-player/ia-radio-player.d.ts.map +1 -1
  4. package/dist/src/elements/ia-radio-player/ia-radio-player.js +6 -1
  5. package/dist/src/elements/ia-radio-player/ia-radio-player.js.map +1 -1
  6. package/dist/src/elements/ia-status-indicator/ia-status-indicator.d.ts +16 -1
  7. package/dist/src/elements/ia-status-indicator/ia-status-indicator.d.ts.map +1 -1
  8. package/dist/src/elements/ia-status-indicator/ia-status-indicator.js +136 -8
  9. package/dist/src/elements/ia-status-indicator/ia-status-indicator.js.map +1 -1
  10. package/package.json +3 -5
  11. package/dist/src/elements/ia-topnav/assets/img/icon-audio.d.ts +0 -3
  12. package/dist/src/elements/ia-topnav/assets/img/icon-audio.d.ts.map +0 -1
  13. package/dist/src/elements/ia-topnav/assets/img/icon-audio.js +0 -28
  14. package/dist/src/elements/ia-topnav/assets/img/icon-audio.js.map +0 -1
  15. package/dist/src/elements/ia-topnav/assets/img/icon-close.d.ts +0 -3
  16. package/dist/src/elements/ia-topnav/assets/img/icon-close.d.ts.map +0 -1
  17. package/dist/src/elements/ia-topnav/assets/img/icon-close.js +0 -20
  18. package/dist/src/elements/ia-topnav/assets/img/icon-close.js.map +0 -1
  19. package/dist/src/elements/ia-topnav/assets/img/icon-donate-unpadded.d.ts +0 -3
  20. package/dist/src/elements/ia-topnav/assets/img/icon-donate-unpadded.d.ts.map +0 -1
  21. package/dist/src/elements/ia-topnav/assets/img/icon-donate-unpadded.js +0 -19
  22. package/dist/src/elements/ia-topnav/assets/img/icon-donate-unpadded.js.map +0 -1
  23. package/dist/src/elements/ia-topnav/assets/img/icon-donate.d.ts +0 -3
  24. package/dist/src/elements/ia-topnav/assets/img/icon-donate.d.ts.map +0 -1
  25. package/dist/src/elements/ia-topnav/assets/img/icon-donate.js +0 -18
  26. package/dist/src/elements/ia-topnav/assets/img/icon-donate.js.map +0 -1
  27. package/dist/src/elements/ia-topnav/assets/img/icon-ellipses.d.ts +0 -3
  28. package/dist/src/elements/ia-topnav/assets/img/icon-ellipses.d.ts.map +0 -1
  29. package/dist/src/elements/ia-topnav/assets/img/icon-ellipses.js +0 -19
  30. package/dist/src/elements/ia-topnav/assets/img/icon-ellipses.js.map +0 -1
  31. package/dist/src/elements/ia-topnav/assets/img/icon-ia-logo.d.ts +0 -3
  32. package/dist/src/elements/ia-topnav/assets/img/icon-ia-logo.d.ts.map +0 -1
  33. package/dist/src/elements/ia-topnav/assets/img/icon-ia-logo.js +0 -30
  34. package/dist/src/elements/ia-topnav/assets/img/icon-ia-logo.js.map +0 -1
  35. package/dist/src/elements/ia-topnav/assets/img/icon-images.d.ts +0 -3
  36. package/dist/src/elements/ia-topnav/assets/img/icon-images.d.ts.map +0 -1
  37. package/dist/src/elements/ia-topnav/assets/img/icon-images.js +0 -19
  38. package/dist/src/elements/ia-topnav/assets/img/icon-images.js.map +0 -1
  39. package/dist/src/elements/ia-topnav/assets/img/icon-search.d.ts +0 -3
  40. package/dist/src/elements/ia-topnav/assets/img/icon-search.d.ts.map +0 -1
  41. package/dist/src/elements/ia-topnav/assets/img/icon-search.js +0 -19
  42. package/dist/src/elements/ia-topnav/assets/img/icon-search.js.map +0 -1
  43. package/dist/src/elements/ia-topnav/assets/img/icon-software.d.ts +0 -3
  44. package/dist/src/elements/ia-topnav/assets/img/icon-software.d.ts.map +0 -1
  45. package/dist/src/elements/ia-topnav/assets/img/icon-software.js +0 -18
  46. package/dist/src/elements/ia-topnav/assets/img/icon-software.js.map +0 -1
  47. package/dist/src/elements/ia-topnav/assets/img/icon-texts.d.ts +0 -3
  48. package/dist/src/elements/ia-topnav/assets/img/icon-texts.d.ts.map +0 -1
  49. package/dist/src/elements/ia-topnav/assets/img/icon-texts.js +0 -18
  50. package/dist/src/elements/ia-topnav/assets/img/icon-texts.js.map +0 -1
  51. package/dist/src/elements/ia-topnav/assets/img/icon-upload-unpadded.d.ts +0 -3
  52. package/dist/src/elements/ia-topnav/assets/img/icon-upload-unpadded.d.ts.map +0 -1
  53. package/dist/src/elements/ia-topnav/assets/img/icon-upload-unpadded.js +0 -18
  54. package/dist/src/elements/ia-topnav/assets/img/icon-upload-unpadded.js.map +0 -1
  55. package/dist/src/elements/ia-topnav/assets/img/icon-upload.d.ts +0 -3
  56. package/dist/src/elements/ia-topnav/assets/img/icon-upload.d.ts.map +0 -1
  57. package/dist/src/elements/ia-topnav/assets/img/icon-upload.js +0 -21
  58. package/dist/src/elements/ia-topnav/assets/img/icon-upload.js.map +0 -1
  59. package/dist/src/elements/ia-topnav/assets/img/icon-user.d.ts +0 -3
  60. package/dist/src/elements/ia-topnav/assets/img/icon-user.d.ts.map +0 -1
  61. package/dist/src/elements/ia-topnav/assets/img/icon-user.js +0 -19
  62. package/dist/src/elements/ia-topnav/assets/img/icon-user.js.map +0 -1
  63. package/dist/src/elements/ia-topnav/assets/img/icon-video.d.ts +0 -3
  64. package/dist/src/elements/ia-topnav/assets/img/icon-video.d.ts.map +0 -1
  65. package/dist/src/elements/ia-topnav/assets/img/icon-video.js +0 -19
  66. package/dist/src/elements/ia-topnav/assets/img/icon-video.js.map +0 -1
  67. package/dist/src/elements/ia-topnav/assets/img/icon-web.d.ts +0 -3
  68. package/dist/src/elements/ia-topnav/assets/img/icon-web.d.ts.map +0 -1
  69. package/dist/src/elements/ia-topnav/assets/img/icon-web.js +0 -19
  70. package/dist/src/elements/ia-topnav/assets/img/icon-web.js.map +0 -1
  71. package/dist/src/elements/ia-topnav/assets/img/icon.d.ts +0 -6
  72. package/dist/src/elements/ia-topnav/assets/img/icon.d.ts.map +0 -1
  73. package/dist/src/elements/ia-topnav/assets/img/icon.js +0 -17
  74. package/dist/src/elements/ia-topnav/assets/img/icon.js.map +0 -1
  75. package/dist/src/elements/ia-topnav/assets/img/icons.d.ts +0 -19
  76. package/dist/src/elements/ia-topnav/assets/img/icons.d.ts.map +0 -1
  77. package/dist/src/elements/ia-topnav/assets/img/icons.js +0 -33
  78. package/dist/src/elements/ia-topnav/assets/img/icons.js.map +0 -1
  79. package/dist/src/elements/ia-topnav/assets/img/wayback-logo.d.ts +0 -3
  80. package/dist/src/elements/ia-topnav/assets/img/wayback-logo.d.ts.map +0 -1
  81. package/dist/src/elements/ia-topnav/assets/img/wayback-logo.js +0 -21
  82. package/dist/src/elements/ia-topnav/assets/img/wayback-logo.js.map +0 -1
  83. package/dist/src/elements/ia-topnav/assets/img/wordmark-stacked.d.ts +0 -3
  84. package/dist/src/elements/ia-topnav/assets/img/wordmark-stacked.d.ts.map +0 -1
  85. package/dist/src/elements/ia-topnav/assets/img/wordmark-stacked.js +0 -13
  86. package/dist/src/elements/ia-topnav/assets/img/wordmark-stacked.js.map +0 -1
  87. package/dist/src/elements/ia-topnav/data/menus.d.ts +0 -17
  88. package/dist/src/elements/ia-topnav/data/menus.d.ts.map +0 -1
  89. package/dist/src/elements/ia-topnav/data/menus.js +0 -680
  90. package/dist/src/elements/ia-topnav/data/menus.js.map +0 -1
  91. package/dist/src/elements/ia-topnav/dropdown-menu.d.ts +0 -21
  92. package/dist/src/elements/ia-topnav/dropdown-menu.d.ts.map +0 -1
  93. package/dist/src/elements/ia-topnav/dropdown-menu.js +0 -315
  94. package/dist/src/elements/ia-topnav/dropdown-menu.js.map +0 -1
  95. package/dist/src/elements/ia-topnav/ia-topnav-desktop-subnav.d.ts +0 -11
  96. package/dist/src/elements/ia-topnav/ia-topnav-desktop-subnav.d.ts.map +0 -1
  97. package/dist/src/elements/ia-topnav/ia-topnav-desktop-subnav.js +0 -89
  98. package/dist/src/elements/ia-topnav/ia-topnav-desktop-subnav.js.map +0 -1
  99. package/dist/src/elements/ia-topnav/ia-topnav-icon-hamburger.d.ts +0 -6
  100. package/dist/src/elements/ia-topnav/ia-topnav-icon-hamburger.d.ts.map +0 -1
  101. package/dist/src/elements/ia-topnav/ia-topnav-icon-hamburger.js +0 -47
  102. package/dist/src/elements/ia-topnav/ia-topnav-icon-hamburger.js.map +0 -1
  103. package/dist/src/elements/ia-topnav/ia-topnav-login-button.d.ts +0 -20
  104. package/dist/src/elements/ia-topnav/ia-topnav-login-button.d.ts.map +0 -1
  105. package/dist/src/elements/ia-topnav/ia-topnav-login-button.js +0 -183
  106. package/dist/src/elements/ia-topnav/ia-topnav-login-button.js.map +0 -1
  107. package/dist/src/elements/ia-topnav/ia-topnav-media-button.d.ts +0 -31
  108. package/dist/src/elements/ia-topnav/ia-topnav-media-button.d.ts.map +0 -1
  109. package/dist/src/elements/ia-topnav/ia-topnav-media-button.js +0 -287
  110. package/dist/src/elements/ia-topnav/ia-topnav-media-button.js.map +0 -1
  111. package/dist/src/elements/ia-topnav/ia-topnav-media-menu.d.ts +0 -21
  112. package/dist/src/elements/ia-topnav/ia-topnav-media-menu.d.ts.map +0 -1
  113. package/dist/src/elements/ia-topnav/ia-topnav-media-menu.js +0 -222
  114. package/dist/src/elements/ia-topnav/ia-topnav-media-menu.js.map +0 -1
  115. package/dist/src/elements/ia-topnav/ia-topnav-media-slider.d.ts +0 -16
  116. package/dist/src/elements/ia-topnav/ia-topnav-media-slider.d.ts.map +0 -1
  117. package/dist/src/elements/ia-topnav/ia-topnav-media-slider.js +0 -221
  118. package/dist/src/elements/ia-topnav/ia-topnav-media-slider.js.map +0 -1
  119. package/dist/src/elements/ia-topnav/ia-topnav-media-subnav.d.ts +0 -20
  120. package/dist/src/elements/ia-topnav/ia-topnav-media-subnav.d.ts.map +0 -1
  121. package/dist/src/elements/ia-topnav/ia-topnav-media-subnav.js +0 -285
  122. package/dist/src/elements/ia-topnav/ia-topnav-media-subnav.js.map +0 -1
  123. package/dist/src/elements/ia-topnav/ia-topnav-more-slider.d.ts +0 -12
  124. package/dist/src/elements/ia-topnav/ia-topnav-more-slider.d.ts.map +0 -1
  125. package/dist/src/elements/ia-topnav/ia-topnav-more-slider.js +0 -65
  126. package/dist/src/elements/ia-topnav/ia-topnav-more-slider.js.map +0 -1
  127. package/dist/src/elements/ia-topnav/ia-topnav-primary-nav.d.ts +0 -53
  128. package/dist/src/elements/ia-topnav/ia-topnav-primary-nav.d.ts.map +0 -1
  129. package/dist/src/elements/ia-topnav/ia-topnav-primary-nav.js +0 -653
  130. package/dist/src/elements/ia-topnav/ia-topnav-primary-nav.js.map +0 -1
  131. package/dist/src/elements/ia-topnav/ia-topnav-save-page-form.d.ts +0 -12
  132. package/dist/src/elements/ia-topnav/ia-topnav-save-page-form.d.ts.map +0 -1
  133. package/dist/src/elements/ia-topnav/ia-topnav-save-page-form.js +0 -128
  134. package/dist/src/elements/ia-topnav/ia-topnav-save-page-form.js.map +0 -1
  135. package/dist/src/elements/ia-topnav/ia-topnav-signed-out-dropdown.d.ts +0 -4
  136. package/dist/src/elements/ia-topnav/ia-topnav-signed-out-dropdown.d.ts.map +0 -1
  137. package/dist/src/elements/ia-topnav/ia-topnav-signed-out-dropdown.js +0 -10
  138. package/dist/src/elements/ia-topnav/ia-topnav-signed-out-dropdown.js.map +0 -1
  139. package/dist/src/elements/ia-topnav/ia-topnav-user-menu.d.ts +0 -7
  140. package/dist/src/elements/ia-topnav/ia-topnav-user-menu.d.ts.map +0 -1
  141. package/dist/src/elements/ia-topnav/ia-topnav-user-menu.js +0 -39
  142. package/dist/src/elements/ia-topnav/ia-topnav-user-menu.js.map +0 -1
  143. package/dist/src/elements/ia-topnav/ia-topnav-wayback-search.d.ts +0 -10
  144. package/dist/src/elements/ia-topnav/ia-topnav-wayback-search.d.ts.map +0 -1
  145. package/dist/src/elements/ia-topnav/ia-topnav-wayback-search.js +0 -64
  146. package/dist/src/elements/ia-topnav/ia-topnav-wayback-search.js.map +0 -1
  147. package/dist/src/elements/ia-topnav/ia-topnav-wayback-slider.d.ts +0 -20
  148. package/dist/src/elements/ia-topnav/ia-topnav-wayback-slider.d.ts.map +0 -1
  149. package/dist/src/elements/ia-topnav/ia-topnav-wayback-slider.js +0 -131
  150. package/dist/src/elements/ia-topnav/ia-topnav-wayback-slider.js.map +0 -1
  151. package/dist/src/elements/ia-topnav/ia-topnav.d.ts +0 -85
  152. package/dist/src/elements/ia-topnav/ia-topnav.d.ts.map +0 -1
  153. package/dist/src/elements/ia-topnav/ia-topnav.js +0 -434
  154. package/dist/src/elements/ia-topnav/ia-topnav.js.map +0 -1
  155. package/dist/src/elements/ia-topnav/lib/helpers.d.ts +0 -13
  156. package/dist/src/elements/ia-topnav/lib/helpers.d.ts.map +0 -1
  157. package/dist/src/elements/ia-topnav/lib/helpers.js +0 -24
  158. package/dist/src/elements/ia-topnav/lib/helpers.js.map +0 -1
  159. package/dist/src/elements/ia-topnav/lib/keyboard-navigation.d.ts +0 -46
  160. package/dist/src/elements/ia-topnav/lib/keyboard-navigation.d.ts.map +0 -1
  161. package/dist/src/elements/ia-topnav/lib/keyboard-navigation.js +0 -136
  162. package/dist/src/elements/ia-topnav/lib/keyboard-navigation.js.map +0 -1
  163. package/dist/src/elements/ia-topnav/models.d.ts +0 -59
  164. package/dist/src/elements/ia-topnav/models.d.ts.map +0 -1
  165. package/dist/src/elements/ia-topnav/models.js +0 -10
  166. package/dist/src/elements/ia-topnav/models.js.map +0 -1
  167. package/dist/src/elements/ia-topnav/subnav-list-styles.d.ts +0 -2
  168. package/dist/src/elements/ia-topnav/subnav-list-styles.d.ts.map +0 -1
  169. package/dist/src/elements/ia-topnav/subnav-list-styles.js +0 -49
  170. package/dist/src/elements/ia-topnav/subnav-list-styles.js.map +0 -1
  171. package/dist/src/elements/ia-topnav/tracked-element.d.ts +0 -6
  172. package/dist/src/elements/ia-topnav/tracked-element.d.ts.map +0 -1
  173. package/dist/src/elements/ia-topnav/tracked-element.js +0 -29
  174. package/dist/src/elements/ia-topnav/tracked-element.js.map +0 -1
  175. package/dist/src/elements/ia-wayback-search-form/ia-wayback-search-form.d.ts +0 -24
  176. package/dist/src/elements/ia-wayback-search-form/ia-wayback-search-form.d.ts.map +0 -1
  177. package/dist/src/elements/ia-wayback-search-form/ia-wayback-search-form.js +0 -240
  178. package/dist/src/elements/ia-wayback-search-form/ia-wayback-search-form.js.map +0 -1
  179. package/dist/src/elements/index.d.ts +0 -41
  180. package/dist/src/elements/index.d.ts.map +0 -1
  181. package/dist/src/elements/index.js +0 -41
  182. package/dist/src/elements/index.js.map +0 -1
@@ -1,653 +0,0 @@
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