@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.
Files changed (216) hide show
  1. package/.editorconfig +29 -29
  2. package/.github/workflows/ci.yml +27 -27
  3. package/.github/workflows/gh-pages-main.yml +39 -39
  4. package/.github/workflows/npm-publish.yml +39 -39
  5. package/.github/workflows/pr-preview.yml +38 -38
  6. package/.husky/pre-commit +4 -4
  7. package/.prettierignore +1 -1
  8. package/LICENSE +661 -661
  9. package/README.md +83 -83
  10. package/dist/src/app-root.js +28 -19
  11. package/dist/src/app-root.js.map +1 -1
  12. package/dist/src/collection-browser.d.ts +4 -24
  13. package/dist/src/collection-browser.js +125 -286
  14. package/dist/src/collection-browser.js.map +1 -1
  15. package/dist/src/collection-facets/facet-row.js +143 -143
  16. package/dist/src/collection-facets/facet-row.js.map +1 -1
  17. package/dist/src/collection-facets/more-facets-content.d.ts +1 -1
  18. package/dist/src/collection-facets/more-facets-content.js +48 -34
  19. package/dist/src/collection-facets/more-facets-content.js.map +1 -1
  20. package/dist/src/collection-facets/more-facets-pagination.js +10 -6
  21. package/dist/src/collection-facets/more-facets-pagination.js.map +1 -1
  22. package/dist/src/collection-facets/smart-facets/heuristics/wikidata/wikidata-heuristic.js +21 -16
  23. package/dist/src/collection-facets/smart-facets/heuristics/wikidata/wikidata-heuristic.js.map +1 -1
  24. package/dist/src/collection-facets/smart-facets/smart-facet-bar.js +10 -7
  25. package/dist/src/collection-facets/smart-facets/smart-facet-bar.js.map +1 -1
  26. package/dist/src/collection-facets/smart-facets/smart-facet-button.js +2 -3
  27. package/dist/src/collection-facets/smart-facets/smart-facet-button.js.map +1 -1
  28. package/dist/src/collection-facets/smart-facets/smart-facet-dropdown.js +11 -9
  29. package/dist/src/collection-facets/smart-facets/smart-facet-dropdown.js.map +1 -1
  30. package/dist/src/collection-facets/smart-facets/smart-facet-heuristics.js +7 -7
  31. package/dist/src/collection-facets/smart-facets/smart-facet-heuristics.js.map +1 -1
  32. package/dist/src/collection-facets/toggle-switch.js +6 -4
  33. package/dist/src/collection-facets/toggle-switch.js.map +1 -1
  34. package/dist/src/collection-facets.js +310 -309
  35. package/dist/src/collection-facets.js.map +1 -1
  36. package/dist/src/data-source/collection-browser-data-source-interface.d.ts +1 -10
  37. package/dist/src/data-source/collection-browser-data-source-interface.js.map +1 -1
  38. package/dist/src/data-source/collection-browser-data-source.d.ts +1 -19
  39. package/dist/src/data-source/collection-browser-data-source.js +65 -71
  40. package/dist/src/data-source/collection-browser-data-source.js.map +1 -1
  41. package/dist/src/data-source/collection-browser-query-state.d.ts +2 -1
  42. package/dist/src/data-source/collection-browser-query-state.js.map +1 -1
  43. package/dist/src/data-source/models.d.ts +0 -11
  44. package/dist/src/data-source/models.js.map +1 -1
  45. package/dist/src/empty-placeholder.js +18 -19
  46. package/dist/src/empty-placeholder.js.map +1 -1
  47. package/dist/src/expanded-date-picker.js +10 -6
  48. package/dist/src/expanded-date-picker.js.map +1 -1
  49. package/dist/src/language-code-handler/language-code-handler.js +2 -2
  50. package/dist/src/language-code-handler/language-code-handler.js.map +1 -1
  51. package/dist/src/manage/manage-bar.js +15 -9
  52. package/dist/src/manage/manage-bar.js.map +1 -1
  53. package/dist/src/manage/remove-items-modal-content.js +2 -2
  54. package/dist/src/manage/remove-items-modal-content.js.map +1 -1
  55. package/dist/src/models.d.ts +6 -2
  56. package/dist/src/models.js +54 -46
  57. package/dist/src/models.js.map +1 -1
  58. package/dist/src/restoration-state-handler.d.ts +2 -1
  59. package/dist/src/restoration-state-handler.js +19 -12
  60. package/dist/src/restoration-state-handler.js.map +1 -1
  61. package/dist/src/sort-filter-bar/alpha-bar.js +14 -9
  62. package/dist/src/sort-filter-bar/alpha-bar.js.map +1 -1
  63. package/dist/src/sort-filter-bar/sort-filter-bar.js +24 -14
  64. package/dist/src/sort-filter-bar/sort-filter-bar.js.map +1 -1
  65. package/dist/src/tiles/base-tile-component.js +2 -1
  66. package/dist/src/tiles/base-tile-component.js.map +1 -1
  67. package/dist/src/tiles/grid/account-tile.js +7 -5
  68. package/dist/src/tiles/grid/account-tile.js.map +1 -1
  69. package/dist/src/tiles/grid/collection-tile.js +6 -3
  70. package/dist/src/tiles/grid/collection-tile.js.map +1 -1
  71. package/dist/src/tiles/grid/item-tile.js +33 -23
  72. package/dist/src/tiles/grid/item-tile.js.map +1 -1
  73. package/dist/src/tiles/grid/search-tile.js +2 -1
  74. package/dist/src/tiles/grid/search-tile.js.map +1 -1
  75. package/dist/src/tiles/grid/tile-stats.js +3 -2
  76. package/dist/src/tiles/grid/tile-stats.js.map +1 -1
  77. package/dist/src/tiles/hover/hover-pane-controller.js +28 -21
  78. package/dist/src/tiles/hover/hover-pane-controller.js.map +1 -1
  79. package/dist/src/tiles/hover/tile-hover-pane.js +4 -3
  80. package/dist/src/tiles/hover/tile-hover-pane.js.map +1 -1
  81. package/dist/src/tiles/image-block.js +8 -5
  82. package/dist/src/tiles/image-block.js.map +1 -1
  83. package/dist/src/tiles/item-image.js +19 -12
  84. package/dist/src/tiles/item-image.js.map +1 -1
  85. package/dist/src/tiles/list/tile-list-compact.js +25 -17
  86. package/dist/src/tiles/list/tile-list-compact.js.map +1 -1
  87. package/dist/src/tiles/list/tile-list.js +55 -34
  88. package/dist/src/tiles/list/tile-list.js.map +1 -1
  89. package/dist/src/tiles/overlay/icon-overlay.js +2 -1
  90. package/dist/src/tiles/overlay/icon-overlay.js.map +1 -1
  91. package/dist/src/tiles/overlay/text-overlay.js +4 -2
  92. package/dist/src/tiles/overlay/text-overlay.js.map +1 -1
  93. package/dist/src/tiles/text-snippet-block.js +4 -2
  94. package/dist/src/tiles/text-snippet-block.js.map +1 -1
  95. package/dist/src/tiles/tile-dispatcher.js +30 -22
  96. package/dist/src/tiles/tile-dispatcher.js.map +1 -1
  97. package/dist/src/tiles/tile-display-value-provider.js +9 -5
  98. package/dist/src/tiles/tile-display-value-provider.js.map +1 -1
  99. package/dist/src/tiles/tile-mediatype-icon.js +19 -12
  100. package/dist/src/tiles/tile-mediatype-icon.js.map +1 -1
  101. package/dist/src/utils/collapse-repeated-quotes.js +1 -1
  102. package/dist/src/utils/collapse-repeated-quotes.js.map +1 -1
  103. package/dist/src/utils/facet-utils.js +5 -3
  104. package/dist/src/utils/facet-utils.js.map +1 -1
  105. package/dist/src/utils/format-count.js +10 -10
  106. package/dist/src/utils/format-count.js.map +1 -1
  107. package/dist/src/utils/resolve-mediatype.js +3 -2
  108. package/dist/src/utils/resolve-mediatype.js.map +1 -1
  109. package/dist/test/collection-browser.test.js +380 -336
  110. package/dist/test/collection-browser.test.js.map +1 -1
  111. package/dist/test/collection-facets/facet-row.test.js +52 -37
  112. package/dist/test/collection-facets/facet-row.test.js.map +1 -1
  113. package/dist/test/collection-facets/facets-template.test.js +23 -17
  114. package/dist/test/collection-facets/facets-template.test.js.map +1 -1
  115. package/dist/test/collection-facets/more-facets-content.test.js +32 -22
  116. package/dist/test/collection-facets/more-facets-content.test.js.map +1 -1
  117. package/dist/test/collection-facets/more-facets-pagination.test.js +22 -16
  118. package/dist/test/collection-facets/more-facets-pagination.test.js.map +1 -1
  119. package/dist/test/collection-facets/toggle-switch.test.js +19 -22
  120. package/dist/test/collection-facets/toggle-switch.test.js.map +1 -1
  121. package/dist/test/collection-facets.test.js +77 -60
  122. package/dist/test/collection-facets.test.js.map +1 -1
  123. package/dist/test/empty-placeholder.test.js +17 -11
  124. package/dist/test/empty-placeholder.test.js.map +1 -1
  125. package/dist/test/expanded-date-picker.test.js +14 -8
  126. package/dist/test/expanded-date-picker.test.js.map +1 -1
  127. package/dist/test/icon-overlay.test.js +6 -7
  128. package/dist/test/icon-overlay.test.js.map +1 -1
  129. package/dist/test/image-block.test.js +26 -16
  130. package/dist/test/image-block.test.js.map +1 -1
  131. package/dist/test/item-image.test.js +32 -23
  132. package/dist/test/item-image.test.js.map +1 -1
  133. package/dist/test/manage/manage-bar.test.js +33 -21
  134. package/dist/test/manage/manage-bar.test.js.map +1 -1
  135. package/dist/test/manage/remove-items-modal-content.test.js +15 -10
  136. package/dist/test/manage/remove-items-modal-content.test.js.map +1 -1
  137. package/dist/test/mocks/mock-search-service.js +3 -2
  138. package/dist/test/mocks/mock-search-service.js.map +1 -1
  139. package/dist/test/restoration-state-handler.test.js +54 -14
  140. package/dist/test/restoration-state-handler.test.js.map +1 -1
  141. package/dist/test/review-block.test.js +18 -16
  142. package/dist/test/review-block.test.js.map +1 -1
  143. package/dist/test/sort-filter-bar/alpha-bar-tooltip.test.js +3 -2
  144. package/dist/test/sort-filter-bar/alpha-bar-tooltip.test.js.map +1 -1
  145. package/dist/test/sort-filter-bar/alpha-bar.test.js +24 -18
  146. package/dist/test/sort-filter-bar/alpha-bar.test.js.map +1 -1
  147. package/dist/test/sort-filter-bar/sort-filter-bar.test.js +180 -178
  148. package/dist/test/sort-filter-bar/sort-filter-bar.test.js.map +1 -1
  149. package/dist/test/text-overlay.test.js +15 -16
  150. package/dist/test/text-overlay.test.js.map +1 -1
  151. package/dist/test/text-snippet-block.test.js +19 -14
  152. package/dist/test/text-snippet-block.test.js.map +1 -1
  153. package/dist/test/tile-stats.test.js +34 -73
  154. package/dist/test/tile-stats.test.js.map +1 -1
  155. package/dist/test/tiles/grid/account-tile.test.js +25 -25
  156. package/dist/test/tiles/grid/account-tile.test.js.map +1 -1
  157. package/dist/test/tiles/grid/collection-tile.test.js +19 -13
  158. package/dist/test/tiles/grid/collection-tile.test.js.map +1 -1
  159. package/dist/test/tiles/grid/item-tile.test.js +91 -64
  160. package/dist/test/tiles/grid/item-tile.test.js.map +1 -1
  161. package/dist/test/tiles/grid/search-tile.test.js +13 -9
  162. package/dist/test/tiles/grid/search-tile.test.js.map +1 -1
  163. package/dist/test/tiles/hover/hover-pane-controller.test.js +35 -23
  164. package/dist/test/tiles/hover/hover-pane-controller.test.js.map +1 -1
  165. package/dist/test/tiles/hover/tile-hover-pane.test.js +16 -12
  166. package/dist/test/tiles/hover/tile-hover-pane.test.js.map +1 -1
  167. package/dist/test/tiles/list/tile-list-compact.test.js +48 -34
  168. package/dist/test/tiles/list/tile-list-compact.test.js.map +1 -1
  169. package/dist/test/tiles/list/tile-list.test.js +105 -76
  170. package/dist/test/tiles/list/tile-list.test.js.map +1 -1
  171. package/dist/test/tiles/tile-dispatcher.test.js +30 -17
  172. package/dist/test/tiles/tile-dispatcher.test.js.map +1 -1
  173. package/dist/test/tiles/tile-mediatype-icon.test.js +24 -12
  174. package/dist/test/tiles/tile-mediatype-icon.test.js.map +1 -1
  175. package/eslint.config.mjs +53 -53
  176. package/index.html +24 -24
  177. package/local.archive.org.cert +86 -86
  178. package/local.archive.org.key +27 -27
  179. package/package.json +118 -120
  180. package/renovate.json +6 -6
  181. package/src/collection-browser.ts +15 -246
  182. package/src/collection-facets/facet-row.ts +296 -299
  183. package/src/collection-facets/more-facets-content.ts +8 -5
  184. package/src/collection-facets.ts +995 -1010
  185. package/src/data-source/collection-browser-data-source-interface.ts +333 -345
  186. package/src/data-source/collection-browser-data-source.ts +1401 -1441
  187. package/src/data-source/collection-browser-query-state.ts +65 -59
  188. package/src/data-source/models.ts +43 -56
  189. package/src/models.ts +870 -866
  190. package/src/restoration-state-handler.ts +544 -546
  191. package/test/collection-browser.test.ts +2403 -2413
  192. package/test/restoration-state-handler.test.ts +510 -480
  193. package/tsconfig.json +20 -25
  194. package/vite.config.ts +22 -29
  195. package/web-dev-server.config.mjs +30 -30
  196. package/web-test-runner.config.mjs +41 -41
  197. package/dist/src/combo-box/caret-closed.d.ts +0 -2
  198. package/dist/src/combo-box/caret-closed.js +0 -7
  199. package/dist/src/combo-box/caret-closed.js.map +0 -1
  200. package/dist/src/combo-box/caret-open.d.ts +0 -2
  201. package/dist/src/combo-box/caret-open.js +0 -7
  202. package/dist/src/combo-box/caret-open.js.map +0 -1
  203. package/dist/src/combo-box/clear.d.ts +0 -2
  204. package/dist/src/combo-box/clear.js +0 -11
  205. package/dist/src/combo-box/clear.js.map +0 -1
  206. package/dist/src/combo-box/ia-combo-box.d.ts +0 -422
  207. package/dist/src/combo-box/ia-combo-box.js +0 -1203
  208. package/dist/src/combo-box/ia-combo-box.js.map +0 -1
  209. package/dist/src/combo-box/models.d.ts +0 -75
  210. package/dist/src/combo-box/models.js +0 -40
  211. package/dist/src/combo-box/models.js.map +0 -1
  212. package/src/combo-box/caret-closed.ts +0 -7
  213. package/src/combo-box/caret-open.ts +0 -7
  214. package/src/combo-box/clear.ts +0 -11
  215. package/src/combo-box/ia-combo-box.ts +0 -1288
  216. 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?.querySelector('#sort-selector-container');
