@internetarchive/collection-browser 0.3.0 → 0.3.1-alpha.2

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 (212) 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 -43
  12. package/dist/src/app-root.js +233 -233
  13. package/dist/src/assets/img/icons/arrow-left.d.ts +2 -2
  14. package/dist/src/assets/img/icons/arrow-left.js +2 -2
  15. package/dist/src/assets/img/icons/arrow-right.d.ts +2 -2
  16. package/dist/src/assets/img/icons/arrow-right.js +2 -2
  17. package/dist/src/assets/img/icons/chevron.d.ts +2 -2
  18. package/dist/src/assets/img/icons/chevron.js +2 -2
  19. package/dist/src/assets/img/icons/empty-query.d.ts +2 -2
  20. package/dist/src/assets/img/icons/empty-query.js +2 -2
  21. package/dist/src/assets/img/icons/eye-closed.d.ts +2 -2
  22. package/dist/src/assets/img/icons/eye-closed.js +2 -2
  23. package/dist/src/assets/img/icons/eye.d.ts +2 -2
  24. package/dist/src/assets/img/icons/eye.js +2 -2
  25. package/dist/src/assets/img/icons/favorite-filled.d.ts +1 -1
  26. package/dist/src/assets/img/icons/favorite-filled.js +2 -2
  27. package/dist/src/assets/img/icons/login-required.d.ts +1 -1
  28. package/dist/src/assets/img/icons/login-required.js +2 -2
  29. package/dist/src/assets/img/icons/mediatype/account.d.ts +1 -1
  30. package/dist/src/assets/img/icons/mediatype/account.js +2 -2
  31. package/dist/src/assets/img/icons/mediatype/audio.d.ts +1 -1
  32. package/dist/src/assets/img/icons/mediatype/audio.js +2 -2
  33. package/dist/src/assets/img/icons/mediatype/collection.d.ts +1 -1
  34. package/dist/src/assets/img/icons/mediatype/collection.js +2 -2
  35. package/dist/src/assets/img/icons/mediatype/data.d.ts +1 -1
  36. package/dist/src/assets/img/icons/mediatype/data.js +2 -2
  37. package/dist/src/assets/img/icons/mediatype/etree.d.ts +1 -1
  38. package/dist/src/assets/img/icons/mediatype/etree.js +2 -2
  39. package/dist/src/assets/img/icons/mediatype/film.d.ts +1 -1
  40. package/dist/src/assets/img/icons/mediatype/film.js +2 -2
  41. package/dist/src/assets/img/icons/mediatype/images.d.ts +1 -1
  42. package/dist/src/assets/img/icons/mediatype/images.js +2 -2
  43. package/dist/src/assets/img/icons/mediatype/radio.d.ts +1 -1
  44. package/dist/src/assets/img/icons/mediatype/radio.js +2 -2
  45. package/dist/src/assets/img/icons/mediatype/software.d.ts +1 -1
  46. package/dist/src/assets/img/icons/mediatype/software.js +2 -2
  47. package/dist/src/assets/img/icons/mediatype/texts.d.ts +1 -1
  48. package/dist/src/assets/img/icons/mediatype/texts.js +2 -2
  49. package/dist/src/assets/img/icons/mediatype/tv.d.ts +1 -1
  50. package/dist/src/assets/img/icons/mediatype/tv.js +2 -2
  51. package/dist/src/assets/img/icons/mediatype/video.d.ts +1 -1
  52. package/dist/src/assets/img/icons/mediatype/video.js +2 -2
  53. package/dist/src/assets/img/icons/mediatype/web.d.ts +1 -1
  54. package/dist/src/assets/img/icons/mediatype/web.js +2 -2
  55. package/dist/src/assets/img/icons/null-result.d.ts +2 -2
  56. package/dist/src/assets/img/icons/null-result.js +2 -2
  57. package/dist/src/assets/img/icons/restricted.d.ts +1 -1
  58. package/dist/src/assets/img/icons/restricted.js +2 -2
  59. package/dist/src/assets/img/icons/reviews.d.ts +1 -1
  60. package/dist/src/assets/img/icons/reviews.js +2 -2
  61. package/dist/src/assets/img/icons/upload.d.ts +1 -1
  62. package/dist/src/assets/img/icons/upload.js +2 -2
  63. package/dist/src/assets/img/icons/views.d.ts +1 -1
  64. package/dist/src/assets/img/icons/views.js +2 -2
  65. package/dist/src/circular-activity-indicator.d.ts +5 -5
  66. package/dist/src/circular-activity-indicator.js +17 -17
  67. package/dist/src/collection-browser.d.ts +236 -234
  68. package/dist/src/collection-browser.js +1402 -1367
  69. package/dist/src/collection-browser.js.map +1 -1
  70. package/dist/src/collection-facets/facets-template.d.ts +16 -16
  71. package/dist/src/collection-facets/facets-template.js +125 -125
  72. package/dist/src/collection-facets/more-facets-content.d.ts +74 -74
  73. package/dist/src/collection-facets/more-facets-content.js +330 -330
  74. package/dist/src/collection-facets/more-facets-pagination.d.ts +36 -36
  75. package/dist/src/collection-facets/more-facets-pagination.js +192 -192
  76. package/dist/src/collection-facets.d.ts +71 -71
  77. package/dist/src/collection-facets.js +496 -476
  78. package/dist/src/collection-facets.js.map +1 -1
  79. package/dist/src/empty-placeholder.d.ts +11 -11
  80. package/dist/src/empty-placeholder.js +42 -42
  81. package/dist/src/language-code-handler/language-code-handler.d.ts +37 -37
  82. package/dist/src/language-code-handler/language-code-handler.js +26 -26
  83. package/dist/src/language-code-handler/language-code-mapping.d.ts +1 -1
  84. package/dist/src/language-code-handler/language-code-mapping.js +562 -562
  85. package/dist/src/mediatype/mediatype-config.d.ts +3 -3
  86. package/dist/src/mediatype/mediatype-config.js +85 -85
  87. package/dist/src/models.d.ts +97 -89
  88. package/dist/src/models.js +100 -85
  89. package/dist/src/models.js.map +1 -1
  90. package/dist/src/restoration-state-handler.d.ts +46 -45
  91. package/dist/src/restoration-state-handler.js +231 -219
  92. package/dist/src/restoration-state-handler.js.map +1 -1
  93. package/dist/src/sort-filter-bar/alpha-bar.d.ts +9 -9
  94. package/dist/src/sort-filter-bar/alpha-bar.js +41 -41
  95. package/dist/src/sort-filter-bar/img/compact.d.ts +1 -1
  96. package/dist/src/sort-filter-bar/img/compact.js +2 -2
  97. package/dist/src/sort-filter-bar/img/list.d.ts +1 -1
  98. package/dist/src/sort-filter-bar/img/list.js +2 -2
  99. package/dist/src/sort-filter-bar/img/sort-triangle.d.ts +1 -1
  100. package/dist/src/sort-filter-bar/img/sort-triangle.js +2 -2
  101. package/dist/src/sort-filter-bar/img/tile.d.ts +1 -1
  102. package/dist/src/sort-filter-bar/img/tile.js +2 -2
  103. package/dist/src/sort-filter-bar/sort-filter-bar.d.ts +107 -107
  104. package/dist/src/sort-filter-bar/sort-filter-bar.js +423 -423
  105. package/dist/src/styles/item-image-styles.d.ts +8 -8
  106. package/dist/src/styles/item-image-styles.js +9 -9
  107. package/dist/src/tiles/collection-browser-loading-tile.d.ts +5 -5
  108. package/dist/src/tiles/collection-browser-loading-tile.js +15 -15
  109. package/dist/src/tiles/grid/account-tile.d.ts +8 -8
  110. package/dist/src/tiles/grid/account-tile.js +20 -20
  111. package/dist/src/tiles/grid/collection-tile.d.ts +7 -7
  112. package/dist/src/tiles/grid/collection-tile.js +23 -23
  113. package/dist/src/tiles/grid/item-tile.d.ts +24 -24
  114. package/dist/src/tiles/grid/item-tile.js +87 -87
  115. package/dist/src/tiles/grid/tile-stats.d.ts +10 -10
  116. package/dist/src/tiles/grid/tile-stats.js +35 -35
  117. package/dist/src/tiles/image-block.d.ts +17 -17
  118. package/dist/src/tiles/image-block.js +73 -73
  119. package/dist/src/tiles/item-image.d.ts +31 -31
  120. package/dist/src/tiles/item-image.js +103 -103
  121. package/dist/src/tiles/list/account-label.d.ts +1 -1
  122. package/dist/src/tiles/list/account-label.js +6 -6
  123. package/dist/src/tiles/list/date-label.d.ts +1 -1
  124. package/dist/src/tiles/list/date-label.js +12 -12
  125. package/dist/src/tiles/list/tile-list-compact-header.d.ts +12 -12
  126. package/dist/src/tiles/list/tile-list-compact-header.js +41 -41
  127. package/dist/src/tiles/list/tile-list-compact.d.ts +20 -20
  128. package/dist/src/tiles/list/tile-list-compact.js +87 -87
  129. package/dist/src/tiles/list/tile-list.d.ts +50 -50
  130. package/dist/src/tiles/list/tile-list.js +263 -263
  131. package/dist/src/tiles/mediatype-icon.d.ts +9 -9
  132. package/dist/src/tiles/mediatype-icon.js +47 -47
  133. package/dist/src/tiles/overlay/icon-overlay.d.ts +7 -7
  134. package/dist/src/tiles/overlay/icon-overlay.js +31 -31
  135. package/dist/src/tiles/overlay/text-overlay.d.ts +8 -8
  136. package/dist/src/tiles/overlay/text-overlay.js +31 -31
  137. package/dist/src/tiles/text-snippet-block.d.ts +29 -29
  138. package/dist/src/tiles/text-snippet-block.js +81 -81
  139. package/dist/src/tiles/tile-dispatcher.d.ts +36 -36
  140. package/dist/src/tiles/tile-dispatcher.js +128 -128
  141. package/dist/src/utils/analytics-events.d.ts +18 -18
  142. package/dist/src/utils/analytics-events.js +20 -20
  143. package/dist/src/utils/format-count.d.ts +7 -7
  144. package/dist/src/utils/format-count.js +75 -75
  145. package/dist/src/utils/format-date.d.ts +2 -2
  146. package/dist/src/utils/format-date.js +23 -23
  147. package/dist/test/collection-browser.test.d.ts +1 -1
  148. package/dist/test/collection-browser.test.js +344 -342
  149. package/dist/test/collection-browser.test.js.map +1 -1
  150. package/dist/test/collection-facets/facets-template.test.d.ts +1 -1
  151. package/dist/test/collection-facets/facets-template.test.js +62 -62
  152. package/dist/test/collection-facets/more-facets-content.test.d.ts +1 -1
  153. package/dist/test/collection-facets/more-facets-content.test.js +91 -91
  154. package/dist/test/collection-facets/more-facets-pagination.test.d.ts +1 -1
  155. package/dist/test/collection-facets/more-facets-pagination.test.js +117 -117
  156. package/dist/test/collection-facets.test.d.ts +2 -2
  157. package/dist/test/collection-facets.test.js +182 -182
  158. package/dist/test/empty-placeholder.test.d.ts +1 -1
  159. package/dist/test/empty-placeholder.test.js +33 -33
  160. package/dist/test/icon-overlay.test.d.ts +1 -1
  161. package/dist/test/icon-overlay.test.js +24 -24
  162. package/dist/test/item-image.test.d.ts +1 -1
  163. package/dist/test/item-image.test.js +56 -56
  164. package/dist/test/mediatype-config.test.d.ts +1 -1
  165. package/dist/test/mediatype-config.test.js +16 -16
  166. package/dist/test/mocks/mock-analytics-handler.d.ts +10 -10
  167. package/dist/test/mocks/mock-analytics-handler.js +15 -15
  168. package/dist/test/mocks/mock-collection-name-cache.d.ts +7 -7
  169. package/dist/test/mocks/mock-collection-name-cache.js +13 -13
  170. package/dist/test/mocks/mock-search-responses.d.ts +5 -5
  171. package/dist/test/mocks/mock-search-responses.js +103 -103
  172. package/dist/test/mocks/mock-search-service.d.ts +13 -13
  173. package/dist/test/mocks/mock-search-service.js +25 -25
  174. package/dist/test/restoration-state-handler.test.d.ts +1 -1
  175. package/dist/test/restoration-state-handler.test.js +117 -117
  176. package/dist/test/sort-filter-bar/sort-filter-bar.test.d.ts +1 -1
  177. package/dist/test/sort-filter-bar/sort-filter-bar.test.js +113 -113
  178. package/dist/test/text-overlay.test.d.ts +1 -1
  179. package/dist/test/text-overlay.test.js +41 -41
  180. package/dist/test/text-snippet-block.test.d.ts +1 -1
  181. package/dist/test/text-snippet-block.test.js +57 -57
  182. package/dist/test/tile-stats.test.d.ts +1 -1
  183. package/dist/test/tile-stats.test.js +33 -33
  184. package/dist/test/tiles/grid/item-tile.test.d.ts +1 -1
  185. package/dist/test/tiles/grid/item-tile.test.js +107 -107
  186. package/dist/test/tiles/list/tile-list.test.d.ts +1 -1
  187. package/dist/test/tiles/list/tile-list.test.js +36 -36
  188. package/dist/test/utils/format-count.test.d.ts +1 -1
  189. package/dist/test/utils/format-count.test.js +23 -23
  190. package/dist/test/utils/format-date.test.d.ts +1 -1
  191. package/dist/test/utils/format-date.test.js +17 -17
  192. package/index.html +24 -24
  193. package/local.archive.org.cert +86 -86
  194. package/local.archive.org.key +27 -27
  195. package/package.json +115 -115
  196. package/renovate.json +6 -6
  197. package/src/collection-browser.ts +1526 -1489
  198. package/src/collection-facets.ts +569 -541
  199. package/src/models.ts +216 -188
  200. package/src/restoration-state-handler.ts +314 -301
  201. package/test/collection-browser.test.ts +490 -488
  202. package/tsconfig.json +21 -21
  203. package/web-dev-server.config.mjs +30 -30
  204. package/web-test-runner.config.mjs +41 -41
  205. package/dist/src/collection-facets/facets-util.d.ts +0 -10
  206. package/dist/src/collection-facets/facets-util.js +0 -20
  207. package/dist/src/collection-facets/facets-util.js.map +0 -1
  208. package/dist/test/collection-facets/facets-util.test.d.ts +0 -1
  209. package/dist/test/collection-facets/facets-util.test.js +0 -13
  210. package/dist/test/collection-facets/facets-util.test.js.map +0 -1
  211. package/src/collection-facets/facets-util.ts +0 -22
  212. package/test/collection-facets/facets-util.test.ts +0 -18
@@ -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';