@internetarchive/collection-browser 1.14.17-beta.5 → 1.14.18-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (352) hide show
  1. package/.editorconfig +29 -29
  2. package/.husky/pre-commit +4 -4
  3. package/LICENSE +661 -661
  4. package/README.md +83 -83
  5. package/dist/index.d.ts +12 -11
  6. package/dist/index.js +12 -11
  7. package/dist/index.js.map +1 -1
  8. package/dist/src/app-root.d.ts +83 -83
  9. package/dist/src/app-root.js +438 -489
  10. package/dist/src/app-root.js.map +1 -1
  11. package/dist/src/assets/img/icons/arrow-left.d.ts +2 -2
  12. package/dist/src/assets/img/icons/arrow-left.js +2 -2
  13. package/dist/src/assets/img/icons/arrow-right.d.ts +2 -2
  14. package/dist/src/assets/img/icons/arrow-right.js +2 -2
  15. package/dist/src/assets/img/icons/chevron.d.ts +2 -2
  16. package/dist/src/assets/img/icons/chevron.js +2 -2
  17. package/dist/src/assets/img/icons/contract.d.ts +2 -2
  18. package/dist/src/assets/img/icons/contract.js +2 -2
  19. package/dist/src/assets/img/icons/empty-query.d.ts +2 -2
  20. package/dist/src/assets/img/icons/empty-query.js +2 -2
  21. package/dist/src/assets/img/icons/expand.d.ts +2 -2
  22. package/dist/src/assets/img/icons/expand.js +2 -2
  23. package/dist/src/assets/img/icons/eye-closed.d.ts +2 -2
  24. package/dist/src/assets/img/icons/eye-closed.js +2 -2
  25. package/dist/src/assets/img/icons/eye.d.ts +2 -2
  26. package/dist/src/assets/img/icons/eye.js +2 -2
  27. package/dist/src/assets/img/icons/favorite-filled.d.ts +1 -1
  28. package/dist/src/assets/img/icons/favorite-filled.js +2 -2
  29. package/dist/src/assets/img/icons/login-required.d.ts +1 -1
  30. package/dist/src/assets/img/icons/login-required.js +2 -2
  31. package/dist/src/assets/img/icons/mediatype/account.d.ts +1 -1
  32. package/dist/src/assets/img/icons/mediatype/account.js +2 -2
  33. package/dist/src/assets/img/icons/mediatype/audio.d.ts +1 -1
  34. package/dist/src/assets/img/icons/mediatype/audio.js +2 -2
  35. package/dist/src/assets/img/icons/mediatype/collection.d.ts +1 -1
  36. package/dist/src/assets/img/icons/mediatype/collection.js +2 -2
  37. package/dist/src/assets/img/icons/mediatype/data.d.ts +1 -1
  38. package/dist/src/assets/img/icons/mediatype/data.js +2 -2
  39. package/dist/src/assets/img/icons/mediatype/etree.d.ts +1 -1
  40. package/dist/src/assets/img/icons/mediatype/etree.js +2 -2
  41. package/dist/src/assets/img/icons/mediatype/film.d.ts +1 -1
  42. package/dist/src/assets/img/icons/mediatype/film.js +2 -2
  43. package/dist/src/assets/img/icons/mediatype/images.d.ts +1 -1
  44. package/dist/src/assets/img/icons/mediatype/images.js +2 -2
  45. package/dist/src/assets/img/icons/mediatype/radio.d.ts +1 -1
  46. package/dist/src/assets/img/icons/mediatype/radio.js +2 -2
  47. package/dist/src/assets/img/icons/mediatype/search.d.ts +1 -1
  48. package/dist/src/assets/img/icons/mediatype/search.js +2 -2
  49. package/dist/src/assets/img/icons/mediatype/software.d.ts +1 -1
  50. package/dist/src/assets/img/icons/mediatype/software.js +2 -2
  51. package/dist/src/assets/img/icons/mediatype/texts.d.ts +1 -1
  52. package/dist/src/assets/img/icons/mediatype/texts.js +2 -2
  53. package/dist/src/assets/img/icons/mediatype/tv.d.ts +1 -1
  54. package/dist/src/assets/img/icons/mediatype/tv.js +2 -2
  55. package/dist/src/assets/img/icons/mediatype/video.d.ts +1 -1
  56. package/dist/src/assets/img/icons/mediatype/video.js +2 -2
  57. package/dist/src/assets/img/icons/mediatype/web.d.ts +1 -1
  58. package/dist/src/assets/img/icons/mediatype/web.js +2 -2
  59. package/dist/src/assets/img/icons/null-result.d.ts +2 -2
  60. package/dist/src/assets/img/icons/null-result.js +2 -2
  61. package/dist/src/assets/img/icons/restricted.d.ts +1 -1
  62. package/dist/src/assets/img/icons/restricted.js +2 -2
  63. package/dist/src/assets/img/icons/reviews.d.ts +1 -1
  64. package/dist/src/assets/img/icons/reviews.js +2 -2
  65. package/dist/src/assets/img/icons/upload.d.ts +1 -1
  66. package/dist/src/assets/img/icons/upload.js +2 -2
  67. package/dist/src/assets/img/icons/views.d.ts +1 -1
  68. package/dist/src/assets/img/icons/views.js +2 -2
  69. package/dist/src/circular-activity-indicator.d.ts +5 -5
  70. package/dist/src/circular-activity-indicator.js +17 -17
  71. package/dist/src/collection-browser.d.ts +384 -406
  72. package/dist/src/collection-browser.js +1342 -1363
  73. package/dist/src/collection-browser.js.map +1 -1
  74. package/dist/src/collection-facets/facet-row.d.ts +30 -30
  75. package/dist/src/collection-facets/facet-row.js +114 -114
  76. package/dist/src/collection-facets/facet-tombstone-row.d.ts +5 -5
  77. package/dist/src/collection-facets/facet-tombstone-row.js +15 -15
  78. package/dist/src/collection-facets/facets-template.d.ts +17 -17
  79. package/dist/src/collection-facets/facets-template.js +114 -114
  80. package/dist/src/collection-facets/more-facets-content.d.ts +70 -70
  81. package/dist/src/collection-facets/more-facets-content.js +354 -369
  82. package/dist/src/collection-facets/more-facets-content.js.map +1 -1
  83. package/dist/src/collection-facets/more-facets-pagination.d.ts +36 -36
  84. package/dist/src/collection-facets/more-facets-pagination.js +196 -196
  85. package/dist/src/collection-facets/toggle-switch.d.ts +41 -41
  86. package/dist/src/collection-facets/toggle-switch.js +94 -94
  87. package/dist/src/collection-facets.d.ts +103 -103
  88. package/dist/src/collection-facets.js +513 -510
  89. package/dist/src/collection-facets.js.map +1 -1
  90. package/dist/src/data-source/collection-browser-data-source-interface.d.ts +217 -0
  91. package/dist/src/data-source/collection-browser-data-source-interface.js +2 -0
  92. package/dist/src/data-source/collection-browser-data-source-interface.js.map +1 -0
  93. package/dist/src/data-source/collection-browser-data-source.d.ts +352 -434
  94. package/dist/src/data-source/collection-browser-data-source.js +911 -800
  95. package/dist/src/data-source/collection-browser-data-source.js.map +1 -1
  96. package/dist/src/data-source/collection-browser-query-state.d.ts +43 -0
  97. package/dist/src/data-source/collection-browser-query-state.js +2 -0
  98. package/dist/src/data-source/collection-browser-query-state.js.map +1 -0
  99. package/dist/src/data-source/models.d.ts +28 -62
  100. package/dist/src/data-source/models.js +8 -1
  101. package/dist/src/data-source/models.js.map +1 -1
  102. package/dist/src/empty-placeholder.d.ts +23 -23
  103. package/dist/src/empty-placeholder.js +74 -74
  104. package/dist/src/expanded-date-picker.d.ts +43 -43
  105. package/dist/src/expanded-date-picker.js +109 -109
  106. package/dist/src/language-code-handler/language-code-handler.d.ts +37 -37
  107. package/dist/src/language-code-handler/language-code-handler.js +26 -26
  108. package/dist/src/language-code-handler/language-code-mapping.d.ts +1 -1
  109. package/dist/src/language-code-handler/language-code-mapping.js +562 -562
  110. package/dist/src/manage/manage-bar.d.ts +26 -26
  111. package/dist/src/manage/manage-bar.js +53 -53
  112. package/dist/src/manage/manage-bar.js.map +1 -1
  113. package/dist/src/mediatype/mediatype-config.d.ts +3 -3
  114. package/dist/src/mediatype/mediatype-config.js +91 -91
  115. package/dist/src/models.d.ts +197 -180
  116. package/dist/src/models.js +380 -269
  117. package/dist/src/models.js.map +1 -1
  118. package/dist/src/restoration-state-handler.d.ts +70 -70
  119. package/dist/src/restoration-state-handler.js +355 -355
  120. package/dist/src/sort-filter-bar/alpha-bar-tooltip.d.ts +6 -6
  121. package/dist/src/sort-filter-bar/alpha-bar-tooltip.js +24 -24
  122. package/dist/src/sort-filter-bar/alpha-bar.d.ts +21 -21
  123. package/dist/src/sort-filter-bar/alpha-bar.js +128 -128
  124. package/dist/src/sort-filter-bar/img/compact.d.ts +1 -1
  125. package/dist/src/sort-filter-bar/img/compact.js +2 -2
  126. package/dist/src/sort-filter-bar/img/list.d.ts +1 -1
  127. package/dist/src/sort-filter-bar/img/list.js +2 -2
  128. package/dist/src/sort-filter-bar/img/sort-toggle-disabled.d.ts +1 -1
  129. package/dist/src/sort-filter-bar/img/sort-toggle-disabled.js +2 -2
  130. package/dist/src/sort-filter-bar/img/sort-toggle-down.d.ts +1 -1
  131. package/dist/src/sort-filter-bar/img/sort-toggle-down.js +2 -2
  132. package/dist/src/sort-filter-bar/img/sort-toggle-up.d.ts +1 -1
  133. package/dist/src/sort-filter-bar/img/sort-toggle-up.js +2 -2
  134. package/dist/src/sort-filter-bar/img/sort-triangle.d.ts +1 -1
  135. package/dist/src/sort-filter-bar/img/sort-triangle.js +2 -2
  136. package/dist/src/sort-filter-bar/img/tile.d.ts +1 -1
  137. package/dist/src/sort-filter-bar/img/tile.js +2 -2
  138. package/dist/src/sort-filter-bar/sort-filter-bar.d.ts +210 -210
  139. package/dist/src/sort-filter-bar/sort-filter-bar.js +653 -652
  140. package/dist/src/sort-filter-bar/sort-filter-bar.js.map +1 -1
  141. package/dist/src/styles/item-image-styles.d.ts +8 -8
  142. package/dist/src/styles/item-image-styles.js +9 -9
  143. package/dist/src/styles/sr-only.d.ts +1 -1
  144. package/dist/src/styles/sr-only.js +2 -2
  145. package/dist/src/tiles/base-tile-component.d.ts +19 -19
  146. package/dist/src/tiles/base-tile-component.js +63 -63
  147. package/dist/src/tiles/collection-browser-loading-tile.d.ts +5 -5
  148. package/dist/src/tiles/collection-browser-loading-tile.js +15 -15
  149. package/dist/src/tiles/grid/account-tile.d.ts +18 -18
  150. package/dist/src/tiles/grid/account-tile.js +72 -72
  151. package/dist/src/tiles/grid/collection-tile.d.ts +15 -15
  152. package/dist/src/tiles/grid/collection-tile.js +80 -80
  153. package/dist/src/tiles/grid/item-tile.d.ts +28 -27
  154. package/dist/src/tiles/grid/item-tile.js +162 -135
  155. package/dist/src/tiles/grid/item-tile.js.map +1 -1
  156. package/dist/src/tiles/grid/search-tile.d.ts +10 -10
  157. package/dist/src/tiles/grid/search-tile.js +51 -51
  158. package/dist/src/tiles/grid/styles/tile-grid-shared-styles.d.ts +1 -1
  159. package/dist/src/tiles/grid/styles/tile-grid-shared-styles.js +8 -8
  160. package/dist/src/tiles/grid/tile-stats.d.ts +11 -11
  161. package/dist/src/tiles/grid/tile-stats.js +58 -53
  162. package/dist/src/tiles/grid/tile-stats.js.map +1 -1
  163. package/dist/src/tiles/hover/hover-pane-controller.d.ts +219 -219
  164. package/dist/src/tiles/hover/hover-pane-controller.js +352 -352
  165. package/dist/src/tiles/hover/tile-hover-pane.d.ts +15 -15
  166. package/dist/src/tiles/hover/tile-hover-pane.js +38 -38
  167. package/dist/src/tiles/image-block.d.ts +17 -17
  168. package/dist/src/tiles/image-block.js +73 -73
  169. package/dist/src/tiles/item-image.d.ts +39 -36
  170. package/dist/src/tiles/item-image.js +155 -127
  171. package/dist/src/tiles/item-image.js.map +1 -1
  172. package/dist/src/tiles/list/tile-list-compact-header.d.ts +6 -6
  173. package/dist/src/tiles/list/tile-list-compact-header.js +38 -38
  174. package/dist/src/tiles/list/tile-list-compact.d.ts +15 -15
  175. package/dist/src/tiles/list/tile-list-compact.js +115 -115
  176. package/dist/src/tiles/list/tile-list-compact.js.map +1 -1
  177. package/dist/src/tiles/list/tile-list.d.ts +47 -46
  178. package/dist/src/tiles/list/tile-list.js +327 -296
  179. package/dist/src/tiles/list/tile-list.js.map +1 -1
  180. package/dist/src/tiles/mediatype-icon.d.ts +9 -9
  181. package/dist/src/tiles/mediatype-icon.js +47 -47
  182. package/dist/src/tiles/overlay/icon-overlay.d.ts +10 -10
  183. package/dist/src/tiles/overlay/icon-overlay.js +40 -40
  184. package/dist/src/tiles/overlay/icon-text-overlay.d.ts +9 -9
  185. package/dist/src/tiles/overlay/icon-text-overlay.js +38 -38
  186. package/dist/src/tiles/overlay/text-overlay.d.ts +10 -10
  187. package/dist/src/tiles/overlay/text-overlay.js +42 -42
  188. package/dist/src/tiles/text-snippet-block.d.ts +27 -27
  189. package/dist/src/tiles/text-snippet-block.js +73 -73
  190. package/dist/src/tiles/tile-dispatcher.d.ts +64 -64
  191. package/dist/src/tiles/tile-dispatcher.js +232 -231
  192. package/dist/src/tiles/tile-dispatcher.js.map +1 -1
  193. package/dist/src/tiles/tile-display-value-provider.d.ts +47 -43
  194. package/dist/src/tiles/tile-display-value-provider.js +94 -80
  195. package/dist/src/tiles/tile-display-value-provider.js.map +1 -1
  196. package/dist/src/utils/analytics-events.d.ts +25 -25
  197. package/dist/src/utils/analytics-events.js +27 -27
  198. package/dist/src/utils/array-equals.d.ts +4 -4
  199. package/dist/src/utils/array-equals.js +10 -10
  200. package/dist/src/utils/collapse-repeated-quotes.d.ts +11 -0
  201. package/dist/src/utils/collapse-repeated-quotes.js +14 -0
  202. package/dist/src/utils/collapse-repeated-quotes.js.map +1 -0
  203. package/dist/src/utils/format-count.d.ts +7 -7
  204. package/dist/src/utils/format-count.js +76 -76
  205. package/dist/src/utils/format-date.d.ts +2 -2
  206. package/dist/src/utils/format-date.js +25 -25
  207. package/dist/src/utils/format-unit-size.d.ts +2 -2
  208. package/dist/src/utils/format-unit-size.js +33 -33
  209. package/dist/src/utils/local-date-from-utc.d.ts +9 -9
  210. package/dist/src/utils/local-date-from-utc.js +15 -15
  211. package/dist/src/utils/log.d.ts +7 -0
  212. package/dist/src/utils/log.js +16 -0
  213. package/dist/src/utils/log.js.map +1 -0
  214. package/dist/src/utils/resolve-mediatype.d.ts +8 -0
  215. package/dist/src/utils/resolve-mediatype.js +24 -0
  216. package/dist/src/utils/resolve-mediatype.js.map +1 -0
  217. package/dist/src/utils/sha1.d.ts +2 -2
  218. package/dist/src/utils/sha1.js +8 -8
  219. package/dist/test/collection-browser.test.d.ts +1 -1
  220. package/dist/test/collection-browser.test.js +1211 -1149
  221. package/dist/test/collection-browser.test.js.map +1 -1
  222. package/dist/test/collection-facets/facet-row.test.d.ts +1 -1
  223. package/dist/test/collection-facets/facet-row.test.js +203 -203
  224. package/dist/test/collection-facets/facets-template.test.d.ts +1 -1
  225. package/dist/test/collection-facets/facets-template.test.js +105 -105
  226. package/dist/test/collection-facets/more-facets-content.test.d.ts +1 -1
  227. package/dist/test/collection-facets/more-facets-content.test.js +133 -133
  228. package/dist/test/collection-facets/more-facets-content.test.js.map +1 -1
  229. package/dist/test/collection-facets/more-facets-pagination.test.d.ts +1 -1
  230. package/dist/test/collection-facets/more-facets-pagination.test.js +117 -117
  231. package/dist/test/collection-facets/toggle-switch.test.d.ts +1 -1
  232. package/dist/test/collection-facets/toggle-switch.test.js +73 -73
  233. package/dist/test/collection-facets.test.d.ts +2 -2
  234. package/dist/test/collection-facets.test.js +653 -648
  235. package/dist/test/collection-facets.test.js.map +1 -1
  236. package/dist/test/data-source/collection-browser-data-source.test.d.ts +1 -0
  237. package/dist/test/data-source/collection-browser-data-source.test.js +80 -0
  238. package/dist/test/data-source/collection-browser-data-source.test.js.map +1 -0
  239. package/dist/test/empty-placeholder.test.d.ts +1 -1
  240. package/dist/test/empty-placeholder.test.js +63 -63
  241. package/dist/test/expanded-date-picker.test.d.ts +1 -1
  242. package/dist/test/expanded-date-picker.test.js +95 -95
  243. package/dist/test/icon-overlay.test.d.ts +1 -1
  244. package/dist/test/icon-overlay.test.js +24 -24
  245. package/dist/test/image-block.test.d.ts +1 -1
  246. package/dist/test/image-block.test.js +48 -48
  247. package/dist/test/item-image.test.d.ts +1 -1
  248. package/dist/test/item-image.test.js +85 -86
  249. package/dist/test/item-image.test.js.map +1 -1
  250. package/dist/test/manage/manage-bar.test.d.ts +1 -1
  251. package/dist/test/manage/manage-bar.test.js +72 -72
  252. package/dist/test/mediatype-config.test.d.ts +1 -1
  253. package/dist/test/mediatype-config.test.js +16 -16
  254. package/dist/test/mocks/mock-analytics-handler.d.ts +10 -10
  255. package/dist/test/mocks/mock-analytics-handler.js +15 -15
  256. package/dist/test/mocks/mock-search-responses.d.ts +24 -21
  257. package/dist/test/mocks/mock-search-responses.js +840 -709
  258. package/dist/test/mocks/mock-search-responses.js.map +1 -1
  259. package/dist/test/mocks/mock-search-service.d.ts +15 -15
  260. package/dist/test/mocks/mock-search-service.js +53 -50
  261. package/dist/test/mocks/mock-search-service.js.map +1 -1
  262. package/dist/test/restoration-state-handler.test.d.ts +1 -1
  263. package/dist/test/restoration-state-handler.test.js +270 -270
  264. package/dist/test/sort-filter-bar/alpha-bar-tooltip.test.d.ts +1 -1
  265. package/dist/test/sort-filter-bar/alpha-bar-tooltip.test.js +12 -12
  266. package/dist/test/sort-filter-bar/alpha-bar.test.d.ts +1 -1
  267. package/dist/test/sort-filter-bar/alpha-bar.test.js +73 -73
  268. package/dist/test/sort-filter-bar/sort-filter-bar.test.d.ts +1 -1
  269. package/dist/test/sort-filter-bar/sort-filter-bar.test.js +418 -418
  270. package/dist/test/text-overlay.test.d.ts +1 -1
  271. package/dist/test/text-overlay.test.js +48 -48
  272. package/dist/test/text-snippet-block.test.d.ts +1 -1
  273. package/dist/test/text-snippet-block.test.js +57 -57
  274. package/dist/test/tile-stats.test.d.ts +1 -1
  275. package/dist/test/tile-stats.test.js +95 -33
  276. package/dist/test/tile-stats.test.js.map +1 -1
  277. package/dist/test/tiles/grid/account-tile.test.d.ts +1 -1
  278. package/dist/test/tiles/grid/account-tile.test.js +76 -76
  279. package/dist/test/tiles/grid/collection-tile.test.d.ts +1 -1
  280. package/dist/test/tiles/grid/collection-tile.test.js +73 -73
  281. package/dist/test/tiles/grid/item-tile.test.d.ts +1 -1
  282. package/dist/test/tiles/grid/item-tile.test.js +298 -254
  283. package/dist/test/tiles/grid/item-tile.test.js.map +1 -1
  284. package/dist/test/tiles/grid/search-tile.test.d.ts +1 -1
  285. package/dist/test/tiles/grid/search-tile.test.js +51 -51
  286. package/dist/test/tiles/hover/hover-pane-controller.test.d.ts +1 -1
  287. package/dist/test/tiles/hover/hover-pane-controller.test.js +259 -258
  288. package/dist/test/tiles/hover/hover-pane-controller.test.js.map +1 -1
  289. package/dist/test/tiles/hover/tile-hover-pane.test.d.ts +1 -1
  290. package/dist/test/tiles/hover/tile-hover-pane.test.js +13 -13
  291. package/dist/test/tiles/list/tile-list-compact.test.d.ts +1 -1
  292. package/dist/test/tiles/list/tile-list-compact.test.js +143 -143
  293. package/dist/test/tiles/list/tile-list.test.d.ts +1 -1
  294. package/dist/test/tiles/list/tile-list.test.js +283 -239
  295. package/dist/test/tiles/list/tile-list.test.js.map +1 -1
  296. package/dist/test/tiles/tile-dispatcher.test.d.ts +1 -1
  297. package/dist/test/tiles/tile-dispatcher.test.js +106 -94
  298. package/dist/test/tiles/tile-dispatcher.test.js.map +1 -1
  299. package/dist/test/tiles/tile-display-value-provider.test.d.ts +1 -1
  300. package/dist/test/tiles/tile-display-value-provider.test.js +141 -141
  301. package/dist/test/utils/array-equals.test.d.ts +1 -1
  302. package/dist/test/utils/array-equals.test.js +26 -26
  303. package/dist/test/utils/format-count.test.d.ts +1 -1
  304. package/dist/test/utils/format-count.test.js +23 -23
  305. package/dist/test/utils/format-date.test.d.ts +1 -1
  306. package/dist/test/utils/format-date.test.js +17 -17
  307. package/dist/test/utils/format-unit-size.test.d.ts +1 -1
  308. package/dist/test/utils/format-unit-size.test.js +17 -17
  309. package/dist/test/utils/local-date-from-utc.test.d.ts +1 -1
  310. package/dist/test/utils/local-date-from-utc.test.js +26 -26
  311. package/index.ts +3 -5
  312. package/local.archive.org.cert +86 -86
  313. package/local.archive.org.key +27 -27
  314. package/package.json +3 -4
  315. package/renovate.json +6 -6
  316. package/src/app-root.ts +30 -85
  317. package/src/collection-browser.ts +112 -139
  318. package/src/collection-facets/more-facets-content.ts +0 -19
  319. package/src/collection-facets.ts +6 -4
  320. package/src/data-source/collection-browser-data-source-interface.ts +272 -0
  321. package/src/data-source/collection-browser-data-source.ts +314 -379
  322. package/src/data-source/collection-browser-query-state.ts +54 -0
  323. package/src/data-source/models.ts +8 -45
  324. package/src/manage/manage-bar.ts +1 -1
  325. package/src/models.ts +164 -3
  326. package/src/sort-filter-bar/sort-filter-bar.ts +2 -1
  327. package/src/tiles/grid/item-tile.ts +36 -1
  328. package/src/tiles/grid/tile-stats.ts +12 -7
  329. package/src/tiles/item-image.ts +28 -0
  330. package/src/tiles/list/tile-list-compact.ts +1 -1
  331. package/src/tiles/list/tile-list.ts +43 -5
  332. package/src/tiles/tile-dispatcher.ts +2 -1
  333. package/src/tiles/tile-display-value-provider.ts +20 -2
  334. package/src/utils/collapse-repeated-quotes.ts +13 -0
  335. package/src/utils/log.ts +16 -0
  336. package/src/utils/resolve-mediatype.ts +26 -0
  337. package/test/collection-browser.test.ts +161 -50
  338. package/test/collection-facets/more-facets-content.test.ts +4 -2
  339. package/test/collection-facets.test.ts +5 -0
  340. package/test/data-source/collection-browser-data-source.test.ts +103 -0
  341. package/test/item-image.test.ts +34 -36
  342. package/test/mocks/mock-search-responses.ts +144 -0
  343. package/test/mocks/mock-search-service.ts +6 -0
  344. package/test/tile-stats.test.ts +104 -0
  345. package/test/tiles/grid/item-tile.test.ts +55 -0
  346. package/test/tiles/hover/hover-pane-controller.test.ts +19 -17
  347. package/test/tiles/list/tile-list.test.ts +55 -0
  348. package/test/tiles/tile-dispatcher.test.ts +13 -0
  349. package/tsconfig.json +21 -21
  350. package/web-dev-server.config.mjs +30 -30
  351. package/web-test-runner.config.mjs +41 -41
  352. package/types/sentry.d.ts +0 -1
