@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,124 +1,124 @@
1
- import { expect, fixture } from '@open-wc/testing';
2
- import sinon from 'sinon';
3
- import { html } from 'lit';
4
- import '../../src/collection-facets/facets-template';
5
- const facetGroup = {
6
- title: 'Media Type',
7
- key: 'mediatype',
8
- buckets: [
9
- { displayText: 'audio', key: 'audio', count: 1001, state: 'none' },
10
- { displayText: 'movies', key: 'movies', count: 901, state: 'none' },
11
- { displayText: 'texts', key: 'texts', count: 2101, state: 'none' },
12
- { displayText: 'data', key: 'data', count: 230, state: 'none' },
13
- { displayText: 'web', key: 'web', count: 453, state: 'none' },
14
- ],
15
- };
16
- describe('Render facets', () => {
17
- it('should render more facets template', async () => {
18
- var _a;
19
- const el = await fixture(html `<facets-template .facetGroup=${facetGroup}></facets-template>`);
20
- await el.updateComplete;
21
- expect((_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('facet-row')).to.exist;
22
- });
23
- it('facets render on page', async () => {
24
- var _a;
1
+ import { expect, fixture } from '@open-wc/testing';
2
+ import sinon from 'sinon';
3
+ import { html } from 'lit';
4
+ import '../../src/collection-facets/facets-template';
5
+ const facetGroup = {
6
+ title: 'Media Type',
7
+ key: 'mediatype',
8
+ buckets: [
9
+ { displayText: 'audio', key: 'audio', count: 1001, state: 'none' },
10
+ { displayText: 'movies', key: 'movies', count: 901, state: 'none' },
11
+ { displayText: 'texts', key: 'texts', count: 2101, state: 'none' },
12
+ { displayText: 'data', key: 'data', count: 230, state: 'none' },
13
+ { displayText: 'web', key: 'web', count: 453, state: 'none' },
14
+ ],
15
+ };
16
+ describe('Render facets', () => {
17
+ it('should render more facets template', async () => {
18
+ var _a;
19
+ const el = await fixture(html `<facets-template .facetGroup=${facetGroup}></facets-template>`);
20
+ await el.updateComplete;
21
+ expect((_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('facet-row')).to.exist;
22
+ });
23
+ it('facets render on page', async () => {
24
+ var _a;
25
25
  const el = await fixture(html `<facets-template
26
26
  .facetGroup=${facetGroup}
27
27
  .renderOn=${'page'}
28
- ></facets-template>`);
29
- expect((_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.facets-on-page')).to.exist;
30
- });
31
- it('facets render on modal', async () => {
32
- var _a;
28
+ ></facets-template>`);
29
+ expect((_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.facets-on-page')).to.exist;
30
+ });
31
+ it('facets render on modal', async () => {
32
+ var _a;
33
33
  const el = await fixture(html `<facets-template
34
34
  .facetGroup=${facetGroup}
35
35
  .renderOn=${'modal'}
36
- ></facets-template>`);
37
- expect((_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.facets-on-modal')).to.exist;
38
- });
39
- it('applies correct bucket values to facet row', async () => {
40
- var _a;
41
- const el = await fixture(html `<facets-template .facetGroup=${facetGroup}></facets-template>`);
42
- const facetRows = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelectorAll('facet-row');
43
- expect(facetRows === null || facetRows === void 0 ? void 0 : facetRows.length).to.equal(facetGroup.buckets.length);
44
- facetRows === null || facetRows === void 0 ? void 0 : facetRows.forEach((elmt, i) => {
45
- const facetRow = elmt;
46
- expect(facetRow).to.exist;
47
- expect(facetRow.bucket).to.equal(facetGroup.buckets[i]);
48
- expect(facetRow.facetType).to.equal(facetGroup.key);
49
- });
50
- });
51
- it('emits facet click and change events when a facet is selected/deselected', async () => {
52
- var _a, _b, _c, _d;
53
- const facetClickSpy = sinon.spy();
54
- const facetChangeSpy = sinon.spy();
36
+ ></facets-template>`);
37
+ expect((_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.facets-on-modal')).to.exist;
38
+ });
39
+ it('applies correct bucket values to facet row', async () => {
40
+ var _a;
41
+ const el = await fixture(html `<facets-template .facetGroup=${facetGroup}></facets-template>`);
42
+ const facetRows = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelectorAll('facet-row');
43
+ expect(facetRows === null || facetRows === void 0 ? void 0 : facetRows.length).to.equal(facetGroup.buckets.length);
44
+ facetRows === null || facetRows === void 0 ? void 0 : facetRows.forEach((elmt, i) => {
45
+ const facetRow = elmt;
46
+ expect(facetRow).to.exist;
47
+ expect(facetRow.bucket).to.equal(facetGroup.buckets[i]);
48
+ expect(facetRow.facetType).to.equal(facetGroup.key);
49
+ });
50
+ });
51
+ it('emits facet click and change events when a facet is selected/deselected', async () => {
52
+ var _a, _b, _c, _d;
53
+ const facetClickSpy = sinon.spy();
54
+ const facetChangeSpy = sinon.spy();
55
55
  const el = await fixture(html `<facets-template
56
56
  .facetGroup=${facetGroup}
57
57
  @facetClick=${facetClickSpy}
58
58
  @selectedFacetsChanged=${facetChangeSpy}
59
- ></facets-template>`);
60
- const facetRow = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('facet-row');
61
- expect(facetRow).to.exist;
62
- const facetSelectCheck = (_b = facetRow.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('.select-facet-checkbox');
63
- expect(facetSelectCheck).to.exist;
64
- facetSelectCheck.click();
65
- expect(facetClickSpy.callCount).to.equal(1);
66
- expect(facetChangeSpy.callCount).to.equal(1);
67
- expect((_c = facetRow.bucket) === null || _c === void 0 ? void 0 : _c.state).to.equal('selected');
68
- facetSelectCheck.click();
69
- expect(facetClickSpy.callCount).to.equal(2);
70
- expect(facetChangeSpy.callCount).to.equal(2);
71
- expect((_d = facetRow.bucket) === null || _d === void 0 ? void 0 : _d.state).to.equal('none');
72
- });
73
- it('emits facet click and change events when a facet is negated/un-negated', async () => {
74
- var _a, _b, _c, _d;
75
- const facetClickSpy = sinon.spy();
76
- const facetChangeSpy = sinon.spy();
59
+ ></facets-template>`);
60
+ const facetRow = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('facet-row');
61
+ expect(facetRow).to.exist;
62
+ const facetSelectCheck = (_b = facetRow.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('.select-facet-checkbox');
63
+ expect(facetSelectCheck).to.exist;
64
+ facetSelectCheck.click();
65
+ expect(facetClickSpy.callCount).to.equal(1);
66
+ expect(facetChangeSpy.callCount).to.equal(1);
67
+ expect((_c = facetRow.bucket) === null || _c === void 0 ? void 0 : _c.state).to.equal('selected');
68
+ facetSelectCheck.click();
69
+ expect(facetClickSpy.callCount).to.equal(2);
70
+ expect(facetChangeSpy.callCount).to.equal(2);
71
+ expect((_d = facetRow.bucket) === null || _d === void 0 ? void 0 : _d.state).to.equal('none');
72
+ });
73
+ it('emits facet click and change events when a facet is negated/un-negated', async () => {
74
+ var _a, _b, _c, _d;
75
+ const facetClickSpy = sinon.spy();
76
+ const facetChangeSpy = sinon.spy();
77
77
  const el = await fixture(html `<facets-template
78
78
  .facetGroup=${facetGroup}
79
79
  @facetClick=${facetClickSpy}
80
80
  @selectedFacetsChanged=${facetChangeSpy}
81
- ></facets-template>`);
82
- const facetRow = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('facet-row');
83
- expect(facetRow).to.exist;
84
- const facetNegateCheck = (_b = facetRow.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('.hide-facet-checkbox');
85
- expect(facetNegateCheck).to.exist;
86
- facetNegateCheck.click();
87
- expect(facetClickSpy.callCount).to.equal(1);
88
- expect(facetChangeSpy.callCount).to.equal(1);
89
- expect((_c = facetRow.bucket) === null || _c === void 0 ? void 0 : _c.state).to.equal('hidden');
90
- facetNegateCheck.click();
91
- expect(facetClickSpy.callCount).to.equal(2);
92
- expect(facetChangeSpy.callCount).to.equal(2);
93
- expect((_d = facetRow.bucket) === null || _d === void 0 ? void 0 : _d.state).to.equal('none');
94
- });
95
- it('emits facet click and change events when a pre-selected facet is deselected', async () => {
96
- var _a, _b, _c, _d;
97
- const facetClickSpy = sinon.spy();
98
- const facetChangeSpy = sinon.spy();
99
- const facetGroupWithSelection = { ...facetGroup };
100
- facetGroupWithSelection.buckets = [
101
- { ...facetGroup.buckets[0], state: 'selected' },
102
- ...facetGroup.buckets.slice(1),
103
- ];
81
+ ></facets-template>`);
82
+ const facetRow = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('facet-row');
83
+ expect(facetRow).to.exist;
84
+ const facetNegateCheck = (_b = facetRow.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('.hide-facet-checkbox');
85
+ expect(facetNegateCheck).to.exist;
86
+ facetNegateCheck.click();
87
+ expect(facetClickSpy.callCount).to.equal(1);
88
+ expect(facetChangeSpy.callCount).to.equal(1);
89
+ expect((_c = facetRow.bucket) === null || _c === void 0 ? void 0 : _c.state).to.equal('hidden');
90
+ facetNegateCheck.click();
91
+ expect(facetClickSpy.callCount).to.equal(2);
92
+ expect(facetChangeSpy.callCount).to.equal(2);
93
+ expect((_d = facetRow.bucket) === null || _d === void 0 ? void 0 : _d.state).to.equal('none');
94
+ });
95
+ it('emits facet click and change events when a pre-selected facet is deselected', async () => {
96
+ var _a, _b, _c, _d;
97
+ const facetClickSpy = sinon.spy();
98
+ const facetChangeSpy = sinon.spy();
99
+ const facetGroupWithSelection = { ...facetGroup };
100
+ facetGroupWithSelection.buckets = [
101
+ { ...facetGroup.buckets[0], state: 'selected' },
102
+ ...facetGroup.buckets.slice(1),
103
+ ];
104
104
  const el = await fixture(html `<facets-template
105
105
  .facetGroup=${facetGroupWithSelection}
106
106
  @facetClick=${facetClickSpy}
107
107
  @selectedFacetsChanged=${facetChangeSpy}
108
- ></facets-template>`);
109
- const facetRow = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('facet-row');
110
- expect(facetRow).to.exist;
111
- const facetSelectCheck = (_b = facetRow.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('.select-facet-checkbox');
112
- expect(facetSelectCheck).to.exist;
113
- expect(facetSelectCheck.checked).to.be.true;
114
- facetSelectCheck.click();
115
- expect(facetClickSpy.callCount).to.equal(1);
116
- expect(facetChangeSpy.callCount).to.equal(1);
117
- expect((_c = facetRow.bucket) === null || _c === void 0 ? void 0 : _c.state).to.equal('none');
118
- facetSelectCheck.click();
119
- expect(facetClickSpy.callCount).to.equal(2);
120
- expect(facetChangeSpy.callCount).to.equal(2);
121
- expect((_d = facetRow.bucket) === null || _d === void 0 ? void 0 : _d.state).to.equal('selected');
122
- });
123
- });
108
+ ></facets-template>`);
109
+ const facetRow = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('facet-row');
110
+ expect(facetRow).to.exist;
111
+ const facetSelectCheck = (_b = facetRow.shadowRoot) === null || _b === void 0 ? void 0 : _b.querySelector('.select-facet-checkbox');
112
+ expect(facetSelectCheck).to.exist;
113
+ expect(facetSelectCheck.checked).to.be.true;
114
+ facetSelectCheck.click();
115
+ expect(facetClickSpy.callCount).to.equal(1);
116
+ expect(facetChangeSpy.callCount).to.equal(1);
117
+ expect((_c = facetRow.bucket) === null || _c === void 0 ? void 0 : _c.state).to.equal('none');
118
+ facetSelectCheck.click();
119
+ expect(facetClickSpy.callCount).to.equal(2);
120
+ expect(facetChangeSpy.callCount).to.equal(2);
121
+ expect((_d = facetRow.bucket) === null || _d === void 0 ? void 0 : _d.state).to.equal('selected');
122
+ });
123
+ });
124
124
  //# sourceMappingURL=facets-template.test.js.map
@@ -1 +1 @@
1
- import '../../src/collection-facets/more-facets-content';
1
+ import '../../src/collection-facets/more-facets-content';
@@ -1,155 +1,155 @@
1
- /* eslint-disable import/no-duplicates */
2
- import { expect, fixture } from '@open-wc/testing';
3
- import { html } from 'lit';
4
- import { Aggregation } from '@internetarchive/search-service';
5
- import '../../src/collection-facets/more-facets-content';
6
- import { MockSearchService } from '../mocks/mock-search-service';
7
- import { MockAnalyticsHandler } from '../mocks/mock-analytics-handler';
8
- const selectedFacetsGroup = {
9
- title: 'Media Type',
10
- key: 'mediatype',
11
- buckets: [
12
- { displayText: 'audio', key: 'audio', count: 1001, state: 'none' },
13
- { displayText: 'movies', key: 'movies', count: 901, state: 'none' },
14
- { displayText: 'texts', key: 'texts', count: 2101, state: 'none' },
15
- { displayText: 'data', key: 'data', count: 230, state: 'none' },
16
- { displayText: 'web', key: 'web', count: 453, state: 'none' },
17
- ],
18
- };
19
- const aggregations = {
20
- collection: new Aggregation({
21
- buckets: [
22
- {
23
- key: 'foo',
24
- doc_count: 5,
25
- },
26
- ],
27
- }),
28
- };
29
- describe('More facets content', () => {
30
- it('should render more facets template', async () => {
31
- var _a;
32
- const el = await fixture(html `<more-facets-content></more-facets-content>`);
33
- el.facetsLoading = false;
34
- await el.updateComplete;
35
- expect((_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.facets-content')).to.exist;
36
- });
37
- it('should render more facets loader template', async () => {
38
- var _a;
39
- const el = await fixture(html `<more-facets-content></more-facets-content>`);
40
- el.facetsLoading = true;
41
- await el.updateComplete;
42
- expect((_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.facets-loader')).to.exist;
43
- });
44
- it('should render pagination for more facets', async () => {
45
- var _a;
46
- const searchService = new MockSearchService();
1
+ /* eslint-disable import/no-duplicates */
2
+ import { expect, fixture } from '@open-wc/testing';
3
+ import { html } from 'lit';
4
+ import { Aggregation } from '@internetarchive/search-service';
5
+ import '../../src/collection-facets/more-facets-content';
6
+ import { MockSearchService } from '../mocks/mock-search-service';
7
+ import { MockAnalyticsHandler } from '../mocks/mock-analytics-handler';
8
+ const selectedFacetsGroup = {
9
+ title: 'Media Type',
10
+ key: 'mediatype',
11
+ buckets: [
12
+ { displayText: 'audio', key: 'audio', count: 1001, state: 'none' },
13
+ { displayText: 'movies', key: 'movies', count: 901, state: 'none' },
14
+ { displayText: 'texts', key: 'texts', count: 2101, state: 'none' },
15
+ { displayText: 'data', key: 'data', count: 230, state: 'none' },
16
+ { displayText: 'web', key: 'web', count: 453, state: 'none' },
17
+ ],
18
+ };
19
+ const aggregations = {
20
+ collection: new Aggregation({
21
+ buckets: [
22
+ {
23
+ key: 'foo',
24
+ doc_count: 5,
25
+ },
26
+ ],
27
+ }),
28
+ };
29
+ describe('More facets content', () => {
30
+ it('should render more facets template', async () => {
31
+ var _a;
32
+ const el = await fixture(html `<more-facets-content></more-facets-content>`);
33
+ el.facetsLoading = false;
34
+ await el.updateComplete;
35
+ expect((_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.facets-content')).to.exist;
36
+ });
37
+ it('should render more facets loader template', async () => {
38
+ var _a;
39
+ const el = await fixture(html `<more-facets-content></more-facets-content>`);
40
+ el.facetsLoading = true;
41
+ await el.updateComplete;
42
+ expect((_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.facets-loader')).to.exist;
43
+ });
44
+ it('should render pagination for more facets', async () => {
45
+ var _a;
46
+ const searchService = new MockSearchService();
47
47
  const el = await fixture(html `<more-facets-content
48
48
  .searchService=${searchService}
49
- ></more-facets-content>`);
50
- el.facetKey = 'mediatype';
51
- el.facetsLoading = false;
52
- el.paginationSize = 6;
53
- await el.updateComplete;
54
- expect((_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelectorAll('more-facets-pagination')).to.exist;
55
- });
56
- it('query for more facets content using search service', async () => {
57
- var _a;
58
- const searchService = new MockSearchService();
49
+ ></more-facets-content>`);
50
+ el.facetKey = 'mediatype';
51
+ el.facetsLoading = false;
52
+ el.paginationSize = 6;
53
+ await el.updateComplete;
54
+ expect((_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelectorAll('more-facets-pagination')).to.exist;
55
+ });
56
+ it('query for more facets content using search service', async () => {
57
+ var _a;
58
+ const searchService = new MockSearchService();
59
59
  const el = await fixture(html `<more-facets-content
60
60
  .searchService=${searchService}
61
- ></more-facets-content>`);
62
- el.facetKey = 'collection';
63
- el.query = 'title:hello';
64
- await el.updateComplete;
65
- expect((_a = searchService.searchParams) === null || _a === void 0 ? void 0 : _a.query).to.equal('title:hello');
66
- });
67
- it('queries for more facets using search service within a collection (no query)', async () => {
68
- var _a, _b;
69
- const searchService = new MockSearchService();
61
+ ></more-facets-content>`);
62
+ el.facetKey = 'collection';
63
+ el.query = 'collection-aggregations';
64
+ await el.updateComplete;
65
+ expect((_a = searchService.searchParams) === null || _a === void 0 ? void 0 : _a.query).to.equal('collection-aggregations');
66
+ });
67
+ it('queries for more facets using search service within a collection (no query)', async () => {
68
+ var _a, _b;
69
+ const searchService = new MockSearchService();
70
70
  const el = await fixture(html `<more-facets-content
71
71
  .searchService=${searchService}
72
72
  .withinCollection=${'foobar'}
73
- ></more-facets-content>`);
74
- el.facetKey = 'subject';
75
- await el.updateComplete;
76
- expect((_a = searchService.searchParams) === null || _a === void 0 ? void 0 : _a.query).to.be.empty;
77
- expect((_b = searchService.searchParams) === null || _b === void 0 ? void 0 : _b.pageTarget).to.equal('foobar');
78
- });
79
- it('queries for more facets using search service within a collection (with query)', async () => {
80
- var _a, _b;
81
- const searchService = new MockSearchService();
73
+ ></more-facets-content>`);
74
+ el.facetKey = 'subject';
75
+ await el.updateComplete;
76
+ expect((_a = searchService.searchParams) === null || _a === void 0 ? void 0 : _a.query).to.be.empty;
77
+ expect((_b = searchService.searchParams) === null || _b === void 0 ? void 0 : _b.pageTarget).to.equal('foobar');
78
+ });
79
+ it('queries for more facets using search service within a collection (with query)', async () => {
80
+ var _a, _b;
81
+ const searchService = new MockSearchService();
82
82
  const el = await fixture(html `<more-facets-content
83
83
  .searchService=${searchService}
84
84
  .withinCollection=${'foobar'}
85
- ></more-facets-content>`);
86
- el.facetKey = 'subject';
87
- el.query = 'title:hello';
88
- await el.updateComplete;
89
- expect((_a = searchService.searchParams) === null || _a === void 0 ? void 0 : _a.query).to.equal('title:hello');
90
- expect((_b = searchService.searchParams) === null || _b === void 0 ? void 0 : _b.pageTarget).to.equal('foobar');
91
- });
92
- it('filter raw selectedFacets object', async () => {
93
- var _a;
94
- const searchService = new MockSearchService();
85
+ ></more-facets-content>`);
86
+ el.facetKey = 'subject';
87
+ el.query = 'title:hello';
88
+ await el.updateComplete;
89
+ expect((_a = searchService.searchParams) === null || _a === void 0 ? void 0 : _a.query).to.equal('title:hello');
90
+ expect((_b = searchService.searchParams) === null || _b === void 0 ? void 0 : _b.pageTarget).to.equal('foobar');
91
+ });
92
+ it('filter raw selectedFacets object', async () => {
93
+ var _a;
94
+ const searchService = new MockSearchService();
95
95
  const el = await fixture(html `<more-facets-content
96
96
  .searchService=${searchService}
97
97
  .selectedFacets=${selectedFacetsGroup}
98
- ></more-facets-content>`);
99
- el.facetKey = 'collection';
100
- el.query = 'title:hello';
101
- await el.updateComplete;
102
- expect((_a = searchService.searchParams) === null || _a === void 0 ? void 0 : _a.query).to.equal('title:hello');
103
- });
104
- it('combine selectedFacets and aggregationFacets and render on modal', async () => {
105
- var _a;
106
- const searchService = new MockSearchService();
98
+ ></more-facets-content>`);
99
+ el.facetKey = 'collection';
100
+ el.query = 'title:hello';
101
+ await el.updateComplete;
102
+ expect((_a = searchService.searchParams) === null || _a === void 0 ? void 0 : _a.query).to.equal('title:hello');
103
+ });
104
+ it('combine selectedFacets and aggregationFacets and render on modal', async () => {
105
+ var _a;
106
+ const searchService = new MockSearchService();
107
107
  const el = await fixture(html `<more-facets-content
108
108
  .searchService=${searchService}
109
109
  .selectedFacets=${selectedFacetsGroup}
110
110
  .aggregations=${aggregations}
111
- ></more-facets-content>`);
112
- await el.updateComplete;
113
- expect(el.facetGroupTitle).to.equal('Collection');
114
- const facetGroup = (_a = el.facetGroup) === null || _a === void 0 ? void 0 : _a.shift();
115
- expect(facetGroup === null || facetGroup === void 0 ? void 0 : facetGroup.key).to.equal('collection');
116
- expect(facetGroup === null || facetGroup === void 0 ? void 0 : facetGroup.title).to.equal('Collection');
117
- const bucket = facetGroup === null || facetGroup === void 0 ? void 0 : facetGroup.buckets[0];
118
- expect(bucket === null || bucket === void 0 ? void 0 : bucket.key).to.equal('foo');
119
- expect(bucket === null || bucket === void 0 ? void 0 : bucket.count).to.equal(5);
120
- });
121
- it('cancel button clicked event', async () => {
122
- var _a;
123
- const mockAnalyticsHandler = new MockAnalyticsHandler();
111
+ ></more-facets-content>`);
112
+ await el.updateComplete;
113
+ expect(el.facetGroupTitle).to.equal('Collection');
114
+ const facetGroup = (_a = el.facetGroup) === null || _a === void 0 ? void 0 : _a.shift();
115
+ expect(facetGroup === null || facetGroup === void 0 ? void 0 : facetGroup.key).to.equal('collection');
116
+ expect(facetGroup === null || facetGroup === void 0 ? void 0 : facetGroup.title).to.equal('Collection');
117
+ const bucket = facetGroup === null || facetGroup === void 0 ? void 0 : facetGroup.buckets[0];
118
+ expect(bucket === null || bucket === void 0 ? void 0 : bucket.key).to.equal('foo');
119
+ expect(bucket === null || bucket === void 0 ? void 0 : bucket.count).to.equal(5);
120
+ });
121
+ it('cancel button clicked event', async () => {
122
+ var _a;
123
+ const mockAnalyticsHandler = new MockAnalyticsHandler();
124
124
  const el = await fixture(html `<more-facets-content
125
125
  .analyticsHandler=${mockAnalyticsHandler}
126
- ></more-facets-content>`);
127
- el.facetsLoading = false;
128
- el.paginationSize = 5;
129
- await el.updateComplete;
130
- // select cancel button
131
- const cancelButton = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.footer > .btn-cancel');
132
- cancelButton === null || cancelButton === void 0 ? void 0 : cancelButton.click();
133
- expect(mockAnalyticsHandler.callCategory).to.equal('collection-browser');
134
- expect(mockAnalyticsHandler.callAction).to.equal('closeMoreFacetsModal');
135
- expect(mockAnalyticsHandler.callLabel).to.equal('undefined');
136
- });
137
- it('facet apply button clicked event', async () => {
138
- var _a;
139
- const mockAnalyticsHandler = new MockAnalyticsHandler();
126
+ ></more-facets-content>`);
127
+ el.facetsLoading = false;
128
+ el.paginationSize = 5;
129
+ await el.updateComplete;
130
+ // select cancel button
131
+ const cancelButton = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.footer > .btn-cancel');
132
+ cancelButton === null || cancelButton === void 0 ? void 0 : cancelButton.click();
133
+ expect(mockAnalyticsHandler.callCategory).to.equal('collection-browser');
134
+ expect(mockAnalyticsHandler.callAction).to.equal('closeMoreFacetsModal');
135
+ expect(mockAnalyticsHandler.callLabel).to.equal('undefined');
136
+ });
137
+ it('facet apply button clicked event', async () => {
138
+ var _a;
139
+ const mockAnalyticsHandler = new MockAnalyticsHandler();
140
140
  const el = await fixture(html `<more-facets-content
141
141
  .analyticsHandler=${mockAnalyticsHandler}
142
- ></more-facets-content>`);
143
- el.facetsLoading = false;
144
- el.paginationSize = 5;
145
- el.facetKey = 'collection';
146
- await el.updateComplete;
147
- // select submit button
148
- const submitButton = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.footer > .btn-submit');
149
- submitButton === null || submitButton === void 0 ? void 0 : submitButton.click();
150
- expect(mockAnalyticsHandler.callCategory).to.equal('collection-browser');
151
- expect(mockAnalyticsHandler.callAction).to.equal('applyMoreFacetsModal');
152
- expect(mockAnalyticsHandler.callLabel).to.equal('collection');
153
- });
154
- });
142
+ ></more-facets-content>`);
143
+ el.facetsLoading = false;
144
+ el.paginationSize = 5;
145
+ el.facetKey = 'collection';
146
+ await el.updateComplete;
147
+ // select submit button
148
+ const submitButton = (_a = el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.footer > .btn-submit');
149
+ submitButton === null || submitButton === void 0 ? void 0 : submitButton.click();
150
+ expect(mockAnalyticsHandler.callCategory).to.equal('collection-browser');
151
+ expect(mockAnalyticsHandler.callAction).to.equal('applyMoreFacetsModal');
152
+ expect(mockAnalyticsHandler.callLabel).to.equal('collection');
153
+ });
154
+ });
155
155
  //# sourceMappingURL=more-facets-content.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"more-facets-content.test.js","sourceRoot":"","sources":["../../../test/collection-facets/more-facets-content.test.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable import/no-duplicates */\nimport { expect, fixture } from '@open-wc/testing';\nimport { html } from 'lit';\nimport { Aggregation } from '@internetarchive/search-service';\nimport type { MoreFacetsContent } from '../../src/collection-facets/more-facets-content';\nimport '../../src/collection-facets/more-facets-content';\nimport { MockSearchService } from '../mocks/mock-search-service';\nimport { MockAnalyticsHandler } from '../mocks/mock-analytics-handler';\n\nconst selectedFacetsGroup = {\n title: 'Media Type',\n key: 'mediatype',\n buckets: [\n { displayText: 'audio', key: 'audio', count: 1001, state: 'none' },\n { displayText: 'movies', key: 'movies', count: 901, state: 'none' },\n { displayText: 'texts', key: 'texts', count: 2101, state: 'none' },\n { displayText: 'data', key: 'data', count: 230, state: 'none' },\n { displayText: 'web', key: 'web', count: 453, state: 'none' },\n ],\n};\n\nconst aggregations: Record<string, Aggregation> = {\n collection: new Aggregation({\n buckets: [\n {\n key: 'foo',\n doc_count: 5,\n },\n ],\n }),\n};\n\ndescribe('More facets content', () => {\n it('should render more facets template', async () => {\n const el = await fixture<MoreFacetsContent>(\n html`<more-facets-content></more-facets-content>`\n );\n\n el.facetsLoading = false;\n await el.updateComplete;\n\n expect(el.shadowRoot?.querySelector('.facets-content')).to.exist;\n });\n\n it('should render more facets loader template', async () => {\n const el = await fixture<MoreFacetsContent>(\n html`<more-facets-content></more-facets-content>`\n );\n\n el.facetsLoading = true;\n await el.updateComplete;\n\n expect(el.shadowRoot?.querySelector('.facets-loader')).to.exist;\n });\n\n it('should render pagination for more facets', async () => {\n const searchService = new MockSearchService();\n\n const el = await fixture<MoreFacetsContent>(\n html`<more-facets-content\n .searchService=${searchService}\n ></more-facets-content>`\n );\n\n el.facetKey = 'mediatype';\n el.facetsLoading = false;\n el.paginationSize = 6;\n await el.updateComplete;\n\n expect(el.shadowRoot?.querySelectorAll('more-facets-pagination')).to.exist;\n });\n\n it('query for more facets content using search service', async () => {\n const searchService = new MockSearchService();\n\n const el = await fixture<MoreFacetsContent>(\n html`<more-facets-content\n .searchService=${searchService}\n ></more-facets-content>`\n );\n\n el.facetKey = 'collection';\n el.query = 'title:hello';\n await el.updateComplete;\n\n expect(searchService.searchParams?.query).to.equal('title:hello');\n });\n\n it('queries for more facets using search service within a collection (no query)', async () => {\n const searchService = new MockSearchService();\n\n const el = await fixture<MoreFacetsContent>(\n html`<more-facets-content\n .searchService=${searchService}\n .withinCollection=${'foobar'}\n ></more-facets-content>`\n );\n\n el.facetKey = 'subject';\n await el.updateComplete;\n\n expect(searchService.searchParams?.query).to.be.empty;\n expect(searchService.searchParams?.pageTarget).to.equal('foobar');\n });\n\n it('queries for more facets using search service within a collection (with query)', async () => {\n const searchService = new MockSearchService();\n\n const el = await fixture<MoreFacetsContent>(\n html`<more-facets-content\n .searchService=${searchService}\n .withinCollection=${'foobar'}\n ></more-facets-content>`\n );\n\n el.facetKey = 'subject';\n el.query = 'title:hello';\n await el.updateComplete;\n\n expect(searchService.searchParams?.query).to.equal('title:hello');\n expect(searchService.searchParams?.pageTarget).to.equal('foobar');\n });\n\n it('filter raw selectedFacets object', async () => {\n const searchService = new MockSearchService();\n\n const el = await fixture<MoreFacetsContent>(\n html`<more-facets-content\n .searchService=${searchService}\n .selectedFacets=${selectedFacetsGroup}\n ></more-facets-content>`\n );\n\n el.facetKey = 'collection';\n el.query = 'title:hello';\n await el.updateComplete;\n\n expect(searchService.searchParams?.query).to.equal('title:hello');\n });\n\n it('combine selectedFacets and aggregationFacets and render on modal', async () => {\n const searchService = new MockSearchService();\n\n const el = await fixture<MoreFacetsContent>(\n html`<more-facets-content\n .searchService=${searchService}\n .selectedFacets=${selectedFacetsGroup}\n .aggregations=${aggregations}\n ></more-facets-content>`\n );\n\n await el.updateComplete;\n\n expect(el.facetGroupTitle).to.equal('Collection');\n\n const facetGroup = el.facetGroup?.shift();\n expect(facetGroup?.key).to.equal('collection');\n expect(facetGroup?.title).to.equal('Collection');\n\n const bucket = facetGroup?.buckets[0];\n expect(bucket?.key).to.equal('foo');\n expect(bucket?.count).to.equal(5);\n });\n\n it('cancel button clicked event', async () => {\n const mockAnalyticsHandler = new MockAnalyticsHandler();\n\n const el = await fixture<MoreFacetsContent>(\n html`<more-facets-content\n .analyticsHandler=${mockAnalyticsHandler}\n ></more-facets-content>`\n );\n\n el.facetsLoading = false;\n el.paginationSize = 5;\n await el.updateComplete;\n\n // select cancel button\n const cancelButton = el.shadowRoot?.querySelector(\n '.footer > .btn-cancel'\n ) as HTMLButtonElement;\n cancelButton?.click();\n\n expect(mockAnalyticsHandler.callCategory).to.equal('collection-browser');\n expect(mockAnalyticsHandler.callAction).to.equal('closeMoreFacetsModal');\n expect(mockAnalyticsHandler.callLabel).to.equal('undefined');\n });\n\n it('facet apply button clicked event', async () => {\n const mockAnalyticsHandler = new MockAnalyticsHandler();\n\n const el = await fixture<MoreFacetsContent>(\n html`<more-facets-content\n .analyticsHandler=${mockAnalyticsHandler}\n ></more-facets-content>`\n );\n\n el.facetsLoading = false;\n el.paginationSize = 5;\n el.facetKey = 'collection';\n await el.updateComplete;\n\n // select submit button\n const submitButton = el.shadowRoot?.querySelector(\n '.footer > .btn-submit'\n ) as HTMLButtonElement;\n submitButton?.click();\n\n expect(mockAnalyticsHandler.callCategory).to.equal('collection-browser');\n expect(mockAnalyticsHandler.callAction).to.equal('applyMoreFacetsModal');\n expect(mockAnalyticsHandler.callLabel).to.equal('collection');\n });\n});\n"]}
1
+ {"version":3,"file":"more-facets-content.test.js","sourceRoot":"","sources":["../../../test/collection-facets/more-facets-content.test.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable import/no-duplicates */\nimport { expect, fixture } from '@open-wc/testing';\nimport { html } from 'lit';\nimport { Aggregation } from '@internetarchive/search-service';\nimport type { MoreFacetsContent } from '../../src/collection-facets/more-facets-content';\nimport '../../src/collection-facets/more-facets-content';\nimport { MockSearchService } from '../mocks/mock-search-service';\nimport { MockAnalyticsHandler } from '../mocks/mock-analytics-handler';\n\nconst selectedFacetsGroup = {\n title: 'Media Type',\n key: 'mediatype',\n buckets: [\n { displayText: 'audio', key: 'audio', count: 1001, state: 'none' },\n { displayText: 'movies', key: 'movies', count: 901, state: 'none' },\n { displayText: 'texts', key: 'texts', count: 2101, state: 'none' },\n { displayText: 'data', key: 'data', count: 230, state: 'none' },\n { displayText: 'web', key: 'web', count: 453, state: 'none' },\n ],\n};\n\nconst aggregations: Record<string, Aggregation> = {\n collection: new Aggregation({\n buckets: [\n {\n key: 'foo',\n doc_count: 5,\n },\n ],\n }),\n};\n\ndescribe('More facets content', () => {\n it('should render more facets template', async () => {\n const el = await fixture<MoreFacetsContent>(\n html`<more-facets-content></more-facets-content>`\n );\n\n el.facetsLoading = false;\n await el.updateComplete;\n\n expect(el.shadowRoot?.querySelector('.facets-content')).to.exist;\n });\n\n it('should render more facets loader template', async () => {\n const el = await fixture<MoreFacetsContent>(\n html`<more-facets-content></more-facets-content>`\n );\n\n el.facetsLoading = true;\n await el.updateComplete;\n\n expect(el.shadowRoot?.querySelector('.facets-loader')).to.exist;\n });\n\n it('should render pagination for more facets', async () => {\n const searchService = new MockSearchService();\n\n const el = await fixture<MoreFacetsContent>(\n html`<more-facets-content\n .searchService=${searchService}\n ></more-facets-content>`\n );\n\n el.facetKey = 'mediatype';\n el.facetsLoading = false;\n el.paginationSize = 6;\n await el.updateComplete;\n\n expect(el.shadowRoot?.querySelectorAll('more-facets-pagination')).to.exist;\n });\n\n it('query for more facets content using search service', async () => {\n const searchService = new MockSearchService();\n\n const el = await fixture<MoreFacetsContent>(\n html`<more-facets-content\n .searchService=${searchService}\n ></more-facets-content>`\n );\n\n el.facetKey = 'collection';\n el.query = 'collection-aggregations';\n await el.updateComplete;\n\n expect(searchService.searchParams?.query).to.equal(\n 'collection-aggregations'\n );\n });\n\n it('queries for more facets using search service within a collection (no query)', async () => {\n const searchService = new MockSearchService();\n\n const el = await fixture<MoreFacetsContent>(\n html`<more-facets-content\n .searchService=${searchService}\n .withinCollection=${'foobar'}\n ></more-facets-content>`\n );\n\n el.facetKey = 'subject';\n await el.updateComplete;\n\n expect(searchService.searchParams?.query).to.be.empty;\n expect(searchService.searchParams?.pageTarget).to.equal('foobar');\n });\n\n it('queries for more facets using search service within a collection (with query)', async () => {\n const searchService = new MockSearchService();\n\n const el = await fixture<MoreFacetsContent>(\n html`<more-facets-content\n .searchService=${searchService}\n .withinCollection=${'foobar'}\n ></more-facets-content>`\n );\n\n el.facetKey = 'subject';\n el.query = 'title:hello';\n await el.updateComplete;\n\n expect(searchService.searchParams?.query).to.equal('title:hello');\n expect(searchService.searchParams?.pageTarget).to.equal('foobar');\n });\n\n it('filter raw selectedFacets object', async () => {\n const searchService = new MockSearchService();\n\n const el = await fixture<MoreFacetsContent>(\n html`<more-facets-content\n .searchService=${searchService}\n .selectedFacets=${selectedFacetsGroup}\n ></more-facets-content>`\n );\n\n el.facetKey = 'collection';\n el.query = 'title:hello';\n await el.updateComplete;\n\n expect(searchService.searchParams?.query).to.equal('title:hello');\n });\n\n it('combine selectedFacets and aggregationFacets and render on modal', async () => {\n const searchService = new MockSearchService();\n\n const el = await fixture<MoreFacetsContent>(\n html`<more-facets-content\n .searchService=${searchService}\n .selectedFacets=${selectedFacetsGroup}\n .aggregations=${aggregations}\n ></more-facets-content>`\n );\n\n await el.updateComplete;\n\n expect(el.facetGroupTitle).to.equal('Collection');\n\n const facetGroup = el.facetGroup?.shift();\n expect(facetGroup?.key).to.equal('collection');\n expect(facetGroup?.title).to.equal('Collection');\n\n const bucket = facetGroup?.buckets[0];\n expect(bucket?.key).to.equal('foo');\n expect(bucket?.count).to.equal(5);\n });\n\n it('cancel button clicked event', async () => {\n const mockAnalyticsHandler = new MockAnalyticsHandler();\n\n const el = await fixture<MoreFacetsContent>(\n html`<more-facets-content\n .analyticsHandler=${mockAnalyticsHandler}\n ></more-facets-content>`\n );\n\n el.facetsLoading = false;\n el.paginationSize = 5;\n await el.updateComplete;\n\n // select cancel button\n const cancelButton = el.shadowRoot?.querySelector(\n '.footer > .btn-cancel'\n ) as HTMLButtonElement;\n cancelButton?.click();\n\n expect(mockAnalyticsHandler.callCategory).to.equal('collection-browser');\n expect(mockAnalyticsHandler.callAction).to.equal('closeMoreFacetsModal');\n expect(mockAnalyticsHandler.callLabel).to.equal('undefined');\n });\n\n it('facet apply button clicked event', async () => {\n const mockAnalyticsHandler = new MockAnalyticsHandler();\n\n const el = await fixture<MoreFacetsContent>(\n html`<more-facets-content\n .analyticsHandler=${mockAnalyticsHandler}\n ></more-facets-content>`\n );\n\n el.facetsLoading = false;\n el.paginationSize = 5;\n el.facetKey = 'collection';\n await el.updateComplete;\n\n // select submit button\n const submitButton = el.shadowRoot?.querySelector(\n '.footer > .btn-submit'\n ) as HTMLButtonElement;\n submitButton?.click();\n\n expect(mockAnalyticsHandler.callCategory).to.equal('collection-browser');\n expect(mockAnalyticsHandler.callAction).to.equal('applyMoreFacetsModal');\n expect(mockAnalyticsHandler.callLabel).to.equal('collection');\n });\n});\n"]}
@@ -1 +1 @@
1
- import '../../src/collection-facets/more-facets-pagination';
1
+ import '../../src/collection-facets/more-facets-pagination';