@internetarchive/collection-browser 0.4.9 → 0.4.10-alpha.1
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/.editorconfig +29 -29
- package/.github/workflows/ci.yml +26 -26
- package/.github/workflows/gh-pages-main.yml +39 -39
- package/.github/workflows/npm-publish.yml +39 -39
- package/.github/workflows/pr-preview.yml +38 -38
- package/.husky/pre-commit +4 -4
- package/LICENSE +661 -661
- package/README.md +83 -83
- package/dist/index.d.ts +9 -9
- package/dist/index.js +9 -9
- package/dist/src/app-root.d.ts +50 -50
- package/dist/src/app-root.js +278 -278
- package/dist/src/assets/img/icons/arrow-left.d.ts +2 -2
- package/dist/src/assets/img/icons/arrow-left.js +2 -2
- package/dist/src/assets/img/icons/arrow-right.d.ts +2 -2
- package/dist/src/assets/img/icons/arrow-right.js +2 -2
- package/dist/src/assets/img/icons/chevron.d.ts +2 -2
- package/dist/src/assets/img/icons/chevron.js +2 -2
- package/dist/src/assets/img/icons/empty-query.d.ts +2 -2
- package/dist/src/assets/img/icons/empty-query.js +2 -2
- package/dist/src/assets/img/icons/eye-closed.d.ts +2 -2
- package/dist/src/assets/img/icons/eye-closed.js +2 -2
- package/dist/src/assets/img/icons/eye.d.ts +2 -2
- package/dist/src/assets/img/icons/eye.js +2 -2
- package/dist/src/assets/img/icons/favorite-filled.d.ts +1 -1
- package/dist/src/assets/img/icons/favorite-filled.js +2 -2
- package/dist/src/assets/img/icons/login-required.d.ts +1 -1
- package/dist/src/assets/img/icons/login-required.js +2 -2
- package/dist/src/assets/img/icons/mediatype/account.d.ts +1 -1
- package/dist/src/assets/img/icons/mediatype/account.js +2 -2
- package/dist/src/assets/img/icons/mediatype/audio.d.ts +1 -1
- package/dist/src/assets/img/icons/mediatype/audio.js +2 -2
- package/dist/src/assets/img/icons/mediatype/collection.d.ts +1 -1
- package/dist/src/assets/img/icons/mediatype/collection.js +2 -2
- package/dist/src/assets/img/icons/mediatype/data.d.ts +1 -1
- package/dist/src/assets/img/icons/mediatype/data.js +2 -2
- package/dist/src/assets/img/icons/mediatype/etree.d.ts +1 -1
- package/dist/src/assets/img/icons/mediatype/etree.js +2 -2
- package/dist/src/assets/img/icons/mediatype/film.d.ts +1 -1
- package/dist/src/assets/img/icons/mediatype/film.js +2 -2
- package/dist/src/assets/img/icons/mediatype/images.d.ts +1 -1
- package/dist/src/assets/img/icons/mediatype/images.js +2 -2
- package/dist/src/assets/img/icons/mediatype/radio.d.ts +1 -1
- package/dist/src/assets/img/icons/mediatype/radio.js +2 -2
- package/dist/src/assets/img/icons/mediatype/software.d.ts +1 -1
- package/dist/src/assets/img/icons/mediatype/software.js +2 -2
- package/dist/src/assets/img/icons/mediatype/texts.d.ts +1 -1
- package/dist/src/assets/img/icons/mediatype/texts.js +2 -2
- package/dist/src/assets/img/icons/mediatype/tv.d.ts +1 -1
- package/dist/src/assets/img/icons/mediatype/tv.js +2 -2
- package/dist/src/assets/img/icons/mediatype/video.d.ts +1 -1
- package/dist/src/assets/img/icons/mediatype/video.js +2 -2
- package/dist/src/assets/img/icons/mediatype/web.d.ts +1 -1
- package/dist/src/assets/img/icons/mediatype/web.js +2 -2
- package/dist/src/assets/img/icons/null-result.d.ts +2 -2
- package/dist/src/assets/img/icons/null-result.js +2 -2
- package/dist/src/assets/img/icons/restricted.d.ts +1 -1
- package/dist/src/assets/img/icons/restricted.js +2 -2
- package/dist/src/assets/img/icons/reviews.d.ts +1 -1
- package/dist/src/assets/img/icons/reviews.js +2 -2
- package/dist/src/assets/img/icons/upload.d.ts +1 -1
- package/dist/src/assets/img/icons/upload.js +2 -2
- package/dist/src/assets/img/icons/views.d.ts +1 -1
- package/dist/src/assets/img/icons/views.js +2 -2
- package/dist/src/circular-activity-indicator.d.ts +5 -5
- package/dist/src/circular-activity-indicator.js +17 -17
- package/dist/src/collection-browser.d.ts +280 -281
- package/dist/src/collection-browser.js +1173 -1202
- package/dist/src/collection-browser.js.map +1 -1
- package/dist/src/collection-facets/facet-tombstone-row.d.ts +5 -5
- package/dist/src/collection-facets/facet-tombstone-row.js +15 -15
- package/dist/src/collection-facets/facets-template.d.ts +16 -16
- package/dist/src/collection-facets/facets-template.js +125 -125
- package/dist/src/collection-facets/more-facets-content.d.ts +75 -77
- package/dist/src/collection-facets/more-facets-content.js +340 -357
- package/dist/src/collection-facets/more-facets-content.js.map +1 -1
- package/dist/src/collection-facets/more-facets-pagination.d.ts +36 -36
- package/dist/src/collection-facets/more-facets-pagination.js +192 -192
- package/dist/src/collection-facets.d.ts +81 -83
- package/dist/src/collection-facets.js +375 -393
- package/dist/src/collection-facets.js.map +1 -1
- package/dist/src/empty-placeholder.d.ts +11 -11
- package/dist/src/empty-placeholder.js +42 -42
- package/dist/src/language-code-handler/language-code-handler.d.ts +37 -37
- package/dist/src/language-code-handler/language-code-handler.js +26 -26
- package/dist/src/language-code-handler/language-code-mapping.d.ts +1 -1
- package/dist/src/language-code-handler/language-code-mapping.js +562 -562
- package/dist/src/mediatype/mediatype-config.d.ts +3 -3
- package/dist/src/mediatype/mediatype-config.js +85 -85
- package/dist/src/models.d.ts +115 -115
- package/dist/src/models.js +125 -125
- package/dist/src/models.js.map +1 -1
- package/dist/src/restoration-state-handler.d.ts +45 -45
- package/dist/src/restoration-state-handler.js +230 -230
- package/dist/src/sort-filter-bar/alpha-bar-tooltip.d.ts +6 -6
- package/dist/src/sort-filter-bar/alpha-bar-tooltip.js +24 -24
- package/dist/src/sort-filter-bar/alpha-bar.d.ts +20 -20
- package/dist/src/sort-filter-bar/alpha-bar.js +128 -128
- package/dist/src/sort-filter-bar/img/compact.d.ts +1 -1
- package/dist/src/sort-filter-bar/img/compact.js +2 -2
- package/dist/src/sort-filter-bar/img/list.d.ts +1 -1
- package/dist/src/sort-filter-bar/img/list.js +2 -2
- package/dist/src/sort-filter-bar/img/sort-triangle.d.ts +1 -1
- package/dist/src/sort-filter-bar/img/sort-triangle.js +2 -2
- package/dist/src/sort-filter-bar/img/tile.d.ts +1 -1
- package/dist/src/sort-filter-bar/img/tile.js +2 -2
- package/dist/src/sort-filter-bar/sort-filter-bar.d.ts +113 -108
- package/dist/src/sort-filter-bar/sort-filter-bar.js +614 -548
- package/dist/src/sort-filter-bar/sort-filter-bar.js.map +1 -1
- package/dist/src/styles/item-image-styles.d.ts +8 -8
- package/dist/src/styles/item-image-styles.js +9 -9
- package/dist/src/tiles/collection-browser-loading-tile.d.ts +5 -5
- package/dist/src/tiles/collection-browser-loading-tile.js +15 -15
- package/dist/src/tiles/grid/account-tile.d.ts +20 -20
- package/dist/src/tiles/grid/account-tile.js +64 -64
- package/dist/src/tiles/grid/collection-tile.d.ts +17 -17
- package/dist/src/tiles/grid/collection-tile.js +71 -71
- package/dist/src/tiles/grid/item-tile.d.ts +32 -32
- package/dist/src/tiles/grid/item-tile.js +129 -126
- package/dist/src/tiles/grid/item-tile.js.map +1 -1
- package/dist/src/tiles/grid/styles/tile-grid-shared-styles.d.ts +1 -1
- package/dist/src/tiles/grid/styles/tile-grid-shared-styles.js +7 -7
- package/dist/src/tiles/grid/tile-stats.d.ts +10 -10
- package/dist/src/tiles/grid/tile-stats.js +40 -40
- package/dist/src/tiles/hover/hover-pane-controller.d.ts +219 -219
- package/dist/src/tiles/hover/hover-pane-controller.js +352 -352
- package/dist/src/tiles/hover/tile-hover-pane.d.ts +15 -15
- package/dist/src/tiles/hover/tile-hover-pane.js +38 -38
- package/dist/src/tiles/image-block.d.ts +17 -17
- package/dist/src/tiles/image-block.js +72 -72
- package/dist/src/tiles/item-image.d.ts +35 -35
- package/dist/src/tiles/item-image.js +117 -117
- package/dist/src/tiles/list/account-label.d.ts +1 -1
- package/dist/src/tiles/list/account-label.js +6 -6
- package/dist/src/tiles/list/date-label.d.ts +1 -1
- package/dist/src/tiles/list/date-label.js +12 -12
- package/dist/src/tiles/list/tile-list-compact-header.d.ts +12 -12
- package/dist/src/tiles/list/tile-list-compact-header.js +41 -41
- package/dist/src/tiles/list/tile-list-compact.d.ts +21 -21
- package/dist/src/tiles/list/tile-list-compact.js +99 -99
- package/dist/src/tiles/list/tile-list.d.ts +55 -55
- package/dist/src/tiles/list/tile-list.js +301 -301
- package/dist/src/tiles/mediatype-icon.d.ts +9 -9
- package/dist/src/tiles/mediatype-icon.js +47 -47
- package/dist/src/tiles/overlay/icon-overlay.d.ts +10 -10
- package/dist/src/tiles/overlay/icon-overlay.js +40 -40
- package/dist/src/tiles/overlay/icon-text-overlay.d.ts +9 -9
- package/dist/src/tiles/overlay/icon-text-overlay.js +38 -38
- package/dist/src/tiles/overlay/text-overlay.d.ts +10 -10
- package/dist/src/tiles/overlay/text-overlay.js +42 -42
- package/dist/src/tiles/text-snippet-block.d.ts +27 -27
- package/dist/src/tiles/text-snippet-block.js +73 -73
- package/dist/src/tiles/tile-dispatcher.d.ts +58 -58
- package/dist/src/tiles/tile-dispatcher.js +194 -194
- package/dist/src/utils/analytics-events.d.ts +22 -22
- package/dist/src/utils/analytics-events.js +24 -24
- package/dist/src/utils/format-count.d.ts +7 -7
- package/dist/src/utils/format-count.js +76 -76
- package/dist/src/utils/format-date.d.ts +2 -2
- package/dist/src/utils/format-date.js +23 -23
- package/dist/src/utils/format-unit-size.d.ts +2 -2
- package/dist/src/utils/format-unit-size.js +33 -33
- package/dist/test/collection-browser.test.d.ts +1 -1
- package/dist/test/collection-browser.test.js +584 -584
- package/dist/test/collection-facets/facets-template.test.d.ts +1 -1
- package/dist/test/collection-facets/facets-template.test.js +62 -62
- package/dist/test/collection-facets/more-facets-content.test.d.ts +1 -1
- package/dist/test/collection-facets/more-facets-content.test.js +114 -114
- package/dist/test/collection-facets/more-facets-pagination.test.d.ts +1 -1
- package/dist/test/collection-facets/more-facets-pagination.test.js +117 -117
- package/dist/test/collection-facets.test.d.ts +2 -2
- package/dist/test/collection-facets.test.js +460 -508
- package/dist/test/collection-facets.test.js.map +1 -1
- package/dist/test/empty-placeholder.test.d.ts +1 -1
- package/dist/test/empty-placeholder.test.js +33 -33
- package/dist/test/icon-overlay.test.d.ts +1 -1
- package/dist/test/icon-overlay.test.js +24 -24
- package/dist/test/image-block.test.d.ts +1 -1
- package/dist/test/image-block.test.js +48 -48
- package/dist/test/item-image.test.d.ts +1 -1
- package/dist/test/item-image.test.js +84 -84
- package/dist/test/mediatype-config.test.d.ts +1 -1
- package/dist/test/mediatype-config.test.js +16 -16
- package/dist/test/mocks/mock-analytics-handler.d.ts +10 -10
- package/dist/test/mocks/mock-analytics-handler.js +15 -15
- package/dist/test/mocks/mock-collection-name-cache.d.ts +7 -7
- package/dist/test/mocks/mock-collection-name-cache.js +13 -13
- package/dist/test/mocks/mock-search-responses.d.ts +12 -12
- package/dist/test/mocks/mock-search-responses.js +341 -341
- package/dist/test/mocks/mock-search-service.d.ts +13 -13
- package/dist/test/mocks/mock-search-service.js +40 -40
- package/dist/test/restoration-state-handler.test.d.ts +1 -1
- package/dist/test/restoration-state-handler.test.js +125 -125
- package/dist/test/sort-filter-bar/alpha-bar-tooltip.test.d.ts +1 -1
- package/dist/test/sort-filter-bar/alpha-bar-tooltip.test.js +12 -12
- package/dist/test/sort-filter-bar/alpha-bar.test.d.ts +1 -1
- package/dist/test/sort-filter-bar/alpha-bar.test.js +73 -73
- package/dist/test/sort-filter-bar/sort-filter-bar.test.d.ts +1 -1
- package/dist/test/sort-filter-bar/sort-filter-bar.test.js +208 -197
- package/dist/test/sort-filter-bar/sort-filter-bar.test.js.map +1 -1
- package/dist/test/text-overlay.test.d.ts +1 -1
- package/dist/test/text-overlay.test.js +48 -48
- package/dist/test/text-snippet-block.test.d.ts +1 -1
- package/dist/test/text-snippet-block.test.js +57 -57
- package/dist/test/tile-stats.test.d.ts +1 -1
- package/dist/test/tile-stats.test.js +33 -33
- package/dist/test/tiles/grid/account-tile.test.d.ts +1 -1
- package/dist/test/tiles/grid/account-tile.test.js +76 -76
- package/dist/test/tiles/grid/collection-tile.test.d.ts +1 -1
- package/dist/test/tiles/grid/collection-tile.test.js +73 -73
- package/dist/test/tiles/grid/item-tile.test.d.ts +1 -1
- package/dist/test/tiles/grid/item-tile.test.js +158 -158
- package/dist/test/tiles/hover/hover-pane-controller.test.d.ts +1 -1
- package/dist/test/tiles/hover/hover-pane-controller.test.js +257 -257
- package/dist/test/tiles/hover/tile-hover-pane.test.d.ts +1 -1
- package/dist/test/tiles/hover/tile-hover-pane.test.js +13 -13
- package/dist/test/tiles/list/tile-list-compact.test.d.ts +1 -1
- package/dist/test/tiles/list/tile-list-compact.test.js +92 -92
- package/dist/test/tiles/list/tile-list.test.d.ts +1 -1
- package/dist/test/tiles/list/tile-list.test.js +163 -163
- package/dist/test/tiles/tile-dispatcher.test.d.ts +1 -1
- package/dist/test/tiles/tile-dispatcher.test.js +67 -67
- package/dist/test/utils/format-count.test.d.ts +1 -1
- package/dist/test/utils/format-count.test.js +23 -23
- package/dist/test/utils/format-date.test.d.ts +1 -1
- package/dist/test/utils/format-date.test.js +17 -17
- package/dist/test/utils/format-unit-size.test.d.ts +1 -1
- package/dist/test/utils/format-unit-size.test.js +17 -17
- package/local.archive.org.cert +86 -86
- package/local.archive.org.key +27 -27
- package/package.json +4 -3
- package/renovate.json +6 -6
- package/src/collection-browser.ts +1 -34
- package/src/collection-facets/more-facets-content.ts +2 -22
- package/src/collection-facets.ts +1 -24
- package/src/models.ts +6 -6
- package/src/sort-filter-bar/sort-filter-bar.ts +283 -197
- package/src/tiles/grid/item-tile.ts +5 -1
- package/test/collection-facets.test.ts +0 -67
- package/test/sort-filter-bar/sort-filter-bar.test.ts +56 -39
- package/tsconfig.json +21 -21
- package/web-dev-server.config.mjs +30 -30
- package/web-test-runner.config.mjs +41 -41
|
@@ -35,6 +35,10 @@ export class ItemTile extends LitElement {
|
|
|
35
35
|
|
|
36
36
|
render() {
|
|
37
37
|
const itemTitle = this.model?.title;
|
|
38
|
+
const viewCount =
|
|
39
|
+
this.sortParam?.field === 'week'
|
|
40
|
+
? this.model?.weeklyViewCount // weekly views
|
|
41
|
+
: this.model?.viewCount; // all-time views
|
|
38
42
|
|
|
39
43
|
return html`
|
|
40
44
|
<div class="container">
|
|
@@ -58,7 +62,7 @@ export class ItemTile extends LitElement {
|
|
|
58
62
|
|
|
59
63
|
<tile-stats
|
|
60
64
|
.mediatype=${this.model?.mediatype}
|
|
61
|
-
.viewCount=${
|
|
65
|
+
.viewCount=${viewCount}
|
|
62
66
|
.favCount=${this.model?.favCount}
|
|
63
67
|
.commentCount=${this.model?.commentCount}
|
|
64
68
|
>
|
|
@@ -11,10 +11,6 @@ import type { CollectionFacets } from '../src/collection-facets';
|
|
|
11
11
|
import '@internetarchive/modal-manager';
|
|
12
12
|
import '../src/collection-facets';
|
|
13
13
|
import type { FacetOption, SelectedFacets } from '../src/models';
|
|
14
|
-
import {
|
|
15
|
-
LanguageCodeHandler,
|
|
16
|
-
LanguageCodeHandlerInterface,
|
|
17
|
-
} from '../src/language-code-handler/language-code-handler';
|
|
18
14
|
import { MockAnalyticsHandler } from './mocks/mock-analytics-handler';
|
|
19
15
|
|
|
20
16
|
describe('Collection Facets', () => {
|
|
@@ -259,69 +255,6 @@ describe('Collection Facets', () => {
|
|
|
259
255
|
expect(collectionLink).to.exist;
|
|
260
256
|
});
|
|
261
257
|
|
|
262
|
-
it('renders language facets with their human-readable names', async () => {
|
|
263
|
-
const el = await fixture<CollectionFacets>(
|
|
264
|
-
html`<collection-facets></collection-facets>`
|
|
265
|
-
);
|
|
266
|
-
|
|
267
|
-
const languageCodeHandler: LanguageCodeHandlerInterface =
|
|
268
|
-
new LanguageCodeHandler();
|
|
269
|
-
|
|
270
|
-
const aggs: Record<string, Aggregation> = {
|
|
271
|
-
language: new Aggregation({
|
|
272
|
-
buckets: [
|
|
273
|
-
{
|
|
274
|
-
key: 'English',
|
|
275
|
-
doc_count: 3,
|
|
276
|
-
},
|
|
277
|
-
],
|
|
278
|
-
}),
|
|
279
|
-
};
|
|
280
|
-
|
|
281
|
-
el.languageCodeHandler = languageCodeHandler;
|
|
282
|
-
el.aggregations = aggs;
|
|
283
|
-
await el.updateComplete;
|
|
284
|
-
|
|
285
|
-
const facetsTemplate = el.shadowRoot?.querySelector('facets-template');
|
|
286
|
-
const languageTitle =
|
|
287
|
-
facetsTemplate?.shadowRoot?.querySelector('.facet-title');
|
|
288
|
-
expect(languageTitle?.textContent?.trim()).to.equal('English');
|
|
289
|
-
});
|
|
290
|
-
|
|
291
|
-
it('renders selected/negative language facets with human-readable names', async () => {
|
|
292
|
-
const el = await fixture<CollectionFacets>(
|
|
293
|
-
html`<collection-facets></collection-facets>`
|
|
294
|
-
);
|
|
295
|
-
|
|
296
|
-
const languageCodeHandler: LanguageCodeHandlerInterface =
|
|
297
|
-
new LanguageCodeHandler();
|
|
298
|
-
|
|
299
|
-
const selectedFacets: SelectedFacets = {
|
|
300
|
-
subject: {},
|
|
301
|
-
lending: {},
|
|
302
|
-
mediatype: {},
|
|
303
|
-
language: {
|
|
304
|
-
en: {
|
|
305
|
-
key: 'en',
|
|
306
|
-
count: 5,
|
|
307
|
-
state: 'selected',
|
|
308
|
-
},
|
|
309
|
-
},
|
|
310
|
-
creator: {},
|
|
311
|
-
collection: {},
|
|
312
|
-
year: {},
|
|
313
|
-
};
|
|
314
|
-
|
|
315
|
-
el.languageCodeHandler = languageCodeHandler;
|
|
316
|
-
el.selectedFacets = selectedFacets;
|
|
317
|
-
await el.updateComplete;
|
|
318
|
-
|
|
319
|
-
const facetsTemplate = el.shadowRoot?.querySelector('facets-template');
|
|
320
|
-
const languageTitle =
|
|
321
|
-
facetsTemplate?.shadowRoot?.querySelector('.facet-title');
|
|
322
|
-
expect(languageTitle?.textContent?.trim()).to.equal('English');
|
|
323
|
-
});
|
|
324
|
-
|
|
325
258
|
it('renders lending facets with human-readable names', async () => {
|
|
326
259
|
const el = await fixture<CollectionFacets>(
|
|
327
260
|
html`<collection-facets></collection-facets>`
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/* eslint-disable import/no-duplicates */
|
|
2
2
|
import { expect, fixture } from '@open-wc/testing';
|
|
3
3
|
import { html } from 'lit';
|
|
4
|
+
import type { IaDropdown } from '@internetarchive/ia-dropdown';
|
|
4
5
|
import type { SortFilterBar } from '../../src/sort-filter-bar/sort-filter-bar';
|
|
5
6
|
import type { SortField } from '../../src/models';
|
|
6
7
|
|
|
@@ -44,81 +45,97 @@ describe('Sort selector default buttons', async () => {
|
|
|
44
45
|
<sort-filter-bar> </sort-filter-bar>
|
|
45
46
|
`);
|
|
46
47
|
const sortSelectorContainer = el.shadowRoot?.querySelector(
|
|
48
|
+
'#sort-selector-container'
|
|
49
|
+
);
|
|
50
|
+
const desktopSortSelector = sortSelectorContainer?.querySelector(
|
|
47
51
|
'#desktop-sort-selector'
|
|
48
52
|
);
|
|
49
53
|
|
|
54
|
+
it('should render basic component', async () => {
|
|
55
|
+
expect(sortSelectorContainer).to.exist;
|
|
56
|
+
expect(desktopSortSelector).to.exist;
|
|
57
|
+
});
|
|
58
|
+
|
|
50
59
|
it('should render sort-by label', async () => {
|
|
51
|
-
|
|
52
|
-
|
|
60
|
+
const sortByLabel = sortSelectorContainer?.querySelector('#sort-by-text');
|
|
61
|
+
expect(sortByLabel).to.exist;
|
|
62
|
+
expect(sortByLabel?.textContent?.trim()).to.equal('Sort by');
|
|
63
|
+
});
|
|
64
|
+
|
|
65
|
+
it('should render sort direction buttons', async () => {
|
|
66
|
+
const sortDirections = sortSelectorContainer?.querySelector(
|
|
67
|
+
'#sort-direction-container'
|
|
53
68
|
);
|
|
69
|
+
expect(sortDirections).to.exist;
|
|
70
|
+
expect(sortDirections?.querySelectorAll('.sort-button').length).to.equal(2);
|
|
54
71
|
});
|
|
55
72
|
|
|
56
73
|
it('should render default relevance-sort selector', async () => {
|
|
57
|
-
const defaultSortSelector =
|
|
58
|
-
.item(1)
|
|
59
|
-
?.querySelector('a');
|
|
74
|
+
const defaultSortSelector = desktopSortSelector?.querySelector('a');
|
|
60
75
|
expect(defaultSortSelector?.textContent).to.contain('Relevance');
|
|
61
76
|
expect(defaultSortSelector?.getAttribute('class')).to.equal('selected');
|
|
62
77
|
});
|
|
63
78
|
|
|
64
79
|
it('should render default view-sort selector', async () => {
|
|
65
|
-
const defaultSortSelector =
|
|
66
|
-
.item(
|
|
67
|
-
?.querySelector('
|
|
68
|
-
expect(defaultSortSelector?.textContent).to.contain('Weekly
|
|
80
|
+
const defaultSortSelector = desktopSortSelector?.children
|
|
81
|
+
.item(1)
|
|
82
|
+
?.querySelector('ia-dropdown');
|
|
83
|
+
expect(defaultSortSelector?.textContent).to.contain('Weekly views');
|
|
69
84
|
});
|
|
70
85
|
|
|
71
86
|
it('should render active view-sort selectors', async () => {
|
|
72
87
|
el.selectedSort = 'alltimeview' as SortField;
|
|
73
88
|
await el.updateComplete;
|
|
74
89
|
|
|
75
|
-
const defaultSortSelector =
|
|
76
|
-
|
|
77
|
-
|
|
90
|
+
const defaultSortSelector = desktopSortSelector?.querySelector(
|
|
91
|
+
'ia-dropdown.selected'
|
|
92
|
+
);
|
|
93
|
+
expect(defaultSortSelector?.textContent).to.contain('All-time views');
|
|
78
94
|
});
|
|
79
95
|
|
|
80
96
|
it('should render default title-sort selector', async () => {
|
|
81
|
-
const defaultSortSelector =
|
|
82
|
-
.item(
|
|
97
|
+
const defaultSortSelector = desktopSortSelector?.children
|
|
98
|
+
.item(2)
|
|
83
99
|
?.querySelector('a');
|
|
84
100
|
expect(defaultSortSelector?.textContent).to.contain('Title');
|
|
85
101
|
});
|
|
86
102
|
|
|
87
103
|
it('should render default date-sort selector', async () => {
|
|
88
|
-
const defaultSortSelector =
|
|
89
|
-
.item(
|
|
90
|
-
?.querySelector('
|
|
91
|
-
expect(defaultSortSelector?.textContent).to.contain('Date
|
|
104
|
+
const defaultSortSelector = desktopSortSelector?.children
|
|
105
|
+
.item(3)
|
|
106
|
+
?.querySelector('ia-dropdown');
|
|
107
|
+
expect(defaultSortSelector?.textContent).to.contain('Date published');
|
|
92
108
|
});
|
|
93
109
|
|
|
94
110
|
it('should render active date-sort selectors', async () => {
|
|
95
111
|
el.selectedSort = 'datereviewed' as SortField;
|
|
96
112
|
await el.updateComplete;
|
|
97
113
|
|
|
98
|
-
const defaultSortSelector =
|
|
99
|
-
|
|
100
|
-
|
|
114
|
+
const defaultSortSelector = desktopSortSelector?.querySelector(
|
|
115
|
+
'ia-dropdown.selected'
|
|
116
|
+
);
|
|
117
|
+
expect(defaultSortSelector?.textContent).to.contain('Date reviewed');
|
|
101
118
|
});
|
|
102
119
|
|
|
103
120
|
it('should render default creator-sort selector', async () => {
|
|
104
|
-
const defaultSortSelector =
|
|
105
|
-
.item(
|
|
121
|
+
const defaultSortSelector = desktopSortSelector?.children
|
|
122
|
+
.item(4)
|
|
106
123
|
?.querySelector('a');
|
|
107
124
|
expect(defaultSortSelector?.textContent).to.contain('Creator');
|
|
108
125
|
});
|
|
109
126
|
|
|
110
127
|
it('click event on view-sort selector', async () => {
|
|
111
|
-
const defaultSortSelector =
|
|
112
|
-
.item(
|
|
113
|
-
?.querySelector('
|
|
128
|
+
const defaultSortSelector = desktopSortSelector?.children
|
|
129
|
+
.item(1)
|
|
130
|
+
?.querySelector('ia-dropdown') as IaDropdown;
|
|
114
131
|
|
|
115
132
|
await defaultSortSelector?.click();
|
|
116
133
|
expect(el.selectedSort).to.equal('weeklyview');
|
|
117
134
|
});
|
|
118
135
|
|
|
119
136
|
it('click event on title selector', async () => {
|
|
120
|
-
const defaultSortSelector =
|
|
121
|
-
.item(
|
|
137
|
+
const defaultSortSelector = desktopSortSelector?.children
|
|
138
|
+
.item(2)
|
|
122
139
|
?.querySelector('a');
|
|
123
140
|
|
|
124
141
|
await defaultSortSelector?.click();
|
|
@@ -126,17 +143,17 @@ describe('Sort selector default buttons', async () => {
|
|
|
126
143
|
});
|
|
127
144
|
|
|
128
145
|
it('click event on date-sort selector', async () => {
|
|
129
|
-
const defaultSortSelector =
|
|
130
|
-
.item(
|
|
131
|
-
?.querySelector('
|
|
146
|
+
const defaultSortSelector = desktopSortSelector?.children
|
|
147
|
+
.item(3)
|
|
148
|
+
?.querySelector('ia-dropdown') as IaDropdown;
|
|
132
149
|
|
|
133
150
|
await defaultSortSelector?.click();
|
|
134
151
|
expect(el.selectedSort).to.equal('date');
|
|
135
152
|
});
|
|
136
153
|
|
|
137
154
|
it('click event on creator selector', async () => {
|
|
138
|
-
const defaultSortSelector =
|
|
139
|
-
.item(
|
|
155
|
+
const defaultSortSelector = desktopSortSelector?.children
|
|
156
|
+
.item(4)
|
|
140
157
|
?.querySelector('a');
|
|
141
158
|
|
|
142
159
|
await defaultSortSelector?.click();
|
|
@@ -246,15 +263,15 @@ describe('Sort/filter bar mobile view', () => {
|
|
|
246
263
|
<sort-filter-bar></sort-filter-bar>
|
|
247
264
|
`);
|
|
248
265
|
|
|
249
|
-
const
|
|
250
|
-
'#mobile-sort-
|
|
266
|
+
const mobileSortContainer = el.shadowRoot?.querySelector(
|
|
267
|
+
'#mobile-sort-container'
|
|
251
268
|
);
|
|
252
|
-
const
|
|
253
|
-
'#desktop-sort-
|
|
269
|
+
const desktopSortContainer = el.shadowRoot?.querySelector(
|
|
270
|
+
'#desktop-sort-container'
|
|
254
271
|
);
|
|
255
272
|
|
|
256
|
-
expect(
|
|
257
|
-
expect(
|
|
273
|
+
expect(mobileSortContainer?.classList?.contains('visible')).to.be.true;
|
|
274
|
+
expect(desktopSortContainer?.classList?.contains('hidden')).to.be.true;
|
|
258
275
|
});
|
|
259
276
|
|
|
260
277
|
it('changes selected sort in mobile view', async () => {
|
package/tsconfig.json
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
{
|
|
2
|
-
"compilerOptions": {
|
|
3
|
-
"target": "es2018",
|
|
4
|
-
"module": "esnext",
|
|
5
|
-
"moduleResolution": "node",
|
|
6
|
-
"noEmitOnError": true,
|
|
7
|
-
"lib": ["es2017", "dom"],
|
|
8
|
-
"strict": true,
|
|
9
|
-
"esModuleInterop": false,
|
|
10
|
-
"allowSyntheticDefaultImports": true,
|
|
11
|
-
"experimentalDecorators": true,
|
|
12
|
-
"importHelpers": true,
|
|
13
|
-
"outDir": "dist",
|
|
14
|
-
"sourceMap": true,
|
|
15
|
-
"inlineSources": true,
|
|
16
|
-
"rootDir": "./",
|
|
17
|
-
"declaration": true,
|
|
18
|
-
"importsNotUsedAsValues": "error"
|
|
19
|
-
},
|
|
20
|
-
"include": ["src", "test", "index.ts", "types"],
|
|
21
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"compilerOptions": {
|
|
3
|
+
"target": "es2018",
|
|
4
|
+
"module": "esnext",
|
|
5
|
+
"moduleResolution": "node",
|
|
6
|
+
"noEmitOnError": true,
|
|
7
|
+
"lib": ["es2017", "dom"],
|
|
8
|
+
"strict": true,
|
|
9
|
+
"esModuleInterop": false,
|
|
10
|
+
"allowSyntheticDefaultImports": true,
|
|
11
|
+
"experimentalDecorators": true,
|
|
12
|
+
"importHelpers": true,
|
|
13
|
+
"outDir": "dist",
|
|
14
|
+
"sourceMap": true,
|
|
15
|
+
"inlineSources": true,
|
|
16
|
+
"rootDir": "./",
|
|
17
|
+
"declaration": true,
|
|
18
|
+
"importsNotUsedAsValues": "error"
|
|
19
|
+
},
|
|
20
|
+
"include": ["src", "test", "index.ts", "types"],
|
|
21
|
+
}
|
|
@@ -1,30 +1,30 @@
|
|
|
1
|
-
// import { hmrPlugin, presets } from '@open-wc/dev-server-hmr';
|
|
2
|
-
|
|
3
|
-
/** Use Hot Module replacement by adding --hmr to the start command */
|
|
4
|
-
const hmr = process.argv.includes('--hmr');
|
|
5
|
-
|
|
6
|
-
export default /** @type {import('@web/dev-server').DevServerConfig} */ ({
|
|
7
|
-
nodeResolve: true,
|
|
8
|
-
open: '/',
|
|
9
|
-
watch: !hmr,
|
|
10
|
-
|
|
11
|
-
/** Compile JS for older browsers. Requires @web/dev-server-esbuild plugin */
|
|
12
|
-
// esbuildTarget: 'auto'
|
|
13
|
-
|
|
14
|
-
/** Set appIndex to enable SPA routing */
|
|
15
|
-
// appIndex: 'demo/index.html',
|
|
16
|
-
|
|
17
|
-
/** Confgure bare import resolve plugin */
|
|
18
|
-
// nodeResolve: {
|
|
19
|
-
// exportConditions: ['browser', 'development']
|
|
20
|
-
// },
|
|
21
|
-
|
|
22
|
-
plugins: [
|
|
23
|
-
/** Use Hot Module Replacement by uncommenting. Requires @open-wc/dev-server-hmr plugin */
|
|
24
|
-
// hmr && hmrPlugin({ exclude: ['**/*/node_modules/**/*'], presets: [presets.litElement] }),
|
|
25
|
-
],
|
|
26
|
-
|
|
27
|
-
http2: true,
|
|
28
|
-
sslCert: './local.archive.org.cert',
|
|
29
|
-
sslKey: './local.archive.org.key',
|
|
30
|
-
});
|
|
1
|
+
// import { hmrPlugin, presets } from '@open-wc/dev-server-hmr';
|
|
2
|
+
|
|
3
|
+
/** Use Hot Module replacement by adding --hmr to the start command */
|
|
4
|
+
const hmr = process.argv.includes('--hmr');
|
|
5
|
+
|
|
6
|
+
export default /** @type {import('@web/dev-server').DevServerConfig} */ ({
|
|
7
|
+
nodeResolve: true,
|
|
8
|
+
open: '/',
|
|
9
|
+
watch: !hmr,
|
|
10
|
+
|
|
11
|
+
/** Compile JS for older browsers. Requires @web/dev-server-esbuild plugin */
|
|
12
|
+
// esbuildTarget: 'auto'
|
|
13
|
+
|
|
14
|
+
/** Set appIndex to enable SPA routing */
|
|
15
|
+
// appIndex: 'demo/index.html',
|
|
16
|
+
|
|
17
|
+
/** Confgure bare import resolve plugin */
|
|
18
|
+
// nodeResolve: {
|
|
19
|
+
// exportConditions: ['browser', 'development']
|
|
20
|
+
// },
|
|
21
|
+
|
|
22
|
+
plugins: [
|
|
23
|
+
/** Use Hot Module Replacement by uncommenting. Requires @open-wc/dev-server-hmr plugin */
|
|
24
|
+
// hmr && hmrPlugin({ exclude: ['**/*/node_modules/**/*'], presets: [presets.litElement] }),
|
|
25
|
+
],
|
|
26
|
+
|
|
27
|
+
http2: true,
|
|
28
|
+
sslCert: './local.archive.org.cert',
|
|
29
|
+
sslKey: './local.archive.org.key',
|
|
30
|
+
});
|
|
@@ -1,41 +1,41 @@
|
|
|
1
|
-
// import { playwrightLauncher } from '@web/test-runner-playwright';
|
|
2
|
-
|
|
3
|
-
const filteredLogs = ['Running in dev mode', 'lit-html is in dev mode'];
|
|
4
|
-
|
|
5
|
-
export default /** @type {import("@web/test-runner").TestRunnerConfig} */ ({
|
|
6
|
-
/** Test files to run */
|
|
7
|
-
files: 'dist/test/**/*.test.js',
|
|
8
|
-
|
|
9
|
-
/** Resolve bare module imports */
|
|
10
|
-
nodeResolve: {
|
|
11
|
-
exportConditions: ['browser', 'development'],
|
|
12
|
-
},
|
|
13
|
-
|
|
14
|
-
/** Filter out lit dev mode logs */
|
|
15
|
-
filterBrowserLogs(log) {
|
|
16
|
-
for (const arg of log.args) {
|
|
17
|
-
if (typeof arg === 'string' && filteredLogs.some(l => arg.includes(l))) {
|
|
18
|
-
return false;
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
return true;
|
|
22
|
-
},
|
|
23
|
-
|
|
24
|
-
/** Compile JS for older browsers. Requires @web/dev-server-esbuild plugin */
|
|
25
|
-
// esbuildTarget: 'auto',
|
|
26
|
-
|
|
27
|
-
/** Amount of browsers to run concurrently */
|
|
28
|
-
// concurrentBrowsers: 2,
|
|
29
|
-
|
|
30
|
-
/** Amount of test files per browser to test concurrently */
|
|
31
|
-
// concurrency: 1,
|
|
32
|
-
|
|
33
|
-
/** Browsers to run tests on */
|
|
34
|
-
// browsers: [
|
|
35
|
-
// playwrightLauncher({ product: 'chromium' }),
|
|
36
|
-
// playwrightLauncher({ product: 'firefox' }),
|
|
37
|
-
// playwrightLauncher({ product: 'webkit' }),
|
|
38
|
-
// ],
|
|
39
|
-
|
|
40
|
-
// See documentation for all available options
|
|
41
|
-
});
|
|
1
|
+
// import { playwrightLauncher } from '@web/test-runner-playwright';
|
|
2
|
+
|
|
3
|
+
const filteredLogs = ['Running in dev mode', 'lit-html is in dev mode'];
|
|
4
|
+
|
|
5
|
+
export default /** @type {import("@web/test-runner").TestRunnerConfig} */ ({
|
|
6
|
+
/** Test files to run */
|
|
7
|
+
files: 'dist/test/**/*.test.js',
|
|
8
|
+
|
|
9
|
+
/** Resolve bare module imports */
|
|
10
|
+
nodeResolve: {
|
|
11
|
+
exportConditions: ['browser', 'development'],
|
|
12
|
+
},
|
|
13
|
+
|
|
14
|
+
/** Filter out lit dev mode logs */
|
|
15
|
+
filterBrowserLogs(log) {
|
|
16
|
+
for (const arg of log.args) {
|
|
17
|
+
if (typeof arg === 'string' && filteredLogs.some(l => arg.includes(l))) {
|
|
18
|
+
return false;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
return true;
|
|
22
|
+
},
|
|
23
|
+
|
|
24
|
+
/** Compile JS for older browsers. Requires @web/dev-server-esbuild plugin */
|
|
25
|
+
// esbuildTarget: 'auto',
|
|
26
|
+
|
|
27
|
+
/** Amount of browsers to run concurrently */
|
|
28
|
+
// concurrentBrowsers: 2,
|
|
29
|
+
|
|
30
|
+
/** Amount of test files per browser to test concurrently */
|
|
31
|
+
// concurrency: 1,
|
|
32
|
+
|
|
33
|
+
/** Browsers to run tests on */
|
|
34
|
+
// browsers: [
|
|
35
|
+
// playwrightLauncher({ product: 'chromium' }),
|
|
36
|
+
// playwrightLauncher({ product: 'firefox' }),
|
|
37
|
+
// playwrightLauncher({ product: 'webkit' }),
|
|
38
|
+
// ],
|
|
39
|
+
|
|
40
|
+
// See documentation for all available options
|
|
41
|
+
});
|