@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,228 +1,228 @@
1
- import type { TemplateResult } from 'lit';
2
- import type { MediaType } from '@internetarchive/field-parsers';
3
- import { AggregationSortType, Review, SearchResult, SortDirection } from '@internetarchive/search-service';
4
- /**
5
- * Different types of tile overlays, corresponding to the above flags.
6
- */
7
- export declare type TileOverlayType = 'login-required' | 'content-warning';
8
- export declare const TILE_OVERLAY_TEXT: Record<TileOverlayType, string>;
9
- export declare const TILE_OVERLAY_ICONS: Record<TileOverlayType, TemplateResult>;
10
- /**
11
- * Class for converting & storing raw search results in the correct format for UI tiles.
12
- */
13
- export declare class TileModel {
14
- averageRating?: number;
15
- captureDates?: Date[];
16
- checked: boolean;
17
- collectionIdentifier?: string;
18
- collectionName?: string;
19
- collectionFilesCount: number;
20
- collections: string[];
21
- collectionSize: number;
22
- commentCount: number;
23
- creator?: string;
24
- creators: string[];
25
- dateStr?: string;
26
- dateAdded?: Date;
27
- dateArchived?: Date;
28
- datePublished?: Date;
29
- dateReviewed?: Date;
30
- description?: string;
31
- favCount: number;
32
- href?: string;
33
- identifier?: string;
34
- issue?: string;
35
- itemCount: number;
36
- mediatype: MediaType;
37
- review?: Review;
38
- source?: string;
39
- snippets?: string[];
40
- subjects: string[];
41
- title: string;
42
- viewCount?: number;
43
- volume?: string;
44
- weeklyViewCount?: number;
45
- loginRequired: boolean;
46
- contentWarning: boolean;
47
- constructor(result: SearchResult);
48
- /**
49
- * Copies the contents of this TileModel onto a new instance
50
- */
51
- clone(): TileModel;
52
- /**
53
- * Determines the appropriate tile flags for the given search result
54
- * (login required and/or content warning)
55
- */
56
- private getFlags;
57
- private static cleanIdentifier;
58
- }
59
- export declare type RequestKind = 'full' | 'hits' | 'aggregations';
60
- export declare type CollectionDisplayMode = 'grid' | 'list-compact' | 'list-detail';
61
- export declare type TileDisplayMode = 'grid' | 'list-compact' | 'list-detail' | 'list-header';
62
- /**
63
- * This is mainly used to set the cookies for the collection display mode.
64
- *
65
- * It allows the user to set different modes for different contexts (collection page, search page, profile page etc).
66
- */
67
- export declare type CollectionBrowserContext = 'collection' | 'search' | 'profile';
68
- /**
69
- * The sort fields shown in the sort filter bar
70
- */
71
- export declare enum SortField {
72
- 'default' = "default",
73
- 'unrecognized' = "unrecognized",
74
- 'relevance' = "relevance",
75
- 'alltimeview' = "alltimeview",
76
- 'weeklyview' = "weeklyview",
77
- 'title' = "title",
78
- 'date' = "date",
79
- 'datearchived' = "datearchived",
80
- 'datereviewed' = "datereviewed",
81
- 'dateadded' = "dateadded",
82
- 'datefavorited' = "datefavorited",
83
- 'creator' = "creator"
84
- }
85
- export interface SortOption {
86
- /**
87
- * The SortField enum member corresponding to this option.
88
- */
89
- field: SortField;
90
- /**
91
- * The default sort direction to apply when this sort option is first selected.
92
- */
93
- defaultSortDirection: SortDirection | null;
94
- /**
95
- * Whether this sort option allows its sort direction to be changed from the default.
96
- */
97
- canSetDirection: boolean;
98
- /**
99
- * Whether this sort option may appear in the sort bar.
100
- */
101
- shownInSortBar: boolean;
102
- /**
103
- * Whether this sort option should be saved to the URL.
104
- * If false, then no `sort` param will be added to the URL when this sort option
105
- * is selected.
106
- */
107
- shownInURL: boolean;
108
- /**
109
- * Whether this sort option is passed to the search service.
110
- * If false, then no sort param will be passed to the search service at all when
111
- * this sort option is selected.
112
- */
113
- handledBySearchService: boolean;
114
- /**
115
- * The string identifying this sort field to the search service & backend API.
116
- */
117
- searchServiceKey?: string;
118
- /**
119
- * The human-readable name to use for this option in the sort bar (if applicable).
120
- */
121
- displayName: string;
122
- /**
123
- * A list of URL param keys that should be mapped to this sort option.
124
- * E.g., both `title` and `titleSorter` in the URL map to the `SortField.title` option.
125
- */
126
- urlNames: (string | null | undefined)[];
127
- }
128
- export declare const SORT_OPTIONS: Record<SortField, SortOption>;
129
- /**
130
- * Returns the SortOption corresponding to the given API sort name, or
131
- * the "unrecognized" SortOption if none matches.
132
- */
133
- export declare function sortOptionFromAPIString(sortName?: string | null): SortOption;
134
- export declare const defaultProfileElementSorts: Record<string, Exclude<SortField, SortField.default>>;
135
- /** A union of the fields that permit prefix filtering (e.g., alphabetical filtering) */
136
- export declare type PrefixFilterType = 'title' | 'creator';
137
- /** A map from prefixes (e.g., initial letters) to the number of items matching that prefix */
138
- export declare type PrefixFilterCounts = Record<string, number>;
139
- /**
140
- * A map from prefix filter types to the corresponding aggregation keys
141
- * that are needed to fetch the filter counts from the backend.
142
- */
143
- export declare const prefixFilterAggregationKeys: Record<PrefixFilterType, string>;
144
- /**
145
- * Different facet loading strategies that can be used with collection browser.
146
- * - `eager`: Facet data is always loaded as soon as a search is performed
147
- * - `lazy-mobile`: In the desktop layout, functions exactly as `eager`.
148
- * In the mobile layout, facet data will only be loaded once the "Filters" accordion is opened.
149
- * - `opt-in-or-login`: Same as `opt-in` for guest users not logged into an account, but same as `eager` for
150
- * any logged in user.
151
- * - `opt-in`: In the desktop layout, facet data will only be loaded after the user presses a "Load Facets" button.
152
- * In the mobile layout, functions exactly as `lazy-mobile`.
153
- * - `off`: Facet data will never be loaded, and a message will be displayed in place of facets
154
- * indicating that they are unavailable.
155
- */
156
- export declare type FacetLoadStrategy = 'eager' | 'lazy-mobile' | 'opt-in-or-login' | 'opt-in' | 'off';
157
- /**
158
- * Union of the facet types that are available in the sidebar.
159
- */
160
- export declare type FacetOption = 'subject' | 'lending' | 'mediatype' | 'language' | 'creator' | 'collection' | 'year';
161
- export declare type SelectedFacetState = 'selected' | 'hidden';
162
- export declare type FacetState = SelectedFacetState | 'none';
163
- export interface FacetBucket {
164
- displayText?: string;
165
- key: string;
166
- count: number;
167
- state: FacetState;
168
- }
169
- export interface FacetGroup {
170
- title: string;
171
- key: FacetOption;
172
- buckets: FacetBucket[];
173
- }
174
- /**
175
- * Information about a user interaction event on a facet.
176
- */
177
- export declare type FacetEventDetails = {
178
- /**
179
- * The type of facet that was interacted with (e.g., 'mediatype', 'language', ...).
180
- */
181
- facetType: FacetOption;
182
- /**
183
- * The bucket corresponding to the facet that was interacted with, including the
184
- * updated state of the facet after the interaction.
185
- */
186
- bucket: FacetBucket;
187
- /**
188
- * Whether the interaction occurred on a negative facet.
189
- */
190
- negative: boolean;
191
- };
192
- export declare type FacetValue = string;
193
- export declare type SelectedFacets = Record<FacetOption, Record<FacetValue, FacetBucket>>;
194
- export declare const getDefaultSelectedFacets: () => SelectedFacets;
195
- export declare const facetDisplayOrder: FacetOption[];
196
- export declare const facetTitles: Record<FacetOption, string>;
197
- /**
198
- * The default sort type to use for each facet type
199
- */
200
- export declare const defaultFacetSort: Record<FacetOption, AggregationSortType>;
201
- /**
202
- * The sort type corresponding to facet bucket values, for each facet type
203
- * (i.e., the opposite of "sort by count" for that type).
204
- */
205
- export declare const valueFacetSort: Record<FacetOption, AggregationSortType>;
206
- export declare type LendingFacetKey = 'is_lendable' | 'is_borrowable' | 'available_to_borrow' | 'is_browsable' | 'available_to_browse' | 'is_readable' | 'available_to_waitlist';
207
- /**
208
- * Maps valid lending keys to whether they should be visible in the facet sidebar
209
- */
210
- export declare const lendingFacetKeysVisibility: Record<LendingFacetKey, boolean>;
211
- /**
212
- * Maps valid, visible lending keys to their facet sidebar display text
213
- */
214
- export declare const lendingFacetDisplayNames: Partial<Record<LendingFacetKey, string>>;
215
- /**
216
- * A record of which admin-only collections should be suppressed from being displayed
217
- * as facets or in an item's list of collections.
218
- */
219
- export declare const suppressedCollections: Record<string, boolean>;
220
- /**
221
- * A record of manageable item
222
- */
223
- export interface ManageableItem {
224
- identifier: string;
225
- title?: string;
226
- dateStr?: string;
227
- date?: string;
228
- }
1
+ import type { TemplateResult } from 'lit';
2
+ import type { MediaType } from '@internetarchive/field-parsers';
3
+ import { AggregationSortType, Review, SearchResult, SortDirection } from '@internetarchive/search-service';
4
+ /**
5
+ * Different types of tile overlays, corresponding to the above flags.
6
+ */
7
+ export type TileOverlayType = 'login-required' | 'content-warning';
8
+ export declare const TILE_OVERLAY_TEXT: Record<TileOverlayType, string>;
9
+ export declare const TILE_OVERLAY_ICONS: Record<TileOverlayType, TemplateResult>;
10
+ /**
11
+ * Class for converting & storing raw search results in the correct format for UI tiles.
12
+ */
13
+ export declare class TileModel {
14
+ averageRating?: number;
15
+ captureDates?: Date[];
16
+ checked: boolean;
17
+ collectionIdentifier?: string;
18
+ collectionName?: string;
19
+ collectionFilesCount: number;
20
+ collections: string[];
21
+ collectionSize: number;
22
+ commentCount: number;
23
+ creator?: string;
24
+ creators: string[];
25
+ dateStr?: string;
26
+ dateAdded?: Date;
27
+ dateArchived?: Date;
28
+ datePublished?: Date;
29
+ dateReviewed?: Date;
30
+ description?: string;
31
+ favCount: number;
32
+ href?: string;
33
+ identifier?: string;
34
+ issue?: string;
35
+ itemCount: number;
36
+ mediatype: MediaType;
37
+ review?: Review;
38
+ source?: string;
39
+ snippets?: string[];
40
+ subjects: string[];
41
+ title: string;
42
+ viewCount?: number;
43
+ volume?: string;
44
+ weeklyViewCount?: number;
45
+ loginRequired: boolean;
46
+ contentWarning: boolean;
47
+ constructor(result: SearchResult);
48
+ /**
49
+ * Copies the contents of this TileModel onto a new instance
50
+ */
51
+ clone(): TileModel;
52
+ /**
53
+ * Determines the appropriate tile flags for the given search result
54
+ * (login required and/or content warning)
55
+ */
56
+ private getFlags;
57
+ private static cleanIdentifier;
58
+ }
59
+ export type RequestKind = 'full' | 'hits' | 'aggregations';
60
+ export type CollectionDisplayMode = 'grid' | 'list-compact' | 'list-detail';
61
+ export type TileDisplayMode = 'grid' | 'list-compact' | 'list-detail' | 'list-header';
62
+ /**
63
+ * This is mainly used to set the cookies for the collection display mode.
64
+ *
65
+ * It allows the user to set different modes for different contexts (collection page, search page, profile page etc).
66
+ */
67
+ export type CollectionBrowserContext = 'collection' | 'search' | 'profile';
68
+ /**
69
+ * The sort fields shown in the sort filter bar
70
+ */
71
+ export declare enum SortField {
72
+ 'default' = "default",
73
+ 'unrecognized' = "unrecognized",
74
+ 'relevance' = "relevance",
75
+ 'alltimeview' = "alltimeview",
76
+ 'weeklyview' = "weeklyview",
77
+ 'title' = "title",
78
+ 'date' = "date",
79
+ 'datearchived' = "datearchived",
80
+ 'datereviewed' = "datereviewed",
81
+ 'dateadded' = "dateadded",
82
+ 'datefavorited' = "datefavorited",
83
+ 'creator' = "creator"
84
+ }
85
+ export interface SortOption {
86
+ /**
87
+ * The SortField enum member corresponding to this option.
88
+ */
89
+ field: SortField;
90
+ /**
91
+ * The default sort direction to apply when this sort option is first selected.
92
+ */
93
+ defaultSortDirection: SortDirection | null;
94
+ /**
95
+ * Whether this sort option allows its sort direction to be changed from the default.
96
+ */
97
+ canSetDirection: boolean;
98
+ /**
99
+ * Whether this sort option may appear in the sort bar.
100
+ */
101
+ shownInSortBar: boolean;
102
+ /**
103
+ * Whether this sort option should be saved to the URL.
104
+ * If false, then no `sort` param will be added to the URL when this sort option
105
+ * is selected.
106
+ */
107
+ shownInURL: boolean;
108
+ /**
109
+ * Whether this sort option is passed to the search service.
110
+ * If false, then no sort param will be passed to the search service at all when
111
+ * this sort option is selected.
112
+ */
113
+ handledBySearchService: boolean;
114
+ /**
115
+ * The string identifying this sort field to the search service & backend API.
116
+ */
117
+ searchServiceKey?: string;
118
+ /**
119
+ * The human-readable name to use for this option in the sort bar (if applicable).
120
+ */
121
+ displayName: string;
122
+ /**
123
+ * A list of URL param keys that should be mapped to this sort option.
124
+ * E.g., both `title` and `titleSorter` in the URL map to the `SortField.title` option.
125
+ */
126
+ urlNames: (string | null | undefined)[];
127
+ }
128
+ export declare const SORT_OPTIONS: Record<SortField, SortOption>;
129
+ /**
130
+ * Returns the SortOption corresponding to the given API sort name, or
131
+ * the "unrecognized" SortOption if none matches.
132
+ */
133
+ export declare function sortOptionFromAPIString(sortName?: string | null): SortOption;
134
+ export declare const defaultProfileElementSorts: Record<string, Exclude<SortField, SortField.default>>;
135
+ /** A union of the fields that permit prefix filtering (e.g., alphabetical filtering) */
136
+ export type PrefixFilterType = 'title' | 'creator';
137
+ /** A map from prefixes (e.g., initial letters) to the number of items matching that prefix */
138
+ export type PrefixFilterCounts = Record<string, number>;
139
+ /**
140
+ * A map from prefix filter types to the corresponding aggregation keys
141
+ * that are needed to fetch the filter counts from the backend.
142
+ */
143
+ export declare const prefixFilterAggregationKeys: Record<PrefixFilterType, string>;
144
+ /**
145
+ * Different facet loading strategies that can be used with collection browser.
146
+ * - `eager`: Facet data is always loaded as soon as a search is performed
147
+ * - `lazy-mobile`: In the desktop layout, functions exactly as `eager`.
148
+ * In the mobile layout, facet data will only be loaded once the "Filters" accordion is opened.
149
+ * - `opt-in-or-login`: Same as `opt-in` for guest users not logged into an account, but same as `eager` for
150
+ * any logged in user.
151
+ * - `opt-in`: In the desktop layout, facet data will only be loaded after the user presses a "Load Facets" button.
152
+ * In the mobile layout, functions exactly as `lazy-mobile`.
153
+ * - `off`: Facet data will never be loaded, and a message will be displayed in place of facets
154
+ * indicating that they are unavailable.
155
+ */
156
+ export type FacetLoadStrategy = 'eager' | 'lazy-mobile' | 'opt-in-or-login' | 'opt-in' | 'off';
157
+ /**
158
+ * Union of the facet types that are available in the sidebar.
159
+ */
160
+ export type FacetOption = 'subject' | 'lending' | 'mediatype' | 'language' | 'creator' | 'collection' | 'year';
161
+ export type SelectedFacetState = 'selected' | 'hidden';
162
+ export type FacetState = SelectedFacetState | 'none';
163
+ export interface FacetBucket {
164
+ displayText?: string;
165
+ key: string;
166
+ count: number;
167
+ state: FacetState;
168
+ }
169
+ export interface FacetGroup {
170
+ title: string;
171
+ key: FacetOption;
172
+ buckets: FacetBucket[];
173
+ }
174
+ /**
175
+ * Information about a user interaction event on a facet.
176
+ */
177
+ export type FacetEventDetails = {
178
+ /**
179
+ * The type of facet that was interacted with (e.g., 'mediatype', 'language', ...).
180
+ */
181
+ facetType: FacetOption;
182
+ /**
183
+ * The bucket corresponding to the facet that was interacted with, including the
184
+ * updated state of the facet after the interaction.
185
+ */
186
+ bucket: FacetBucket;
187
+ /**
188
+ * Whether the interaction occurred on a negative facet.
189
+ */
190
+ negative: boolean;
191
+ };
192
+ export type FacetValue = string;
193
+ export type SelectedFacets = Record<FacetOption, Record<FacetValue, FacetBucket>>;
194
+ export declare const getDefaultSelectedFacets: () => SelectedFacets;
195
+ export declare const facetDisplayOrder: FacetOption[];
196
+ export declare const facetTitles: Record<FacetOption, string>;
197
+ /**
198
+ * The default sort type to use for each facet type
199
+ */
200
+ export declare const defaultFacetSort: Record<FacetOption, AggregationSortType>;
201
+ /**
202
+ * The sort type corresponding to facet bucket values, for each facet type
203
+ * (i.e., the opposite of "sort by count" for that type).
204
+ */
205
+ export declare const valueFacetSort: Record<FacetOption, AggregationSortType>;
206
+ export type LendingFacetKey = 'is_lendable' | 'is_borrowable' | 'available_to_borrow' | 'is_browsable' | 'available_to_browse' | 'is_readable' | 'available_to_waitlist';
207
+ /**
208
+ * Maps valid lending keys to whether they should be visible in the facet sidebar
209
+ */
210
+ export declare const lendingFacetKeysVisibility: Record<LendingFacetKey, boolean>;
211
+ /**
212
+ * Maps valid, visible lending keys to their facet sidebar display text
213
+ */
214
+ export declare const lendingFacetDisplayNames: Partial<Record<LendingFacetKey, string>>;
215
+ /**
216
+ * A record of which admin-only collections should be suppressed from being displayed
217
+ * as facets or in an item's list of collections.
218
+ */
219
+ export declare const suppressedCollections: Record<string, boolean>;
220
+ /**
221
+ * A record of manageable item
222
+ */
223
+ export interface ManageableItem {
224
+ identifier: string;
225
+ title?: string;
226
+ dateStr?: string;
227
+ date?: string;
228
+ }