@internetarchive/collection-browser 0.3.0-alpha.4 → 0.3.0

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 +26 -26
  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/LICENSE +661 -661
  8. package/README.md +83 -83
  9. package/dist/index.d.ts +9 -9
  10. package/dist/index.js +9 -9
  11. package/dist/src/app-root.d.ts +43 -42
  12. package/dist/src/app-root.js +308 -247
  13. package/dist/src/app-root.js.map +1 -1
  14. package/dist/src/assets/img/icons/arrow-left.d.ts +2 -2
  15. package/dist/src/assets/img/icons/arrow-left.js +2 -2
  16. package/dist/src/assets/img/icons/arrow-right.d.ts +2 -2
  17. package/dist/src/assets/img/icons/arrow-right.js +2 -2
  18. package/dist/src/assets/img/icons/chevron.d.ts +2 -2
  19. package/dist/src/assets/img/icons/chevron.js +2 -2
  20. package/dist/src/assets/img/icons/empty-query.d.ts +2 -2
  21. package/dist/src/assets/img/icons/empty-query.js +2 -2
  22. package/dist/src/assets/img/icons/eye-closed.d.ts +2 -2
  23. package/dist/src/assets/img/icons/eye-closed.js +2 -2
  24. package/dist/src/assets/img/icons/eye.d.ts +2 -2
  25. package/dist/src/assets/img/icons/eye.js +2 -2
  26. package/dist/src/assets/img/icons/favorite-filled.d.ts +1 -1
  27. package/dist/src/assets/img/icons/favorite-filled.js +2 -2
  28. package/dist/src/assets/img/icons/login-required.d.ts +1 -1
  29. package/dist/src/assets/img/icons/login-required.js +2 -2
  30. package/dist/src/assets/img/icons/mediatype/account.d.ts +1 -1
  31. package/dist/src/assets/img/icons/mediatype/account.js +2 -2
  32. package/dist/src/assets/img/icons/mediatype/audio.d.ts +1 -1
  33. package/dist/src/assets/img/icons/mediatype/audio.js +2 -2
  34. package/dist/src/assets/img/icons/mediatype/collection.d.ts +1 -1
  35. package/dist/src/assets/img/icons/mediatype/collection.js +2 -2
  36. package/dist/src/assets/img/icons/mediatype/data.d.ts +1 -1
  37. package/dist/src/assets/img/icons/mediatype/data.js +2 -2
  38. package/dist/src/assets/img/icons/mediatype/etree.d.ts +1 -1
  39. package/dist/src/assets/img/icons/mediatype/etree.js +2 -2
  40. package/dist/src/assets/img/icons/mediatype/film.d.ts +1 -1
  41. package/dist/src/assets/img/icons/mediatype/film.js +2 -2
  42. package/dist/src/assets/img/icons/mediatype/images.d.ts +1 -1
  43. package/dist/src/assets/img/icons/mediatype/images.js +2 -2
  44. package/dist/src/assets/img/icons/mediatype/radio.d.ts +1 -1
  45. package/dist/src/assets/img/icons/mediatype/radio.js +2 -2
  46. package/dist/src/assets/img/icons/mediatype/software.d.ts +1 -1
  47. package/dist/src/assets/img/icons/mediatype/software.js +2 -2
  48. package/dist/src/assets/img/icons/mediatype/texts.d.ts +1 -1
  49. package/dist/src/assets/img/icons/mediatype/texts.js +2 -2
  50. package/dist/src/assets/img/icons/mediatype/tv.d.ts +1 -1
  51. package/dist/src/assets/img/icons/mediatype/tv.js +2 -2
  52. package/dist/src/assets/img/icons/mediatype/video.d.ts +1 -1
  53. package/dist/src/assets/img/icons/mediatype/video.js +2 -2
  54. package/dist/src/assets/img/icons/mediatype/web.d.ts +1 -1
  55. package/dist/src/assets/img/icons/mediatype/web.js +2 -2
  56. package/dist/src/assets/img/icons/null-result.d.ts +2 -2
  57. package/dist/src/assets/img/icons/null-result.js +2 -2
  58. package/dist/src/assets/img/icons/restricted.d.ts +1 -1
  59. package/dist/src/assets/img/icons/restricted.js +2 -2
  60. package/dist/src/assets/img/icons/reviews.d.ts +1 -1
  61. package/dist/src/assets/img/icons/reviews.js +2 -2
  62. package/dist/src/assets/img/icons/upload.d.ts +1 -1
  63. package/dist/src/assets/img/icons/upload.js +2 -2
  64. package/dist/src/assets/img/icons/views.d.ts +1 -1
  65. package/dist/src/assets/img/icons/views.js +2 -2
  66. package/dist/src/circular-activity-indicator.d.ts +5 -5
  67. package/dist/src/circular-activity-indicator.js +17 -17
  68. package/dist/src/collection-browser.d.ts +234 -235
  69. package/dist/src/collection-browser.js +1027 -1032
  70. package/dist/src/collection-browser.js.map +1 -1
  71. package/dist/src/collection-facets/facets-template.d.ts +16 -16
  72. package/dist/src/collection-facets/facets-template.js +139 -131
  73. package/dist/src/collection-facets/facets-template.js.map +1 -1
  74. package/dist/src/collection-facets/facets-util.d.ts +10 -10
  75. package/dist/src/collection-facets/facets-util.js +19 -19
  76. package/dist/src/collection-facets/more-facets-content.d.ts +74 -84
  77. package/dist/src/collection-facets/more-facets-content.js +331 -354
  78. package/dist/src/collection-facets/more-facets-content.js.map +1 -1
  79. package/dist/src/collection-facets/more-facets-pagination.d.ts +36 -36
  80. package/dist/src/collection-facets/more-facets-pagination.js +192 -192
  81. package/dist/src/collection-facets.d.ts +71 -71
  82. package/dist/src/collection-facets.js +331 -325
  83. package/dist/src/collection-facets.js.map +1 -1
  84. package/dist/src/empty-placeholder.d.ts +11 -11
  85. package/dist/src/empty-placeholder.js +42 -42
  86. package/dist/src/language-code-handler/language-code-handler.d.ts +37 -37
  87. package/dist/src/language-code-handler/language-code-handler.js +26 -26
  88. package/dist/src/language-code-handler/language-code-mapping.d.ts +1 -1
  89. package/dist/src/language-code-handler/language-code-mapping.js +562 -562
  90. package/dist/src/mediatype/mediatype-config.d.ts +3 -3
  91. package/dist/src/mediatype/mediatype-config.js +85 -85
  92. package/dist/src/models.d.ts +89 -90
  93. package/dist/src/models.js +85 -85
  94. package/dist/src/models.js.map +1 -1
  95. package/dist/src/restoration-state-handler.d.ts +45 -38
  96. package/dist/src/restoration-state-handler.js +219 -202
  97. package/dist/src/restoration-state-handler.js.map +1 -1
  98. package/dist/src/sort-filter-bar/alpha-bar.d.ts +9 -9
  99. package/dist/src/sort-filter-bar/alpha-bar.js +41 -41
  100. package/dist/src/sort-filter-bar/img/compact.d.ts +1 -1
  101. package/dist/src/sort-filter-bar/img/compact.js +2 -2
  102. package/dist/src/sort-filter-bar/img/list.d.ts +1 -1
  103. package/dist/src/sort-filter-bar/img/list.js +2 -2
  104. package/dist/src/sort-filter-bar/img/sort-triangle.d.ts +1 -1
  105. package/dist/src/sort-filter-bar/img/sort-triangle.js +2 -2
  106. package/dist/src/sort-filter-bar/img/tile.d.ts +1 -1
  107. package/dist/src/sort-filter-bar/img/tile.js +2 -2
  108. package/dist/src/sort-filter-bar/sort-filter-bar.d.ts +107 -107
  109. package/dist/src/sort-filter-bar/sort-filter-bar.js +423 -423
  110. package/dist/src/styles/item-image-styles.d.ts +8 -8
  111. package/dist/src/styles/item-image-styles.js +9 -9
  112. package/dist/src/tiles/collection-browser-loading-tile.d.ts +5 -5
  113. package/dist/src/tiles/collection-browser-loading-tile.js +15 -15
  114. package/dist/src/tiles/grid/account-tile.d.ts +8 -8
  115. package/dist/src/tiles/grid/account-tile.js +20 -20
  116. package/dist/src/tiles/grid/collection-tile.d.ts +7 -7
  117. package/dist/src/tiles/grid/collection-tile.js +23 -23
  118. package/dist/src/tiles/grid/item-tile.d.ts +24 -24
  119. package/dist/src/tiles/grid/item-tile.js +87 -87
  120. package/dist/src/tiles/grid/tile-stats.d.ts +10 -10
  121. package/dist/src/tiles/grid/tile-stats.js +35 -35
  122. package/dist/src/tiles/image-block.d.ts +17 -17
  123. package/dist/src/tiles/image-block.js +73 -73
  124. package/dist/src/tiles/item-image.d.ts +31 -31
  125. package/dist/src/tiles/item-image.js +103 -103
  126. package/dist/src/tiles/list/account-label.d.ts +1 -1
  127. package/dist/src/tiles/list/account-label.js +6 -6
  128. package/dist/src/tiles/list/date-label.d.ts +1 -1
  129. package/dist/src/tiles/list/date-label.js +12 -12
  130. package/dist/src/tiles/list/tile-list-compact-header.d.ts +12 -12
  131. package/dist/src/tiles/list/tile-list-compact-header.js +41 -41
  132. package/dist/src/tiles/list/tile-list-compact.d.ts +20 -20
  133. package/dist/src/tiles/list/tile-list-compact.js +87 -87
  134. package/dist/src/tiles/list/tile-list.d.ts +50 -50
  135. package/dist/src/tiles/list/tile-list.js +263 -263
  136. package/dist/src/tiles/mediatype-icon.d.ts +9 -9
  137. package/dist/src/tiles/mediatype-icon.js +47 -47
  138. package/dist/src/tiles/overlay/icon-overlay.d.ts +7 -7
  139. package/dist/src/tiles/overlay/icon-overlay.js +31 -31
  140. package/dist/src/tiles/overlay/text-overlay.d.ts +8 -8
  141. package/dist/src/tiles/overlay/text-overlay.js +31 -31
  142. package/dist/src/tiles/text-snippet-block.d.ts +29 -29
  143. package/dist/src/tiles/text-snippet-block.js +81 -81
  144. package/dist/src/tiles/tile-dispatcher.d.ts +36 -36
  145. package/dist/src/tiles/tile-dispatcher.js +128 -128
  146. package/dist/src/utils/analytics-events.d.ts +18 -18
  147. package/dist/src/utils/analytics-events.js +20 -20
  148. package/dist/src/utils/format-count.d.ts +7 -7
  149. package/dist/src/utils/format-count.js +75 -75
  150. package/dist/src/utils/format-date.d.ts +2 -2
  151. package/dist/src/utils/format-date.js +23 -23
  152. package/dist/test/collection-browser.test.d.ts +1 -1
  153. package/dist/test/collection-browser.test.js +318 -318
  154. package/dist/test/collection-browser.test.js.map +1 -1
  155. package/dist/test/collection-facets/facets-template.test.d.ts +1 -1
  156. package/dist/test/collection-facets/facets-template.test.js +62 -62
  157. package/dist/test/collection-facets/facets-util.test.d.ts +1 -1
  158. package/dist/test/collection-facets/facets-util.test.js +12 -12
  159. package/dist/test/collection-facets/more-facets-content.test.d.ts +1 -1
  160. package/dist/test/collection-facets/more-facets-content.test.js +91 -91
  161. package/dist/test/collection-facets/more-facets-pagination.test.d.ts +1 -1
  162. package/dist/test/collection-facets/more-facets-pagination.test.js +117 -117
  163. package/dist/test/collection-facets.test.d.ts +2 -2
  164. package/dist/test/collection-facets.test.js +182 -182
  165. package/dist/test/empty-placeholder.test.d.ts +1 -1
  166. package/dist/test/empty-placeholder.test.js +33 -33
  167. package/dist/test/icon-overlay.test.d.ts +1 -1
  168. package/dist/test/icon-overlay.test.js +24 -24
  169. package/dist/test/item-image.test.d.ts +1 -1
  170. package/dist/test/item-image.test.js +56 -56
  171. package/dist/test/mediatype-config.test.d.ts +1 -1
  172. package/dist/test/mediatype-config.test.js +16 -16
  173. package/dist/test/mocks/mock-analytics-handler.d.ts +10 -10
  174. package/dist/test/mocks/mock-analytics-handler.js +15 -15
  175. package/dist/test/mocks/mock-collection-name-cache.d.ts +7 -7
  176. package/dist/test/mocks/mock-collection-name-cache.js +13 -13
  177. package/dist/test/mocks/mock-search-responses.d.ts +5 -5
  178. package/dist/test/mocks/mock-search-responses.js +103 -103
  179. package/dist/test/mocks/mock-search-service.d.ts +13 -13
  180. package/dist/test/mocks/mock-search-service.js +25 -25
  181. package/dist/test/restoration-state-handler.test.d.ts +1 -0
  182. package/dist/test/restoration-state-handler.test.js +118 -0
  183. package/dist/test/restoration-state-handler.test.js.map +1 -0
  184. package/dist/test/sort-filter-bar/sort-filter-bar.test.d.ts +1 -1
  185. package/dist/test/sort-filter-bar/sort-filter-bar.test.js +113 -113
  186. package/dist/test/text-overlay.test.d.ts +1 -1
  187. package/dist/test/text-overlay.test.js +41 -41
  188. package/dist/test/text-snippet-block.test.d.ts +1 -1
  189. package/dist/test/text-snippet-block.test.js +57 -57
  190. package/dist/test/tile-stats.test.d.ts +1 -1
  191. package/dist/test/tile-stats.test.js +33 -33
  192. package/dist/test/tiles/grid/item-tile.test.d.ts +1 -1
  193. package/dist/test/tiles/grid/item-tile.test.js +107 -107
  194. package/dist/test/tiles/list/tile-list.test.d.ts +1 -1
  195. package/dist/test/tiles/list/tile-list.test.js +36 -36
  196. package/dist/test/utils/format-count.test.d.ts +1 -1
  197. package/dist/test/utils/format-count.test.js +23 -23
  198. package/dist/test/utils/format-date.test.d.ts +1 -1
  199. package/dist/test/utils/format-date.test.js +17 -17
  200. package/index.html +24 -24
  201. package/local.archive.org.cert +86 -86
  202. package/local.archive.org.key +27 -27
  203. package/package.json +115 -115
  204. package/renovate.json +6 -6
  205. package/src/app-root.ts +106 -41
  206. package/src/collection-browser.ts +2 -9
  207. package/src/collection-facets/facets-template.ts +14 -6
  208. package/src/collection-facets/more-facets-content.ts +3 -33
  209. package/src/collection-facets.ts +12 -6
  210. package/src/models.ts +0 -2
  211. package/src/restoration-state-handler.ts +45 -11
  212. package/test/collection-browser.test.ts +2 -2
  213. package/test/restoration-state-handler.test.ts +176 -0
  214. package/tsconfig.json +21 -21
  215. package/web-dev-server.config.mjs +30 -30
  216. package/web-test-runner.config.mjs +41 -41
