@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,41 +1,41 @@
1
- import { LitElement, CSSResultGroup } from 'lit';
2
- export declare type Side = 'left' | 'right';
3
- export declare class ToggleSwitch extends LitElement {
4
- /**
5
- * The value this switch should have when toggled to the left.
6
- */
7
- leftValue: string;
8
- /**
9
- * The human-readable label to display on the left side of this switch.
10
- * If none is provided, `leftValue` is used.
11
- */
12
- leftLabel?: string;
13
- /**
14
- * The value this switch should have when toggled to the right.
15
- */
16
- rightValue: string;
17
- /**
18
- * The human-readable label to display on the right side of this switch.
19
- * If none is provided, `rightValue` is used.
20
- */
21
- rightLabel?: string;
22
- /**
23
- * Which side of the switch is selected (`'left'` or `'right'`).
24
- */
25
- side: Side;
26
- private leftRadio;
27
- render(): import("lit-html").TemplateResult<1>;
28
- /**
29
- * The currently selected value of this switch.
30
- */
31
- get value(): string;
32
- /**
33
- * The label for the currently selected value of this switch.
34
- * Falls back to the current value if its label is not defined.
35
- */
36
- get selectedLabel(): string;
37
- private handleClick;
38
- private handleRadioChange;
39
- private emitChangeEvent;
40
- static get styles(): CSSResultGroup;
41
- }
1
+ import { LitElement, CSSResultGroup } from 'lit';
2
+ export declare type Side = 'left' | 'right';
3
+ export declare class ToggleSwitch extends LitElement {
4
+ /**
5
+ * The value this switch should have when toggled to the left.
6
+ */
7
+ leftValue: string;
8
+ /**
9
+ * The human-readable label to display on the left side of this switch.
10
+ * If none is provided, `leftValue` is used.
11
+ */
12
+ leftLabel?: string;
13
+ /**
14
+ * The value this switch should have when toggled to the right.
15
+ */
16
+ rightValue: string;
17
+ /**
18
+ * The human-readable label to display on the right side of this switch.
19
+ * If none is provided, `rightValue` is used.
20
+ */
21
+ rightLabel?: string;
22
+ /**
23
+ * Which side of the switch is selected (`'left'` or `'right'`).
24
+ */
25
+ side: Side;
26
+ private leftRadio;
27
+ render(): import("lit-html").TemplateResult<1>;
28
+ /**
29
+ * The currently selected value of this switch.
30
+ */
31
+ get value(): string;
32
+ /**
33
+ * The label for the currently selected value of this switch.
34
+ * Falls back to the current value if its label is not defined.
35
+ */
36
+ get selectedLabel(): string;
37
+ private handleClick;
38
+ private handleRadioChange;
39
+ private emitChangeEvent;
40
+ static get styles(): CSSResultGroup;
41
+ }
@@ -1,25 +1,25 @@
1
- import { __decorate } from "tslib";
2
- import { css, html, LitElement } from 'lit';
3
- import { customElement, property, query } from 'lit/decorators.js';
4
- import { srOnlyStyle } from '../styles/sr-only';
5
- let ToggleSwitch = class ToggleSwitch extends LitElement {
6
- constructor() {
7
- super(...arguments);
8
- /**
9
- * The value this switch should have when toggled to the left.
10
- */
11
- this.leftValue = '';
12
- /**
13
- * The value this switch should have when toggled to the right.
14
- */
15
- this.rightValue = '';
16
- /**
17
- * Which side of the switch is selected (`'left'` or `'right'`).
18
- */
19
- this.side = 'left';
20
- }
21
- render() {
22
- var _a, _b;
1
+ import { __decorate } from "tslib";
2
+ import { css, html, LitElement } from 'lit';
3
+ import { customElement, property, query } from 'lit/decorators.js';
4
+ import { srOnlyStyle } from '../styles/sr-only';
5
+ let ToggleSwitch = class ToggleSwitch extends LitElement {
6
+ constructor() {
7
+ super(...arguments);
8
+ /**
9
+ * The value this switch should have when toggled to the left.
10
+ */
11
+ this.leftValue = '';
12
+ /**
13
+ * The value this switch should have when toggled to the right.
14
+ */
15
+ this.rightValue = '';
16
+ /**
17
+ * Which side of the switch is selected (`'left'` or `'right'`).
18
+ */
19
+ this.side = 'left';
20
+ }
21
+ render() {
22
+ var _a, _b;
23
23
  return html `
24
24
  <div id="container">
25
25
  <label for="switch-left">${(_a = this.leftLabel) !== null && _a !== void 0 ? _a : this.leftValue}</label>
@@ -51,52 +51,52 @@ let ToggleSwitch = class ToggleSwitch extends LitElement {
51
51
  </button>
52
52
  <label for="switch-right">${(_b = this.rightLabel) !== null && _b !== void 0 ? _b : this.rightValue}</label>
53
53
  </div>
54
- `;
55
- }
56
- /**
57
- * The currently selected value of this switch.
58
- */
59
- get value() {
60
- return this.side === 'left' ? this.leftValue : this.rightValue;
61
- }
62
- /**
63
- * The label for the currently selected value of this switch.
64
- * Falls back to the current value if its label is not defined.
65
- */
66
- get selectedLabel() {
67
- var _a, _b;
68
- return this.side === 'left'
69
- ? (_a = this.leftLabel) !== null && _a !== void 0 ? _a : this.leftValue
70
- : (_b = this.rightLabel) !== null && _b !== void 0 ? _b : this.rightValue;
71
- }
72
- handleClick() {
73
- this.side = this.side === 'left' ? 'right' : 'left';
74
- this.emitChangeEvent();
75
- }
76
- handleRadioChange() {
77
- this.side = this.leftRadio.checked ? 'left' : 'right';
78
- this.emitChangeEvent();
79
- }
80
- emitChangeEvent() {
81
- const event = new CustomEvent('change', {
82
- detail: this.value,
83
- });
84
- this.dispatchEvent(event);
85
- }
86
- static get styles() {
87
- const switchWidth = css `var(--switchWidth, 30px)`;
88
- const switchHeight = css `var(--switchHeight, 14px)`;
89
- const switchMarginLeft = css `var(--switchMarginLeft, 5px)`;
90
- const switchMarginRight = css `var(--switchMarginRight, 5px)`;
91
- const switchBorderWidth = css `var(--switchBorderWidth, 3px)`;
92
- const switchBgColor = css `var(--switchBgColor, #194880)`;
93
- const switchBorderColor = css `var(--switchBorderColor, #194880)`;
94
- const labelFontSize = css `var(--labelFontSize, 1.3rem)`;
95
- const knobColor = css `var(--knobColor, white)`;
96
- const knobTransitionDuration = css `var(--knobTransitionDuration, 0.25s)`;
97
- const knobTransitionFn = css `var(--knobTransitionFn, ease)`;
98
- return [
99
- srOnlyStyle,
54
+ `;
55
+ }
56
+ /**
57
+ * The currently selected value of this switch.
58
+ */
59
+ get value() {
60
+ return this.side === 'left' ? this.leftValue : this.rightValue;
61
+ }
62
+ /**
63
+ * The label for the currently selected value of this switch.
64
+ * Falls back to the current value if its label is not defined.
65
+ */
66
+ get selectedLabel() {
67
+ var _a, _b;
68
+ return this.side === 'left'
69
+ ? (_a = this.leftLabel) !== null && _a !== void 0 ? _a : this.leftValue
70
+ : (_b = this.rightLabel) !== null && _b !== void 0 ? _b : this.rightValue;
71
+ }
72
+ handleClick() {
73
+ this.side = this.side === 'left' ? 'right' : 'left';
74
+ this.emitChangeEvent();
75
+ }
76
+ handleRadioChange() {
77
+ this.side = this.leftRadio.checked ? 'left' : 'right';
78
+ this.emitChangeEvent();
79
+ }
80
+ emitChangeEvent() {
81
+ const event = new CustomEvent('change', {
82
+ detail: this.value,
83
+ });
84
+ this.dispatchEvent(event);
85
+ }
86
+ static get styles() {
87
+ const switchWidth = css `var(--switchWidth, 30px)`;
88
+ const switchHeight = css `var(--switchHeight, 14px)`;
89
+ const switchMarginLeft = css `var(--switchMarginLeft, 5px)`;
90
+ const switchMarginRight = css `var(--switchMarginRight, 5px)`;
91
+ const switchBorderWidth = css `var(--switchBorderWidth, 3px)`;
92
+ const switchBgColor = css `var(--switchBgColor, #194880)`;
93
+ const switchBorderColor = css `var(--switchBorderColor, #194880)`;
94
+ const labelFontSize = css `var(--labelFontSize, 1.3rem)`;
95
+ const knobColor = css `var(--knobColor, white)`;
96
+ const knobTransitionDuration = css `var(--knobTransitionDuration, 0.25s)`;
97
+ const knobTransitionFn = css `var(--knobTransitionFn, ease)`;
98
+ return [
99
+ srOnlyStyle,
100
100
  css `
101
101
  #container {
102
102
  display: inline-flex;
@@ -145,30 +145,30 @@ let ToggleSwitch = class ToggleSwitch extends LitElement {
145
145
  transition-duration: 0.001s !important; /* Imperceptibly fast */
146
146
  }
147
147
  }
148
- `,
149
- ];
150
- }
151
- };
152
- __decorate([
153
- property({ type: String, attribute: true })
154
- ], ToggleSwitch.prototype, "leftValue", void 0);
155
- __decorate([
156
- property({ type: String, attribute: true })
157
- ], ToggleSwitch.prototype, "leftLabel", void 0);
158
- __decorate([
159
- property({ type: String, attribute: true })
160
- ], ToggleSwitch.prototype, "rightValue", void 0);
161
- __decorate([
162
- property({ type: String, attribute: true })
163
- ], ToggleSwitch.prototype, "rightLabel", void 0);
164
- __decorate([
165
- property({ type: String, attribute: true })
166
- ], ToggleSwitch.prototype, "side", void 0);
167
- __decorate([
168
- query('#switch-left')
169
- ], ToggleSwitch.prototype, "leftRadio", void 0);
170
- ToggleSwitch = __decorate([
171
- customElement('toggle-switch')
172
- ], ToggleSwitch);
173
- export { ToggleSwitch };
148
+ `,
149
+ ];
150
+ }
151
+ };
152
+ __decorate([
153
+ property({ type: String, attribute: true })
154
+ ], ToggleSwitch.prototype, "leftValue", void 0);
155
+ __decorate([
156
+ property({ type: String, attribute: true })
157
+ ], ToggleSwitch.prototype, "leftLabel", void 0);
158
+ __decorate([
159
+ property({ type: String, attribute: true })
160
+ ], ToggleSwitch.prototype, "rightValue", void 0);
161
+ __decorate([
162
+ property({ type: String, attribute: true })
163
+ ], ToggleSwitch.prototype, "rightLabel", void 0);
164
+ __decorate([
165
+ property({ type: String, attribute: true })
166
+ ], ToggleSwitch.prototype, "side", void 0);
167
+ __decorate([
168
+ query('#switch-left')
169
+ ], ToggleSwitch.prototype, "leftRadio", void 0);
170
+ ToggleSwitch = __decorate([
171
+ customElement('toggle-switch')
172
+ ], ToggleSwitch);
173
+ export { ToggleSwitch };
174
174
  //# sourceMappingURL=toggle-switch.js.map
@@ -1,103 +1,103 @@
1
- import { LitElement, PropertyValues, TemplateResult } from 'lit';
2
- import type { Aggregation, AggregationSortType, FilterMap, SearchServiceInterface, SearchType } from '@internetarchive/search-service';
3
- import '@internetarchive/histogram-date-range';
4
- import '@internetarchive/feature-feedback';
5
- import { ModalManagerInterface } from '@internetarchive/modal-manager';
6
- import type { FeatureFeedbackServiceInterface } from '@internetarchive/feature-feedback';
7
- import type { RecaptchaManagerInterface } from '@internetarchive/recaptcha-manager';
8
- import type { AnalyticsManagerInterface } from '@internetarchive/analytics-manager';
9
- import type { SharedResizeObserverInterface } from '@internetarchive/shared-resize-observer';
10
- import { FacetOption, SelectedFacets, FacetGroup } from './models';
11
- import type { CollectionTitles } from './data-source/models';
12
- import './collection-facets/more-facets-content';
13
- import './collection-facets/facets-template';
14
- import './collection-facets/facet-tombstone-row';
15
- import './expanded-date-picker';
16
- export declare class CollectionFacets extends LitElement {
17
- searchService?: SearchServiceInterface;
18
- searchType?: SearchType;
19
- aggregations?: Record<string, Aggregation>;
20
- fullYearsHistogramAggregation?: Aggregation;
21
- minSelectedDate?: string;
22
- maxSelectedDate?: string;
23
- moreLinksVisible: boolean;
24
- facetsLoading: boolean;
25
- fullYearAggregationLoading: boolean;
26
- selectedFacets?: SelectedFacets;
27
- collapsableFacets: boolean;
28
- contentWidth?: number;
29
- showHistogramDatePicker: boolean;
30
- allowExpandingDatePicker: boolean;
31
- query?: string;
32
- withinCollection?: string;
33
- parentCollections: string[];
34
- filterMap?: FilterMap;
35
- baseNavigationUrl?: string;
36
- collectionPagePath: string;
37
- isManageView: boolean;
38
- modalManager?: ModalManagerInterface;
39
- resizeObserver?: SharedResizeObserverInterface;
40
- featureFeedbackService?: FeatureFeedbackServiceInterface;
41
- recaptchaManager?: RecaptchaManagerInterface;
42
- analyticsHandler?: AnalyticsManagerInterface;
43
- collectionTitles?: CollectionTitles;
44
- openFacets: Record<FacetOption, boolean>;
45
- /**
46
- * Maximum # of facet buckets to render per facet group
47
- */
48
- private allowedFacetCount;
49
- render(): TemplateResult<1>;
50
- private get collectionPartOfTemplate();
51
- private partOfCollectionClicked;
52
- /**
53
- * Opens a modal dialog containing an enlarged version of the date picker.
54
- */
55
- private showDatePickerModal;
56
- private handleExpandedDatePickerClosed;
57
- updated(changed: PropertyValues): void;
58
- private dispatchFacetsChangedEvent;
59
- /**
60
- * Template for the "Expand" button to show the date picker modal, or
61
- * `nothing` if that button should currently not be shown.
62
- */
63
- private get expandDatePickerBtnTemplate();
64
- private get histogramTemplate();
65
- /**
66
- * Dispatches a `histogramDateRangeUpdated` event with the date range copied from the
67
- * input event.
68
- *
69
- * Arrow function to ensure `this` is always bound to the current component.
70
- */
71
- private histogramDateRangeUpdated;
72
- /**
73
- * Combines the selected facets with the aggregations to create a single list of facets
74
- */
75
- private get mergedFacets();
76
- /**
77
- * Converts the selected facets to a `FacetGroup` array,
78
- * which is easier to work with
79
- */
80
- private get selectedFacetGroups();
81
- /**
82
- * Converts the raw `aggregations` to `FacetGroups`, which are easier to use
83
- */
84
- private get aggregationFacetGroups();
85
- /**
86
- * Generate the template for a facet group with a header and the collapsible
87
- * chevron for the mobile view
88
- */
89
- private getFacetGroupTemplate;
90
- private getTombstoneFacetGroupTemplate;
91
- /**
92
- * Generate the More... link button just below the facets group
93
- *
94
- * TODO: want to fire analytics?
95
- */
96
- private searchMoreFacetsLink;
97
- showMoreFacetsModal(facetGroup: FacetGroup, sortedBy: AggregationSortType): Promise<void>;
98
- /**
99
- * Generate the list template for each bucket in a facet group
100
- */
101
- private getFacetTemplate;
102
- static get styles(): import("lit").CSSResult[];
103
- }
1
+ import { LitElement, PropertyValues, TemplateResult } from 'lit';
2
+ import type { Aggregation, AggregationSortType, FilterMap, SearchServiceInterface, SearchType } from '@internetarchive/search-service';
3
+ import '@internetarchive/histogram-date-range';
4
+ import '@internetarchive/feature-feedback';
5
+ import { ModalManagerInterface } from '@internetarchive/modal-manager';
6
+ import type { FeatureFeedbackServiceInterface } from '@internetarchive/feature-feedback';
7
+ import type { RecaptchaManagerInterface } from '@internetarchive/recaptcha-manager';
8
+ import type { AnalyticsManagerInterface } from '@internetarchive/analytics-manager';
9
+ import type { SharedResizeObserverInterface } from '@internetarchive/shared-resize-observer';
10
+ import { FacetOption, SelectedFacets, FacetGroup } from './models';
11
+ import type { CollectionTitles } from './data-source/models';
12
+ import './collection-facets/more-facets-content';
13
+ import './collection-facets/facets-template';
14
+ import './collection-facets/facet-tombstone-row';
15
+ import './expanded-date-picker';
16
+ export declare class CollectionFacets extends LitElement {
17
+ searchService?: SearchServiceInterface;
18
+ searchType?: SearchType;
19
+ aggregations?: Record<string, Aggregation>;
20
+ fullYearsHistogramAggregation?: Aggregation;
21
+ minSelectedDate?: string;
22
+ maxSelectedDate?: string;
23
+ moreLinksVisible: boolean;
24
+ facetsLoading: boolean;
25
+ fullYearAggregationLoading: boolean;
26
+ selectedFacets?: SelectedFacets;
27
+ collapsableFacets: boolean;
28
+ contentWidth?: number;
29
+ showHistogramDatePicker: boolean;
30
+ allowExpandingDatePicker: boolean;
31
+ query?: string;
32
+ withinCollection?: string;
33
+ parentCollections: string[];
34
+ filterMap?: FilterMap;
35
+ baseNavigationUrl?: string;
36
+ collectionPagePath: string;
37
+ isManageView: boolean;
38
+ modalManager?: ModalManagerInterface;
39
+ resizeObserver?: SharedResizeObserverInterface;
40
+ featureFeedbackService?: FeatureFeedbackServiceInterface;
41
+ recaptchaManager?: RecaptchaManagerInterface;
42
+ analyticsHandler?: AnalyticsManagerInterface;
43
+ collectionTitles?: CollectionTitles;
44
+ openFacets: Record<FacetOption, boolean>;
45
+ /**
46
+ * Maximum # of facet buckets to render per facet group
47
+ */
48
+ private allowedFacetCount;
49
+ render(): TemplateResult<1>;
50
+ private get collectionPartOfTemplate();
51
+ private partOfCollectionClicked;
52
+ /**
53
+ * Opens a modal dialog containing an enlarged version of the date picker.
54
+ */
55
+ private showDatePickerModal;
56
+ private handleExpandedDatePickerClosed;
57
+ updated(changed: PropertyValues): void;
58
+ private dispatchFacetsChangedEvent;
59
+ /**
60
+ * Template for the "Expand" button to show the date picker modal, or
61
+ * `nothing` if that button should currently not be shown.
62
+ */
63
+ private get expandDatePickerBtnTemplate();
64
+ private get histogramTemplate();
65
+ /**
66
+ * Dispatches a `histogramDateRangeUpdated` event with the date range copied from the
67
+ * input event.
68
+ *
69
+ * Arrow function to ensure `this` is always bound to the current component.
70
+ */
71
+ private histogramDateRangeUpdated;
72
+ /**
73
+ * Combines the selected facets with the aggregations to create a single list of facets
74
+ */
75
+ private get mergedFacets();
76
+ /**
77
+ * Converts the selected facets to a `FacetGroup` array,
78
+ * which is easier to work with
79
+ */
80
+ private get selectedFacetGroups();
81
+ /**
82
+ * Converts the raw `aggregations` to `FacetGroups`, which are easier to use
83
+ */
84
+ private get aggregationFacetGroups();
85
+ /**
86
+ * Generate the template for a facet group with a header and the collapsible
87
+ * chevron for the mobile view
88
+ */
89
+ private getFacetGroupTemplate;
90
+ private getTombstoneFacetGroupTemplate;
91
+ /**
92
+ * Generate the More... link button just below the facets group
93
+ *
94
+ * TODO: want to fire analytics?
95
+ */
96
+ private searchMoreFacetsLink;
97
+ showMoreFacetsModal(facetGroup: FacetGroup, sortedBy: AggregationSortType): Promise<void>;
98
+ /**
99
+ * Generate the list template for each bucket in a facet group
100
+ */
101
+ private getFacetTemplate;
102
+ static get styles(): import("lit").CSSResult[];
103
+ }