@internetarchive/collection-browser 2.7.12 → 2.7.13-alpha2

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 (498) hide show
  1. package/.editorconfig +29 -29
  2. package/.github/workflows/ci.yml +3 -3
  3. package/.github/workflows/gh-pages-main.yml +2 -2
  4. package/.github/workflows/pr-preview.yml +2 -2
  5. package/.husky/pre-commit +4 -4
  6. package/.prettierignore +1 -0
  7. package/LICENSE +661 -661
  8. package/README.md +83 -83
  9. package/dist/index.d.ts +13 -13
  10. package/dist/index.js +11 -13
  11. package/dist/index.js.map +1 -1
  12. package/dist/src/app-root.d.ts +109 -107
  13. package/dist/src/app-root.js +541 -531
  14. package/dist/src/app-root.js.map +1 -1
  15. package/dist/src/assets/img/icons/arrow-left.d.ts +2 -2
  16. package/dist/src/assets/img/icons/arrow-left.js +2 -2
  17. package/dist/src/assets/img/icons/arrow-right.d.ts +2 -2
  18. package/dist/src/assets/img/icons/arrow-right.js +2 -2
  19. package/dist/src/assets/img/icons/chevron.d.ts +2 -2
  20. package/dist/src/assets/img/icons/chevron.js +2 -2
  21. package/dist/src/assets/img/icons/contract.d.ts +2 -2
  22. package/dist/src/assets/img/icons/contract.js +2 -2
  23. package/dist/src/assets/img/icons/empty-query.d.ts +2 -2
  24. package/dist/src/assets/img/icons/empty-query.js +2 -2
  25. package/dist/src/assets/img/icons/expand.d.ts +2 -2
  26. package/dist/src/assets/img/icons/expand.js +2 -2
  27. package/dist/src/assets/img/icons/eye-closed.d.ts +2 -2
  28. package/dist/src/assets/img/icons/eye-closed.js +2 -2
  29. package/dist/src/assets/img/icons/eye.d.ts +2 -2
  30. package/dist/src/assets/img/icons/eye.js +2 -2
  31. package/dist/src/assets/img/icons/favorite-filled.d.ts +1 -1
  32. package/dist/src/assets/img/icons/favorite-filled.js +2 -2
  33. package/dist/src/assets/img/icons/favorite-unfilled.d.ts +1 -1
  34. package/dist/src/assets/img/icons/favorite-unfilled.js +2 -2
  35. package/dist/src/assets/img/icons/filter.d.ts +2 -2
  36. package/dist/src/assets/img/icons/filter.js +2 -2
  37. package/dist/src/assets/img/icons/login-required.d.ts +1 -1
  38. package/dist/src/assets/img/icons/login-required.js +2 -2
  39. package/dist/src/assets/img/icons/mediatype/account.d.ts +1 -1
  40. package/dist/src/assets/img/icons/mediatype/account.js +2 -2
  41. package/dist/src/assets/img/icons/mediatype/audio.d.ts +1 -1
  42. package/dist/src/assets/img/icons/mediatype/audio.js +2 -2
  43. package/dist/src/assets/img/icons/mediatype/collection.d.ts +1 -1
  44. package/dist/src/assets/img/icons/mediatype/collection.js +2 -2
  45. package/dist/src/assets/img/icons/mediatype/data.d.ts +1 -1
  46. package/dist/src/assets/img/icons/mediatype/data.js +2 -2
  47. package/dist/src/assets/img/icons/mediatype/etree.d.ts +1 -1
  48. package/dist/src/assets/img/icons/mediatype/etree.js +2 -2
  49. package/dist/src/assets/img/icons/mediatype/film.d.ts +1 -1
  50. package/dist/src/assets/img/icons/mediatype/film.js +2 -2
  51. package/dist/src/assets/img/icons/mediatype/images.d.ts +1 -1
  52. package/dist/src/assets/img/icons/mediatype/images.js +2 -2
  53. package/dist/src/assets/img/icons/mediatype/radio.d.ts +1 -1
  54. package/dist/src/assets/img/icons/mediatype/radio.js +2 -2
  55. package/dist/src/assets/img/icons/mediatype/search.d.ts +1 -1
  56. package/dist/src/assets/img/icons/mediatype/search.js +2 -2
  57. package/dist/src/assets/img/icons/mediatype/software.d.ts +1 -1
  58. package/dist/src/assets/img/icons/mediatype/software.js +2 -2
  59. package/dist/src/assets/img/icons/mediatype/texts.d.ts +1 -1
  60. package/dist/src/assets/img/icons/mediatype/texts.js +2 -2
  61. package/dist/src/assets/img/icons/mediatype/tv.d.ts +1 -1
  62. package/dist/src/assets/img/icons/mediatype/tv.js +2 -2
  63. package/dist/src/assets/img/icons/mediatype/video.d.ts +1 -1
  64. package/dist/src/assets/img/icons/mediatype/video.js +2 -2
  65. package/dist/src/assets/img/icons/mediatype/web.d.ts +1 -1
  66. package/dist/src/assets/img/icons/mediatype/web.js +2 -2
  67. package/dist/src/assets/img/icons/null-result.d.ts +2 -2
  68. package/dist/src/assets/img/icons/null-result.js +2 -2
  69. package/dist/src/assets/img/icons/restricted.d.ts +1 -1
  70. package/dist/src/assets/img/icons/restricted.js +2 -2
  71. package/dist/src/assets/img/icons/reviews.d.ts +1 -1
  72. package/dist/src/assets/img/icons/reviews.js +2 -2
  73. package/dist/src/assets/img/icons/upload.d.ts +1 -1
  74. package/dist/src/assets/img/icons/upload.js +2 -2
  75. package/dist/src/assets/img/icons/views.d.ts +1 -1
  76. package/dist/src/assets/img/icons/views.js +2 -2
  77. package/dist/src/circular-activity-indicator.d.ts +5 -5
  78. package/dist/src/circular-activity-indicator.js +17 -17
  79. package/dist/src/circular-activity-indicator.js.map +1 -1
  80. package/dist/src/collection-browser.d.ts +607 -606
  81. package/dist/src/collection-browser.js +1683 -1677
  82. package/dist/src/collection-browser.js.map +1 -1
  83. package/dist/src/collection-facets/facet-row.d.ts +30 -30
  84. package/dist/src/collection-facets/facet-row.js +118 -118
  85. package/dist/src/collection-facets/facet-row.js.map +1 -1
  86. package/dist/src/collection-facets/facet-tombstone-row.d.ts +5 -5
  87. package/dist/src/collection-facets/facet-tombstone-row.js +15 -15
  88. package/dist/src/collection-facets/facet-tombstone-row.js.map +1 -1
  89. package/dist/src/collection-facets/facets-template.d.ts +13 -13
  90. package/dist/src/collection-facets/facets-template.js +49 -49
  91. package/dist/src/collection-facets/facets-template.js.map +1 -1
  92. package/dist/src/collection-facets/more-facets-content.d.ts +106 -106
  93. package/dist/src/collection-facets/more-facets-content.js +406 -408
  94. package/dist/src/collection-facets/more-facets-content.js.map +1 -1
  95. package/dist/src/collection-facets/more-facets-pagination.d.ts +36 -36
  96. package/dist/src/collection-facets/more-facets-pagination.js +197 -196
  97. package/dist/src/collection-facets/more-facets-pagination.js.map +1 -1
  98. package/dist/src/collection-facets/smart-facets/dedupe.d.ts +10 -10
  99. package/dist/src/collection-facets/smart-facets/dedupe.js +33 -33
  100. package/dist/src/collection-facets/smart-facets/dedupe.js.map +1 -1
  101. package/dist/src/collection-facets/smart-facets/heuristics/browser-language-heuristic.d.ts +5 -5
  102. package/dist/src/collection-facets/smart-facets/heuristics/browser-language-heuristic.js +23 -23
  103. package/dist/src/collection-facets/smart-facets/heuristics/query-keywords-heuristic.d.ts +5 -5
  104. package/dist/src/collection-facets/smart-facets/heuristics/query-keywords-heuristic.js +44 -44
  105. package/dist/src/collection-facets/smart-facets/heuristics/query-keywords-heuristic.js.map +1 -1
  106. package/dist/src/collection-facets/smart-facets/heuristics/wikidata-heuristic.d.ts +5 -5
  107. package/dist/src/collection-facets/smart-facets/heuristics/wikidata-heuristic.js +172 -172
  108. package/dist/src/collection-facets/smart-facets/heuristics/wikidata-heuristic.js.map +1 -1
  109. package/dist/src/collection-facets/smart-facets/models.d.ts +26 -26
  110. package/dist/src/collection-facets/smart-facets/models.js +1 -1
  111. package/dist/src/collection-facets/smart-facets/smart-facet-bar.d.ts +31 -31
  112. package/dist/src/collection-facets/smart-facets/smart-facet-bar.js +237 -240
  113. package/dist/src/collection-facets/smart-facets/smart-facet-bar.js.map +1 -1
  114. package/dist/src/collection-facets/smart-facets/smart-facet-button.d.ts +11 -11
  115. package/dist/src/collection-facets/smart-facets/smart-facet-button.js +86 -86
  116. package/dist/src/collection-facets/smart-facets/smart-facet-button.js.map +1 -1
  117. package/dist/src/collection-facets/smart-facets/smart-facet-dropdown.d.ts +16 -16
  118. package/dist/src/collection-facets/smart-facets/smart-facet-dropdown.js +100 -100
  119. package/dist/src/collection-facets/smart-facets/smart-facet-dropdown.js.map +1 -1
  120. package/dist/src/collection-facets/smart-facets/smart-facet-equals.d.ts +2 -2
  121. package/dist/src/collection-facets/smart-facets/smart-facet-equals.js +12 -12
  122. package/dist/src/collection-facets/smart-facets/smart-facet-heuristics.d.ts +5 -5
  123. package/dist/src/collection-facets/smart-facets/smart-facet-heuristics.js +15 -15
  124. package/dist/src/collection-facets/smart-facets/smart-facet-heuristics.js.map +1 -1
  125. package/dist/src/collection-facets/toggle-switch.d.ts +41 -41
  126. package/dist/src/collection-facets/toggle-switch.js +94 -94
  127. package/dist/src/collection-facets/toggle-switch.js.map +1 -1
  128. package/dist/src/collection-facets.d.ts +103 -103
  129. package/dist/src/collection-facets.js +521 -522
  130. package/dist/src/collection-facets.js.map +1 -1
  131. package/dist/src/data-source/collection-browser-data-source-interface.d.ts +245 -245
  132. package/dist/src/data-source/collection-browser-data-source-interface.js +1 -1
  133. package/dist/src/data-source/collection-browser-data-source-interface.js.map +1 -1
  134. package/dist/src/data-source/collection-browser-data-source.d.ts +377 -377
  135. package/dist/src/data-source/collection-browser-data-source.js +1003 -1001
  136. package/dist/src/data-source/collection-browser-data-source.js.map +1 -1
  137. package/dist/src/data-source/collection-browser-query-state.d.ts +44 -44
  138. package/dist/src/data-source/collection-browser-query-state.js +1 -1
  139. package/dist/src/data-source/models.d.ts +28 -28
  140. package/dist/src/data-source/models.js +8 -8
  141. package/dist/src/empty-placeholder.d.ts +23 -23
  142. package/dist/src/empty-placeholder.js +87 -88
  143. package/dist/src/empty-placeholder.js.map +1 -1
  144. package/dist/src/expanded-date-picker.d.ts +43 -43
  145. package/dist/src/expanded-date-picker.js +109 -109
  146. package/dist/src/expanded-date-picker.js.map +1 -1
  147. package/dist/src/language-code-handler/language-code-handler.d.ts +37 -37
  148. package/dist/src/language-code-handler/language-code-handler.js +26 -26
  149. package/dist/src/language-code-handler/language-code-handler.js.map +1 -1
  150. package/dist/src/language-code-handler/language-code-mapping.d.ts +1 -1
  151. package/dist/src/language-code-handler/language-code-mapping.js +562 -562
  152. package/dist/src/language-code-handler/language-code-mapping.js.map +1 -1
  153. package/dist/src/manage/manage-bar.d.ts +58 -58
  154. package/dist/src/manage/manage-bar.js +175 -175
  155. package/dist/src/manage/manage-bar.js.map +1 -1
  156. package/dist/src/manage/remove-items-modal-content.d.ts +9 -9
  157. package/dist/src/manage/remove-items-modal-content.js +34 -34
  158. package/dist/src/manage/remove-items-modal-content.js.map +1 -1
  159. package/dist/src/mediatype/mediatype-config.d.ts +3 -3
  160. package/dist/src/mediatype/mediatype-config.js +92 -91
  161. package/dist/src/mediatype/mediatype-config.js.map +1 -1
  162. package/dist/src/models.d.ts +228 -228
  163. package/dist/src/models.js +401 -401
  164. package/dist/src/models.js.map +1 -1
  165. package/dist/src/restoration-state-handler.d.ts +70 -70
  166. package/dist/src/restoration-state-handler.js +362 -363
  167. package/dist/src/restoration-state-handler.js.map +1 -1
  168. package/dist/src/sort-filter-bar/alpha-bar-tooltip.d.ts +6 -6
  169. package/dist/src/sort-filter-bar/alpha-bar-tooltip.js +24 -24
  170. package/dist/src/sort-filter-bar/alpha-bar-tooltip.js.map +1 -1
  171. package/dist/src/sort-filter-bar/alpha-bar.d.ts +21 -21
  172. package/dist/src/sort-filter-bar/alpha-bar.js +136 -136
  173. package/dist/src/sort-filter-bar/alpha-bar.js.map +1 -1
  174. package/dist/src/sort-filter-bar/img/compact.d.ts +1 -1
  175. package/dist/src/sort-filter-bar/img/compact.js +2 -2
  176. package/dist/src/sort-filter-bar/img/list.d.ts +1 -1
  177. package/dist/src/sort-filter-bar/img/list.js +2 -2
  178. package/dist/src/sort-filter-bar/img/sort-toggle-disabled.d.ts +1 -1
  179. package/dist/src/sort-filter-bar/img/sort-toggle-disabled.js +2 -2
  180. package/dist/src/sort-filter-bar/img/sort-toggle-down.d.ts +1 -1
  181. package/dist/src/sort-filter-bar/img/sort-toggle-down.js +2 -2
  182. package/dist/src/sort-filter-bar/img/sort-toggle-up.d.ts +1 -1
  183. package/dist/src/sort-filter-bar/img/sort-toggle-up.js +2 -2
  184. package/dist/src/sort-filter-bar/img/sort-triangle.d.ts +1 -1
  185. package/dist/src/sort-filter-bar/img/sort-triangle.js +2 -2
  186. package/dist/src/sort-filter-bar/img/tile.d.ts +1 -1
  187. package/dist/src/sort-filter-bar/img/tile.js +2 -2
  188. package/dist/src/sort-filter-bar/sort-filter-bar.d.ts +223 -223
  189. package/dist/src/sort-filter-bar/sort-filter-bar.js +696 -697
  190. package/dist/src/sort-filter-bar/sort-filter-bar.js.map +1 -1
  191. package/dist/src/styles/ia-button.d.ts +2 -2
  192. package/dist/src/styles/ia-button.js +17 -17
  193. package/dist/src/styles/item-image-styles.d.ts +8 -8
  194. package/dist/src/styles/item-image-styles.js +9 -9
  195. package/dist/src/styles/sr-only.d.ts +1 -1
  196. package/dist/src/styles/sr-only.js +2 -2
  197. package/dist/src/tiles/base-tile-component.d.ts +19 -19
  198. package/dist/src/tiles/base-tile-component.js +64 -64
  199. package/dist/src/tiles/base-tile-component.js.map +1 -1
  200. package/dist/src/tiles/collection-browser-loading-tile.d.ts +5 -5
  201. package/dist/src/tiles/collection-browser-loading-tile.js +15 -15
  202. package/dist/src/tiles/collection-browser-loading-tile.js.map +1 -1
  203. package/dist/src/tiles/grid/account-tile.d.ts +18 -18
  204. package/dist/src/tiles/grid/account-tile.js +72 -72
  205. package/dist/src/tiles/grid/account-tile.js.map +1 -1
  206. package/dist/src/tiles/grid/collection-tile.d.ts +15 -15
  207. package/dist/src/tiles/grid/collection-tile.js +80 -80
  208. package/dist/src/tiles/grid/collection-tile.js.map +1 -1
  209. package/dist/src/tiles/grid/item-tile.d.ts +34 -34
  210. package/dist/src/tiles/grid/item-tile.js +159 -160
  211. package/dist/src/tiles/grid/item-tile.js.map +1 -1
  212. package/dist/src/tiles/grid/search-tile.d.ts +10 -10
  213. package/dist/src/tiles/grid/search-tile.js +51 -51
  214. package/dist/src/tiles/grid/search-tile.js.map +1 -1
  215. package/dist/src/tiles/grid/styles/tile-grid-shared-styles.d.ts +1 -1
  216. package/dist/src/tiles/grid/styles/tile-grid-shared-styles.js +8 -8
  217. package/dist/src/tiles/grid/tile-stats.d.ts +11 -11
  218. package/dist/src/tiles/grid/tile-stats.js +54 -54
  219. package/dist/src/tiles/grid/tile-stats.js.map +1 -1
  220. package/dist/src/tiles/hover/hover-pane-controller.d.ts +219 -219
  221. package/dist/src/tiles/hover/hover-pane-controller.js +352 -352
  222. package/dist/src/tiles/hover/hover-pane-controller.js.map +1 -1
  223. package/dist/src/tiles/hover/tile-hover-pane.d.ts +18 -18
  224. package/dist/src/tiles/hover/tile-hover-pane.js +72 -70
  225. package/dist/src/tiles/hover/tile-hover-pane.js.map +1 -1
  226. package/dist/src/tiles/image-block.d.ts +18 -18
  227. package/dist/src/tiles/image-block.js +89 -89
  228. package/dist/src/tiles/image-block.js.map +1 -1
  229. package/dist/src/tiles/item-image.d.ts +39 -39
  230. package/dist/src/tiles/item-image.js +154 -154
  231. package/dist/src/tiles/item-image.js.map +1 -1
  232. package/dist/src/tiles/list/tile-list-compact-header.d.ts +6 -6
  233. package/dist/src/tiles/list/tile-list-compact-header.js +38 -38
  234. package/dist/src/tiles/list/tile-list-compact-header.js.map +1 -1
  235. package/dist/src/tiles/list/tile-list-compact.d.ts +19 -19
  236. package/dist/src/tiles/list/tile-list-compact.js +122 -122
  237. package/dist/src/tiles/list/tile-list-compact.js.map +1 -1
  238. package/dist/src/tiles/list/tile-list.d.ts +54 -54
  239. package/dist/src/tiles/list/tile-list.js +324 -326
  240. package/dist/src/tiles/list/tile-list.js.map +1 -1
  241. package/dist/src/tiles/mediatype-icon.d.ts +9 -9
  242. package/dist/src/tiles/mediatype-icon.js +47 -47
  243. package/dist/src/tiles/mediatype-icon.js.map +1 -1
  244. package/dist/src/tiles/overlay/icon-overlay.d.ts +8 -8
  245. package/dist/src/tiles/overlay/icon-overlay.js +25 -25
  246. package/dist/src/tiles/overlay/icon-overlay.js.map +1 -1
  247. package/dist/src/tiles/overlay/text-overlay.d.ts +9 -9
  248. package/dist/src/tiles/overlay/text-overlay.js +31 -31
  249. package/dist/src/tiles/overlay/text-overlay.js.map +1 -1
  250. package/dist/src/tiles/review-block.d.ts +12 -12
  251. package/dist/src/tiles/review-block.js +56 -56
  252. package/dist/src/tiles/review-block.js.map +1 -1
  253. package/dist/src/tiles/text-snippet-block.d.ts +27 -27
  254. package/dist/src/tiles/text-snippet-block.js +73 -73
  255. package/dist/src/tiles/text-snippet-block.js.map +1 -1
  256. package/dist/src/tiles/tile-dispatcher.d.ts +64 -64
  257. package/dist/src/tiles/tile-dispatcher.js +230 -230
  258. package/dist/src/tiles/tile-dispatcher.js.map +1 -1
  259. package/dist/src/tiles/tile-display-value-provider.d.ts +47 -47
  260. package/dist/src/tiles/tile-display-value-provider.js +94 -94
  261. package/dist/src/tiles/tile-display-value-provider.js.map +1 -1
  262. package/dist/src/utils/analytics-events.d.ts +28 -28
  263. package/dist/src/utils/analytics-events.js +30 -30
  264. package/dist/src/utils/array-equals.d.ts +4 -4
  265. package/dist/src/utils/array-equals.js +10 -10
  266. package/dist/src/utils/collapse-repeated-quotes.d.ts +11 -11
  267. package/dist/src/utils/collapse-repeated-quotes.js +13 -13
  268. package/dist/src/utils/facet-utils.d.ts +83 -83
  269. package/dist/src/utils/facet-utils.js +145 -145
  270. package/dist/src/utils/facet-utils.js.map +1 -1
  271. package/dist/src/utils/format-count.d.ts +7 -7
  272. package/dist/src/utils/format-count.js +75 -76
  273. package/dist/src/utils/format-count.js.map +1 -1
  274. package/dist/src/utils/format-date.d.ts +2 -2
  275. package/dist/src/utils/format-date.js +27 -27
  276. package/dist/src/utils/format-date.js.map +1 -1
  277. package/dist/src/utils/format-unit-size.d.ts +2 -2
  278. package/dist/src/utils/format-unit-size.js +33 -33
  279. package/dist/src/utils/format-unit-size.js.map +1 -1
  280. package/dist/src/utils/local-date-from-utc.d.ts +9 -9
  281. package/dist/src/utils/local-date-from-utc.js +15 -15
  282. package/dist/src/utils/log.d.ts +7 -7
  283. package/dist/src/utils/log.js +13 -15
  284. package/dist/src/utils/log.js.map +1 -1
  285. package/dist/src/utils/resolve-mediatype.d.ts +8 -8
  286. package/dist/src/utils/resolve-mediatype.js +23 -23
  287. package/dist/src/utils/resolve-mediatype.js.map +1 -1
  288. package/dist/src/utils/sha1.d.ts +2 -2
  289. package/dist/src/utils/sha1.js +8 -8
  290. package/dist/test/collection-browser.test.d.ts +1 -1
  291. package/dist/test/collection-browser.test.js +1309 -1308
  292. package/dist/test/collection-browser.test.js.map +1 -1
  293. package/dist/test/collection-facets/facet-row.test.d.ts +1 -1
  294. package/dist/test/collection-facets/facet-row.test.js +230 -227
  295. package/dist/test/collection-facets/facet-row.test.js.map +1 -1
  296. package/dist/test/collection-facets/facets-template.test.d.ts +1 -1
  297. package/dist/test/collection-facets/facets-template.test.js +91 -91
  298. package/dist/test/collection-facets/facets-template.test.js.map +1 -1
  299. package/dist/test/collection-facets/more-facets-content.test.d.ts +1 -1
  300. package/dist/test/collection-facets/more-facets-content.test.js +140 -141
  301. package/dist/test/collection-facets/more-facets-content.test.js.map +1 -1
  302. package/dist/test/collection-facets/more-facets-pagination.test.d.ts +1 -1
  303. package/dist/test/collection-facets/more-facets-pagination.test.js +116 -117
  304. package/dist/test/collection-facets/more-facets-pagination.test.js.map +1 -1
  305. package/dist/test/collection-facets/toggle-switch.test.d.ts +1 -1
  306. package/dist/test/collection-facets/toggle-switch.test.js +82 -73
  307. package/dist/test/collection-facets/toggle-switch.test.js.map +1 -1
  308. package/dist/test/collection-facets.test.d.ts +2 -2
  309. package/dist/test/collection-facets.test.js +692 -692
  310. package/dist/test/collection-facets.test.js.map +1 -1
  311. package/dist/test/data-source/collection-browser-data-source.test.d.ts +1 -1
  312. package/dist/test/data-source/collection-browser-data-source.test.js +89 -89
  313. package/dist/test/data-source/collection-browser-data-source.test.js.map +1 -1
  314. package/dist/test/empty-placeholder.test.d.ts +1 -1
  315. package/dist/test/empty-placeholder.test.js +62 -63
  316. package/dist/test/empty-placeholder.test.js.map +1 -1
  317. package/dist/test/expanded-date-picker.test.d.ts +1 -1
  318. package/dist/test/expanded-date-picker.test.js +97 -96
  319. package/dist/test/expanded-date-picker.test.js.map +1 -1
  320. package/dist/test/icon-overlay.test.d.ts +1 -1
  321. package/dist/test/icon-overlay.test.js +23 -24
  322. package/dist/test/icon-overlay.test.js.map +1 -1
  323. package/dist/test/image-block.test.d.ts +1 -1
  324. package/dist/test/image-block.test.js +106 -107
  325. package/dist/test/image-block.test.js.map +1 -1
  326. package/dist/test/item-image.test.d.ts +1 -1
  327. package/dist/test/item-image.test.js +84 -85
  328. package/dist/test/item-image.test.js.map +1 -1
  329. package/dist/test/manage/manage-bar.test.d.ts +2 -2
  330. package/dist/test/manage/manage-bar.test.js +100 -101
  331. package/dist/test/manage/manage-bar.test.js.map +1 -1
  332. package/dist/test/manage/remove-items-modal-content.test.d.ts +1 -1
  333. package/dist/test/manage/remove-items-modal-content.test.js +44 -45
  334. package/dist/test/manage/remove-items-modal-content.test.js.map +1 -1
  335. package/dist/test/mediatype-config.test.d.ts +1 -1
  336. package/dist/test/mediatype-config.test.js +16 -16
  337. package/dist/test/mocks/mock-analytics-handler.d.ts +10 -10
  338. package/dist/test/mocks/mock-analytics-handler.js +15 -15
  339. package/dist/test/mocks/mock-search-responses.d.ts +25 -25
  340. package/dist/test/mocks/mock-search-responses.js +942 -942
  341. package/dist/test/mocks/mock-search-responses.js.map +1 -1
  342. package/dist/test/mocks/mock-search-service.d.ts +15 -15
  343. package/dist/test/mocks/mock-search-service.js +54 -54
  344. package/dist/test/mocks/mock-search-service.js.map +1 -1
  345. package/dist/test/restoration-state-handler.test.d.ts +1 -1
  346. package/dist/test/restoration-state-handler.test.js +270 -270
  347. package/dist/test/restoration-state-handler.test.js.map +1 -1
  348. package/dist/test/review-block.test.d.ts +1 -1
  349. package/dist/test/review-block.test.js +43 -44
  350. package/dist/test/review-block.test.js.map +1 -1
  351. package/dist/test/sort-filter-bar/alpha-bar-tooltip.test.d.ts +1 -1
  352. package/dist/test/sort-filter-bar/alpha-bar-tooltip.test.js +12 -12
  353. package/dist/test/sort-filter-bar/alpha-bar-tooltip.test.js.map +1 -1
  354. package/dist/test/sort-filter-bar/alpha-bar.test.d.ts +1 -1
  355. package/dist/test/sort-filter-bar/alpha-bar.test.js +73 -73
  356. package/dist/test/sort-filter-bar/alpha-bar.test.js.map +1 -1
  357. package/dist/test/sort-filter-bar/sort-filter-bar.test.d.ts +1 -1
  358. package/dist/test/sort-filter-bar/sort-filter-bar.test.js +425 -426
  359. package/dist/test/sort-filter-bar/sort-filter-bar.test.js.map +1 -1
  360. package/dist/test/text-overlay.test.d.ts +1 -1
  361. package/dist/test/text-overlay.test.js +37 -38
  362. package/dist/test/text-overlay.test.js.map +1 -1
  363. package/dist/test/text-snippet-block.test.d.ts +1 -1
  364. package/dist/test/text-snippet-block.test.js +56 -57
  365. package/dist/test/text-snippet-block.test.js.map +1 -1
  366. package/dist/test/tile-stats.test.d.ts +1 -1
  367. package/dist/test/tile-stats.test.js +98 -99
  368. package/dist/test/tile-stats.test.js.map +1 -1
  369. package/dist/test/tiles/grid/account-tile.test.d.ts +1 -1
  370. package/dist/test/tiles/grid/account-tile.test.js +75 -76
  371. package/dist/test/tiles/grid/account-tile.test.js.map +1 -1
  372. package/dist/test/tiles/grid/collection-tile.test.d.ts +1 -1
  373. package/dist/test/tiles/grid/collection-tile.test.js +72 -73
  374. package/dist/test/tiles/grid/collection-tile.test.js.map +1 -1
  375. package/dist/test/tiles/grid/item-tile.test.d.ts +1 -1
  376. package/dist/test/tiles/grid/item-tile.test.js +311 -312
  377. package/dist/test/tiles/grid/item-tile.test.js.map +1 -1
  378. package/dist/test/tiles/grid/search-tile.test.d.ts +1 -1
  379. package/dist/test/tiles/grid/search-tile.test.js +50 -51
  380. package/dist/test/tiles/grid/search-tile.test.js.map +1 -1
  381. package/dist/test/tiles/hover/hover-pane-controller.test.d.ts +1 -1
  382. package/dist/test/tiles/hover/hover-pane-controller.test.js +259 -259
  383. package/dist/test/tiles/hover/hover-pane-controller.test.js.map +1 -1
  384. package/dist/test/tiles/hover/tile-hover-pane.test.d.ts +1 -1
  385. package/dist/test/tiles/hover/tile-hover-pane.test.js +56 -56
  386. package/dist/test/tiles/hover/tile-hover-pane.test.js.map +1 -1
  387. package/dist/test/tiles/list/tile-list-compact.test.d.ts +1 -1
  388. package/dist/test/tiles/list/tile-list-compact.test.js +142 -143
  389. package/dist/test/tiles/list/tile-list-compact.test.js.map +1 -1
  390. package/dist/test/tiles/list/tile-list.test.d.ts +1 -1
  391. package/dist/test/tiles/list/tile-list.test.js +296 -297
  392. package/dist/test/tiles/list/tile-list.test.js.map +1 -1
  393. package/dist/test/tiles/tile-dispatcher.test.d.ts +1 -1
  394. package/dist/test/tiles/tile-dispatcher.test.js +100 -100
  395. package/dist/test/tiles/tile-dispatcher.test.js.map +1 -1
  396. package/dist/test/tiles/tile-display-value-provider.test.d.ts +1 -1
  397. package/dist/test/tiles/tile-display-value-provider.test.js +141 -141
  398. package/dist/test/utils/array-equals.test.d.ts +1 -1
  399. package/dist/test/utils/array-equals.test.js +26 -26
  400. package/dist/test/utils/format-count.test.d.ts +1 -1
  401. package/dist/test/utils/format-count.test.js +23 -23
  402. package/dist/test/utils/format-count.test.js.map +1 -1
  403. package/dist/test/utils/format-date.test.d.ts +1 -1
  404. package/dist/test/utils/format-date.test.js +30 -30
  405. package/dist/test/utils/format-date.test.js.map +1 -1
  406. package/dist/test/utils/format-unit-size.test.d.ts +1 -1
  407. package/dist/test/utils/format-unit-size.test.js +17 -17
  408. package/dist/test/utils/local-date-from-utc.test.d.ts +1 -1
  409. package/dist/test/utils/local-date-from-utc.test.js +26 -26
  410. package/dist/test/utils/local-date-from-utc.test.js.map +1 -1
  411. package/eslint.config.mjs +53 -0
  412. package/index.html +0 -3
  413. package/local.archive.org.cert +86 -86
  414. package/local.archive.org.key +27 -27
  415. package/package.json +41 -39
  416. package/renovate.json +6 -6
  417. package/src/app-root.ts +33 -23
  418. package/src/collection-browser.ts +44 -42
  419. package/src/collection-facets/facets-template.ts +7 -6
  420. package/src/collection-facets/more-facets-content.ts +11 -13
  421. package/src/collection-facets/more-facets-pagination.ts +3 -2
  422. package/src/collection-facets/smart-facets/dedupe.ts +2 -2
  423. package/src/collection-facets/smart-facets/heuristics/query-keywords-heuristic.ts +1 -1
  424. package/src/collection-facets/smart-facets/heuristics/wikidata-heuristic.ts +6 -6
  425. package/src/collection-facets/smart-facets/smart-facet-bar.ts +6 -8
  426. package/src/collection-facets/smart-facets/smart-facet-button.ts +5 -3
  427. package/src/collection-facets/smart-facets/smart-facet-dropdown.ts +4 -4
  428. package/src/collection-facets/smart-facets/smart-facet-heuristics.ts +1 -1
  429. package/src/collection-facets/toggle-switch.ts +2 -2
  430. package/src/collection-facets.ts +18 -19
  431. package/src/data-source/collection-browser-data-source-interface.ts +5 -1
  432. package/src/data-source/collection-browser-data-source.ts +42 -35
  433. package/src/empty-placeholder.ts +19 -16
  434. package/src/expanded-date-picker.ts +1 -1
  435. package/src/language-code-handler/language-code-handler.ts +1 -1
  436. package/src/manage/manage-bar.ts +23 -20
  437. package/src/manage/remove-items-modal-content.ts +2 -2
  438. package/src/mediatype/mediatype-config.ts +1 -0
  439. package/src/models.ts +3 -3
  440. package/src/restoration-state-handler.ts +14 -15
  441. package/src/sort-filter-bar/alpha-bar.ts +16 -17
  442. package/src/sort-filter-bar/sort-filter-bar.ts +14 -15
  443. package/src/tiles/grid/account-tile.ts +1 -1
  444. package/src/tiles/grid/collection-tile.ts +1 -1
  445. package/src/tiles/grid/item-tile.ts +9 -9
  446. package/src/tiles/grid/tile-stats.ts +4 -4
  447. package/src/tiles/hover/hover-pane-controller.ts +1 -1
  448. package/src/tiles/hover/tile-hover-pane.ts +4 -2
  449. package/src/tiles/item-image.ts +1 -1
  450. package/src/tiles/list/tile-list-compact.ts +2 -2
  451. package/src/tiles/list/tile-list.ts +22 -24
  452. package/src/tiles/tile-dispatcher.ts +5 -5
  453. package/src/tiles/tile-display-value-provider.ts +4 -4
  454. package/src/utils/facet-utils.ts +6 -6
  455. package/src/utils/format-count.ts +2 -3
  456. package/src/utils/format-date.ts +1 -1
  457. package/src/utils/format-unit-size.ts +1 -1
  458. package/src/utils/log.ts +1 -3
  459. package/test/collection-browser.test.ts +125 -124
  460. package/test/collection-facets/facet-row.test.ts +31 -28
  461. package/test/collection-facets/facets-template.test.ts +9 -9
  462. package/test/collection-facets/more-facets-content.test.ts +14 -15
  463. package/test/collection-facets/more-facets-pagination.test.ts +18 -19
  464. package/test/collection-facets/toggle-switch.test.ts +28 -18
  465. package/test/collection-facets.test.ts +46 -39
  466. package/test/data-source/collection-browser-data-source.test.ts +2 -2
  467. package/test/empty-placeholder.test.ts +6 -7
  468. package/test/expanded-date-picker.test.ts +25 -20
  469. package/test/icon-overlay.test.ts +0 -1
  470. package/test/image-block.test.ts +6 -7
  471. package/test/item-image.test.ts +0 -1
  472. package/test/manage/manage-bar.test.ts +19 -16
  473. package/test/manage/remove-items-modal-content.test.ts +4 -5
  474. package/test/mocks/mock-search-responses.ts +2 -1
  475. package/test/mocks/mock-search-service.ts +1 -1
  476. package/test/restoration-state-handler.test.ts +12 -12
  477. package/test/review-block.test.ts +1 -2
  478. package/test/sort-filter-bar/alpha-bar-tooltip.test.ts +1 -1
  479. package/test/sort-filter-bar/alpha-bar.test.ts +5 -5
  480. package/test/sort-filter-bar/sort-filter-bar.test.ts +38 -39
  481. package/test/text-overlay.test.ts +0 -1
  482. package/test/text-snippet-block.test.ts +5 -6
  483. package/test/tile-stats.test.ts +26 -35
  484. package/test/tiles/grid/account-tile.test.ts +2 -3
  485. package/test/tiles/grid/collection-tile.test.ts +3 -4
  486. package/test/tiles/grid/item-tile.test.ts +13 -14
  487. package/test/tiles/grid/search-tile.test.ts +1 -2
  488. package/test/tiles/hover/hover-pane-controller.test.ts +15 -15
  489. package/test/tiles/hover/tile-hover-pane.test.ts +5 -5
  490. package/test/tiles/list/tile-list-compact.test.ts +1 -2
  491. package/test/tiles/list/tile-list.test.ts +10 -11
  492. package/test/tiles/tile-dispatcher.test.ts +5 -5
  493. package/test/utils/format-count.test.ts +1 -1
  494. package/test/utils/format-date.test.ts +1 -1
  495. package/test/utils/local-date-from-utc.test.ts +1 -1
  496. package/tsconfig.json +0 -1
  497. package/web-dev-server.config.mjs +30 -30
  498. package/web-test-runner.config.mjs +41 -41
