@internetarchive/ia-item-navigator 0.0.0-a14 → 0.0.0-a16
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/dist/src/interfaces/custom-theater-interface.d.ts +20 -0
- package/dist/src/interfaces/custom-theater-interface.js +2 -0
- package/dist/src/interfaces/custom-theater-interface.js.map +1 -0
- package/dist/src/interfaces/event-interfaces.d.ts +9 -9
- package/dist/src/interfaces/event-interfaces.js.map +1 -1
- package/dist/src/interfaces/menu-interfaces.d.ts +4 -6
- package/dist/src/interfaces/menu-interfaces.js.map +1 -1
- package/dist/src/interfaces/nav-controller-interface.d.ts +9 -13
- package/dist/src/interfaces/nav-controller-interface.js.map +1 -1
- package/dist/src/item-navigator.d.ts +14 -13
- package/dist/src/item-navigator.js +10 -5
- package/dist/src/item-navigator.js.map +1 -1
- package/dist/test/book-nav-stub.d.ts +11 -6
- package/dist/test/book-nav-stub.js +10 -3
- package/dist/test/book-nav-stub.js.map +1 -1
- package/dist/test/ia-item-navigator.test.js +5 -9
- package/dist/test/ia-item-navigator.test.js.map +1 -1
- package/dist/test/ia-stub.d.ts +3 -3
- package/dist/test/ia-stub.js.map +1 -1
- package/package.json +1 -1
- package/src/interfaces/{nav-controller-interface.ts → custom-theater-interface.ts} +12 -15
- package/src/interfaces/event-interfaces.ts +13 -9
- package/src/interfaces/menu-interfaces.ts +7 -9
- package/src/item-navigator.ts +31 -25
- package/test/book-nav-stub.ts +20 -8
- package/test/ia-item-navigator.test.ts +19 -24
- package/test/ia-stub.ts +4 -4
@@ -4,18 +4,18 @@ import Sinon from 'sinon';
|
|
4
4
|
|
5
5
|
import { SharedResizeObserver } from '@internetarchive/shared-resize-observer';
|
6
6
|
import { ModalManager } from '@internetarchive/modal-manager';
|
7
|
-
import {
|
7
|
+
import { CustomTheaterInterface } from '../src/interfaces/custom-theater-interface';
|
8
8
|
import { ItemNavigator, ItemType } from '../src/item-navigator';
|
9
9
|
import '../src/item-navigator';
|
10
10
|
|
11
11
|
import '../test/book-nav-stub';
|
12
12
|
import { ItemStub, menuProvider, shortcut } from '../test/ia-stub';
|
13
13
|
import {
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
14
|
+
ManageFullscreenEvent,
|
15
|
+
ToggleSideMenuOpenEvent,
|
16
|
+
SetSideMenuContentsEvent,
|
17
|
+
SetSideMenuShortcutsEvent,
|
18
|
+
ToggleSidePanelOpenEvent,
|
19
19
|
} from '../src/interfaces/event-interfaces';
|
20
20
|
|
21
21
|
afterEach(() => {
|
@@ -48,7 +48,7 @@ describe('ItemNavigator', () => {
|
|
48
48
|
|
49
49
|
const bookNavigator = el.shadowRoot?.querySelector(
|
50
50
|
'book-navigator'
|
51
|
-
) as
|
51
|
+
) as CustomTheaterInterface;
|
52
52
|
await bookNavigator.updateComplete;
|
53
53
|
|
54
54
|
console.log('132234234324324324');
|
@@ -57,7 +57,6 @@ describe('ItemNavigator', () => {
|
|
57
57
|
expect(bookNavigator).to.exist;
|
58
58
|
expect(bookNavigator?.modal).to.exist;
|
59
59
|
expect(bookNavigator?.baseHost).to.exist;
|
60
|
-
expect(bookNavigator?.book).to.exist;
|
61
60
|
expect(bookNavigator?.signedIn).to.be.null;
|
62
61
|
expect(bookNavigator?.sharedObserver).to.exist;
|
63
62
|
expect(bookNavigator?.sideMenuOpen).to.exist;
|
@@ -131,7 +130,6 @@ describe('ItemNavigator', () => {
|
|
131
130
|
it('freshly registers handler', async () => {
|
132
131
|
const sharedObserver = new SharedResizeObserver();
|
133
132
|
const addObserverSpy = Sinon.spy(sharedObserver, 'addObserver');
|
134
|
-
const removeObserverSpy = Sinon.spy(sharedObserver, 'removeObserver');
|
135
133
|
|
136
134
|
await fixture<ItemNavigator>(
|
137
135
|
html`<ia-item-navigator
|
@@ -139,8 +137,6 @@ describe('ItemNavigator', () => {
|
|
139
137
|
></ia-item-navigator>`
|
140
138
|
);
|
141
139
|
|
142
|
-
// always calls to remove first, for posterity
|
143
|
-
expect(removeObserverSpy.callCount).to.equal(1);
|
144
140
|
expect(addObserverSpy.callCount).to.equal(1);
|
145
141
|
});
|
146
142
|
it('removes handler when component disconnects', async () => {
|
@@ -153,13 +149,10 @@ describe('ItemNavigator', () => {
|
|
153
149
|
></ia-item-navigator>`
|
154
150
|
);
|
155
151
|
|
156
|
-
// called during setup `setResizeObserver`
|
157
|
-
expect(removeObserverSpy.callCount).to.equal(1);
|
158
|
-
|
159
152
|
el.disconnectedCallback();
|
160
153
|
await el.updateComplete;
|
161
154
|
|
162
|
-
expect(removeObserverSpy.callCount).to.equal(
|
155
|
+
expect(removeObserverSpy.callCount).to.equal(1);
|
163
156
|
});
|
164
157
|
it('sets menu to overlay if container width is <= 600px', async () => {
|
165
158
|
const el = await fixture<ItemNavigator>(
|
@@ -219,7 +212,7 @@ describe('ItemNavigator', () => {
|
|
219
212
|
detail: {
|
220
213
|
isFullScreen: true,
|
221
214
|
},
|
222
|
-
} as
|
215
|
+
} as ManageFullscreenEvent;
|
223
216
|
el.manageViewportFullscreen(yesFullscreenEvent);
|
224
217
|
await el.updateComplete;
|
225
218
|
expect(el.viewportInFullscreen).to.be.true;
|
@@ -228,7 +221,7 @@ describe('ItemNavigator', () => {
|
|
228
221
|
detail: {
|
229
222
|
isFullScreen: false,
|
230
223
|
},
|
231
|
-
} as
|
224
|
+
} as ManageFullscreenEvent;
|
232
225
|
el.manageViewportFullscreen(noFullscreenEvent);
|
233
226
|
await el.updateComplete;
|
234
227
|
expect(el.viewportInFullscreen).to.be.null;
|
@@ -280,12 +273,12 @@ describe('ItemNavigator', () => {
|
|
280
273
|
expect(frame?.getAttribute('class')).to.contain('shift');
|
281
274
|
|
282
275
|
expect(el.menuOpened).to.be.false;
|
283
|
-
expect(el.openMenu).to.be.
|
276
|
+
expect(el.openMenu).to.be.undefined;
|
284
277
|
expect(frame?.getAttribute('class')).to.not.contain('open');
|
285
278
|
|
286
279
|
const event = new CustomEvent('updateSideMenu', {
|
287
280
|
detail,
|
288
|
-
}) as
|
281
|
+
}) as ToggleSideMenuOpenEvent;
|
289
282
|
el.manageSideMenuEvents(event);
|
290
283
|
await el.updateComplete;
|
291
284
|
|
@@ -386,7 +379,7 @@ describe('ItemNavigator', () => {
|
|
386
379
|
|
387
380
|
el.setMenuShortcuts({
|
388
381
|
detail: menuShortcuts,
|
389
|
-
} as
|
382
|
+
} as SetSideMenuShortcutsEvent);
|
390
383
|
await el.updateComplete;
|
391
384
|
|
392
385
|
expect(el.menuShortcuts.length).to.equal(1);
|
@@ -399,7 +392,7 @@ describe('ItemNavigator', () => {
|
|
399
392
|
|
400
393
|
el.setMenuShortcuts({
|
401
394
|
detail: [menuProvider],
|
402
|
-
} as
|
395
|
+
} as SetSideMenuContentsEvent);
|
403
396
|
await el.updateComplete;
|
404
397
|
|
405
398
|
expect(el.menuShortcuts.length).to.equal(1);
|
@@ -411,18 +404,20 @@ describe('ItemNavigator', () => {
|
|
411
404
|
|
412
405
|
el.setOpenMenu({
|
413
406
|
detail: { id: 'foo' },
|
414
|
-
} as
|
407
|
+
} as ToggleSidePanelOpenEvent);
|
415
408
|
await el.updateComplete;
|
416
409
|
|
417
410
|
expect(el.openMenu).to.equal('foo');
|
411
|
+
expect(el.selectedMenuId).to.equal('foo');
|
418
412
|
|
419
413
|
// toggles it off
|
420
414
|
el.setOpenMenu({
|
421
415
|
detail: { id: 'foo' },
|
422
|
-
} as
|
416
|
+
} as ToggleSidePanelOpenEvent);
|
423
417
|
await el.updateComplete;
|
424
418
|
|
425
|
-
expect(el.openMenu).to.
|
419
|
+
expect(el.openMenu).to.be.undefined;
|
420
|
+
expect(el.selectedMenuId).to.equal('');
|
426
421
|
});
|
427
422
|
it('`el.closeMenu`', async () => {
|
428
423
|
const el = await fixture<ItemNavigator>(
|
package/test/ia-stub.ts
CHANGED
@@ -8,8 +8,8 @@ import {
|
|
8
8
|
} from '@internetarchive/search-service';
|
9
9
|
import { html } from 'lit-html';
|
10
10
|
import {
|
11
|
-
|
12
|
-
|
11
|
+
MenuShortcutInterface,
|
12
|
+
MenuProviderInterface,
|
13
13
|
} from '../src/interfaces/menu-interfaces';
|
14
14
|
|
15
15
|
export class ItemStub implements MetadataResponse {
|
@@ -63,7 +63,7 @@ export class ItemStub implements MetadataResponse {
|
|
63
63
|
export const shortcut = {
|
64
64
|
id: 'fullscreen',
|
65
65
|
icon: html`<i class="fas fullscreen-test"></i>`,
|
66
|
-
} as
|
66
|
+
} as MenuShortcutInterface;
|
67
67
|
|
68
68
|
export const menuProvider = {
|
69
69
|
...shortcut,
|
@@ -76,4 +76,4 @@ export const menuProvider = {
|
|
76
76
|
baseHost: 'https://archive.foo',
|
77
77
|
subPrefix: 'bar',
|
78
78
|
updated: () => {},
|
79
|
-
} as
|
79
|
+
} as MenuProviderInterface;
|