@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
@@ -3,15 +3,17 @@ import { html } from 'lit';
3
3
  import '../src/tiles/grid/tile-stats';
4
4
  describe('Tile Stats', () => {
5
5
  it('should render initial component', async () => {
6
+ var _a, _b;
6
7
  const el = await fixture(html `<tile-stats></tile-stats>`);
7
- const itemStats = el.shadowRoot?.querySelector('.item-stats');
8
- const statsRow = el.shadowRoot?.querySelector('#stats-row');
9
- const statsRowCount = statsRow?.childElementCount;
8
+ const itemStats = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.item-stats');
9
+ const statsRow = (_b = el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('#stats-row');
10
+ const statsRowCount = statsRow === null || statsRow === void 0 ? void 0 : statsRow.childElementCount;
10
11
  expect(itemStats).to.exist;
11
12
  expect(statsRow).to.exist;
12
13
  expect(statsRowCount).to.equal(4);
13
14
  });
14
15
  it('should render component with values', async () => {
16
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
15
17
  const el = await fixture(html `
16
18
  <tile-stats
17
19
  .mediatype=${'account'}
@@ -21,29 +23,21 @@ describe('Tile Stats', () => {
21
23
  >
22
24
  </tile-stats>
23
25
  `);
24
- const statsRow = el.shadowRoot?.querySelector('#stats-row');
25
- const mediatypeStat = statsRow?.children.item(0);
26
+ const statsRow = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('#stats-row');
27
+ const mediatypeStat = statsRow === null || statsRow === void 0 ? void 0 : statsRow.children.item(0);
26
28
  // get second column item in stats row
27
- const itemStatCount = statsRow?.children
28
- .item(1)
29
- ?.querySelector('.status-text')
30
- ?.textContent?.trim();
29
+ const itemStatCount = (_d = (_c = (_b = statsRow === null || statsRow === void 0 ? void 0 : statsRow.children.item(1)) === null || _b === void 0 ? void 0 : _b.querySelector('.status-text')) === null || _c === void 0 ? void 0 : _c.textContent) === null || _d === void 0 ? void 0 : _d.trim();
31
30
  // get third column item in stats row
32
- const favoritesStatCount = statsRow?.children
33
- .item(2)
34
- ?.querySelector('.status-text')
35
- ?.textContent?.trim();
31
+ const favoritesStatCount = (_g = (_f = (_e = statsRow === null || statsRow === void 0 ? void 0 : statsRow.children.item(2)) === null || _e === void 0 ? void 0 : _e.querySelector('.status-text')) === null || _f === void 0 ? void 0 : _f.textContent) === null || _g === void 0 ? void 0 : _g.trim();
36
32
  // get fourth column item in stats row
37
- const reviewsStatCount = statsRow?.children
38
- .item(3)
39
- ?.querySelector('.status-text')
40
- ?.textContent?.trim();
33
+ const reviewsStatCount = (_k = (_j = (_h = statsRow === null || statsRow === void 0 ? void 0 : statsRow.children.item(3)) === null || _h === void 0 ? void 0 : _h.querySelector('.status-text')) === null || _j === void 0 ? void 0 : _j.textContent) === null || _k === void 0 ? void 0 : _k.trim();
41
34
  expect(mediatypeStat).to.exist;
42
35
  expect(itemStatCount).to.match(/uploads:\s+1/);
43
36
  expect(favoritesStatCount).to.match(/favorites:\s+2/);
44
37
  expect(reviewsStatCount).to.match(/reviews:\s+3/);
45
38
  });
46
39
  it('should render component with tv clips', async () => {
40
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
47
41
  const el = await fixture(html `
48
42
  <tile-stats
49
43
  showTvClips
@@ -55,29 +49,21 @@ describe('Tile Stats', () => {
55
49
  >
56
50
  </tile-stats>
57
51
  `);
58
- const statsRow = el.shadowRoot?.querySelector('#stats-row');
59
- const mediatypeStat = statsRow?.children.item(0);
52
+ const statsRow = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('#stats-row');
53
+ const mediatypeStat = statsRow === null || statsRow === void 0 ? void 0 : statsRow.children.item(0);
60
54
  // get second column item in stats row
61
- const itemStatCount = statsRow?.children
62
- .item(1)
63
- ?.querySelector('.status-text')
64
- ?.textContent?.trim();
55
+ const itemStatCount = (_d = (_c = (_b = statsRow === null || statsRow === void 0 ? void 0 : statsRow.children.item(1)) === null || _b === void 0 ? void 0 : _b.querySelector('.status-text')) === null || _c === void 0 ? void 0 : _c.textContent) === null || _d === void 0 ? void 0 : _d.trim();
65
56
  // get third column item in stats row
66
- const favoritesStatCount = statsRow?.children
67
- .item(2)
68
- ?.querySelector('.status-text')
69
- ?.textContent?.trim();
57
+ const favoritesStatCount = (_g = (_f = (_e = statsRow === null || statsRow === void 0 ? void 0 : statsRow.children.item(2)) === null || _e === void 0 ? void 0 : _e.querySelector('.status-text')) === null || _f === void 0 ? void 0 : _f.textContent) === null || _g === void 0 ? void 0 : _g.trim();
70
58
  // get fourth column item in stats row
71
- const clipsStatCount = statsRow?.children
72
- .item(3)
73
- ?.querySelector('.status-text')
74
- ?.textContent?.trim();
59
+ const clipsStatCount = (_k = (_j = (_h = statsRow === null || statsRow === void 0 ? void 0 : statsRow.children.item(3)) === null || _h === void 0 ? void 0 : _h.querySelector('.status-text')) === null || _j === void 0 ? void 0 : _j.textContent) === null || _k === void 0 ? void 0 : _k.trim();
75
60
  expect(mediatypeStat).to.exist;
76
61
  expect(itemStatCount).to.match(/views:\s+1/);
77
62
  expect(favoritesStatCount).to.match(/favorites:\s+2/);
78
63
  expect(clipsStatCount).to.match(/clips:\s+4/);
79
64
  });
80
65
  it('should render view count for non-account items', async () => {
66
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
81
67
  const el = await fixture(html `
82
68
  <tile-stats
83
69
  .mediatype=${'texts'}
@@ -87,77 +73,52 @@ describe('Tile Stats', () => {
87
73
  >
88
74
  </tile-stats>
89
75
  `);
90
- const statsRow = el.shadowRoot?.querySelector('#stats-row');
91
- const mediatypeStat = statsRow?.children.item(0);
76
+ const statsRow = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('#stats-row');
77
+ const mediatypeStat = statsRow === null || statsRow === void 0 ? void 0 : statsRow.children.item(0);
92
78
  // get second column item in stats row
93
- const viewStatCount = statsRow?.children
94
- .item(1)
95
- ?.querySelector('.status-text')
96
- ?.textContent?.trim();
79
+ const viewStatCount = (_d = (_c = (_b = statsRow === null || statsRow === void 0 ? void 0 : statsRow.children.item(1)) === null || _b === void 0 ? void 0 : _b.querySelector('.status-text')) === null || _c === void 0 ? void 0 : _c.textContent) === null || _d === void 0 ? void 0 : _d.trim();
97
80
  // get third column item in stats row
98
- const favoritesStatCount = statsRow?.children
99
- .item(2)
100
- ?.querySelector('.status-text')
101
- ?.textContent?.trim();
81
+ const favoritesStatCount = (_g = (_f = (_e = statsRow === null || statsRow === void 0 ? void 0 : statsRow.children.item(2)) === null || _e === void 0 ? void 0 : _e.querySelector('.status-text')) === null || _f === void 0 ? void 0 : _f.textContent) === null || _g === void 0 ? void 0 : _g.trim();
102
82
  // get fourth column item in stats row
103
- const reviewsStatCount = statsRow?.children
104
- .item(3)
105
- ?.querySelector('.status-text')
106
- ?.textContent?.trim();
83
+ const reviewsStatCount = (_k = (_j = (_h = statsRow === null || statsRow === void 0 ? void 0 : statsRow.children.item(3)) === null || _h === void 0 ? void 0 : _h.querySelector('.status-text')) === null || _j === void 0 ? void 0 : _j.textContent) === null || _k === void 0 ? void 0 : _k.trim();
107
84
  expect(mediatypeStat).to.exist;
108
85
  expect(viewStatCount).to.match(/views:\s+4/);
109
86
  expect(favoritesStatCount).to.match(/favorites:\s+5/);
110
87
  expect(reviewsStatCount).to.match(/reviews:\s+6/);
111
88
  });
112
89
  it('handles missing counts gracefully', async () => {
90
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
113
91
  const el = await fixture(html `
114
92
  <tile-stats .mediatype=${'texts'} .favCount=${5} .commentCount=${6}>
115
93
  </tile-stats>
116
94
  `);
117
- const statsRow = el.shadowRoot?.querySelector('#stats-row');
118
- const mediatypeStat = statsRow?.children.item(0);
95
+ const statsRow = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('#stats-row');
96
+ const mediatypeStat = statsRow === null || statsRow === void 0 ? void 0 : statsRow.children.item(0);
119
97
  // get second column item in stats row
120
- const viewStatCount = statsRow?.children
121
- .item(1)
122
- ?.querySelector('.status-text')
123
- ?.textContent?.trim();
98
+ const viewStatCount = (_d = (_c = (_b = statsRow === null || statsRow === void 0 ? void 0 : statsRow.children.item(1)) === null || _b === void 0 ? void 0 : _b.querySelector('.status-text')) === null || _c === void 0 ? void 0 : _c.textContent) === null || _d === void 0 ? void 0 : _d.trim();
124
99
  // get third column item in stats row
125
- const favoritesStatCount = statsRow?.children
126
- .item(2)
127
- ?.querySelector('.status-text')
128
- ?.textContent?.trim();
100
+ const favoritesStatCount = (_g = (_f = (_e = statsRow === null || statsRow === void 0 ? void 0 : statsRow.children.item(2)) === null || _e === void 0 ? void 0 : _e.querySelector('.status-text')) === null || _f === void 0 ? void 0 : _f.textContent) === null || _g === void 0 ? void 0 : _g.trim();
129
101
  // get fourth column item in stats row
130
- const reviewsStatCount = statsRow?.children
131
- .item(3)
132
- ?.querySelector('.status-text')
133
- ?.textContent?.trim();
102
+ const reviewsStatCount = (_k = (_j = (_h = statsRow === null || statsRow === void 0 ? void 0 : statsRow.children.item(3)) === null || _h === void 0 ? void 0 : _h.querySelector('.status-text')) === null || _j === void 0 ? void 0 : _j.textContent) === null || _k === void 0 ? void 0 : _k.trim();
134
103
  expect(mediatypeStat).to.exist;
135
104
  expect(viewStatCount).to.match(/views:\s+0/);
136
105
  expect(favoritesStatCount).to.match(/favorites:\s+5/);
137
106
  expect(reviewsStatCount).to.match(/reviews:\s+6/);
138
107
  });
139
108
  it('handles missing counts gracefully for accounts', async () => {
109
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
140
110
  const el = await fixture(html `
141
111
  <tile-stats .mediatype=${'account'} .favCount=${5} .commentCount=${6}>
142
112
  </tile-stats>
143
113
  `);
144
- const statsRow = el.shadowRoot?.querySelector('#stats-row');
145
- const mediatypeStat = statsRow?.children.item(0);
114
+ const statsRow = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('#stats-row');
115
+ const mediatypeStat = statsRow === null || statsRow === void 0 ? void 0 : statsRow.children.item(0);
146
116
  // get second column item in stats row
147
- const itemStatCount = statsRow?.children
148
- .item(1)
149
- ?.querySelector('.status-text')
150
- ?.textContent?.trim();
117
+ const itemStatCount = (_d = (_c = (_b = statsRow === null || statsRow === void 0 ? void 0 : statsRow.children.item(1)) === null || _b === void 0 ? void 0 : _b.querySelector('.status-text')) === null || _c === void 0 ? void 0 : _c.textContent) === null || _d === void 0 ? void 0 : _d.trim();
151
118
  // get third column item in stats row
152
- const favoritesStatCount = statsRow?.children
153
- .item(2)
154
- ?.querySelector('.status-text')
155
- ?.textContent?.trim();
119
+ const favoritesStatCount = (_g = (_f = (_e = statsRow === null || statsRow === void 0 ? void 0 : statsRow.children.item(2)) === null || _e === void 0 ? void 0 : _e.querySelector('.status-text')) === null || _f === void 0 ? void 0 : _f.textContent) === null || _g === void 0 ? void 0 : _g.trim();
156
120
  // get fourth column item in stats row
157
- const reviewsStatCount = statsRow?.children
158
- .item(3)
159
- ?.querySelector('.status-text')
160
- ?.textContent?.trim();
121
+ const reviewsStatCount = (_k = (_j = (_h = statsRow === null || statsRow === void 0 ? void 0 : statsRow.children.item(3)) === null || _h === void 0 ? void 0 : _h.querySelector('.status-text')) === null || _j === void 0 ? void 0 : _j.textContent) === null || _k === void 0 ? void 0 : _k.trim();
161
122
  expect(mediatypeStat).to.exist;
162
123
  expect(itemStatCount).to.match(/uploads:\s+0/);
163
124
  expect(favoritesStatCount).to.match(/favorites:\s+5/);
@@ -1 +1 @@
1
- {"version":3,"file":"tile-stats.test.js","sourceRoot":"","sources":["../../test/tile-stats.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { expect, fixture } from '@open-wc/testing';\nimport { html } from 'lit';\nimport type { TileStats } from '../src/tiles/grid/tile-stats';\n\nimport '../src/tiles/grid/tile-stats';\n\ndescribe('Tile Stats', () => {\n it('should render initial component', async () => {\n const el = await fixture<TileStats>(html`<tile-stats></tile-stats>`);\n\n const itemStats = el.shadowRoot?.querySelector('.item-stats');\n const statsRow = el.shadowRoot?.querySelector('#stats-row');\n const statsRowCount = statsRow?.childElementCount;\n\n expect(itemStats).to.exist;\n expect(statsRow).to.exist;\n expect(statsRowCount).to.equal(4);\n });\n\n it('should render component with values', async () => {\n const el = await fixture<TileStats>(html`\n <tile-stats\n .mediatype=${'account'}\n .itemCount=${1}\n .favCount=${2}\n .commentCount=${3}\n >\n </tile-stats>\n `);\n\n const statsRow = el.shadowRoot?.querySelector('#stats-row');\n\n const mediatypeStat = statsRow?.children.item(0);\n // get second column item in stats row\n const itemStatCount = statsRow?.children\n .item(1)\n ?.querySelector('.status-text')\n ?.textContent?.trim();\n // get third column item in stats row\n const favoritesStatCount = statsRow?.children\n .item(2)\n ?.querySelector('.status-text')\n ?.textContent?.trim();\n // get fourth column item in stats row\n const reviewsStatCount = statsRow?.children\n .item(3)\n ?.querySelector('.status-text')\n ?.textContent?.trim();\n\n expect(mediatypeStat).to.exist;\n expect(itemStatCount).to.match(/uploads:\\s+1/);\n expect(favoritesStatCount).to.match(/favorites:\\s+2/);\n expect(reviewsStatCount).to.match(/reviews:\\s+3/);\n });\n\n it('should render component with tv clips', async () => {\n const el = await fixture<TileStats>(html`\n <tile-stats\n showTvClips\n .mediatype=${'texts'}\n .viewCount=${1}\n .favCount=${2}\n .commentCount=${3}\n .tvClipCount=${4}\n >\n </tile-stats>\n `);\n\n const statsRow = el.shadowRoot?.querySelector('#stats-row');\n\n const mediatypeStat = statsRow?.children.item(0);\n // get second column item in stats row\n const itemStatCount = statsRow?.children\n .item(1)\n ?.querySelector('.status-text')\n ?.textContent?.trim();\n // get third column item in stats row\n const favoritesStatCount = statsRow?.children\n .item(2)\n ?.querySelector('.status-text')\n ?.textContent?.trim();\n // get fourth column item in stats row\n const clipsStatCount = statsRow?.children\n .item(3)\n ?.querySelector('.status-text')\n ?.textContent?.trim();\n\n expect(mediatypeStat).to.exist;\n expect(itemStatCount).to.match(/views:\\s+1/);\n expect(favoritesStatCount).to.match(/favorites:\\s+2/);\n expect(clipsStatCount).to.match(/clips:\\s+4/);\n });\n\n it('should render view count for non-account items', async () => {\n const el = await fixture<TileStats>(html`\n <tile-stats\n .mediatype=${'texts'}\n .viewCount=${4}\n .favCount=${5}\n .commentCount=${6}\n >\n </tile-stats>\n `);\n\n const statsRow = el.shadowRoot?.querySelector('#stats-row');\n\n const mediatypeStat = statsRow?.children.item(0);\n // get second column item in stats row\n const viewStatCount = statsRow?.children\n .item(1)\n ?.querySelector('.status-text')\n ?.textContent?.trim();\n // get third column item in stats row\n const favoritesStatCount = statsRow?.children\n .item(2)\n ?.querySelector('.status-text')\n ?.textContent?.trim();\n // get fourth column item in stats row\n const reviewsStatCount = statsRow?.children\n .item(3)\n ?.querySelector('.status-text')\n ?.textContent?.trim();\n\n expect(mediatypeStat).to.exist;\n expect(viewStatCount).to.match(/views:\\s+4/);\n expect(favoritesStatCount).to.match(/favorites:\\s+5/);\n expect(reviewsStatCount).to.match(/reviews:\\s+6/);\n });\n\n it('handles missing counts gracefully', async () => {\n const el = await fixture<TileStats>(html`\n <tile-stats .mediatype=${'texts'} .favCount=${5} .commentCount=${6}>\n </tile-stats>\n `);\n\n const statsRow = el.shadowRoot?.querySelector('#stats-row');\n\n const mediatypeStat = statsRow?.children.item(0);\n // get second column item in stats row\n const viewStatCount = statsRow?.children\n .item(1)\n ?.querySelector('.status-text')\n ?.textContent?.trim();\n // get third column item in stats row\n const favoritesStatCount = statsRow?.children\n .item(2)\n ?.querySelector('.status-text')\n ?.textContent?.trim();\n // get fourth column item in stats row\n const reviewsStatCount = statsRow?.children\n .item(3)\n ?.querySelector('.status-text')\n ?.textContent?.trim();\n\n expect(mediatypeStat).to.exist;\n expect(viewStatCount).to.match(/views:\\s+0/);\n expect(favoritesStatCount).to.match(/favorites:\\s+5/);\n expect(reviewsStatCount).to.match(/reviews:\\s+6/);\n });\n\n it('handles missing counts gracefully for accounts', async () => {\n const el = await fixture<TileStats>(html`\n <tile-stats .mediatype=${'account'} .favCount=${5} .commentCount=${6}>\n </tile-stats>\n `);\n\n const statsRow = el.shadowRoot?.querySelector('#stats-row');\n\n const mediatypeStat = statsRow?.children.item(0);\n // get second column item in stats row\n const itemStatCount = statsRow?.children\n .item(1)\n ?.querySelector('.status-text')\n ?.textContent?.trim();\n // get third column item in stats row\n const favoritesStatCount = statsRow?.children\n .item(2)\n ?.querySelector('.status-text')\n ?.textContent?.trim();\n // get fourth column item in stats row\n const reviewsStatCount = statsRow?.children\n .item(3)\n ?.querySelector('.status-text')\n ?.textContent?.trim();\n\n expect(mediatypeStat).to.exist;\n expect(itemStatCount).to.match(/uploads:\\s+0/);\n expect(favoritesStatCount).to.match(/favorites:\\s+5/);\n expect(reviewsStatCount).to.match(/reviews:\\s+6/);\n });\n});\n"]}
1
+ {"version":3,"file":"tile-stats.test.js","sourceRoot":"","sources":["../../test/tile-stats.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { expect, fixture } from '@open-wc/testing';\nimport { html } from 'lit';\nimport type { TileStats } from '../src/tiles/grid/tile-stats';\n\nimport '../src/tiles/grid/tile-stats';\n\ndescribe('Tile Stats', () => {\n it('should render initial component', async () => {\n const el = await fixture<TileStats>(html`<tile-stats></tile-stats>`);\n\n const itemStats = el.shadowRoot?.querySelector('.item-stats');\n const statsRow = el.shadowRoot?.querySelector('#stats-row');\n const statsRowCount = statsRow?.childElementCount;\n\n expect(itemStats).to.exist;\n expect(statsRow).to.exist;\n expect(statsRowCount).to.equal(4);\n });\n\n it('should render component with values', async () => {\n const el = await fixture<TileStats>(html`\n <tile-stats\n .mediatype=${'account'}\n .itemCount=${1}\n .favCount=${2}\n .commentCount=${3}\n >\n </tile-stats>\n `);\n\n const statsRow = el.shadowRoot?.querySelector('#stats-row');\n\n const mediatypeStat = statsRow?.children.item(0);\n // get second column item in stats row\n const itemStatCount = statsRow?.children\n .item(1)\n ?.querySelector('.status-text')\n ?.textContent?.trim();\n // get third column item in stats row\n const favoritesStatCount = statsRow?.children\n .item(2)\n ?.querySelector('.status-text')\n ?.textContent?.trim();\n // get fourth column item in stats row\n const reviewsStatCount = statsRow?.children\n .item(3)\n ?.querySelector('.status-text')\n ?.textContent?.trim();\n\n expect(mediatypeStat).to.exist;\n expect(itemStatCount).to.match(/uploads:\\s+1/);\n expect(favoritesStatCount).to.match(/favorites:\\s+2/);\n expect(reviewsStatCount).to.match(/reviews:\\s+3/);\n });\n\n it('should render component with tv clips', async () => {\n const el = await fixture<TileStats>(html`\n <tile-stats\n showTvClips\n .mediatype=${'texts'}\n .viewCount=${1}\n .favCount=${2}\n .commentCount=${3}\n .tvClipCount=${4}\n >\n </tile-stats>\n `);\n\n const statsRow = el.shadowRoot?.querySelector('#stats-row');\n\n const mediatypeStat = statsRow?.children.item(0);\n // get second column item in stats row\n const itemStatCount = statsRow?.children\n .item(1)\n ?.querySelector('.status-text')\n ?.textContent?.trim();\n // get third column item in stats row\n const favoritesStatCount = statsRow?.children\n .item(2)\n ?.querySelector('.status-text')\n ?.textContent?.trim();\n // get fourth column item in stats row\n const clipsStatCount = statsRow?.children\n .item(3)\n ?.querySelector('.status-text')\n ?.textContent?.trim();\n\n expect(mediatypeStat).to.exist;\n expect(itemStatCount).to.match(/views:\\s+1/);\n expect(favoritesStatCount).to.match(/favorites:\\s+2/);\n expect(clipsStatCount).to.match(/clips:\\s+4/);\n });\n\n it('should render view count for non-account items', async () => {\n const el = await fixture<TileStats>(html`\n <tile-stats\n .mediatype=${'texts'}\n .viewCount=${4}\n .favCount=${5}\n .commentCount=${6}\n >\n </tile-stats>\n `);\n\n const statsRow = el.shadowRoot?.querySelector('#stats-row');\n\n const mediatypeStat = statsRow?.children.item(0);\n // get second column item in stats row\n const viewStatCount = statsRow?.children\n .item(1)\n ?.querySelector('.status-text')\n ?.textContent?.trim();\n // get third column item in stats row\n const favoritesStatCount = statsRow?.children\n .item(2)\n ?.querySelector('.status-text')\n ?.textContent?.trim();\n // get fourth column item in stats row\n const reviewsStatCount = statsRow?.children\n .item(3)\n ?.querySelector('.status-text')\n ?.textContent?.trim();\n\n expect(mediatypeStat).to.exist;\n expect(viewStatCount).to.match(/views:\\s+4/);\n expect(favoritesStatCount).to.match(/favorites:\\s+5/);\n expect(reviewsStatCount).to.match(/reviews:\\s+6/);\n });\n\n it('handles missing counts gracefully', async () => {\n const el = await fixture<TileStats>(html`\n <tile-stats .mediatype=${'texts'} .favCount=${5} .commentCount=${6}>\n </tile-stats>\n `);\n\n const statsRow = el.shadowRoot?.querySelector('#stats-row');\n\n const mediatypeStat = statsRow?.children.item(0);\n // get second column item in stats row\n const viewStatCount = statsRow?.children\n .item(1)\n ?.querySelector('.status-text')\n ?.textContent?.trim();\n // get third column item in stats row\n const favoritesStatCount = statsRow?.children\n .item(2)\n ?.querySelector('.status-text')\n ?.textContent?.trim();\n // get fourth column item in stats row\n const reviewsStatCount = statsRow?.children\n .item(3)\n ?.querySelector('.status-text')\n ?.textContent?.trim();\n\n expect(mediatypeStat).to.exist;\n expect(viewStatCount).to.match(/views:\\s+0/);\n expect(favoritesStatCount).to.match(/favorites:\\s+5/);\n expect(reviewsStatCount).to.match(/reviews:\\s+6/);\n });\n\n it('handles missing counts gracefully for accounts', async () => {\n const el = await fixture<TileStats>(html`\n <tile-stats .mediatype=${'account'} .favCount=${5} .commentCount=${6}>\n </tile-stats>\n `);\n\n const statsRow = el.shadowRoot?.querySelector('#stats-row');\n\n const mediatypeStat = statsRow?.children.item(0);\n // get second column item in stats row\n const itemStatCount = statsRow?.children\n .item(1)\n ?.querySelector('.status-text')\n ?.textContent?.trim();\n // get third column item in stats row\n const favoritesStatCount = statsRow?.children\n .item(2)\n ?.querySelector('.status-text')\n ?.textContent?.trim();\n // get fourth column item in stats row\n const reviewsStatCount = statsRow?.children\n .item(3)\n ?.querySelector('.status-text')\n ?.textContent?.trim();\n\n expect(mediatypeStat).to.exist;\n expect(itemStatCount).to.match(/uploads:\\s+0/);\n expect(favoritesStatCount).to.match(/favorites:\\s+5/);\n expect(reviewsStatCount).to.match(/reviews:\\s+6/);\n });\n});\n"]}
@@ -4,17 +4,19 @@ import { html } from 'lit';
4
4
  import '../../../src/tiles/grid/account-tile';
5
5
  describe('Account Tile', () => {
6
6
  it('should render initial component', async () => {
7
+ var _a, _b, _c, _d;
7
8
  const el = await fixture(html `<account-tile></account-tile>`);
8
- const itemInfo = el.shadowRoot?.querySelector('.item-info');
9
- const itemImage = el.shadowRoot?.querySelector('image-block');
10
- const itemArchivist = el.shadowRoot?.querySelector('.archivist-since');
11
- const tileStats = el.shadowRoot?.querySelector('tile-stats');
9
+ const itemInfo = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.item-info');
10
+ const itemImage = (_b = el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('image-block');
11
+ const itemArchivist = (_c = el.shadowRoot) === null || _c === void 0 ? void 0 : _c.querySelector('.archivist-since');
12
+ const tileStats = (_d = el.shadowRoot) === null || _d === void 0 ? void 0 : _d.querySelector('tile-stats');
12
13
  expect(itemInfo).to.exist;
13
14
  expect(itemImage).to.exist;
14
15
  expect(itemArchivist).to.exist;
15
16
  expect(tileStats).to.exist;
16
17
  });
17
18
  it('should render with title element', async () => {
19
+ var _a, _b, _c;
18
20
  const el = await fixture(html `
19
21
  <account-tile
20
22
  .model=${{
@@ -24,13 +26,14 @@ describe('Account Tile', () => {
24
26
  </account-tile>
25
27
  `);
26
28
  await el.updateComplete;
27
- const itemInfo = el.shadowRoot?.querySelector('.item-info');
28
- const accountTitle = el.shadowRoot?.querySelector('#title');
29
+ const itemInfo = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.item-info');
30
+ const accountTitle = (_b = el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('#title');
29
31
  expect(itemInfo).to.exist;
30
32
  expect(accountTitle).to.exist;
31
- expect(accountTitle?.querySelector('.truncated')?.textContent).to.equal('@jack-sparrow');
33
+ expect((_c = accountTitle === null || accountTitle === void 0 ? void 0 : accountTitle.querySelector('.truncated')) === null || _c === void 0 ? void 0 : _c.textContent).to.equal('@jack-sparrow');
32
34
  });
33
35
  it('should render with archivist-since date element', async () => {
36
+ var _a;
34
37
  const el = await fixture(html `
35
38
  <account-tile
36
39
  .model=${{
@@ -40,10 +43,11 @@ describe('Account Tile', () => {
40
43
  </account-tile>
41
44
  `);
42
45
  await el.updateComplete;
43
- const itemArchivist = el.shadowRoot?.querySelector('.archivist-since');
44
- expect(itemArchivist?.textContent).contains('Archivist since 2022');
46
+ const itemArchivist = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.archivist-since');
47
+ expect(itemArchivist === null || itemArchivist === void 0 ? void 0 : itemArchivist.textContent).contains('Archivist since 2022');
45
48
  });
46
49
  it('should render with tile-stats element', async () => {
50
+ var _a, _b;
47
51
  const el = await fixture(html `
48
52
  <account-tile
49
53
  .model=${{
@@ -57,37 +61,33 @@ describe('Account Tile', () => {
57
61
  </account-tile>
58
62
  `);
59
63
  await el.updateComplete;
60
- const tileStats = el.shadowRoot?.querySelector('tile-stats');
61
- const statsElements = tileStats?.shadowRoot?.querySelector('#stats-row');
64
+ const tileStats = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('tile-stats');
65
+ const statsElements = (_b = tileStats === null || tileStats === void 0 ? void 0 : tileStats.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('#stats-row');
62
66
  expect(tileStats).to.exist;
63
67
  expect(statsElements).to.exist;
64
- const downloads = statsElements
65
- ?.querySelectorAll('.col')[1]
66
- .querySelector('.status-text');
67
- expect(downloads?.textContent).contains(999);
68
- const favorites = statsElements
69
- ?.querySelectorAll('.col')[2]
70
- .querySelector('.status-text');
71
- expect(favorites?.textContent).contains(100);
72
- const reviewCounts = statsElements
73
- ?.querySelectorAll('.col')[3]
74
- .querySelector('.status-text');
75
- expect(reviewCounts?.textContent).contains(3);
68
+ const downloads = statsElements === null || statsElements === void 0 ? void 0 : statsElements.querySelectorAll('.col')[1].querySelector('.status-text');
69
+ expect(downloads === null || downloads === void 0 ? void 0 : downloads.textContent).contains(999);
70
+ const favorites = statsElements === null || statsElements === void 0 ? void 0 : statsElements.querySelectorAll('.col')[2].querySelector('.status-text');
71
+ expect(favorites === null || favorites === void 0 ? void 0 : favorites.textContent).contains(100);
72
+ const reviewCounts = statsElements === null || statsElements === void 0 ? void 0 : statsElements.querySelectorAll('.col')[3].querySelector('.status-text');
73
+ expect(reviewCounts === null || reviewCounts === void 0 ? void 0 : reviewCounts.textContent).contains(3);
76
74
  });
77
75
  it('should render info button when showInfoButton flag is set', async () => {
76
+ var _a;
78
77
  const el = await fixture(html `
79
78
  <account-tile ?showInfoButton=${true}> </account-tile>
80
79
  `);
81
- const infoButton = el.shadowRoot?.querySelector('.info-button');
80
+ const infoButton = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.info-button');
82
81
  expect(infoButton).to.exist;
83
82
  });
84
83
  it('should dispatch event when info button tapped', async () => {
84
+ var _a;
85
85
  const infoButtonSpy = sinon.spy();
86
86
  const el = await fixture(html `
87
87
  <account-tile ?showInfoButton=${true} @infoButtonPressed=${infoButtonSpy}>
88
88
  </account-tile>
89
89
  `);
90
- const infoButton = el.shadowRoot?.querySelector('.info-button');
90
+ const infoButton = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.info-button');
91
91
  infoButton.click();
92
92
  await el.updateComplete;
93
93
  expect(infoButtonSpy.callCount).to.equal(1);
@@ -1 +1 @@
1
- {"version":3,"file":"account-tile.test.js","sourceRoot":"","sources":["../../../../test/tiles/grid/account-tile.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { expect, fixture } from '@open-wc/testing';\nimport sinon from 'sinon';\nimport { html } from 'lit';\nimport type { AccountTile } from '../../../src/tiles/grid/account-tile';\n\nimport '../../../src/tiles/grid/account-tile';\n\ndescribe('Account Tile', () => {\n it('should render initial component', async () => {\n const el = await fixture<AccountTile>(html`<account-tile></account-tile>`);\n\n const itemInfo = el.shadowRoot?.querySelector('.item-info');\n const itemImage = el.shadowRoot?.querySelector('image-block');\n const itemArchivist = el.shadowRoot?.querySelector('.archivist-since');\n const tileStats = el.shadowRoot?.querySelector('tile-stats');\n\n expect(itemInfo).to.exist;\n expect(itemImage).to.exist;\n expect(itemArchivist).to.exist;\n expect(tileStats).to.exist;\n });\n\n it('should render with title element', async () => {\n const el = await fixture<AccountTile>(html`\n <account-tile\n .model=${{\n identifier: '@jack-sparrow',\n }}\n >\n </account-tile>\n `);\n await el.updateComplete;\n\n const itemInfo = el.shadowRoot?.querySelector('.item-info');\n const accountTitle = el.shadowRoot?.querySelector('#title');\n\n expect(itemInfo).to.exist;\n expect(accountTitle).to.exist;\n expect(accountTitle?.querySelector('.truncated')?.textContent).to.equal(\n '@jack-sparrow',\n );\n });\n\n it('should render with archivist-since date element', async () => {\n const el = await fixture<AccountTile>(html`\n <account-tile\n .model=${{\n dateAdded: new Date('2022-02-02'),\n }}\n >\n </account-tile>\n `);\n await el.updateComplete;\n\n const itemArchivist = el.shadowRoot?.querySelector('.archivist-since');\n expect(itemArchivist?.textContent).contains('Archivist since 2022');\n });\n\n it('should render with tile-stats element', async () => {\n const el = await fixture<AccountTile>(html`\n <account-tile\n .model=${{\n identifier: '@jack-sparrow',\n mediatype: 'account',\n itemCount: 999,\n favCount: 100,\n commentCount: 3,\n }}\n >\n </account-tile>\n `);\n await el.updateComplete;\n\n const tileStats = el.shadowRoot?.querySelector('tile-stats');\n const statsElements = tileStats?.shadowRoot?.querySelector('#stats-row');\n\n expect(tileStats).to.exist;\n expect(statsElements).to.exist;\n\n const downloads = statsElements\n ?.querySelectorAll('.col')[1]\n .querySelector('.status-text');\n expect(downloads?.textContent).contains(999);\n\n const favorites = statsElements\n ?.querySelectorAll('.col')[2]\n .querySelector('.status-text');\n expect(favorites?.textContent).contains(100);\n\n const reviewCounts = statsElements\n ?.querySelectorAll('.col')[3]\n .querySelector('.status-text');\n expect(reviewCounts?.textContent).contains(3);\n });\n\n it('should render info button when showInfoButton flag is set', async () => {\n const el = await fixture<AccountTile>(html`\n <account-tile ?showInfoButton=${true}> </account-tile>\n `);\n\n const infoButton = el.shadowRoot?.querySelector('.info-button');\n\n expect(infoButton).to.exist;\n });\n\n it('should dispatch event when info button tapped', async () => {\n const infoButtonSpy = sinon.spy();\n const el = await fixture<AccountTile>(html`\n <account-tile ?showInfoButton=${true} @infoButtonPressed=${infoButtonSpy}>\n </account-tile>\n `);\n\n const infoButton = el.shadowRoot?.querySelector(\n '.info-button',\n ) as HTMLButtonElement;\n infoButton.click();\n await el.updateComplete;\n\n expect(infoButtonSpy.callCount).to.equal(1);\n });\n});\n"]}
1
+ {"version":3,"file":"account-tile.test.js","sourceRoot":"","sources":["../../../../test/tiles/grid/account-tile.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { expect, fixture } from '@open-wc/testing';\nimport sinon from 'sinon';\nimport { html } from 'lit';\nimport type { AccountTile } from '../../../src/tiles/grid/account-tile';\n\nimport '../../../src/tiles/grid/account-tile';\n\ndescribe('Account Tile', () => {\n it('should render initial component', async () => {\n const el = await fixture<AccountTile>(html`<account-tile></account-tile>`);\n\n const itemInfo = el.shadowRoot?.querySelector('.item-info');\n const itemImage = el.shadowRoot?.querySelector('image-block');\n const itemArchivist = el.shadowRoot?.querySelector('.archivist-since');\n const tileStats = el.shadowRoot?.querySelector('tile-stats');\n\n expect(itemInfo).to.exist;\n expect(itemImage).to.exist;\n expect(itemArchivist).to.exist;\n expect(tileStats).to.exist;\n });\n\n it('should render with title element', async () => {\n const el = await fixture<AccountTile>(html`\n <account-tile\n .model=${{\n identifier: '@jack-sparrow',\n }}\n >\n </account-tile>\n `);\n await el.updateComplete;\n\n const itemInfo = el.shadowRoot?.querySelector('.item-info');\n const accountTitle = el.shadowRoot?.querySelector('#title');\n\n expect(itemInfo).to.exist;\n expect(accountTitle).to.exist;\n expect(accountTitle?.querySelector('.truncated')?.textContent).to.equal(\n '@jack-sparrow',\n );\n });\n\n it('should render with archivist-since date element', async () => {\n const el = await fixture<AccountTile>(html`\n <account-tile\n .model=${{\n dateAdded: new Date('2022-02-02'),\n }}\n >\n </account-tile>\n `);\n await el.updateComplete;\n\n const itemArchivist = el.shadowRoot?.querySelector('.archivist-since');\n expect(itemArchivist?.textContent).contains('Archivist since 2022');\n });\n\n it('should render with tile-stats element', async () => {\n const el = await fixture<AccountTile>(html`\n <account-tile\n .model=${{\n identifier: '@jack-sparrow',\n mediatype: 'account',\n itemCount: 999,\n favCount: 100,\n commentCount: 3,\n }}\n >\n </account-tile>\n `);\n await el.updateComplete;\n\n const tileStats = el.shadowRoot?.querySelector('tile-stats');\n const statsElements = tileStats?.shadowRoot?.querySelector('#stats-row');\n\n expect(tileStats).to.exist;\n expect(statsElements).to.exist;\n\n const downloads = statsElements\n ?.querySelectorAll('.col')[1]\n .querySelector('.status-text');\n expect(downloads?.textContent).contains(999);\n\n const favorites = statsElements\n ?.querySelectorAll('.col')[2]\n .querySelector('.status-text');\n expect(favorites?.textContent).contains(100);\n\n const reviewCounts = statsElements\n ?.querySelectorAll('.col')[3]\n .querySelector('.status-text');\n expect(reviewCounts?.textContent).contains(3);\n });\n\n it('should render info button when showInfoButton flag is set', async () => {\n const el = await fixture<AccountTile>(html`\n <account-tile ?showInfoButton=${true}> </account-tile>\n `);\n\n const infoButton = el.shadowRoot?.querySelector('.info-button');\n\n expect(infoButton).to.exist;\n });\n\n it('should dispatch event when info button tapped', async () => {\n const infoButtonSpy = sinon.spy();\n const el = await fixture<AccountTile>(html`\n <account-tile ?showInfoButton=${true} @infoButtonPressed=${infoButtonSpy}>\n </account-tile>\n `);\n\n const infoButton = el.shadowRoot?.querySelector(\n '.info-button',\n ) as HTMLButtonElement;\n infoButton.click();\n await el.updateComplete;\n\n expect(infoButtonSpy.callCount).to.equal(1);\n });\n});\n"]}
@@ -4,15 +4,17 @@ import { html } from 'lit';
4
4
  import '../../../src/tiles/grid/collection-tile';
5
5
  describe('Collection Tile', () => {
6
6
  it('should render initial component', async () => {
7
+ var _a, _b, _c;
7
8
  const el = await fixture(html `<collection-tile></collection-tile>`);
8
- const itemInfo = el.shadowRoot?.querySelector('.item-info');
9
- const itemImage = el.shadowRoot?.querySelector('image-block');
10
- const itemStats = el.shadowRoot?.querySelector('#item-stats');
9
+ const itemInfo = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.item-info');
10
+ const itemImage = (_b = el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('image-block');
11
+ const itemStats = (_c = el.shadowRoot) === null || _c === void 0 ? void 0 : _c.querySelector('#item-stats');
11
12
  expect(itemInfo).to.exist;
12
13
  expect(itemImage).to.exist;
13
14
  expect(itemStats).to.exist;
14
15
  });
15
16
  it('should render with title element', async () => {
17
+ var _a, _b, _c;
16
18
  const el = await fixture(html `
17
19
  <collection-tile
18
20
  .model=${{
@@ -24,13 +26,14 @@ describe('Collection Tile', () => {
24
26
  </collection-tile>
25
27
  `);
26
28
  await el.updateComplete;
27
- const itemInfo = el.shadowRoot?.querySelector('.item-info');
28
- const itemTitle = el.shadowRoot?.querySelector('#title');
29
+ const itemInfo = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.item-info');
30
+ const itemTitle = (_b = el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('#title');
29
31
  expect(itemInfo).to.exist;
30
32
  expect(itemTitle).to.exist;
31
- expect(itemTitle?.querySelector('.truncated')?.textContent).to.equal('Books');
33
+ expect((_c = itemTitle === null || itemTitle === void 0 ? void 0 : itemTitle.querySelector('.truncated')) === null || _c === void 0 ? void 0 : _c.textContent).to.equal('Books');
32
34
  });
33
35
  it('should render with image-block element', async () => {
36
+ var _a;
34
37
  const el = await fixture(html `
35
38
  <collection-tile
36
39
  .model=${{
@@ -41,10 +44,11 @@ describe('Collection Tile', () => {
41
44
  </collection-tile>
42
45
  `);
43
46
  await el.updateComplete;
44
- const itemImageBlock = el.shadowRoot?.querySelector('image-block');
47
+ const itemImageBlock = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('image-block');
45
48
  expect(itemImageBlock).to.exist;
46
49
  });
47
50
  it('should render with item stats element', async () => {
51
+ var _a, _b, _c, _d;
48
52
  const el = await fixture(html `
49
53
  <collection-tile
50
54
  .model=${{
@@ -56,23 +60,25 @@ describe('Collection Tile', () => {
56
60
  </collection-tile>
57
61
  `);
58
62
  await el.updateComplete;
59
- const itemStats = el.shadowRoot?.querySelector('#item-stats');
60
- const itemMediaType = el.shadowRoot?.querySelector('#item-mediatype');
61
- const itemCount = el.shadowRoot?.querySelector('#item-count');
62
- const itemSize = el.shadowRoot?.querySelector('#item-size');
63
+ const itemStats = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('#item-stats');
64
+ const itemMediaType = (_b = el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('#item-mediatype');
65
+ const itemCount = (_c = el.shadowRoot) === null || _c === void 0 ? void 0 : _c.querySelector('#item-count');
66
+ const itemSize = (_d = el.shadowRoot) === null || _d === void 0 ? void 0 : _d.querySelector('#item-size');
63
67
  expect(itemStats).to.exist;
64
68
  expect(itemMediaType).to.exist;
65
69
  expect(itemCount).to.exist;
66
70
  expect(itemSize).to.exist;
67
71
  });
68
72
  it('should render info button when showInfoButton flag is set', async () => {
73
+ var _a;
69
74
  const el = await fixture(html `
70
75
  <collection-tile ?showInfoButton=${true}> </collection-tile>
71
76
  `);
72
- const infoButton = el.shadowRoot?.querySelector('.info-button');
77
+ const infoButton = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.info-button');
73
78
  expect(infoButton).to.exist;
74
79
  });
75
80
  it('should dispatch event when info button tapped', async () => {
81
+ var _a;
76
82
  const infoButtonSpy = sinon.spy();
77
83
  const el = await fixture(html `
78
84
  <collection-tile
@@ -81,7 +87,7 @@ describe('Collection Tile', () => {
81
87
  >
82
88
  </collection-tile>
83
89
  `);
84
- const infoButton = el.shadowRoot?.querySelector('.info-button');
90
+ const infoButton = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.info-button');
85
91
  infoButton.click();
86
92
  await el.updateComplete;
87
93
  expect(infoButtonSpy.callCount).to.equal(1);
@@ -1 +1 @@
1
- {"version":3,"file":"collection-tile.test.js","sourceRoot":"","sources":["../../../../test/tiles/grid/collection-tile.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { expect, fixture } from '@open-wc/testing';\nimport sinon from 'sinon';\nimport { html } from 'lit';\nimport type { CollectionTile } from '../../../src/tiles/grid/collection-tile';\n\nimport '../../../src/tiles/grid/collection-tile';\n\ndescribe('Collection Tile', () => {\n it('should render initial component', async () => {\n const el = await fixture<CollectionTile>(\n html`<collection-tile></collection-tile>`,\n );\n\n const itemInfo = el.shadowRoot?.querySelector('.item-info');\n const itemImage = el.shadowRoot?.querySelector('image-block');\n const itemStats = el.shadowRoot?.querySelector('#item-stats');\n\n expect(itemInfo).to.exist;\n expect(itemImage).to.exist;\n expect(itemStats).to.exist;\n });\n\n it('should render with title element', async () => {\n const el = await fixture<CollectionTile>(html`\n <collection-tile\n .model=${{\n identifier: 'books',\n title: 'Books',\n itemCount: 121,\n }}\n >\n </collection-tile>\n `);\n await el.updateComplete;\n\n const itemInfo = el.shadowRoot?.querySelector('.item-info');\n const itemTitle = el.shadowRoot?.querySelector('#title');\n\n expect(itemInfo).to.exist;\n expect(itemTitle).to.exist;\n expect(itemTitle?.querySelector('.truncated')?.textContent).to.equal(\n 'Books',\n );\n });\n\n it('should render with image-block element', async () => {\n const el = await fixture<CollectionTile>(html`\n <collection-tile\n .model=${{\n identifier: '@jack-sparrow',\n itemCount: 1233,\n }}\n >\n </collection-tile>\n `);\n await el.updateComplete;\n\n const itemImageBlock = el.shadowRoot?.querySelector('image-block');\n expect(itemImageBlock).to.exist;\n });\n\n it('should render with item stats element', async () => {\n const el = await fixture<CollectionTile>(html`\n <collection-tile\n .model=${{\n identifier: '@jack-sparrow',\n itemCount: 14521,\n collectionSize: 23222543,\n }}\n >\n </collection-tile>\n `);\n await el.updateComplete;\n\n const itemStats = el.shadowRoot?.querySelector('#item-stats');\n const itemMediaType = el.shadowRoot?.querySelector('#item-mediatype');\n const itemCount = el.shadowRoot?.querySelector('#item-count');\n const itemSize = el.shadowRoot?.querySelector('#item-size');\n\n expect(itemStats).to.exist;\n expect(itemMediaType).to.exist;\n expect(itemCount).to.exist;\n expect(itemSize).to.exist;\n });\n\n it('should render info button when showInfoButton flag is set', async () => {\n const el = await fixture<CollectionTile>(html`\n <collection-tile ?showInfoButton=${true}> </collection-tile>\n `);\n\n const infoButton = el.shadowRoot?.querySelector('.info-button');\n\n expect(infoButton).to.exist;\n });\n\n it('should dispatch event when info button tapped', async () => {\n const infoButtonSpy = sinon.spy();\n const el = await fixture<CollectionTile>(html`\n <collection-tile\n ?showInfoButton=${true}\n @infoButtonPressed=${infoButtonSpy}\n >\n </collection-tile>\n `);\n\n const infoButton = el.shadowRoot?.querySelector(\n '.info-button',\n ) as HTMLButtonElement;\n infoButton.click();\n await el.updateComplete;\n\n expect(infoButtonSpy.callCount).to.equal(1);\n });\n});\n"]}
1
+ {"version":3,"file":"collection-tile.test.js","sourceRoot":"","sources":["../../../../test/tiles/grid/collection-tile.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { expect, fixture } from '@open-wc/testing';\nimport sinon from 'sinon';\nimport { html } from 'lit';\nimport type { CollectionTile } from '../../../src/tiles/grid/collection-tile';\n\nimport '../../../src/tiles/grid/collection-tile';\n\ndescribe('Collection Tile', () => {\n it('should render initial component', async () => {\n const el = await fixture<CollectionTile>(\n html`<collection-tile></collection-tile>`,\n );\n\n const itemInfo = el.shadowRoot?.querySelector('.item-info');\n const itemImage = el.shadowRoot?.querySelector('image-block');\n const itemStats = el.shadowRoot?.querySelector('#item-stats');\n\n expect(itemInfo).to.exist;\n expect(itemImage).to.exist;\n expect(itemStats).to.exist;\n });\n\n it('should render with title element', async () => {\n const el = await fixture<CollectionTile>(html`\n <collection-tile\n .model=${{\n identifier: 'books',\n title: 'Books',\n itemCount: 121,\n }}\n >\n </collection-tile>\n `);\n await el.updateComplete;\n\n const itemInfo = el.shadowRoot?.querySelector('.item-info');\n const itemTitle = el.shadowRoot?.querySelector('#title');\n\n expect(itemInfo).to.exist;\n expect(itemTitle).to.exist;\n expect(itemTitle?.querySelector('.truncated')?.textContent).to.equal(\n 'Books',\n );\n });\n\n it('should render with image-block element', async () => {\n const el = await fixture<CollectionTile>(html`\n <collection-tile\n .model=${{\n identifier: '@jack-sparrow',\n itemCount: 1233,\n }}\n >\n </collection-tile>\n `);\n await el.updateComplete;\n\n const itemImageBlock = el.shadowRoot?.querySelector('image-block');\n expect(itemImageBlock).to.exist;\n });\n\n it('should render with item stats element', async () => {\n const el = await fixture<CollectionTile>(html`\n <collection-tile\n .model=${{\n identifier: '@jack-sparrow',\n itemCount: 14521,\n collectionSize: 23222543,\n }}\n >\n </collection-tile>\n `);\n await el.updateComplete;\n\n const itemStats = el.shadowRoot?.querySelector('#item-stats');\n const itemMediaType = el.shadowRoot?.querySelector('#item-mediatype');\n const itemCount = el.shadowRoot?.querySelector('#item-count');\n const itemSize = el.shadowRoot?.querySelector('#item-size');\n\n expect(itemStats).to.exist;\n expect(itemMediaType).to.exist;\n expect(itemCount).to.exist;\n expect(itemSize).to.exist;\n });\n\n it('should render info button when showInfoButton flag is set', async () => {\n const el = await fixture<CollectionTile>(html`\n <collection-tile ?showInfoButton=${true}> </collection-tile>\n `);\n\n const infoButton = el.shadowRoot?.querySelector('.info-button');\n\n expect(infoButton).to.exist;\n });\n\n it('should dispatch event when info button tapped', async () => {\n const infoButtonSpy = sinon.spy();\n const el = await fixture<CollectionTile>(html`\n <collection-tile\n ?showInfoButton=${true}\n @infoButtonPressed=${infoButtonSpy}\n >\n </collection-tile>\n `);\n\n const infoButton = el.shadowRoot?.querySelector(\n '.info-button',\n ) as HTMLButtonElement;\n infoButton.click();\n await el.updateComplete;\n\n expect(infoButtonSpy.callCount).to.equal(1);\n });\n});\n"]}