@internetarchive/collection-browser 0.2.12 → 0.2.14-alpha1

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 (270) hide show
  1. package/dist/index.d.ts +9 -0
  2. package/dist/index.js +1 -0
  3. package/dist/index.js.map +1 -0
  4. package/dist/src/app-root.d.ts +33 -0
  5. package/dist/src/app-root.js +311 -0
  6. package/dist/src/app-root.js.map +1 -0
  7. package/dist/src/assets/img/icons/arrow-left.d.ts +2 -0
  8. package/dist/src/assets/img/icons/arrow-left.js +10 -0
  9. package/dist/src/assets/img/icons/arrow-left.js.map +1 -0
  10. package/dist/src/assets/img/icons/arrow-right.d.ts +2 -0
  11. package/dist/src/assets/img/icons/arrow-right.js +10 -0
  12. package/dist/src/assets/img/icons/arrow-right.js.map +1 -0
  13. package/dist/src/assets/img/icons/chevron.d.ts +2 -0
  14. package/dist/src/assets/img/icons/chevron.js +4 -0
  15. package/dist/src/assets/img/icons/chevron.js.map +1 -0
  16. package/dist/src/assets/img/icons/empty-query.d.ts +2 -0
  17. package/dist/src/assets/img/icons/empty-query.js +5 -0
  18. package/dist/src/assets/img/icons/empty-query.js.map +1 -0
  19. package/dist/src/assets/img/icons/eye-closed.d.ts +2 -0
  20. package/dist/src/assets/img/icons/eye-closed.js +5 -0
  21. package/dist/src/assets/img/icons/eye-closed.js.map +1 -0
  22. package/dist/src/assets/img/icons/eye.d.ts +2 -0
  23. package/dist/src/assets/img/icons/eye.js +5 -0
  24. package/dist/src/assets/img/icons/eye.js.map +1 -0
  25. package/dist/src/assets/img/icons/favorite-filled.d.ts +1 -0
  26. package/dist/src/assets/img/icons/favorite-filled.js +11 -0
  27. package/dist/src/assets/img/icons/favorite-filled.js.map +1 -0
  28. package/dist/src/assets/img/icons/login-required.d.ts +1 -0
  29. package/dist/src/assets/img/icons/login-required.js +30 -0
  30. package/dist/src/assets/img/icons/login-required.js.map +1 -0
  31. package/dist/src/assets/img/icons/mediatype/account.d.ts +1 -0
  32. package/dist/src/assets/img/icons/mediatype/account.js +14 -0
  33. package/dist/src/assets/img/icons/mediatype/account.js.map +1 -0
  34. package/dist/src/assets/img/icons/mediatype/audio.d.ts +1 -0
  35. package/dist/src/assets/img/icons/mediatype/audio.js +14 -0
  36. package/dist/src/assets/img/icons/mediatype/audio.js.map +1 -0
  37. package/dist/src/assets/img/icons/mediatype/collection.d.ts +1 -0
  38. package/dist/src/assets/img/icons/mediatype/collection.js +12 -0
  39. package/dist/src/assets/img/icons/mediatype/collection.js.map +1 -0
  40. package/dist/src/assets/img/icons/mediatype/data.d.ts +1 -0
  41. package/dist/src/assets/img/icons/mediatype/data.js +15 -0
  42. package/dist/src/assets/img/icons/mediatype/data.js.map +1 -0
  43. package/dist/src/assets/img/icons/mediatype/etree.d.ts +1 -0
  44. package/dist/src/assets/img/icons/mediatype/etree.js +14 -0
  45. package/dist/src/assets/img/icons/mediatype/etree.js.map +1 -0
  46. package/dist/src/assets/img/icons/mediatype/film.d.ts +1 -0
  47. package/dist/src/assets/img/icons/mediatype/film.js +14 -0
  48. package/dist/src/assets/img/icons/mediatype/film.js.map +1 -0
  49. package/dist/src/assets/img/icons/mediatype/images.d.ts +1 -0
  50. package/dist/src/assets/img/icons/mediatype/images.js +13 -0
  51. package/dist/src/assets/img/icons/mediatype/images.js.map +1 -0
  52. package/dist/src/assets/img/icons/mediatype/radio.d.ts +1 -0
  53. package/dist/src/assets/img/icons/mediatype/radio.js +15 -0
  54. package/dist/src/assets/img/icons/mediatype/radio.js.map +1 -0
  55. package/dist/src/assets/img/icons/mediatype/software.d.ts +1 -0
  56. package/dist/src/assets/img/icons/mediatype/software.js +13 -0
  57. package/dist/src/assets/img/icons/mediatype/software.js.map +1 -0
  58. package/dist/src/assets/img/icons/mediatype/texts.d.ts +1 -0
  59. package/dist/src/assets/img/icons/mediatype/texts.js +13 -0
  60. package/dist/src/assets/img/icons/mediatype/texts.js.map +1 -0
  61. package/dist/src/assets/img/icons/mediatype/tv.d.ts +1 -0
  62. package/dist/src/assets/img/icons/mediatype/tv.js +14 -0
  63. package/dist/src/assets/img/icons/mediatype/tv.js.map +1 -0
  64. package/dist/src/assets/img/icons/mediatype/video.d.ts +1 -0
  65. package/dist/src/assets/img/icons/mediatype/video.js +14 -0
  66. package/dist/src/assets/img/icons/mediatype/video.js.map +1 -0
  67. package/dist/src/assets/img/icons/mediatype/web.d.ts +1 -0
  68. package/dist/src/assets/img/icons/mediatype/web.js +13 -0
  69. package/dist/src/assets/img/icons/mediatype/web.js.map +1 -0
  70. package/dist/src/assets/img/icons/null-result.d.ts +2 -0
  71. package/dist/src/assets/img/icons/null-result.js +5 -0
  72. package/dist/src/assets/img/icons/null-result.js.map +1 -0
  73. package/dist/src/assets/img/icons/restricted.d.ts +1 -0
  74. package/dist/src/assets/img/icons/restricted.js +29 -0
  75. package/dist/src/assets/img/icons/restricted.js.map +1 -0
  76. package/dist/src/assets/img/icons/reviews.d.ts +1 -0
  77. package/dist/src/assets/img/icons/reviews.js +11 -0
  78. package/dist/src/assets/img/icons/reviews.js.map +1 -0
  79. package/dist/src/assets/img/icons/upload.d.ts +1 -0
  80. package/dist/src/assets/img/icons/upload.js +12 -0
  81. package/dist/src/assets/img/icons/upload.js.map +1 -0
  82. package/dist/src/assets/img/icons/views.d.ts +1 -0
  83. package/dist/src/assets/img/icons/views.js +11 -0
  84. package/dist/src/assets/img/icons/views.js.map +1 -0
  85. package/dist/src/circular-activity-indicator.d.ts +5 -0
  86. package/dist/src/circular-activity-indicator.js +66 -0
  87. package/dist/src/circular-activity-indicator.js.map +1 -0
  88. package/dist/src/collection-browser.d.ts +216 -0
  89. package/dist/src/collection-browser.js +1248 -0
  90. package/dist/src/collection-browser.js.map +1 -0
  91. package/dist/src/collection-facets/more-facets-content.d.ts +50 -0
  92. package/dist/src/collection-facets/more-facets-content.js +354 -0
  93. package/dist/src/collection-facets/more-facets-content.js.map +1 -0
  94. package/dist/src/collection-facets/more-facets-pagination.d.ts +27 -0
  95. package/dist/src/collection-facets/more-facets-pagination.js +193 -0
  96. package/dist/src/collection-facets/more-facets-pagination.js.map +1 -0
  97. package/dist/src/collection-facets.d.ts +80 -0
  98. package/dist/src/collection-facets.js +662 -0
  99. package/dist/src/collection-facets.js.map +1 -0
  100. package/dist/src/empty-placeholder.d.ts +11 -0
  101. package/dist/src/empty-placeholder.js +83 -0
  102. package/dist/src/empty-placeholder.js.map +1 -0
  103. package/dist/src/language-code-handler/language-code-handler.d.ts +37 -0
  104. package/dist/src/language-code-handler/language-code-handler.js +27 -0
  105. package/dist/src/language-code-handler/language-code-handler.js.map +1 -0
  106. package/dist/src/language-code-handler/language-code-mapping.d.ts +1 -0
  107. package/dist/src/language-code-handler/language-code-mapping.js +563 -0
  108. package/dist/src/language-code-handler/language-code-mapping.js.map +1 -0
  109. package/dist/src/mediatype/mediatype-config.d.ts +3 -0
  110. package/dist/src/mediatype/mediatype-config.js +86 -0
  111. package/dist/src/mediatype/mediatype-config.js.map +1 -0
  112. package/dist/src/models.d.ts +84 -0
  113. package/dist/src/models.js +58 -0
  114. package/dist/src/models.js.map +1 -0
  115. package/dist/src/restoration-state-handler.d.ts +38 -0
  116. package/dist/src/restoration-state-handler.js +204 -0
  117. package/dist/src/restoration-state-handler.js.map +1 -0
  118. package/dist/src/sort-filter-bar/alpha-bar.d.ts +9 -0
  119. package/dist/src/sort-filter-bar/alpha-bar.js +98 -0
  120. package/dist/src/sort-filter-bar/alpha-bar.js.map +1 -0
  121. package/dist/src/sort-filter-bar/img/compact.d.ts +1 -0
  122. package/dist/src/sort-filter-bar/img/compact.js +5 -0
  123. package/dist/src/sort-filter-bar/img/compact.js.map +1 -0
  124. package/dist/src/sort-filter-bar/img/list.d.ts +1 -0
  125. package/dist/src/sort-filter-bar/img/list.js +5 -0
  126. package/dist/src/sort-filter-bar/img/list.js.map +1 -0
  127. package/dist/src/sort-filter-bar/img/sort-triangle.d.ts +1 -0
  128. package/dist/src/sort-filter-bar/img/sort-triangle.js +5 -0
  129. package/dist/src/sort-filter-bar/img/sort-triangle.js.map +1 -0
  130. package/dist/src/sort-filter-bar/img/tile.d.ts +1 -0
  131. package/dist/src/sort-filter-bar/img/tile.js +5 -0
  132. package/dist/src/sort-filter-bar/img/tile.js.map +1 -0
  133. package/dist/src/sort-filter-bar/sort-filter-bar.d.ts +85 -0
  134. package/dist/src/sort-filter-bar/sort-filter-bar.js +698 -0
  135. package/dist/src/sort-filter-bar/sort-filter-bar.js.map +1 -0
  136. package/dist/src/styles/item-image-styles.d.ts +8 -0
  137. package/dist/src/styles/item-image-styles.js +102 -0
  138. package/dist/src/styles/item-image-styles.js.map +1 -0
  139. package/dist/src/tiles/collection-browser-loading-tile.d.ts +5 -0
  140. package/dist/src/tiles/collection-browser-loading-tile.js +32 -0
  141. package/dist/src/tiles/collection-browser-loading-tile.js.map +1 -0
  142. package/dist/src/tiles/grid/account-tile.d.ts +8 -0
  143. package/dist/src/tiles/grid/account-tile.js +126 -0
  144. package/dist/src/tiles/grid/account-tile.js.map +1 -0
  145. package/dist/src/tiles/grid/collection-tile.d.ts +7 -0
  146. package/dist/src/tiles/grid/collection-tile.js +159 -0
  147. package/dist/src/tiles/grid/collection-tile.js.map +1 -0
  148. package/dist/src/tiles/grid/item-tile.d.ts +21 -0
  149. package/dist/src/tiles/grid/item-tile.js +183 -0
  150. package/dist/src/tiles/grid/item-tile.js.map +1 -0
  151. package/dist/src/tiles/grid/tile-stats.d.ts +10 -0
  152. package/dist/src/tiles/grid/tile-stats.js +134 -0
  153. package/dist/src/tiles/grid/tile-stats.js.map +1 -0
  154. package/dist/src/tiles/image-block.d.ts +17 -0
  155. package/dist/src/tiles/image-block.js +136 -0
  156. package/dist/src/tiles/image-block.js.map +1 -0
  157. package/dist/src/tiles/item-image.d.ts +31 -0
  158. package/dist/src/tiles/item-image.js +118 -0
  159. package/dist/src/tiles/item-image.js.map +1 -0
  160. package/dist/src/tiles/list/account-label.d.ts +1 -0
  161. package/dist/src/tiles/list/account-label.js +7 -0
  162. package/dist/src/tiles/list/account-label.js.map +1 -0
  163. package/dist/src/tiles/list/date-label.d.ts +1 -0
  164. package/dist/src/tiles/list/date-label.js +13 -0
  165. package/dist/src/tiles/list/date-label.js.map +1 -0
  166. package/dist/src/tiles/list/tile-list-compact-header.d.ts +12 -0
  167. package/dist/src/tiles/list/tile-list-compact-header.js +84 -0
  168. package/dist/src/tiles/list/tile-list-compact-header.js.map +1 -0
  169. package/dist/src/tiles/list/tile-list-compact.d.ts +20 -0
  170. package/dist/src/tiles/list/tile-list-compact.js +180 -0
  171. package/dist/src/tiles/list/tile-list-compact.js.map +1 -0
  172. package/dist/src/tiles/list/tile-list.d.ts +48 -0
  173. package/dist/src/tiles/list/tile-list.js +455 -0
  174. package/dist/src/tiles/list/tile-list.js.map +1 -0
  175. package/dist/src/tiles/mediatype-icon.d.ts +9 -0
  176. package/dist/src/tiles/mediatype-icon.js +82 -0
  177. package/dist/src/tiles/mediatype-icon.js.map +1 -0
  178. package/dist/src/tiles/overlay/icon-overlay.d.ts +7 -0
  179. package/dist/src/tiles/overlay/icon-overlay.js +43 -0
  180. package/dist/src/tiles/overlay/icon-overlay.js.map +1 -0
  181. package/dist/src/tiles/overlay/text-overlay.d.ts +8 -0
  182. package/dist/src/tiles/overlay/text-overlay.js +57 -0
  183. package/dist/src/tiles/overlay/text-overlay.js.map +1 -0
  184. package/dist/src/tiles/tile-dispatcher.d.ts +36 -0
  185. package/dist/src/tiles/tile-dispatcher.js +215 -0
  186. package/dist/src/tiles/tile-dispatcher.js.map +1 -0
  187. package/dist/src/utils/format-count.d.ts +7 -0
  188. package/dist/src/utils/format-count.js +76 -0
  189. package/dist/src/utils/format-count.js.map +1 -0
  190. package/dist/src/utils/format-date.d.ts +2 -0
  191. package/dist/src/utils/format-date.js +24 -0
  192. package/dist/src/utils/format-date.js.map +1 -0
  193. package/dist/test/collection-browser.test.d.ts +1 -0
  194. package/dist/test/collection-browser.test.js +47 -0
  195. package/dist/test/collection-browser.test.js.map +1 -0
  196. package/dist/test/collection-facets/more-facets-content.test.d.ts +1 -0
  197. package/dist/test/collection-facets/more-facets-content.test.js +75 -0
  198. package/dist/test/collection-facets/more-facets-content.test.js.map +1 -0
  199. package/dist/test/collection-facets/more-facets-pagination.test.d.ts +1 -0
  200. package/dist/test/collection-facets/more-facets-pagination.test.js +38 -0
  201. package/dist/test/collection-facets/more-facets-pagination.test.js.map +1 -0
  202. package/dist/test/empty-placeholder.test.d.ts +1 -0
  203. package/dist/test/empty-placeholder.test.js +34 -0
  204. package/dist/test/empty-placeholder.test.js.map +1 -0
  205. package/dist/test/icon-overlay.test.d.ts +1 -0
  206. package/dist/test/icon-overlay.test.js +31 -0
  207. package/dist/test/icon-overlay.test.js.map +1 -0
  208. package/dist/test/item-image.test.d.ts +1 -0
  209. package/dist/test/item-image.test.js +73 -0
  210. package/dist/test/item-image.test.js.map +1 -0
  211. package/dist/test/mediatype-config.test.d.ts +1 -0
  212. package/dist/test/mediatype-config.test.js +17 -0
  213. package/dist/test/mediatype-config.test.js.map +1 -0
  214. package/dist/test/mocks/mock-collection-name-cache.d.ts +7 -0
  215. package/dist/test/mocks/mock-collection-name-cache.js +14 -0
  216. package/dist/test/mocks/mock-collection-name-cache.js.map +1 -0
  217. package/dist/test/mocks/mock-search-responses.d.ts +3 -0
  218. package/dist/test/mocks/mock-search-responses.js +45 -0
  219. package/dist/test/mocks/mock-search-responses.js.map +1 -0
  220. package/dist/test/mocks/mock-search-service.d.ts +8 -0
  221. package/dist/test/mocks/mock-search-service.js +16 -0
  222. package/dist/test/mocks/mock-search-service.js.map +1 -0
  223. package/dist/test/text-overlay.test.d.ts +1 -0
  224. package/dist/test/text-overlay.test.js +48 -0
  225. package/dist/test/text-overlay.test.js.map +1 -0
  226. package/dist/test/tile-stats.test.d.ts +1 -0
  227. package/dist/test/tile-stats.test.js +42 -0
  228. package/dist/test/tile-stats.test.js.map +1 -0
  229. package/dist/test/tiles/grid/item-tile.test.d.ts +1 -0
  230. package/dist/test/tiles/grid/item-tile.test.js +96 -0
  231. package/dist/test/tiles/grid/item-tile.test.js.map +1 -0
  232. package/dist/test/utils/format-count.test.d.ts +1 -0
  233. package/dist/test/utils/format-count.test.js +24 -0
  234. package/dist/test/utils/format-count.test.js.map +1 -0
  235. package/dist/test/utils/format-date.test.d.ts +1 -0
  236. package/dist/test/utils/format-date.test.js +18 -0
  237. package/dist/test/utils/format-date.test.js.map +1 -0
  238. package/package.json +5 -2
  239. package/src/app-root.ts +28 -2
  240. package/src/assets/img/icons/arrow-left.ts +10 -0
  241. package/src/assets/img/icons/arrow-right.ts +10 -0
  242. package/src/collection-browser.ts +8 -2
  243. package/src/collection-facets/more-facets-content.ts +371 -0
  244. package/src/collection-facets/more-facets-pagination.ts +201 -0
  245. package/src/collection-facets.ts +119 -3
  246. package/src/restoration-state-handler.ts +1 -1
  247. package/src/sort-filter-bar/sort-filter-bar.ts +1 -1
  248. package/src/tiles/grid/account-tile.ts +1 -1
  249. package/src/tiles/grid/collection-tile.ts +1 -1
  250. package/src/tiles/grid/item-tile.ts +2 -2
  251. package/src/tiles/image-block.ts +1 -1
  252. package/src/tiles/item-image.ts +1 -1
  253. package/src/tiles/list/tile-list-compact-header.ts +2 -2
  254. package/src/tiles/list/tile-list-compact.ts +2 -2
  255. package/src/tiles/list/tile-list.ts +4 -4
  256. package/src/tiles/tile-dispatcher.ts +2 -2
  257. package/test/collection-browser.test.ts +1 -1
  258. package/test/collection-facets/more-facets-content.test.ts +113 -0
  259. package/test/collection-facets/more-facets-pagination.test.ts +70 -0
  260. package/test/empty-placeholder.test.ts +2 -1
  261. package/test/icon-overlay.test.ts +1 -1
  262. package/test/item-image.test.ts +2 -2
  263. package/test/mocks/mock-collection-name-cache.ts +1 -1
  264. package/test/mocks/mock-search-responses.ts +14 -1
  265. package/test/mocks/mock-search-service.ts +2 -2
  266. package/test/text-overlay.test.ts +1 -1
  267. package/test/tile-stats.test.ts +1 -1
  268. package/test/tiles/grid/item-tile.test.ts +1 -1
  269. package/tsconfig.json +3 -2
  270. package/types/dompurify.d.ts +1 -0