@@ -1,133 +1,133 @@
1
- /* eslint-disable import/no-duplicates */
2
- import { expect, fixture, oneEvent } from '@open-wc/testing';
3
- import { html } from 'lit';
4
- import sinon from 'sinon';
5
- import '../../src/collection-facets/more-facets-pagination';
6
- afterEach(() => {
7
- sinon.restore();
8
- });
9
- describe('More facets pagination', () => {
10
- describe('5 pages or less', () => {
11
- it('shows all pages', async () => {
12
- var _a;
13
- const el = await fixture(html `<more-facets-pagination .size=${5}></more-facets-pagination>`);
14
- await el.updateComplete;
15
- const pageButtons = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelectorAll('button[data-page]');
16
- expect(pageButtons.length).to.greaterThan(0);
17
- pageButtons.forEach((button, index) => {
18
- expect(button.textContent).to.contain(index + 1);
19
- });
20
- });
21
- });
22
- it('should render pagination template', async () => {
23
- var _a, _b;
24
- const el = await fixture(html `<more-facets-pagination .size=${10}></more-facets-pagination>`);
25
- await el.updateComplete;
26
- expect((_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.facets-pagination')).to.exist;
27
- expect((_b = el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('.arrow-icon')).to.exist;
28
- });
29
- it('should render page numbers', async () => {
30
- var _a;
31
- const el = await fixture(html `<more-facets-pagination .size=${3}></more-facets-pagination>`);
32
- await el.updateComplete;
33
- const pageNumberElement = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.page-numbers');
34
- expect(pageNumberElement).to.exist;
35
- expect(pageNumberElement === null || pageNumberElement === void 0 ? void 0 : pageNumberElement.querySelectorAll('button').length).to.equal(3);
36
- });
37
- it('check current page and total pages', async () => {
38
- var _a, _b;
1
+ /* eslint-disable import/no-duplicates */
2
+ import { expect, fixture, oneEvent } from '@open-wc/testing';
3
+ import { html } from 'lit';
4
+ import sinon from 'sinon';
5
+ import '../../src/collection-facets/more-facets-pagination';
6
+ afterEach(() => {
7
+ sinon.restore();
8
+ });
9
+ describe('More facets pagination', () => {
10
+ describe('5 pages or less', () => {
11
+ it('shows all pages', async () => {
12
+ var _a;
13
+ const el = await fixture(html `<more-facets-pagination .size=${5}></more-facets-pagination>`);
14
+ await el.updateComplete;
15
+ const pageButtons = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelectorAll('button[data-page]');
16
+ expect(pageButtons.length).to.greaterThan(0);
17
+ pageButtons.forEach((button, index) => {
18
+ expect(button.textContent).to.contain(index + 1);
19
+ });
20
+ });
21
+ });
22
+ it('should render pagination template', async () => {
23
+ var _a, _b;
24
+ const el = await fixture(html `<more-facets-pagination .size=${10}></more-facets-pagination>`);
25
+ await el.updateComplete;
26
+ expect((_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.facets-pagination')).to.exist;
27
+ expect((_b = el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('.arrow-icon')).to.exist;
28
+ });
29
+ it('should render page numbers', async () => {
30
+ var _a;
31
+ const el = await fixture(html `<more-facets-pagination .size=${3}></more-facets-pagination>`);
32
+ await el.updateComplete;
33
+ const pageNumberElement = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.page-numbers');
34
+ expect(pageNumberElement).to.exist;
35
+ expect(pageNumberElement === null || pageNumberElement === void 0 ? void 0 : pageNumberElement.querySelectorAll('button').length).to.equal(3);
36
+ });
37
+ it('check current page and total pages', async () => {
38
+ var _a, _b;
39
39
  const el = await fixture(html `<more-facets-pagination
40
40
  .size=${4}
41
41
  .currentPage=${2}
42
- ></more-facets-pagination>`);
43
- await el.updateComplete;
44
- const pageNumberElement = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.page-numbers');
45
- expect(pageNumberElement).to.exist;
46
- expect(pageNumberElement === null || pageNumberElement === void 0 ? void 0 : pageNumberElement.querySelectorAll('button')[1].classList.contains('current')).to.be.true;
47
- expect((_b = el.pages) === null || _b === void 0 ? void 0 : _b.length).to.equal(4);
48
- });
49
- it('get page numbers based of size and currentPage', async () => {
50
- var _a;
42
+ ></more-facets-pagination>`);
43
+ await el.updateComplete;
44
+ const pageNumberElement = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.page-numbers');
45
+ expect(pageNumberElement).to.exist;
46
+ expect(pageNumberElement === null || pageNumberElement === void 0 ? void 0 : pageNumberElement.querySelectorAll('button')[1].classList.contains('current')).to.be.true;
47
+ expect((_b = el.pages) === null || _b === void 0 ? void 0 : _b.length).to.equal(4);
48
+ });
49
+ it('get page numbers based of size and currentPage', async () => {
50
+ var _a;
51
51
  const el = await fixture(html `<more-facets-pagination
52
52
  .size=${4}
53
53
  .currentPage=${2}
54
- ></more-facets-pagination>`);
55
- await el.updateComplete;
56
- expect((_a = el.pages) === null || _a === void 0 ? void 0 : _a.length).to.equal(4);
57
- });
58
- describe('Selecting a page', () => {
59
- it('fires event', async () => {
60
- const el = await fixture(html `<more-facets-pagination></more-facets-pagination>`);
61
- await el.updateComplete;
62
- setTimeout(() => el.dispatchEvent(new CustomEvent('pageNumberClicked', { detail: { page: 15 } })));
63
- const { detail } = await oneEvent(el, 'pageNumberClicked');
64
- expect(detail === null || detail === void 0 ? void 0 : detail.page).to.equal(15);
65
- });
66
- it('sets off side effects with `onChange`', async () => {
67
- var _a;
54
+ ></more-facets-pagination>`);
55
+ await el.updateComplete;
56
+ expect((_a = el.pages) === null || _a === void 0 ? void 0 : _a.length).to.equal(4);
57
+ });
58
+ describe('Selecting a page', () => {
59
+ it('fires event', async () => {
60
+ const el = await fixture(html `<more-facets-pagination></more-facets-pagination>`);
61
+ await el.updateComplete;
62
+ setTimeout(() => el.dispatchEvent(new CustomEvent('pageNumberClicked', { detail: { page: 15 } })));
63
+ const { detail } = await oneEvent(el, 'pageNumberClicked');
64
+ expect(detail === null || detail === void 0 ? void 0 : detail.page).to.equal(15);
65
+ });
66
+ it('sets off side effects with `onChange`', async () => {
67
+ var _a;
68
68
  const el = await fixture(html `<more-facets-pagination
69
69
  .size=${'10'}
70
70
  .currentPage=${2}
71
- ></more-facets-pagination>`);
72
- expect(el.currentPage).to.equal(2); // confirm current page
73
- const fake1 = sinon.fake();
74
- const fake2 = sinon.fake();
75
- el.observePageCount = fake1;
76
- el.emitPageClick = fake2;
77
- // select first page button
78
- const pageButton = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.page-numbers > button');
79
- // confirm button isn't selected
80
- expect(pageButton.classList.contains('current')).to.be.false;
81
- pageButton.click();
82
- await el.updateComplete;
83
- expect(fake1.callCount).to.equal(1);
84
- expect(fake2.callCount).to.equal(1);
85
- expect(el.currentPage).to.equal(1); // brings us back to currentPage
86
- // confirm button is selected
87
- expect(pageButton.classList.contains('current')).to.be.true;
88
- });
89
- });
90
- describe('Using Arrows', () => {
91
- it('going backwards', async () => {
92
- var _a, _b;
71
+ ></more-facets-pagination>`);
72
+ expect(el.currentPage).to.equal(2); // confirm current page
73
+ const fake1 = sinon.fake();
74
+ const fake2 = sinon.fake();
75
+ el.observePageCount = fake1;
76
+ el.emitPageClick = fake2;
77
+ // select first page button
78
+ const pageButton = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.page-numbers > button');
79
+ // confirm button isn't selected
80
+ expect(pageButton.classList.contains('current')).to.be.false;
81
+ pageButton.click();
82
+ await el.updateComplete;
83
+ expect(fake1.callCount).to.equal(1);
84
+ expect(fake2.callCount).to.equal(1);
85
+ expect(el.currentPage).to.equal(1); // brings us back to currentPage
86
+ // confirm button is selected
87
+ expect(pageButton.classList.contains('current')).to.be.true;
88
+ });
89
+ });
90
+ describe('Using Arrows', () => {
91
+ it('going backwards', async () => {
92
+ var _a, _b;
93
93
  const el = await fixture(html `<more-facets-pagination
94
94
  .size=${'10'}
95
95
  .currentPage=${2}
96
- ></more-facets-pagination>`);
97
- expect(el.currentPage).to.equal(2); // confirm current page
98
- const fake1 = sinon.fake();
99
- const fake2 = sinon.fake();
100
- el.observePageCount = fake1;
101
- el.emitPageClick = fake2;
102
- // select first page button
103
- const rewindButton = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.facets-pagination > button.rewind');
104
- rewindButton.click();
105
- await el.updateComplete;
106
- expect(fake1.callCount).to.equal(1);
107
- expect(fake2.callCount).to.equal(1);
108
- expect(el.currentPage).to.equal(1); // brings us back 1 page
109
- // confirm button is selected
110
- expect(((_b = el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('.page-numbers > button[data-page="1"]')).classList.contains('current')).to.be.true;
111
- });
112
- it('going forwards', async () => {
113
- var _a;
96
+ ></more-facets-pagination>`);
97
+ expect(el.currentPage).to.equal(2); // confirm current page
98
+ const fake1 = sinon.fake();
99
+ const fake2 = sinon.fake();
100
+ el.observePageCount = fake1;
101
+ el.emitPageClick = fake2;
102
+ // select first page button
103
+ const rewindButton = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.facets-pagination > button.rewind');
104
+ rewindButton.click();
105
+ await el.updateComplete;
106
+ expect(fake1.callCount).to.equal(1);
107
+ expect(fake2.callCount).to.equal(1);
108
+ expect(el.currentPage).to.equal(1); // brings us back 1 page
109
+ // confirm button is selected
110
+ expect(((_b = el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('.page-numbers > button[data-page="1"]')).classList.contains('current')).to.be.true;
111
+ });
112
+ it('going forwards', async () => {
113
+ var _a;
114
114
  const el = await fixture(html `<more-facets-pagination
115
115
  .size=${'10'}
116
116
  .currentPage=${5}
117
- ></more-facets-pagination>`);
118
- expect(el.currentPage).to.equal(5); // confirm current page
119
- const fake1 = sinon.fake();
120
- const fake2 = sinon.fake();
121
- el.observePageCount = fake1;
122
- el.emitPageClick = fake2;
123
- // select first page button
124
- const forwardButton = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.facets-pagination > button.forward');
125
- forwardButton.click();
126
- await el.updateComplete;
127
- expect(fake1.callCount).to.equal(1);
128
- expect(fake2.callCount).to.equal(1);
129
- expect(el.currentPage).to.equal(6); // brings us forward 1 page
130
- });
131
- });
132
- });
117
+ ></more-facets-pagination>`);
118
+ expect(el.currentPage).to.equal(5); // confirm current page
119
+ const fake1 = sinon.fake();
120
+ const fake2 = sinon.fake();
121
+ el.observePageCount = fake1;
122
+ el.emitPageClick = fake2;
123
+ // select first page button
124
+ const forwardButton = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.facets-pagination > button.forward');
125
+ forwardButton.click();
126
+ await el.updateComplete;
127
+ expect(fake1.callCount).to.equal(1);
128
+ expect(fake2.callCount).to.equal(1);
129
+ expect(el.currentPage).to.equal(6); // brings us forward 1 page
130
+ });
131
+ });
132
+ });
133
133
  //# sourceMappingURL=more-facets-pagination.test.js.map
@@ -1,2 +1,2 @@
1
- import '@internetarchive/modal-manager';
2
- import '../src/collection-facets';
1
+ import '@internetarchive/modal-manager';
2
+ import '../src/collection-facets';
@@ -1,185 +1,185 @@
1
- /* eslint-disable import/no-duplicates */
2
- import { expect, fixture } from '@open-wc/testing';
3
- import sinon from 'sinon';
4
- import { html } from 'lit';
5
- import { Aggregation } from '@internetarchive/search-service';
6
- import { ModalManager, } from '@internetarchive/modal-manager';
7
- import '@internetarchive/modal-manager';
8
- import '../src/collection-facets';
9
- describe('Collection Facets', () => {
10
- it('has loader', async () => {
11
- var _a, _b, _c, _d;
12
- const el = await fixture(html `<collection-facets ?facetsLoading=${true}></collection-facets>`);
13
- expect((_b = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('#container')) === null || _b === void 0 ? void 0 : _b.classList.contains('loading')).to.be.true;
14
- el.facetsLoading = false;
15
- await el.updateComplete;
16
- expect((_d = (_c = el.shadowRoot) === null || _c === void 0 ? void 0 : _c.querySelector('#container')) === null || _d === void 0 ? void 0 : _d.classList.contains('loading')).to.be.false;
17
- });
18
- it('renders aggregations as facets', async () => {
19
- var _a, _b, _c, _d, _e;
20
- const el = await fixture(html `<collection-facets></collection-facets>`);
21
- const aggs = {
22
- subject: new Aggregation({
23
- buckets: [
24
- {
25
- key: 'foo',
26
- doc_count: 5,
27
- },
28
- ],
29
- }),
30
- };
31
- el.aggregations = aggs;
32
- await el.updateComplete;
33
- const facetGroups = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelectorAll('.facet-group');
34
- expect(facetGroups === null || facetGroups === void 0 ? void 0 : facetGroups.length).to.equal(1);
35
- const titleFacetGroup = facetGroups === null || facetGroups === void 0 ? void 0 : facetGroups[0];
36
- const facetGroupHeader = titleFacetGroup === null || titleFacetGroup === void 0 ? void 0 : titleFacetGroup.querySelector('h1');
37
- expect((_b = facetGroupHeader === null || facetGroupHeader === void 0 ? void 0 : facetGroupHeader.textContent) === null || _b === void 0 ? void 0 : _b.trim()).to.equal('Subject');
38
- const titleFacetRow = (_d = (_c = titleFacetGroup === null || titleFacetGroup === void 0 ? void 0 : titleFacetGroup.querySelector('facets-template')) === null || _c === void 0 ? void 0 : _c.shadowRoot) === null || _d === void 0 ? void 0 : _d.querySelector('.facet-row');
39
- console.log(titleFacetGroup === null || titleFacetGroup === void 0 ? void 0 : titleFacetGroup.querySelector('facets-template'));
40
- expect((_e = titleFacetRow === null || titleFacetRow === void 0 ? void 0 : titleFacetRow.textContent) === null || _e === void 0 ? void 0 : _e.trim()).to.satisfy((text) => /^foo\s*5$/.test(text));
41
- });
42
- it('renders multiple aggregation types', async () => {
43
- var _a;
44
- const el = await fixture(html `<collection-facets></collection-facets>`);
45
- const aggs = {
46
- subject: new Aggregation({
47
- buckets: [
48
- {
49
- key: 'foo',
50
- doc_count: 5,
51
- },
52
- ],
53
- }),
54
- mediatype: new Aggregation({
55
- buckets: [
56
- {
57
- key: 'bar',
58
- doc_count: 10,
59
- },
60
- ],
61
- }),
62
- };
63
- el.aggregations = aggs;
64
- await el.updateComplete;
65
- const facetGroups = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelectorAll('.facet-group');
66
- expect(facetGroups === null || facetGroups === void 0 ? void 0 : facetGroups.length).to.equal(2);
67
- });
68
- it('renders collection facets as links', async () => {
69
- var _a, _b, _c, _d;
70
- const el = await fixture(html `<collection-facets></collection-facets>`);
71
- const aggs = {
72
- collection: new Aggregation({
73
- buckets: [
74
- {
75
- key: 'foo',
76
- doc_count: 5,
77
- },
78
- ],
79
- }),
80
- };
81
- el.aggregations = aggs;
82
- await el.updateComplete;
83
- const collectionName = (_c = (_b = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('facets-template')) === null || _b === void 0 ? void 0 : _b.shadowRoot) === null || _c === void 0 ? void 0 : _c.querySelector('async-collection-name');
84
- expect(collectionName === null || collectionName === void 0 ? void 0 : collectionName.parentElement).to.be.instanceOf(HTMLAnchorElement);
85
- expect((_d = collectionName === null || collectionName === void 0 ? void 0 : collectionName.parentElement) === null || _d === void 0 ? void 0 : _d.getAttribute('href')).to.equal('/details/foo');
86
- });
87
- it('renders non-collection facets without links', async () => {
88
- var _a, _b, _c;
89
- const el = await fixture(html `<collection-facets></collection-facets>`);
90
- const aggs = {
91
- subject: new Aggregation({
92
- buckets: [
93
- {
94
- key: 'foo',
95
- doc_count: 5,
96
- },
97
- ],
98
- }),
99
- };
100
- el.aggregations = aggs;
101
- await el.updateComplete;
102
- const collectionName = (_c = (_b = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('facets-template')) === null || _b === void 0 ? void 0 : _b.shadowRoot) === null || _c === void 0 ? void 0 : _c.querySelector('async-collection-name');
103
- expect(collectionName === null || collectionName === void 0 ? void 0 : collectionName.parentElement).to.not.be.instanceOf(HTMLAnchorElement);
104
- });
105
- describe('More Facets', () => {
106
- it('Does not render < allowedFacetCount', async () => {
107
- var _a;
108
- const el = await fixture(html `<collection-facets></collection-facets>`);
109
- const aggs = {
110
- subject: new Aggregation({
111
- buckets: [
112
- {
113
- key: 'foo',
114
- doc_count: 5,
115
- },
116
- ],
117
- }),
118
- };
119
- el.aggregations = aggs;
120
- await el.updateComplete;
121
- const moreLink = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.more-link');
122
- expect(moreLink).to.be.null;
123
- });
124
- it('Render More Facets', async () => {
125
- var _a, _b;
1
+ /* eslint-disable import/no-duplicates */
2
+ import { expect, fixture } from '@open-wc/testing';
3
+ import sinon from 'sinon';
4
+ import { html } from 'lit';
5
+ import { Aggregation } from '@internetarchive/search-service';
6
+ import { ModalManager, } from '@internetarchive/modal-manager';
7
+ import '@internetarchive/modal-manager';
8
+ import '../src/collection-facets';
9
+ describe('Collection Facets', () => {
10
+ it('has loader', async () => {
11
+ var _a, _b, _c, _d;
12
+ const el = await fixture(html `<collection-facets ?facetsLoading=${true}></collection-facets>`);
13
+ expect((_b = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('#container')) === null || _b === void 0 ? void 0 : _b.classList.contains('loading')).to.be.true;
14
+ el.facetsLoading = false;
15
+ await el.updateComplete;
16
+ expect((_d = (_c = el.shadowRoot) === null || _c === void 0 ? void 0 : _c.querySelector('#container')) === null || _d === void 0 ? void 0 : _d.classList.contains('loading')).to.be.false;
17
+ });
18
+ it('renders aggregations as facets', async () => {
19
+ var _a, _b, _c, _d, _e;
20
+ const el = await fixture(html `<collection-facets></collection-facets>`);
21
+ const aggs = {
22
+ subject: new Aggregation({
23
+ buckets: [
24
+ {
25
+ key: 'foo',
26
+ doc_count: 5,
27
+ },
28
+ ],
29
+ }),
30
+ };
31
+ el.aggregations = aggs;
32
+ await el.updateComplete;
33
+ const facetGroups = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelectorAll('.facet-group');
34
+ expect(facetGroups === null || facetGroups === void 0 ? void 0 : facetGroups.length).to.equal(1);
35
+ const titleFacetGroup = facetGroups === null || facetGroups === void 0 ? void 0 : facetGroups[0];
36
+ const facetGroupHeader = titleFacetGroup === null || titleFacetGroup === void 0 ? void 0 : titleFacetGroup.querySelector('h1');
37
+ expect((_b = facetGroupHeader === null || facetGroupHeader === void 0 ? void 0 : facetGroupHeader.textContent) === null || _b === void 0 ? void 0 : _b.trim()).to.equal('Subject');
38
+ const titleFacetRow = (_d = (_c = titleFacetGroup === null || titleFacetGroup === void 0 ? void 0 : titleFacetGroup.querySelector('facets-template')) === null || _c === void 0 ? void 0 : _c.shadowRoot) === null || _d === void 0 ? void 0 : _d.querySelector('.facet-row');
39
+ console.log(titleFacetGroup === null || titleFacetGroup === void 0 ? void 0 : titleFacetGroup.querySelector('facets-template'));
40
+ expect((_e = titleFacetRow === null || titleFacetRow === void 0 ? void 0 : titleFacetRow.textContent) === null || _e === void 0 ? void 0 : _e.trim()).to.satisfy((text) => /^foo\s*5$/.test(text));
41
+ });
42
+ it('renders multiple aggregation types', async () => {
43
+ var _a;
44
+ const el = await fixture(html `<collection-facets></collection-facets>`);
45
+ const aggs = {
46
+ subject: new Aggregation({
47
+ buckets: [
48
+ {
49
+ key: 'foo',
50
+ doc_count: 5,
51
+ },
52
+ ],
53
+ }),
54
+ mediatype: new Aggregation({
55
+ buckets: [
56
+ {
57
+ key: 'bar',
58
+ doc_count: 10,
59
+ },
60
+ ],
61
+ }),
62
+ };
63
+ el.aggregations = aggs;
64
+ await el.updateComplete;
65
+ const facetGroups = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelectorAll('.facet-group');
66
+ expect(facetGroups === null || facetGroups === void 0 ? void 0 : facetGroups.length).to.equal(2);
67
+ });
68
+ it('renders collection facets as links', async () => {
69
+ var _a, _b, _c, _d;
70
+ const el = await fixture(html `<collection-facets></collection-facets>`);
71
+ const aggs = {
72
+ collection: new Aggregation({
73
+ buckets: [
74
+ {
75
+ key: 'foo',
76
+ doc_count: 5,
77
+ },
78
+ ],
79
+ }),
80
+ };
81
+ el.aggregations = aggs;
82
+ await el.updateComplete;
83
+ const collectionName = (_c = (_b = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('facets-template')) === null || _b === void 0 ? void 0 : _b.shadowRoot) === null || _c === void 0 ? void 0 : _c.querySelector('async-collection-name');
84
+ expect(collectionName === null || collectionName === void 0 ? void 0 : collectionName.parentElement).to.be.instanceOf(HTMLAnchorElement);
85
+ expect((_d = collectionName === null || collectionName === void 0 ? void 0 : collectionName.parentElement) === null || _d === void 0 ? void 0 : _d.getAttribute('href')).to.equal('/details/foo');
86
+ });
87
+ it('renders non-collection facets without links', async () => {
88
+ var _a, _b, _c;
89
+ const el = await fixture(html `<collection-facets></collection-facets>`);
90
+ const aggs = {
91
+ subject: new Aggregation({
92
+ buckets: [
93
+ {
94
+ key: 'foo',
95
+ doc_count: 5,
96
+ },
97
+ ],
98
+ }),
99
+ };
100
+ el.aggregations = aggs;
101
+ await el.updateComplete;
102
+ const collectionName = (_c = (_b = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('facets-template')) === null || _b === void 0 ? void 0 : _b.shadowRoot) === null || _c === void 0 ? void 0 : _c.querySelector('async-collection-name');
103
+ expect(collectionName === null || collectionName === void 0 ? void 0 : collectionName.parentElement).to.not.be.instanceOf(HTMLAnchorElement);
104
+ });
105
+ describe('More Facets', () => {
106
+ it('Does not render < allowedFacetCount', async () => {
107
+ var _a;
108
+ const el = await fixture(html `<collection-facets></collection-facets>`);
109
+ const aggs = {
110
+ subject: new Aggregation({
111
+ buckets: [
112
+ {
113
+ key: 'foo',
114
+ doc_count: 5,
115
+ },
116
+ ],
117
+ }),
118
+ };
119
+ el.aggregations = aggs;
120
+ await el.updateComplete;
121
+ const moreLink = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.more-link');
122
+ expect(moreLink).to.be.null;
123
+ });
124
+ it('Render More Facets', async () => {
125
+ var _a, _b;
126
126
  const el = await fixture(html `<collection-facets
127
127
  .modalManager=${new ModalManager()}
128
- ></collection-facets>`);
129
- const aggs = {
130
- subject: new Aggregation({
131
- buckets: [
132
- {
133
- key: 'foo',
134
- doc_count: 5,
135
- },
136
- {
137
- key: 'fi',
138
- doc_count: 5,
139
- },
140
- {
141
- key: 'fum',
142
- doc_count: 5,
143
- },
144
- {
145
- key: 'flee',
146
- doc_count: 5,
147
- },
148
- {
149
- key: 'wheee',
150
- doc_count: 5,
151
- },
152
- {
153
- key: 'whooo',
154
- doc_count: 5,
155
- },
156
- {
157
- key: 'boop',
158
- doc_count: 5,
159
- },
160
- ],
161
- }),
162
- };
163
- el.aggregations = aggs;
164
- await el.updateComplete;
165
- let eventCaught = false;
166
- let eventFacet = '';
167
- el.addEventListener('showMoreFacets', e => {
168
- eventFacet = e.detail;
169
- eventCaught = true;
170
- });
171
- const moreLink = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.more-link');
172
- expect(moreLink).to.exist; // has link
173
- const showModalSpy = sinon.spy(el.modalManager, 'showModal');
174
- // let's pop up modal
175
- moreLink === null || moreLink === void 0 ? void 0 : moreLink.click();
176
- await el.updateComplete;
177
- expect(showModalSpy.callCount).to.equal(1);
178
- expect((_b = el.modalManager) === null || _b === void 0 ? void 0 : _b.classList.contains('more-search-facets')).to.be
179
- .true;
180
- expect(eventCaught).to.be.true;
181
- expect(eventFacet).to.equal('subject');
182
- });
183
- });
184
- });
128
+ ></collection-facets>`);
129
+ const aggs = {
130
+ subject: new Aggregation({
131
+ buckets: [
132
+ {
133
+ key: 'foo',
134
+ doc_count: 5,
135
+ },
136
+ {
137
+ key: 'fi',
138
+ doc_count: 5,
139
+ },
140
+ {
141
+ key: 'fum',
142
+ doc_count: 5,
143
+ },
144
+ {
145
+ key: 'flee',
146
+ doc_count: 5,
147
+ },
148
+ {
149
+ key: 'wheee',
150
+ doc_count: 5,
151
+ },
152
+ {
153
+ key: 'whooo',
154
+ doc_count: 5,
155
+ },
156
+ {
157
+ key: 'boop',
158
+ doc_count: 5,
159
+ },
160
+ ],
161
+ }),
162
+ };
163
+ el.aggregations = aggs;
164
+ await el.updateComplete;
165
+ let eventCaught = false;
166
+ let eventFacet = '';
167
+ el.addEventListener('showMoreFacets', e => {
168
+ eventFacet = e.detail;
169
+ eventCaught = true;
170
+ });
171
+ const moreLink = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.more-link');
172
+ expect(moreLink).to.exist; // has link
173
+ const showModalSpy = sinon.spy(el.modalManager, 'showModal');
174
+ // let's pop up modal
175
+ moreLink === null || moreLink === void 0 ? void 0 : moreLink.click();
176
+ await el.updateComplete;
177
+ expect(showModalSpy.callCount).to.equal(1);
178
+ expect((_b = el.modalManager) === null || _b === void 0 ? void 0 : _b.classList.contains('more-search-facets')).to.be
179
+ .true;
180
+ expect(eventCaught).to.be.true;
181
+ expect(eventFacet).to.equal('subject');
182
+ });
183
+ });
184
+ });
185
185
  //# sourceMappingURL=collection-facets.test.js.map
@@ -1 +1 @@
1
- import '../src/empty-placeholder';
1
+ import '../src/empty-placeholder';