@internetarchive/collection-browser 1.14.1-alpha.0 → 1.14.2-alpha1

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 (291) hide show
  1. package/.editorconfig +29 -29
  2. package/.github/workflows/ci.yml +26 -26
  3. package/.github/workflows/gh-pages-main.yml +39 -39
  4. package/.github/workflows/npm-publish.yml +39 -39
  5. package/.github/workflows/pr-preview.yml +38 -38
  6. package/.husky/pre-commit +4 -4
  7. package/LICENSE +661 -661
  8. package/README.md +83 -83
  9. package/dist/index.d.ts +9 -9
  10. package/dist/index.js +9 -9
  11. package/dist/src/app-root.d.ts +64 -64
  12. package/dist/src/app-root.js +311 -311
  13. package/dist/src/assets/img/icons/arrow-left.d.ts +2 -2
  14. package/dist/src/assets/img/icons/arrow-left.js +2 -2
  15. package/dist/src/assets/img/icons/arrow-right.d.ts +2 -2
  16. package/dist/src/assets/img/icons/arrow-right.js +2 -2
  17. package/dist/src/assets/img/icons/chevron.d.ts +2 -2
  18. package/dist/src/assets/img/icons/chevron.js +2 -2
  19. package/dist/src/assets/img/icons/contract.d.ts +2 -2
  20. package/dist/src/assets/img/icons/contract.js +2 -2
  21. package/dist/src/assets/img/icons/empty-query.d.ts +2 -2
  22. package/dist/src/assets/img/icons/empty-query.js +2 -2
  23. package/dist/src/assets/img/icons/expand.d.ts +2 -2
  24. package/dist/src/assets/img/icons/expand.js +2 -2
  25. package/dist/src/assets/img/icons/eye-closed.d.ts +2 -2
  26. package/dist/src/assets/img/icons/eye-closed.js +2 -2
  27. package/dist/src/assets/img/icons/eye.d.ts +2 -2
  28. package/dist/src/assets/img/icons/eye.js +2 -2
  29. package/dist/src/assets/img/icons/favorite-filled.d.ts +1 -1
  30. package/dist/src/assets/img/icons/favorite-filled.js +2 -2
  31. package/dist/src/assets/img/icons/login-required.d.ts +1 -1
  32. package/dist/src/assets/img/icons/login-required.js +2 -2
  33. package/dist/src/assets/img/icons/mediatype/account.d.ts +1 -1
  34. package/dist/src/assets/img/icons/mediatype/account.js +2 -2
  35. package/dist/src/assets/img/icons/mediatype/audio.d.ts +1 -1
  36. package/dist/src/assets/img/icons/mediatype/audio.js +2 -2
  37. package/dist/src/assets/img/icons/mediatype/collection.d.ts +1 -1
  38. package/dist/src/assets/img/icons/mediatype/collection.js +2 -2
  39. package/dist/src/assets/img/icons/mediatype/data.d.ts +1 -1
  40. package/dist/src/assets/img/icons/mediatype/data.js +2 -2
  41. package/dist/src/assets/img/icons/mediatype/etree.d.ts +1 -1
  42. package/dist/src/assets/img/icons/mediatype/etree.js +2 -2
  43. package/dist/src/assets/img/icons/mediatype/film.d.ts +1 -1
  44. package/dist/src/assets/img/icons/mediatype/film.js +2 -2
  45. package/dist/src/assets/img/icons/mediatype/images.d.ts +1 -1
  46. package/dist/src/assets/img/icons/mediatype/images.js +2 -2
  47. package/dist/src/assets/img/icons/mediatype/radio.d.ts +1 -1
  48. package/dist/src/assets/img/icons/mediatype/radio.js +2 -2
  49. package/dist/src/assets/img/icons/mediatype/search.d.ts +1 -0
  50. package/dist/src/assets/img/icons/mediatype/search.js +14 -0
  51. package/dist/src/assets/img/icons/mediatype/search.js.map +1 -0
  52. package/dist/src/assets/img/icons/mediatype/software.d.ts +1 -1
  53. package/dist/src/assets/img/icons/mediatype/software.js +2 -2
  54. package/dist/src/assets/img/icons/mediatype/texts.d.ts +1 -1
  55. package/dist/src/assets/img/icons/mediatype/texts.js +2 -2
  56. package/dist/src/assets/img/icons/mediatype/tv.d.ts +1 -1
  57. package/dist/src/assets/img/icons/mediatype/tv.js +2 -2
  58. package/dist/src/assets/img/icons/mediatype/video.d.ts +1 -1
  59. package/dist/src/assets/img/icons/mediatype/video.js +2 -2
  60. package/dist/src/assets/img/icons/mediatype/web.d.ts +1 -1
  61. package/dist/src/assets/img/icons/mediatype/web.js +2 -2
  62. package/dist/src/assets/img/icons/null-result.d.ts +2 -2
  63. package/dist/src/assets/img/icons/null-result.js +2 -2
  64. package/dist/src/assets/img/icons/restricted.d.ts +1 -1
  65. package/dist/src/assets/img/icons/restricted.js +2 -2
  66. package/dist/src/assets/img/icons/reviews.d.ts +1 -1
  67. package/dist/src/assets/img/icons/reviews.js +2 -2
  68. package/dist/src/assets/img/icons/upload.d.ts +1 -1
  69. package/dist/src/assets/img/icons/upload.js +2 -2
  70. package/dist/src/assets/img/icons/views.d.ts +1 -1
  71. package/dist/src/assets/img/icons/views.js +2 -2
  72. package/dist/src/circular-activity-indicator.d.ts +5 -5
  73. package/dist/src/circular-activity-indicator.js +17 -17
  74. package/dist/src/collection-browser.d.ts +524 -522
  75. package/dist/src/collection-browser.js +1859 -1834
  76. package/dist/src/collection-browser.js.map +1 -1
  77. package/dist/src/collection-facets/facet-tombstone-row.d.ts +5 -5
  78. package/dist/src/collection-facets/facet-tombstone-row.js +15 -15
  79. package/dist/src/collection-facets/facets-template.d.ts +20 -20
  80. package/dist/src/collection-facets/facets-template.js +152 -152
  81. package/dist/src/collection-facets/more-facets-content.d.ts +77 -77
  82. package/dist/src/collection-facets/more-facets-content.js +359 -359
  83. package/dist/src/collection-facets/more-facets-pagination.d.ts +36 -36
  84. package/dist/src/collection-facets/more-facets-pagination.js +196 -196
  85. package/dist/src/collection-facets/toggle-switch.d.ts +41 -41
  86. package/dist/src/collection-facets/toggle-switch.js +94 -94
  87. package/dist/src/collection-facets.d.ts +104 -104
  88. package/dist/src/collection-facets.js +506 -506
  89. package/dist/src/empty-placeholder.d.ts +23 -23
  90. package/dist/src/empty-placeholder.js +74 -74
  91. package/dist/src/expanded-date-picker.d.ts +43 -43
  92. package/dist/src/expanded-date-picker.js +109 -109
  93. package/dist/src/language-code-handler/language-code-handler.d.ts +37 -37
  94. package/dist/src/language-code-handler/language-code-handler.js +26 -26
  95. package/dist/src/language-code-handler/language-code-mapping.d.ts +1 -1
  96. package/dist/src/language-code-handler/language-code-mapping.js +562 -562
  97. package/dist/src/manage/manage-bar.d.ts +26 -26
  98. package/dist/src/manage/manage-bar.js +53 -53
  99. package/dist/src/mediatype/mediatype-config.d.ts +3 -3
  100. package/dist/src/mediatype/mediatype-config.js +91 -85
  101. package/dist/src/mediatype/mediatype-config.js.map +1 -1
  102. package/dist/src/models.d.ts +164 -164
  103. package/dist/src/models.js +269 -269
  104. package/dist/src/restoration-state-handler.d.ts +70 -70
  105. package/dist/src/restoration-state-handler.js +355 -355
  106. package/dist/src/sort-filter-bar/alpha-bar-tooltip.d.ts +6 -6
  107. package/dist/src/sort-filter-bar/alpha-bar-tooltip.js +24 -24
  108. package/dist/src/sort-filter-bar/alpha-bar.d.ts +21 -21
  109. package/dist/src/sort-filter-bar/alpha-bar.js +128 -128
  110. package/dist/src/sort-filter-bar/img/compact.d.ts +1 -1
  111. package/dist/src/sort-filter-bar/img/compact.js +2 -2
  112. package/dist/src/sort-filter-bar/img/list.d.ts +1 -1
  113. package/dist/src/sort-filter-bar/img/list.js +2 -2
  114. package/dist/src/sort-filter-bar/img/sort-toggle-disabled.d.ts +1 -1
  115. package/dist/src/sort-filter-bar/img/sort-toggle-disabled.js +2 -2
  116. package/dist/src/sort-filter-bar/img/sort-toggle-down.d.ts +1 -1
  117. package/dist/src/sort-filter-bar/img/sort-toggle-down.js +2 -2
  118. package/dist/src/sort-filter-bar/img/sort-toggle-up.d.ts +1 -1
  119. package/dist/src/sort-filter-bar/img/sort-toggle-up.js +2 -2
  120. package/dist/src/sort-filter-bar/img/sort-triangle.d.ts +1 -1
  121. package/dist/src/sort-filter-bar/img/sort-triangle.js +2 -2
  122. package/dist/src/sort-filter-bar/img/tile.d.ts +1 -1
  123. package/dist/src/sort-filter-bar/img/tile.js +2 -2
  124. package/dist/src/sort-filter-bar/sort-filter-bar.d.ts +208 -208
  125. package/dist/src/sort-filter-bar/sort-filter-bar.js +637 -637
  126. package/dist/src/styles/item-image-styles.d.ts +8 -8
  127. package/dist/src/styles/item-image-styles.js +13 -9
  128. package/dist/src/styles/item-image-styles.js.map +1 -1
  129. package/dist/src/styles/sr-only.d.ts +1 -1
  130. package/dist/src/styles/sr-only.js +2 -2
  131. package/dist/src/tiles/base-tile-component.d.ts +18 -18
  132. package/dist/src/tiles/base-tile-component.js +59 -59
  133. package/dist/src/tiles/collection-browser-loading-tile.d.ts +5 -5
  134. package/dist/src/tiles/collection-browser-loading-tile.js +15 -15
  135. package/dist/src/tiles/grid/account-tile.d.ts +18 -18
  136. package/dist/src/tiles/grid/account-tile.js +72 -72
  137. package/dist/src/tiles/grid/collection-tile.d.ts +15 -15
  138. package/dist/src/tiles/grid/collection-tile.js +80 -80
  139. package/dist/src/tiles/grid/item-tile.d.ts +27 -27
  140. package/dist/src/tiles/grid/item-tile.js +134 -134
  141. package/dist/src/tiles/grid/search-tile.d.ts +10 -0
  142. package/dist/src/tiles/grid/search-tile.js +92 -0
  143. package/dist/src/tiles/grid/search-tile.js.map +1 -0
  144. package/dist/src/tiles/grid/styles/tile-grid-shared-styles.d.ts +1 -1
  145. package/dist/src/tiles/grid/styles/tile-grid-shared-styles.js +8 -8
  146. package/dist/src/tiles/grid/tile-stats.d.ts +11 -11
  147. package/dist/src/tiles/grid/tile-stats.js +48 -48
  148. package/dist/src/tiles/hover/hover-pane-controller.d.ts +219 -219
  149. package/dist/src/tiles/hover/hover-pane-controller.js +352 -352
  150. package/dist/src/tiles/hover/tile-hover-pane.d.ts +15 -15
  151. package/dist/src/tiles/hover/tile-hover-pane.js +38 -38
  152. package/dist/src/tiles/image-block.d.ts +17 -17
  153. package/dist/src/tiles/image-block.js +75 -73
  154. package/dist/src/tiles/image-block.js.map +1 -1
  155. package/dist/src/tiles/item-image.d.ts +36 -35
  156. package/dist/src/tiles/item-image.js +148 -125
  157. package/dist/src/tiles/item-image.js.map +1 -1
  158. package/dist/src/tiles/list/tile-list-compact-header.d.ts +6 -6
  159. package/dist/src/tiles/list/tile-list-compact-header.js +38 -38
  160. package/dist/src/tiles/list/tile-list-compact.d.ts +15 -15
  161. package/dist/src/tiles/list/tile-list-compact.js +114 -114
  162. package/dist/src/tiles/list/tile-list.d.ts +46 -46
  163. package/dist/src/tiles/list/tile-list.js +302 -298
  164. package/dist/src/tiles/list/tile-list.js.map +1 -1
  165. package/dist/src/tiles/mediatype-icon.d.ts +9 -9
  166. package/dist/src/tiles/mediatype-icon.js +47 -47
  167. package/dist/src/tiles/overlay/icon-overlay.d.ts +10 -10
  168. package/dist/src/tiles/overlay/icon-overlay.js +40 -40
  169. package/dist/src/tiles/overlay/icon-text-overlay.d.ts +9 -9
  170. package/dist/src/tiles/overlay/icon-text-overlay.js +38 -38
  171. package/dist/src/tiles/overlay/text-overlay.d.ts +10 -10
  172. package/dist/src/tiles/overlay/text-overlay.js +42 -42
  173. package/dist/src/tiles/text-snippet-block.d.ts +27 -27
  174. package/dist/src/tiles/text-snippet-block.js +73 -73
  175. package/dist/src/tiles/tile-dispatcher.d.ts +64 -63
  176. package/dist/src/tiles/tile-dispatcher.js +249 -225
  177. package/dist/src/tiles/tile-dispatcher.js.map +1 -1
  178. package/dist/src/tiles/tile-display-value-provider.d.ts +43 -43
  179. package/dist/src/tiles/tile-display-value-provider.js +80 -80
  180. package/dist/src/utils/analytics-events.d.ts +25 -25
  181. package/dist/src/utils/analytics-events.js +27 -27
  182. package/dist/src/utils/array-equals.d.ts +4 -4
  183. package/dist/src/utils/array-equals.js +10 -10
  184. package/dist/src/utils/format-count.d.ts +7 -7
  185. package/dist/src/utils/format-count.js +76 -76
  186. package/dist/src/utils/format-date.d.ts +2 -2
  187. package/dist/src/utils/format-date.js +25 -25
  188. package/dist/src/utils/format-unit-size.d.ts +2 -2
  189. package/dist/src/utils/format-unit-size.js +33 -33
  190. package/dist/src/utils/local-date-from-utc.d.ts +9 -9
  191. package/dist/src/utils/local-date-from-utc.js +15 -15
  192. package/dist/src/utils/sha1.d.ts +2 -2
  193. package/dist/src/utils/sha1.js +8 -8
  194. package/dist/test/collection-browser.test.d.ts +1 -1
  195. package/dist/test/collection-browser.test.js +1098 -1099
  196. package/dist/test/collection-browser.test.js.map +1 -1
  197. package/dist/test/collection-facets/facets-template.test.d.ts +1 -1
  198. package/dist/test/collection-facets/facets-template.test.js +134 -134
  199. package/dist/test/collection-facets/more-facets-content.test.d.ts +1 -1
  200. package/dist/test/collection-facets/more-facets-content.test.js +133 -133
  201. package/dist/test/collection-facets/more-facets-pagination.test.d.ts +1 -1
  202. package/dist/test/collection-facets/more-facets-pagination.test.js +117 -117
  203. package/dist/test/collection-facets/toggle-switch.test.d.ts +1 -1
  204. package/dist/test/collection-facets/toggle-switch.test.js +73 -73
  205. package/dist/test/collection-facets.test.d.ts +2 -2
  206. package/dist/test/collection-facets.test.js +682 -682
  207. package/dist/test/empty-placeholder.test.d.ts +1 -1
  208. package/dist/test/empty-placeholder.test.js +63 -63
  209. package/dist/test/expanded-date-picker.test.d.ts +1 -1
  210. package/dist/test/expanded-date-picker.test.js +95 -95
  211. package/dist/test/icon-overlay.test.d.ts +1 -1
  212. package/dist/test/icon-overlay.test.js +24 -24
  213. package/dist/test/image-block.test.d.ts +1 -1
  214. package/dist/test/image-block.test.js +48 -48
  215. package/dist/test/item-image.test.d.ts +1 -1
  216. package/dist/test/item-image.test.js +86 -86
  217. package/dist/test/manage/manage-bar.test.d.ts +1 -1
  218. package/dist/test/manage/manage-bar.test.js +72 -72
  219. package/dist/test/mediatype-config.test.d.ts +1 -1
  220. package/dist/test/mediatype-config.test.js +16 -16
  221. package/dist/test/mocks/mock-analytics-handler.d.ts +10 -10
  222. package/dist/test/mocks/mock-analytics-handler.js +15 -15
  223. package/dist/test/mocks/mock-collection-name-cache.d.ts +9 -9
  224. package/dist/test/mocks/mock-collection-name-cache.js +17 -17
  225. package/dist/test/mocks/mock-search-responses.d.ts +21 -21
  226. package/dist/test/mocks/mock-search-responses.js +709 -709
  227. package/dist/test/mocks/mock-search-service.d.ts +15 -15
  228. package/dist/test/mocks/mock-search-service.js +50 -50
  229. package/dist/test/restoration-state-handler.test.d.ts +1 -1
  230. package/dist/test/restoration-state-handler.test.js +270 -270
  231. package/dist/test/sort-filter-bar/alpha-bar-tooltip.test.d.ts +1 -1
  232. package/dist/test/sort-filter-bar/alpha-bar-tooltip.test.js +12 -12
  233. package/dist/test/sort-filter-bar/alpha-bar.test.d.ts +1 -1
  234. package/dist/test/sort-filter-bar/alpha-bar.test.js +73 -73
  235. package/dist/test/sort-filter-bar/sort-filter-bar.test.d.ts +1 -1
  236. package/dist/test/sort-filter-bar/sort-filter-bar.test.js +378 -378
  237. package/dist/test/text-overlay.test.d.ts +1 -1
  238. package/dist/test/text-overlay.test.js +48 -48
  239. package/dist/test/text-snippet-block.test.d.ts +1 -1
  240. package/dist/test/text-snippet-block.test.js +57 -57
  241. package/dist/test/tile-stats.test.d.ts +1 -1
  242. package/dist/test/tile-stats.test.js +33 -33
  243. package/dist/test/tiles/grid/account-tile.test.d.ts +1 -1
  244. package/dist/test/tiles/grid/account-tile.test.js +76 -76
  245. package/dist/test/tiles/grid/collection-tile.test.d.ts +1 -1
  246. package/dist/test/tiles/grid/collection-tile.test.js +73 -73
  247. package/dist/test/tiles/grid/item-tile.test.d.ts +1 -1
  248. package/dist/test/tiles/grid/item-tile.test.js +254 -254
  249. package/dist/test/tiles/grid/search-tile.test.d.ts +1 -0
  250. package/dist/test/tiles/grid/search-tile.test.js +67 -0
  251. package/dist/test/tiles/grid/search-tile.test.js.map +1 -0
  252. package/dist/test/tiles/hover/hover-pane-controller.test.d.ts +1 -1
  253. package/dist/test/tiles/hover/hover-pane-controller.test.js +258 -258
  254. package/dist/test/tiles/hover/tile-hover-pane.test.d.ts +1 -1
  255. package/dist/test/tiles/hover/tile-hover-pane.test.js +13 -13
  256. package/dist/test/tiles/list/tile-list-compact.test.d.ts +1 -1
  257. package/dist/test/tiles/list/tile-list-compact.test.js +143 -143
  258. package/dist/test/tiles/list/tile-list.test.d.ts +1 -1
  259. package/dist/test/tiles/list/tile-list.test.js +242 -242
  260. package/dist/test/tiles/tile-dispatcher.test.d.ts +1 -1
  261. package/dist/test/tiles/tile-dispatcher.test.js +94 -94
  262. package/dist/test/tiles/tile-display-value-provider.test.d.ts +1 -1
  263. package/dist/test/tiles/tile-display-value-provider.test.js +141 -141
  264. package/dist/test/utils/array-equals.test.d.ts +1 -1
  265. package/dist/test/utils/array-equals.test.js +26 -26
  266. package/dist/test/utils/format-count.test.d.ts +1 -1
  267. package/dist/test/utils/format-count.test.js +23 -23
  268. package/dist/test/utils/format-date.test.d.ts +1 -1
  269. package/dist/test/utils/format-date.test.js +17 -17
  270. package/dist/test/utils/format-unit-size.test.d.ts +1 -1
  271. package/dist/test/utils/format-unit-size.test.js +17 -17
  272. package/dist/test/utils/local-date-from-utc.test.d.ts +1 -1
  273. package/dist/test/utils/local-date-from-utc.test.js +26 -26
  274. package/local.archive.org.cert +86 -86
  275. package/local.archive.org.key +27 -27
  276. package/package.json +4 -4
  277. package/renovate.json +6 -6
  278. package/src/assets/img/icons/mediatype/search.ts +14 -0
  279. package/src/collection-browser.ts +29 -1
  280. package/src/mediatype/mediatype-config.ts +6 -0
  281. package/src/styles/item-image-styles.ts +4 -0
  282. package/src/tiles/grid/search-tile.ts +87 -0
  283. package/src/tiles/image-block.ts +3 -1
  284. package/src/tiles/item-image.ts +31 -8
  285. package/src/tiles/list/tile-list.ts +5 -0
  286. package/src/tiles/tile-dispatcher.ts +23 -1
  287. package/test/collection-browser.test.ts +1 -2
  288. package/test/tiles/grid/search-tile.test.ts +76 -0
  289. package/tsconfig.json +21 -21
  290. package/web-dev-server.config.mjs +30 -30
  291. package/web-test-runner.config.mjs +41 -41
