@internetarchive/ia-topnav 1.3.10-webdev-7394.0 → 1.3.10-webdev-7394.2

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 (38) hide show
  1. package/demo/app-root.ts +91 -94
  2. package/dist/demo/app-root.d.ts +5 -0
  3. package/dist/demo/app-root.js +95 -79
  4. package/dist/demo/app-root.js.map +1 -1
  5. package/dist/src/data/menus.js +46 -38
  6. package/dist/src/data/menus.js.map +1 -1
  7. package/dist/src/dropdown-menu.js +3 -2
  8. package/dist/src/dropdown-menu.js.map +1 -1
  9. package/dist/src/ia-topnav.d.ts +0 -1
  10. package/dist/src/ia-topnav.js +1 -4
  11. package/dist/src/ia-topnav.js.map +1 -1
  12. package/dist/src/media-slider.js +1 -1
  13. package/dist/src/media-slider.js.map +1 -1
  14. package/dist/src/media-subnav.js +8 -8
  15. package/dist/src/media-subnav.js.map +1 -1
  16. package/dist/src/models.d.ts +1 -1
  17. package/dist/src/models.js.map +1 -1
  18. package/dist/src/nav-search.d.ts +1 -1
  19. package/dist/src/nav-search.js +1 -0
  20. package/dist/src/nav-search.js.map +1 -1
  21. package/dist/test/dropdown-menu.test.js +1 -1
  22. package/dist/test/dropdown-menu.test.js.map +1 -1
  23. package/dist/test/primary-nav.test.js +0 -10
  24. package/dist/test/primary-nav.test.js.map +1 -1
  25. package/package.json +1 -1
  26. package/src/data/menus.ts +46 -38
  27. package/src/dropdown-menu.ts +3 -2
  28. package/src/ia-topnav.ts +1 -5
  29. package/src/media-slider.ts +1 -1
  30. package/src/media-subnav.ts +8 -8
  31. package/src/models.ts +1 -1
  32. package/src/nav-search.ts +2 -1
  33. package/test/dropdown-menu.test.ts +1 -3
  34. package/test/primary-nav.test.ts +0 -16
  35. package/dist/test/assets/img/user.test.d.ts +0 -1
  36. package/dist/test/assets/img/user.test.js +0 -12
  37. package/dist/test/assets/img/user.test.js.map +0 -1
  38. package/test/assets/img/user.test.ts +0 -15
