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