@internetarchive/collection-browser 4.7.1-alpha-webdev9189.0 → 4.8.1-alpha-webdev9189.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 (351) hide show
  1. package/dist/src/app-root.js +0 -2
  2. package/dist/src/app-root.js.map +1 -1
  3. package/dist/src/assets/img/icons/check.d.ts +2 -0
  4. package/dist/src/assets/img/icons/check.js +5 -0
  5. package/dist/src/assets/img/icons/check.js.map +1 -0
  6. package/dist/src/collection-facets/facet-row-template.d.ts +38 -0
  7. package/dist/src/collection-facets/facet-row-template.js +200 -0
  8. package/dist/src/collection-facets/facet-row-template.js.map +1 -0
  9. package/dist/src/collection-facets/facet-row.js +11 -186
  10. package/dist/src/collection-facets/facet-row.js.map +1 -1
  11. package/dist/src/collection-facets/models.d.ts +7 -2
  12. package/dist/src/collection-facets/models.js +7 -2
  13. package/dist/src/collection-facets/models.js.map +1 -1
  14. package/dist/src/collection-facets/more-facets-content.d.ts +87 -21
  15. package/dist/src/collection-facets/more-facets-content.js +477 -200
  16. package/dist/src/collection-facets/more-facets-content.js.map +1 -1
  17. package/dist/src/collection-facets/more-facets-scroller.d.ts +85 -0
  18. package/dist/src/collection-facets/more-facets-scroller.js +428 -0
  19. package/dist/src/collection-facets/more-facets-scroller.js.map +1 -0
  20. package/dist/src/collection-facets/page-window.d.ts +73 -0
  21. package/dist/src/collection-facets/page-window.js +202 -0
  22. package/dist/src/collection-facets/page-window.js.map +1 -0
  23. package/dist/src/collection-facets/toggle-switch.js +1 -0
  24. package/dist/src/collection-facets/toggle-switch.js.map +1 -1
  25. package/dist/src/models.d.ts +4 -0
  26. package/dist/src/models.js +16 -0
  27. package/dist/src/models.js.map +1 -1
  28. package/dist/src/utils/normalize-filter-text.d.ts +28 -0
  29. package/dist/src/utils/normalize-filter-text.js +35 -0
  30. package/dist/src/utils/normalize-filter-text.js.map +1 -0
  31. package/package.json +7 -1
  32. package/.editorconfig +0 -29
  33. package/.github/workflows/ci.yml +0 -29
  34. package/.github/workflows/gh-pages-main.yml +0 -41
  35. package/.github/workflows/npm-publish.yml +0 -42
  36. package/.github/workflows/pr-preview.yml +0 -40
  37. package/.husky/pre-commit +0 -1
  38. package/.prettierignore +0 -1
  39. package/dist/src/collection-facets/more-facets-pagination.d.ts +0 -36
  40. package/dist/src/collection-facets/more-facets-pagination.js +0 -260
  41. package/dist/src/collection-facets/more-facets-pagination.js.map +0 -1
  42. package/dist/test/collection-browser.test.d.ts +0 -1
  43. package/dist/test/collection-browser.test.js +0 -1849
  44. package/dist/test/collection-browser.test.js.map +0 -1
  45. package/dist/test/collection-facets/facet-row.test.d.ts +0 -1
  46. package/dist/test/collection-facets/facet-row.test.js +0 -291
  47. package/dist/test/collection-facets/facet-row.test.js.map +0 -1
  48. package/dist/test/collection-facets/facets-template.test.d.ts +0 -1
  49. package/dist/test/collection-facets/facets-template.test.js +0 -95
  50. package/dist/test/collection-facets/facets-template.test.js.map +0 -1
  51. package/dist/test/collection-facets/more-facets-content.test.d.ts +0 -1
  52. package/dist/test/collection-facets/more-facets-content.test.js +0 -159
  53. package/dist/test/collection-facets/more-facets-content.test.js.map +0 -1
  54. package/dist/test/collection-facets/more-facets-pagination.test.d.ts +0 -1
  55. package/dist/test/collection-facets/more-facets-pagination.test.js +0 -126
  56. package/dist/test/collection-facets/more-facets-pagination.test.js.map +0 -1
  57. package/dist/test/collection-facets/toggle-switch.test.d.ts +0 -1
  58. package/dist/test/collection-facets/toggle-switch.test.js +0 -99
  59. package/dist/test/collection-facets/toggle-switch.test.js.map +0 -1
  60. package/dist/test/collection-facets.test.d.ts +0 -2
  61. package/dist/test/collection-facets.test.js +0 -728
  62. package/dist/test/collection-facets.test.js.map +0 -1
  63. package/dist/test/data-source/collection-browser-data-source.test.d.ts +0 -1
  64. package/dist/test/data-source/collection-browser-data-source.test.js +0 -154
  65. package/dist/test/data-source/collection-browser-data-source.test.js.map +0 -1
  66. package/dist/test/empty-placeholder.test.d.ts +0 -1
  67. package/dist/test/empty-placeholder.test.js +0 -57
  68. package/dist/test/empty-placeholder.test.js.map +0 -1
  69. package/dist/test/expanded-date-picker.test.d.ts +0 -1
  70. package/dist/test/expanded-date-picker.test.js +0 -124
  71. package/dist/test/expanded-date-picker.test.js.map +0 -1
  72. package/dist/test/icon-overlay.test.d.ts +0 -1
  73. package/dist/test/icon-overlay.test.js +0 -31
  74. package/dist/test/icon-overlay.test.js.map +0 -1
  75. package/dist/test/image-block.test.d.ts +0 -1
  76. package/dist/test/image-block.test.js +0 -208
  77. package/dist/test/image-block.test.js.map +0 -1
  78. package/dist/test/item-image.test.d.ts +0 -1
  79. package/dist/test/item-image.test.js +0 -187
  80. package/dist/test/item-image.test.js.map +0 -1
  81. package/dist/test/manage/manage-bar.test.d.ts +0 -3
  82. package/dist/test/manage/manage-bar.test.js +0 -216
  83. package/dist/test/manage/manage-bar.test.js.map +0 -1
  84. package/dist/test/manage/remove-items-modal-content.test.d.ts +0 -1
  85. package/dist/test/manage/remove-items-modal-content.test.js +0 -60
  86. package/dist/test/manage/remove-items-modal-content.test.js.map +0 -1
  87. package/dist/test/mediatype-config.test.d.ts +0 -1
  88. package/dist/test/mediatype-config.test.js +0 -11
  89. package/dist/test/mediatype-config.test.js.map +0 -1
  90. package/dist/test/mocks/mock-analytics-handler.d.ts +0 -10
  91. package/dist/test/mocks/mock-analytics-handler.js +0 -16
  92. package/dist/test/mocks/mock-analytics-handler.js.map +0 -1
  93. package/dist/test/mocks/mock-search-responses.d.ts +0 -31
  94. package/dist/test/mocks/mock-search-responses.js +0 -1241
  95. package/dist/test/mocks/mock-search-responses.js.map +0 -1
  96. package/dist/test/mocks/mock-search-service.d.ts +0 -16
  97. package/dist/test/mocks/mock-search-service.js +0 -64
  98. package/dist/test/mocks/mock-search-service.js.map +0 -1
  99. package/dist/test/restoration-state-handler.test.d.ts +0 -1
  100. package/dist/test/restoration-state-handler.test.js +0 -335
  101. package/dist/test/restoration-state-handler.test.js.map +0 -1
  102. package/dist/test/review-block.test.d.ts +0 -1
  103. package/dist/test/review-block.test.js +0 -46
  104. package/dist/test/review-block.test.js.map +0 -1
  105. package/dist/test/sort-filter-bar/alpha-bar-tooltip.test.d.ts +0 -1
  106. package/dist/test/sort-filter-bar/alpha-bar-tooltip.test.js +0 -12
  107. package/dist/test/sort-filter-bar/alpha-bar-tooltip.test.js.map +0 -1
  108. package/dist/test/sort-filter-bar/alpha-bar.test.d.ts +0 -1
  109. package/dist/test/sort-filter-bar/alpha-bar.test.js +0 -68
  110. package/dist/test/sort-filter-bar/alpha-bar.test.js.map +0 -1
  111. package/dist/test/sort-filter-bar/sort-filter-bar.test.d.ts +0 -1
  112. package/dist/test/sort-filter-bar/sort-filter-bar.test.js +0 -326
  113. package/dist/test/sort-filter-bar/sort-filter-bar.test.js.map +0 -1
  114. package/dist/test/text-overlay.test.d.ts +0 -1
  115. package/dist/test/text-overlay.test.js +0 -43
  116. package/dist/test/text-overlay.test.js.map +0 -1
  117. package/dist/test/text-snippet-block.test.d.ts +0 -1
  118. package/dist/test/text-snippet-block.test.js +0 -58
  119. package/dist/test/text-snippet-block.test.js.map +0 -1
  120. package/dist/test/tile-stats.test.d.ts +0 -1
  121. package/dist/test/tile-stats.test.js +0 -167
  122. package/dist/test/tile-stats.test.js.map +0 -1
  123. package/dist/test/tiles/grid/account-tile.test.d.ts +0 -1
  124. package/dist/test/tiles/grid/account-tile.test.js +0 -96
  125. package/dist/test/tiles/grid/account-tile.test.js.map +0 -1
  126. package/dist/test/tiles/grid/collection-tile.test.d.ts +0 -1
  127. package/dist/test/tiles/grid/collection-tile.test.js +0 -90
  128. package/dist/test/tiles/grid/collection-tile.test.js.map +0 -1
  129. package/dist/test/tiles/grid/item-tile.test.d.ts +0 -1
  130. package/dist/test/tiles/grid/item-tile.test.js +0 -400
  131. package/dist/test/tiles/grid/item-tile.test.js.map +0 -1
  132. package/dist/test/tiles/grid/search-tile.test.d.ts +0 -1
  133. package/dist/test/tiles/grid/search-tile.test.js +0 -62
  134. package/dist/test/tiles/grid/search-tile.test.js.map +0 -1
  135. package/dist/test/tiles/hover/hover-pane-controller.test.d.ts +0 -1
  136. package/dist/test/tiles/hover/hover-pane-controller.test.js +0 -351
  137. package/dist/test/tiles/hover/hover-pane-controller.test.js.map +0 -1
  138. package/dist/test/tiles/hover/tile-hover-pane.test.d.ts +0 -1
  139. package/dist/test/tiles/hover/tile-hover-pane.test.js +0 -53
  140. package/dist/test/tiles/hover/tile-hover-pane.test.js.map +0 -1
  141. package/dist/test/tiles/list/tile-list-compact-header.test.d.ts +0 -1
  142. package/dist/test/tiles/list/tile-list-compact-header.test.js +0 -36
  143. package/dist/test/tiles/list/tile-list-compact-header.test.js.map +0 -1
  144. package/dist/test/tiles/list/tile-list-compact.test.d.ts +0 -1
  145. package/dist/test/tiles/list/tile-list-compact.test.js +0 -237
  146. package/dist/test/tiles/list/tile-list-compact.test.js.map +0 -1
  147. package/dist/test/tiles/list/tile-list.test.d.ts +0 -1
  148. package/dist/test/tiles/list/tile-list.test.js +0 -460
  149. package/dist/test/tiles/list/tile-list.test.js.map +0 -1
  150. package/dist/test/tiles/tile-dispatcher.test.d.ts +0 -1
  151. package/dist/test/tiles/tile-dispatcher.test.js +0 -246
  152. package/dist/test/tiles/tile-dispatcher.test.js.map +0 -1
  153. package/dist/test/tiles/tile-display-value-provider.test.d.ts +0 -1
  154. package/dist/test/tiles/tile-display-value-provider.test.js +0 -142
  155. package/dist/test/tiles/tile-display-value-provider.test.js.map +0 -1
  156. package/dist/test/tiles/tile-mediatype-icon.test.d.ts +0 -1
  157. package/dist/test/tiles/tile-mediatype-icon.test.js +0 -133
  158. package/dist/test/tiles/tile-mediatype-icon.test.js.map +0 -1
  159. package/dist/test/utils/array-equals.test.d.ts +0 -1
  160. package/dist/test/utils/array-equals.test.js +0 -27
  161. package/dist/test/utils/array-equals.test.js.map +0 -1
  162. package/dist/test/utils/format-count.test.d.ts +0 -1
  163. package/dist/test/utils/format-count.test.js +0 -24
  164. package/dist/test/utils/format-count.test.js.map +0 -1
  165. package/dist/test/utils/format-date.test.d.ts +0 -1
  166. package/dist/test/utils/format-date.test.js +0 -61
  167. package/dist/test/utils/format-date.test.js.map +0 -1
  168. package/dist/test/utils/format-unit-size.test.d.ts +0 -1
  169. package/dist/test/utils/format-unit-size.test.js +0 -18
  170. package/dist/test/utils/format-unit-size.test.js.map +0 -1
  171. package/dist/test/utils/local-date-from-utc.test.d.ts +0 -1
  172. package/dist/test/utils/local-date-from-utc.test.js +0 -27
  173. package/dist/test/utils/local-date-from-utc.test.js.map +0 -1
  174. package/eslint.config.mjs +0 -53
  175. package/index.html +0 -24
  176. package/index.ts +0 -29
  177. package/local.archive.org.cert +0 -86
  178. package/local.archive.org.key +0 -27
  179. package/pnpm-workspace.yaml +0 -30
  180. package/renovate.json +0 -6
  181. package/src/app-root.ts +0 -1284
  182. package/src/assets/img/icons/arrow-left.ts +0 -10
  183. package/src/assets/img/icons/arrow-right.ts +0 -10
  184. package/src/assets/img/icons/chevron.ts +0 -4
  185. package/src/assets/img/icons/close-circle-dark.ts +0 -5
  186. package/src/assets/img/icons/contract.ts +0 -9
  187. package/src/assets/img/icons/empty-query.ts +0 -5
  188. package/src/assets/img/icons/expand.ts +0 -9
  189. package/src/assets/img/icons/eye-closed.ts +0 -5
  190. package/src/assets/img/icons/eye.ts +0 -5
  191. package/src/assets/img/icons/favorite-filled.ts +0 -10
  192. package/src/assets/img/icons/favorite-unfilled.ts +0 -9
  193. package/src/assets/img/icons/filter.ts +0 -10
  194. package/src/assets/img/icons/login-required.ts +0 -18
  195. package/src/assets/img/icons/mediatype/account.ts +0 -14
  196. package/src/assets/img/icons/mediatype/audio.ts +0 -14
  197. package/src/assets/img/icons/mediatype/collection.ts +0 -12
  198. package/src/assets/img/icons/mediatype/data.ts +0 -15
  199. package/src/assets/img/icons/mediatype/etree.ts +0 -14
  200. package/src/assets/img/icons/mediatype/film.ts +0 -14
  201. package/src/assets/img/icons/mediatype/images.ts +0 -13
  202. package/src/assets/img/icons/mediatype/radio.ts +0 -15
  203. package/src/assets/img/icons/mediatype/search.ts +0 -14
  204. package/src/assets/img/icons/mediatype/software.ts +0 -13
  205. package/src/assets/img/icons/mediatype/texts.ts +0 -13
  206. package/src/assets/img/icons/mediatype/tv-commercial.ts +0 -12
  207. package/src/assets/img/icons/mediatype/tv-fact-check.ts +0 -12
  208. package/src/assets/img/icons/mediatype/tv-quote.ts +0 -12
  209. package/src/assets/img/icons/mediatype/tv.ts +0 -14
  210. package/src/assets/img/icons/mediatype/video.ts +0 -14
  211. package/src/assets/img/icons/mediatype/web.ts +0 -13
  212. package/src/assets/img/icons/null-result.ts +0 -5
  213. package/src/assets/img/icons/quote.ts +0 -7
  214. package/src/assets/img/icons/restricted.ts +0 -13
  215. package/src/assets/img/icons/reviews.ts +0 -11
  216. package/src/assets/img/icons/upload.ts +0 -12
  217. package/src/assets/img/icons/views.ts +0 -11
  218. package/src/circular-activity-indicator.ts +0 -64
  219. package/src/collection-browser.ts +0 -3187
  220. package/src/collection-facets/facet-row.ts +0 -309
  221. package/src/collection-facets/facet-tombstone-row.ts +0 -40
  222. package/src/collection-facets/facets-template.ts +0 -85
  223. package/src/collection-facets/models.ts +0 -10
  224. package/src/collection-facets/more-facets-content.ts +0 -644
  225. package/src/collection-facets/more-facets-pagination.ts +0 -294
  226. package/src/collection-facets/smart-facets/dedupe.ts +0 -44
  227. package/src/collection-facets/smart-facets/heuristics/browser-language/browser-language-heuristic.ts +0 -27
  228. package/src/collection-facets/smart-facets/heuristics/index.ts +0 -3
  229. package/src/collection-facets/smart-facets/heuristics/query-keywords/query-keywords-heuristic.ts +0 -17
  230. package/src/collection-facets/smart-facets/heuristics/query-keywords/query-keywords-map.ts +0 -70
  231. package/src/collection-facets/smart-facets/heuristics/wikidata/wikidata-entity-map.ts +0 -79
  232. package/src/collection-facets/smart-facets/heuristics/wikidata/wikidata-heuristic.ts +0 -93
  233. package/src/collection-facets/smart-facets/models.ts +0 -36
  234. package/src/collection-facets/smart-facets/smart-facet-bar.ts +0 -437
  235. package/src/collection-facets/smart-facets/smart-facet-button.ts +0 -145
  236. package/src/collection-facets/smart-facets/smart-facet-dropdown.ts +0 -185
  237. package/src/collection-facets/smart-facets/smart-facet-equals.ts +0 -16
  238. package/src/collection-facets/smart-facets/smart-facet-heuristics.ts +0 -26
  239. package/src/collection-facets/toggle-switch.ts +0 -174
  240. package/src/collection-facets.ts +0 -1013
  241. package/src/data-source/collection-browser-data-source-interface.ts +0 -351
  242. package/src/data-source/collection-browser-data-source.ts +0 -1474
  243. package/src/data-source/collection-browser-query-state.ts +0 -60
  244. package/src/data-source/models.ts +0 -56
  245. package/src/empty-placeholder.ts +0 -192
  246. package/src/expanded-date-picker.ts +0 -191
  247. package/src/language-code-handler/language-code-handler.ts +0 -64
  248. package/src/language-code-handler/language-code-mapping.ts +0 -564
  249. package/src/manage/manage-bar.ts +0 -276
  250. package/src/manage/remove-items-modal-content.ts +0 -102
  251. package/src/mediatype/mediatype-config.ts +0 -146
  252. package/src/models.ts +0 -895
  253. package/src/restoration-state-handler.ts +0 -550
  254. package/src/sort-filter-bar/alpha-bar-tooltip.ts +0 -53
  255. package/src/sort-filter-bar/alpha-bar.ts +0 -252
  256. package/src/sort-filter-bar/img/compact.ts +0 -5
  257. package/src/sort-filter-bar/img/list.ts +0 -5
  258. package/src/sort-filter-bar/img/sort-toggle-disabled.ts +0 -15
  259. package/src/sort-filter-bar/img/sort-toggle-down.ts +0 -17
  260. package/src/sort-filter-bar/img/sort-toggle-up.ts +0 -17
  261. package/src/sort-filter-bar/img/sort-triangle.ts +0 -5
  262. package/src/sort-filter-bar/img/tile.ts +0 -5
  263. package/src/sort-filter-bar/sort-filter-bar.ts +0 -734
  264. package/src/styles/ia-button.ts +0 -139
  265. package/src/styles/item-image-styles.ts +0 -124
  266. package/src/styles/sr-only.ts +0 -18
  267. package/src/styles/tile-action-styles.ts +0 -59
  268. package/src/tiles/base-tile-component.ts +0 -124
  269. package/src/tiles/collection-browser-loading-tile.ts +0 -26
  270. package/src/tiles/grid/account-tile.ts +0 -113
  271. package/src/tiles/grid/collection-tile.ts +0 -184
  272. package/src/tiles/grid/item-tile.ts +0 -347
  273. package/src/tiles/grid/search-tile.ts +0 -90
  274. package/src/tiles/grid/styles/tile-grid-shared-styles.ts +0 -130
  275. package/src/tiles/grid/tile-stats.ts +0 -211
  276. package/src/tiles/hover/hover-pane-controller.ts +0 -638
  277. package/src/tiles/hover/tile-hover-pane.ts +0 -184
  278. package/src/tiles/image-block.ts +0 -162
  279. package/src/tiles/item-image.ts +0 -214
  280. package/src/tiles/list/tile-list-compact-header.ts +0 -112
  281. package/src/tiles/list/tile-list-compact.ts +0 -278
  282. package/src/tiles/list/tile-list.ts +0 -718
  283. package/src/tiles/models.ts +0 -21
  284. package/src/tiles/overlay/icon-overlay.ts +0 -57
  285. package/src/tiles/overlay/text-overlay.ts +0 -79
  286. package/src/tiles/review-block.ts +0 -130
  287. package/src/tiles/text-snippet-block.ts +0 -132
  288. package/src/tiles/tile-dispatcher.ts +0 -637
  289. package/src/tiles/tile-display-value-provider.ts +0 -133
  290. package/src/tiles/tile-mediatype-icon.ts +0 -133
  291. package/src/utils/analytics-events.ts +0 -29
  292. package/src/utils/array-equals.ts +0 -8
  293. package/src/utils/collapse-repeated-quotes.ts +0 -13
  294. package/src/utils/date-filter-field.ts +0 -11
  295. package/src/utils/facet-utils.ts +0 -183
  296. package/src/utils/format-count.ts +0 -95
  297. package/src/utils/format-date.ts +0 -62
  298. package/src/utils/format-unit-size.ts +0 -43
  299. package/src/utils/local-date-from-utc.ts +0 -15
  300. package/src/utils/log.ts +0 -14
  301. package/src/utils/resolve-mediatype.ts +0 -26
  302. package/src/utils/sha1.ts +0 -9
  303. package/test/collection-browser.test.ts +0 -2694
  304. package/test/collection-facets/facet-row.test.ts +0 -421
  305. package/test/collection-facets/facets-template.test.ts +0 -139
  306. package/test/collection-facets/more-facets-content.test.ts +0 -231
  307. package/test/collection-facets/more-facets-pagination.test.ts +0 -201
  308. package/test/collection-facets/toggle-switch.test.ts +0 -164
  309. package/test/collection-facets.test.ts +0 -928
  310. package/test/data-source/collection-browser-data-source.test.ts +0 -193
  311. package/test/empty-placeholder.test.ts +0 -88
  312. package/test/expanded-date-picker.test.ts +0 -201
  313. package/test/icon-overlay.test.ts +0 -38
  314. package/test/image-block.test.ts +0 -247
  315. package/test/item-image.test.ts +0 -220
  316. package/test/manage/manage-bar.test.ts +0 -347
  317. package/test/manage/remove-items-modal-content.test.ts +0 -81
  318. package/test/mediatype-config.test.ts +0 -11
  319. package/test/mocks/mock-analytics-handler.ts +0 -30
  320. package/test/mocks/mock-search-responses.ts +0 -1364
  321. package/test/mocks/mock-search-service.ts +0 -134
  322. package/test/restoration-state-handler.test.ts +0 -480
  323. package/test/review-block.test.ts +0 -62
  324. package/test/sort-filter-bar/alpha-bar-tooltip.test.ts +0 -17
  325. package/test/sort-filter-bar/alpha-bar.test.ts +0 -101
  326. package/test/sort-filter-bar/sort-filter-bar.test.ts +0 -472
  327. package/test/text-overlay.test.ts +0 -55
  328. package/test/text-snippet-block.test.ts +0 -85
  329. package/test/tile-stats.test.ts +0 -191
  330. package/test/tiles/grid/account-tile.test.ts +0 -121
  331. package/test/tiles/grid/collection-tile.test.ts +0 -114
  332. package/test/tiles/grid/item-tile.test.ts +0 -520
  333. package/test/tiles/grid/search-tile.test.ts +0 -75
  334. package/test/tiles/hover/hover-pane-controller.test.ts +0 -482
  335. package/test/tiles/hover/tile-hover-pane.test.ts +0 -80
  336. package/test/tiles/list/tile-list-compact-header.test.ts +0 -43
  337. package/test/tiles/list/tile-list-compact.test.ts +0 -282
  338. package/test/tiles/list/tile-list.test.ts +0 -576
  339. package/test/tiles/tile-dispatcher.test.ts +0 -320
  340. package/test/tiles/tile-display-value-provider.test.ts +0 -172
  341. package/test/tiles/tile-mediatype-icon.test.ts +0 -160
  342. package/test/utils/array-equals.test.ts +0 -31
  343. package/test/utils/format-count.test.ts +0 -32
  344. package/test/utils/format-date.test.ts +0 -89
  345. package/test/utils/format-unit-size.test.ts +0 -21
  346. package/test/utils/local-date-from-utc.test.ts +0 -37
  347. package/tsconfig.json +0 -25
  348. package/types/dompurify.d.ts +0 -1
  349. package/vite.config.ts +0 -29
  350. package/web-dev-server.config.mjs +0 -30
  351. package/web-test-runner.config.mjs +0 -52
