@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,222 +0,0 @@
1
- import { __decorate } from "tslib";
2
- import { LitElement, css, html } from 'lit';
3
- import { property, queryAll } from 'lit/decorators.js';
4
- import { customElement } from '../../util/custom-element.js';
5
- import { defaultTopNavConfig } from './data/menus.js';
6
- import { formatUrl } from './lib/helpers.js';
7
- import './ia-topnav-media-button.js';
8
- import { TOPNAV_MOBILE_BREAKPOINT } from './models.js';
9
- import themeStyles from '../../themes/theme-styles.js';
10
- import { localized, msg } from '@lit/localize';
11
- /**
12
- * The top-level media buttons. A function so the labels are read in the
13
- * current locale each time the menu renders.
14
- */
15
- function menuSelection() {
16
- return [
17
- {
18
- icon: 'web',
19
- menu: 'web',
20
- href: 'https://web.archive.org',
21
- label: 'Wayback Machine',
22
- },
23
- {
24
- icon: 'texts',
25
- menu: 'texts',
26
- href: '/details/texts',
27
- label: msg('Texts'),
28
- },
29
- {
30
- icon: 'video',
31
- menu: 'video',
32
- href: '/details/movies',
33
- label: msg('Video'),
34
- },
35
- {
36
- icon: 'audio',
37
- menu: 'audio',
38
- href: '/details/audio',
39
- label: msg('Audio'),
40
- },
41
- {
42
- icon: 'software',
43
- menu: 'software',
44
- href: '/details/software',
45
- label: msg('Software'),
46
- },
47
- {
48
- icon: 'images',
49
- menu: 'images',
50
- href: '/details/image',
51
- label: msg('Images'),
52
- },
53
- {
54
- icon: 'donate',
55
- menu: 'donate',
56
- href: '/donate/?origin=iawww-mbhmbgrmenu',
57
- label: msg('Donate'),
58
- followable: true,
59
- },
60
- {
61
- icon: 'ellipses',
62
- menu: 'more',
63
- href: '/about/',
64
- label: msg('More'),
65
- },
66
- ];
67
- }
68
- let MediaMenu = class MediaMenu extends LitElement {
69
- constructor() {
70
- super(...arguments);
71
- this.baseHost = '';
72
- this.config = defaultTopNavConfig;
73
- this.openMenu = '';
74
- this.selectedMenuOption = '';
75
- }
76
- updated(props) {
77
- if (props.has('currentTab')) {
78
- const mediaButtons = Array.from(this.mediaButtons ?? []);
79
- mediaButtons.map((button, index) => {
80
- const linkItem = button.shadowRoot?.querySelector('a.menu-item');
81
- if (linkItem) {
82
- if (linkItem.classList.contains(`${this.selectedMenuOption}`)) {
83
- linkItem.classList.remove('selected');
84
- linkItem.blur();
85
- const newFocusIndex = this.currentTab?.moveTo === 'next' ? index + 1 : index - 1;
86
- (mediaButtons[newFocusIndex]?.shadowRoot?.querySelector('a.menu-item')).focus();
87
- }
88
- }
89
- });
90
- }
91
- }
92
- render() {
93
- return html `
94
- <div class="media-menu-container ${this.menuClass}">
95
- <div class="overflow-clip">
96
- <nav class="media-menu-inner" aria-expanded="${this.menuOpened}">
97
- <div class="menu-group">${this.mediaMenuOptionsTemplate}</div>
98
- </nav>
99
- </div>
100
- </div>
101
- `;
102
- }
103
- get mediaMenuOptionsTemplate() {
104
- const buttons = menuSelection().map(({ icon, menu, label, href, followable }) => {
105
- const selected = this.selectedMenuOption === menu;
106
- return html `
107
- <ia-topnav-media-button
108
- .config=${this.config}
109
- .icon=${icon}
110
- .href=${formatUrl(href, this.baseHost)}
111
- ?followable=${followable}
112
- .label=${label}
113
- .mediatype=${menu}
114
- .openMenu=${this.openMenu}
115
- .selected=${selected}
116
- .selectedMenuOption=${this.selectedMenuOption}
117
- data-mediatype="${menu}"
118
- ></ia-topnav-media-button>
119
- `;
120
- });
121
- return buttons;
122
- }
123
- get menuOpened() {
124
- return this.openMenu === 'media';
125
- }
126
- get menuClass() {
127
- return this.menuOpened ? 'open' : 'closed';
128
- }
129
- static get styles() {
130
- return [
131
- themeStyles,
132
- css `
133
- :host {
134
- outline: none;
135
- }
136
-
137
- .media-menu-inner {
138
- z-index: -1;
139
- top: -40rem;
140
- background-color: var(--mediaMenuBg);
141
- margin: 0;
142
- overflow: hidden;
143
- transition-duration: 0.2s;
144
- transition-property: top;
145
- transition-timing-function: ease;
146
- }
147
-
148
- .menu-group {
149
- position: relative;
150
- line-height: normal;
151
- }
152
-
153
- /* Mobile view styles */
154
- @media (max-width: ${TOPNAV_MOBILE_BREAKPOINT - 1}px) {
155
- .media-menu-inner {
156
- position: absolute;
157
- width: 100%;
158
- }
159
-
160
- .open .media-menu-inner {
161
- top: 0;
162
- }
163
-
164
- .overflow-clip {
165
- position: absolute;
166
- z-index: -1; /** needs to be under the navigation, otherwise it intercepts clicks */
167
- top: 4rem;
168
- left: 0;
169
- height: 0;
170
- width: 100%;
171
- overflow: hidden;
172
- transition-duration: 0.2s;
173
- transition-property: height;
174
- }
175
-
176
- .open .overflow-clip {
177
- height: 40rem;
178
- }
179
- }
180
-
181
- /* Desktop view styles */
182
- @media (min-width: ${TOPNAV_MOBILE_BREAKPOINT}px) {
183
- .media-menu-inner {
184
- display: block;
185
- position: static;
186
- width: auto;
187
- height: 5rem;
188
- transition-property: none;
189
- }
190
-
191
- .menu-group {
192
- font-size: 0;
193
- }
194
- }
195
- `,
196
- ];
197
- }
198
- };
199
- __decorate([
200
- property({ type: String })
201
- ], MediaMenu.prototype, "baseHost", void 0);
202
- __decorate([
203
- property({ type: Object })
204
- ], MediaMenu.prototype, "config", void 0);
205
- __decorate([
206
- property({ type: String })
207
- ], MediaMenu.prototype, "openMenu", void 0);
208
- __decorate([
209
- property({ type: String })
210
- ], MediaMenu.prototype, "selectedMenuOption", void 0);
211
- __decorate([
212
- property({ type: Object })
213
- ], MediaMenu.prototype, "currentTab", void 0);
214
- __decorate([
215
- queryAll('ia-topnav-media-button')
216
- ], MediaMenu.prototype, "mediaButtons", void 0);
217
- MediaMenu = __decorate([
218
- customElement('ia-topnav-media-menu'),
219
- localized()
220
- ], MediaMenu);
221
- export { MediaMenu };
222
- //# sourceMappingURL=ia-topnav-media-menu.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ia-topnav-media-menu.js","sourceRoot":"","sources":["../../../../src/elements/ia-topnav/ia-topnav-media-menu.ts"],"names":[],"mappings":"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","sourcesContent":["import { CSSResultGroup, LitElement, PropertyValues, css, html } from 'lit';\nimport { property, queryAll } from 'lit/decorators.js';\nimport { customElement } from '@src/util/custom-element';\n\nimport { defaultTopNavConfig } from './data/menus';\nimport { formatUrl } from './lib/helpers';\nimport './ia-topnav-media-button';\nimport { MediaButton } from './ia-topnav-media-button';\nimport { IATopNavConfig, TOPNAV_MOBILE_BREAKPOINT } from './models';\nimport themeStyles from '@src/themes/theme-styles';\nimport { localized, msg } from '@lit/localize';\n\ntype MediaMenuOption = {\n icon: string;\n menu: string;\n href: string;\n label: string;\n followable?: boolean;\n};\n\n/**\n * The top-level media buttons. A function so the labels are read in the\n * current locale each time the menu renders.\n */\nfunction menuSelection(): MediaMenuOption[] {\n return [\n {\n icon: 'web',\n menu: 'web',\n href: 'https://web.archive.org',\n label: 'Wayback Machine',\n },\n {\n icon: 'texts',\n menu: 'texts',\n href: '/details/texts',\n label: msg('Texts'),\n },\n {\n icon: 'video',\n menu: 'video',\n href: '/details/movies',\n label: msg('Video'),\n },\n {\n icon: 'audio',\n menu: 'audio',\n href: '/details/audio',\n label: msg('Audio'),\n },\n {\n icon: 'software',\n menu: 'software',\n href: '/details/software',\n label: msg('Software'),\n },\n {\n icon: 'images',\n menu: 'images',\n href: '/details/image',\n label: msg('Images'),\n },\n {\n icon: 'donate',\n menu: 'donate',\n href: '/donate/?origin=iawww-mbhmbgrmenu',\n label: msg('Donate'),\n followable: true,\n },\n {\n icon: 'ellipses',\n menu: 'more',\n href: '/about/',\n label: msg('More'),\n },\n ];\n}\n\n@customElement('ia-topnav-media-menu')\n@localized()\nexport class MediaMenu extends LitElement {\n @property({ type: String }) baseHost = '';\n @property({ type: Object }) config: IATopNavConfig = defaultTopNavConfig;\n @property({ type: String }) openMenu = '';\n @property({ type: String }) selectedMenuOption = '';\n @property({ type: Object }) currentTab: { moveTo: string } | undefined;\n\n @queryAll('ia-topnav-media-button') mediaButtons?: MediaButton[];\n\n updated(props: PropertyValues) {\n if (props.has('currentTab')) {\n const mediaButtons = Array.from(this.mediaButtons ?? []);\n\n mediaButtons.map((button, index) => {\n const linkItem = button.shadowRoot?.querySelector('a.menu-item');\n if (linkItem) {\n if (linkItem.classList.contains(`${this.selectedMenuOption}`)) {\n linkItem.classList.remove('selected');\n (linkItem as HTMLElement).blur();\n\n const newFocusIndex =\n this.currentTab?.moveTo === 'next' ? index + 1 : index - 1;\n (\n mediaButtons[newFocusIndex]?.shadowRoot?.querySelector(\n 'a.menu-item',\n ) as HTMLElement\n ).focus();\n }\n }\n });\n }\n }\n\n render() {\n return html`\n <div class=\"media-menu-container ${this.menuClass}\">\n <div class=\"overflow-clip\">\n <nav class=\"media-menu-inner\" aria-expanded=\"${this.menuOpened}\">\n <div class=\"menu-group\">${this.mediaMenuOptionsTemplate}</div>\n </nav>\n </div>\n </div>\n `;\n }\n\n get mediaMenuOptionsTemplate() {\n const buttons = menuSelection().map(\n ({ icon, menu, label, href, followable }) => {\n const selected = this.selectedMenuOption === menu;\n return html`\n <ia-topnav-media-button\n .config=${this.config}\n .icon=${icon}\n .href=${formatUrl(href as string & Location, this.baseHost)}\n ?followable=${followable}\n .label=${label}\n .mediatype=${menu}\n .openMenu=${this.openMenu}\n .selected=${selected}\n .selectedMenuOption=${this.selectedMenuOption}\n data-mediatype=\"${menu}\"\n ></ia-topnav-media-button>\n `;\n },\n );\n return buttons;\n }\n\n get menuOpened() {\n return this.openMenu === 'media';\n }\n\n get menuClass() {\n return this.menuOpened ? 'open' : 'closed';\n }\n\n static get styles(): CSSResultGroup {\n return [\n themeStyles,\n css`\n :host {\n outline: none;\n }\n\n .media-menu-inner {\n z-index: -1;\n top: -40rem;\n background-color: var(--mediaMenuBg);\n margin: 0;\n overflow: hidden;\n transition-duration: 0.2s;\n transition-property: top;\n transition-timing-function: ease;\n }\n\n .menu-group {\n position: relative;\n line-height: normal;\n }\n\n /* Mobile view styles */\n @media (max-width: ${TOPNAV_MOBILE_BREAKPOINT - 1}px) {\n .media-menu-inner {\n position: absolute;\n width: 100%;\n }\n\n .open .media-menu-inner {\n top: 0;\n }\n\n .overflow-clip {\n position: absolute;\n z-index: -1; /** needs to be under the navigation, otherwise it intercepts clicks */\n top: 4rem;\n left: 0;\n height: 0;\n width: 100%;\n overflow: hidden;\n transition-duration: 0.2s;\n transition-property: height;\n }\n\n .open .overflow-clip {\n height: 40rem;\n }\n }\n\n /* Desktop view styles */\n @media (min-width: ${TOPNAV_MOBILE_BREAKPOINT}px) {\n .media-menu-inner {\n display: block;\n position: static;\n width: auto;\n height: 5rem;\n transition-property: none;\n }\n\n .menu-group {\n font-size: 0;\n }\n }\n `,\n ];\n }\n}\n"]}
@@ -1,16 +0,0 @@
1
- import { CSSResultGroup, LitElement, PropertyValues } from 'lit';
2
- import './ia-topnav-media-subnav.js';
3
- import { IATopNavConfig, IATopNavMenuConfig } from './models.js';
4
- export declare class MediaSlider extends LitElement {
5
- baseHost: string;
6
- config: IATopNavConfig;
7
- mediaSliderOpen: boolean;
8
- menus: IATopNavMenuConfig;
9
- selectedMenuOption: string;
10
- private previousKeydownListener;
11
- shouldUpdate(): boolean;
12
- updated(props: PropertyValues): void;
13
- render(): import("lit").TemplateResult<1>;
14
- static get styles(): CSSResultGroup;
15
- }
16
- //# sourceMappingURL=ia-topnav-media-slider.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ia-topnav-media-slider.d.ts","sourceRoot":"","sources":["../../../../src/elements/ia-topnav/ia-topnav-media-slider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,cAAc,EAAa,MAAM,KAAK,CAAC;AAC5E,OAAO,0BAA0B,CAAC;AAIlC,OAAO,EACL,cAAc,EACd,kBAAkB,EAEnB,MAAM,UAAU,CAAC;AAIlB,qBACa,WAAY,SAAQ,UAAU;IACb,QAAQ,SAAM;IACd,MAAM,EAAE,cAAc,CAAuB;IAC5C,eAAe,UAAS;IACzB,KAAK,EAAE,kBAAkB,CAAsB;IAC/C,kBAAkB,SAAW;IAEzD,OAAO,CAAC,uBAAuB,CAC6B;IAE5D,YAAY;IAWZ,OAAO,CAAC,KAAK,EAAE,cAAc;IAmB7B,MAAM;IA8EN,MAAM,KAAK,MAAM,IAAI,cAAc,CAmFlC;CACF"}
@@ -1,221 +0,0 @@
1
- import { __decorate } from "tslib";
2
- import { LitElement, css, html } from 'lit';
3
- import './ia-topnav-media-subnav.js';
4
- import KeyboardNavigation from './lib/keyboard-navigation.js';
5
- import { property } from 'lit/decorators.js';
6
- import { customElement } from '../../util/custom-element.js';
7
- import { TOPNAV_MOBILE_BREAKPOINT, } from './models.js';
8
- import { buildTopNavMenus, defaultTopNavConfig } from './data/menus.js';
9
- import themeStyles from '../../themes/theme-styles.js';
10
- let MediaSlider = class MediaSlider extends LitElement {
11
- constructor() {
12
- super(...arguments);
13
- this.baseHost = '';
14
- this.config = defaultTopNavConfig;
15
- this.mediaSliderOpen = false;
16
- this.menus = buildTopNavMenus();
17
- this.selectedMenuOption = 'texts';
18
- }
19
- shouldUpdate() {
20
- const scrollPane = this.shadowRoot
21
- ? this.shadowRoot.querySelector('.information-menu')
22
- : null;
23
- if (scrollPane) {
24
- scrollPane.scrollTop = 0;
25
- }
26
- return true;
27
- }
28
- updated(props) {
29
- if (props.has('selectedMenuOption') && this.selectedMenuOption) {
30
- const container = this.shadowRoot?.querySelector('.has-focused')?.shadowRoot;
31
- if (container) {
32
- const keyboardNavigation = new KeyboardNavigation(container, this.selectedMenuOption);
33
- if (this.previousKeydownListener) {
34
- this.removeEventListener('keydown', this.previousKeydownListener);
35
- }
36
- this.addEventListener('keydown', keyboardNavigation.handleKeyDown);
37
- this.previousKeydownListener = keyboardNavigation.handleKeyDown;
38
- }
39
- }
40
- }
41
- render() {
42
- const sliderDetailsClass = this.mediaSliderOpen ? 'open' : 'closed';
43
- return html `
44
- <div class="media-slider-container">
45
- <div class="overflow-clip ${sliderDetailsClass}">
46
- <div class="information-menu ${sliderDetailsClass}">
47
- <div class="info-box">
48
- <ia-topnav-media-subnav
49
- .baseHost=${this.baseHost}
50
- .config=${this.config}
51
- class="${this.selectedMenuOption === 'audio'
52
- ? 'has-focused'
53
- : 'hidden'}"
54
- menu="audio"
55
- .menuItems=${this.menus.audio}
56
- ></ia-topnav-media-subnav>
57
- <ia-topnav-media-subnav
58
- .baseHost=${this.baseHost}
59
- .config=${this.config}
60
- class="${this.selectedMenuOption === 'images'
61
- ? 'has-focused'
62
- : 'hidden'}"
63
- menu="images"
64
- .menuItems=${this.menus.images}
65
- ></ia-topnav-media-subnav>
66
- <ia-topnav-media-subnav
67
- .baseHost=${this.baseHost}
68
- .config=${this.config}
69
- class="${this.selectedMenuOption === 'software'
70
- ? 'has-focused'
71
- : 'hidden'}"
72
- menu="software"
73
- .menuItems=${this.menus.software}
74
- ></ia-topnav-media-subnav>
75
- <ia-topnav-media-subnav
76
- .baseHost=${this.baseHost}
77
- .config=${this.config}
78
- class="${this.selectedMenuOption === 'texts'
79
- ? 'has-focused'
80
- : 'hidden'}"
81
- menu="texts"
82
- .menuItems=${this.menus.texts}
83
- ></ia-topnav-media-subnav>
84
- <ia-topnav-media-subnav
85
- .baseHost=${this.baseHost}
86
- .config=${this.config}
87
- class="${this.selectedMenuOption === 'video'
88
- ? 'has-focused'
89
- : 'hidden'}"
90
- menu="video"
91
- .menuItems=${this.menus.video}
92
- ></ia-topnav-media-subnav>
93
- <ia-topnav-media-subnav
94
- .baseHost=${this.baseHost}
95
- .config=${this.config}
96
- class="${this.selectedMenuOption === 'web'
97
- ? 'has-focused'
98
- : 'hidden'}"
99
- menu="web"
100
- .menuItems=${this.menus.web}
101
- ></ia-topnav-media-subnav>
102
- <ia-topnav-media-subnav
103
- .baseHost=${this.baseHost}
104
- .config=${this.config}
105
- class="${this.selectedMenuOption === 'more'
106
- ? 'has-focused'
107
- : 'hidden'}"
108
- menu="more"
109
- .menuItems=${this.menus.more}
110
- ></ia-topnav-media-subnav>
111
- </div>
112
- </div>
113
- </div>
114
- </div>
115
- `;
116
- }
117
- static get styles() {
118
- return [
119
- themeStyles,
120
- css `
121
- .media-slider-container {
122
- position: relative;
123
- }
124
-
125
- .overflow-clip {
126
- display: none;
127
- position: absolute;
128
- top: 0;
129
- right: 0;
130
- left: 0;
131
- height: 0;
132
- overflow: hidden;
133
- transition: height 0.2s ease;
134
- }
135
-
136
- .information-menu {
137
- position: absolute;
138
- top: 0;
139
- right: 0;
140
- left: 0;
141
- padding: 0;
142
- height: 31.9rem;
143
- overflow-x: hidden;
144
- font-size: 1.4rem;
145
- background: var(--mediaSliderBg);
146
- }
147
-
148
- .open {
149
- display: block;
150
- }
151
-
152
- .hidden {
153
- display: none;
154
- }
155
-
156
- .info-box {
157
- padding: 1rem;
158
- }
159
-
160
- @media (max-width: ${TOPNAV_MOBILE_BREAKPOINT - 1}px) {
161
- .overflow-clip.open {
162
- display: block;
163
- height: 35.8rem;
164
- left: 4rem;
165
- top: 0;
166
- }
167
- }
168
-
169
- @media (min-width: ${TOPNAV_MOBILE_BREAKPOINT}px) {
170
- .overflow-clip {
171
- display: block;
172
- }
173
-
174
- .information-menu {
175
- left: 0;
176
- z-index: 3;
177
- height: auto;
178
- min-height: 21rem;
179
- background: var(--mediaSliderDesktopBg);
180
- transform: translate(0, -100%);
181
- transition: transform 0.2s ease;
182
- }
183
-
184
- .overflow-clip.open {
185
- height: 22rem;
186
- }
187
-
188
- .information-menu.open {
189
- transform: translate(0, 0);
190
- }
191
-
192
- .info-box {
193
- max-width: 100rem;
194
- padding: 1.5rem 0;
195
- margin: 0 auto;
196
- }
197
- }
198
- `,
199
- ];
200
- }
201
- };
202
- __decorate([
203
- property({ type: String })
204
- ], MediaSlider.prototype, "baseHost", void 0);
205
- __decorate([
206
- property({ type: Object })
207
- ], MediaSlider.prototype, "config", void 0);
208
- __decorate([
209
- property({ type: Boolean })
210
- ], MediaSlider.prototype, "mediaSliderOpen", void 0);
211
- __decorate([
212
- property({ type: Object })
213
- ], MediaSlider.prototype, "menus", void 0);
214
- __decorate([
215
- property({ type: String })
216
- ], MediaSlider.prototype, "selectedMenuOption", void 0);
217
- MediaSlider = __decorate([
218
- customElement('ia-topnav-media-slider')
219
- ], MediaSlider);
220
- export { MediaSlider };
221
- //# sourceMappingURL=ia-topnav-media-slider.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ia-topnav-media-slider.js","sourceRoot":"","sources":["../../../../src/elements/ia-topnav/ia-topnav-media-slider.ts"],"names":[],"mappings":"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","sourcesContent":["import { CSSResultGroup, LitElement, PropertyValues, css, html } from 'lit';\nimport './ia-topnav-media-subnav';\nimport KeyboardNavigation from './lib/keyboard-navigation';\nimport { property } from 'lit/decorators.js';\nimport { customElement } from '@src/util/custom-element';\nimport {\n IATopNavConfig,\n IATopNavMenuConfig,\n TOPNAV_MOBILE_BREAKPOINT,\n} from './models';\nimport { buildTopNavMenus, defaultTopNavConfig } from './data/menus';\nimport themeStyles from '@src/themes/theme-styles';\n\n@customElement('ia-topnav-media-slider')\nexport class MediaSlider extends LitElement {\n @property({ type: String }) baseHost = '';\n @property({ type: Object }) config: IATopNavConfig = defaultTopNavConfig;\n @property({ type: Boolean }) mediaSliderOpen = false;\n @property({ type: Object }) menus: IATopNavMenuConfig = buildTopNavMenus();\n @property({ type: String }) selectedMenuOption = 'texts';\n\n private previousKeydownListener: // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ((this: HTMLElement, ev: KeyboardEvent) => any) | undefined;\n\n shouldUpdate() {\n const scrollPane = this.shadowRoot\n ? this.shadowRoot.querySelector('.information-menu')\n : null;\n\n if (scrollPane) {\n scrollPane.scrollTop = 0;\n }\n return true;\n }\n\n updated(props: PropertyValues) {\n if (props.has('selectedMenuOption') && this.selectedMenuOption) {\n const container =\n this.shadowRoot?.querySelector('.has-focused')?.shadowRoot;\n if (container) {\n const keyboardNavigation = new KeyboardNavigation(\n container as unknown as HTMLElement,\n this.selectedMenuOption,\n );\n\n if (this.previousKeydownListener) {\n this.removeEventListener('keydown', this.previousKeydownListener);\n }\n this.addEventListener('keydown', keyboardNavigation.handleKeyDown);\n this.previousKeydownListener = keyboardNavigation.handleKeyDown;\n }\n }\n }\n\n render() {\n const sliderDetailsClass = this.mediaSliderOpen ? 'open' : 'closed';\n\n return html`\n <div class=\"media-slider-container\">\n <div class=\"overflow-clip ${sliderDetailsClass}\">\n <div class=\"information-menu ${sliderDetailsClass}\">\n <div class=\"info-box\">\n <ia-topnav-media-subnav\n .baseHost=${this.baseHost}\n .config=${this.config}\n class=\"${this.selectedMenuOption === 'audio'\n ? 'has-focused'\n : 'hidden'}\"\n menu=\"audio\"\n .menuItems=${this.menus.audio}\n ></ia-topnav-media-subnav>\n <ia-topnav-media-subnav\n .baseHost=${this.baseHost}\n .config=${this.config}\n class=\"${this.selectedMenuOption === 'images'\n ? 'has-focused'\n : 'hidden'}\"\n menu=\"images\"\n .menuItems=${this.menus.images}\n ></ia-topnav-media-subnav>\n <ia-topnav-media-subnav\n .baseHost=${this.baseHost}\n .config=${this.config}\n class=\"${this.selectedMenuOption === 'software'\n ? 'has-focused'\n : 'hidden'}\"\n menu=\"software\"\n .menuItems=${this.menus.software}\n ></ia-topnav-media-subnav>\n <ia-topnav-media-subnav\n .baseHost=${this.baseHost}\n .config=${this.config}\n class=\"${this.selectedMenuOption === 'texts'\n ? 'has-focused'\n : 'hidden'}\"\n menu=\"texts\"\n .menuItems=${this.menus.texts}\n ></ia-topnav-media-subnav>\n <ia-topnav-media-subnav\n .baseHost=${this.baseHost}\n .config=${this.config}\n class=\"${this.selectedMenuOption === 'video'\n ? 'has-focused'\n : 'hidden'}\"\n menu=\"video\"\n .menuItems=${this.menus.video}\n ></ia-topnav-media-subnav>\n <ia-topnav-media-subnav\n .baseHost=${this.baseHost}\n .config=${this.config}\n class=\"${this.selectedMenuOption === 'web'\n ? 'has-focused'\n : 'hidden'}\"\n menu=\"web\"\n .menuItems=${this.menus.web}\n ></ia-topnav-media-subnav>\n <ia-topnav-media-subnav\n .baseHost=${this.baseHost}\n .config=${this.config}\n class=\"${this.selectedMenuOption === 'more'\n ? 'has-focused'\n : 'hidden'}\"\n menu=\"more\"\n .menuItems=${this.menus.more}\n ></ia-topnav-media-subnav>\n </div>\n </div>\n </div>\n </div>\n `;\n }\n\n static get styles(): CSSResultGroup {\n return [\n themeStyles,\n css`\n .media-slider-container {\n position: relative;\n }\n\n .overflow-clip {\n display: none;\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n height: 0;\n overflow: hidden;\n transition: height 0.2s ease;\n }\n\n .information-menu {\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n padding: 0;\n height: 31.9rem;\n overflow-x: hidden;\n font-size: 1.4rem;\n background: var(--mediaSliderBg);\n }\n\n .open {\n display: block;\n }\n\n .hidden {\n display: none;\n }\n\n .info-box {\n padding: 1rem;\n }\n\n @media (max-width: ${TOPNAV_MOBILE_BREAKPOINT - 1}px) {\n .overflow-clip.open {\n display: block;\n height: 35.8rem;\n left: 4rem;\n top: 0;\n }\n }\n\n @media (min-width: ${TOPNAV_MOBILE_BREAKPOINT}px) {\n .overflow-clip {\n display: block;\n }\n\n .information-menu {\n left: 0;\n z-index: 3;\n height: auto;\n min-height: 21rem;\n background: var(--mediaSliderDesktopBg);\n transform: translate(0, -100%);\n transition: transform 0.2s ease;\n }\n\n .overflow-clip.open {\n height: 22rem;\n }\n\n .information-menu.open {\n transform: translate(0, 0);\n }\n\n .info-box {\n max-width: 100rem;\n padding: 1.5rem 0;\n margin: 0 auto;\n }\n }\n `,\n ];\n }\n}\n"]}
@@ -1,20 +0,0 @@
1
- import { CSSResultGroup } from 'lit';
2
- import TrackedElement from './tracked-element.js';
3
- import './ia-topnav-wayback-slider.js';
4
- import './ia-topnav-more-slider.js';
5
- import { IATopNavConfig, IATopNavLink, IATopNavMediaMenu } from './models.js';
6
- export declare class MediaSubnav extends TrackedElement {
7
- baseHost: string;
8
- config: IATopNavConfig;
9
- menu: '' | 'web' | 'more' | 'audio' | 'images' | 'software' | 'texts' | 'video';
10
- menuItems: IATopNavMediaMenu;
11
- private links;
12
- shouldUpdate(): boolean;
13
- render(): import("lit").TemplateResult<1>;
14
- static get defaultLinks(): IATopNavMediaMenu;
15
- analyticsEvent(title: string): string;
16
- get iconLinks(): import("lit").TemplateResult<1>[];
17
- renderLinks(links: IATopNavLink[]): import("lit").TemplateResult<1>[];
18
- static get styles(): CSSResultGroup;
19
- }
20
- //# sourceMappingURL=ia-topnav-media-subnav.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ia-topnav-media-subnav.d.ts","sourceRoot":"","sources":["../../../../src/elements/ia-topnav/ia-topnav-media-subnav.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAa,MAAM,KAAK,CAAC;AAGhD,OAAO,cAAc,MAAM,mBAAmB,CAAC;AAC/C,OAAO,4BAA4B,CAAC;AACpC,OAAO,yBAAyB,CAAC;AAIjC,OAAO,EACL,cAAc,EACd,YAAY,EACZ,iBAAiB,EAElB,MAAM,UAAU,CAAC;AAMlB,qBAEa,WAAY,SAAQ,cAAc;IACjB,QAAQ,SAAM;IACd,MAAM,EAAE,cAAc,CAAuB;IAC7C,IAAI,EAC5B,EAAE,GACF,KAAK,GACL,MAAM,GACN,OAAO,GACP,QAAQ,GACR,UAAU,GACV,OAAO,GACP,OAAO,CAAM;IACW,SAAS,EAAE,iBAAiB,CAC7B;IAE3B,OAAO,CAAC,KAAK,CAA+C;IAE5D,YAAY;IAOZ,MAAM;IA8CN,MAAM,KAAK,YAAY,IAAI,iBAAiB,CAU3C;IAED,cAAc,CAAC,KAAK,EAAE,MAAM;IAI5B,IAAI,SAAS,sCAWZ;IAED,WAAW,CAAC,KAAK,EAAE,YAAY,EAAE;IAejC,MAAM,KAAK,MAAM,IAAI,cAAc,CA8JlC;CACF"}