16
- desktopSortSelector = sortSelectorContainer?.querySelector('#desktop-sort-selector');
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
- const sortByLabel = el.shadowRoot?.querySelector('.sort-by-text');
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?.textContent?.trim()).to.equal('Sort by:');
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
- const sortDirections = el.shadowRoot?.querySelector('.sort-direction-container');
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?.querySelector('.sort-direction-icon')).to.exist;
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
- const allSortSelectors = desktopSortSelector?.querySelectorAll('button');
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]?.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');
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]?.options.length).to.equal(2);
45
- expect(allSortDropdowns[0]?.options.map(o => o.id)).to.deep.equal([
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]?.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([
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]?.textContent?.trim()).to.equal('Date published');
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?.querySelector('button.selected');
60
- expect(defaultSortSelector?.textContent?.trim()).to.equal('Relevance');
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?.querySelectorAll('button');
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]?.textContent?.trim()).to.equal('Relevance');
77
- const allSortDropdowns = desktopSortSelector?.querySelectorAll('ia-dropdown');
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]?.options.length).to.equal(2);
81
- expect(allSortDropdowns[0]?.options.map(o => o.id)).to.deep.equal([
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]?.options.length).to.equal(3);
86
- expect(allSortDropdowns[1]?.options.map(o => o.id)).to.deep.equal([
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?.querySelectorAll('button');
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]?.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');
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?.querySelectorAll('button');
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]?.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');
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?.querySelectorAll('button');
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?.querySelectorAll('ia-dropdown');
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?.[0]?.id).to.equal(SortField.date);
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?.querySelectorAll('button');
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?.querySelectorAll('ia-dropdown');
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?.[0]?.id).to.equal(SortField.weeklyview);
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?.querySelector('#views-dropdown');
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?.trim()).to.equal('All-time views');
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?.querySelector('#date-dropdown');
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?.trim()).to.equal('Date reviewed');
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
- const defaultSortSelector = desktopSortSelector?.children
184
- .item(1)
185
- ?.querySelector('ia-dropdown');
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?.querySelector('ia-dropdown.selected');
192
- expect(defaultSortSelector?.textContent?.trim()).to.equal('All-time views');
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
- const defaultSortSelector = desktopSortSelector?.children
196
- .item(2)
197
- ?.querySelector('button');
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
- const defaultSortSelector = desktopSortSelector?.children
202
- .item(3)
203
- ?.querySelector('ia-dropdown');
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?.querySelector('ia-dropdown.selected');
210
- expect(defaultSortSelector?.textContent?.trim()).to.equal('Date reviewed');
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
- const defaultSortSelector = desktopSortSelector?.children
214
- .item(4)
215
- ?.querySelector('button');
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
- const defaultSortSelector = desktopSortSelector?.children
220
- .item(1)
221
- ?.querySelector('.dropdown-label');
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
- const defaultSortSelector = desktopSortSelector?.children
228
- .item(2)
229
- ?.querySelector('button');
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
- const defaultSortSelector = desktopSortSelector?.children
236
- .item(3)
237
- ?.querySelector('.dropdown-label');
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
- const defaultSortSelector = desktopSortSelector?.children
244
- .item(4)
245
- ?.querySelector('button');
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?.children
258
- .item(0)
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
- const defaultSortSelector = desktopSortSelector?.children
266
- .item(1)
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?.dispatchEvent(enterEvent);
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?.dispatchEvent(spaceEvent);
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
- const defaultSortSelector = desktopSortSelector?.children
281
- .item(3)
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?.dispatchEvent(enterEvent);
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?.dispatchEvent(spaceEvent);
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
- const defaultSortSelector = desktopSortSelector?.children
296
- .item(1)
297
- ?.querySelector('ia-dropdown');
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?.click();
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
- const defaultSortSelector = desktopSortSelector?.children
306
- .item(3)
307
- ?.querySelector('ia-dropdown');
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?.click();
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
- const defaultSortSelector = desktopSortSelector?.children
316
- .item(1)
317
- ?.querySelector('ia-dropdown');
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?.click();
319
+ caret === null || caret === void 0 ? void 0 : caret.click();
321
320
  await el.updateComplete;