@@ -1,43 +1,43 @@
1
- import { ModalManager, ModalManagerMode, } from '@internetarchive/modal-manager';
2
- import { expect, fixture } from '@open-wc/testing';
3
- import { html } from 'lit';
4
- import sinon from 'sinon';
5
- import '../src/expanded-date-picker';
6
- import { MockAnalyticsHandler } from './mocks/mock-analytics-handler';
7
- import { analyticsActions, analyticsCategories, } from '../src/utils/analytics-events';
8
- describe('Expanded Date Picker', () => {
9
- it('should render with a date picker and Apply button', async () => {
10
- var _a, _b;
11
- const el = await fixture(html `<expanded-date-picker></expanded-date-picker>`);
12
- expect((_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('#date-picker')).to.exist;
13
- expect((_b = el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('#apply-btn')).to.exist;
14
- });
15
- it('should update its min/max selected date when date picker changes', async () => {
16
- var _a;
1
+ import { ModalManager, ModalManagerMode, } from '@internetarchive/modal-manager';
2
+ import { expect, fixture } from '@open-wc/testing';
3
+ import { html } from 'lit';
4
+ import sinon from 'sinon';
5
+ import '../src/expanded-date-picker';
6
+ import { MockAnalyticsHandler } from './mocks/mock-analytics-handler';
7
+ import { analyticsActions, analyticsCategories, } from '../src/utils/analytics-events';
8
+ describe('Expanded Date Picker', () => {
9
+ it('should render with a date picker and Apply button', async () => {
10
+ var _a, _b;
11
+ const el = await fixture(html `<expanded-date-picker></expanded-date-picker>`);
12
+ expect((_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('#date-picker')).to.exist;
13
+ expect((_b = el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('#apply-btn')).to.exist;
14
+ });
15
+ it('should update its min/max selected date when date picker changes', async () => {
16
+ var _a;
17
17
  const el = await fixture(html `<expanded-date-picker
18
18
  .buckets=${[1, 2, 3, 4, 5]}
19
19
  .minDate=${'1'}
20
20
  .maxDate=${'5'}
21
21
  .minSelectedDate=${'1'}
22
22
  .maxSelectedDate=${'5'}
23
- ></expanded-date-picker>`);
24
- const datePicker = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('#date-picker');
25
- expect(datePicker).to.exist;
26
- datePicker.minSelectedDate = '2';
27
- datePicker.maxSelectedDate = '4';
28
- datePicker.dispatchEvent(new CustomEvent('histogramDateRangeUpdated', {
29
- detail: {
30
- minDate: datePicker.minSelectedDate,
31
- maxDate: datePicker.maxSelectedDate,
32
- },
33
- }));
34
- await el.updateComplete;
35
- expect(el.minSelectedDate).to.equal('2');
36
- expect(el.maxSelectedDate).to.equal('4');
37
- });
38
- it('should emit an event when a date range is applied', async () => {
39
- var _a;
40
- const applySpy = sinon.spy();
23
+ ></expanded-date-picker>`);
24
+ const datePicker = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('#date-picker');
25
+ expect(datePicker).to.exist;
26
+ datePicker.minSelectedDate = '2';
27
+ datePicker.maxSelectedDate = '4';
28
+ datePicker.dispatchEvent(new CustomEvent('histogramDateRangeUpdated', {
29
+ detail: {
30
+ minDate: datePicker.minSelectedDate,
31
+ maxDate: datePicker.maxSelectedDate,
32
+ },
33
+ }));
34
+ await el.updateComplete;
35
+ expect(el.minSelectedDate).to.equal('2');
36
+ expect(el.maxSelectedDate).to.equal('4');
37
+ });
38
+ it('should emit an event when a date range is applied', async () => {
39
+ var _a;
40
+ const applySpy = sinon.spy();
41
41
  const el = await fixture(html `<expanded-date-picker
42
42
  .buckets=${[1, 2, 3, 4, 5]}
43
43
  .minDate=${'1'}
@@ -45,19 +45,19 @@ describe('Expanded Date Picker', () => {
45
45
  .minSelectedDate=${'1'}
46
46
  .maxSelectedDate=${'5'}
47
47
  @histogramDateRangeApplied=${applySpy}
48
- ></expanded-date-picker>`);
49
- const applyBtn = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('#apply-btn');
50
- expect(applyBtn).to.exist;
51
- applyBtn.click();
52
- await el.updateComplete;
53
- expect(applySpy.callCount).to.equal(1);
54
- expect(applySpy.calledWithMatch({ detail: { minDate: '1', maxDate: '5' } }));
55
- });
56
- it('should close its modal and emit close event when date range applied', async () => {
57
- var _a;
58
- const modalManager = new ModalManager();
59
- modalManager.mode = ModalManagerMode.Open;
60
- const modalClosed = sinon.spy();
48
+ ></expanded-date-picker>`);
49
+ const applyBtn = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('#apply-btn');
50
+ expect(applyBtn).to.exist;
51
+ applyBtn.click();
52
+ await el.updateComplete;
53
+ expect(applySpy.callCount).to.equal(1);
54
+ expect(applySpy.calledWithMatch({ detail: { minDate: '1', maxDate: '5' } }));
55
+ });
56
+ it('should close its modal and emit close event when date range applied', async () => {
57
+ var _a;
58
+ const modalManager = new ModalManager();
59
+ modalManager.mode = ModalManagerMode.Open;
60
+ const modalClosed = sinon.spy();
61
61
  const el = await fixture(html `<expanded-date-picker
62
62
  .buckets=${[1, 2, 3, 4, 5]}
63
63
  .minDate=${'1'}
@@ -66,16 +66,16 @@ describe('Expanded Date Picker', () => {
66
66
  .maxSelectedDate=${'5'}
67
67
  .modalManager=${modalManager}
68
68
  @modalClosed=${modalClosed}
69
- ></expanded-date-picker>`);
70
- const applyBtn = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('#apply-btn');
71
- expect(applyBtn).to.exist;
72
- applyBtn.click();
73
- await el.updateComplete;
74
- expect(modalManager.getMode()).to.equal(ModalManagerMode.Closed);
75
- expect(modalClosed.callCount).to.equal(1);
76
- });
77
- it('closes the modal when Esc key is pressed', async () => {
78
- var _a;
69
+ ></expanded-date-picker>`);
70
+ const applyBtn = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('#apply-btn');
71
+ expect(applyBtn).to.exist;
72
+ applyBtn.click();
73
+ await el.updateComplete;
74
+ expect(modalManager.getMode()).to.equal(ModalManagerMode.Closed);
75
+ expect(modalClosed.callCount).to.equal(1);
76
+ });
77
+ it('closes the modal when Esc key is pressed', async () => {
78
+ var _a;
79
79
  const el = await fixture(html `<expanded-date-picker
80
80
  .buckets=${[1, 2, 3, 4, 5]}
81
81
  .minDate=${'1'}
@@ -83,47 +83,47 @@ describe('Expanded Date Picker', () => {
83
83
  .minSelectedDate=${'1'}
84
84
  .maxSelectedDate=${'5'}
85
85
  .modalManager=${new ModalManager()}
86
- ></expanded-date-picker>`);
87
- const closeModalSpy = sinon.spy(el.modalManager, 'closeModal');
88
- // Dispatch an Esc keydown event
89
- document.dispatchEvent(new KeyboardEvent('keydown', { key: 'Escape' }));
90
- await el.updateComplete;
91
- expect(closeModalSpy.callCount).to.equal(1);
92
- expect((_a = el.modalManager) === null || _a === void 0 ? void 0 : _a.classList.contains('expanded-date-picker')).to.be
93
- .false;
94
- });
95
- it('sends analytics when date range is applied', async () => {
96
- var _a, _b;
97
- const analyticsHandler = new MockAnalyticsHandler();
86
+ ></expanded-date-picker>`);
87
+ const closeModalSpy = sinon.spy(el.modalManager, 'closeModal');
88
+ // Dispatch an Esc keydown event
89
+ document.dispatchEvent(new KeyboardEvent('keydown', { key: 'Escape' }));
90
+ await el.updateComplete;
91
+ expect(closeModalSpy.callCount).to.equal(1);
92
+ expect((_a = el.modalManager) === null || _a === void 0 ? void 0 : _a.classList.contains('expanded-date-picker')).to.be
93
+ .false;
94
+ });
95
+ it('sends analytics when date range is applied', async () => {
96
+ var _a, _b;
97
+ const analyticsHandler = new MockAnalyticsHandler();
98
98
  const el = await fixture(html `<expanded-date-picker
99
99
  .buckets=${[1, 2, 3, 4, 5]}
100
100
  .minDate=${'1'}
101
101
  .maxDate=${'5'}
102
102
  .analyticsHandler=${analyticsHandler}
103
- ></expanded-date-picker>`);
104
- const applyBtn = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('#apply-btn');
105
- expect(applyBtn).to.exist;
106
- applyBtn.click();
107
- await el.updateComplete;
108
- expect(analyticsHandler.callCategory).to.equal(analyticsCategories.default);
109
- expect(analyticsHandler.callAction).to.equal(analyticsActions.histogramChangedFromModal);
110
- expect(analyticsHandler.callLabel).to.equal(window.location.href);
111
- const datePicker = (_b = el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('#date-picker');
112
- expect(datePicker).to.exist;
113
- datePicker.minSelectedDate = '2';
114
- datePicker.maxSelectedDate = '5';
115
- datePicker.dispatchEvent(new CustomEvent('histogramDateRangeUpdated', {
116
- detail: {
117
- minDate: datePicker.minSelectedDate,
118
- maxDate: datePicker.maxSelectedDate,
119
- },
120
- }));
121
- await el.updateComplete;
122
- applyBtn.click();
123
- await el.updateComplete;
124
- expect(analyticsHandler.callCategory).to.equal(analyticsCategories.default);
125
- expect(analyticsHandler.callAction).to.equal(analyticsActions.histogramChangedFromModal);
126
- expect(analyticsHandler.callLabel).to.equal(window.location.href);
127
- });
128
- });
103
+ ></expanded-date-picker>`);
104
+ const applyBtn = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('#apply-btn');
105
+ expect(applyBtn).to.exist;
106
+ applyBtn.click();
107
+ await el.updateComplete;
108
+ expect(analyticsHandler.callCategory).to.equal(analyticsCategories.default);
109
+ expect(analyticsHandler.callAction).to.equal(analyticsActions.histogramChangedFromModal);
110
+ expect(analyticsHandler.callLabel).to.equal(window.location.href);
111
+ const datePicker = (_b = el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('#date-picker');
112
+ expect(datePicker).to.exist;
113
+ datePicker.minSelectedDate = '2';
114
+ datePicker.maxSelectedDate = '5';
115
+ datePicker.dispatchEvent(new CustomEvent('histogramDateRangeUpdated', {
116
+ detail: {
117
+ minDate: datePicker.minSelectedDate,
118
+ maxDate: datePicker.maxSelectedDate,
119
+ },
120
+ }));
121
+ await el.updateComplete;
122
+ applyBtn.click();
123
+ await el.updateComplete;
124
+ expect(analyticsHandler.callCategory).to.equal(analyticsCategories.default);
125
+ expect(analyticsHandler.callAction).to.equal(analyticsActions.histogramChangedFromModal);
126
+ expect(analyticsHandler.callLabel).to.equal(window.location.href);
127
+ });
128
+ });
129
129
  //# sourceMappingURL=expanded-date-picker.test.js.map
@@ -1 +1 @@
1
- import '../src/tiles/overlay/icon-overlay';
1
+ import '../src/tiles/overlay/icon-overlay';
@@ -1,31 +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;
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
8
  const el = await fixture(html `
9
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;
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
16
  const el = await fixture(html `
17
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;
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
24
  const el = await fixture(html `
25
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
- });
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
31
  //# sourceMappingURL=icon-overlay.test.js.map
@@ -1 +1 @@
1
- import '../src/tiles/image-block';
1
+ import '../src/tiles/image-block';
@@ -1,16 +1,16 @@
1
- /* eslint-disable import/no-duplicates */
2
- import { expect, fixture } from '@open-wc/testing';
3
- import { html } from 'lit';
4
- import '../src/tiles/image-block';
5
- describe('Image block component', () => {
6
- it('should render component grid display mode', async () => {
7
- var _a, _b, _c;
1
+ /* eslint-disable import/no-duplicates */
2
+ import { expect, fixture } from '@open-wc/testing';
3
+ import { html } from 'lit';
4
+ import '../src/tiles/image-block';
5
+ describe('Image block component', () => {
6
+ it('should render component grid display mode', async () => {
7
+ var _a, _b, _c;
8
8
  const el = await fixture(html `
9
9
  <image-block
10
- .model=${{
11
- loggedInRequired: true,
12
- contentWarning: true,
13
- identifier: 'goody',
10
+ .model=${{
11
+ loggedInRequired: true,
12
+ contentWarning: true,
13
+ identifier: 'goody',
14
14
  }}
15
15
  .baseImageUrl=${'https://archive.org'}
16
16
  .isCompactTile=${false}
@@ -19,22 +19,22 @@ describe('Image block component', () => {
19
19
  .loggedIn=${false}
20
20
  >
21
21
  </image-block>
22
- `);
23
- const viewSize = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.grid');
24
- const itemImage = (_b = el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('item-image');
25
- const textOverlay = (_c = el.shadowRoot) === null || _c === void 0 ? void 0 : _c.querySelector('text-overlay');
26
- expect(viewSize).to.exist;
27
- expect(itemImage).to.exist;
28
- expect(textOverlay).to.exist;
29
- });
30
- it('should render component list display mode', async () => {
31
- var _a, _b, _c;
22
+ `);
23
+ const viewSize = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.grid');
24
+ const itemImage = (_b = el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('item-image');
25
+ const textOverlay = (_c = el.shadowRoot) === null || _c === void 0 ? void 0 : _c.querySelector('text-overlay');
26
+ expect(viewSize).to.exist;
27
+ expect(itemImage).to.exist;
28
+ expect(textOverlay).to.exist;
29
+ });
30
+ it('should render component list display mode', async () => {
31
+ var _a, _b, _c;
32
32
  const el = await fixture(html `
33
33
  <image-block
34
- .model=${{
35
- loggedInRequired: true,
36
- contentWarning: true,
37
- identifier: 'goody',
34
+ .model=${{
35
+ loggedInRequired: true,
36
+ contentWarning: true,
37
+ identifier: 'goody',
38
38
  }}
39
39
  .baseImageUrl=${'https://archive.org'}
40
40
  .isCompactTile=${false}
@@ -43,22 +43,22 @@ describe('Image block component', () => {
43
43
  .loggedIn=${false}
44
44
  >
45
45
  </image-block>
46
- `);
47
- const viewSize = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.list.desktop');
48
- const itemImage = (_b = el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('item-image');
49
- const iconOverlay = (_c = el.shadowRoot) === null || _c === void 0 ? void 0 : _c.querySelector('icon-overlay');
50
- expect(viewSize).to.exist;
51
- expect(itemImage).to.exist;
52
- expect(iconOverlay).to.exist;
53
- });
54
- it('should render component compact display mode', async () => {
55
- var _a, _b, _c;
46
+ `);
47
+ const viewSize = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.list.desktop');
48
+ const itemImage = (_b = el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('item-image');
49
+ const iconOverlay = (_c = el.shadowRoot) === null || _c === void 0 ? void 0 : _c.querySelector('icon-overlay');
50
+ expect(viewSize).to.exist;
51
+ expect(itemImage).to.exist;
52
+ expect(iconOverlay).to.exist;
53
+ });
54
+ it('should render component compact display mode', async () => {
55
+ var _a, _b, _c;
56
56
  const el = await fixture(html `
57
57
  <image-block
58
- .model=${{
59
- loggedInRequired: true,
60
- contentWarning: true,
61
- identifier: 'goody',
58
+ .model=${{
59
+ loggedInRequired: true,
60
+ contentWarning: true,
61
+ identifier: 'goody',
62
62
  }}
63
63
  .baseImageUrl=${'https://archive.org'}
64
64
  .isCompactTile=${true}
@@ -67,13 +67,13 @@ describe('Image block component', () => {
67
67
  .loggedIn=${false}
68
68
  >
69
69
  </image-block>
70
- `);
71
- const viewSize = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.list-compact.desktop');
72
- const itemImage = (_b = el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('item-image');
73
- const iconOverlay = (_c = el.shadowRoot) === null || _c === void 0 ? void 0 : _c.querySelector('icon-overlay');
74
- expect(viewSize).to.exist;
75
- expect(itemImage).to.exist;
76
- expect(iconOverlay).to.exist;
77
- });
78
- });
70
+ `);
71
+ const viewSize = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.list-compact.desktop');
72
+ const itemImage = (_b = el.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('item-image');
73
+ const iconOverlay = (_c = el.shadowRoot) === null || _c === void 0 ? void 0 : _c.querySelector('icon-overlay');
74
+ expect(viewSize).to.exist;
75
+ expect(itemImage).to.exist;
76
+ expect(iconOverlay).to.exist;
77
+ });
78
+ });
79
79
  //# sourceMappingURL=image-block.test.js.map
@@ -1 +1 @@
1
- import '../src/tiles/item-image';
1
+ import '../src/tiles/item-image';
@@ -1,45 +1,44 @@
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
- checked: false,
8
- collections: [],
9
- commentCount: 0,
10
- creators: [],
11
- favCount: 0,
12
- identifier: '18730130BloomfieldRecordCompleteIssue',
13
- itemCount: 0,
14
- mediatype: 'texts',
15
- subjects: [],
16
- title: 'Sample Waveform',
17
- viewCount: 0,
18
- loginRequired: false,
19
- contentWarning: false,
20
- collectionFilesCount: 0,
21
- collectionSize: 0,
22
- };
23
- const testAudioModel = {
24
- checked: false,
25
- collections: [],
26
- commentCount: 0,
27
- creators: [],
28
- favCount: 0,
29
- identifier: 'dwd2015-01-24',
30
- itemCount: 0,
31
- mediatype: 'audio',
32
- subjects: [],
33
- title: 'Sample Waveform',
34
- viewCount: 0,
35
- loginRequired: false,
36
- contentWarning: false,
37
- collectionFilesCount: 0,
38
- collectionSize: 0,
39
- };
40
- describe('ItemImage component', () => {
41
- it('should render initial component', async () => {
42
- var _a, _b;
1
+ /* eslint-disable import/no-duplicates */
2
+ import { expect, fixture } from '@open-wc/testing';
3
+ import { html } from 'lit';
4
+ import { TileModel } from '../src/models';
5
+ import '../src/tiles/item-image';
6
+ const baseImageUrl = 'https://archive.org';
7
+ const testBookModel = new TileModel({});
8
+ testBookModel.checked = false;
9
+ testBookModel.collections = [];
10
+ testBookModel.commentCount = 0;
11
+ testBookModel.creators = [];
12
+ testBookModel.favCount = 0;
13
+ testBookModel.identifier = '18730130BloomfieldRecordCompleteIssue';
14
+ testBookModel.itemCount = 0;
15
+ testBookModel.mediatype = 'texts';
16
+ testBookModel.subjects = [];
17
+ testBookModel.title = 'Sample Waveform';
18
+ testBookModel.viewCount = 0;
19
+ testBookModel.loginRequired = false;
20
+ testBookModel.contentWarning = false;
21
+ testBookModel.collectionFilesCount = 0;
22
+ testBookModel.collectionSize = 0;
23
+ const testAudioModel = new TileModel({});
24
+ testAudioModel.checked = false;
25
+ testAudioModel.collections = [];
26
+ testAudioModel.commentCount = 0;
27
+ testAudioModel.creators = [];
28
+ testAudioModel.favCount = 0;
29
+ testAudioModel.identifier = 'dwd2015-01-24';
30
+ testAudioModel.itemCount = 0;
31
+ testAudioModel.mediatype = 'audio';
32
+ testAudioModel.subjects = [];
33
+ testAudioModel.title = 'Sample Waveform';
34
+ testAudioModel.viewCount = 0;
35
+ testAudioModel.loginRequired = false;
36
+ testAudioModel.contentWarning = false;
37
+ testAudioModel.collectionFilesCount = 0;
38
+ testAudioModel.collectionSize = 0;
39
+ describe('ItemImage component', () => {
40
+ it('should render initial component', async () => {
41
+ var _a, _b;
43
42
  const el = await fixture(html `
44
43
  <item-image
45
44
  .isListTile=${false}
@@ -48,14 +47,14 @@ describe('ItemImage component', () => {
48
47
  .baseImageUrl=${baseImageUrl}
49
48
  >
50
49
  </item-image>
51
- `);
52
- const dropShadow = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.drop-shadow');
53
- const imgClassName = (_b = dropShadow === null || dropShadow === void 0 ? void 0 : dropShadow.querySelector('img')) === null || _b === void 0 ? void 0 : _b.className;
54
- expect(dropShadow).to.exist;
55
- expect(imgClassName).to.eql(' contain ');
56
- });
57
- it('should render component if mediatype is waveform', async () => {
58
- var _a;
50
+ `);
51
+ const dropShadow = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.drop-shadow');
52
+ const imgClassName = (_b = dropShadow === null || dropShadow === void 0 ? void 0 : dropShadow.querySelector('img')) === null || _b === void 0 ? void 0 : _b.className;
53
+ expect(dropShadow).to.exist;
54
+ expect(imgClassName).to.eql(' contain ');
55
+ });
56
+ it('should render component if mediatype is waveform', async () => {
57
+ var _a;
59
58
  const el = await fixture(html `
60
59
  <item-image
61
60
  .isListTile=${false}
@@ -64,19 +63,19 @@ describe('ItemImage component', () => {
64
63
  .baseImageUrl=${baseImageUrl}
65
64
  >
66
65
  </item-image>
67
- `);
68
- const dropShadow = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.drop-shadow');
69
- const image = dropShadow === null || dropShadow === void 0 ? void 0 : dropShadow.querySelector('img');
70
- expect(dropShadow).to.exist;
71
- expect(image).to.exist;
72
- // simulate image onLoad event check if image className is waveform
73
- setTimeout(() => {
74
- const imgClassName = image === null || image === void 0 ? void 0 : image.className;
75
- expect(imgClassName).to.eql(' waveform ');
76
- }, 1000);
77
- });
78
- it('should not fetch image with undefined base url', async () => {
79
- var _a;
66
+ `);
67
+ const dropShadow = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.drop-shadow');
68
+ const image = dropShadow === null || dropShadow === void 0 ? void 0 : dropShadow.querySelector('img');
69
+ expect(dropShadow).to.exist;
70
+ expect(image).to.exist;
71
+ // simulate image onLoad event check if image className is waveform
72
+ setTimeout(() => {
73
+ const imgClassName = image === null || image === void 0 ? void 0 : image.className;
74
+ expect(imgClassName).to.eql(' waveform ');
75
+ }, 1000);
76
+ });
77
+ it('should not fetch image with undefined base url', async () => {
78
+ var _a;
80
79
  const el = await fixture(html `
81
80
  <item-image
82
81
  .isListTile=${false}
@@ -84,14 +83,14 @@ describe('ItemImage component', () => {
84
83
  .model=${testBookModel}
85
84
  >
86
85
  </item-image>
87
- `);
88
- // Doesn't set the image src if base url is undefined
89
- const img = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('img');
90
- expect(img).to.exist;
91
- expect(img === null || img === void 0 ? void 0 : img.getAttribute('src')).not.to.exist;
92
- });
93
- it('should not fetch image with undefined model', async () => {
94
- var _a;
86
+ `);
87
+ // Doesn't set the image src if base url is undefined
88
+ const img = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('img');
89
+ expect(img).to.exist;
90
+ expect(img === null || img === void 0 ? void 0 : img.getAttribute('src')).not.to.exist;
91
+ });
92
+ it('should not fetch image with undefined model', async () => {
93
+ var _a;
95
94
  const el = await fixture(html `
96
95
  <item-image
97
96
  .isListTile=${false}
@@ -99,14 +98,14 @@ describe('ItemImage component', () => {
99
98
  .baseImageUrl=${baseImageUrl}
100
99
  >
101
100
  </item-image>
102
- `);
103
- // Doesn't set the image src if model is not present
104
- const img = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('img');
105
- expect(img).to.exist;
106
- expect(img === null || img === void 0 ? void 0 : img.getAttribute('src')).not.to.exist;
107
- });
108
- it('should not fetch image with undefined identifier', async () => {
109
- var _a;
101
+ `);
102
+ // Doesn't set the image src if model is not present
103
+ const img = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('img');
104
+ expect(img).to.exist;
105
+ expect(img === null || img === void 0 ? void 0 : img.getAttribute('src')).not.to.exist;
106
+ });
107
+ it('should not fetch image with undefined identifier', async () => {
108
+ var _a;
110
109
  const el = await fixture(html `
111
110
  <item-image
112
111
  .isListTile=${false}
@@ -115,11 +114,11 @@ describe('ItemImage component', () => {
115
114
  .baseImageUrl=${baseImageUrl}
116
115
  >
117
116
  </item-image>
118
- `);
119
- // Doesn't set the image src if identifier is not present
120
- const img = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('img');
121
- expect(img).to.exist;
122
- expect(img === null || img === void 0 ? void 0 : img.getAttribute('src')).not.to.exist;
123
- });
124
- });
117
+ `);
118
+ // Doesn't set the image src if identifier is not present
119
+ const img = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('img');
120
+ expect(img).to.exist;
121
+ expect(img === null || img === void 0 ? void 0 : img.getAttribute('src')).not.to.exist;
122
+ });
123
+ });
125
124
  //# sourceMappingURL=item-image.test.js.map