@@ -1,134 +0,0 @@
1
- import type { Result } from '@internetarchive/result-type';
2
- import type {
3
- SearchParams,
4
- SearchResponse,
5
- SearchServiceInterface,
6
- SearchServiceError,
7
- SearchType,
8
- } from '@internetarchive/search-service';
9
- import {
10
- getMockSuccessSingleResult,
11
- getMockSuccessMultipleResults,
12
- getMockSuccessSingleResultWithSort,
13
- getMockSuccessLoggedInResult,
14
- getMockSuccessNoPreviewResult,
15
- getMockSuccessLoggedInAndNoPreviewResult,
16
- getMockSuccessWithYearHistogramAggs,
17
- getMockSuccessWithDateHistogramAggs,
18
- getMockSuccessMultiLineDescription,
19
- getMockSuccessFirstTitleResult,
20
- getMockSuccessFirstCreatorResult,
21
- getMockErrorResult,
22
- getMockMalformedResult,
23
- getMockSuccessWithCollectionTitles,
24
- getMockSuccessWithChannelAliases,
25
- getMockSuccessWithCollectionAggregations,
26
- getMockSuccessExtraQuotedHref,
27
- getMockSuccessWithDefaultSort,
28
- getMockSuccessWithConciseDefaultSort,
29
- getMockSuccessWithDefaultFavSort,
30
- getMockSuccessWithParentCollections,
31
- getMockSuccessForTvCollection,
32
- getMockSuccessManyFields,
33
- getMockSuccessNoResults,
34
- getMockSuccessWithWebArchiveHits,
35
- getMockSuccessWithManyAggregations,
36
- getMockSuccessTvFields,
37
- getMockSuccessArchiveOrgUserResult,
38
- getMockSuccessArchiveOrgUserNoBlurResult,
39
- } from './mock-search-responses';
40
-
41
- const responses: Record<
42
- string,
43
- () => Result<SearchResponse, SearchServiceError>
44
- > = {
45
- 'single-result': getMockSuccessSingleResult,
46
- years: getMockSuccessWithYearHistogramAggs,
47
- months: getMockSuccessWithDateHistogramAggs,
48
- 'multi-line-description': getMockSuccessMultiLineDescription,
49
- loggedin: getMockSuccessLoggedInResult,
50
- 'no-preview': getMockSuccessNoPreviewResult,
51
- 'loggedin-no-preview': getMockSuccessLoggedInAndNoPreviewResult,
52
- 'archive-org-user-loggedin': getMockSuccessArchiveOrgUserResult,
53
- 'archive-org-user-loggedin-noblur': getMockSuccessArchiveOrgUserNoBlurResult,
54
- 'first-title': getMockSuccessFirstTitleResult,
55
- 'first-creator': getMockSuccessFirstCreatorResult,
56
- 'collection-titles': getMockSuccessWithCollectionTitles,
57
- 'channel-aliases': getMockSuccessWithChannelAliases,
58
- 'collection-aggregations': getMockSuccessWithCollectionAggregations,
59
- 'extra-quoted-href': getMockSuccessExtraQuotedHref,
60
- 'default-sort': getMockSuccessWithDefaultSort,
61
- 'default-sort-concise': getMockSuccessWithConciseDefaultSort,
62
- 'fav-sort': getMockSuccessWithDefaultFavSort,
63
- 'parent-collections': getMockSuccessWithParentCollections,
64
- 'tv-collection': getMockSuccessForTvCollection,
65
- 'web-archive': getMockSuccessWithWebArchiveHits,
66
- 'more-facets': getMockSuccessWithManyAggregations,
67
- 'many-fields': getMockSuccessManyFields,
68
- 'tv-fields': getMockSuccessTvFields,
69
- 'no-results': getMockSuccessNoResults,
70
- error: getMockErrorResult,
71
- malformed: getMockMalformedResult,
72
- };
73
-
74
- export class MockSearchService implements SearchServiceInterface {
75
- searchParams?: SearchParams;
76
-
77
- searchType?: SearchType;
78
-
79
- asyncResponse: boolean;
80
-
81
- asyncResponseDelay: number;
82
-
83
- resultsSpy: Function;
84
-
85
- constructor({
86
- asyncResponse = false,
87
- asyncResponseDelay = 0,
88
- resultsSpy = () => {},
89
- } = {}) {
90
- this.asyncResponse = asyncResponse;
91
- this.asyncResponseDelay = asyncResponseDelay;
92
- this.resultsSpy = resultsSpy;
93
- }
94
-
95
- async search(
96
- params: SearchParams,
97
- searchType: SearchType,
98
- ): Promise<Result<SearchResponse, SearchServiceError>> {
99
- this.searchParams = params;
100
- this.searchType = searchType;
101
-
102
- if (this.asyncResponse) {
103
- // Add an artificial 1-tick delay
104
- await new Promise(res => {
105
- setTimeout(res, this.asyncResponseDelay);
106
- });
107
- }
108
-
109
- const responseKey =
110
- (this.searchParams.query || this.searchParams.pageTarget) ?? '';
111
- const resultFn: () => Result<SearchResponse, SearchServiceError> =
112
- responses[responseKey] ?? getMockSuccessMultipleResults;
113
- let result = resultFn();
114
-
115
- // with-sort query has special handling
116
- if (this.searchParams.query === 'with-sort') {
117
- result = getMockSuccessSingleResultWithSort(this.resultsSpy);
118
- }
119
-
120
- // Apply any uid param from the request
121
- if (result.success) {
122
- (result.success.request.clientParameters as any).uid = params.uid;
123
- }
124
-
125
- return result;
126
- }
127
-
128
- async itemDetails(
129
- _: string,
130
- ): Promise<Result<SearchResponse, SearchServiceError>> {
131
- // We don't currently use the itemDetails method in collection-browser
132
- throw new Error('not implemented');
133
- }
134
- }
@@ -1,480 +0,0 @@
1
- import { SearchType } from '@internetarchive/search-service';
2
- import { expect } from '@open-wc/testing';
3
- import { SortField, getDefaultSelectedFacets } from '../src/models';
4
- import { RestorationStateHandler } from '../src/restoration-state-handler';
5
-
6
- describe('Restoration state handler', () => {
7
- it('should restore query from URL', async () => {
8
- const handler = new RestorationStateHandler({ context: 'search' });
9
-
10
- const url = new URL(window.location.href);
11
- url.search = '?query=boop';
12
- window.history.replaceState({ path: url.href }, '', url.href);
13
-
14
- const restorationState = handler.getRestorationState();
15
- expect(restorationState.baseQuery).to.equal('boop');
16
- });
17
-
18
- it('should restore default search type from URL without valid sin', async () => {
19
- const handler = new RestorationStateHandler({ context: 'search' });
20
-
21
- const url = new URL(window.location.href);
22
- url.search = '?sin=foo';
23
- window.history.replaceState({ path: url.href }, '', url.href);
24
-
25
- const restorationState = handler.getRestorationState();
26
- expect(restorationState.searchType).to.equal(SearchType.DEFAULT);
27
- });
28
-
29
- it('should restore default search type if sin explicitly empty in URL', async () => {
30
- const handler = new RestorationStateHandler({ context: 'search' });
31
-
32
- const url = new URL(window.location.href);
33
- url.search = '?sin=';
34
- window.history.replaceState({ path: url.href }, '', url.href);
35
-
36
- const restorationState = handler.getRestorationState();
37
- expect(restorationState.searchType).to.equal(SearchType.DEFAULT);
38
- });
39
-
40
- it('should restore full text search type from URL', async () => {
41
- const handler = new RestorationStateHandler({ context: 'search' });
42
-
43
- const url = new URL(window.location.href);
44
- url.search = '?sin=TXT';
45
- window.history.replaceState({ path: url.href }, '', url.href);
46
-
47
- const restorationState = handler.getRestorationState();
48
- expect(restorationState.searchType).to.equal(SearchType.FULLTEXT);
49
- });
50
-
51
- it('should restore radio search type from URL', async () => {
52
- const handler = new RestorationStateHandler({ context: 'search' });
53
-
54
- const url = new URL(window.location.href);
55
- url.search = '?sin=RADIO';
56
- window.history.replaceState({ path: url.href }, '', url.href);
57
-
58
- const restorationState = handler.getRestorationState();
59
- expect(restorationState.searchType).to.equal(SearchType.RADIO);
60
- });
61
-
62
- it('should restore TV search type from URL', async () => {
63
- const handler = new RestorationStateHandler({ context: 'search' });
64
-
65
- const url = new URL(window.location.href);
66
- url.search = '?sin=TV';
67
- window.history.replaceState({ path: url.href }, '', url.href);
68
-
69
- const restorationState = handler.getRestorationState();
70
- expect(restorationState.searchType).to.equal(SearchType.TV);
71
- });
72
-
73
- it('should restore metadata search type from URL', async () => {
74
- const handler = new RestorationStateHandler({ context: 'search' });
75
-
76
- const url = new URL(window.location.href);
77
- url.search = '?sin=MD';
78
- window.history.replaceState({ path: url.href }, '', url.href);
79
-
80
- const restorationState = handler.getRestorationState();
81
- expect(restorationState.searchType).to.equal(SearchType.METADATA);
82
- });
83
-
84
- it('should restore page number from URL', async () => {
85
- const handler = new RestorationStateHandler({ context: 'search' });
86
-
87
- const url = new URL(window.location.href);
88
- url.search = '?page=42';
89
- window.history.replaceState({ path: url.href }, '', url.href);
90
-
91
- const restorationState = handler.getRestorationState();
92
- expect(restorationState.currentPage).to.equal(42);
93
- });
94
-
95
- it('should restore selected year facets from URL', async () => {
96
- const handler = new RestorationStateHandler({ context: 'search' });
97
-
98
- const url = new URL(window.location.href);
99
- url.search = '?and[]=year:"2018"';
100
- window.history.replaceState({ path: url.href }, '', url.href);
101
-
102
- const restorationState = handler.getRestorationState();
103
- expect(restorationState.selectedFacets.year?.['2018'].state).to.equal(
104
- 'selected',
105
- );
106
- });
107
-
108
- it('should ignore unrecognized facet types in URL', async () => {
109
- const handler = new RestorationStateHandler({ context: 'search' });
110
-
111
- const url = new URL(window.location.href);
112
- url.search = '?and[]=foo:"bar"';
113
- window.history.replaceState({ path: url.href }, '', url.href);
114
-
115
- const restorationState = handler.getRestorationState();
116
- expect(restorationState.selectedFacets).to.deep.equal(
117
- getDefaultSelectedFacets(),
118
- );
119
- });
120
-
121
- it('should restore selected date range facets from URL', async () => {
122
- const handler = new RestorationStateHandler({ context: 'search' });
123
-
124
- const url = new URL(window.location.href);
125
- url.search = '?and[]=year:"2018+TO+2021"';
126
- window.history.replaceState({ path: url.href }, '', url.href);
127
-
128
- const restorationState = handler.getRestorationState();
129
- expect(restorationState.minSelectedDate).to.equal('2018');
130
- expect(restorationState.maxSelectedDate).to.equal('2021');
131
- });
132
-
133
- it('should restore creator filter from URL', async () => {
134
- const handler = new RestorationStateHandler({ context: 'search' });
135
-
136
- const url = new URL(window.location.href);
137
- url.search = '?and[]=firstCreator:F';
138
- window.history.replaceState({ path: url.href }, '', url.href);
139
-
140
- const restorationState = handler.getRestorationState();
141
- expect(restorationState.selectedCreatorFilter).to.equal('F');
142
- });
143
-
144
- it('should restore title filter from URL', async () => {
145
- const handler = new RestorationStateHandler({ context: 'search' });
146
-
147
- const url = new URL(window.location.href);
148
- url.search = '?and[]=firstTitle:F';
149
- window.history.replaceState({ path: url.href }, '', url.href);
150
-
151
- const restorationState = handler.getRestorationState();
152
- expect(restorationState.selectedTitleFilter).to.equal('F');
153
- });
154
-
155
- it('should restore other selected facets from URL', async () => {
156
- const handler = new RestorationStateHandler({ context: 'search' });
157
-
158
- const url = new URL(window.location.href);
159
- url.search = '?and[]=subject:"foo"';
160
- window.history.replaceState({ path: url.href }, '', url.href);
161
-
162
- const restorationState = handler.getRestorationState();
163
- expect(restorationState.selectedFacets.subject?.foo.state).to.equal(
164
- 'selected',
165
- );
166
- });
167
-
168
- it('should restore negative facets from URL', async () => {
169
- const handler = new RestorationStateHandler({ context: 'search' });
170
-
171
- const url = new URL(window.location.href);
172
- url.search = '?not[]=year:2018';
173
- window.history.replaceState({ path: url.href }, '', url.href);
174
-
175
- const restorationState = handler.getRestorationState();
176
- expect(restorationState.selectedFacets.year?.['2018'].state).to.equal(
177
- 'hidden',
178
- );
179
- });
180
-
181
- it('should restore multiple selected/negative facets from URL', async () => {
182
- const handler = new RestorationStateHandler({ context: 'search' });
183
-
184
- const url = new URL(window.location.href);
185
- url.search =
186
- '?and[]=collection:"foo"&and[]=collection:"bar"&not[]=collection:"baz"&not[]=collection:"boop"';
187
- window.history.replaceState({ path: url.href }, '', url.href);
188
-
189
- const restorationState = handler.getRestorationState();
190
-
191
- expect(restorationState.selectedFacets.collection?.foo.state).to.equal(
192
- 'selected',
193
- );
194
- expect(restorationState.selectedFacets.collection?.bar.state).to.equal(
195
- 'selected',
196
- );
197
-
198
- expect(restorationState.selectedFacets.collection?.baz.state).to.equal(
199
- 'hidden',
200
- );
201
- expect(restorationState.selectedFacets.collection?.boop.state).to.equal(
202
- 'hidden',
203
- );
204
- });
205
-
206
- it('negative facets take precedence if both present in URL', async () => {
207
- const handler = new RestorationStateHandler({ context: 'search' });
208
-
209
- const url = new URL(window.location.href);
210
- url.search = '?and[]=collection:"foo"&not[]=collection:"foo"';
211
- window.history.replaceState({ path: url.href }, '', url.href);
212
-
213
- const restorationState = handler.getRestorationState();
214
- expect(restorationState.selectedFacets.collection?.foo.state).to.equal(
215
- 'hidden',
216
- );
217
- });
218
-
219
- it('should restore selected facets with numbers in the square brackets', async () => {
220
- const handler = new RestorationStateHandler({ context: 'search' });
221
-
222
- const url = new URL(window.location.href);
223
- url.search = '?and[12]=subject:"foo"';
224
- window.history.replaceState({ path: url.href }, '', url.href);
225
-
226
- const restorationState = handler.getRestorationState();
227
- expect(restorationState.selectedFacets.subject?.foo.state).to.equal(
228
- 'selected',
229
- );
230
- });
231
-
232
- it('should restore negative facets with numbers in the square brackets', async () => {
233
- const handler = new RestorationStateHandler({ context: 'search' });
234
-
235
- const url = new URL(window.location.href);
236
- url.search = '?not[12]=year:2018';
237
- window.history.replaceState({ path: url.href }, '', url.href);
238
-
239
- const restorationState = handler.getRestorationState();
240
- expect(restorationState.selectedFacets.year?.['2018'].state).to.equal(
241
- 'hidden',
242
- );
243
- });
244
-
245
- it('should restore any TV clip filters from URL', async () => {
246
- const handler = new RestorationStateHandler({ context: 'search' });
247
- const url = new URL(window.location.href);
248
-
249
- // Commercials
250
- url.search = '?only_commercials=1';
251
- window.history.replaceState({ path: url.href }, '', url.href);
252
- const commercialsRestorationState = handler.getRestorationState();
253
- expect(
254
- commercialsRestorationState.selectedFacets.clip_type?.commercial.state,
255
- ).to.equal('selected');
256
-
257
- // Fact checks
258
- url.search = '?only_factchecks=1';
259
- window.history.replaceState({ path: url.href }, '', url.href);
260
- const factchecksRestorationState = handler.getRestorationState();
261
- expect(
262
- factchecksRestorationState.selectedFacets.clip_type?.['fact check'].state,
263
- ).to.equal('selected');
264
-
265
- // Quotes
266
- url.search = '?only_quotes=1';
267
- window.history.replaceState({ path: url.href }, '', url.href);
268
- const quotesRestorationState = handler.getRestorationState();
269
- expect(
270
- quotesRestorationState.selectedFacets.clip_type?.quote.state,
271
- ).to.equal('selected');
272
-
273
- // No filter param
274
- url.search = '';
275
- window.history.replaceState({ path: url.href }, '', url.href);
276
- const unfilteredRestorationState = handler.getRestorationState();
277
- expect(unfilteredRestorationState.selectedFacets.clip_type).to.deep.equal(
278
- {},
279
- );
280
- });
281
-
282
- it('should restore sort from URL (space format)', async () => {
283
- const handler = new RestorationStateHandler({ context: 'search' });
284
-
285
- const url = new URL(window.location.href);
286
- url.search = '?sort=date+desc';
287
- window.history.replaceState({ path: url.href }, '', url.href);
288
-
289
- const restorationState = handler.getRestorationState();
290
- expect(restorationState.selectedSort).to.equal('date');
291
- expect(restorationState.sortDirection).to.equal('desc');
292
- });
293
-
294
- it('should restore sort from URL (prefix format, desc)', async () => {
295
- const handler = new RestorationStateHandler({ context: 'search' });
296
-
297
- const url = new URL(window.location.href);
298
- url.search = '?sort=-date';
299
- window.history.replaceState({ path: url.href }, '', url.href);
300
-
301
- const restorationState = handler.getRestorationState();
302
- expect(restorationState.selectedSort).to.equal('date');
303
- expect(restorationState.sortDirection).to.equal('desc');
304
- });
305
-
306
- it('should restore sort from URL (prefix format, asc)', async () => {
307
- const handler = new RestorationStateHandler({ context: 'search' });
308
-
309
- const url = new URL(window.location.href);
310
- url.search = '?sort=date';
311
- window.history.replaceState({ path: url.href }, '', url.href);
312
-
313
- const restorationState = handler.getRestorationState();
314
- expect(restorationState.selectedSort).to.equal('date');
315
- expect(restorationState.sortDirection).to.equal('asc');
316
- });
317
-
318
- it('should restore sort from URL (space format)', async () => {
319
- const handler = new RestorationStateHandler({ context: 'search' });
320
-
321
- const url = new URL(window.location.href);
322
- url.search = '?sort=foo+desc';
323
- window.history.replaceState({ path: url.href }, '', url.href);
324
-
325
- const restorationState = handler.getRestorationState();
326
- expect(restorationState.selectedSort).to.equal('unrecognized');
327
- expect(restorationState.sortDirection).to.equal('desc');
328
- });
329
-
330
- it('should restore unrecognized sort from URL (prefix format)', async () => {
331
- const handler = new RestorationStateHandler({ context: 'search' });
332
-
333
- const url = new URL(window.location.href);
334
- url.search = '?sort=-foo';
335
- window.history.replaceState({ path: url.href }, '', url.href);
336
-
337
- const restorationState = handler.getRestorationState();
338
- expect(restorationState.selectedSort).to.equal('unrecognized');
339
- expect(restorationState.sortDirection).to.equal('desc');
340
- });
341
-
342
- it('should save direction to URL even for unrecognized sort fields', async () => {
343
- const url = new URL(window.location.href);
344
- url.search = '?sort=foo';
345
- window.history.replaceState({ path: url.href }, '', url.href);
346
-
347
- const handler = new RestorationStateHandler({ context: 'search' });
348
- handler.persistState({
349
- selectedSort: SortField.unrecognized,
350
- sortDirection: 'desc',
351
- selectedFacets: getDefaultSelectedFacets(),
352
- });
353
-
354
- expect(window.location.search).to.equal('?sort=-foo');
355
- });
356
-
357
- it('should keep existing direction for unrecognized sort fields when unspecified in state', async () => {
358
- const url = new URL(window.location.href);
359
- url.search = '?sort=foo+desc';
360
- window.history.replaceState({ path: url.href }, '', url.href);
361
-
362
- const handler = new RestorationStateHandler({ context: 'search' });
363
- handler.persistState({
364
- selectedSort: SortField.unrecognized,
365
- selectedFacets: getDefaultSelectedFacets(),
366
- });
367
-
368
- expect(window.location.search).to.equal('?sort=-foo');
369
- });
370
-
371
- it('should just ignore unrecognized sort fields w/ unknown formats', async () => {
372
- const url = new URL(window.location.href);
373
- url.search = '?sort=+foo';
374
- window.history.replaceState({ path: url.href }, '', url.href);
375
-
376
- const handler = new RestorationStateHandler({ context: 'search' });
377
- handler.persistState({
378
- selectedSort: SortField.unrecognized,
379
- selectedFacets: getDefaultSelectedFacets(),
380
- });
381
-
382
- expect(window.location.search).to.equal('?sort=+foo');
383
- });
384
-
385
- it('should not save current page state to the URL for page 1', async () => {
386
- const url = new URL(window.location.href);
387
- url.search = '';
388
- window.history.replaceState({ path: url.href }, '', url.href);
389
-
390
- const handler = new RestorationStateHandler({ context: 'search' });
391
- handler.persistState({
392
- currentPage: 1,
393
- selectedFacets: getDefaultSelectedFacets(),
394
- });
395
-
396
- expect(window.location.search).to.be.empty;
397
- });
398
-
399
- it('should save current page state to the URL when page > 1', async () => {
400
- const url = new URL(window.location.href);
401
- url.search = '';
402
- window.history.replaceState({ path: url.href }, '', url.href);
403
-
404
- const handler = new RestorationStateHandler({ context: 'search' });
405
- handler.persistState({
406
- currentPage: 2,
407
- selectedFacets: getDefaultSelectedFacets(),
408
- });
409
-
410
- expect(window.location.search).to.equal('?page=2');
411
- });
412
-
413
- it('should upgrade legacy search params to new ones', async () => {
414
- const url = new URL(window.location.href);
415
- url.search = '?q=foo';
416
- window.history.replaceState({ path: url.href }, '', url.href);
417
-
418
- const handler = new RestorationStateHandler({ context: 'search' });
419
- const restorationState = handler.getRestorationState();
420
- expect(restorationState.baseQuery).to.equal('foo');
421
-
422
- handler.persistState(restorationState);
423
- expect(window.location.search).to.equal('?query=foo');
424
- });
425
-
426
- it('should remove empty sin param', async () => {
427
- const url = new URL(window.location.href);
428
- url.search = '?sin=';
429
- window.history.replaceState({ path: url.href }, '', url.href);
430
-
431
- const handler = new RestorationStateHandler({ context: 'search' });
432
-
433
- handler.persistState({ selectedFacets: getDefaultSelectedFacets() });
434
- expect(window.location.search).to.equal('');
435
- });
436
-
437
- it('should persist metadata search type only when option is true', async () => {
438
- const url = new URL(window.location.href);
439
- url.search = '?sin=';
440
- window.history.replaceState({ path: url.href }, '', url.href);
441
-
442
- const handler = new RestorationStateHandler({ context: 'search' });
443
-
444
- handler.persistState(
445
- {
446
- selectedFacets: getDefaultSelectedFacets(),
447
- searchType: SearchType.METADATA,
448
- },
449
- { persistMetadataSearchType: false },
450
- );
451
- expect(window.location.search).to.equal('');
452
-
453
- handler.persistState(
454
- {
455
- selectedFacets: getDefaultSelectedFacets(),
456
- searchType: SearchType.METADATA,
457
- },
458
- { persistMetadataSearchType: true },
459
- );
460
- expect(window.location.search).to.equal('?sin=MD');
461
- });
462
-
463
- it('round trip load/persist should erase numbers in square brackets', async () => {
464
- const handler = new RestorationStateHandler({ context: 'search' });
465
-
466
- const url = new URL(window.location.href);
467
- url.search = '?and[0]=subject:"foo"';
468
- window.history.replaceState({ path: url.href }, '', url.href);
469
-
470
- // Load state from the URL and immediately persist it back to the URL
471
- const restorationState = handler.getRestorationState();
472
- handler.persistState(restorationState);
473
-
474
- // Ensure the new URL includes the "normalized" facet parameter and not the numbered one
475
- expect(decodeURIComponent(window.location.search)).to.include(
476
- 'and[]=subject:"foo"',
477
- );
478
- expect(new URL(window.location.href).searchParams.get('and[0]')).to.be.null;
479
- });
480
- });
@@ -1,62 +0,0 @@
1
- import { expect, fixture } from '@open-wc/testing';
2
- import { html } from 'lit';
3
- import type { ReviewBlock } from '../src/tiles/review-block';
4
- import '../src/tiles/review-block';
5
-
6
- describe('ReviewBlock component', () => {
7
- it('renders basic component', async () => {
8
- const el = await fixture<ReviewBlock>(
9
- html`<review-block
10
- title="Foo"
11
- body="foo bar baz"
12
- starRating="3"
13
- ></review-block>`,
14
- );
15
-
16
- el.title = 'Foo';
17
- await el.updateComplete;
18
-
19
- const container = el.shadowRoot?.querySelector('.review-container');
20
- expect(container).to.exist;
21
-
22
- const title = el.shadowRoot?.querySelector('.review-title');
23
- expect(title?.textContent?.trim()).to.equal('Foo');
24
-
25
- const body = el.shadowRoot?.querySelector('.review-body');
26
- expect(body?.textContent?.trim()).to.equal('foo bar baz');
27
-
28
- const stars = el.shadowRoot?.querySelector('.star-rating');
29
- expect(stars).to.exist;
30
- expect(stars?.querySelectorAll('svg').length).to.equal(5);
31
- expect(stars?.querySelectorAll('.unfilled-star').length).to.equal(2);
32
- });
33
-
34
- it('renders with any of title/body/stars', async () => {
35
- const el = await fixture<ReviewBlock>(html`<review-block></review-block>`);
36
-
37
- // No content if no title/body/stars
38
- expect(el.shadowRoot?.children.length).to.equal(0);
39
-
40
- el.title = 'Foo';
41
- await el.updateComplete;
42
-
43
- const title = el.shadowRoot?.querySelector('.review-title');
44
- expect(title?.textContent?.trim()).to.equal('Foo');
45
-
46
- el.title = '';
47
- el.body = 'foo bar baz';
48
- await el.updateComplete;
49
-
50
- const body = el.shadowRoot?.querySelector('.review-body');
51
- expect(body?.textContent?.trim()).to.equal('foo bar baz');
52
-
53
- el.body = '';
54
- el.starRating = 4;
55
- await el.updateComplete;
56
-
57
- const stars = el.shadowRoot?.querySelector('.star-rating');
58
- expect(stars).to.exist;
59
- expect(stars?.querySelectorAll('svg').length).to.equal(5);
60
- expect(stars?.querySelectorAll('.unfilled-star').length).to.equal(1);
61
- });
62
- });
@@ -1,17 +0,0 @@
1
- import { expect, fixture } from '@open-wc/testing';
2
- import { html } from 'lit';
3
- import type { AlphaBarTooltip } from '../../src/sort-filter-bar/alpha-bar-tooltip';
4
-
5
- import '../../src/sort-filter-bar/alpha-bar-tooltip';
6
-
7
- describe('Alphabet Filter Bar Tooltips', () => {
8
- it('renders component', async () => {
9
- const el = await fixture<AlphaBarTooltip>(
10
- html`<alpha-bar-tooltip .numResults=${42}></alpha-bar-tooltip>`,
11
- );
12
-
13
- // Should render the number of results
14
- const tooltipText = el.shadowRoot?.querySelector('#tooltip-text');
15
- expect(tooltipText?.textContent?.trim()).to.equal('42 results');
16
- });
17
- });