@@ -1,270 +1,270 @@
1
- import { AggregationSortType, } from '@internetarchive/search-service';
2
- /**
3
- * The sort fields shown in the sort filter bar
4
- */
5
- export var SortField;
6
- (function (SortField) {
7
- SortField["default"] = "default";
8
- SortField["unrecognized"] = "unrecognized";
9
- SortField["relevance"] = "relevance";
10
- SortField["alltimeview"] = "alltimeview";
11
- SortField["weeklyview"] = "weeklyview";
12
- SortField["title"] = "title";
13
- SortField["date"] = "date";
14
- SortField["datearchived"] = "datearchived";
15
- SortField["datereviewed"] = "datereviewed";
16
- SortField["dateadded"] = "dateadded";
17
- SortField["datefavorited"] = "datefavorited";
18
- SortField["creator"] = "creator";
19
- })(SortField || (SortField = {}));
20
- export const SORT_OPTIONS = {
21
- // Default sort is the case where the user has not specified a sort option via the sort bar or URL.
22
- // In these cases, we defer to whatever sort the backend chooses.
23
- // For the search page, the default is always relevance sort.
24
- // For collection pages _without a query_, the default is usually weekly views, but this can be
25
- // overridden by the collection's `sort-by` metadata entry. If a query _is_ specified, then the
26
- // default is again relevance sort.
27
- // For fav-* collections only, the default is instead sorting by date favorited.
28
- [SortField.default]: {
29
- field: SortField.default,
30
- defaultSortDirection: null,
31
- canSetDirection: false,
32
- shownInSortBar: false,
33
- shownInURL: false,
34
- handledBySearchService: false,
35
- displayName: '',
36
- urlNames: ['', null, undefined], // Empty or nullish sort params result in default sorting
37
- },
38
- // Unrecognized sort is the case where the user has specified a sort in the URL, but it is not
39
- // one of the options listed in this map. We still want these unrecognized sorts to be applied
40
- // when searching, but they are not displayed in the sort bar and we do not actively manage
41
- // their URL param beyond flipping the direction as needed.
42
- [SortField.unrecognized]: {
43
- field: SortField.unrecognized,
44
- defaultSortDirection: null,
45
- canSetDirection: true,
46
- shownInSortBar: false,
47
- shownInURL: false,
48
- handledBySearchService: true,
49
- displayName: '',
50
- urlNames: [],
51
- },
52
- // Relevance sort is unique in that it does not produce a URL param when it is set.
53
- // It is only available when there is a user-specified query that relevancy can be scored against.
54
- // Therefore, it does not appear as a sort bar option when browsing a collection with no query set.
55
- [SortField.relevance]: {
56
- field: SortField.relevance,
57
- defaultSortDirection: null,
58
- canSetDirection: false,
59
- shownInSortBar: true,
60
- shownInURL: false,
61
- handledBySearchService: false,
62
- displayName: 'Relevance',
63
- urlNames: ['_score'],
64
- },
65
- [SortField.alltimeview]: {
66
- field: SortField.alltimeview,
67
- defaultSortDirection: 'desc',
68
- canSetDirection: true,
69
- shownInSortBar: true,
70
- shownInURL: true,
71
- handledBySearchService: true,
72
- searchServiceKey: 'downloads',
73
- displayName: 'All-time views',
74
- urlNames: ['downloads'],
75
- },
76
- [SortField.weeklyview]: {
77
- field: SortField.weeklyview,
78
- defaultSortDirection: 'desc',
79
- canSetDirection: true,
80
- shownInSortBar: true,
81
- shownInURL: true,
82
- handledBySearchService: true,
83
- searchServiceKey: 'week',
84
- displayName: 'Weekly views',
85
- urlNames: ['week'],
86
- },
87
- [SortField.title]: {
88
- field: SortField.title,
89
- defaultSortDirection: 'asc',
90
- canSetDirection: true,
91
- shownInSortBar: true,
92
- shownInURL: true,
93
- handledBySearchService: true,
94
- searchServiceKey: 'titleSorter',
95
- displayName: 'Title',
96
- urlNames: ['title', 'titleSorter'],
97
- },
98
- [SortField.date]: {
99
- field: SortField.date,
100
- defaultSortDirection: 'desc',
101
- canSetDirection: true,
102
- shownInSortBar: true,
103
- shownInURL: true,
104
- handledBySearchService: true,
105
- searchServiceKey: 'date',
106
- displayName: 'Date published',
107
- urlNames: ['date'],
108
- },
109
- [SortField.datearchived]: {
110
- field: SortField.datearchived,
111
- defaultSortDirection: 'desc',
112
- canSetDirection: true,
113
- shownInSortBar: true,
114
- shownInURL: true,
115
- handledBySearchService: true,
116
- searchServiceKey: 'publicdate',
117
- displayName: 'Date archived',
118
- urlNames: ['publicdate'],
119
- },
120
- [SortField.datereviewed]: {
121
- field: SortField.datereviewed,
122
- defaultSortDirection: 'desc',
123
- canSetDirection: true,
124
- shownInSortBar: true,
125
- shownInURL: true,
126
- handledBySearchService: true,
127
- searchServiceKey: 'reviewdate',
128
- displayName: 'Date reviewed',
129
- urlNames: ['reviewdate'],
130
- },
131
- [SortField.dateadded]: {
132
- field: SortField.dateadded,
133
- defaultSortDirection: 'desc',
134
- canSetDirection: true,
135
- shownInSortBar: true,
136
- shownInURL: true,
137
- handledBySearchService: true,
138
- searchServiceKey: 'addeddate',
139
- displayName: 'Date added',
140
- urlNames: ['addeddate'],
141
- },
142
- [SortField.datefavorited]: {
143
- field: SortField.datefavorited,
144
- defaultSortDirection: 'desc',
145
- canSetDirection: false,
146
- shownInSortBar: true,
147
- shownInURL: false,
148
- handledBySearchService: false,
149
- searchServiceKey: 'favoritedate',
150
- displayName: 'Date favorited',
151
- urlNames: ['favoritedate'],
152
- },
153
- [SortField.creator]: {
154
- field: SortField.creator,
155
- defaultSortDirection: 'asc',
156
- canSetDirection: true,
157
- shownInSortBar: true,
158
- shownInURL: true,
159
- handledBySearchService: true,
160
- searchServiceKey: 'creatorSorter',
161
- displayName: 'Creator',
162
- urlNames: ['creator', 'creatorSorter'],
163
- },
164
- };
165
- /**
166
- * Returns the SortOption corresponding to the given API sort name, or
167
- * the "unrecognized" SortOption if none matches.
168
- */
169
- export function sortOptionFromAPIString(sortName) {
170
- var _a;
171
- return ((_a = Object.values(SORT_OPTIONS).find(opt => opt.urlNames.some(name => sortName === name))) !== null && _a !== void 0 ? _a : SORT_OPTIONS[SortField.unrecognized]);
172
- }
173
- /**
174
- * A map from prefix filter types to the corresponding aggregation keys
175
- * that are needed to fetch the filter counts from the backend.
176
- */
177
- export const prefixFilterAggregationKeys = {
178
- title: 'firstTitle',
179
- creator: 'firstCreator',
180
- };
181
- export const getDefaultSelectedFacets = () => ({
182
- subject: {},
183
- lending: {},
184
- mediatype: {},
185
- language: {},
186
- creator: {},
187
- collection: {},
188
- year: {},
189
- });
190
- export const facetDisplayOrder = [
191
- 'mediatype',
192
- 'lending',
193
- 'year',
194
- 'subject',
195
- 'collection',
196
- 'creator',
197
- 'language',
198
- ];
199
- export const facetTitles = {
200
- subject: 'Subject',
201
- lending: 'Availability',
202
- mediatype: 'Media Type',
203
- language: 'Language',
204
- creator: 'Creator',
205
- collection: 'Collection',
206
- year: 'Year',
207
- };
208
- /**
209
- * The default sort type to use for each facet type
210
- */
211
- export const defaultFacetSort = {
212
- subject: AggregationSortType.COUNT,
213
- lending: AggregationSortType.COUNT,
214
- mediatype: AggregationSortType.COUNT,
215
- language: AggregationSortType.COUNT,
216
- creator: AggregationSortType.COUNT,
217
- collection: AggregationSortType.COUNT,
218
- year: AggregationSortType.NUMERIC,
219
- };
220
- /**
221
- * The sort type corresponding to facet bucket values, for each facet type
222
- * (i.e., the opposite of "sort by count" for that type).
223
- */
224
- export const valueFacetSort = {
225
- subject: AggregationSortType.ALPHABETICAL,
226
- lending: AggregationSortType.ALPHABETICAL,
227
- mediatype: AggregationSortType.ALPHABETICAL,
228
- language: AggregationSortType.ALPHABETICAL,
229
- creator: AggregationSortType.ALPHABETICAL,
230
- collection: AggregationSortType.ALPHABETICAL,
231
- year: AggregationSortType.NUMERIC,
232
- };
233
- /**
234
- * Maps valid lending keys to whether they should be visible in the facet sidebar
235
- */
236
- export const lendingFacetKeysVisibility = {
237
- is_lendable: true,
238
- is_borrowable: false,
239
- available_to_borrow: true,
240
- is_browsable: false,
241
- available_to_browse: false,
242
- is_readable: true,
243
- available_to_waitlist: false,
244
- };
245
- /**
246
- * Maps valid, visible lending keys to their facet sidebar display text
247
- */
248
- export const lendingFacetDisplayNames = {
249
- is_lendable: 'Lending Library',
250
- available_to_borrow: 'Borrow 14 Days',
251
- is_readable: 'Always Available',
252
- };
253
- /**
254
- * A record of which admin-only collections should be suppressed from being displayed
255
- * as facets or in an item's list of collections.
256
- */
257
- export const suppressedCollections = {
258
- deemphasize: true,
259
- community: true,
260
- stream_only: true,
261
- samples_only: true,
262
- test_collection: true,
263
- printdisabled: true,
264
- 'openlibrary-ol': true,
265
- nationalemergencylibrary: true,
266
- china: true,
267
- americana: true,
268
- toronto: true,
269
- };
1
+ import { AggregationSortType, } from '@internetarchive/search-service';
2
+ /**
3
+ * The sort fields shown in the sort filter bar
4
+ */
5
+ export var SortField;
6
+ (function (SortField) {
7
+ SortField["default"] = "default";
8
+ SortField["unrecognized"] = "unrecognized";
9
+ SortField["relevance"] = "relevance";
10
+ SortField["alltimeview"] = "alltimeview";
11
+ SortField["weeklyview"] = "weeklyview";
12
+ SortField["title"] = "title";
13
+ SortField["date"] = "date";
14
+ SortField["datearchived"] = "datearchived";
15
+ SortField["datereviewed"] = "datereviewed";
16
+ SortField["dateadded"] = "dateadded";
17
+ SortField["datefavorited"] = "datefavorited";
18
+ SortField["creator"] = "creator";
19
+ })(SortField || (SortField = {}));
20
+ export const SORT_OPTIONS = {
21
+ // Default sort is the case where the user has not specified a sort option via the sort bar or URL.
22
+ // In these cases, we defer to whatever sort the backend chooses.
23
+ // For the search page, the default is always relevance sort.
24
+ // For collection pages _without a query_, the default is usually weekly views, but this can be
25
+ // overridden by the collection's `sort-by` metadata entry. If a query _is_ specified, then the
26
+ // default is again relevance sort.
27
+ // For fav-* collections only, the default is instead sorting by date favorited.
28
+ [SortField.default]: {
29
+ field: SortField.default,
30
+ defaultSortDirection: null,
31
+ canSetDirection: false,
32
+ shownInSortBar: false,
33
+ shownInURL: false,
34
+ handledBySearchService: false,
35
+ displayName: '',
36
+ urlNames: ['', null, undefined], // Empty or nullish sort params result in default sorting
37
+ },
38
+ // Unrecognized sort is the case where the user has specified a sort in the URL, but it is not
39
+ // one of the options listed in this map. We still want these unrecognized sorts to be applied
40
+ // when searching, but they are not displayed in the sort bar and we do not actively manage
41
+ // their URL param beyond flipping the direction as needed.
42
+ [SortField.unrecognized]: {
43
+ field: SortField.unrecognized,
44
+ defaultSortDirection: null,
45
+ canSetDirection: true,
46
+ shownInSortBar: false,
47
+ shownInURL: false,
48
+ handledBySearchService: true,
49
+ displayName: '',
50
+ urlNames: [],
51
+ },
52
+ // Relevance sort is unique in that it does not produce a URL param when it is set.
53
+ // It is only available when there is a user-specified query that relevancy can be scored against.
54
+ // Therefore, it does not appear as a sort bar option when browsing a collection with no query set.
55
+ [SortField.relevance]: {
56
+ field: SortField.relevance,
57
+ defaultSortDirection: null,
58
+ canSetDirection: false,
59
+ shownInSortBar: true,
60
+ shownInURL: false,
61
+ handledBySearchService: false,
62
+ displayName: 'Relevance',
63
+ urlNames: ['_score'],
64
+ },
65
+ [SortField.alltimeview]: {
66
+ field: SortField.alltimeview,
67
+ defaultSortDirection: 'desc',
68
+ canSetDirection: true,
69
+ shownInSortBar: true,
70
+ shownInURL: true,
71
+ handledBySearchService: true,
72
+ searchServiceKey: 'downloads',
73
+ displayName: 'All-time views',
74
+ urlNames: ['downloads'],
75
+ },
76
+ [SortField.weeklyview]: {
77
+ field: SortField.weeklyview,
78
+ defaultSortDirection: 'desc',
79
+ canSetDirection: true,
80
+ shownInSortBar: true,
81
+ shownInURL: true,
82
+ handledBySearchService: true,
83
+ searchServiceKey: 'week',
84
+ displayName: 'Weekly views',
85
+ urlNames: ['week'],
86
+ },
87
+ [SortField.title]: {
88
+ field: SortField.title,
89
+ defaultSortDirection: 'asc',
90
+ canSetDirection: true,
91
+ shownInSortBar: true,
92
+ shownInURL: true,
93
+ handledBySearchService: true,
94
+ searchServiceKey: 'titleSorter',
95
+ displayName: 'Title',
96
+ urlNames: ['title', 'titleSorter'],
97
+ },
98
+ [SortField.date]: {
99
+ field: SortField.date,
100
+ defaultSortDirection: 'desc',
101
+ canSetDirection: true,
102
+ shownInSortBar: true,
103
+ shownInURL: true,
104
+ handledBySearchService: true,
105
+ searchServiceKey: 'date',
106
+ displayName: 'Date published',
107
+ urlNames: ['date'],
108
+ },
109
+ [SortField.datearchived]: {
110
+ field: SortField.datearchived,
111
+ defaultSortDirection: 'desc',
112
+ canSetDirection: true,
113
+ shownInSortBar: true,
114
+ shownInURL: true,
115
+ handledBySearchService: true,
116
+ searchServiceKey: 'publicdate',
117
+ displayName: 'Date archived',
118
+ urlNames: ['publicdate'],
119
+ },
120
+ [SortField.datereviewed]: {
121
+ field: SortField.datereviewed,
122
+ defaultSortDirection: 'desc',
123
+ canSetDirection: true,
124
+ shownInSortBar: true,
125
+ shownInURL: true,
126
+ handledBySearchService: true,
127
+ searchServiceKey: 'reviewdate',
128
+ displayName: 'Date reviewed',
129
+ urlNames: ['reviewdate'],
130
+ },
131
+ [SortField.dateadded]: {
132
+ field: SortField.dateadded,
133
+ defaultSortDirection: 'desc',
134
+ canSetDirection: true,
135
+ shownInSortBar: true,
136
+ shownInURL: true,
137
+ handledBySearchService: true,
138
+ searchServiceKey: 'addeddate',
139
+ displayName: 'Date added',
140
+ urlNames: ['addeddate'],
141
+ },
142
+ [SortField.datefavorited]: {
143
+ field: SortField.datefavorited,
144
+ defaultSortDirection: 'desc',
145
+ canSetDirection: false,
146
+ shownInSortBar: true,
147
+ shownInURL: false,
148
+ handledBySearchService: false,
149
+ searchServiceKey: 'favoritedate',
150
+ displayName: 'Date favorited',
151
+ urlNames: ['favoritedate'],
152
+ },
153
+ [SortField.creator]: {
154
+ field: SortField.creator,
155
+ defaultSortDirection: 'asc',
156
+ canSetDirection: true,
157
+ shownInSortBar: true,
158
+ shownInURL: true,
159
+ handledBySearchService: true,
160
+ searchServiceKey: 'creatorSorter',
161
+ displayName: 'Creator',
162
+ urlNames: ['creator', 'creatorSorter'],
163
+ },
164
+ };
165
+ /**
166
+ * Returns the SortOption corresponding to the given API sort name, or
167
+ * the "unrecognized" SortOption if none matches.
168
+ */
169
+ export function sortOptionFromAPIString(sortName) {
170
+ var _a;
171
+ return ((_a = Object.values(SORT_OPTIONS).find(opt => opt.urlNames.some(name => sortName === name))) !== null && _a !== void 0 ? _a : SORT_OPTIONS[SortField.unrecognized]);
172
+ }
173
+ /**
174
+ * A map from prefix filter types to the corresponding aggregation keys
175
+ * that are needed to fetch the filter counts from the backend.
176
+ */
177
+ export const prefixFilterAggregationKeys = {
178
+ title: 'firstTitle',
179
+ creator: 'firstCreator',
180
+ };
181
+ export const getDefaultSelectedFacets = () => ({
182
+ subject: {},
183
+ lending: {},
184
+ mediatype: {},
185
+ language: {},
186
+ creator: {},
187
+ collection: {},
188
+ year: {},
189
+ });
190
+ export const facetDisplayOrder = [
191
+ 'mediatype',
192
+ 'lending',
193
+ 'year',
194
+ 'subject',
195
+ 'collection',
196
+ 'creator',
197
+ 'language',
198
+ ];
199
+ export const facetTitles = {
200
+ subject: 'Subject',
201
+ lending: 'Availability',
202
+ mediatype: 'Media Type',
203
+ language: 'Language',
204
+ creator: 'Creator',
205
+ collection: 'Collection',
206
+ year: 'Year',
207
+ };
208
+ /**
209
+ * The default sort type to use for each facet type
210
+ */
211
+ export const defaultFacetSort = {
212
+ subject: AggregationSortType.COUNT,
213
+ lending: AggregationSortType.COUNT,
214
+ mediatype: AggregationSortType.COUNT,
215
+ language: AggregationSortType.COUNT,
216
+ creator: AggregationSortType.COUNT,
217
+ collection: AggregationSortType.COUNT,
218
+ year: AggregationSortType.NUMERIC,
219
+ };
220
+ /**
221
+ * The sort type corresponding to facet bucket values, for each facet type
222
+ * (i.e., the opposite of "sort by count" for that type).
223
+ */
224
+ export const valueFacetSort = {
225
+ subject: AggregationSortType.ALPHABETICAL,
226
+ lending: AggregationSortType.ALPHABETICAL,
227
+ mediatype: AggregationSortType.ALPHABETICAL,
228
+ language: AggregationSortType.ALPHABETICAL,
229
+ creator: AggregationSortType.ALPHABETICAL,
230
+ collection: AggregationSortType.ALPHABETICAL,
231
+ year: AggregationSortType.NUMERIC,
232
+ };
233
+ /**
234
+ * Maps valid lending keys to whether they should be visible in the facet sidebar
235
+ */
236
+ export const lendingFacetKeysVisibility = {
237
+ is_lendable: true,
238
+ is_borrowable: false,
239
+ available_to_borrow: true,
240
+ is_browsable: false,
241
+ available_to_browse: false,
242
+ is_readable: true,
243
+ available_to_waitlist: false,
244
+ };
245
+ /**
246
+ * Maps valid, visible lending keys to their facet sidebar display text
247
+ */
248
+ export const lendingFacetDisplayNames = {
249
+ is_lendable: 'Lending Library',
250
+ available_to_borrow: 'Borrow 14 Days',
251
+ is_readable: 'Always Available',
252
+ };
253
+ /**
254
+ * A record of which admin-only collections should be suppressed from being displayed
255
+ * as facets or in an item's list of collections.
256
+ */
257
+ export const suppressedCollections = {
258
+ deemphasize: true,
259
+ community: true,
260
+ stream_only: true,
261
+ samples_only: true,
262
+ test_collection: true,
263
+ printdisabled: true,
264
+ 'openlibrary-ol': true,
265
+ nationalemergencylibrary: true,
266
+ china: true,
267
+ americana: true,
268
+ toronto: true,
269
+ };
270
270
  //# sourceMappingURL=models.js.map