@@ -1,53 +1,53 @@
1
- import { __decorate } from "tslib";
2
- import { css, html, nothing } from 'lit';
3
- import { ifDefined } from 'lit/directives/if-defined.js';
4
- import { join } from 'lit/directives/join.js';
5
- import { map } from 'lit/directives/map.js';
6
- import { unsafeHTML } from 'lit/directives/unsafe-html.js';
7
- import { customElement, property, state } from 'lit/decorators.js';
8
- import { msg } from '@lit/localize';
9
- import DOMPurify from 'dompurify';
10
- import { suppressedCollections } from '../../models';
11
- import { BaseTileComponent } from '../base-tile-component';
12
- import { formatCount } from '../../utils/format-count';
13
- import { formatDate } from '../../utils/format-date';
14
- import { isFirstMillisecondOfUTCYear } from '../../utils/local-date-from-utc';
15
- import '../image-block';
16
- import '../review-block';
17
- import '../text-snippet-block';
18
- import '../mediatype-icon';
19
- let TileList = class TileList extends BaseTileComponent {
20
- constructor() {
21
- /*
22
- * Reactive properties inherited from BaseTileComponent:
23
- * - model?: TileModel;
24
- * - currentWidth?: number;
25
- * - currentHeight?: number;
26
- * - baseNavigationUrl?: string;
27
- * - baseImageUrl?: string;
28
- * - collectionPagePath?: string;
29
- * - sortParam: SortParam | null = null;
30
- * - defaultSortParam: SortParam | null = null;
31
- * - creatorFilter?: string;
32
- * - mobileBreakpoint?: number;
33
- * - loggedIn = false;
34
- */
35
- super(...arguments);
36
- this.collectionLinks = [];
37
- }
38
- render() {
1
+ import { __decorate } from "tslib";
2
+ import { css, html, nothing } from 'lit';
3
+ import { ifDefined } from 'lit/directives/if-defined.js';
4
+ import { join } from 'lit/directives/join.js';
5
+ import { map } from 'lit/directives/map.js';
6
+ import { unsafeHTML } from 'lit/directives/unsafe-html.js';
7
+ import { customElement, property, state } from 'lit/decorators.js';
8
+ import { msg } from '@lit/localize';
9
+ import DOMPurify from 'dompurify';
10
+ import { suppressedCollections } from '../../models';
11
+ import { BaseTileComponent } from '../base-tile-component';
12
+ import { formatCount } from '../../utils/format-count';
13
+ import { formatDate } from '../../utils/format-date';
14
+ import { isFirstMillisecondOfUTCYear } from '../../utils/local-date-from-utc';
15
+ import '../image-block';
16
+ import '../review-block';
17
+ import '../text-snippet-block';
18
+ import '../mediatype-icon';
19
+ let TileList = class TileList extends BaseTileComponent {
20
+ constructor() {
21
+ /*
22
+ * Reactive properties inherited from BaseTileComponent:
23
+ * - model?: TileModel;
24
+ * - currentWidth?: number;
25
+ * - currentHeight?: number;
26
+ * - baseNavigationUrl?: string;
27
+ * - baseImageUrl?: string;
28
+ * - collectionPagePath?: string;
29
+ * - sortParam: SortParam | null = null;
30
+ * - defaultSortParam: SortParam | null = null;
31
+ * - creatorFilter?: string;
32
+ * - mobileBreakpoint?: number;
33
+ * - loggedIn = false;
34
+ */
35
+ super(...arguments);
36
+ this.collectionLinks = [];
37
+ }
38
+ render() {
39
39
  return html `
40
40
  <div id="list-line" class="${this.classSize}">
41
- ${this.classSize === 'mobile'
42
- ? this.mobileTemplate
41
+ ${this.classSize === 'mobile'
42
+ ? this.mobileTemplate
43
43
  : this.desktopTemplate}
44
44
  </div>
45
- `;
46
- }
47
- /**
48
- * Templates
49
- */
50
- get mobileTemplate() {
45
+ `;
46
+ }
47
+ /**
48
+ * Templates
49
+ */
50
+ get mobileTemplate() {
51
51
  return html `
52
52
  <div id="list-line-top">
53
53
  <div id="list-line-left">${this.imageBlockTemplate}</div>
@@ -59,9 +59,9 @@ let TileList = class TileList extends BaseTileComponent {
59
59
  </div>
60
60
  </div>
61
61
  <div id="list-line-bottom">${this.detailsTemplate}</div>
62
- `;
63
- }
64
- get desktopTemplate() {
62
+ `;
63
+ }
64
+ get desktopTemplate() {
65
65
  return html `
66
66
  <div id="list-line-left">${this.imageBlockTemplate}</div>
67
67
  <div id="list-line-right">
@@ -71,13 +71,13 @@ let TileList = class TileList extends BaseTileComponent {
71
71
  </div>
72
72
  ${this.detailsTemplate}
73
73
  </div>
74
- `;
75
- }
76
- get imageBlockTemplate() {
77
- if (!this.model)
78
- return nothing;
79
- const isCollection = this.model.mediatype === 'collection';
80
- const href = this.displayValueProvider.itemPageUrl(this.model.identifier, isCollection);
74
+ `;
75
+ }
76
+ get imageBlockTemplate() {
77
+ if (!this.model)
78
+ return nothing;
79
+ const isCollection = this.model.mediatype === 'collection';
80
+ const href = this.displayValueProvider.itemPageUrl(this.model.identifier, isCollection);
81
81
  return html `<a href=${href}>
82
82
  <image-block
83
83
  .model=${this.model}
@@ -88,9 +88,9 @@ let TileList = class TileList extends BaseTileComponent {
88
88
  .loggedIn=${this.loggedIn}
89
89
  >
90
90
  </image-block>
91
- </a> `;
92
- }
93
- get detailsTemplate() {
91
+ </a> `;
92
+ }
93
+ get detailsTemplate() {
94
94
  return html `
95
95
  ${this.itemLineTemplate} ${this.creatorTemplate}
96
96
  <div id="dates-line">
@@ -103,11 +103,11 @@ let TileList = class TileList extends BaseTileComponent {
103
103
  ${this.topicsTemplate} ${this.collectionsTemplate}
104
104
  ${this.descriptionTemplate} ${this.textSnippetsTemplate}
105
105
  ${this.reviewBlockTemplate}
106
- `;
107
- }
108
- // Data templates
109
- get iconRightTemplate() {
110
- var _a, _b;
106
+ `;
107
+ }
108
+ // Data templates
109
+ get iconRightTemplate() {
110
+ var _a, _b;
111
111
  return html `
112
112
  <a id="icon-right" href=${this.mediatypeURL}>
113
113
  <mediatype-icon
@@ -116,151 +116,151 @@ let TileList = class TileList extends BaseTileComponent {
116
116
  >
117
117
  </mediatype-icon>
118
118
  </a>
119
- `;
120
- }
121
- get titleTemplate() {
122
- var _a, _b, _c;
123
- if (!((_a = this.model) === null || _a === void 0 ? void 0 : _a.title)) {
124
- return nothing;
125
- }
126
- // If the model has a server-specified href, use it
127
- // Otherwise construct a details link using the identifier
128
- return ((_b = this.model) === null || _b === void 0 ? void 0 : _b.href)
119
+ `;
120
+ }
121
+ get titleTemplate() {
122
+ var _a, _b, _c;
123
+ if (!((_a = this.model) === null || _a === void 0 ? void 0 : _a.title)) {
124
+ return nothing;
125
+ }
126
+ // If the model has a server-specified href, use it
127
+ // Otherwise construct a details link using the identifier
128
+ return ((_b = this.model) === null || _b === void 0 ? void 0 : _b.href)
129
129
  ? html `<a href="${this.baseNavigationUrl}${this.model.href}"
130
130
  >${(_c = this.model.title) !== null && _c !== void 0 ? _c : this.model.identifier}</a
131
- >`
132
- : this.detailsLink(this.model.identifier, this.model.title, this.model.mediatype === 'collection');
133
- }
134
- get itemLineTemplate() {
135
- const source = this.sourceTemplate;
136
- const volume = this.volumeTemplate;
137
- const issue = this.issueTemplate;
138
- if (!source && !volume && !issue) {
139
- return nothing;
140
- }
141
- return html ` <div id="item-line">${source} ${volume} ${issue}</div> `;
142
- }
143
- get sourceTemplate() {
144
- var _a;
145
- if (!((_a = this.model) === null || _a === void 0 ? void 0 : _a.source)) {
146
- return nothing;
147
- }
131
+ >`
132
+ : this.detailsLink(this.model.identifier, this.model.title, this.model.mediatype === 'collection');
133
+ }
134
+ get itemLineTemplate() {
135
+ const source = this.sourceTemplate;
136
+ const volume = this.volumeTemplate;
137
+ const issue = this.issueTemplate;
138
+ if (!source && !volume && !issue) {
139
+ return nothing;
140
+ }
141
+ return html ` <div id="item-line">${source} ${volume} ${issue}</div> `;
142
+ }
143
+ get sourceTemplate() {
144
+ var _a;
145
+ if (!((_a = this.model) === null || _a === void 0 ? void 0 : _a.source)) {
146
+ return nothing;
147
+ }
148
148
  return html `
149
149
  <div id="source" class="metadata">
150
150
  ${this.labelTemplate(msg('Source'))}
151
151
  ${this.searchLink('source', this.model.source)}
152
152
  </div>
153
- `;
154
- }
155
- get volumeTemplate() {
156
- var _a;
157
- return this.metadataTemplate((_a = this.model) === null || _a === void 0 ? void 0 : _a.volume, msg('Volume'));
158
- }
159
- get issueTemplate() {
160
- var _a;
161
- return this.metadataTemplate((_a = this.model) === null || _a === void 0 ? void 0 : _a.issue, msg('Issue'));
162
- }
163
- get creatorTemplate() {
164
- var _a, _b, _c;
165
- // "Archivist since" if account
166
- if (((_a = this.model) === null || _a === void 0 ? void 0 : _a.mediatype) === 'account') {
153
+ `;
154
+ }
155
+ get volumeTemplate() {
156
+ var _a;
157
+ return this.metadataTemplate((_a = this.model) === null || _a === void 0 ? void 0 : _a.volume, msg('Volume'));
158
+ }
159
+ get issueTemplate() {
160
+ var _a;
161
+ return this.metadataTemplate((_a = this.model) === null || _a === void 0 ? void 0 : _a.issue, msg('Issue'));
162
+ }
163
+ get creatorTemplate() {
164
+ var _a, _b, _c;
165
+ // "Archivist since" if account
166
+ if (((_a = this.model) === null || _a === void 0 ? void 0 : _a.mediatype) === 'account') {
167
167
  return html `
168
168
  <div id="creator" class="metadata">
169
169
  <span class="label"
170
170
  >${(_b = this.displayValueProvider.accountLabel) !== null && _b !== void 0 ? _b : nothing}</span
171
171
  >
172
172
  </div>
173
- `;
174
- }
175
- // "Creator" if not account tile
176
- if (!((_c = this.model) === null || _c === void 0 ? void 0 : _c.creators) || this.model.creators.length === 0) {
177
- return nothing;
178
- }
173
+ `;
174
+ }
175
+ // "Creator" if not account tile
176
+ if (!((_c = this.model) === null || _c === void 0 ? void 0 : _c.creators) || this.model.creators.length === 0) {
177
+ return nothing;
178
+ }
179
179
  return html `
180
180
  <div id="creator" class="metadata">
181
181
  ${this.labelTemplate(msg('By'))}
182
182
  ${join(map(this.model.creators, id => this.searchLink('creator', id)), ', ')}
183
183
  </div>
184
- `;
185
- }
186
- get datePublishedTemplate() {
187
- var _a;
188
- // If we're showing a date published of Jan 1 at midnight, only show the year.
189
- // This is because items with only a year for their publication date are normalized to
190
- // Jan 1 at midnight timestamps in the search engine documents.
191
- const date = (_a = this.model) === null || _a === void 0 ? void 0 : _a.datePublished;
192
- let format = 'long';
193
- if (isFirstMillisecondOfUTCYear(date)) {
194
- format = 'year-only';
195
- }
196
- return this.metadataTemplate(formatDate(date, format), msg('Published'));
197
- }
198
- // Show date label/value when sorted by date type
199
- // Except datePublished which is always shown
200
- get dateSortByTemplate() {
201
- if (this.effectiveSort &&
202
- (this.effectiveSort.field === 'addeddate' ||
203
- this.effectiveSort.field === 'reviewdate' ||
204
- this.effectiveSort.field === 'publicdate')) {
205
- return this.metadataTemplate(formatDate(this.date, 'long'), this.displayValueProvider.dateLabel);
206
- }
207
- return nothing;
208
- }
209
- get viewsTemplate() {
210
- var _a, _b, _c, _d;
211
- const viewCount = ((_a = this.effectiveSort) === null || _a === void 0 ? void 0 : _a.field) === 'week'
212
- ? (_b = this.model) === null || _b === void 0 ? void 0 : _b.weeklyViewCount // weekly views
213
- : (_c = this.model) === null || _c === void 0 ? void 0 : _c.viewCount; // all-time views
214
- if (viewCount == null)
215
- return nothing;
216
- // when its a search-tile, we don't have any stats to show
217
- if (((_d = this.model) === null || _d === void 0 ? void 0 : _d.mediatype) === 'search') {
218
- return this.metadataTemplate('(Favorited search query)', '');
219
- }
220
- return this.metadataTemplate(`${formatCount(viewCount, this.formatSize)}`, msg('Views'));
221
- }
222
- get ratingTemplate() {
223
- var _a;
224
- return this.metadataTemplate((_a = this.model) === null || _a === void 0 ? void 0 : _a.averageRating, msg('Avg Rating'));
225
- }
226
- get reviewsTemplate() {
227
- var _a;
228
- return this.metadataTemplate((_a = this.model) === null || _a === void 0 ? void 0 : _a.commentCount, msg('Reviews'));
229
- }
230
- get topicsTemplate() {
231
- var _a;
232
- if (!((_a = this.model) === null || _a === void 0 ? void 0 : _a.subjects) || this.model.subjects.length === 0) {
233
- return nothing;
234
- }
184
+ `;
185
+ }
186
+ get datePublishedTemplate() {
187
+ var _a;
188
+ // If we're showing a date published of Jan 1 at midnight, only show the year.
189
+ // This is because items with only a year for their publication date are normalized to
190
+ // Jan 1 at midnight timestamps in the search engine documents.
191
+ const date = (_a = this.model) === null || _a === void 0 ? void 0 : _a.datePublished;
192
+ let format = 'long';
193
+ if (isFirstMillisecondOfUTCYear(date)) {
194
+ format = 'year-only';
195
+ }
196
+ return this.metadataTemplate(formatDate(date, format), msg('Published'));
197
+ }
198
+ // Show date label/value when sorted by date type
199
+ // Except datePublished which is always shown
200
+ get dateSortByTemplate() {
201
+ if (this.effectiveSort &&
202
+ (this.effectiveSort.field === 'addeddate' ||
203
+ this.effectiveSort.field === 'reviewdate' ||
204
+ this.effectiveSort.field === 'publicdate')) {
205
+ return this.metadataTemplate(formatDate(this.date, 'long'), this.displayValueProvider.dateLabel);
206
+ }
207
+ return nothing;
208
+ }
209
+ get viewsTemplate() {
210
+ var _a, _b, _c, _d;
211
+ const viewCount = ((_a = this.effectiveSort) === null || _a === void 0 ? void 0 : _a.field) === 'week'
212
+ ? (_b = this.model) === null || _b === void 0 ? void 0 : _b.weeklyViewCount // weekly views
213
+ : (_c = this.model) === null || _c === void 0 ? void 0 : _c.viewCount; // all-time views
214
+ if (viewCount == null)
215
+ return nothing;
216
+ // when its a search-tile, we don't have any stats to show
217
+ if (((_d = this.model) === null || _d === void 0 ? void 0 : _d.mediatype) === 'search') {
218
+ return this.metadataTemplate('(Favorited search query)', '');
219
+ }
220
+ return this.metadataTemplate(`${formatCount(viewCount, this.formatSize)}`, msg('Views'));
221
+ }
222
+ get ratingTemplate() {
223
+ var _a;
224
+ return this.metadataTemplate((_a = this.model) === null || _a === void 0 ? void 0 : _a.averageRating, msg('Avg Rating'));
225
+ }
226
+ get reviewsTemplate() {
227
+ var _a;
228
+ return this.metadataTemplate((_a = this.model) === null || _a === void 0 ? void 0 : _a.commentCount, msg('Reviews'));
229
+ }
230
+ get topicsTemplate() {
231
+ var _a;
232
+ if (!((_a = this.model) === null || _a === void 0 ? void 0 : _a.subjects) || this.model.subjects.length === 0) {
233
+ return nothing;
234
+ }
235
235
  return html `
236
236
  <div id="topics" class="metadata">
237
237
  ${this.labelTemplate(msg('Topics'))}
238
238
  ${join(map(this.model.subjects, id => this.searchLink('subject', id)), ', ')}
239
239
  </div>
240
- `;
241
- }
242
- get collectionsTemplate() {
243
- if (!this.collectionLinks || this.collectionLinks.length === 0) {
244
- return nothing;
245
- }
240
+ `;
241
+ }
242
+ get collectionsTemplate() {
243
+ if (!this.collectionLinks || this.collectionLinks.length === 0) {
244
+ return nothing;
245
+ }
246
246
  return html `
247
247
  <div id="collections" class="metadata">
248
248
  ${this.labelTemplate(msg('Collections'))}
249
249
  ${join(this.collectionLinks, ', ')}
250
250
  </div>
251
- `;
252
- }
253
- get descriptionTemplate() {
254
- var _a, _b, _c;
255
- return this.metadataTemplate(
256
- // Sanitize away any HTML tags and convert line breaks to spaces.
257
- unsafeHTML(DOMPurify.sanitize((_c = (_b = (_a = this.model) === null || _a === void 0 ? void 0 : _a.description) === null || _b === void 0 ? void 0 : _b.replace(/\n/g, ' ')) !== null && _c !== void 0 ? _c : '')), '', 'description');
258
- }
259
- get reviewBlockTemplate() {
260
- var _a;
261
- if (!((_a = this.model) === null || _a === void 0 ? void 0 : _a.review))
262
- return nothing;
263
- const { title, body, stars } = this.model.review;
251
+ `;
252
+ }
253
+ get descriptionTemplate() {
254
+ var _a, _b, _c;
255
+ return this.metadataTemplate(
256
+ // Sanitize away any HTML tags and convert line breaks to spaces.
257
+ unsafeHTML(DOMPurify.sanitize((_c = (_b = (_a = this.model) === null || _a === void 0 ? void 0 : _a.description) === null || _b === void 0 ? void 0 : _b.replace(/\n/g, ' ')) !== null && _c !== void 0 ? _c : '')), '', 'description');
258
+ }
259
+ get reviewBlockTemplate() {
260
+ var _a;
261
+ if (!((_a = this.model) === null || _a === void 0 ? void 0 : _a.review))
262
+ return nothing;
263
+ const { title, body, stars } = this.model.review;
264
264
  return html `
265
265
  <review-block
266
266
  viewsize="list"
@@ -269,153 +269,151 @@ let TileList = class TileList extends BaseTileComponent {
269
269
  .starRating=${stars}
270
270
  >
271
271
  </review-block>
272
- `;
273
- }
274
- get textSnippetsTemplate() {
275
- var _a;
276
- if (!this.hasSnippets)
277
- return nothing;
272
+ `;
273
+ }
274
+ get textSnippetsTemplate() {
275
+ var _a;
276
+ if (!this.hasSnippets)
277
+ return nothing;
278
278
  return html `<text-snippet-block
279
279
  viewsize="list"
280
280
  .snippets=${(_a = this.model) === null || _a === void 0 ? void 0 : _a.snippets}
281
- ></text-snippet-block>`;
282
- }
283
- get hasSnippets() {
284
- var _a, _b;
285
- return !!((_b = (_a = this.model) === null || _a === void 0 ? void 0 : _a.snippets) === null || _b === void 0 ? void 0 : _b.length);
286
- }
287
- get webArchivesCaptureDatesTemplate() {
288
- var _a;
289
- if (!((_a = this.model) === null || _a === void 0 ? void 0 : _a.captureDates) || !this.model.title)
290
- return nothing;
281
+ ></text-snippet-block>`;
282
+ }
283
+ get hasSnippets() {
284
+ var _a, _b;
285
+ return !!((_b = (_a = this.model) === null || _a === void 0 ? void 0 : _a.snippets) === null || _b === void 0 ? void 0 : _b.length);
286
+ }
287
+ get webArchivesCaptureDatesTemplate() {
288
+ var _a;
289
+ if (!((_a = this.model) === null || _a === void 0 ? void 0 : _a.captureDates) || !this.model.title)
290
+ return nothing;
291
291
  return html `
292
292
  <ul class="capture-dates">
293
293
  ${map(this.model.captureDates, date => html `<li>
294
- ${this.displayValueProvider.webArchivesCaptureLink(this.model.title, date)}
295
- </li>`)}
294
+ ${this.displayValueProvider.webArchivesCaptureLink(this.model.title, date)}
295
+ </li>`)}
296
296
  </ul>
297
- `;
298
- }
299
- // Utility functions
300
- // eslint-disable-next-line default-param-last
301
- metadataTemplate(text, label = '', id) {
302
- if (!text)
303
- return nothing;
297
+ `;
298
+ }
299
+ // Utility functions
300
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
301
+ metadataTemplate(text, label = '', id) {
302
+ if (!text)
303
+ return nothing;
304
304
  return html `
305
305
  <div id=${ifDefined(id)} class="metadata">
306
306
  ${this.labelTemplate(label)} ${text}
307
307
  </div>
308
- `;
309
- }
310
- labelTemplate(label) {
311
- return html ` ${label
312
- ? html `<span class="label">${label}: </span>`
313
- : nothing}`;
314
- }
315
- searchLink(field, searchTerm) {
316
- if (!field || !searchTerm) {
317
- return nothing;
318
- }
319
- const query = encodeURIComponent(`${field}:"${searchTerm}"`);
320
- // No whitespace after closing tag
321
- // Note: single ' for href='' to wrap " in query var gets changed back by yarn format
322
- /* eslint-disable lit/no-invalid-html */
308
+ `;
309
+ }
310
+ labelTemplate(label) {
311
+ return html ` ${label
312
+ ? html `<span class="label">${label}: </span>`
313
+ : nothing}`;
314
+ }
315
+ searchLink(field, searchTerm) {
316
+ if (!field || !searchTerm) {
317
+ return nothing;
318
+ }
319
+ const query = encodeURIComponent(`${field}:"${searchTerm}"`);
320
+ // No whitespace after closing tag
321
+ // Note: single ' for href='' to wrap " in query var gets changed back by yarn format
323
322
  return html `<a
324
323
  href="${this.baseNavigationUrl}/search?query=${query}"
325
324
  rel="nofollow"
326
325
  >
327
326
  ${DOMPurify.sanitize(searchTerm)}</a
328
- >`;
329
- /* eslint-enable lit/no-invalid-html */
330
- }
331
- detailsLink(identifier, text, isCollection = false) {
332
- if (!identifier)
333
- return nothing;
334
- const linkText = text !== null && text !== void 0 ? text : identifier;
335
- const linkHref = this.displayValueProvider.itemPageUrl(identifier, isCollection);
336
- return html `<a href=${linkHref}> ${DOMPurify.sanitize(linkText)} </a>`;
337
- }
338
- /** The URL of this item's mediatype collection, if defined. */
339
- get mediatypeURL() {
340
- var _a;
341
- // NB: baseNavigationUrl can be an empty string
342
- if (this.baseNavigationUrl === undefined || !((_a = this.model) === null || _a === void 0 ? void 0 : _a.mediatype))
343
- return nothing;
344
- // Need special handling for certain mediatypes that don't have a top-level collection page
345
- switch (this.model.mediatype) {
346
- case 'collection':
347
- return `${this.baseNavigationUrl}/search?query=mediatype:collection&sort=-downloads`;
348
- case 'account':
349
- return nothing;
350
- default:
351
- return this.displayValueProvider.itemPageUrl(this.model.mediatype, true);
352
- }
353
- }
354
- updated(changed) {
355
- if (changed.has('model') || changed.has('collectionTitles')) {
356
- this.buildCollectionLinks();
357
- }
358
- }
359
- async buildCollectionLinks() {
360
- var _a, _b, _c;
361
- if (!((_a = this.model) === null || _a === void 0 ? void 0 : _a.collections) || this.model.collections.length === 0) {
362
- return;
363
- }
364
- // Note: quirk of Lit: need to replace collectionLinks array,
365
- // otherwise it will not re-render. Can't simply alter the array.
366
- this.collectionLinks = [];
367
- const newCollectionLinks = [];
368
- for (const collection of this.model.collections) {
369
- // Don't include favorites or collections that are meant to be suppressed
370
- if (!suppressedCollections[collection] &&
371
- !collection.startsWith('fav-')) {
372
- newCollectionLinks.push(this.detailsLink(collection, (_c = (_b = this.collectionTitles) === null || _b === void 0 ? void 0 : _b.get(collection)) !== null && _c !== void 0 ? _c : collection, true));
373
- }
374
- }
375
- this.collectionLinks = newCollectionLinks;
376
- }
377
- /*
378
- * TODO: fix field names to match model in src/collection-browser.ts
379
- * private get dateSortSelector()
380
- * @see src/models.ts
381
- */
382
- get date() {
383
- var _a, _b, _c, _d, _e;
384
- switch ((_a = this.effectiveSort) === null || _a === void 0 ? void 0 : _a.field) {
385
- case 'date':
386
- return (_b = this.model) === null || _b === void 0 ? void 0 : _b.datePublished;
387
- case 'reviewdate':
388
- return (_c = this.model) === null || _c === void 0 ? void 0 : _c.dateReviewed;
389
- case 'addeddate':
390
- return (_d = this.model) === null || _d === void 0 ? void 0 : _d.dateAdded;
391
- default:
392
- return (_e = this.model) === null || _e === void 0 ? void 0 : _e.dateArchived; // publicdate
393
- }
394
- }
395
- /**
396
- * Returns the active sort param if one is set, or the default sort param otherwise.
397
- */
398
- get effectiveSort() {
399
- var _a;
400
- return (_a = this.sortParam) !== null && _a !== void 0 ? _a : this.defaultSortParam;
401
- }
402
- get classSize() {
403
- if (this.mobileBreakpoint &&
404
- this.currentWidth &&
405
- this.currentWidth < this.mobileBreakpoint) {
406
- return 'mobile';
407
- }
408
- return 'desktop';
409
- }
410
- get formatSize() {
411
- if (this.mobileBreakpoint &&
412
- this.currentWidth &&
413
- this.currentWidth < this.mobileBreakpoint) {
414
- return 'short';
415
- }
416
- return 'long';
417
- }
418
- static get styles() {
327
+ >`;
328
+ }
329
+ detailsLink(identifier, text, isCollection = false) {
330
+ if (!identifier)
331
+ return nothing;
332
+ const linkText = text !== null && text !== void 0 ? text : identifier;
333
+ const linkHref = this.displayValueProvider.itemPageUrl(identifier, isCollection);
334
+ return html `<a href=${linkHref}> ${DOMPurify.sanitize(linkText)} </a>`;
335
+ }
336
+ /** The URL of this item's mediatype collection, if defined. */
337
+ get mediatypeURL() {
338
+ var _a;
339
+ // NB: baseNavigationUrl can be an empty string
340
+ if (this.baseNavigationUrl === undefined || !((_a = this.model) === null || _a === void 0 ? void 0 : _a.mediatype))
341
+ return nothing;
342
+ // Need special handling for certain mediatypes that don't have a top-level collection page
343
+ switch (this.model.mediatype) {
344
+ case 'collection':
345
+ return `${this.baseNavigationUrl}/search?query=mediatype:collection&sort=-downloads`;
346
+ case 'account':
347
+ return nothing;
348
+ default:
349
+ return this.displayValueProvider.itemPageUrl(this.model.mediatype, true);
350
+ }
351
+ }
352
+ updated(changed) {
353
+ if (changed.has('model') || changed.has('collectionTitles')) {
354
+ this.buildCollectionLinks();
355
+ }
356
+ }
357
+ async buildCollectionLinks() {
358
+ var _a, _b, _c;
359
+ if (!((_a = this.model) === null || _a === void 0 ? void 0 : _a.collections) || this.model.collections.length === 0) {
360
+ return;
361
+ }
362
+ // Note: quirk of Lit: need to replace collectionLinks array,
363
+ // otherwise it will not re-render. Can't simply alter the array.
364
+ this.collectionLinks = [];
365
+ const newCollectionLinks = [];
366
+ for (const collection of this.model.collections) {
367
+ // Don't include favorites or collections that are meant to be suppressed
368
+ if (!suppressedCollections[collection] &&
369
+ !collection.startsWith('fav-')) {
370
+ newCollectionLinks.push(this.detailsLink(collection, (_c = (_b = this.collectionTitles) === null || _b === void 0 ? void 0 : _b.get(collection)) !== null && _c !== void 0 ? _c : collection, true));
371
+ }
372
+ }
373
+ this.collectionLinks = newCollectionLinks;
374
+ }
375
+ /*
376
+ * TODO: fix field names to match model in src/collection-browser.ts
377
+ * private get dateSortSelector()
378
+ * @see src/models.ts
379
+ */
380
+ get date() {
381
+ var _a, _b, _c, _d, _e;
382
+ switch ((_a = this.effectiveSort) === null || _a === void 0 ? void 0 : _a.field) {
383
+ case 'date':
384
+ return (_b = this.model) === null || _b === void 0 ? void 0 : _b.datePublished;
385
+ case 'reviewdate':
386
+ return (_c = this.model) === null || _c === void 0 ? void 0 : _c.dateReviewed;
387
+ case 'addeddate':
388
+ return (_d = this.model) === null || _d === void 0 ? void 0 : _d.dateAdded;
389
+ default:
390
+ return (_e = this.model) === null || _e === void 0 ? void 0 : _e.dateArchived; // publicdate
391
+ }
392
+ }
393
+ /**
394
+ * Returns the active sort param if one is set, or the default sort param otherwise.
395
+ */
396
+ get effectiveSort() {
397
+ var _a;
398
+ return (_a = this.sortParam) !== null && _a !== void 0 ? _a : this.defaultSortParam;
399
+ }
400
+ get classSize() {
401
+ if (this.mobileBreakpoint &&
402
+ this.currentWidth &&
403
+ this.currentWidth < this.mobileBreakpoint) {
404
+ return 'mobile';
405
+ }
406
+ return 'desktop';
407
+ }
408
+ get formatSize() {
409
+ if (this.mobileBreakpoint &&
410
+ this.currentWidth &&
411
+ this.currentWidth < this.mobileBreakpoint) {
412
+ return 'short';
413
+ }
414
+ return 'long';
415
+ }
416
+ static get styles() {
419
417
  return css `
420
418
  html {
421
419
  font-size: unset;
@@ -577,7 +575,7 @@ let TileList = class TileList extends BaseTileComponent {
577
575
  /*
578
576
  * With the exception of the title line, allow these to wrap if
579
577
  * the space becomes too small to accommodate them together.
580
- *
578
+ *
581
579
  * The title line is excluded because it contains the mediatype icon
582
580
  * which we don't want to wrap.
583
581
  */
@@ -600,17 +598,17 @@ let TileList = class TileList extends BaseTileComponent {
600
598
  .capture-dates a:hover {
601
599
  text-decoration: underline;
602
600
  }
603
- `;
604
- }
605
- };
606
- __decorate([
607
- property({ type: Object })
608
- ], TileList.prototype, "collectionTitles", void 0);
609
- __decorate([
610
- state()
611
- ], TileList.prototype, "collectionLinks", void 0);
612
- TileList = __decorate([
613
- customElement('tile-list')
614
- ], TileList);
615
- export { TileList };
601
+ `;
602
+ }
603
+ };
604
+ __decorate([
605
+ property({ type: Object })
606
+ ], TileList.prototype, "collectionTitles", void 0);
607
+ __decorate([
608
+ state()
609
+ ], TileList.prototype, "collectionLinks", void 0);
610
+ TileList = __decorate([
611
+ customElement('tile-list')
612
+ ], TileList);
613
+ export { TileList };
616
614
  //# sourceMappingURL=tile-list.js.map