@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.
- package/README.md +2 -2
- package/dist/src/elements/ia-radio-player/ia-radio-player.d.ts +2 -0
- package/dist/src/elements/ia-radio-player/ia-radio-player.d.ts.map +1 -1
- package/dist/src/elements/ia-radio-player/ia-radio-player.js +6 -1
- package/dist/src/elements/ia-radio-player/ia-radio-player.js.map +1 -1
- package/dist/src/elements/ia-status-indicator/ia-status-indicator.d.ts +16 -1
- package/dist/src/elements/ia-status-indicator/ia-status-indicator.d.ts.map +1 -1
- package/dist/src/elements/ia-status-indicator/ia-status-indicator.js +136 -8
- package/dist/src/elements/ia-status-indicator/ia-status-indicator.js.map +1 -1
- package/package.json +3 -5
- package/dist/src/elements/ia-topnav/assets/img/icon-audio.d.ts +0 -3
- package/dist/src/elements/ia-topnav/assets/img/icon-audio.d.ts.map +0 -1
- package/dist/src/elements/ia-topnav/assets/img/icon-audio.js +0 -28
- package/dist/src/elements/ia-topnav/assets/img/icon-audio.js.map +0 -1
- package/dist/src/elements/ia-topnav/assets/img/icon-close.d.ts +0 -3
- package/dist/src/elements/ia-topnav/assets/img/icon-close.d.ts.map +0 -1
- package/dist/src/elements/ia-topnav/assets/img/icon-close.js +0 -20
- package/dist/src/elements/ia-topnav/assets/img/icon-close.js.map +0 -1
- package/dist/src/elements/ia-topnav/assets/img/icon-donate-unpadded.d.ts +0 -3
- package/dist/src/elements/ia-topnav/assets/img/icon-donate-unpadded.d.ts.map +0 -1
- package/dist/src/elements/ia-topnav/assets/img/icon-donate-unpadded.js +0 -19
- package/dist/src/elements/ia-topnav/assets/img/icon-donate-unpadded.js.map +0 -1
- package/dist/src/elements/ia-topnav/assets/img/icon-donate.d.ts +0 -3
- package/dist/src/elements/ia-topnav/assets/img/icon-donate.d.ts.map +0 -1
- package/dist/src/elements/ia-topnav/assets/img/icon-donate.js +0 -18
- package/dist/src/elements/ia-topnav/assets/img/icon-donate.js.map +0 -1
- package/dist/src/elements/ia-topnav/assets/img/icon-ellipses.d.ts +0 -3
- package/dist/src/elements/ia-topnav/assets/img/icon-ellipses.d.ts.map +0 -1
- package/dist/src/elements/ia-topnav/assets/img/icon-ellipses.js +0 -19
- package/dist/src/elements/ia-topnav/assets/img/icon-ellipses.js.map +0 -1
- package/dist/src/elements/ia-topnav/assets/img/icon-ia-logo.d.ts +0 -3
- package/dist/src/elements/ia-topnav/assets/img/icon-ia-logo.d.ts.map +0 -1
- package/dist/src/elements/ia-topnav/assets/img/icon-ia-logo.js +0 -30
- package/dist/src/elements/ia-topnav/assets/img/icon-ia-logo.js.map +0 -1
- package/dist/src/elements/ia-topnav/assets/img/icon-images.d.ts +0 -3
- package/dist/src/elements/ia-topnav/assets/img/icon-images.d.ts.map +0 -1
- package/dist/src/elements/ia-topnav/assets/img/icon-images.js +0 -19
- package/dist/src/elements/ia-topnav/assets/img/icon-images.js.map +0 -1
- package/dist/src/elements/ia-topnav/assets/img/icon-search.d.ts +0 -3
- package/dist/src/elements/ia-topnav/assets/img/icon-search.d.ts.map +0 -1
- package/dist/src/elements/ia-topnav/assets/img/icon-search.js +0 -19
- package/dist/src/elements/ia-topnav/assets/img/icon-search.js.map +0 -1
- package/dist/src/elements/ia-topnav/assets/img/icon-software.d.ts +0 -3
- package/dist/src/elements/ia-topnav/assets/img/icon-software.d.ts.map +0 -1
- package/dist/src/elements/ia-topnav/assets/img/icon-software.js +0 -18
- package/dist/src/elements/ia-topnav/assets/img/icon-software.js.map +0 -1
- package/dist/src/elements/ia-topnav/assets/img/icon-texts.d.ts +0 -3
- package/dist/src/elements/ia-topnav/assets/img/icon-texts.d.ts.map +0 -1
- package/dist/src/elements/ia-topnav/assets/img/icon-texts.js +0 -18
- package/dist/src/elements/ia-topnav/assets/img/icon-texts.js.map +0 -1
- package/dist/src/elements/ia-topnav/assets/img/icon-upload-unpadded.d.ts +0 -3
- package/dist/src/elements/ia-topnav/assets/img/icon-upload-unpadded.d.ts.map +0 -1
- package/dist/src/elements/ia-topnav/assets/img/icon-upload-unpadded.js +0 -18
- package/dist/src/elements/ia-topnav/assets/img/icon-upload-unpadded.js.map +0 -1
- package/dist/src/elements/ia-topnav/assets/img/icon-upload.d.ts +0 -3
- package/dist/src/elements/ia-topnav/assets/img/icon-upload.d.ts.map +0 -1
- package/dist/src/elements/ia-topnav/assets/img/icon-upload.js +0 -21
- package/dist/src/elements/ia-topnav/assets/img/icon-upload.js.map +0 -1
- package/dist/src/elements/ia-topnav/assets/img/icon-user.d.ts +0 -3
- package/dist/src/elements/ia-topnav/assets/img/icon-user.d.ts.map +0 -1
- package/dist/src/elements/ia-topnav/assets/img/icon-user.js +0 -19
- package/dist/src/elements/ia-topnav/assets/img/icon-user.js.map +0 -1
- package/dist/src/elements/ia-topnav/assets/img/icon-video.d.ts +0 -3
- package/dist/src/elements/ia-topnav/assets/img/icon-video.d.ts.map +0 -1
- package/dist/src/elements/ia-topnav/assets/img/icon-video.js +0 -19
- package/dist/src/elements/ia-topnav/assets/img/icon-video.js.map +0 -1
- package/dist/src/elements/ia-topnav/assets/img/icon-web.d.ts +0 -3
- package/dist/src/elements/ia-topnav/assets/img/icon-web.d.ts.map +0 -1
- package/dist/src/elements/ia-topnav/assets/img/icon-web.js +0 -19
- package/dist/src/elements/ia-topnav/assets/img/icon-web.js.map +0 -1
- package/dist/src/elements/ia-topnav/assets/img/icon.d.ts +0 -6
- package/dist/src/elements/ia-topnav/assets/img/icon.d.ts.map +0 -1
- package/dist/src/elements/ia-topnav/assets/img/icon.js +0 -17
- package/dist/src/elements/ia-topnav/assets/img/icon.js.map +0 -1
- package/dist/src/elements/ia-topnav/assets/img/icons.d.ts +0 -19
- package/dist/src/elements/ia-topnav/assets/img/icons.d.ts.map +0 -1
- package/dist/src/elements/ia-topnav/assets/img/icons.js +0 -33
- package/dist/src/elements/ia-topnav/assets/img/icons.js.map +0 -1
- package/dist/src/elements/ia-topnav/assets/img/wayback-logo.d.ts +0 -3
- package/dist/src/elements/ia-topnav/assets/img/wayback-logo.d.ts.map +0 -1
- package/dist/src/elements/ia-topnav/assets/img/wayback-logo.js +0 -21
- package/dist/src/elements/ia-topnav/assets/img/wayback-logo.js.map +0 -1
- package/dist/src/elements/ia-topnav/assets/img/wordmark-stacked.d.ts +0 -3
- package/dist/src/elements/ia-topnav/assets/img/wordmark-stacked.d.ts.map +0 -1
- package/dist/src/elements/ia-topnav/assets/img/wordmark-stacked.js +0 -13
- package/dist/src/elements/ia-topnav/assets/img/wordmark-stacked.js.map +0 -1
- package/dist/src/elements/ia-topnav/data/menus.d.ts +0 -17
- package/dist/src/elements/ia-topnav/data/menus.d.ts.map +0 -1
- package/dist/src/elements/ia-topnav/data/menus.js +0 -680
- package/dist/src/elements/ia-topnav/data/menus.js.map +0 -1
- package/dist/src/elements/ia-topnav/dropdown-menu.d.ts +0 -21
- package/dist/src/elements/ia-topnav/dropdown-menu.d.ts.map +0 -1
- package/dist/src/elements/ia-topnav/dropdown-menu.js +0 -315
- package/dist/src/elements/ia-topnav/dropdown-menu.js.map +0 -1
- package/dist/src/elements/ia-topnav/ia-topnav-desktop-subnav.d.ts +0 -11
- package/dist/src/elements/ia-topnav/ia-topnav-desktop-subnav.d.ts.map +0 -1
- package/dist/src/elements/ia-topnav/ia-topnav-desktop-subnav.js +0 -89
- package/dist/src/elements/ia-topnav/ia-topnav-desktop-subnav.js.map +0 -1
- package/dist/src/elements/ia-topnav/ia-topnav-icon-hamburger.d.ts +0 -6
- package/dist/src/elements/ia-topnav/ia-topnav-icon-hamburger.d.ts.map +0 -1
- package/dist/src/elements/ia-topnav/ia-topnav-icon-hamburger.js +0 -47
- package/dist/src/elements/ia-topnav/ia-topnav-icon-hamburger.js.map +0 -1
- package/dist/src/elements/ia-topnav/ia-topnav-login-button.d.ts +0 -20
- package/dist/src/elements/ia-topnav/ia-topnav-login-button.d.ts.map +0 -1
- package/dist/src/elements/ia-topnav/ia-topnav-login-button.js +0 -183
- package/dist/src/elements/ia-topnav/ia-topnav-login-button.js.map +0 -1
- package/dist/src/elements/ia-topnav/ia-topnav-media-button.d.ts +0 -31
- package/dist/src/elements/ia-topnav/ia-topnav-media-button.d.ts.map +0 -1
- package/dist/src/elements/ia-topnav/ia-topnav-media-button.js +0 -287
- package/dist/src/elements/ia-topnav/ia-topnav-media-button.js.map +0 -1
- package/dist/src/elements/ia-topnav/ia-topnav-media-menu.d.ts +0 -21
- package/dist/src/elements/ia-topnav/ia-topnav-media-menu.d.ts.map +0 -1
- package/dist/src/elements/ia-topnav/ia-topnav-media-menu.js +0 -222
- package/dist/src/elements/ia-topnav/ia-topnav-media-menu.js.map +0 -1
- package/dist/src/elements/ia-topnav/ia-topnav-media-slider.d.ts +0 -16
- package/dist/src/elements/ia-topnav/ia-topnav-media-slider.d.ts.map +0 -1
- package/dist/src/elements/ia-topnav/ia-topnav-media-slider.js +0 -221
- package/dist/src/elements/ia-topnav/ia-topnav-media-slider.js.map +0 -1
- package/dist/src/elements/ia-topnav/ia-topnav-media-subnav.d.ts +0 -20
- package/dist/src/elements/ia-topnav/ia-topnav-media-subnav.d.ts.map +0 -1
- package/dist/src/elements/ia-topnav/ia-topnav-media-subnav.js +0 -285
- package/dist/src/elements/ia-topnav/ia-topnav-media-subnav.js.map +0 -1
- package/dist/src/elements/ia-topnav/ia-topnav-more-slider.d.ts +0 -12
- package/dist/src/elements/ia-topnav/ia-topnav-more-slider.d.ts.map +0 -1
- package/dist/src/elements/ia-topnav/ia-topnav-more-slider.js +0 -65
- package/dist/src/elements/ia-topnav/ia-topnav-more-slider.js.map +0 -1
- package/dist/src/elements/ia-topnav/ia-topnav-primary-nav.d.ts +0 -53
- package/dist/src/elements/ia-topnav/ia-topnav-primary-nav.d.ts.map +0 -1
- package/dist/src/elements/ia-topnav/ia-topnav-primary-nav.js +0 -653
- package/dist/src/elements/ia-topnav/ia-topnav-primary-nav.js.map +0 -1
- package/dist/src/elements/ia-topnav/ia-topnav-save-page-form.d.ts +0 -12
- package/dist/src/elements/ia-topnav/ia-topnav-save-page-form.d.ts.map +0 -1
- package/dist/src/elements/ia-topnav/ia-topnav-save-page-form.js +0 -128
- package/dist/src/elements/ia-topnav/ia-topnav-save-page-form.js.map +0 -1
- package/dist/src/elements/ia-topnav/ia-topnav-signed-out-dropdown.d.ts +0 -4
- package/dist/src/elements/ia-topnav/ia-topnav-signed-out-dropdown.d.ts.map +0 -1
- package/dist/src/elements/ia-topnav/ia-topnav-signed-out-dropdown.js +0 -10
- package/dist/src/elements/ia-topnav/ia-topnav-signed-out-dropdown.js.map +0 -1
- package/dist/src/elements/ia-topnav/ia-topnav-user-menu.d.ts +0 -7
- package/dist/src/elements/ia-topnav/ia-topnav-user-menu.d.ts.map +0 -1
- package/dist/src/elements/ia-topnav/ia-topnav-user-menu.js +0 -39
- package/dist/src/elements/ia-topnav/ia-topnav-user-menu.js.map +0 -1
- package/dist/src/elements/ia-topnav/ia-topnav-wayback-search.d.ts +0 -10
- package/dist/src/elements/ia-topnav/ia-topnav-wayback-search.d.ts.map +0 -1
- package/dist/src/elements/ia-topnav/ia-topnav-wayback-search.js +0 -64
- package/dist/src/elements/ia-topnav/ia-topnav-wayback-search.js.map +0 -1
- package/dist/src/elements/ia-topnav/ia-topnav-wayback-slider.d.ts +0 -20
- package/dist/src/elements/ia-topnav/ia-topnav-wayback-slider.d.ts.map +0 -1
- package/dist/src/elements/ia-topnav/ia-topnav-wayback-slider.js +0 -131
- package/dist/src/elements/ia-topnav/ia-topnav-wayback-slider.js.map +0 -1
- package/dist/src/elements/ia-topnav/ia-topnav.d.ts +0 -85
- package/dist/src/elements/ia-topnav/ia-topnav.d.ts.map +0 -1
- package/dist/src/elements/ia-topnav/ia-topnav.js +0 -434
- package/dist/src/elements/ia-topnav/ia-topnav.js.map +0 -1
- package/dist/src/elements/ia-topnav/lib/helpers.d.ts +0 -13
- package/dist/src/elements/ia-topnav/lib/helpers.d.ts.map +0 -1
- package/dist/src/elements/ia-topnav/lib/helpers.js +0 -24
- package/dist/src/elements/ia-topnav/lib/helpers.js.map +0 -1
- package/dist/src/elements/ia-topnav/lib/keyboard-navigation.d.ts +0 -46
- package/dist/src/elements/ia-topnav/lib/keyboard-navigation.d.ts.map +0 -1
- package/dist/src/elements/ia-topnav/lib/keyboard-navigation.js +0 -136
- package/dist/src/elements/ia-topnav/lib/keyboard-navigation.js.map +0 -1
- package/dist/src/elements/ia-topnav/models.d.ts +0 -59
- package/dist/src/elements/ia-topnav/models.d.ts.map +0 -1
- package/dist/src/elements/ia-topnav/models.js +0 -10
- package/dist/src/elements/ia-topnav/models.js.map +0 -1
- package/dist/src/elements/ia-topnav/subnav-list-styles.d.ts +0 -2
- package/dist/src/elements/ia-topnav/subnav-list-styles.d.ts.map +0 -1
- package/dist/src/elements/ia-topnav/subnav-list-styles.js +0 -49
- package/dist/src/elements/ia-topnav/subnav-list-styles.js.map +0 -1
- package/dist/src/elements/ia-topnav/tracked-element.d.ts +0 -6
- package/dist/src/elements/ia-topnav/tracked-element.d.ts.map +0 -1
- package/dist/src/elements/ia-topnav/tracked-element.js +0 -29
- package/dist/src/elements/ia-topnav/tracked-element.js.map +0 -1
- package/dist/src/elements/ia-wayback-search-form/ia-wayback-search-form.d.ts +0 -24
- package/dist/src/elements/ia-wayback-search-form/ia-wayback-search-form.d.ts.map +0 -1
- package/dist/src/elements/ia-wayback-search-form/ia-wayback-search-form.js +0 -240
- package/dist/src/elements/ia-wayback-search-form/ia-wayback-search-form.js.map +0 -1
- package/dist/src/elements/index.d.ts +0 -41
- package/dist/src/elements/index.d.ts.map +0 -1
- package/dist/src/elements/index.js +0 -41
- 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"}
|