322
- let backdrop = el.shadowRoot?.querySelector('#sort-selector-backdrop');
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?.click();
323
+ backdrop === null || backdrop === void 0 ? void 0 : backdrop.click();
325
324
  await el.updateComplete;
326
- backdrop = el.shadowRoot?.querySelector('#sort-selector-backdrop');
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
- const defaultSortSelector = desktopSortSelector?.children
331
- .item(3)
332
- ?.querySelector('ia-dropdown');
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?.click();
333
+ caret === null || caret === void 0 ? void 0 : caret.click();
336
334
  await el.updateComplete;
337
- let backdrop = el.shadowRoot?.querySelector('#sort-selector-backdrop');
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?.click();
337
+ backdrop === null || backdrop === void 0 ? void 0 : backdrop.click();
340
338
  await el.updateComplete;
341
- backdrop = el.shadowRoot?.querySelector('#sort-selector-backdrop');
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
- const defaultSortSelector = desktopSortSelector?.children
346
- .item(3)
347
- ?.querySelector('ia-dropdown');
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?.click();
347
+ caret === null || caret === void 0 ? void 0 : caret.click();
351
348
  await el.updateComplete;
352
- let backdrop = el.shadowRoot?.querySelector('#sort-selector-backdrop');
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?.querySelector('#sort-selector-backdrop');
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?.querySelector('.sort-direction-selector');
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?.querySelector('.sort-direction-selector');
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?.querySelector('.sort-direction-selector');
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
- ?.querySelector('#display-style-selector')
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?.children
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?.children
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?.querySelector('#display-style-selector');
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?.querySelector('#list-detail-button');
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?.querySelector('#list-compact-button');
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?.querySelector('#grid-button');
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?.querySelector('alpha-bar');
466
- const letterLink = alphaBar?.shadowRoot?.querySelector('li > button:not(:disabled)');
467
- expect(letterLink?.textContent?.trim()).to.equal('T');
468
- letterLink?.click();
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?.querySelector('alpha-bar');
480
- const letterLink = alphaBar?.shadowRoot?.querySelector('li > button:not(:disabled)');
481
- expect(letterLink?.textContent?.trim()).to.equal('C');
482
- letterLink?.click();
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?.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;
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?.querySelector('#mobile-dropdown');
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?.querySelector('#mobile-dropdown');
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?.querySelector('#mobile-dropdown');
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?.querySelector('#mobile-dropdown');
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?.shadowRoot?.querySelector('.caret');
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?.click();
557
+ caret === null || caret === void 0 ? void 0 : caret.click();
558
558
  await el.updateComplete;
559
- let backdrop = el.shadowRoot?.querySelector('#sort-selector-backdrop');
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?.click();
561
+ backdrop === null || backdrop === void 0 ? void 0 : backdrop.click();
562
562
  await el.updateComplete;
563
- backdrop = el.shadowRoot?.querySelector('#sort-selector-backdrop');
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?.shadowRoot?.querySelector('#sort-selector-container')).to.exist;
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?.shadowRoot?.querySelector('slot[name="sort-options"]');
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?.shadowRoot?.querySelector('#sort-selector-container')).to.not
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;