@internetarchive/collection-browser 0.2.15-0 → 0.2.16-alpha1
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/app-root.d.ts +1 -0
- package/dist/src/app-root.js +29 -2
- package/dist/src/app-root.js.map +1 -1
- package/dist/src/assets/img/icons/arrow-left.d.ts +2 -0
- package/dist/src/assets/img/icons/arrow-left.js +10 -0
- package/dist/src/assets/img/icons/arrow-left.js.map +1 -0
- package/dist/src/assets/img/icons/arrow-right.d.ts +2 -0
- package/dist/src/assets/img/icons/arrow-right.js +10 -0
- package/dist/src/assets/img/icons/arrow-right.js.map +1 -0
- package/dist/src/collection-browser.d.ts +2 -0
- package/dist/src/collection-browser.js +9 -13
- package/dist/src/collection-browser.js.map +1 -1
- package/dist/src/collection-facets/more-facets-content.d.ts +56 -0
- package/dist/src/collection-facets/more-facets-content.js +374 -0
- package/dist/src/collection-facets/more-facets-content.js.map +1 -0
- package/dist/src/collection-facets/more-facets-pagination.d.ts +27 -0
- package/dist/src/collection-facets/more-facets-pagination.js +193 -0
- package/dist/src/collection-facets/more-facets-pagination.js.map +1 -0
- package/dist/src/collection-facets.d.ts +19 -2
- package/dist/src/collection-facets.js +102 -0
- package/dist/src/collection-facets.js.map +1 -1
- package/dist/src/models.d.ts +3 -2
- package/dist/src/models.js +8 -4
- package/dist/src/models.js.map +1 -1
- package/dist/src/sort-filter-bar/sort-filter-bar.d.ts +23 -1
- package/dist/src/sort-filter-bar/sort-filter-bar.js +96 -12
- package/dist/src/sort-filter-bar/sort-filter-bar.js.map +1 -1
- package/dist/test/collection-browser.test.js +35 -0
- package/dist/test/collection-browser.test.js.map +1 -1
- package/dist/test/collection-facets/more-facets-content.test.d.ts +1 -0
- package/dist/test/collection-facets/more-facets-content.test.js +75 -0
- package/dist/test/collection-facets/more-facets-content.test.js.map +1 -0
- package/dist/test/collection-facets/more-facets-pagination.test.d.ts +1 -0
- package/dist/test/collection-facets/more-facets-pagination.test.js +38 -0
- package/dist/test/collection-facets/more-facets-pagination.test.js.map +1 -0
- package/dist/test/mocks/mock-search-responses.js +13 -0
- package/dist/test/mocks/mock-search-responses.js.map +1 -1
- package/dist/test/sort-filter-bar/sort-filter-bar.test.d.ts +1 -0
- package/dist/test/sort-filter-bar/sort-filter-bar.test.js +122 -0
- package/dist/test/sort-filter-bar/sort-filter-bar.test.js.map +1 -0
- package/package.json +3 -1
- package/src/app-root.ts +29 -2
- package/src/assets/img/icons/arrow-left.ts +10 -0
- package/src/assets/img/icons/arrow-right.ts +10 -0
- package/src/collection-browser.ts +8 -13
- package/src/collection-facets/more-facets-content.ts +393 -0
- package/src/collection-facets/more-facets-pagination.ts +201 -0
- package/src/collection-facets.ts +117 -1
- package/src/models.ts +9 -4
- package/src/sort-filter-bar/sort-filter-bar.ts +98 -12
- package/test/collection-browser.test.ts +43 -0
- package/test/collection-facets/more-facets-content.test.ts +113 -0
- package/test/collection-facets/more-facets-pagination.test.ts +70 -0
- package/test/mocks/mock-search-responses.ts +13 -0
- package/test/sort-filter-bar/sort-filter-bar.test.ts +187 -0
|
@@ -15,6 +15,19 @@ export const mockSuccessResponse = {
|
|
|
15
15
|
}),
|
|
16
16
|
],
|
|
17
17
|
start: 0,
|
|
18
|
+
aggregations: {
|
|
19
|
+
'user_aggs__terms__field:mediatypeSorter__size:100': {
|
|
20
|
+
buckets: [
|
|
21
|
+
{ key: 'audio', doc_count: 121 },
|
|
22
|
+
{ key: 'movies', doc_count: 2195 },
|
|
23
|
+
{ key: 'texts', doc_count: 1392 },
|
|
24
|
+
{ key: 'data', doc_count: 605 },
|
|
25
|
+
{ key: 'web', doc_count: 301 },
|
|
26
|
+
{ key: 'collection', doc_count: 167 },
|
|
27
|
+
{ key: 'account', doc_count: 167 },
|
|
28
|
+
],
|
|
29
|
+
},
|
|
30
|
+
},
|
|
18
31
|
},
|
|
19
32
|
responseHeader: {
|
|
20
33
|
status: 0,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mock-search-responses.js","sourceRoot":"","sources":["../../../test/mocks/mock-search-responses.ts"],"names":[],"mappings":"AACA,OAAO,EACL,QAAQ,GAGT,MAAM,iCAAiC,CAAC;AAEzC,MAAM,CAAC,MAAM,mBAAmB,GAA+C;IAC7E,OAAO,EAAE;QACP,WAAW,EAAE,EAAE;QACf,QAAQ,EAAE;YACR,QAAQ,EAAE,CAAC;YACX,IAAI,EAAE;gBACJ,IAAI,QAAQ,CAAC;oBACX,UAAU,EAAE,KAAK;oBACjB,eAAe,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC;iBAChC,CAAC;gBACF,IAAI,QAAQ,CAAC;oBACX,UAAU,EAAE,KAAK;oBACjB,eAAe,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC;iBACjC,CAAC;aACH;YACD,KAAK,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"mock-search-responses.js","sourceRoot":"","sources":["../../../test/mocks/mock-search-responses.ts"],"names":[],"mappings":"AACA,OAAO,EACL,QAAQ,GAGT,MAAM,iCAAiC,CAAC;AAEzC,MAAM,CAAC,MAAM,mBAAmB,GAA+C;IAC7E,OAAO,EAAE;QACP,WAAW,EAAE,EAAE;QACf,QAAQ,EAAE;YACR,QAAQ,EAAE,CAAC;YACX,IAAI,EAAE;gBACJ,IAAI,QAAQ,CAAC;oBACX,UAAU,EAAE,KAAK;oBACjB,eAAe,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC;iBAChC,CAAC;gBACF,IAAI,QAAQ,CAAC;oBACX,UAAU,EAAE,KAAK;oBACjB,eAAe,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC;iBACjC,CAAC;aACH;YACD,KAAK,EAAE,CAAC;YACR,YAAY,EAAE;gBACZ,mDAAmD,EAAE;oBACnD,OAAO,EAAE;wBACP,EAAE,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE;wBAChC,EAAE,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE;wBAClC,EAAE,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE;wBACjC,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE;wBAC/B,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE;wBAC9B,EAAE,GAAG,EAAE,YAAY,EAAE,SAAS,EAAE,GAAG,EAAE;wBACrC,EAAE,GAAG,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,EAAE;qBACnC;iBACF;aACF;SACF;QACD,cAAc,EAAE;YACd,MAAM,EAAE,CAAC;YACT,KAAK,EAAE,CAAC;YACR,MAAM,EAAE;gBACN,KAAK,EAAE,gBAAgB;gBACvB,GAAG,EAAE,gBAAgB;gBACrB,MAAM,EAAE,6BAA6B;gBACrC,EAAE,EAAE,KAAK;gBACT,KAAK,EAAE,CAAC;aACT;SACF;KACF;CACF,CAAC","sourcesContent":["import type { Result } from '@internetarchive/result-type';\nimport {\n Metadata,\n SearchResponse,\n SearchServiceError,\n} from '@internetarchive/search-service';\n\nexport const mockSuccessResponse: Result<SearchResponse, SearchServiceError> = {\n success: {\n rawResponse: {},\n response: {\n numFound: 2,\n docs: [\n new Metadata({\n identifier: 'foo',\n collections_raw: ['foo', 'bar'],\n }),\n new Metadata({\n identifier: 'bar',\n collections_raw: ['baz', 'boop'],\n }),\n ],\n start: 0,\n aggregations: {\n 'user_aggs__terms__field:mediatypeSorter__size:100': {\n buckets: [\n { key: 'audio', doc_count: 121 },\n { key: 'movies', doc_count: 2195 },\n { key: 'texts', doc_count: 1392 },\n { key: 'data', doc_count: 605 },\n { key: 'web', doc_count: 301 },\n { key: 'collection', doc_count: 167 },\n { key: 'account', doc_count: 167 },\n ],\n },\n },\n },\n responseHeader: {\n status: 0,\n QTime: 0,\n params: {\n query: 'collection:foo',\n qin: 'collection:foo',\n fields: 'identifier, collections_raw',\n wt: 'foo',\n start: 0,\n },\n },\n },\n};\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import '../../src/sort-filter-bar/sort-filter-bar';
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
/* eslint-disable import/no-duplicates */
|
|
2
|
+
import { expect, fixture } from '@open-wc/testing';
|
|
3
|
+
import { html } from 'lit';
|
|
4
|
+
import '../../src/sort-filter-bar/sort-filter-bar';
|
|
5
|
+
describe('Sort direction buttons', () => {
|
|
6
|
+
it('should render sort direction button', async () => {
|
|
7
|
+
var _a;
|
|
8
|
+
const el = await fixture(html `
|
|
9
|
+
<sort-filter-bar> </sort-filter-bar>
|
|
10
|
+
`);
|
|
11
|
+
el.sortDirection = 'asc'; // selected sort
|
|
12
|
+
await el.updateComplete;
|
|
13
|
+
const sortDirectionButtonList = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('#sort-direction-selector');
|
|
14
|
+
const sortByAscButton = sortDirectionButtonList === null || sortDirectionButtonList === void 0 ? void 0 : sortDirectionButtonList.querySelector('#sort-ascending-btn');
|
|
15
|
+
expect(sortByAscButton).to.exist;
|
|
16
|
+
// ascending order button is selected
|
|
17
|
+
expect(sortByAscButton === null || sortByAscButton === void 0 ? void 0 : sortByAscButton.getAttribute('class')).to.equal('sort-button selected');
|
|
18
|
+
const sortByDescButton = sortDirectionButtonList === null || sortDirectionButtonList === void 0 ? void 0 : sortDirectionButtonList.querySelector('#sort-descending-btn');
|
|
19
|
+
expect(sortByDescButton).to.exist;
|
|
20
|
+
// descending order button is not selected
|
|
21
|
+
expect(sortByDescButton === null || sortByDescButton === void 0 ? void 0 : sortByDescButton.getAttribute('class')).to.not.equal('sort-button selected');
|
|
22
|
+
});
|
|
23
|
+
});
|
|
24
|
+
describe('Sort selector default buttons', async () => {
|
|
25
|
+
var _a;
|
|
26
|
+
const el = await fixture(html `
|
|
27
|
+
<sort-filter-bar> </sort-filter-bar>
|
|
28
|
+
`);
|
|
29
|
+
const sortSelectorContainer = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('#desktop-sort-selector');
|
|
30
|
+
it('should render sort-by label', async () => {
|
|
31
|
+
var _a;
|
|
32
|
+
expect((_a = sortSelectorContainer === null || sortSelectorContainer === void 0 ? void 0 : sortSelectorContainer.children.item(0)) === null || _a === void 0 ? void 0 : _a.textContent).to.equal('Sort By');
|
|
33
|
+
});
|
|
34
|
+
it('should render default relevance-sort selector', async () => {
|
|
35
|
+
var _a;
|
|
36
|
+
const defaultSortSelector = (_a = sortSelectorContainer === null || sortSelectorContainer === void 0 ? void 0 : sortSelectorContainer.children.item(1)) === null || _a === void 0 ? void 0 : _a.querySelector('a');
|
|
37
|
+
expect(defaultSortSelector === null || defaultSortSelector === void 0 ? void 0 : defaultSortSelector.textContent).to.contain('Relevance');
|
|
38
|
+
expect(defaultSortSelector === null || defaultSortSelector === void 0 ? void 0 : defaultSortSelector.getAttribute('class')).to.equal('selected');
|
|
39
|
+
});
|
|
40
|
+
it('should render default view-sort selector', async () => {
|
|
41
|
+
var _a;
|
|
42
|
+
const defaultSortSelector = (_a = sortSelectorContainer === null || sortSelectorContainer === void 0 ? void 0 : sortSelectorContainer.children.item(2)) === null || _a === void 0 ? void 0 : _a.querySelector('a');
|
|
43
|
+
expect(defaultSortSelector === null || defaultSortSelector === void 0 ? void 0 : defaultSortSelector.textContent).to.contain('Weekly Views');
|
|
44
|
+
});
|
|
45
|
+
it('should render active view-sort selectors', async () => {
|
|
46
|
+
el.selectedSort = 'alltimeview';
|
|
47
|
+
await el.updateComplete;
|
|
48
|
+
const defaultSortSelector = sortSelectorContainer === null || sortSelectorContainer === void 0 ? void 0 : sortSelectorContainer.querySelector('a.selected');
|
|
49
|
+
expect(defaultSortSelector === null || defaultSortSelector === void 0 ? void 0 : defaultSortSelector.textContent).to.contain('All-time Views');
|
|
50
|
+
});
|
|
51
|
+
it('should render default title-sort selector', async () => {
|
|
52
|
+
var _a;
|
|
53
|
+
const defaultSortSelector = (_a = sortSelectorContainer === null || sortSelectorContainer === void 0 ? void 0 : sortSelectorContainer.children.item(3)) === null || _a === void 0 ? void 0 : _a.querySelector('a');
|
|
54
|
+
expect(defaultSortSelector === null || defaultSortSelector === void 0 ? void 0 : defaultSortSelector.textContent).to.contain('Title');
|
|
55
|
+
});
|
|
56
|
+
it('should render default date-sort selector', async () => {
|
|
57
|
+
var _a;
|
|
58
|
+
const defaultSortSelector = (_a = sortSelectorContainer === null || sortSelectorContainer === void 0 ? void 0 : sortSelectorContainer.children.item(4)) === null || _a === void 0 ? void 0 : _a.querySelector('a');
|
|
59
|
+
expect(defaultSortSelector === null || defaultSortSelector === void 0 ? void 0 : defaultSortSelector.textContent).to.contain('Date Published');
|
|
60
|
+
});
|
|
61
|
+
it('should render active date-sort selectors', async () => {
|
|
62
|
+
el.selectedSort = 'datereviewed';
|
|
63
|
+
await el.updateComplete;
|
|
64
|
+
const defaultSortSelector = sortSelectorContainer === null || sortSelectorContainer === void 0 ? void 0 : sortSelectorContainer.querySelector('a.selected');
|
|
65
|
+
expect(defaultSortSelector === null || defaultSortSelector === void 0 ? void 0 : defaultSortSelector.textContent).to.contain('Date Reviewed');
|
|
66
|
+
});
|
|
67
|
+
it('should render default creator-sort selector', async () => {
|
|
68
|
+
var _a;
|
|
69
|
+
const defaultSortSelector = (_a = sortSelectorContainer === null || sortSelectorContainer === void 0 ? void 0 : sortSelectorContainer.children.item(5)) === null || _a === void 0 ? void 0 : _a.querySelector('a');
|
|
70
|
+
expect(defaultSortSelector === null || defaultSortSelector === void 0 ? void 0 : defaultSortSelector.textContent).to.contain('Creator');
|
|
71
|
+
});
|
|
72
|
+
it('click event on view-sort selector', async () => {
|
|
73
|
+
var _a;
|
|
74
|
+
const defaultSortSelector = (_a = sortSelectorContainer === null || sortSelectorContainer === void 0 ? void 0 : sortSelectorContainer.children.item(2)) === null || _a === void 0 ? void 0 : _a.querySelector('a');
|
|
75
|
+
await (defaultSortSelector === null || defaultSortSelector === void 0 ? void 0 : defaultSortSelector.click());
|
|
76
|
+
expect(el.selectedSort).to.equal('weeklyview');
|
|
77
|
+
});
|
|
78
|
+
it('click event on title selector', async () => {
|
|
79
|
+
var _a;
|
|
80
|
+
const defaultSortSelector = (_a = sortSelectorContainer === null || sortSelectorContainer === void 0 ? void 0 : sortSelectorContainer.children.item(3)) === null || _a === void 0 ? void 0 : _a.querySelector('a');
|
|
81
|
+
await (defaultSortSelector === null || defaultSortSelector === void 0 ? void 0 : defaultSortSelector.click());
|
|
82
|
+
expect(el.selectedSort).to.equal('title');
|
|
83
|
+
});
|
|
84
|
+
it('click event on date-sort selector', async () => {
|
|
85
|
+
var _a;
|
|
86
|
+
const defaultSortSelector = (_a = sortSelectorContainer === null || sortSelectorContainer === void 0 ? void 0 : sortSelectorContainer.children.item(4)) === null || _a === void 0 ? void 0 : _a.querySelector('a');
|
|
87
|
+
await (defaultSortSelector === null || defaultSortSelector === void 0 ? void 0 : defaultSortSelector.click());
|
|
88
|
+
expect(el.selectedSort).to.equal('date');
|
|
89
|
+
});
|
|
90
|
+
it('click event on creator selector', async () => {
|
|
91
|
+
var _a;
|
|
92
|
+
const defaultSortSelector = (_a = sortSelectorContainer === null || sortSelectorContainer === void 0 ? void 0 : sortSelectorContainer.children.item(5)) === null || _a === void 0 ? void 0 : _a.querySelector('a');
|
|
93
|
+
await (defaultSortSelector === null || defaultSortSelector === void 0 ? void 0 : defaultSortSelector.click());
|
|
94
|
+
expect(el.selectedSort).to.equal('creator');
|
|
95
|
+
});
|
|
96
|
+
});
|
|
97
|
+
describe('Display mode/style buttons', () => {
|
|
98
|
+
it('should render all display mode buttons', async () => {
|
|
99
|
+
var _a, _b, _c, _d, _e;
|
|
100
|
+
const el = await fixture(html `
|
|
101
|
+
<sort-filter-bar> </sort-filter-bar>
|
|
102
|
+
`);
|
|
103
|
+
const displayModeButtonList = (_b = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('#display-style-selector')) === null || _b === void 0 ? void 0 : _b.querySelector('ul');
|
|
104
|
+
const gridButton = (_c = displayModeButtonList === null || displayModeButtonList === void 0 ? void 0 : displayModeButtonList.children.item(0)) === null || _c === void 0 ? void 0 : _c.querySelector('#grid-button');
|
|
105
|
+
expect(gridButton).to.exist;
|
|
106
|
+
const detailListButton = (_d = displayModeButtonList === null || displayModeButtonList === void 0 ? void 0 : displayModeButtonList.children.item(1)) === null || _d === void 0 ? void 0 : _d.querySelector('#list-detail-button');
|
|
107
|
+
expect(detailListButton).to.exist;
|
|
108
|
+
const compactListButton = (_e = displayModeButtonList === null || displayModeButtonList === void 0 ? void 0 : displayModeButtonList.children.item(2)) === null || _e === void 0 ? void 0 : _e.querySelector('#list-compact-button');
|
|
109
|
+
expect(compactListButton).to.exist;
|
|
110
|
+
});
|
|
111
|
+
it('should active current display mode', async () => {
|
|
112
|
+
var _a, _b, _c;
|
|
113
|
+
const el = await fixture(html `
|
|
114
|
+
<sort-filter-bar> </sort-filter-bar>
|
|
115
|
+
`);
|
|
116
|
+
el.displayMode = 'grid';
|
|
117
|
+
await el.updateComplete;
|
|
118
|
+
const displayModeTitle = (_c = (_b = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('#display-style-selector')) === null || _b === void 0 ? void 0 : _b.querySelector('button.active')) === null || _c === void 0 ? void 0 : _c.getAttribute('title');
|
|
119
|
+
expect(displayModeTitle).to.equal('Tile view');
|
|
120
|
+
});
|
|
121
|
+
});
|
|
122
|
+
//# sourceMappingURL=sort-filter-bar.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sort-filter-bar.test.js","sourceRoot":"","sources":["../../../test/sort-filter-bar/sort-filter-bar.test.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable import/no-duplicates */\nimport { expect, fixture } from '@open-wc/testing';\nimport { html } from 'lit';\nimport type { SortFilterBar } from '../../src/sort-filter-bar/sort-filter-bar';\nimport type { SortField } from '../../src/models';\n\nimport '../../src/sort-filter-bar/sort-filter-bar';\n\ndescribe('Sort direction buttons', () => {\n it('should render sort direction button', async () => {\n const el = await fixture<SortFilterBar>(html`\n <sort-filter-bar> </sort-filter-bar>\n `);\n\n el.sortDirection = 'asc'; // selected sort\n await el.updateComplete;\n\n const sortDirectionButtonList = el.shadowRoot?.querySelector(\n '#sort-direction-selector'\n );\n\n const sortByAscButton = sortDirectionButtonList?.querySelector(\n '#sort-ascending-btn'\n );\n expect(sortByAscButton).to.exist;\n // ascending order button is selected\n expect(sortByAscButton?.getAttribute('class')).to.equal(\n 'sort-button selected'\n );\n\n const sortByDescButton = sortDirectionButtonList?.querySelector(\n '#sort-descending-btn'\n );\n expect(sortByDescButton).to.exist;\n // descending order button is not selected\n expect(sortByDescButton?.getAttribute('class')).to.not.equal(\n 'sort-button selected'\n );\n });\n});\n\ndescribe('Sort selector default buttons', async () => {\n const el = await fixture<SortFilterBar>(html`\n <sort-filter-bar> </sort-filter-bar>\n `);\n const sortSelectorContainer = el.shadowRoot?.querySelector(\n '#desktop-sort-selector'\n );\n\n it('should render sort-by label', async () => {\n expect(sortSelectorContainer?.children.item(0)?.textContent).to.equal(\n 'Sort By'\n );\n });\n\n it('should render default relevance-sort selector', async () => {\n const defaultSortSelector = sortSelectorContainer?.children\n .item(1)\n ?.querySelector('a');\n expect(defaultSortSelector?.textContent).to.contain('Relevance');\n expect(defaultSortSelector?.getAttribute('class')).to.equal('selected');\n });\n\n it('should render default view-sort selector', async () => {\n const defaultSortSelector = sortSelectorContainer?.children\n .item(2)\n ?.querySelector('a');\n expect(defaultSortSelector?.textContent).to.contain('Weekly Views');\n });\n\n it('should render active view-sort selectors', async () => {\n el.selectedSort = 'alltimeview' as SortField;\n await el.updateComplete;\n\n const defaultSortSelector =\n sortSelectorContainer?.querySelector('a.selected');\n expect(defaultSortSelector?.textContent).to.contain('All-time Views');\n });\n\n it('should render default title-sort selector', async () => {\n const defaultSortSelector = sortSelectorContainer?.children\n .item(3)\n ?.querySelector('a');\n expect(defaultSortSelector?.textContent).to.contain('Title');\n });\n\n it('should render default date-sort selector', async () => {\n const defaultSortSelector = sortSelectorContainer?.children\n .item(4)\n ?.querySelector('a');\n expect(defaultSortSelector?.textContent).to.contain('Date Published');\n });\n\n it('should render active date-sort selectors', async () => {\n el.selectedSort = 'datereviewed' as SortField;\n await el.updateComplete;\n\n const defaultSortSelector =\n sortSelectorContainer?.querySelector('a.selected');\n expect(defaultSortSelector?.textContent).to.contain('Date Reviewed');\n });\n\n it('should render default creator-sort selector', async () => {\n const defaultSortSelector = sortSelectorContainer?.children\n .item(5)\n ?.querySelector('a');\n expect(defaultSortSelector?.textContent).to.contain('Creator');\n });\n\n it('click event on view-sort selector', async () => {\n const defaultSortSelector = sortSelectorContainer?.children\n .item(2)\n ?.querySelector('a');\n\n await defaultSortSelector?.click();\n expect(el.selectedSort).to.equal('weeklyview');\n });\n\n it('click event on title selector', async () => {\n const defaultSortSelector = sortSelectorContainer?.children\n .item(3)\n ?.querySelector('a');\n\n await defaultSortSelector?.click();\n expect(el.selectedSort).to.equal('title');\n });\n\n it('click event on date-sort selector', async () => {\n const defaultSortSelector = sortSelectorContainer?.children\n .item(4)\n ?.querySelector('a');\n\n await defaultSortSelector?.click();\n expect(el.selectedSort).to.equal('date');\n });\n\n it('click event on creator selector', async () => {\n const defaultSortSelector = sortSelectorContainer?.children\n .item(5)\n ?.querySelector('a');\n\n await defaultSortSelector?.click();\n expect(el.selectedSort).to.equal('creator');\n });\n});\n\ndescribe('Display mode/style buttons', () => {\n it('should render all display mode buttons', async () => {\n const el = await fixture<SortFilterBar>(html`\n <sort-filter-bar> </sort-filter-bar>\n `);\n\n const displayModeButtonList = el.shadowRoot\n ?.querySelector('#display-style-selector')\n ?.querySelector('ul');\n\n const gridButton = displayModeButtonList?.children\n .item(0)\n ?.querySelector('#grid-button');\n expect(gridButton).to.exist;\n\n const detailListButton = displayModeButtonList?.children\n .item(1)\n ?.querySelector('#list-detail-button');\n expect(detailListButton).to.exist;\n\n const compactListButton = displayModeButtonList?.children\n .item(2)\n ?.querySelector('#list-compact-button');\n expect(compactListButton).to.exist;\n });\n\n it('should active current display mode', async () => {\n const el = await fixture<SortFilterBar>(html`\n <sort-filter-bar> </sort-filter-bar>\n `);\n\n el.displayMode = 'grid';\n await el.updateComplete;\n\n const displayModeTitle = el.shadowRoot\n ?.querySelector('#display-style-selector')\n ?.querySelector('button.active')\n ?.getAttribute('title');\n expect(displayModeTitle).to.equal('Tile view');\n });\n});\n"]}
|
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"description": "The Internet Archive Collection Browser.",
|
|
4
4
|
"license": "AGPL-3.0-only",
|
|
5
5
|
"author": "Internet Archive",
|
|
6
|
-
"version": "0.2.
|
|
6
|
+
"version": "0.2.16-alpha1",
|
|
7
7
|
"main": "dist/index.js",
|
|
8
8
|
"module": "dist/index.js",
|
|
9
9
|
"scripts": {
|
|
@@ -26,8 +26,10 @@
|
|
|
26
26
|
"@internetarchive/feature-feedback": "^0.1.4",
|
|
27
27
|
"@internetarchive/field-parsers": "^0.1.3",
|
|
28
28
|
"@internetarchive/histogram-date-range": "^0.1.7",
|
|
29
|
+
"@internetarchive/ia-activity-indicator": "^0.0.3",
|
|
29
30
|
"@internetarchive/infinite-scroller": "^0.1.3",
|
|
30
31
|
"@internetarchive/local-cache": "^0.2.1",
|
|
32
|
+
"@internetarchive/modal-manager": "^0.2.6",
|
|
31
33
|
"@internetarchive/search-service": "^0.3.4",
|
|
32
34
|
"@internetarchive/shared-resize-observer": "^0.2.0",
|
|
33
35
|
"@lit/localize": "^0.11.2",
|
package/src/app-root.ts
CHANGED
|
@@ -4,6 +4,7 @@ import { html, css, LitElement, PropertyValues } from 'lit';
|
|
|
4
4
|
import { customElement, query, state } from 'lit/decorators.js';
|
|
5
5
|
import { SharedResizeObserver } from '@internetarchive/shared-resize-observer';
|
|
6
6
|
import { CollectionNameCache } from '@internetarchive/collection-name-cache';
|
|
7
|
+
import type { ModalManagerInterface } from '@internetarchive/modal-manager';
|
|
7
8
|
import type { CollectionBrowser } from '../src/collection-browser';
|
|
8
9
|
import '../src/collection-browser';
|
|
9
10
|
|
|
@@ -40,6 +41,8 @@ export class AppRoot extends LitElement {
|
|
|
40
41
|
|
|
41
42
|
@query('collection-browser') private collectionBrowser!: CollectionBrowser;
|
|
42
43
|
|
|
44
|
+
@query('modal-manager') private modalManager!: ModalManagerInterface;
|
|
45
|
+
|
|
43
46
|
private searchPressed(e: Event) {
|
|
44
47
|
e.preventDefault();
|
|
45
48
|
this.searchQuery = this.baseQueryField.value;
|
|
@@ -171,11 +174,13 @@ export class AppRoot extends LitElement {
|
|
|
171
174
|
.collectionNameCache=${this.collectionNameCache}
|
|
172
175
|
.showHistogramDatePicker=${true}
|
|
173
176
|
.loggedIn=${this.loggedIn}
|
|
177
|
+
.modalManager=${this.modalManager}
|
|
174
178
|
@visiblePageChanged=${this.visiblePageChanged}
|
|
175
179
|
@baseQueryChanged=${this.baseQueryChanged}
|
|
176
180
|
>
|
|
177
181
|
</collection-browser>
|
|
178
182
|
</div>
|
|
183
|
+
<modal-manager></modal-manager>
|
|
179
184
|
`;
|
|
180
185
|
}
|
|
181
186
|
|
|
@@ -255,6 +260,28 @@ export class AppRoot extends LitElement {
|
|
|
255
260
|
static styles = css`
|
|
256
261
|
:host {
|
|
257
262
|
display: block;
|
|
263
|
+
--primaryButtonBGColor: #194880;
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
/* add the following styles to ensure proper modal visibility */
|
|
267
|
+
body.modal-manager-open {
|
|
268
|
+
overflow: hidden;
|
|
269
|
+
}
|
|
270
|
+
modal-manager {
|
|
271
|
+
display: none;
|
|
272
|
+
}
|
|
273
|
+
modal-manager[mode='open'] {
|
|
274
|
+
display: block;
|
|
275
|
+
}
|
|
276
|
+
modal-manager.more-search-facets {
|
|
277
|
+
--modalWidth: 85rem;
|
|
278
|
+
--modalBorder: 2px solid var(--primaryButtonBGColor, #194880);
|
|
279
|
+
--modalTitleLineHeight: 4rem;
|
|
280
|
+
--modalTitleFontSize: 1.8rem;
|
|
281
|
+
--modalCornerRadius: 0;
|
|
282
|
+
--modalBottomPadding: 0;
|
|
283
|
+
--modalScrollOffset: 0;
|
|
284
|
+
--modalCornerRadius: 0.5rem;
|
|
258
285
|
}
|
|
259
286
|
|
|
260
287
|
input,
|
|
@@ -263,7 +290,7 @@ export class AppRoot extends LitElement {
|
|
|
263
290
|
}
|
|
264
291
|
|
|
265
292
|
collection-browser {
|
|
266
|
-
margin-top:
|
|
293
|
+
margin-top: 20rem;
|
|
267
294
|
}
|
|
268
295
|
|
|
269
296
|
#base-query-field {
|
|
@@ -274,7 +301,7 @@ export class AppRoot extends LitElement {
|
|
|
274
301
|
position: fixed;
|
|
275
302
|
top: 0;
|
|
276
303
|
left: 0;
|
|
277
|
-
z-index:
|
|
304
|
+
z-index: 1;
|
|
278
305
|
-webkit-backdrop-filter: blur(10px);
|
|
279
306
|
backdrop-filter: blur(10px);
|
|
280
307
|
padding: 0.5rem 1rem;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { svg } from 'lit';
|
|
2
|
+
|
|
3
|
+
export default svg`
|
|
4
|
+
<svg viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg">
|
|
5
|
+
<path
|
|
6
|
+
d="m20.1116715 50.0035012-.1116715-.1085359 43.1159942-46.61088155c2.401537-2.18938917 4.6902018-3.28408375 6.8659943-3.28408375s4.1642651.63837733 5.9654178 1.91513199c1.8011528 1.27675467 3.1520173 2.97248092 4.0525937 5.08717877l-39.4020173 42.99768924 39.4020173 42.9976892c-.9005764 2.1146979-2.2514409 3.8104241-4.0525937 5.0871788-1.8011527 1.2767547-3.7896253 1.915132-5.9654178 1.915132-2.1013449 0-4.3900096-1.0573489-6.8659943-3.1720468l-43.1159942-46.7194174z"
|
|
7
|
+
/>
|
|
8
|
+
<title>Go left icon</title>
|
|
9
|
+
</svg>
|
|
10
|
+
`;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { svg } from 'lit';
|
|
2
|
+
|
|
3
|
+
export default svg`
|
|
4
|
+
<svg viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg">
|
|
5
|
+
<path
|
|
6
|
+
d="m79.8883285 50.0035012.1116715-.1085359-43.1159942-46.61088155c-2.401537-2.18938917-4.6902018-3.28408375-6.8659943-3.28408375s-4.1642651.63837733-5.9654178 1.91513199c-1.8011528 1.27675467-3.1520173 2.97248092-4.0525937 5.08717877l39.4020173 42.99768924-39.4020173 42.9976892c.9005764 2.1146979 2.2514409 3.8104241 4.0525937 5.0871788 1.8011527 1.2767547 3.7896253 1.915132 5.9654178 1.915132 2.1013449 0 4.3900096-1.0573489 6.8659943-3.1720468l43.1159942-46.7194174z"
|
|
7
|
+
/>
|
|
8
|
+
<title>Go right icon</title>
|
|
9
|
+
</svg>
|
|
10
|
+
`;
|
|
@@ -27,6 +27,7 @@ import type {
|
|
|
27
27
|
} from '@internetarchive/shared-resize-observer';
|
|
28
28
|
import '@internetarchive/infinite-scroller';
|
|
29
29
|
import type { CollectionNameCacheInterface } from '@internetarchive/collection-name-cache';
|
|
30
|
+
import type { ModalManagerInterface } from '@internetarchive/modal-manager';
|
|
30
31
|
import './tiles/tile-dispatcher';
|
|
31
32
|
import './tiles/collection-browser-loading-tile';
|
|
32
33
|
import './sort-filter-bar/sort-filter-bar';
|
|
@@ -115,6 +116,8 @@ export class CollectionBrowser
|
|
|
115
116
|
|
|
116
117
|
@property({ type: Boolean }) loggedIn = false;
|
|
117
118
|
|
|
119
|
+
@property({ type: Object }) modalManager?: ModalManagerInterface = undefined;
|
|
120
|
+
|
|
118
121
|
/**
|
|
119
122
|
* If item management UI active
|
|
120
123
|
*/
|
|
@@ -425,6 +428,7 @@ export class CollectionBrowser
|
|
|
425
428
|
<collection-facets
|
|
426
429
|
@facetsChanged=${this.facetsChanged}
|
|
427
430
|
@histogramDateRangeUpdated=${this.histogramDateRangeUpdated}
|
|
431
|
+
.searchService=${this.searchService}
|
|
428
432
|
.aggregations=${this.aggregations}
|
|
429
433
|
.fullYearsHistogramAggregation=${this.fullYearsHistogramAggregation}
|
|
430
434
|
.minSelectedDate=${this.minSelectedDate}
|
|
@@ -433,6 +437,8 @@ export class CollectionBrowser
|
|
|
433
437
|
.collectionNameCache=${this.collectionNameCache}
|
|
434
438
|
.languageCodeHandler=${this.languageCodeHandler}
|
|
435
439
|
.showHistogramDatePicker=${this.showHistogramDatePicker}
|
|
440
|
+
.fullQuery=${this.fullQuery}
|
|
441
|
+
.modalManager=${this.modalManager}
|
|
436
442
|
?collapsableFacets=${this.mobileView}
|
|
437
443
|
?facetsLoading=${this.facetDataLoading}
|
|
438
444
|
?fullYearAggregationLoading=${this.fullYearAggregationLoading}
|
|
@@ -497,7 +503,8 @@ export class CollectionBrowser
|
|
|
497
503
|
if (
|
|
498
504
|
changed.has('displayMode') ||
|
|
499
505
|
changed.has('baseNavigationUrl') ||
|
|
500
|
-
changed.has('baseImageUrl')
|
|
506
|
+
changed.has('baseImageUrl') ||
|
|
507
|
+
changed.has('loggedIn')
|
|
501
508
|
) {
|
|
502
509
|
this.infiniteScroller?.reload();
|
|
503
510
|
}
|
|
@@ -1208,17 +1215,6 @@ export class CollectionBrowser
|
|
|
1208
1215
|
width: 18rem;
|
|
1209
1216
|
padding-right: 12px;
|
|
1210
1217
|
padding-right: 1rem;
|
|
1211
|
-
padding-bottom: 20px;
|
|
1212
|
-
top: 0;
|
|
1213
|
-
position: sticky;
|
|
1214
|
-
max-height: 100vh;
|
|
1215
|
-
overflow: scroll;
|
|
1216
|
-
-ms-overflow-style: none; /* hide scrollbar IE and Edge */
|
|
1217
|
-
scrollbar-width: none; /* hide scrollbar Firefox */
|
|
1218
|
-
}
|
|
1219
|
-
|
|
1220
|
-
#left-column::-webkit-scrollbar {
|
|
1221
|
-
display: none;
|
|
1222
1218
|
}
|
|
1223
1219
|
|
|
1224
1220
|
.mobile #left-column {
|
|
@@ -1236,7 +1232,6 @@ export class CollectionBrowser
|
|
|
1236
1232
|
max-height: 0;
|
|
1237
1233
|
transition: max-height 0.2s ease-in-out;
|
|
1238
1234
|
z-index: 1;
|
|
1239
|
-
padding-bottom: 2rem;
|
|
1240
1235
|
}
|
|
1241
1236
|
|
|
1242
1237
|
.mobile #facets-container {
|