@@ -1 +1 @@
1
- {"version":3,"file":"primary-nav.test.js","sourceRoot":"","sources":["../../test/primary-nav.test.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n html,\n fixture,\n expect,\n fixtureCleanup,\n elementUpdated,\n} from '@open-wc/testing';\n\nimport '../src/primary-nav';\nimport { IATopNavConfig, IATopNavSecondIdentitySlotMode } from '../src/models';\nimport { PrimaryNav } from '../src/primary-nav';\n\nconst component = ({\n baseHost = 'archive.org',\n username = '',\n screenName = '',\n hideSearch = false,\n config = {},\n secondIdentitySlotMode = 'allow',\n}: {\n baseHost?: string;\n username?: string;\n screenName?: string;\n hideSearch?: boolean;\n config?: IATopNavConfig;\n secondIdentitySlotMode?: IATopNavSecondIdentitySlotMode;\n}) =>\n html` <primary-nav\n .baseHost=${baseHost}\n .username=${username}\n .screenName=${screenName}\n ?hideSearch=${hideSearch}\n .config=${config}\n .secondIdentitySlotMode=${secondIdentitySlotMode}\n ></primary-nav>`;\n\nafterEach(() => {\n fixtureCleanup();\n});\n\ndescribe('<primary-nav>', () => {\n it('renders the login link when no username present', async () => {\n const el = await fixture<PrimaryNav>(\n component({\n baseHost: 'archive.org',\n username: '',\n }),\n );\n\n expect(el.shadowRoot?.querySelector('login-button')).to.not.be.undefined;\n });\n\n it('does not render search menu toggle and search form if hideSearch true', async () => {\n const el = await fixture<PrimaryNav>(\n component({\n baseHost: 'archive.org',\n username: 'shaneriley',\n screenName: 'shaneriley',\n hideSearch: true,\n }),\n );\n\n expect(el.shadowRoot?.querySelector('.search-trigger')).to.equal(null);\n expect(el.shadowRoot?.querySelector('nav-search')).to.equal(null);\n });\n\n it('truncates a long screenname', async () => {\n const el = await fixture<PrimaryNav>(\n component({\n baseHost: 'archive.org',\n username: 'boop',\n screenName: 'somesuperlongscreenname',\n }),\n );\n\n const usernameSpan = el.shadowRoot?.querySelector(\n '.screen-name',\n ) as HTMLSpanElement;\n\n expect(usernameSpan.innerText).to.equal('somesuper…');\n });\n\n it('opens a slot with `secondIdentitySlotMode`', async () => {\n const el = await fixture<PrimaryNav>(\n component({\n baseHost: 'archive.org',\n username: 'boop',\n screenName: 'somesuperlongscreenname',\n secondIdentitySlotMode: 'allow',\n }),\n );\n\n const brandingBlock = el.shadowRoot?.querySelector('div.branding');\n expect(brandingBlock?.getAttribute('class')).to.contain(\n 'branding second-logo',\n );\n\n const slot = brandingBlock?.querySelector('slot');\n expect(slot).to.exist;\n expect(slot?.getAttribute('name')).to.equal('opt-sec-logo');\n\n el.secondIdentitySlotMode = '';\n await elementUpdated(el);\n const noSlotBrandingBlock = el.shadowRoot?.querySelector('div.branding');\n expect(noSlotBrandingBlock?.getAttribute('class')).to.contain('branding');\n\n const noSlot = noSlotBrandingBlock?.querySelector('slot');\n expect(noSlot).to.not.exist;\n });\n});\n"]}
1
+ {"version":3,"file":"primary-nav.test.js","sourceRoot":"","sources":["../../test/primary-nav.test.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n html,\n fixture,\n expect,\n fixtureCleanup,\n elementUpdated,\n} from '@open-wc/testing';\n\nimport '../src/primary-nav';\nimport { IATopNavConfig, IATopNavSecondIdentitySlotMode } from '../src/models';\nimport { PrimaryNav } from '../src/primary-nav';\n\nconst component = ({\n baseHost = 'archive.org',\n username = '',\n screenName = '',\n hideSearch = false,\n config = {},\n secondIdentitySlotMode = 'allow',\n}: {\n baseHost?: string;\n username?: string;\n screenName?: string;\n hideSearch?: boolean;\n config?: IATopNavConfig;\n secondIdentitySlotMode?: IATopNavSecondIdentitySlotMode;\n}) =>\n html` <primary-nav\n .baseHost=${baseHost}\n .username=${username}\n .screenName=${screenName}\n ?hideSearch=${hideSearch}\n .config=${config}\n .secondIdentitySlotMode=${secondIdentitySlotMode}\n ></primary-nav>`;\n\nafterEach(() => {\n fixtureCleanup();\n});\n\ndescribe('<primary-nav>', () => {\n it('renders the login link when no username present', async () => {\n const el = await fixture<PrimaryNav>(\n component({\n baseHost: 'archive.org',\n username: '',\n }),\n );\n\n expect(el.shadowRoot?.querySelector('login-button')).to.not.be.undefined;\n });\n\n it('does not render search menu toggle and search form if hideSearch true', async () => {\n const el = await fixture<PrimaryNav>(\n component({\n baseHost: 'archive.org',\n username: 'shaneriley',\n screenName: 'shaneriley',\n hideSearch: true,\n }),\n );\n\n expect(el.shadowRoot?.querySelector('.search-trigger')).to.equal(null);\n expect(el.shadowRoot?.querySelector('nav-search')).to.equal(null);\n });\n\n it('opens a slot with `secondIdentitySlotMode`', async () => {\n const el = await fixture<PrimaryNav>(\n component({\n baseHost: 'archive.org',\n username: 'boop',\n screenName: 'somesuperlongscreenname',\n secondIdentitySlotMode: 'allow',\n }),\n );\n\n const brandingBlock = el.shadowRoot?.querySelector('div.branding');\n expect(brandingBlock?.getAttribute('class')).to.contain(\n 'branding second-logo',\n );\n\n const slot = brandingBlock?.querySelector('slot');\n expect(slot).to.exist;\n expect(slot?.getAttribute('name')).to.equal('opt-sec-logo');\n\n el.secondIdentitySlotMode = '';\n await elementUpdated(el);\n const noSlotBrandingBlock = el.shadowRoot?.querySelector('div.branding');\n expect(noSlotBrandingBlock?.getAttribute('class')).to.contain('branding');\n\n const noSlot = noSlotBrandingBlock?.querySelector('slot');\n expect(noSlot).to.not.exist;\n });\n});\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@internetarchive/ia-topnav",
3
- "version": "1.3.10-webdev-7394.0",
3
+ "version": "1.3.10-webdev-7394.2",
4
4
  "description": "Top nav for Internet Archive",
5
5
  "license": "AGPL-3.0-only",
6
6
  "main": "dist/index.js",
package/src/data/menus.ts CHANGED
@@ -157,44 +157,52 @@ export function buildTopNavMenus(
157
157
  browserExtensionsLinks: [],
158
158
  archiveItLinks: [],
159
159
  },
160
- more: [
161
- {
162
- title: 'About',
163
- url: `${baseHost}/about/`,
164
- },
165
- {
166
- title: 'Blog',
167
- url: 'https://blog.archive.org',
168
- },
169
- {
170
- title: 'Projects',
171
- url: `${baseHost}/projects/`,
172
- },
173
- {
174
- title: 'Help',
175
- url: `${baseHost}/about/faqs.php`,
176
- },
177
- {
178
- title: 'Donate',
179
- url: `${baseHost}/donate?origin=iawww-TopNavDonateButton`,
180
- },
181
- {
182
- title: 'Contact',
183
- url: `${baseHost}/about/contact`,
184
- },
185
- {
186
- title: 'Jobs',
187
- url: `${baseHost}/about/jobs`,
188
- },
189
- {
190
- title: 'Volunteer',
191
- url: `${baseHost}/about/volunteer-positions`,
192
- },
193
- {
194
- title: 'People',
195
- url: `${baseHost}/about/bios`,
196
- },
197
- ],
160
+ more: {
161
+ links: [
162
+ {
163
+ title: 'About',
164
+ url: `${baseHost}/about/`,
165
+ },
166
+ {
167
+ title: 'Blog',
168
+ url: 'https://blog.archive.org',
169
+ },
170
+ {
171
+ title: 'Projects',
172
+ url: `${baseHost}/projects/`,
173
+ },
174
+ {
175
+ title: 'Help',
176
+ url: `${baseHost}/about/faqs.php`,
177
+ },
178
+ {
179
+ title: 'Donate',
180
+ url: `${baseHost}/donate?origin=iawww-TopNavDonateButton`,
181
+ },
182
+ {
183
+ title: 'Contact',
184
+ url: `${baseHost}/about/contact`,
185
+ },
186
+ {
187
+ title: 'Jobs',
188
+ url: `${baseHost}/about/jobs`,
189
+ },
190
+ {
191
+ title: 'Volunteer',
192
+ url: `${baseHost}/about/volunteer-positions`,
193
+ },
194
+ {
195
+ title: 'People',
196
+ url: `${baseHost}/about/bios`,
197
+ },
198
+ ],
199
+ heading: '',
200
+ iconLinks: [],
201
+ featuredLinks: [],
202
+ mobileAppsLinks: [],
203
+ browserExtensionsLinks: [],
204
+ archiveItLinks: []
205
+ },
198
206
  software: {
199
207
  heading: 'Software',
200
208
  iconLinks: [
@@ -8,6 +8,7 @@ import { makeBooleanString } from './lib/makeBooleanString';
8
8
  import { IATopNavConfig, IATopNavLink } from './models';
9
9
  import dropdownMenuCSS from './styles/dropdown-menu';
10
10
  import TrackedElement from './tracked-element';
11
+ import { ifDefined } from 'lit/directives/if-defined.js';
11
12
 
12
13
  export default class DropdownMenu extends TrackedElement {
13
14
  @property({ type: String }) baseHost = '';
@@ -56,8 +57,8 @@ export default class DropdownMenu extends TrackedElement {
56
57
  dropdownLink(link: IATopNavLink): TemplateResult {
57
58
  const calloutText = this.config?.callouts?.[link.title];
58
59
  return html`<a
59
- .href="${formatUrl(link.url, this.baseHost)}"
60
- .class="${link.class}"
60
+ href="${formatUrl(link.url, this.baseHost)}"
61
+ class=${ifDefined(link.class)}
61
62
  tabindex="${this.open ? '' : '-1'}"
62
63
  @click=${this.trackClick}
63
64
  data-event-click-tracking="${this.config
package/src/ia-topnav.ts CHANGED
@@ -245,10 +245,6 @@ export default class IATopNav extends LitElement {
245
245
  : [basicItems];
246
246
  }
247
247
 
248
- get desktopSubnavMenuItems() {
249
- return this.menus.more;
250
- }
251
-
252
248
  get allowSecondaryIcon() {
253
249
  return this.secondIdentitySlotMode === 'allow';
254
250
  }
@@ -314,7 +310,7 @@ export default class IATopNav extends LitElement {
314
310
  ></search-menu>
315
311
  <desktop-subnav
316
312
  .baseHost=${this.normalizedBaseHost}
317
- .menuItems=${this.desktopSubnavMenuItems}
313
+ .menuItems=${this.menus.more.links}
318
314
  @focus=${this.closeMenus}
319
315
  ></desktop-subnav>
320
316
  <div
@@ -119,7 +119,7 @@ export class MediaSlider extends LitElement {
119
119
  ? 'has-focused'
120
120
  : 'hidden'}"
121
121
  menu="more"
122
- .menuItems=${this.menus.web}
122
+ .menuItems=${this.menus.more}
123
123
  ></media-subnav>
124
124
  </div>
125
125
  </div>
@@ -103,14 +103,14 @@ export class MediaSubnav extends TrackedElement {
103
103
  ></wayback-slider>`;
104
104
  }
105
105
 
106
- // if (this.menu === 'more') {
107
- // return html` <more-slider
108
- // .baseHost=${this.baseHost}
109
- // .config=${this.config}
110
- // .menuItems=${this.menuItems}
111
- // >
112
- // </more-slider>`;
113
- // }
106
+ if (this.menu === 'more') {
107
+ return html` <more-slider
108
+ .baseHost=${this.baseHost}
109
+ .config=${this.config}
110
+ .menuItems=${this.menuItems.links}
111
+ >
112
+ </more-slider>`;
113
+ }
114
114
 
115
115
  return html`
116
116
  <h3>${this.links.heading}</h3>
package/src/models.ts CHANGED
@@ -76,7 +76,7 @@ export interface IATopNavMediaMenu {
76
76
  export interface IATopNavMenuConfig {
77
77
  audio: IATopNavMediaMenu;
78
78
  images: IATopNavMediaMenu;
79
- more: IATopNavLink[];
79
+ more: IATopNavMediaMenu;
80
80
  signedOut: IATopNavLink[];
81
81
  software: IATopNavMediaMenu;
82
82
  texts: IATopNavMediaMenu;
package/src/nav-search.ts CHANGED
@@ -12,13 +12,14 @@ import { IATopNavConfig } from './models';
12
12
  export class NavSearch extends TrackedElement {
13
13
  @property({ type: String }) baseHost = '';
14
14
  @property({ type: Object }) config: IATopNavConfig = defaultTopNavConfig;
15
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
15
16
  @property({ type: Object }) locationHandler = (url: string) => {};
16
17
  @property({ type: Boolean }) open = false;
17
18
  @property({ type: String }) openMenu = '';
18
19
  @property({ type: String }) searchIn = '';
19
20
  @property({ type: String }) searchQuery = '';
20
21
 
21
- @query('[name=query]') queryInput: HTMLInputElement | undefined;
22
+ @query('[name=query]') private queryInput?: HTMLInputElement;
22
23
 
23
24
  static get styles() {
24
25
  return navSearchCSS;
@@ -9,15 +9,13 @@ const component = html`<dropdown-menu></dropdown-menu>`;
9
9
  describe('<dropdown-menu>', () => {
10
10
  it('sets default properties', async () => {
11
11
  const el = await fixture<DropdownMenu>(component);
12
-
13
- expect(el.animate).to.be.false;
12
+ expect(el.animated).to.be.false;
14
13
  expect(el.open).to.be.false;
15
14
  expect(el.menuItems.length).to.equal(0);
16
15
  });
17
16
 
18
17
  it('renders a closed class if component is animating', async () => {
19
18
  const el = await fixture<DropdownMenu>(component);
20
-
21
19
  el.animated = true;
22
20
  await el.updateComplete;
23
21
  expect(el.shadowRoot?.querySelector('.closed')).to.not.be.undefined;
@@ -64,22 +64,6 @@ describe('<primary-nav>', () => {
64
64
  expect(el.shadowRoot?.querySelector('nav-search')).to.equal(null);
65
65
  });
66
66
 
67
- it('truncates a long screenname', async () => {
68
- const el = await fixture<PrimaryNav>(
69
- component({
70
- baseHost: 'archive.org',
71
- username: 'boop',
72
- screenName: 'somesuperlongscreenname',
73
- }),
74
- );
75
-
76
- const usernameSpan = el.shadowRoot?.querySelector(
77
- '.screen-name',
78
- ) as HTMLSpanElement;
79
-
80
- expect(usernameSpan.innerText).to.equal('somesuper…');
81
- });
82
-
83
67
  it('opens a slot with `secondIdentitySlotMode`', async () => {
84
68
  const el = await fixture<PrimaryNav>(
85
69
  component({
@@ -1 +0,0 @@
1
- import '../../../src/assets/img/icon-user';
@@ -1,12 +0,0 @@
1
- import { html, fixture } from '@open-wc/testing';
2
- import '../../../src/assets/img/icon-user';
3
- describe('<user-image>', () => {
4
- it('toggles active class when property toggled', async () => {
5
- const icon = await fixture(html `<user-image></user-image>`);
6
- // icon.active = true;
7
- // await icon.updateComplete;
8
- // const styleElement = icon.shadowRoot.querySelector('svg > path');
9
- // expect(styleElement.classList.contains('active')).to.be.true;
10
- });
11
- });
12
- //# sourceMappingURL=user.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"user.test.js","sourceRoot":"","sources":["../../../../test/assets/img/user.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAU,MAAM,kBAAkB,CAAC;AACzD,OAAO,mCAAmC,CAAC;AAE3C,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;IAC5B,EAAE,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;QAC1D,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,CAAA,2BAA2B,CAAC,CAAC;QAE5D,sBAAsB;QACtB,6BAA6B;QAE7B,oEAAoE;QAEpE,gEAAgE;IAClE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { html, fixture, expect } from '@open-wc/testing';\nimport '../../../src/assets/img/icon-user';\n\ndescribe('<user-image>', () => {\n it('toggles active class when property toggled', async () => {\n const icon = await fixture(html`<user-image></user-image>`);\n\n // icon.active = true;\n // await icon.updateComplete;\n\n // const styleElement = icon.shadowRoot.querySelector('svg > path');\n\n // expect(styleElement.classList.contains('active')).to.be.true;\n });\n});\n"]}
@@ -1,15 +0,0 @@
1
- import { html, fixture, expect } from '@open-wc/testing';
2
- import '../../../src/assets/img/icon-user';
3
-
4
- describe('<user-image>', () => {
5
- it('toggles active class when property toggled', async () => {
6
- const icon = await fixture(html`<user-image></user-image>`);
7
-
8
- // icon.active = true;
9
- // await icon.updateComplete;
10
-
11
- // const styleElement = icon.shadowRoot.querySelector('svg > path');
12
-
13
- // expect(styleElement.classList.contains('active')).to.be.true;
14
- });
15
- });