@@ -0,0 +1,38 @@
1
+ /* eslint-disable import/no-duplicates */
2
+ import { expect, fixture } from '@open-wc/testing';
3
+ import { html } from 'lit';
4
+ import '../../src/collection-facets/more-facets-pagination';
5
+ describe('More facets pagination', () => {
6
+ it('should render pagination container', async () => {
7
+ var _a;
8
+ const el = await fixture(html `<more-facets-pagination></more-facets-pagination>`);
9
+ expect((_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.facets-pagination')).to.exist;
10
+ });
11
+ it('should render pagination arrow icon', async () => {
12
+ var _a, _b, _c, _d;
13
+ const el = await fixture(html `<more-facets-pagination></more-facets-pagination>`);
14
+ expect((_d = (_c = (_b = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelectorAll('.arrow-icon')[0]) === null || _b === void 0 ? void 0 : _b.querySelector('svg')) === null || _c === void 0 ? void 0 : _c.querySelector('title')) === null || _d === void 0 ? void 0 : _d.textContent).to.equal('Go left icon');
15
+ });
16
+ it('should render pagination right arrow icon', async () => {
17
+ var _a, _b, _c, _d;
18
+ const el = await fixture(html `<more-facets-pagination></more-facets-pagination>`);
19
+ expect((_d = (_c = (_b = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelectorAll('.arrow-icon')[1]) === null || _b === void 0 ? void 0 : _b.querySelector('svg')) === null || _c === void 0 ? void 0 : _c.querySelector('title')) === null || _d === void 0 ? void 0 : _d.textContent).to.equal('Go right icon');
20
+ });
21
+ it('should render pagination pages', async () => {
22
+ var _a, _b;
23
+ const el = await fixture(html `<more-facets-pagination></more-facets-pagination>`);
24
+ el.size = 2;
25
+ await el.updateComplete;
26
+ // at a time we render 5 pages
27
+ expect((_b = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.page-numbers')) === null || _b === void 0 ? void 0 : _b.children.length).to.equal(5);
28
+ });
29
+ it('should render current page as active page', async () => {
30
+ var _a, _b, _c;
31
+ const el = await fixture(html `<more-facets-pagination></more-facets-pagination>`);
32
+ el.size = 2;
33
+ el.currentPage = 3;
34
+ await el.updateComplete;
35
+ expect((_c = (_b = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.page-numbers')) === null || _b === void 0 ? void 0 : _b.querySelector('.current')) === null || _c === void 0 ? void 0 : _c.textContent).to.contains(3);
36
+ });
37
+ });
38
+ //# sourceMappingURL=more-facets-pagination.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"more-facets-pagination.test.js","sourceRoot":"","sources":["../../../test/collection-facets/more-facets-pagination.test.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAE3B,OAAO,oDAAoD,CAAC;AAE5D,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;IACtC,EAAE,CAAC,oCAAoC,EAAE,KAAK,IAAI,EAAE;;QAClD,MAAM,EAAE,GAAG,MAAM,OAAO,CACtB,IAAI,CAAA,mDAAmD,CACxD,CAAC;QAEF,MAAM,CAAC,MAAA,EAAE,CAAC,UAAU,0CAAE,aAAa,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;IACtE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;;QACnD,MAAM,EAAE,GAAG,MAAM,OAAO,CACtB,IAAI,CAAA,mDAAmD,CACxD,CAAC;QAEF,MAAM,CACJ,MAAA,MAAA,MAAA,MAAA,EAAE,CAAC,UAAU,0CACT,gBAAgB,CAAC,aAAa,EAAE,CAAC,CAAC,0CAClC,aAAa,CAAC,KAAK,CAAC,0CACpB,aAAa,CAAC,OAAO,CAAC,0CAAE,WAAW,CACxC,CAAC,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;;QACzD,MAAM,EAAE,GAAG,MAAM,OAAO,CACtB,IAAI,CAAA,mDAAmD,CACxD,CAAC;QAEF,MAAM,CACJ,MAAA,MAAA,MAAA,MAAA,EAAE,CAAC,UAAU,0CACT,gBAAgB,CAAC,aAAa,EAAE,CAAC,CAAC,0CAClC,aAAa,CAAC,KAAK,CAAC,0CACpB,aAAa,CAAC,OAAO,CAAC,0CAAE,WAAW,CACxC,CAAC,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gCAAgC,EAAE,KAAK,IAAI,EAAE;;QAC9C,MAAM,EAAE,GAAG,MAAM,OAAO,CACtB,IAAI,CAAA,mDAAmD,CACxD,CAAC;QAEF,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC;QACZ,MAAM,EAAE,CAAC,cAAc,CAAC;QAExB,8BAA8B;QAC9B,MAAM,CACJ,MAAA,MAAA,EAAE,CAAC,UAAU,0CAAE,aAAa,CAAC,eAAe,CAAC,0CAAE,QAAQ,CAAC,MAAM,CAC/D,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAChB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;;QACzD,MAAM,EAAE,GAAG,MAAM,OAAO,CACtB,IAAI,CAAA,mDAAmD,CACxD,CAAC;QAEF,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC;QACZ,EAAE,CAAC,WAAW,GAAG,CAAC,CAAC;QACnB,MAAM,EAAE,CAAC,cAAc,CAAC;QAExB,MAAM,CACJ,MAAA,MAAA,MAAA,EAAE,CAAC,UAAU,0CAAE,aAAa,CAAC,eAAe,CAAC,0CAAE,aAAa,CAAC,UAAU,CAAC,0CACpE,WAAW,CAChB,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IACnB,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["/* eslint-disable import/no-duplicates */\nimport { expect, fixture } from '@open-wc/testing';\nimport { html } from 'lit';\nimport type { MoreFacetsPagination } from '../../src/collection-facets/more-facets-pagination';\nimport '../../src/collection-facets/more-facets-pagination';\n\ndescribe('More facets pagination', () => {\n it('should render pagination container', async () => {\n const el = await fixture<MoreFacetsPagination>(\n html`<more-facets-pagination></more-facets-pagination>`\n );\n\n expect(el.shadowRoot?.querySelector('.facets-pagination')).to.exist;\n });\n\n it('should render pagination arrow icon', async () => {\n const el = await fixture<MoreFacetsPagination>(\n html`<more-facets-pagination></more-facets-pagination>`\n );\n\n expect(\n el.shadowRoot\n ?.querySelectorAll('.arrow-icon')[0]\n ?.querySelector('svg')\n ?.querySelector('title')?.textContent\n ).to.equal('Go left icon');\n });\n\n it('should render pagination right arrow icon', async () => {\n const el = await fixture<MoreFacetsPagination>(\n html`<more-facets-pagination></more-facets-pagination>`\n );\n\n expect(\n el.shadowRoot\n ?.querySelectorAll('.arrow-icon')[1]\n ?.querySelector('svg')\n ?.querySelector('title')?.textContent\n ).to.equal('Go right icon');\n });\n\n it('should render pagination pages', async () => {\n const el = await fixture<MoreFacetsPagination>(\n html`<more-facets-pagination></more-facets-pagination>`\n );\n\n el.size = 2;\n await el.updateComplete;\n\n // at a time we render 5 pages\n expect(\n el.shadowRoot?.querySelector('.page-numbers')?.children.length\n ).to.equal(5);\n });\n\n it('should render current page as active page', async () => {\n const el = await fixture<MoreFacetsPagination>(\n html`<more-facets-pagination></more-facets-pagination>`\n );\n\n el.size = 2;\n el.currentPage = 3;\n await el.updateComplete;\n\n expect(\n el.shadowRoot?.querySelector('.page-numbers')?.querySelector('.current')\n ?.textContent\n ).to.contains(3);\n });\n});\n"]}
@@ -0,0 +1 @@
1
+ import '../src/empty-placeholder';
@@ -0,0 +1,34 @@
1
+ /* eslint-disable import/no-duplicates */
2
+ import { expect, fixture } from '@open-wc/testing';
3
+ import { html } from 'lit';
4
+ import '../src/empty-placeholder';
5
+ describe('Empty Placeholder', () => {
6
+ it('should render with empty-query placeholder', async () => {
7
+ var _a, _b, _c;
8
+ const el = await fixture(html `<empty-placeholder></empty-placeholder>`);
9
+ el.placeholderType = 'empty-query';
10
+ await el.updateComplete;
11
+ expect((_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.empty-query')).to.exist;
12
+ expect((_b = el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('.null-result')).to.not.exist;
13
+ expect((_c = el.shadowRoot) === null || _c === void 0 ? void 0 : _c.querySelector('infinite-scroller')).to.not.exist;
14
+ });
15
+ it('should render with null-result placeholder', async () => {
16
+ var _a, _b, _c;
17
+ const el = await fixture(html `<empty-placeholder></empty-placeholder>`);
18
+ el.placeholderType = 'null-result';
19
+ await el.updateComplete;
20
+ expect((_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.null-result')).to.exist;
21
+ expect((_b = el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('.empty-query')).to.not.exist;
22
+ expect((_c = el.shadowRoot) === null || _c === void 0 ? void 0 : _c.querySelector('collection-facets')).to.not.exist;
23
+ });
24
+ it('should not render any empty placeholder', async () => {
25
+ var _a, _b, _c;
26
+ const el = await fixture(html `<empty-placeholder></empty-placeholder>`);
27
+ el.placeholderType = null;
28
+ await el.updateComplete;
29
+ expect((_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.empty-query')).to.not.exist;
30
+ expect((_b = el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('.null-result')).to.not.exist;
31
+ expect((_c = el.shadowRoot) === null || _c === void 0 ? void 0 : _c.querySelector('collection-facets')).to.not.exist;
32
+ });
33
+ });
34
+ //# sourceMappingURL=empty-placeholder.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"empty-placeholder.test.js","sourceRoot":"","sources":["../../test/empty-placeholder.test.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAC3B,OAAO,0BAA0B,CAAC;AAIlC,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IACjC,EAAE,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;;QAC1D,MAAM,EAAE,GAAG,MAAM,OAAO,CACtB,IAAI,CAAA,yCAAyC,CAC9C,CAAC;QAEF,EAAE,CAAC,eAAe,GAAG,aAAa,CAAC;QACnC,MAAM,EAAE,CAAC,cAAc,CAAC;QAExB,MAAM,CAAC,MAAA,EAAE,CAAC,UAAU,0CAAE,aAAa,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;QAC9D,MAAM,CAAC,MAAA,EAAE,CAAC,UAAU,0CAAE,aAAa,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC;QAClE,MAAM,CAAC,MAAA,EAAE,CAAC,UAAU,0CAAE,aAAa,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC;IACzE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;;QAC1D,MAAM,EAAE,GAAG,MAAM,OAAO,CACtB,IAAI,CAAA,yCAAyC,CAC9C,CAAC;QAEF,EAAE,CAAC,eAAe,GAAG,aAAa,CAAC;QACnC,MAAM,EAAE,CAAC,cAAc,CAAC;QAExB,MAAM,CAAC,MAAA,EAAE,CAAC,UAAU,0CAAE,aAAa,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;QAC9D,MAAM,CAAC,MAAA,EAAE,CAAC,UAAU,0CAAE,aAAa,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC;QAClE,MAAM,CAAC,MAAA,EAAE,CAAC,UAAU,0CAAE,aAAa,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC;IACzE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yCAAyC,EAAE,KAAK,IAAI,EAAE;;QACvD,MAAM,EAAE,GAAG,MAAM,OAAO,CACtB,IAAI,CAAA,yCAAyC,CAC9C,CAAC;QAEF,EAAE,CAAC,eAAe,GAAG,IAAI,CAAC;QAC1B,MAAM,EAAE,CAAC,cAAc,CAAC;QAExB,MAAM,CAAC,MAAA,EAAE,CAAC,UAAU,0CAAE,aAAa,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC;QAClE,MAAM,CAAC,MAAA,EAAE,CAAC,UAAU,0CAAE,aAAa,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC;QAClE,MAAM,CAAC,MAAA,EAAE,CAAC,UAAU,0CAAE,aAAa,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC;IACzE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["/* eslint-disable import/no-duplicates */\nimport { expect, fixture } from '@open-wc/testing';\nimport { html } from 'lit';\nimport '../src/empty-placeholder';\n\nimport type { EmptyPlaceholder } from '../src/empty-placeholder';\n\ndescribe('Empty Placeholder', () => {\n it('should render with empty-query placeholder', async () => {\n const el = await fixture<EmptyPlaceholder>(\n html`<empty-placeholder></empty-placeholder>`\n );\n\n el.placeholderType = 'empty-query';\n await el.updateComplete;\n\n expect(el.shadowRoot?.querySelector('.empty-query')).to.exist;\n expect(el.shadowRoot?.querySelector('.null-result')).to.not.exist;\n expect(el.shadowRoot?.querySelector('infinite-scroller')).to.not.exist;\n });\n\n it('should render with null-result placeholder', async () => {\n const el = await fixture<EmptyPlaceholder>(\n html`<empty-placeholder></empty-placeholder>`\n );\n\n el.placeholderType = 'null-result';\n await el.updateComplete;\n\n expect(el.shadowRoot?.querySelector('.null-result')).to.exist;\n expect(el.shadowRoot?.querySelector('.empty-query')).to.not.exist;\n expect(el.shadowRoot?.querySelector('collection-facets')).to.not.exist;\n });\n\n it('should not render any empty placeholder', async () => {\n const el = await fixture<EmptyPlaceholder>(\n html`<empty-placeholder></empty-placeholder>`\n );\n\n el.placeholderType = null;\n await el.updateComplete;\n\n expect(el.shadowRoot?.querySelector('.empty-query')).to.not.exist;\n expect(el.shadowRoot?.querySelector('.null-result')).to.not.exist;\n expect(el.shadowRoot?.querySelector('collection-facets')).to.not.exist;\n });\n});\n"]}
@@ -0,0 +1 @@
1
+ import '../src/tiles/overlay/icon-overlay';
@@ -0,0 +1,31 @@
1
+ /* eslint-disable import/no-duplicates */
2
+ import { expect, fixture } from '@open-wc/testing';
3
+ import { html } from 'lit';
4
+ import '../src/tiles/overlay/icon-overlay';
5
+ describe('Icon Overlay component', () => {
6
+ it('should render component if loggedIn required', async () => {
7
+ var _a, _b, _c;
8
+ const el = await fixture(html `
9
+ <icon-overlay .loggedIn=${false} .loginRequired=${true}> </icon-overlay>
10
+ `);
11
+ const svgTitle = (_c = (_b = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('svg')) === null || _b === void 0 ? void 0 : _b.querySelector('title')) === null || _c === void 0 ? void 0 : _c.textContent;
12
+ expect(svgTitle).to.equal('Log in to view this item');
13
+ });
14
+ it('should render component if content warning', async () => {
15
+ var _a, _b, _c;
16
+ const el = await fixture(html `
17
+ <icon-overlay .loggedIn=${false} .loginRequired=${false}> </icon-overlay>
18
+ `);
19
+ const svgTitle = (_c = (_b = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('svg')) === null || _b === void 0 ? void 0 : _b.querySelector('title')) === null || _c === void 0 ? void 0 : _c.textContent;
20
+ expect(svgTitle).to.equal('Content may be inappropriate');
21
+ });
22
+ it('should render component if content warning', async () => {
23
+ var _a, _b, _c;
24
+ const el = await fixture(html `
25
+ <icon-overlay .loggedIn=${true} .loginRequired=${true}> </icon-overlay>
26
+ `);
27
+ const svgTitle = (_c = (_b = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('svg')) === null || _b === void 0 ? void 0 : _b.querySelector('title')) === null || _c === void 0 ? void 0 : _c.textContent;
28
+ expect(svgTitle).to.equal('Content may be inappropriate');
29
+ });
30
+ });
31
+ //# sourceMappingURL=icon-overlay.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icon-overlay.test.js","sourceRoot":"","sources":["../../test/icon-overlay.test.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAG3B,OAAO,mCAAmC,CAAC;AAE3C,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;IACtC,EAAE,CAAC,8CAA8C,EAAE,KAAK,IAAI,EAAE;;QAC5D,MAAM,EAAE,GAAG,MAAM,OAAO,CAAc,IAAI,CAAA;gCACd,KAAK,mBAAmB,IAAI;KACvD,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,MAAA,MAAA,MAAA,EAAE,CAAC,UAAU,0CAC1B,aAAa,CAAC,KAAK,CAAC,0CACpB,aAAa,CAAC,OAAO,CAAC,0CAAE,WAAW,CAAC;QACxC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;;QAC1D,MAAM,EAAE,GAAG,MAAM,OAAO,CAAc,IAAI,CAAA;gCACd,KAAK,mBAAmB,KAAK;KACxD,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,MAAA,MAAA,MAAA,EAAE,CAAC,UAAU,0CAC1B,aAAa,CAAC,KAAK,CAAC,0CACpB,aAAa,CAAC,OAAO,CAAC,0CAAE,WAAW,CAAC;QACxC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;;QAC1D,MAAM,EAAE,GAAG,MAAM,OAAO,CAAc,IAAI,CAAA;gCACd,IAAI,mBAAmB,IAAI;KACtD,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,MAAA,MAAA,MAAA,EAAE,CAAC,UAAU,0CAC1B,aAAa,CAAC,KAAK,CAAC,0CACpB,aAAa,CAAC,OAAO,CAAC,0CAAE,WAAW,CAAC;QACxC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["/* eslint-disable import/no-duplicates */\nimport { expect, fixture } from '@open-wc/testing';\nimport { html } from 'lit';\nimport type { IconOverlay } from '../src/tiles/overlay/icon-overlay';\n\nimport '../src/tiles/overlay/icon-overlay';\n\ndescribe('Icon Overlay component', () => {\n it('should render component if loggedIn required', async () => {\n const el = await fixture<IconOverlay>(html`\n <icon-overlay .loggedIn=${false} .loginRequired=${true}> </icon-overlay>\n `);\n\n const svgTitle = el.shadowRoot\n ?.querySelector('svg')\n ?.querySelector('title')?.textContent;\n expect(svgTitle).to.equal('Log in to view this item');\n });\n\n it('should render component if content warning', async () => {\n const el = await fixture<IconOverlay>(html`\n <icon-overlay .loggedIn=${false} .loginRequired=${false}> </icon-overlay>\n `);\n\n const svgTitle = el.shadowRoot\n ?.querySelector('svg')\n ?.querySelector('title')?.textContent;\n expect(svgTitle).to.equal('Content may be inappropriate');\n });\n\n it('should render component if content warning', async () => {\n const el = await fixture<IconOverlay>(html`\n <icon-overlay .loggedIn=${true} .loginRequired=${true}> </icon-overlay>\n `);\n\n const svgTitle = el.shadowRoot\n ?.querySelector('svg')\n ?.querySelector('title')?.textContent;\n expect(svgTitle).to.equal('Content may be inappropriate');\n });\n});\n"]}
@@ -0,0 +1 @@
1
+ import '../src/tiles/item-image';
@@ -0,0 +1,73 @@
1
+ /* eslint-disable import/no-duplicates */
2
+ import { expect, fixture } from '@open-wc/testing';
3
+ import { html } from 'lit';
4
+ import '../src/tiles/item-image';
5
+ const baseImageUrl = 'https://archive.org';
6
+ const testBookModel = {
7
+ collections: [],
8
+ commentCount: 0,
9
+ creators: [],
10
+ favCount: 0,
11
+ identifier: '18730130BloomfieldRecordCompleteIssue',
12
+ itemCount: 0,
13
+ mediatype: 'texts',
14
+ subjects: [],
15
+ title: 'Sample Waveform',
16
+ viewCount: 0,
17
+ loginRequired: false,
18
+ contentWarning: false,
19
+ };
20
+ const testAudioModel = {
21
+ collections: [],
22
+ commentCount: 0,
23
+ creators: [],
24
+ favCount: 0,
25
+ identifier: 'dwd2015-01-24',
26
+ itemCount: 0,
27
+ mediatype: 'audio',
28
+ subjects: [],
29
+ title: 'Sample Waveform',
30
+ viewCount: 0,
31
+ loginRequired: false,
32
+ contentWarning: false,
33
+ };
34
+ describe('ItemImage component', () => {
35
+ it('should render initial component', async () => {
36
+ var _a, _b;
37
+ const el = await fixture(html `
38
+ <item-image
39
+ .isListTile=${false}
40
+ .isCompactTile=${false}
41
+ .model=${testBookModel}
42
+ .baseImageUrl=${baseImageUrl}
43
+ >
44
+ </item-image>
45
+ `);
46
+ const dropShadow = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.drop-shadow');
47
+ const imgClassName = (_b = dropShadow === null || dropShadow === void 0 ? void 0 : dropShadow.querySelector('img')) === null || _b === void 0 ? void 0 : _b.className;
48
+ expect(dropShadow).to.exist;
49
+ expect(imgClassName).to.eql(' contain ');
50
+ });
51
+ it('should render component if mediatype is waveform', async () => {
52
+ var _a;
53
+ const el = await fixture(html `
54
+ <item-image
55
+ .isListTile=${false}
56
+ .isCompactTile=${false}
57
+ .model=${testAudioModel}
58
+ .baseImageUrl=${baseImageUrl}
59
+ >
60
+ </item-image>
61
+ `);
62
+ const dropShadow = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.drop-shadow');
63
+ const image = dropShadow === null || dropShadow === void 0 ? void 0 : dropShadow.querySelector('img');
64
+ expect(dropShadow).to.exist;
65
+ expect(image).to.exist;
66
+ // simulate image onLoad event check if image className is waveform
67
+ setTimeout(() => {
68
+ const imgClassName = image === null || image === void 0 ? void 0 : image.className;
69
+ expect(imgClassName).to.eql(' waveform ');
70
+ }, 1000);
71
+ });
72
+ });
73
+ //# sourceMappingURL=item-image.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"item-image.test.js","sourceRoot":"","sources":["../../test/item-image.test.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAK3B,OAAO,yBAAyB,CAAC;AAEjC,MAAM,YAAY,GAAG,qBAAqB,CAAC;AAC3C,MAAM,aAAa,GAAc;IAC/B,WAAW,EAAE,EAAE;IACf,YAAY,EAAE,CAAC;IACf,QAAQ,EAAE,EAAE;IACZ,QAAQ,EAAE,CAAC;IACX,UAAU,EAAE,uCAAuC;IACnD,SAAS,EAAE,CAAC;IACZ,SAAS,EAAE,OAAO;IAClB,QAAQ,EAAE,EAAE;IACZ,KAAK,EAAE,iBAAiB;IACxB,SAAS,EAAE,CAAC;IACZ,aAAa,EAAE,KAAK;IACpB,cAAc,EAAE,KAAK;CACtB,CAAC;AAEF,MAAM,cAAc,GAAc;IAChC,WAAW,EAAE,EAAE;IACf,YAAY,EAAE,CAAC;IACf,QAAQ,EAAE,EAAE;IACZ,QAAQ,EAAE,CAAC;IACX,UAAU,EAAE,eAAe;IAC3B,SAAS,EAAE,CAAC;IACZ,SAAS,EAAE,OAAO;IAClB,QAAQ,EAAE,EAAE;IACZ,KAAK,EAAE,iBAAiB;IACxB,SAAS,EAAE,CAAC;IACZ,aAAa,EAAE,KAAK;IACpB,cAAc,EAAE,KAAK;CACtB,CAAC;AAEF,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;IACnC,EAAE,CAAC,iCAAiC,EAAE,KAAK,IAAI,EAAE;;QAC/C,MAAM,EAAE,GAAG,MAAM,OAAO,CAAY,IAAI,CAAA;;sBAEtB,KAAK;yBACF,KAAK;iBACb,aAAa;wBACN,YAAY;;;KAG/B,CAAC,CAAC;QAEH,MAAM,UAAU,GAAG,MAAA,EAAE,CAAC,UAAU,0CAAE,aAAa,CAAC,cAAc,CAAC,CAAC;QAChE,MAAM,YAAY,GAAG,MAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,aAAa,CAAC,KAAK,CAAC,0CAAE,SAAS,CAAC;QAEjE,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;QAC5B,MAAM,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;;QAChE,MAAM,EAAE,GAAG,MAAM,OAAO,CAAY,IAAI,CAAA;;sBAEtB,KAAK;yBACF,KAAK;iBACb,cAAc;wBACP,YAAY;;;KAG/B,CAAC,CAAC;QAEH,MAAM,UAAU,GAAG,MAAA,EAAE,CAAC,UAAU,0CAAE,aAAa,CAAC,cAAc,CAAC,CAAC;QAChE,MAAM,KAAK,GAAG,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,aAAa,CAAC,KAAK,CAAC,CAAC;QAC/C,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;QAC5B,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;QAEvB,mEAAmE;QACnE,UAAU,CAAC,GAAG,EAAE;YACd,MAAM,YAAY,GAAG,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,SAAS,CAAC;YACtC,MAAM,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAC5C,CAAC,EAAE,IAAI,CAAC,CAAC;IACX,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["/* eslint-disable import/no-duplicates */\nimport { expect, fixture } from '@open-wc/testing';\nimport { html } from 'lit';\n\nimport type { TileModel } from '../src/models';\nimport type { ItemImage } from '../src/tiles/item-image';\n\nimport '../src/tiles/item-image';\n\nconst baseImageUrl = 'https://archive.org';\nconst testBookModel: TileModel = {\n collections: [],\n commentCount: 0,\n creators: [],\n favCount: 0,\n identifier: '18730130BloomfieldRecordCompleteIssue',\n itemCount: 0,\n mediatype: 'texts',\n subjects: [],\n title: 'Sample Waveform',\n viewCount: 0,\n loginRequired: false,\n contentWarning: false,\n};\n\nconst testAudioModel: TileModel = {\n collections: [],\n commentCount: 0,\n creators: [],\n favCount: 0,\n identifier: 'dwd2015-01-24',\n itemCount: 0,\n mediatype: 'audio',\n subjects: [],\n title: 'Sample Waveform',\n viewCount: 0,\n loginRequired: false,\n contentWarning: false,\n};\n\ndescribe('ItemImage component', () => {\n it('should render initial component', async () => {\n const el = await fixture<ItemImage>(html`\n <item-image\n .isListTile=${false}\n .isCompactTile=${false}\n .model=${testBookModel}\n .baseImageUrl=${baseImageUrl}\n >\n </item-image>\n `);\n\n const dropShadow = el.shadowRoot?.querySelector('.drop-shadow');\n const imgClassName = dropShadow?.querySelector('img')?.className;\n\n expect(dropShadow).to.exist;\n expect(imgClassName).to.eql(' contain ');\n });\n\n it('should render component if mediatype is waveform', async () => {\n const el = await fixture<ItemImage>(html`\n <item-image\n .isListTile=${false}\n .isCompactTile=${false}\n .model=${testAudioModel}\n .baseImageUrl=${baseImageUrl}\n >\n </item-image>\n `);\n\n const dropShadow = el.shadowRoot?.querySelector('.drop-shadow');\n const image = dropShadow?.querySelector('img');\n expect(dropShadow).to.exist;\n expect(image).to.exist;\n\n // simulate image onLoad event check if image className is waveform\n setTimeout(() => {\n const imgClassName = image?.className;\n expect(imgClassName).to.eql(' waveform ');\n }, 1000);\n });\n});\n"]}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,17 @@
1
+ import { expect } from '@open-wc/testing';
2
+ import { mediatypeConfig } from '../src/mediatype/mediatype-config';
3
+ describe('mediatypeConfig', () => {
4
+ it('returns undefined', () => {
5
+ expect(mediatypeConfig['']).to.equal(undefined);
6
+ expect(mediatypeConfig.test).to.equal(undefined);
7
+ expect(mediatypeConfig.media).to.equal(undefined);
8
+ expect(mediatypeConfig.testing).to.equal(undefined);
9
+ });
10
+ it('returns audio', () => {
11
+ expect(mediatypeConfig.audio).to.exist;
12
+ expect(mediatypeConfig.audio.color).to.exist;
13
+ expect(mediatypeConfig.audio.icon).to.exist;
14
+ expect(mediatypeConfig.audio.text).to.exist;
15
+ });
16
+ });
17
+ //# sourceMappingURL=mediatype-config.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mediatype-config.test.js","sourceRoot":"","sources":["../../test/mediatype-config.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AAEpE,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC/B,EAAE,CAAC,mBAAmB,EAAE,GAAG,EAAE;QAC3B,MAAM,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAChD,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACjD,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAClD,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,eAAe,EAAE,GAAG,EAAE;QACvB,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;QACvC,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;QAC7C,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;QAC5C,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;IAC9C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { expect } from '@open-wc/testing';\nimport { mediatypeConfig } from '../src/mediatype/mediatype-config';\n\ndescribe('mediatypeConfig', () => {\n it('returns undefined', () => {\n expect(mediatypeConfig['']).to.equal(undefined);\n expect(mediatypeConfig.test).to.equal(undefined);\n expect(mediatypeConfig.media).to.equal(undefined);\n expect(mediatypeConfig.testing).to.equal(undefined);\n });\n\n it('returns audio', () => {\n expect(mediatypeConfig.audio).to.exist;\n expect(mediatypeConfig.audio.color).to.exist;\n expect(mediatypeConfig.audio.icon).to.exist;\n expect(mediatypeConfig.audio.text).to.exist;\n });\n});\n"]}
@@ -0,0 +1,7 @@
1
+ import type { CollectionNameCacheInterface } from '@internetarchive/collection-name-cache';
2
+ export declare class MockCollectionNameCache implements CollectionNameCacheInterface {
3
+ collectionNamesRequested: string[];
4
+ preloadIdentifiersRequested: string[];
5
+ collectionNameFor(identifier: string): Promise<string | null>;
6
+ preloadIdentifiers(identifiers: string[]): Promise<void>;
7
+ }
@@ -0,0 +1,14 @@
1
+ export class MockCollectionNameCache {
2
+ constructor() {
3
+ this.collectionNamesRequested = [];
4
+ this.preloadIdentifiersRequested = [];
5
+ }
6
+ async collectionNameFor(identifier) {
7
+ this.collectionNamesRequested.push(identifier);
8
+ return `${identifier}-name`;
9
+ }
10
+ async preloadIdentifiers(identifiers) {
11
+ this.preloadIdentifiersRequested = identifiers;
12
+ }
13
+ }
14
+ //# sourceMappingURL=mock-collection-name-cache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mock-collection-name-cache.js","sourceRoot":"","sources":["../../../test/mocks/mock-collection-name-cache.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,uBAAuB;IAApC;QACE,6BAAwB,GAAa,EAAE,CAAC;QAExC,gCAA2B,GAAa,EAAE,CAAC;IAU7C,CAAC;IARC,KAAK,CAAC,iBAAiB,CAAC,UAAkB;QACxC,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC/C,OAAO,GAAG,UAAU,OAAO,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,WAAqB;QAC5C,IAAI,CAAC,2BAA2B,GAAG,WAAW,CAAC;IACjD,CAAC;CACF","sourcesContent":["import type { CollectionNameCacheInterface } from '@internetarchive/collection-name-cache';\n\nexport class MockCollectionNameCache implements CollectionNameCacheInterface {\n collectionNamesRequested: string[] = [];\n\n preloadIdentifiersRequested: string[] = [];\n\n async collectionNameFor(identifier: string): Promise<string | null> {\n this.collectionNamesRequested.push(identifier);\n return `${identifier}-name`;\n }\n\n async preloadIdentifiers(identifiers: string[]): Promise<void> {\n this.preloadIdentifiersRequested = identifiers;\n }\n}\n"]}
@@ -0,0 +1,3 @@
1
+ import type { Result } from '@internetarchive/result-type';
2
+ import { SearchResponse, SearchServiceError } from '@internetarchive/search-service';
3
+ export declare const mockSuccessResponse: Result<SearchResponse, SearchServiceError>;
@@ -0,0 +1,45 @@
1
+ import { Metadata, } from '@internetarchive/search-service';
2
+ export const mockSuccessResponse = {
3
+ success: {
4
+ rawResponse: {},
5
+ response: {
6
+ numFound: 2,
7
+ docs: [
8
+ new Metadata({
9
+ identifier: 'foo',
10
+ collections_raw: ['foo', 'bar'],
11
+ }),
12
+ new Metadata({
13
+ identifier: 'bar',
14
+ collections_raw: ['baz', 'boop'],
15
+ }),
16
+ ],
17
+ start: 0,
18
+ aggregations: {
19
+ 'user_aggs__terms__field:mediatypeSorter__size:100': {
20
+ buckets: [
21
+ { key: 'audio', doc_count: 121 },
22
+ { key: 'movies', doc_count: 2195 },
23
+ { key: 'texts', doc_count: 1392 },
24
+ { key: 'data', doc_count: 605 },
25
+ { key: 'web', doc_count: 301 },
26
+ { key: 'collection', doc_count: 167 },
27
+ { key: 'account', doc_count: 167 },
28
+ ],
29
+ },
30
+ },
31
+ },
32
+ responseHeader: {
33
+ status: 0,
34
+ QTime: 0,
35
+ params: {
36
+ query: 'collection:foo',
37
+ qin: 'collection:foo',
38
+ fields: 'identifier, collections_raw',
39
+ wt: 'foo',
40
+ start: 0,
41
+ },
42
+ },
43
+ },
44
+ };
45
+ //# sourceMappingURL=mock-search-responses.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mock-search-responses.js","sourceRoot":"","sources":["../../../test/mocks/mock-search-responses.ts"],"names":[],"mappings":"AACA,OAAO,EACL,QAAQ,GAGT,MAAM,iCAAiC,CAAC;AAEzC,MAAM,CAAC,MAAM,mBAAmB,GAA+C;IAC7E,OAAO,EAAE;QACP,WAAW,EAAE,EAAE;QACf,QAAQ,EAAE;YACR,QAAQ,EAAE,CAAC;YACX,IAAI,EAAE;gBACJ,IAAI,QAAQ,CAAC;oBACX,UAAU,EAAE,KAAK;oBACjB,eAAe,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC;iBAChC,CAAC;gBACF,IAAI,QAAQ,CAAC;oBACX,UAAU,EAAE,KAAK;oBACjB,eAAe,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC;iBACjC,CAAC;aACH;YACD,KAAK,EAAE,CAAC;YACR,YAAY,EAAE;gBACZ,mDAAmD,EAAE;oBACnD,OAAO,EAAE;wBACP,EAAE,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE;wBAChC,EAAE,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE;wBAClC,EAAE,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE;wBACjC,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE;wBAC/B,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE;wBAC9B,EAAE,GAAG,EAAE,YAAY,EAAE,SAAS,EAAE,GAAG,EAAE;wBACrC,EAAE,GAAG,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,EAAE;qBACnC;iBACF;aACF;SACF;QACD,cAAc,EAAE;YACd,MAAM,EAAE,CAAC;YACT,KAAK,EAAE,CAAC;YACR,MAAM,EAAE;gBACN,KAAK,EAAE,gBAAgB;gBACvB,GAAG,EAAE,gBAAgB;gBACrB,MAAM,EAAE,6BAA6B;gBACrC,EAAE,EAAE,KAAK;gBACT,KAAK,EAAE,CAAC;aACT;SACF;KACF;CACF,CAAC","sourcesContent":["import type { Result } from '@internetarchive/result-type';\nimport {\n Metadata,\n SearchResponse,\n SearchServiceError,\n} from '@internetarchive/search-service';\n\nexport const mockSuccessResponse: Result<SearchResponse, SearchServiceError> = {\n success: {\n rawResponse: {},\n response: {\n numFound: 2,\n docs: [\n new Metadata({\n identifier: 'foo',\n collections_raw: ['foo', 'bar'],\n }),\n new Metadata({\n identifier: 'bar',\n collections_raw: ['baz', 'boop'],\n }),\n ],\n start: 0,\n aggregations: {\n 'user_aggs__terms__field:mediatypeSorter__size:100': {\n buckets: [\n { key: 'audio', doc_count: 121 },\n { key: 'movies', doc_count: 2195 },\n { key: 'texts', doc_count: 1392 },\n { key: 'data', doc_count: 605 },\n { key: 'web', doc_count: 301 },\n { key: 'collection', doc_count: 167 },\n { key: 'account', doc_count: 167 },\n ],\n },\n },\n },\n responseHeader: {\n status: 0,\n QTime: 0,\n params: {\n query: 'collection:foo',\n qin: 'collection:foo',\n fields: 'identifier, collections_raw',\n wt: 'foo',\n start: 0,\n },\n },\n },\n};\n"]}
@@ -0,0 +1,8 @@
1
+ import type { Result } from '@internetarchive/result-type';
2
+ import type { MetadataResponse, SearchParams, SearchResponse, SearchServiceInterface, SearchServiceError } from '@internetarchive/search-service';
3
+ export declare class MockSearchService implements SearchServiceInterface {
4
+ searchParams?: SearchParams;
5
+ search(params: SearchParams): Promise<Result<SearchResponse, SearchServiceError>>;
6
+ fetchMetadata(identifier: string): Promise<Result<MetadataResponse, SearchServiceError>>;
7
+ fetchMetadataValue<T>(identifier: string, keypath: string): Promise<Result<T, SearchServiceError>>;
8
+ }
@@ -0,0 +1,16 @@
1
+ import { mockSuccessResponse } from './mock-search-responses';
2
+ export class MockSearchService {
3
+ async search(params) {
4
+ this.searchParams = params;
5
+ return mockSuccessResponse;
6
+ }
7
+ async fetchMetadata(identifier) {
8
+ console.debug('fetchMetadata', identifier);
9
+ throw new Error('Method not implemented.');
10
+ }
11
+ async fetchMetadataValue(identifier, keypath) {
12
+ console.debug('fetchMetadataValue', identifier, keypath);
13
+ throw new Error('Method not implemented.');
14
+ }
15
+ }
16
+ //# sourceMappingURL=mock-search-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mock-search-service.js","sourceRoot":"","sources":["../../../test/mocks/mock-search-service.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAE9D,MAAM,OAAO,iBAAiB;IAG5B,KAAK,CAAC,MAAM,CACV,MAAoB;QAEpB,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC;QAC3B,OAAO,mBAAmB,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,aAAa,CACjB,UAAkB;QAElB,OAAO,CAAC,KAAK,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;QAC3C,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,kBAAkB,CACtB,UAAkB,EAClB,OAAe;QAEf,OAAO,CAAC,KAAK,CAAC,oBAAoB,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;QACzD,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;CACF","sourcesContent":["import type { Result } from '@internetarchive/result-type';\nimport type {\n MetadataResponse,\n SearchParams,\n SearchResponse,\n SearchServiceInterface,\n SearchServiceError,\n} from '@internetarchive/search-service';\nimport { mockSuccessResponse } from './mock-search-responses';\n\nexport class MockSearchService implements SearchServiceInterface {\n searchParams?: SearchParams;\n\n async search(\n params: SearchParams\n ): Promise<Result<SearchResponse, SearchServiceError>> {\n this.searchParams = params;\n return mockSuccessResponse;\n }\n\n async fetchMetadata(\n identifier: string\n ): Promise<Result<MetadataResponse, SearchServiceError>> {\n console.debug('fetchMetadata', identifier);\n throw new Error('Method not implemented.');\n }\n\n async fetchMetadataValue<T>(\n identifier: string,\n keypath: string\n ): Promise<Result<T, SearchServiceError>> {\n console.debug('fetchMetadataValue', identifier, keypath);\n throw new Error('Method not implemented.');\n }\n}\n"]}
@@ -0,0 +1 @@
1
+ import '../src/tiles/overlay/text-overlay';
@@ -0,0 +1,48 @@
1
+ /* eslint-disable import/no-duplicates */
2
+ import { expect, fixture } from '@open-wc/testing';
3
+ import { html } from 'lit';
4
+ import '../src/tiles/overlay/text-overlay';
5
+ describe('Text Overlay component', () => {
6
+ it('should render initial component', async () => {
7
+ var _a, _b;
8
+ const el = await fixture(html `<text-overlay></text-overlay>`);
9
+ const overlay = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.overlay');
10
+ const noPreview = (_b = el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('.no-preview');
11
+ expect(overlay).to.exist;
12
+ expect(noPreview).to.exist;
13
+ });
14
+ it('should render component if loggedIn required', async () => {
15
+ var _a, _b;
16
+ const el = await fixture(html `
17
+ <text-overlay .loggedIn=${false} .loginRequired=${true}> </text-overlay>
18
+ `);
19
+ const overlay = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.overlay');
20
+ const noPreview = (_b = el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('.no-preview');
21
+ expect(overlay).to.exist;
22
+ expect(noPreview).to.exist;
23
+ expect(noPreview === null || noPreview === void 0 ? void 0 : noPreview.textContent).to.equal('Log in\nto view this item');
24
+ });
25
+ it('should render component if content warning', async () => {
26
+ var _a, _b;
27
+ const el = await fixture(html `
28
+ <text-overlay .loggedIn=${false} .loginRequired=${false}> </text-overlay>
29
+ `);
30
+ const overlay = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.overlay');
31
+ const noPreview = (_b = el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('.no-preview');
32
+ expect(overlay).to.exist;
33
+ expect(noPreview).to.exist;
34
+ expect(noPreview === null || noPreview === void 0 ? void 0 : noPreview.textContent).to.equal('Content may be inappropriate');
35
+ });
36
+ it('should render component if content warning', async () => {
37
+ var _a, _b;
38
+ const el = await fixture(html `
39
+ <text-overlay .loggedIn=${true} .loginRequired=${true}> </text-overlay>
40
+ `);
41
+ const overlay = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.overlay');
42
+ const noPreview = (_b = el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('.no-preview');
43
+ expect(overlay).to.exist;
44
+ expect(noPreview).to.exist;
45
+ expect(noPreview === null || noPreview === void 0 ? void 0 : noPreview.textContent).to.equal('Content may be inappropriate');
46
+ });
47
+ });
48
+ //# sourceMappingURL=text-overlay.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text-overlay.test.js","sourceRoot":"","sources":["../../test/text-overlay.test.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAG3B,OAAO,mCAAmC,CAAC;AAE3C,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;IACtC,EAAE,CAAC,iCAAiC,EAAE,KAAK,IAAI,EAAE;;QAC/C,MAAM,EAAE,GAAG,MAAM,OAAO,CAAc,IAAI,CAAA,+BAA+B,CAAC,CAAC;QAE3E,MAAM,OAAO,GAAG,MAAA,EAAE,CAAC,UAAU,0CAAE,aAAa,CAAC,UAAU,CAAC,CAAC;QACzD,MAAM,SAAS,GAAG,MAAA,EAAE,CAAC,UAAU,0CAAE,aAAa,CAAC,aAAa,CAAC,CAAC;QAE9D,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;QACzB,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;IAC7B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8CAA8C,EAAE,KAAK,IAAI,EAAE;;QAC5D,MAAM,EAAE,GAAG,MAAM,OAAO,CAAc,IAAI,CAAA;gCACd,KAAK,mBAAmB,IAAI;KACvD,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,MAAA,EAAE,CAAC,UAAU,0CAAE,aAAa,CAAC,UAAU,CAAC,CAAC;QACzD,MAAM,SAAS,GAAG,MAAA,EAAE,CAAC,UAAU,0CAAE,aAAa,CAAC,aAAa,CAAC,CAAC;QAE9D,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;QACzB,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;QAC3B,MAAM,CAAC,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,WAAW,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;IACvE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;;QAC1D,MAAM,EAAE,GAAG,MAAM,OAAO,CAAc,IAAI,CAAA;gCACd,KAAK,mBAAmB,KAAK;KACxD,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,MAAA,EAAE,CAAC,UAAU,0CAAE,aAAa,CAAC,UAAU,CAAC,CAAC;QACzD,MAAM,SAAS,GAAG,MAAA,EAAE,CAAC,UAAU,0CAAE,aAAa,CAAC,aAAa,CAAC,CAAC;QAE9D,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;QACzB,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;QAC3B,MAAM,CAAC,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,WAAW,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;IAC1E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;;QAC1D,MAAM,EAAE,GAAG,MAAM,OAAO,CAAc,IAAI,CAAA;gCACd,IAAI,mBAAmB,IAAI;KACtD,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,MAAA,EAAE,CAAC,UAAU,0CAAE,aAAa,CAAC,UAAU,CAAC,CAAC;QACzD,MAAM,SAAS,GAAG,MAAA,EAAE,CAAC,UAAU,0CAAE,aAAa,CAAC,aAAa,CAAC,CAAC;QAE9D,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;QACzB,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;QAC3B,MAAM,CAAC,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,WAAW,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;IAC1E,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["/* eslint-disable import/no-duplicates */\nimport { expect, fixture } from '@open-wc/testing';\nimport { html } from 'lit';\nimport type { TextOverlay } from '../src/tiles/overlay/text-overlay';\n\nimport '../src/tiles/overlay/text-overlay';\n\ndescribe('Text Overlay component', () => {\n it('should render initial component', async () => {\n const el = await fixture<TextOverlay>(html`<text-overlay></text-overlay>`);\n\n const overlay = el.shadowRoot?.querySelector('.overlay');\n const noPreview = el.shadowRoot?.querySelector('.no-preview');\n\n expect(overlay).to.exist;\n expect(noPreview).to.exist;\n });\n\n it('should render component if loggedIn required', async () => {\n const el = await fixture<TextOverlay>(html`\n <text-overlay .loggedIn=${false} .loginRequired=${true}> </text-overlay>\n `);\n\n const overlay = el.shadowRoot?.querySelector('.overlay');\n const noPreview = el.shadowRoot?.querySelector('.no-preview');\n\n expect(overlay).to.exist;\n expect(noPreview).to.exist;\n expect(noPreview?.textContent).to.equal('Log in\\nto view this item');\n });\n\n it('should render component if content warning', async () => {\n const el = await fixture<TextOverlay>(html`\n <text-overlay .loggedIn=${false} .loginRequired=${false}> </text-overlay>\n `);\n\n const overlay = el.shadowRoot?.querySelector('.overlay');\n const noPreview = el.shadowRoot?.querySelector('.no-preview');\n\n expect(overlay).to.exist;\n expect(noPreview).to.exist;\n expect(noPreview?.textContent).to.equal('Content may be inappropriate');\n });\n\n it('should render component if content warning', async () => {\n const el = await fixture<TextOverlay>(html`\n <text-overlay .loggedIn=${true} .loginRequired=${true}> </text-overlay>\n `);\n\n const overlay = el.shadowRoot?.querySelector('.overlay');\n const noPreview = el.shadowRoot?.querySelector('.no-preview');\n\n expect(overlay).to.exist;\n expect(noPreview).to.exist;\n expect(noPreview?.textContent).to.equal('Content may be inappropriate');\n });\n});\n"]}
@@ -0,0 +1 @@
1
+ import '../src/tiles/grid/tile-stats';
@@ -0,0 +1,42 @@
1
+ /* eslint-disable import/no-duplicates */
2
+ import { expect, fixture } from '@open-wc/testing';
3
+ import { html } from 'lit';
4
+ import '../src/tiles/grid/tile-stats';
5
+ describe('Tile Stats', () => {
6
+ it('should render initial component', async () => {
7
+ var _a, _b;
8
+ const el = await fixture(html `<tile-stats></tile-stats>`);
9
+ const itemStats = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.item-stats');
10
+ const statsRow = (_b = el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('#stats-row');
11
+ const statsRowCount = statsRow === null || statsRow === void 0 ? void 0 : statsRow.childElementCount;
12
+ expect(itemStats).to.exist;
13
+ expect(statsRow).to.exist;
14
+ expect(statsRowCount).to.equal(4);
15
+ });
16
+ it('should render component with value', async () => {
17
+ var _a, _b, _c, _d, _e, _f, _g;
18
+ const el = await fixture(html `
19
+ <tile-stats
20
+ .mediatype=${'account'}
21
+ .itemCount=${1}
22
+ .favCount=${2}
23
+ .commentCount=${3}
24
+ >
25
+ </tile-stats>
26
+ `);
27
+ const statsRow = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('#stats-row');
28
+ const mediatypeStat = statsRow === null || statsRow === void 0 ? void 0 : statsRow.children.item(0);
29
+ // get second column item in stats row
30
+ const itemStatCount = (_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;
31
+ // get third column item in stats row
32
+ const favoritesStatCount = (_e = (_d = statsRow === null || statsRow === void 0 ? void 0 : statsRow.children.item(2)) === null || _d === void 0 ? void 0 : _d.querySelector('.status-text')) === null || _e === void 0 ? void 0 : _e.textContent;
33
+ // get fourth column item in stats row
34
+ const reviewsStatCount = (_g = (_f = statsRow === null || statsRow === void 0 ? void 0 : statsRow.children.item(3)) === null || _f === void 0 ? void 0 : _f.querySelector('.status-text')) === null || _g === void 0 ? void 0 : _g.textContent;
35
+ expect(mediatypeStat).to.exist;
36
+ // Snapshot testing - reference: https://open-wc.org/docs/testing/semantic-dom-diff/#snapshot-testing
37
+ expect(itemStatCount).to.equalSnapshot(1);
38
+ expect(favoritesStatCount).to.equalSnapshot(2);
39
+ expect(reviewsStatCount).to.equalSnapshot(3);
40
+ });
41
+ });
42
+ //# sourceMappingURL=tile-stats.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tile-stats.test.js","sourceRoot":"","sources":["../../test/tile-stats.test.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAG3B,OAAO,8BAA8B,CAAC;AAEtC,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IAC1B,EAAE,CAAC,iCAAiC,EAAE,KAAK,IAAI,EAAE;;QAC/C,MAAM,EAAE,GAAG,MAAM,OAAO,CAAY,IAAI,CAAA,2BAA2B,CAAC,CAAC;QAErE,MAAM,SAAS,GAAG,MAAA,EAAE,CAAC,UAAU,0CAAE,aAAa,CAAC,aAAa,CAAC,CAAC;QAC9D,MAAM,QAAQ,GAAG,MAAA,EAAE,CAAC,UAAU,0CAAE,aAAa,CAAC,YAAY,CAAC,CAAC;QAC5D,MAAM,aAAa,GAAG,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,iBAAiB,CAAC;QAElD,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;QAC3B,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;QAC1B,MAAM,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oCAAoC,EAAE,KAAK,IAAI,EAAE;;QAClD,MAAM,EAAE,GAAG,MAAM,OAAO,CACtB,IAAI,CAAA;;uBAEa,SAAS;uBACT,CAAC;sBACF,CAAC;0BACG,CAAC;;;OAGpB,CACF,CAAC;QAEF,MAAM,QAAQ,GAAG,MAAA,EAAE,CAAC,UAAU,0CAAE,aAAa,CAAC,YAAY,CAAC,CAAC;QAE5D,MAAM,aAAa,GAAG,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACjD,sCAAsC;QACtC,MAAM,aAAa,GAAG,MAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,QAAQ,CACrC,IAAI,CAAC,CAAC,CAAC,0CACN,aAAa,CAAC,cAAc,CAAC,0CAAE,WAAW,CAAC;QAC/C,qCAAqC;QACrC,MAAM,kBAAkB,GAAG,MAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,QAAQ,CAC1C,IAAI,CAAC,CAAC,CAAC,0CACN,aAAa,CAAC,cAAc,CAAC,0CAAE,WAAW,CAAC;QAC/C,sCAAsC;QACtC,MAAM,gBAAgB,GAAG,MAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,QAAQ,CACxC,IAAI,CAAC,CAAC,CAAC,0CACN,aAAa,CAAC,cAAc,CAAC,0CAAE,WAAW,CAAC;QAE/C,MAAM,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;QAE/B,qGAAqG;QACrG,MAAM,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;QAC1C,MAAM,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;QAC/C,MAAM,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["/* eslint-disable import/no-duplicates */\nimport { 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 value', async () => {\n const el = await fixture<TileStats>(\n html`\n <tile-stats\n .mediatype=${'account'}\n .itemCount=${1}\n .favCount=${2}\n .commentCount=${3}\n >\n </tile-stats>\n `\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')?.textContent;\n // get third column item in stats row\n const favoritesStatCount = statsRow?.children\n .item(2)\n ?.querySelector('.status-text')?.textContent;\n // get fourth column item in stats row\n const reviewsStatCount = statsRow?.children\n .item(3)\n ?.querySelector('.status-text')?.textContent;\n\n expect(mediatypeStat).to.exist;\n\n // Snapshot testing - reference: https://open-wc.org/docs/testing/semantic-dom-diff/#snapshot-testing\n expect(itemStatCount).to.equalSnapshot(1);\n expect(favoritesStatCount).to.equalSnapshot(2);\n expect(reviewsStatCount).to.equalSnapshot(3);\n });\n});\n"]}
@@ -0,0 +1 @@
1
+ import '../../../src/tiles/grid/item-tile';
@@ -0,0 +1,96 @@
1
+ /* eslint-disable import/no-duplicates */
2
+ import { expect, fixture } from '@open-wc/testing';
3
+ import { html } from 'lit';
4
+ import '../../../src/tiles/grid/item-tile';
5
+ describe('Item Tile', () => {
6
+ it('should render initial component', async () => {
7
+ var _a, _b, _c;
8
+ const el = await fixture(html `<item-tile></item-tile>`);
9
+ const itemInfo = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.item-info');
10
+ const itemTitle = (_b = el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('#title');
11
+ const imageBlock = (_c = el.shadowRoot) === null || _c === void 0 ? void 0 : _c.querySelector('image-block');
12
+ expect(itemInfo).to.exist;
13
+ expect(imageBlock).to.exist;
14
+ expect(itemTitle).to.exist;
15
+ });
16
+ it('should render with created-by element', async () => {
17
+ var _a, _b, _c;
18
+ const el = await fixture(html `<item-tile></item-tile>`);
19
+ const itemInfo = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.item-info');
20
+ const createdBy = (_b = el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('.created-by');
21
+ const dateSortedBy = (_c = el.shadowRoot) === null || _c === void 0 ? void 0 : _c.querySelector('.date-sorted-by');
22
+ expect(itemInfo).to.exist;
23
+ expect(createdBy).to.exist;
24
+ expect(dateSortedBy).to.not.exist;
25
+ });
26
+ it('should not render with created-by but date element', async () => {
27
+ var _a, _b;
28
+ const el = await fixture(html `<item-tile></item-tile>`);
29
+ el.sortParam = {
30
+ field: 'date',
31
+ direction: 'desc',
32
+ };
33
+ await el.updateComplete;
34
+ const createdBy = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.created-by');
35
+ const dateSortedBy = (_b = el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('.date-sorted-by');
36
+ expect(createdBy).to.not.exist;
37
+ expect(dateSortedBy).to.exist;
38
+ });
39
+ it('should not render with created-by but reviewdate element', async () => {
40
+ var _a, _b;
41
+ const el = await fixture(html `<item-tile></item-tile>`);
42
+ el.sortParam = {
43
+ field: 'reviewdate',
44
+ direction: 'desc',
45
+ };
46
+ await el.updateComplete;
47
+ const createdBy = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.created-by');
48
+ const dateSortedBy = (_b = el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('.date-sorted-by');
49
+ expect(createdBy).to.not.exist;
50
+ expect(dateSortedBy).to.exist;
51
+ });
52
+ it('should not render with created-by but publicdate element', async () => {
53
+ var _a, _b;
54
+ const el = await fixture(html `<item-tile></item-tile>`);
55
+ el.sortParam = {
56
+ field: 'publicdate',
57
+ direction: 'desc',
58
+ };
59
+ await el.updateComplete;
60
+ const createdBy = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.created-by');
61
+ const dateSortedBy = (_b = el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('.date-sorted-by');
62
+ expect(createdBy).to.not.exist;
63
+ expect(dateSortedBy).to.exist;
64
+ });
65
+ it('should render with created-by when sorting not related to date', async () => {
66
+ var _a, _b, _c;
67
+ const el = await fixture(html `<item-tile></item-tile>`);
68
+ el.sortParam = {
69
+ field: 'addeddate',
70
+ direction: 'asc',
71
+ };
72
+ await el.updateComplete;
73
+ const itemInfo = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.item-info');
74
+ const createdBy = (_b = el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('.created-by');
75
+ const dateSortedBy = (_c = el.shadowRoot) === null || _c === void 0 ? void 0 : _c.querySelector('.date-sorted-by');
76
+ expect(itemInfo).to.exist;
77
+ expect(createdBy).to.not.exist;
78
+ expect(dateSortedBy).to.exist;
79
+ });
80
+ it('should render with created-by when sort field id not like date', async () => {
81
+ var _a, _b, _c;
82
+ const el = await fixture(html `<item-tile></item-tile>`);
83
+ el.sortParam = {
84
+ field: 'week',
85
+ direction: 'asc',
86
+ };
87
+ await el.updateComplete;
88
+ const itemInfo = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.item-info');
89
+ const createdBy = (_b = el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('.created-by');
90
+ const dateSortedBy = (_c = el.shadowRoot) === null || _c === void 0 ? void 0 : _c.querySelector('.date-sorted-by');
91
+ expect(itemInfo).to.exist;
92
+ expect(dateSortedBy).to.not.exist; // it should be exist because this is not related to date sort
93
+ expect(createdBy).to.exist;
94
+ });
95
+ });
96
+ //# sourceMappingURL=item-tile.test.js.map