@internetarchive/collection-browser 3.4.1-alpha-webdev7761.4 → 3.4.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 +27 -27
- 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/.prettierignore +1 -1
- package/LICENSE +661 -661
- package/README.md +83 -83
- package/dist/src/app-root.js +28 -19
- package/dist/src/app-root.js.map +1 -1
- package/dist/src/collection-browser.d.ts +4 -24
- package/dist/src/collection-browser.js +125 -286
- package/dist/src/collection-browser.js.map +1 -1
- package/dist/src/collection-facets/facet-row.js +143 -143
- package/dist/src/collection-facets/facet-row.js.map +1 -1
- package/dist/src/collection-facets/more-facets-content.d.ts +1 -1
- package/dist/src/collection-facets/more-facets-content.js +48 -34
- package/dist/src/collection-facets/more-facets-content.js.map +1 -1
- package/dist/src/collection-facets/more-facets-pagination.js +10 -6
- package/dist/src/collection-facets/more-facets-pagination.js.map +1 -1
- package/dist/src/collection-facets/smart-facets/heuristics/wikidata/wikidata-heuristic.js +21 -16
- package/dist/src/collection-facets/smart-facets/heuristics/wikidata/wikidata-heuristic.js.map +1 -1
- package/dist/src/collection-facets/smart-facets/smart-facet-bar.js +10 -7
- package/dist/src/collection-facets/smart-facets/smart-facet-bar.js.map +1 -1
- package/dist/src/collection-facets/smart-facets/smart-facet-button.js +2 -3
- package/dist/src/collection-facets/smart-facets/smart-facet-button.js.map +1 -1
- package/dist/src/collection-facets/smart-facets/smart-facet-dropdown.js +11 -9
- package/dist/src/collection-facets/smart-facets/smart-facet-dropdown.js.map +1 -1
- package/dist/src/collection-facets/smart-facets/smart-facet-heuristics.js +7 -7
- package/dist/src/collection-facets/smart-facets/smart-facet-heuristics.js.map +1 -1
- package/dist/src/collection-facets/toggle-switch.js +6 -4
- package/dist/src/collection-facets/toggle-switch.js.map +1 -1
- package/dist/src/collection-facets.js +310 -309
- package/dist/src/collection-facets.js.map +1 -1
- package/dist/src/data-source/collection-browser-data-source-interface.d.ts +1 -10
- package/dist/src/data-source/collection-browser-data-source-interface.js.map +1 -1
- package/dist/src/data-source/collection-browser-data-source.d.ts +1 -19
- package/dist/src/data-source/collection-browser-data-source.js +65 -71
- package/dist/src/data-source/collection-browser-data-source.js.map +1 -1
- package/dist/src/data-source/collection-browser-query-state.d.ts +2 -1
- package/dist/src/data-source/collection-browser-query-state.js.map +1 -1
- package/dist/src/data-source/models.d.ts +0 -11
- package/dist/src/data-source/models.js.map +1 -1
- package/dist/src/empty-placeholder.js +18 -19
- package/dist/src/empty-placeholder.js.map +1 -1
- package/dist/src/expanded-date-picker.js +10 -6
- package/dist/src/expanded-date-picker.js.map +1 -1
- package/dist/src/language-code-handler/language-code-handler.js +2 -2
- package/dist/src/language-code-handler/language-code-handler.js.map +1 -1
- package/dist/src/manage/manage-bar.js +15 -9
- package/dist/src/manage/manage-bar.js.map +1 -1
- package/dist/src/manage/remove-items-modal-content.js +2 -2
- package/dist/src/manage/remove-items-modal-content.js.map +1 -1
- package/dist/src/models.d.ts +6 -2
- package/dist/src/models.js +54 -46
- package/dist/src/models.js.map +1 -1
- package/dist/src/restoration-state-handler.d.ts +2 -1
- package/dist/src/restoration-state-handler.js +19 -12
- package/dist/src/restoration-state-handler.js.map +1 -1
- package/dist/src/sort-filter-bar/alpha-bar.js +14 -9
- package/dist/src/sort-filter-bar/alpha-bar.js.map +1 -1
- package/dist/src/sort-filter-bar/sort-filter-bar.js +24 -14
- package/dist/src/sort-filter-bar/sort-filter-bar.js.map +1 -1
- package/dist/src/tiles/base-tile-component.js +2 -1
- package/dist/src/tiles/base-tile-component.js.map +1 -1
- package/dist/src/tiles/grid/account-tile.js +7 -5
- package/dist/src/tiles/grid/account-tile.js.map +1 -1
- package/dist/src/tiles/grid/collection-tile.js +6 -3
- package/dist/src/tiles/grid/collection-tile.js.map +1 -1
- package/dist/src/tiles/grid/item-tile.js +33 -23
- package/dist/src/tiles/grid/item-tile.js.map +1 -1
- package/dist/src/tiles/grid/search-tile.js +2 -1
- package/dist/src/tiles/grid/search-tile.js.map +1 -1
- package/dist/src/tiles/grid/tile-stats.js +3 -2
- package/dist/src/tiles/grid/tile-stats.js.map +1 -1
- package/dist/src/tiles/hover/hover-pane-controller.js +28 -21
- package/dist/src/tiles/hover/hover-pane-controller.js.map +1 -1
- package/dist/src/tiles/hover/tile-hover-pane.js +4 -3
- package/dist/src/tiles/hover/tile-hover-pane.js.map +1 -1
- package/dist/src/tiles/image-block.js +8 -5
- package/dist/src/tiles/image-block.js.map +1 -1
- package/dist/src/tiles/item-image.js +19 -12
- package/dist/src/tiles/item-image.js.map +1 -1
- package/dist/src/tiles/list/tile-list-compact.js +25 -17
- package/dist/src/tiles/list/tile-list-compact.js.map +1 -1
- package/dist/src/tiles/list/tile-list.js +55 -34
- package/dist/src/tiles/list/tile-list.js.map +1 -1
- package/dist/src/tiles/overlay/icon-overlay.js +2 -1
- package/dist/src/tiles/overlay/icon-overlay.js.map +1 -1
- package/dist/src/tiles/overlay/text-overlay.js +4 -2
- package/dist/src/tiles/overlay/text-overlay.js.map +1 -1
- package/dist/src/tiles/text-snippet-block.js +4 -2
- package/dist/src/tiles/text-snippet-block.js.map +1 -1
- package/dist/src/tiles/tile-dispatcher.js +30 -22
- package/dist/src/tiles/tile-dispatcher.js.map +1 -1
- package/dist/src/tiles/tile-display-value-provider.js +9 -5
- package/dist/src/tiles/tile-display-value-provider.js.map +1 -1
- package/dist/src/tiles/tile-mediatype-icon.js +19 -12
- package/dist/src/tiles/tile-mediatype-icon.js.map +1 -1
- package/dist/src/utils/collapse-repeated-quotes.js +1 -1
- package/dist/src/utils/collapse-repeated-quotes.js.map +1 -1
- package/dist/src/utils/facet-utils.js +5 -3
- package/dist/src/utils/facet-utils.js.map +1 -1
- package/dist/src/utils/format-count.js +10 -10
- package/dist/src/utils/format-count.js.map +1 -1
- package/dist/src/utils/resolve-mediatype.js +3 -2
- package/dist/src/utils/resolve-mediatype.js.map +1 -1
- package/dist/test/collection-browser.test.js +380 -336
- package/dist/test/collection-browser.test.js.map +1 -1
- package/dist/test/collection-facets/facet-row.test.js +52 -37
- package/dist/test/collection-facets/facet-row.test.js.map +1 -1
- package/dist/test/collection-facets/facets-template.test.js +23 -17
- package/dist/test/collection-facets/facets-template.test.js.map +1 -1
- package/dist/test/collection-facets/more-facets-content.test.js +32 -22
- package/dist/test/collection-facets/more-facets-content.test.js.map +1 -1
- package/dist/test/collection-facets/more-facets-pagination.test.js +22 -16
- package/dist/test/collection-facets/more-facets-pagination.test.js.map +1 -1
- package/dist/test/collection-facets/toggle-switch.test.js +19 -22
- package/dist/test/collection-facets/toggle-switch.test.js.map +1 -1
- package/dist/test/collection-facets.test.js +77 -60
- package/dist/test/collection-facets.test.js.map +1 -1
- package/dist/test/empty-placeholder.test.js +17 -11
- package/dist/test/empty-placeholder.test.js.map +1 -1
- package/dist/test/expanded-date-picker.test.js +14 -8
- package/dist/test/expanded-date-picker.test.js.map +1 -1
- package/dist/test/icon-overlay.test.js +6 -7
- package/dist/test/icon-overlay.test.js.map +1 -1
- package/dist/test/image-block.test.js +26 -16
- package/dist/test/image-block.test.js.map +1 -1
- package/dist/test/item-image.test.js +32 -23
- package/dist/test/item-image.test.js.map +1 -1
- package/dist/test/manage/manage-bar.test.js +33 -21
- package/dist/test/manage/manage-bar.test.js.map +1 -1
- package/dist/test/manage/remove-items-modal-content.test.js +15 -10
- package/dist/test/manage/remove-items-modal-content.test.js.map +1 -1
- package/dist/test/mocks/mock-search-service.js +3 -2
- package/dist/test/mocks/mock-search-service.js.map +1 -1
- package/dist/test/restoration-state-handler.test.js +54 -14
- package/dist/test/restoration-state-handler.test.js.map +1 -1
- package/dist/test/review-block.test.js +18 -16
- package/dist/test/review-block.test.js.map +1 -1
- package/dist/test/sort-filter-bar/alpha-bar-tooltip.test.js +3 -2
- package/dist/test/sort-filter-bar/alpha-bar-tooltip.test.js.map +1 -1
- package/dist/test/sort-filter-bar/alpha-bar.test.js +24 -18
- package/dist/test/sort-filter-bar/alpha-bar.test.js.map +1 -1
- package/dist/test/sort-filter-bar/sort-filter-bar.test.js +180 -178
- package/dist/test/sort-filter-bar/sort-filter-bar.test.js.map +1 -1
- package/dist/test/text-overlay.test.js +15 -16
- package/dist/test/text-overlay.test.js.map +1 -1
- package/dist/test/text-snippet-block.test.js +19 -14
- package/dist/test/text-snippet-block.test.js.map +1 -1
- package/dist/test/tile-stats.test.js +34 -73
- package/dist/test/tile-stats.test.js.map +1 -1
- package/dist/test/tiles/grid/account-tile.test.js +25 -25
- package/dist/test/tiles/grid/account-tile.test.js.map +1 -1
- package/dist/test/tiles/grid/collection-tile.test.js +19 -13
- package/dist/test/tiles/grid/collection-tile.test.js.map +1 -1
- package/dist/test/tiles/grid/item-tile.test.js +91 -64
- package/dist/test/tiles/grid/item-tile.test.js.map +1 -1
- package/dist/test/tiles/grid/search-tile.test.js +13 -9
- package/dist/test/tiles/grid/search-tile.test.js.map +1 -1
- package/dist/test/tiles/hover/hover-pane-controller.test.js +35 -23
- package/dist/test/tiles/hover/hover-pane-controller.test.js.map +1 -1
- package/dist/test/tiles/hover/tile-hover-pane.test.js +16 -12
- package/dist/test/tiles/hover/tile-hover-pane.test.js.map +1 -1
- package/dist/test/tiles/list/tile-list-compact.test.js +48 -34
- package/dist/test/tiles/list/tile-list-compact.test.js.map +1 -1
- package/dist/test/tiles/list/tile-list.test.js +105 -76
- package/dist/test/tiles/list/tile-list.test.js.map +1 -1
- package/dist/test/tiles/tile-dispatcher.test.js +30 -17
- package/dist/test/tiles/tile-dispatcher.test.js.map +1 -1
- package/dist/test/tiles/tile-mediatype-icon.test.js +24 -12
- package/dist/test/tiles/tile-mediatype-icon.test.js.map +1 -1
- package/eslint.config.mjs +53 -53
- package/index.html +24 -24
- package/local.archive.org.cert +86 -86
- package/local.archive.org.key +27 -27
- package/package.json +118 -120
- package/renovate.json +6 -6
- package/src/collection-browser.ts +15 -246
- package/src/collection-facets/facet-row.ts +296 -299
- package/src/collection-facets/more-facets-content.ts +8 -5
- package/src/collection-facets.ts +995 -1010
- package/src/data-source/collection-browser-data-source-interface.ts +333 -345
- package/src/data-source/collection-browser-data-source.ts +1401 -1441
- package/src/data-source/collection-browser-query-state.ts +65 -59
- package/src/data-source/models.ts +43 -56
- package/src/models.ts +870 -866
- package/src/restoration-state-handler.ts +544 -546
- package/test/collection-browser.test.ts +2403 -2413
- package/test/restoration-state-handler.test.ts +510 -480
- package/tsconfig.json +20 -25
- package/vite.config.ts +22 -29
- package/web-dev-server.config.mjs +30 -30
- package/web-test-runner.config.mjs +41 -41
- package/dist/src/combo-box/caret-closed.d.ts +0 -2
- package/dist/src/combo-box/caret-closed.js +0 -7
- package/dist/src/combo-box/caret-closed.js.map +0 -1
- package/dist/src/combo-box/caret-open.d.ts +0 -2
- package/dist/src/combo-box/caret-open.js +0 -7
- package/dist/src/combo-box/caret-open.js.map +0 -1
- package/dist/src/combo-box/clear.d.ts +0 -2
- package/dist/src/combo-box/clear.js +0 -11
- package/dist/src/combo-box/clear.js.map +0 -1
- package/dist/src/combo-box/ia-combo-box.d.ts +0 -422
- package/dist/src/combo-box/ia-combo-box.js +0 -1203
- package/dist/src/combo-box/ia-combo-box.js.map +0 -1
- package/dist/src/combo-box/models.d.ts +0 -75
- package/dist/src/combo-box/models.js +0 -40
- package/dist/src/combo-box/models.js.map +0 -1
- package/src/combo-box/caret-closed.ts +0 -7
- package/src/combo-box/caret-open.ts +0 -7
- package/src/combo-box/clear.ts +0 -11
- package/src/combo-box/ia-combo-box.ts +0 -1288
- package/src/combo-box/models.ts +0 -113
|
@@ -9,11 +9,12 @@ describe('Sort selector default buttons', async () => {
|
|
|
9
9
|
let sortSelectorContainer;
|
|
10
10
|
let desktopSortSelector;
|
|
11
11
|
beforeEach(async () => {
|
|
12
|
+
var _a;
|
|
12
13
|
el = await fixture(html `
|
|
13
14
|
<sort-filter-bar></sort-filter-bar>
|
|
14
15
|
`);
|
|
15
|
-
sortSelectorContainer = el.shadowRoot
|
|
16
|
-
desktopSortSelector = sortSelectorContainer
|
|
16
|
+
sortSelectorContainer = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('#sort-selector-container');
|
|
17
|
+
desktopSortSelector = sortSelectorContainer === null || sortSelectorContainer === void 0 ? void 0 : sortSelectorContainer.querySelector('#desktop-sort-selector');
|
|
17
18
|
el.resizeObserver = new SharedResizeObserver();
|
|
18
19
|
await el.updateComplete;
|
|
19
20
|
});
|
|
@@ -22,44 +23,48 @@ describe('Sort selector default buttons', async () => {
|
|
|
22
23
|
expect(desktopSortSelector).to.exist;
|
|
23
24
|
});
|
|
24
25
|
it('should render sort-by label', async () => {
|
|
25
|
-
|
|
26
|
+
var _a, _b;
|
|
27
|
+
const sortByLabel = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.sort-by-text');
|
|
26
28
|
expect(sortByLabel).to.exist;
|
|
27
|
-
expect(sortByLabel
|
|
29
|
+
expect((_b = sortByLabel === null || sortByLabel === void 0 ? void 0 : sortByLabel.textContent) === null || _b === void 0 ? void 0 : _b.trim()).to.equal('Sort by:');
|
|
28
30
|
});
|
|
29
31
|
it('should render sort direction button', async () => {
|
|
30
|
-
|
|
32
|
+
var _a;
|
|
33
|
+
const sortDirections = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.sort-direction-container');
|
|
31
34
|
expect(sortDirections).to.exist;
|
|
32
|
-
expect(sortDirections
|
|
35
|
+
expect(sortDirections === null || sortDirections === void 0 ? void 0 : sortDirections.querySelector('.sort-direction-icon')).to.exist;
|
|
33
36
|
});
|
|
34
37
|
it('renders default set of sort options if not overridden', async () => {
|
|
35
|
-
|
|
38
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q;
|
|
39
|
+
const allSortSelectors = desktopSortSelector === null || desktopSortSelector === void 0 ? void 0 : desktopSortSelector.querySelectorAll('button');
|
|
36
40
|
expect(allSortSelectors).to.exist;
|
|
37
41
|
expect(allSortSelectors.length).to.equal(3);
|
|
38
|
-
expect(allSortSelectors[0]
|
|
39
|
-
expect(allSortSelectors[1]
|
|
40
|
-
expect(allSortSelectors[2]
|
|
41
|
-
const allSortDropdowns = desktopSortSelector
|
|
42
|
+
expect((_b = (_a = allSortSelectors[0]) === null || _a === void 0 ? void 0 : _a.textContent) === null || _b === void 0 ? void 0 : _b.trim()).to.equal('Relevance');
|
|
43
|
+
expect((_d = (_c = allSortSelectors[1]) === null || _c === void 0 ? void 0 : _c.textContent) === null || _d === void 0 ? void 0 : _d.trim()).to.equal('Title');
|
|
44
|
+
expect((_f = (_e = allSortSelectors[2]) === null || _e === void 0 ? void 0 : _e.textContent) === null || _f === void 0 ? void 0 : _f.trim()).to.equal('Creator');
|
|
45
|
+
const allSortDropdowns = desktopSortSelector === null || desktopSortSelector === void 0 ? void 0 : desktopSortSelector.querySelectorAll('ia-dropdown');
|
|
42
46
|
expect(allSortDropdowns).to.exist;
|
|
43
47
|
expect(allSortDropdowns.length).to.equal(2);
|
|
44
|
-
expect(allSortDropdowns[0]
|
|
45
|
-
expect(allSortDropdowns[0]
|
|
48
|
+
expect((_g = allSortDropdowns[0]) === null || _g === void 0 ? void 0 : _g.options.length).to.equal(2);
|
|
49
|
+
expect((_h = allSortDropdowns[0]) === null || _h === void 0 ? void 0 : _h.options.map(o => o.id)).to.deep.equal([
|
|
46
50
|
SortField.weeklyview,
|
|
47
51
|
SortField.alltimeview,
|
|
48
52
|
]);
|
|
49
|
-
expect(allSortDropdowns[0]
|
|
50
|
-
expect(allSortDropdowns[1]
|
|
51
|
-
expect(allSortDropdowns[1]
|
|
53
|
+
expect((_k = (_j = allSortDropdowns[0]) === null || _j === void 0 ? void 0 : _j.textContent) === null || _k === void 0 ? void 0 : _k.trim()).to.equal('Weekly views');
|
|
54
|
+
expect((_l = allSortDropdowns[1]) === null || _l === void 0 ? void 0 : _l.options.length).to.equal(4);
|
|
55
|
+
expect((_m = allSortDropdowns[1]) === null || _m === void 0 ? void 0 : _m.options.map(o => o.id)).to.deep.equal([
|
|
52
56
|
SortField.date,
|
|
53
57
|
SortField.datearchived,
|
|
54
58
|
SortField.datereviewed,
|
|
55
59
|
SortField.dateadded,
|
|
56
60
|
]);
|
|
57
|
-
expect(allSortDropdowns[1]
|
|
61
|
+
expect((_p = (_o = allSortDropdowns[1]) === null || _o === void 0 ? void 0 : _o.textContent) === null || _p === void 0 ? void 0 : _p.trim()).to.equal('Date published');
|
|
58
62
|
// Relevance selected by default
|
|
59
|
-
const defaultSortSelector = desktopSortSelector
|
|
60
|
-
expect(defaultSortSelector
|
|
63
|
+
const defaultSortSelector = desktopSortSelector === null || desktopSortSelector === void 0 ? void 0 : desktopSortSelector.querySelector('button.selected');
|
|
64
|
+
expect((_q = defaultSortSelector === null || defaultSortSelector === void 0 ? void 0 : defaultSortSelector.textContent) === null || _q === void 0 ? void 0 : _q.trim()).to.equal('Relevance');
|
|
61
65
|
});
|
|
62
66
|
it('renders an overridden set of sort options if specified', async () => {
|
|
67
|
+
var _a, _b, _c, _d, _e, _f;
|
|
63
68
|
const customSortAvailability = {
|
|
64
69
|
...defaultSortAvailability,
|
|
65
70
|
[SortField.title]: false,
|
|
@@ -70,26 +75,27 @@ describe('Sort selector default buttons', async () => {
|
|
|
70
75
|
};
|
|
71
76
|
el.sortFieldAvailability = customSortAvailability;
|
|
72
77
|
await el.updateComplete;
|
|
73
|
-
const allSortSelectors = desktopSortSelector
|
|
78
|
+
const allSortSelectors = desktopSortSelector === null || desktopSortSelector === void 0 ? void 0 : desktopSortSelector.querySelectorAll('button');
|
|
74
79
|
expect(allSortSelectors).to.exist;
|
|
75
80
|
expect(allSortSelectors.length).to.equal(1);
|
|
76
|
-
expect(allSortSelectors[0]
|
|
77
|
-
const allSortDropdowns = desktopSortSelector
|
|
81
|
+
expect((_b = (_a = allSortSelectors[0]) === null || _a === void 0 ? void 0 : _a.textContent) === null || _b === void 0 ? void 0 : _b.trim()).to.equal('Relevance');
|
|
82
|
+
const allSortDropdowns = desktopSortSelector === null || desktopSortSelector === void 0 ? void 0 : desktopSortSelector.querySelectorAll('ia-dropdown');
|
|
78
83
|
expect(allSortDropdowns).to.exist;
|
|
79
84
|
expect(allSortDropdowns.length).to.equal(2);
|
|
80
|
-
expect(allSortDropdowns[0]
|
|
81
|
-
expect(allSortDropdowns[0]
|
|
85
|
+
expect((_c = allSortDropdowns[0]) === null || _c === void 0 ? void 0 : _c.options.length).to.equal(2);
|
|
86
|
+
expect((_d = allSortDropdowns[0]) === null || _d === void 0 ? void 0 : _d.options.map(o => o.id)).to.deep.equal([
|
|
82
87
|
SortField.weeklyview,
|
|
83
88
|
SortField.alltimeview,
|
|
84
89
|
]);
|
|
85
|
-
expect(allSortDropdowns[1]
|
|
86
|
-
expect(allSortDropdowns[1]
|
|
90
|
+
expect((_e = allSortDropdowns[1]) === null || _e === void 0 ? void 0 : _e.options.length).to.equal(3);
|
|
91
|
+
expect((_f = allSortDropdowns[1]) === null || _f === void 0 ? void 0 : _f.options.map(o => o.id)).to.deep.equal([
|
|
87
92
|
SortField.datefavorited,
|
|
88
93
|
SortField.date,
|
|
89
94
|
SortField.dateadded,
|
|
90
95
|
]);
|
|
91
96
|
});
|
|
92
97
|
it('renders a views button instead of a dropdown if it would only have one option', async () => {
|
|
98
|
+
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
93
99
|
const customSortAvailability = {
|
|
94
100
|
...defaultSortAvailability,
|
|
95
101
|
// Disable weekly views (but keep All-time Views)
|
|
@@ -97,18 +103,19 @@ describe('Sort selector default buttons', async () => {
|
|
|
97
103
|
};
|
|
98
104
|
el.sortFieldAvailability = customSortAvailability;
|
|
99
105
|
await el.updateComplete;
|
|
100
|
-
const allSortSelectors = desktopSortSelector
|
|
106
|
+
const allSortSelectors = desktopSortSelector === null || desktopSortSelector === void 0 ? void 0 : desktopSortSelector.querySelectorAll('button');
|
|
101
107
|
expect(allSortSelectors).to.exist;
|
|
102
108
|
expect(allSortSelectors.length).to.equal(4);
|
|
103
|
-
expect(allSortSelectors[0]
|
|
104
|
-
expect(allSortSelectors[1]
|
|
105
|
-
expect(allSortSelectors[2]
|
|
106
|
-
expect(allSortSelectors[3]
|
|
107
|
-
const allSortDropdowns = desktopSortSelector
|
|
109
|
+
expect((_b = (_a = allSortSelectors[0]) === null || _a === void 0 ? void 0 : _a.textContent) === null || _b === void 0 ? void 0 : _b.trim()).to.equal('Relevance');
|
|
110
|
+
expect((_d = (_c = allSortSelectors[1]) === null || _c === void 0 ? void 0 : _c.textContent) === null || _d === void 0 ? void 0 : _d.trim()).to.equal('All-time views');
|
|
111
|
+
expect((_f = (_e = allSortSelectors[2]) === null || _e === void 0 ? void 0 : _e.textContent) === null || _f === void 0 ? void 0 : _f.trim()).to.equal('Title');
|
|
112
|
+
expect((_h = (_g = allSortSelectors[3]) === null || _g === void 0 ? void 0 : _g.textContent) === null || _h === void 0 ? void 0 : _h.trim()).to.equal('Creator');
|
|
113
|
+
const allSortDropdowns = desktopSortSelector === null || desktopSortSelector === void 0 ? void 0 : desktopSortSelector.querySelectorAll('ia-dropdown');
|
|
108
114
|
expect(allSortDropdowns).to.exist;
|
|
109
115
|
expect(allSortDropdowns.length).to.equal(1);
|
|
110
116
|
});
|
|
111
117
|
it('renders a date button instead of a dropdown if it would only have one option', async () => {
|
|
118
|
+
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
112
119
|
const customSortAvailability = {
|
|
113
120
|
...defaultSortAvailability,
|
|
114
121
|
// Disable all default dates except Date Added
|
|
@@ -118,18 +125,19 @@ describe('Sort selector default buttons', async () => {
|
|
|
118
125
|
};
|
|
119
126
|
el.sortFieldAvailability = customSortAvailability;
|
|
120
127
|
await el.updateComplete;
|
|
121
|
-
const allSortSelectors = desktopSortSelector
|
|
128
|
+
const allSortSelectors = desktopSortSelector === null || desktopSortSelector === void 0 ? void 0 : desktopSortSelector.querySelectorAll('button');
|
|
122
129
|
expect(allSortSelectors).to.exist;
|
|
123
130
|
expect(allSortSelectors.length).to.equal(4);
|
|
124
|
-
expect(allSortSelectors[0]
|
|
125
|
-
expect(allSortSelectors[1]
|
|
126
|
-
expect(allSortSelectors[2]
|
|
127
|
-
expect(allSortSelectors[3]
|
|
128
|
-
const allSortDropdowns = desktopSortSelector
|
|
131
|
+
expect((_b = (_a = allSortSelectors[0]) === null || _a === void 0 ? void 0 : _a.textContent) === null || _b === void 0 ? void 0 : _b.trim()).to.equal('Relevance');
|
|
132
|
+
expect((_d = (_c = allSortSelectors[1]) === null || _c === void 0 ? void 0 : _c.textContent) === null || _d === void 0 ? void 0 : _d.trim()).to.equal('Title');
|
|
133
|
+
expect((_f = (_e = allSortSelectors[2]) === null || _e === void 0 ? void 0 : _e.textContent) === null || _f === void 0 ? void 0 : _f.trim()).to.equal('Date added');
|
|
134
|
+
expect((_h = (_g = allSortSelectors[3]) === null || _g === void 0 ? void 0 : _g.textContent) === null || _h === void 0 ? void 0 : _h.trim()).to.equal('Creator');
|
|
135
|
+
const allSortDropdowns = desktopSortSelector === null || desktopSortSelector === void 0 ? void 0 : desktopSortSelector.querySelectorAll('ia-dropdown');
|
|
129
136
|
expect(allSortDropdowns).to.exist;
|
|
130
137
|
expect(allSortDropdowns.length).to.equal(1);
|
|
131
138
|
});
|
|
132
139
|
it('does not render a views dropdown that would have zero available options', async () => {
|
|
140
|
+
var _a, _b;
|
|
133
141
|
const customSortAvailability = {
|
|
134
142
|
...defaultSortAvailability,
|
|
135
143
|
// Disable all view sorts
|
|
@@ -138,15 +146,16 @@ describe('Sort selector default buttons', async () => {
|
|
|
138
146
|
};
|
|
139
147
|
el.sortFieldAvailability = customSortAvailability;
|
|
140
148
|
await el.updateComplete;
|
|
141
|
-
const allSortSelectors = desktopSortSelector
|
|
149
|
+
const allSortSelectors = desktopSortSelector === null || desktopSortSelector === void 0 ? void 0 : desktopSortSelector.querySelectorAll('button');
|
|
142
150
|
expect(allSortSelectors).to.exist;
|
|
143
151
|
expect(allSortSelectors.length).to.equal(3);
|
|
144
|
-
const allSortDropdowns = desktopSortSelector
|
|
152
|
+
const allSortDropdowns = desktopSortSelector === null || desktopSortSelector === void 0 ? void 0 : desktopSortSelector.querySelectorAll('ia-dropdown');
|
|
145
153
|
expect(allSortDropdowns).to.exist;
|
|
146
154
|
expect(allSortDropdowns.length).to.equal(1);
|
|
147
|
-
expect(allSortDropdowns[0].options
|
|
155
|
+
expect((_b = (_a = allSortDropdowns[0].options) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.id).to.equal(SortField.date);
|
|
148
156
|
});
|
|
149
157
|
it('does not render a date dropdown that would have zero available options', async () => {
|
|
158
|
+
var _a, _b;
|
|
150
159
|
const customSortAvailability = {
|
|
151
160
|
...defaultSortAvailability,
|
|
152
161
|
// Disable all date sorts
|
|
@@ -157,235 +166,226 @@ describe('Sort selector default buttons', async () => {
|
|
|
157
166
|
};
|
|
158
167
|
el.sortFieldAvailability = customSortAvailability;
|
|
159
168
|
await el.updateComplete;
|
|
160
|
-
const allSortSelectors = desktopSortSelector
|
|
169
|
+
const allSortSelectors = desktopSortSelector === null || desktopSortSelector === void 0 ? void 0 : desktopSortSelector.querySelectorAll('button');
|
|
161
170
|
expect(allSortSelectors).to.exist;
|
|
162
171
|
expect(allSortSelectors.length).to.equal(3);
|
|
163
|
-
const allSortDropdowns = desktopSortSelector
|
|
172
|
+
const allSortDropdowns = desktopSortSelector === null || desktopSortSelector === void 0 ? void 0 : desktopSortSelector.querySelectorAll('ia-dropdown');
|
|
164
173
|
expect(allSortDropdowns).to.exist;
|
|
165
174
|
expect(allSortDropdowns.length).to.equal(1);
|
|
166
|
-
expect(allSortDropdowns[0].options
|
|
175
|
+
expect((_b = (_a = allSortDropdowns[0].options) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.id).to.equal(SortField.weeklyview);
|
|
167
176
|
});
|
|
168
177
|
it('allows changing the default views sort shown', async () => {
|
|
178
|
+
var _a, _b;
|
|
169
179
|
el.defaultViewSort = SortField.alltimeview;
|
|
170
180
|
await el.updateComplete;
|
|
171
|
-
const viewsDropdown = el.shadowRoot
|
|
181
|
+
const viewsDropdown = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('#views-dropdown');
|
|
172
182
|
expect(viewsDropdown).to.exist;
|
|
173
|
-
expect(viewsDropdown.textContent
|
|
183
|
+
expect((_b = viewsDropdown.textContent) === null || _b === void 0 ? void 0 : _b.trim()).to.equal('All-time views');
|
|
174
184
|
});
|
|
175
185
|
it('allows changing the default date sort shown', async () => {
|
|
186
|
+
var _a, _b;
|
|
176
187
|
el.defaultDateSort = SortField.datereviewed;
|
|
177
188
|
await el.updateComplete;
|
|
178
|
-
const dateDropdown = el.shadowRoot
|
|
189
|
+
const dateDropdown = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('#date-dropdown');
|
|
179
190
|
expect(dateDropdown).to.exist;
|
|
180
|
-
expect(dateDropdown.textContent
|
|
191
|
+
expect((_b = dateDropdown.textContent) === null || _b === void 0 ? void 0 : _b.trim()).to.equal('Date reviewed');
|
|
181
192
|
});
|
|
182
193
|
it('should render default view-sort selector', async () => {
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
expect(defaultSortSelector?.textContent?.trim()).to.equal('Weekly views');
|
|
194
|
+
var _a, _b;
|
|
195
|
+
const defaultSortSelector = (_a = desktopSortSelector === null || desktopSortSelector === void 0 ? void 0 : desktopSortSelector.children.item(1)) === null || _a === void 0 ? void 0 : _a.querySelector('ia-dropdown');
|
|
196
|
+
expect((_b = defaultSortSelector === null || defaultSortSelector === void 0 ? void 0 : defaultSortSelector.textContent) === null || _b === void 0 ? void 0 : _b.trim()).to.equal('Weekly views');
|
|
187
197
|
});
|
|
188
198
|
it('should render active view-sort selectors', async () => {
|
|
199
|
+
var _a;
|
|
189
200
|
el.selectedSort = 'alltimeview';
|
|
190
201
|
await el.updateComplete;
|
|
191
|
-
const defaultSortSelector = desktopSortSelector
|
|
192
|
-
expect(defaultSortSelector
|
|
202
|
+
const defaultSortSelector = desktopSortSelector === null || desktopSortSelector === void 0 ? void 0 : desktopSortSelector.querySelector('ia-dropdown.selected');
|
|
203
|
+
expect((_a = defaultSortSelector === null || defaultSortSelector === void 0 ? void 0 : defaultSortSelector.textContent) === null || _a === void 0 ? void 0 : _a.trim()).to.equal('All-time views');
|
|
193
204
|
});
|
|
194
205
|
it('should render default title-sort selector', async () => {
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
expect(defaultSortSelector?.textContent?.trim()).to.equal('Title');
|
|
206
|
+
var _a, _b;
|
|
207
|
+
const defaultSortSelector = (_a = desktopSortSelector === null || desktopSortSelector === void 0 ? void 0 : desktopSortSelector.children.item(2)) === null || _a === void 0 ? void 0 : _a.querySelector('button');
|
|
208
|
+
expect((_b = defaultSortSelector === null || defaultSortSelector === void 0 ? void 0 : defaultSortSelector.textContent) === null || _b === void 0 ? void 0 : _b.trim()).to.equal('Title');
|
|
199
209
|
});
|
|
200
210
|
it('should render default date-sort selector', async () => {
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
expect(defaultSortSelector?.textContent?.trim()).to.equal('Date published');
|
|
211
|
+
var _a, _b;
|
|
212
|
+
const defaultSortSelector = (_a = desktopSortSelector === null || desktopSortSelector === void 0 ? void 0 : desktopSortSelector.children.item(3)) === null || _a === void 0 ? void 0 : _a.querySelector('ia-dropdown');
|
|
213
|
+
expect((_b = defaultSortSelector === null || defaultSortSelector === void 0 ? void 0 : defaultSortSelector.textContent) === null || _b === void 0 ? void 0 : _b.trim()).to.equal('Date published');
|
|
205
214
|
});
|
|
206
215
|
it('should render active date-sort selectors', async () => {
|
|
216
|
+
var _a;
|
|
207
217
|
el.selectedSort = 'datereviewed';
|
|
208
218
|
await el.updateComplete;
|
|
209
|
-
const defaultSortSelector = desktopSortSelector
|
|
210
|
-
expect(defaultSortSelector
|
|
219
|
+
const defaultSortSelector = desktopSortSelector === null || desktopSortSelector === void 0 ? void 0 : desktopSortSelector.querySelector('ia-dropdown.selected');
|
|
220
|
+
expect((_a = defaultSortSelector === null || defaultSortSelector === void 0 ? void 0 : defaultSortSelector.textContent) === null || _a === void 0 ? void 0 : _a.trim()).to.equal('Date reviewed');
|
|
211
221
|
});
|
|
212
222
|
it('should render default creator-sort selector', async () => {
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
expect(defaultSortSelector?.textContent?.trim()).to.equal('Creator');
|
|
223
|
+
var _a, _b;
|
|
224
|
+
const defaultSortSelector = (_a = desktopSortSelector === null || desktopSortSelector === void 0 ? void 0 : desktopSortSelector.children.item(4)) === null || _a === void 0 ? void 0 : _a.querySelector('button');
|
|
225
|
+
expect((_b = defaultSortSelector === null || defaultSortSelector === void 0 ? void 0 : defaultSortSelector.textContent) === null || _b === void 0 ? void 0 : _b.trim()).to.equal('Creator');
|
|
217
226
|
});
|
|
218
227
|
it('handles click event on view-sort selector', async () => {
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
defaultSortSelector?.click();
|
|
228
|
+
var _a;
|
|
229
|
+
const defaultSortSelector = (_a = desktopSortSelector === null || desktopSortSelector === void 0 ? void 0 : desktopSortSelector.children.item(1)) === null || _a === void 0 ? void 0 : _a.querySelector('.dropdown-label');
|
|
230
|
+
defaultSortSelector === null || defaultSortSelector === void 0 ? void 0 : defaultSortSelector.click();
|
|
223
231
|
await el.updateComplete;
|
|
224
232
|
expect(el.selectedSort).to.equal('weeklyview');
|
|
225
233
|
});
|
|
226
234
|
it('handles click event on title selector', async () => {
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
defaultSortSelector?.click();
|
|
235
|
+
var _a;
|
|
236
|
+
const defaultSortSelector = (_a = desktopSortSelector === null || desktopSortSelector === void 0 ? void 0 : desktopSortSelector.children.item(2)) === null || _a === void 0 ? void 0 : _a.querySelector('button');
|
|
237
|
+
defaultSortSelector === null || defaultSortSelector === void 0 ? void 0 : defaultSortSelector.click();
|
|
231
238
|
await el.updateComplete;
|
|
232
239
|
expect(el.selectedSort).to.equal('title');
|
|
233
240
|
});
|
|
234
241
|
it('handles click event on date-sort selector', async () => {
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
defaultSortSelector?.click();
|
|
242
|
+
var _a;
|
|
243
|
+
const defaultSortSelector = (_a = desktopSortSelector === null || desktopSortSelector === void 0 ? void 0 : desktopSortSelector.children.item(3)) === null || _a === void 0 ? void 0 : _a.querySelector('.dropdown-label');
|
|
244
|
+
defaultSortSelector === null || defaultSortSelector === void 0 ? void 0 : defaultSortSelector.click();
|
|
239
245
|
await el.updateComplete;
|
|
240
246
|
expect(el.selectedSort).to.equal('date');
|
|
241
247
|
});
|
|
242
248
|
it('handles click event on creator selector', async () => {
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
defaultSortSelector?.click();
|
|
249
|
+
var _a;
|
|
250
|
+
const defaultSortSelector = (_a = desktopSortSelector === null || desktopSortSelector === void 0 ? void 0 : desktopSortSelector.children.item(4)) === null || _a === void 0 ? void 0 : _a.querySelector('button');
|
|
251
|
+
defaultSortSelector === null || defaultSortSelector === void 0 ? void 0 : defaultSortSelector.click();
|
|
247
252
|
await el.updateComplete;
|
|
248
253
|
expect(el.selectedSort).to.equal('creator');
|
|
249
254
|
});
|
|
250
255
|
it('handles click event on relevance selector', async () => {
|
|
256
|
+
var _a;
|
|
251
257
|
el.sortFieldAvailability = {
|
|
252
258
|
...el.sortFieldAvailability,
|
|
253
259
|
[SortField.relevance]: true,
|
|
254
260
|
};
|
|
255
261
|
el.selectedSort = 'title';
|
|
256
262
|
await el.updateComplete;
|
|
257
|
-
const defaultSortSelector = desktopSortSelector
|
|
258
|
-
|
|
259
|
-
?.querySelector('button');
|
|
260
|
-
defaultSortSelector?.click();
|
|
263
|
+
const defaultSortSelector = (_a = desktopSortSelector === null || desktopSortSelector === void 0 ? void 0 : desktopSortSelector.children.item(0)) === null || _a === void 0 ? void 0 : _a.querySelector('button');
|
|
264
|
+
defaultSortSelector === null || defaultSortSelector === void 0 ? void 0 : defaultSortSelector.click();
|
|
261
265
|
await el.updateComplete;
|
|
262
266
|
expect(el.selectedSort).to.equal('relevance');
|
|
263
267
|
});
|
|
264
268
|
it('handles return/space key event on view-sort selector', async () => {
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
?.querySelector('.dropdown-label');
|
|
269
|
+
var _a;
|
|
270
|
+
const defaultSortSelector = (_a = desktopSortSelector === null || desktopSortSelector === void 0 ? void 0 : desktopSortSelector.children.item(1)) === null || _a === void 0 ? void 0 : _a.querySelector('.dropdown-label');
|
|
268
271
|
el.selectedSort = 'relevance';
|
|
269
272
|
const enterEvent = new KeyboardEvent('keydown', { key: 'Enter' });
|
|
270
|
-
defaultSortSelector
|
|
273
|
+
defaultSortSelector === null || defaultSortSelector === void 0 ? void 0 : defaultSortSelector.dispatchEvent(enterEvent);
|
|
271
274
|
await el.updateComplete;
|
|
272
275
|
expect(el.selectedSort).to.equal('weeklyview');
|
|
273
276
|
el.selectedSort = 'relevance';
|
|
274
277
|
const spaceEvent = new KeyboardEvent('keydown', { key: ' ' });
|
|
275
|
-
defaultSortSelector
|
|
278
|
+
defaultSortSelector === null || defaultSortSelector === void 0 ? void 0 : defaultSortSelector.dispatchEvent(spaceEvent);
|
|
276
279
|
await el.updateComplete;
|
|
277
280
|
expect(el.selectedSort).to.equal('weeklyview');
|
|
278
281
|
});
|
|
279
282
|
it('handles return/space key event on date-sort selector', async () => {
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
?.querySelector('.dropdown-label');
|
|
283
|
+
var _a;
|
|
284
|
+
const defaultSortSelector = (_a = desktopSortSelector === null || desktopSortSelector === void 0 ? void 0 : desktopSortSelector.children.item(3)) === null || _a === void 0 ? void 0 : _a.querySelector('.dropdown-label');
|
|
283
285
|
el.selectedSort = 'relevance';
|
|
284
286
|
const enterEvent = new KeyboardEvent('keydown', { key: 'Enter' });
|
|
285
|
-
defaultSortSelector
|
|
287
|
+
defaultSortSelector === null || defaultSortSelector === void 0 ? void 0 : defaultSortSelector.dispatchEvent(enterEvent);
|
|
286
288
|
await el.updateComplete;
|
|
287
289
|
expect(el.selectedSort).to.equal('date');
|
|
288
290
|
el.selectedSort = 'relevance';
|
|
289
291
|
const spaceEvent = new KeyboardEvent('keydown', { key: ' ' });
|
|
290
|
-
defaultSortSelector
|
|
292
|
+
defaultSortSelector === null || defaultSortSelector === void 0 ? void 0 : defaultSortSelector.dispatchEvent(spaceEvent);
|
|
291
293
|
await el.updateComplete;
|
|
292
294
|
expect(el.selectedSort).to.equal('date');
|
|
293
295
|
});
|
|
294
296
|
it('handles click event on view-sort dropdown option', async () => {
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
const firstOption = defaultSortSelector?.shadowRoot?.querySelector('li > button');
|
|
297
|
+
var _a, _b;
|
|
298
|
+
const defaultSortSelector = (_a = desktopSortSelector === null || desktopSortSelector === void 0 ? void 0 : desktopSortSelector.children.item(1)) === null || _a === void 0 ? void 0 : _a.querySelector('ia-dropdown');
|
|
299
|
+
const firstOption = (_b = defaultSortSelector === null || defaultSortSelector === void 0 ? void 0 : defaultSortSelector.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('li > button');
|
|
299
300
|
expect(firstOption).to.exist;
|
|
300
|
-
firstOption
|
|
301
|
+
firstOption === null || firstOption === void 0 ? void 0 : firstOption.click();
|
|
301
302
|
await el.updateComplete;
|
|
302
303
|
expect(el.selectedSort).to.equal('weeklyview');
|
|
303
304
|
});
|
|
304
305
|
it('handles click event on date-sort dropdown option', async () => {
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
const firstOption = defaultSortSelector?.shadowRoot?.querySelector('li > button');
|
|
306
|
+
var _a, _b;
|
|
307
|
+
const defaultSortSelector = (_a = desktopSortSelector === null || desktopSortSelector === void 0 ? void 0 : desktopSortSelector.children.item(3)) === null || _a === void 0 ? void 0 : _a.querySelector('ia-dropdown');
|
|
308
|
+
const firstOption = (_b = defaultSortSelector === null || defaultSortSelector === void 0 ? void 0 : defaultSortSelector.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('li > button');
|
|
309
309
|
expect(firstOption).to.exist;
|
|
310
|
-
firstOption
|
|
310
|
+
firstOption === null || firstOption === void 0 ? void 0 : firstOption.click();
|
|
311
311
|
await el.updateComplete;
|
|
312
312
|
expect(el.selectedSort).to.equal('date');
|
|
313
313
|
});
|
|
314
314
|
it('shows view sort selector backdrop when view sort open', async () => {
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
const caret = defaultSortSelector?.shadowRoot?.querySelector('.caret');
|
|
315
|
+
var _a, _b, _c, _d;
|
|
316
|
+
const defaultSortSelector = (_a = desktopSortSelector === null || desktopSortSelector === void 0 ? void 0 : desktopSortSelector.children.item(1)) === null || _a === void 0 ? void 0 : _a.querySelector('ia-dropdown');
|
|
317
|
+
const caret = (_b = defaultSortSelector === null || defaultSortSelector === void 0 ? void 0 : defaultSortSelector.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('.caret');
|
|
319
318
|
expect(caret).to.exist;
|
|
320
|
-
caret
|
|
319
|
+
caret === null || caret === void 0 ? void 0 : caret.click();
|
|
321
320
|
await el.updateComplete;
|
|
322
|
-
let backdrop = el.shadowRoot
|
|
321
|
+
let backdrop = (_c = el.shadowRoot) === null || _c === void 0 ? void 0 : _c.querySelector('#sort-selector-backdrop');
|
|
323
322
|
expect(backdrop).to.exist;
|
|
324
|
-
backdrop
|
|
323
|
+
backdrop === null || backdrop === void 0 ? void 0 : backdrop.click();
|
|
325
324
|
await el.updateComplete;
|
|
326
|
-
backdrop = el.shadowRoot
|
|
325
|
+
backdrop = (_d = el.shadowRoot) === null || _d === void 0 ? void 0 : _d.querySelector('#sort-selector-backdrop');
|
|
327
326
|
expect(backdrop).not.to.exist;
|
|
328
327
|
});
|
|
329
328
|
it('shows date sort selector backdrop when date sort open', async () => {
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
const caret = defaultSortSelector?.shadowRoot?.querySelector('.caret');
|
|
329
|
+
var _a, _b, _c, _d;
|
|
330
|
+
const defaultSortSelector = (_a = desktopSortSelector === null || desktopSortSelector === void 0 ? void 0 : desktopSortSelector.children.item(3)) === null || _a === void 0 ? void 0 : _a.querySelector('ia-dropdown');
|
|
331
|
+
const caret = (_b = defaultSortSelector === null || defaultSortSelector === void 0 ? void 0 : defaultSortSelector.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('.caret');
|
|
334
332
|
expect(caret).to.exist;
|
|
335
|
-
caret
|
|
333
|
+
caret === null || caret === void 0 ? void 0 : caret.click();
|
|
336
334
|
await el.updateComplete;
|
|
337
|
-
let backdrop = el.shadowRoot
|
|
335
|
+
let backdrop = (_c = el.shadowRoot) === null || _c === void 0 ? void 0 : _c.querySelector('#sort-selector-backdrop');
|
|
338
336
|
expect(backdrop).to.exist;
|
|
339
|
-
backdrop
|
|
337
|
+
backdrop === null || backdrop === void 0 ? void 0 : backdrop.click();
|
|
340
338
|
await el.updateComplete;
|
|
341
|
-
backdrop = el.shadowRoot
|
|
339
|
+
backdrop = (_d = el.shadowRoot) === null || _d === void 0 ? void 0 : _d.querySelector('#sort-selector-backdrop');
|
|
342
340
|
expect(backdrop).not.to.exist;
|
|
343
341
|
});
|
|
344
342
|
it('closes dropdown by hitting escape key', async () => {
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
const caret = defaultSortSelector?.shadowRoot?.querySelector('.caret');
|
|
343
|
+
var _a, _b, _c, _d;
|
|
344
|
+
const defaultSortSelector = (_a = desktopSortSelector === null || desktopSortSelector === void 0 ? void 0 : desktopSortSelector.children.item(3)) === null || _a === void 0 ? void 0 : _a.querySelector('ia-dropdown');
|
|
345
|
+
const caret = (_b = defaultSortSelector === null || defaultSortSelector === void 0 ? void 0 : defaultSortSelector.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('.caret');
|
|
349
346
|
expect(caret).to.exist;
|
|
350
|
-
caret
|
|
347
|
+
caret === null || caret === void 0 ? void 0 : caret.click();
|
|
351
348
|
await el.updateComplete;
|
|
352
|
-
let backdrop = el.shadowRoot
|
|
349
|
+
let backdrop = (_c = el.shadowRoot) === null || _c === void 0 ? void 0 : _c.querySelector('#sort-selector-backdrop');
|
|
353
350
|
expect(backdrop).to.exist;
|
|
354
351
|
document.dispatchEvent(new KeyboardEvent('keydown', { key: 'Escape' }));
|
|
355
352
|
await el.updateComplete;
|
|
356
|
-
backdrop = el.shadowRoot
|
|
353
|
+
backdrop = (_d = el.shadowRoot) === null || _d === void 0 ? void 0 : _d.querySelector('#sort-selector-backdrop');
|
|
357
354
|
expect(backdrop).not.to.exist;
|
|
358
355
|
});
|
|
359
356
|
});
|
|
360
357
|
describe('Sort direction button behavior', () => {
|
|
361
358
|
it('should disable sort direction button when sorting by relevance', async () => {
|
|
359
|
+
var _a;
|
|
362
360
|
const el = await fixture(html `
|
|
363
361
|
<sort-filter-bar> </sort-filter-bar>
|
|
364
362
|
`);
|
|
365
363
|
el.selectedSort = 'relevance';
|
|
366
364
|
await el.updateComplete;
|
|
367
|
-
const sortDirectionButton = el.shadowRoot
|
|
365
|
+
const sortDirectionButton = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.sort-direction-selector');
|
|
368
366
|
expect(sortDirectionButton).to.exist;
|
|
369
367
|
expect(sortDirectionButton.disabled).to.be.true;
|
|
370
368
|
});
|
|
371
369
|
it('should enable sort direction button when not sorting by relevance', async () => {
|
|
370
|
+
var _a;
|
|
372
371
|
const el = await fixture(html `
|
|
373
372
|
<sort-filter-bar> </sort-filter-bar>
|
|
374
373
|
`);
|
|
375
374
|
el.selectedSort = 'title';
|
|
376
375
|
await el.updateComplete;
|
|
377
|
-
const sortDirectionButton = el.shadowRoot
|
|
376
|
+
const sortDirectionButton = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.sort-direction-selector');
|
|
378
377
|
expect(sortDirectionButton).to.exist;
|
|
379
378
|
expect(sortDirectionButton.disabled).to.be.false;
|
|
380
379
|
});
|
|
381
380
|
it('should toggle sort direction when clicked', async () => {
|
|
381
|
+
var _a;
|
|
382
382
|
const el = await fixture(html `
|
|
383
383
|
<sort-filter-bar> </sort-filter-bar>
|
|
384
384
|
`);
|
|
385
385
|
el.selectedSort = 'title';
|
|
386
386
|
el.sortDirection = 'asc';
|
|
387
387
|
await el.updateComplete;
|
|
388
|
-
const sortDirectionButton = el.shadowRoot
|
|
388
|
+
const sortDirectionButton = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.sort-direction-selector');
|
|
389
389
|
sortDirectionButton.click();
|
|
390
390
|
await el.updateComplete;
|
|
391
391
|
expect(el.sortDirection).to.equal('desc');
|
|
@@ -396,59 +396,52 @@ describe('Sort direction button behavior', () => {
|
|
|
396
396
|
});
|
|
397
397
|
describe('Display mode/style buttons', () => {
|
|
398
398
|
it('should render all display mode buttons', async () => {
|
|
399
|
+
var _a, _b, _c, _d, _e;
|
|
399
400
|
const el = await fixture(html `
|
|
400
401
|
<sort-filter-bar> </sort-filter-bar>
|
|
401
402
|
`);
|
|
402
|
-
const displayModeButtonList = el.shadowRoot
|
|
403
|
-
|
|
404
|
-
?.querySelector('ul');
|
|
405
|
-
const gridButton = displayModeButtonList?.children
|
|
406
|
-
.item(0)
|
|
407
|
-
?.querySelector('#grid-button');
|
|
403
|
+
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');
|
|
404
|
+
const gridButton = (_c = displayModeButtonList === null || displayModeButtonList === void 0 ? void 0 : displayModeButtonList.children.item(0)) === null || _c === void 0 ? void 0 : _c.querySelector('#grid-button');
|
|
408
405
|
expect(gridButton).to.exist;
|
|
409
|
-
const detailListButton = displayModeButtonList
|
|
410
|
-
.item(1)
|
|
411
|
-
?.querySelector('#list-detail-button');
|
|
406
|
+
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');
|
|
412
407
|
expect(detailListButton).to.exist;
|
|
413
|
-
const compactListButton = displayModeButtonList
|
|
414
|
-
.item(2)
|
|
415
|
-
?.querySelector('#list-compact-button');
|
|
408
|
+
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');
|
|
416
409
|
expect(compactListButton).to.exist;
|
|
417
410
|
});
|
|
418
411
|
it('should not render display mode buttons when suppressed', async () => {
|
|
412
|
+
var _a;
|
|
419
413
|
const el = await fixture(html `
|
|
420
414
|
<sort-filter-bar suppressDisplayModes></sort-filter-bar>
|
|
421
415
|
`);
|
|
422
|
-
const displayModeButtonList = el.shadowRoot
|
|
416
|
+
const displayModeButtonList = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('#display-style-selector');
|
|
423
417
|
expect(displayModeButtonList).not.to.exist;
|
|
424
418
|
});
|
|
425
419
|
it('should active current display mode', async () => {
|
|
420
|
+
var _a, _b, _c;
|
|
426
421
|
const el = await fixture(html `
|
|
427
422
|
<sort-filter-bar> </sort-filter-bar>
|
|
428
423
|
`);
|
|
429
424
|
el.displayMode = 'grid';
|
|
430
425
|
await el.updateComplete;
|
|
431
|
-
const displayModeTitle = el.shadowRoot
|
|
432
|
-
?.querySelector('#display-style-selector')
|
|
433
|
-
?.querySelector('button.active')
|
|
434
|
-
?.getAttribute('title');
|
|
426
|
+
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');
|
|
435
427
|
expect(displayModeTitle).to.equal('Tile view');
|
|
436
428
|
});
|
|
437
429
|
it('should change displayMode prop to the one clicked', async () => {
|
|
430
|
+
var _a, _b, _c;
|
|
438
431
|
const el = await fixture(html `
|
|
439
432
|
<sort-filter-bar> </sort-filter-bar>
|
|
440
433
|
`);
|
|
441
434
|
el.displayMode = 'grid';
|
|
442
435
|
await el.updateComplete;
|
|
443
|
-
const extendedListButton = el.shadowRoot
|
|
436
|
+
const extendedListButton = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('#list-detail-button');
|
|
444
437
|
extendedListButton.click();
|
|
445
438
|
await el.updateComplete;
|
|
446
439
|
expect(el.displayMode).to.equal('list-detail');
|
|
447
|
-
const compactListButton = el.shadowRoot
|
|
440
|
+
const compactListButton = (_b = el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('#list-compact-button');
|
|
448
441
|
compactListButton.click();
|
|
449
442
|
await el.updateComplete;
|
|
450
443
|
expect(el.displayMode).to.equal('list-compact');
|
|
451
|
-
const gridModeButton = el.shadowRoot
|
|
444
|
+
const gridModeButton = (_c = el.shadowRoot) === null || _c === void 0 ? void 0 : _c.querySelector('#grid-button');
|
|
452
445
|
gridModeButton.click();
|
|
453
446
|
await el.updateComplete;
|
|
454
447
|
expect(el.displayMode).to.equal('grid');
|
|
@@ -456,30 +449,32 @@ describe('Display mode/style buttons', () => {
|
|
|
456
449
|
});
|
|
457
450
|
describe('Sort/filter bar letter behavior', () => {
|
|
458
451
|
it('sets the selected title letter when clicked', async () => {
|
|
452
|
+
var _a, _b, _c;
|
|
459
453
|
const el = await fixture(html `
|
|
460
454
|
<sort-filter-bar></sort-filter-bar>
|
|
461
455
|
`);
|
|
462
456
|
el.selectedSort = 'title';
|
|
463
457
|
el.prefixFilterCountMap = { title: { T: 1 }, creator: {} };
|
|
464
458
|
await el.updateComplete;
|
|
465
|
-
const alphaBar = el.shadowRoot
|
|
466
|
-
const letterLink = alphaBar
|
|
467
|
-
expect(letterLink
|
|
468
|
-
letterLink
|
|
459
|
+
const alphaBar = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('alpha-bar');
|
|
460
|
+
const letterLink = (_b = alphaBar === null || alphaBar === void 0 ? void 0 : alphaBar.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('li > button:not(:disabled)');
|
|
461
|
+
expect((_c = letterLink === null || letterLink === void 0 ? void 0 : letterLink.textContent) === null || _c === void 0 ? void 0 : _c.trim()).to.equal('T');
|
|
462
|
+
letterLink === null || letterLink === void 0 ? void 0 : letterLink.click();
|
|
469
463
|
await el.updateComplete;
|
|
470
464
|
expect(el.selectedTitleFilter).to.equal('T');
|
|
471
465
|
});
|
|
472
466
|
it('sets the selected creator letter when clicked', async () => {
|
|
467
|
+
var _a, _b, _c;
|
|
473
468
|
const el = await fixture(html `
|
|
474
469
|
<sort-filter-bar></sort-filter-bar>
|
|
475
470
|
`);
|
|
476
471
|
el.selectedSort = 'creator';
|
|
477
472
|
el.prefixFilterCountMap = { title: {}, creator: { C: 1 } };
|
|
478
473
|
await el.updateComplete;
|
|
479
|
-
const alphaBar = el.shadowRoot
|
|
480
|
-
const letterLink = alphaBar
|
|
481
|
-
expect(letterLink
|
|
482
|
-
letterLink
|
|
474
|
+
const alphaBar = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('alpha-bar');
|
|
475
|
+
const letterLink = (_b = alphaBar === null || alphaBar === void 0 ? void 0 : alphaBar.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('li > button:not(:disabled)');
|
|
476
|
+
expect((_c = letterLink === null || letterLink === void 0 ? void 0 : letterLink.textContent) === null || _c === void 0 ? void 0 : _c.trim()).to.equal('C');
|
|
477
|
+
letterLink === null || letterLink === void 0 ? void 0 : letterLink.click();
|
|
483
478
|
await el.updateComplete;
|
|
484
479
|
expect(el.selectedCreatorFilter).to.equal('C');
|
|
485
480
|
});
|
|
@@ -494,19 +489,21 @@ describe('Sort/filter bar mobile view', () => {
|
|
|
494
489
|
window.resizeTo(origWindowSize.width, origWindowSize.height);
|
|
495
490
|
});
|
|
496
491
|
it('renders in mobile view', async () => {
|
|
492
|
+
var _a, _b, _c, _d;
|
|
497
493
|
const el = await fixture(html `
|
|
498
494
|
<sort-filter-bar></sort-filter-bar>
|
|
499
495
|
`);
|
|
500
|
-
const mobileSortContainer = el.shadowRoot
|
|
501
|
-
const desktopSortContainer = el.shadowRoot
|
|
502
|
-
expect(mobileSortContainer
|
|
503
|
-
expect(desktopSortContainer
|
|
496
|
+
const mobileSortContainer = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('#mobile-sort-container');
|
|
497
|
+
const desktopSortContainer = (_b = el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('#desktop-sort-container');
|
|
498
|
+
expect((_c = mobileSortContainer === null || mobileSortContainer === void 0 ? void 0 : mobileSortContainer.classList) === null || _c === void 0 ? void 0 : _c.contains('visible')).to.be.true;
|
|
499
|
+
expect((_d = desktopSortContainer === null || desktopSortContainer === void 0 ? void 0 : desktopSortContainer.classList) === null || _d === void 0 ? void 0 : _d.contains('hidden')).to.be.true;
|
|
504
500
|
});
|
|
505
501
|
it('changes selected sort in mobile view', async () => {
|
|
502
|
+
var _a;
|
|
506
503
|
const el = await fixture(html `
|
|
507
504
|
<sort-filter-bar></sort-filter-bar>
|
|
508
505
|
`);
|
|
509
|
-
const mobileDropdown = el.shadowRoot
|
|
506
|
+
const mobileDropdown = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('#mobile-dropdown');
|
|
510
507
|
expect(mobileDropdown).to.exist;
|
|
511
508
|
mobileDropdown.selectedOption = 'title';
|
|
512
509
|
const option = { id: 'title' };
|
|
@@ -515,13 +512,14 @@ describe('Sort/filter bar mobile view', () => {
|
|
|
515
512
|
expect(el.selectedSort).to.equal('title');
|
|
516
513
|
});
|
|
517
514
|
it('clears title filter when sort changed from title in mobile view', async () => {
|
|
515
|
+
var _a;
|
|
518
516
|
const el = await fixture(html `
|
|
519
517
|
<sort-filter-bar></sort-filter-bar>
|
|
520
518
|
`);
|
|
521
519
|
el.selectedSort = 'title';
|
|
522
520
|
el.selectedTitleFilter = 'A';
|
|
523
521
|
await el.updateComplete;
|
|
524
|
-
const mobileDropdown = el.shadowRoot
|
|
522
|
+
const mobileDropdown = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('#mobile-dropdown');
|
|
525
523
|
expect(mobileDropdown).to.exist;
|
|
526
524
|
mobileDropdown.selectedOption = 'relevance';
|
|
527
525
|
const option = { id: 'relevance' };
|
|
@@ -531,13 +529,14 @@ describe('Sort/filter bar mobile view', () => {
|
|
|
531
529
|
expect(el.selectedTitleFilter).to.be.null;
|
|
532
530
|
});
|
|
533
531
|
it('clears creator filter when sort changed from creator in mobile view', async () => {
|
|
532
|
+
var _a;
|
|
534
533
|
const el = await fixture(html `
|
|
535
534
|
<sort-filter-bar></sort-filter-bar>
|
|
536
535
|
`);
|
|
537
536
|
el.selectedSort = 'creator';
|
|
538
537
|
el.selectedCreatorFilter = 'A';
|
|
539
538
|
await el.updateComplete;
|
|
540
|
-
const mobileDropdown = el.shadowRoot
|
|
539
|
+
const mobileDropdown = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('#mobile-dropdown');
|
|
541
540
|
expect(mobileDropdown).to.exist;
|
|
542
541
|
mobileDropdown.selectedOption = 'relevance';
|
|
543
542
|
const option = { id: 'relevance' };
|
|
@@ -547,23 +546,25 @@ describe('Sort/filter bar mobile view', () => {
|
|
|
547
546
|
expect(el.selectedCreatorFilter).to.be.null;
|
|
548
547
|
});
|
|
549
548
|
it('shows sort selector backdrop when mobile sort open', async () => {
|
|
549
|
+
var _a, _b, _c, _d;
|
|
550
550
|
const el = await fixture(html `
|
|
551
551
|
<sort-filter-bar></sort-filter-bar>
|
|
552
552
|
`);
|
|
553
|
-
const mobileDropdown = el.shadowRoot
|
|
553
|
+
const mobileDropdown = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('#mobile-dropdown');
|
|
554
554
|
expect(mobileDropdown).to.exist;
|
|
555
|
-
const caret = mobileDropdown
|
|
555
|
+
const caret = (_b = mobileDropdown === null || mobileDropdown === void 0 ? void 0 : mobileDropdown.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('.caret');
|
|
556
556
|
expect(caret).to.exist;
|
|
557
|
-
caret
|
|
557
|
+
caret === null || caret === void 0 ? void 0 : caret.click();
|
|
558
558
|
await el.updateComplete;
|
|
559
|
-
let backdrop = el.shadowRoot
|
|
559
|
+
let backdrop = (_c = el.shadowRoot) === null || _c === void 0 ? void 0 : _c.querySelector('#sort-selector-backdrop');
|
|
560
560
|
expect(backdrop).to.exist;
|
|
561
|
-
backdrop
|
|
561
|
+
backdrop === null || backdrop === void 0 ? void 0 : backdrop.click();
|
|
562
562
|
await el.updateComplete;
|
|
563
|
-
backdrop = el.shadowRoot
|
|
563
|
+
backdrop = (_d = el.shadowRoot) === null || _d === void 0 ? void 0 : _d.querySelector('#sort-selector-backdrop');
|
|
564
564
|
expect(backdrop).not.to.exist;
|
|
565
565
|
});
|
|
566
566
|
it('shows loansTab top-bar slot Default View', async () => {
|
|
567
|
+
var _a;
|
|
567
568
|
const resizeStub = new SharedResizeObserver();
|
|
568
569
|
const addSpy = sinon.spy(resizeStub, 'addObserver');
|
|
569
570
|
const removeSpy = sinon.spy(resizeStub, 'removeObserver');
|
|
@@ -571,7 +572,7 @@ describe('Sort/filter bar mobile view', () => {
|
|
|
571
572
|
<sort-filter-bar .resizeObserver=${resizeStub}></sort-filter-bar>
|
|
572
573
|
`);
|
|
573
574
|
// this element exists
|
|
574
|
-
expect(el
|
|
575
|
+
expect((_a = el === null || el === void 0 ? void 0 : el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('#sort-selector-container')).to.exist;
|
|
575
576
|
// loads & unloads twice when [re]setting ResizeObserver
|
|
576
577
|
expect(addSpy.callCount).to.equal(2);
|
|
577
578
|
const resizeStub2 = new SharedResizeObserver();
|
|
@@ -580,6 +581,7 @@ describe('Sort/filter bar mobile view', () => {
|
|
|
580
581
|
expect(removeSpy.callCount).to.equal(2);
|
|
581
582
|
});
|
|
582
583
|
it('contains sort-options slot when enabled', async () => {
|
|
584
|
+
var _a, _b;
|
|
583
585
|
const resizeStub = new SharedResizeObserver();
|
|
584
586
|
const addSpy = sinon.spy(resizeStub, 'addObserver');
|
|
585
587
|
const removeSpy = sinon.spy(resizeStub, 'removeObserver');
|
|
@@ -591,10 +593,10 @@ describe('Sort/filter bar mobile view', () => {
|
|
|
591
593
|
`);
|
|
592
594
|
await el.updateComplete;
|
|
593
595
|
// slot exists
|
|
594
|
-
const sortOptionsSlot = el
|
|
596
|
+
const sortOptionsSlot = (_a = el === null || el === void 0 ? void 0 : el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('slot[name="sort-options"]');
|
|
595
597
|
expect(sortOptionsSlot).to.exist;
|
|
596
598
|
// sort bar does not exist
|
|
597
|
-
expect(el
|
|
599
|
+
expect((_b = el === null || el === void 0 ? void 0 : el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('#sort-selector-container')).to.not
|
|
598
600
|
.exist;
|
|
599
601
|
const resizeStub2 = new SharedResizeObserver();
|
|
600
602
|
el.resizeObserver = resizeStub2;
|